public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2016-02-16 10:04 Yixun Lan
  0 siblings, 0 replies; 48+ messages in thread
From: Yixun Lan @ 2016-02-16 10:04 UTC (permalink / raw
  To: gentoo-commits

commit:     b0f5aa7239b0d047772f4462e7d4f18ac52e2f6f
Author:     Yixun Lan <dlan <AT> gentoo <DOT> org>
AuthorDate: Tue Feb 16 09:57:05 2016 +0000
Commit:     Yixun Lan <dlan <AT> gentoo <DOT> org>
CommitDate: Tue Feb 16 10:04:16 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b0f5aa72

sys-cluster/ceph: warn user about permission changes

Gentoo-bug: 574792

Package-Manager: portage-2.2.27

 sys-cluster/ceph/ceph-10.0.0.ebuild  | 12 +++++++++++-
 sys-cluster/ceph/ceph-9.2.0.ebuild   | 12 +++++++++++-
 sys-cluster/ceph/files/README.gentoo | 11 ++++++++---
 3 files changed, 30 insertions(+), 5 deletions(-)

diff --git a/sys-cluster/ceph/ceph-10.0.0.ebuild b/sys-cluster/ceph/ceph-10.0.0.ebuild
index acb485b..5eb497c 100644
--- a/sys-cluster/ceph/ceph-10.0.0.ebuild
+++ b/sys-cluster/ceph/ceph-10.0.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2016 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
@@ -90,6 +90,8 @@ check-reqs_export_vars() {
 		export CHECKREQS_DISK_BUILD="1400M"
 		export CHECKREQS_DISK_USR="450M"
 	fi
+
+	export CHECKREQS_MEMORY="7G"
 }
 
 user_setup() {
@@ -184,3 +186,11 @@ src_install() {
 
 	readme.gentoo_create_doc
 }
+
+pkg_postinst() {
+	if [[ -n ${REPLACING_VERSIONS} ]] && ! version_is_at_least 9.0 ${REPLACING_VERSIONS}; then
+		ewarn "You've upgraded ceph from old version, please fix the permission issue"
+		ewarn "Please refer section 4) in README.gentoo doc for detail info"
+		ewarn "  bzless /usr/share/doc/${P}/README.gentoo.bz2"
+	fi
+}

diff --git a/sys-cluster/ceph/ceph-9.2.0.ebuild b/sys-cluster/ceph/ceph-9.2.0.ebuild
index 434fd90..0f82103 100644
--- a/sys-cluster/ceph/ceph-9.2.0.ebuild
+++ b/sys-cluster/ceph/ceph-9.2.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2016 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
@@ -90,6 +90,8 @@ check-reqs_export_vars() {
 		export CHECKREQS_DISK_BUILD="9G"
 		export CHECKREQS_DISK_USR="450M"
 	fi
+
+	export CHECKREQS_MEMORY="7G"
 }
 
 user_setup() {
@@ -184,3 +186,11 @@ src_install() {
 
 	readme.gentoo_create_doc
 }
+
+pkg_postinst() {
+	if [[ -n ${REPLACING_VERSIONS} ]] && ! version_is_at_least 9.0 ${REPLACING_VERSIONS}; then
+		ewarn "You've upgraded ceph from old version, please fix the permission issue"
+		ewarn "Please refer section 4) in README.gentoo doc for detail info"
+		ewarn "  bzless /usr/share/doc/${P}/README.gentoo.bz2"
+	fi
+}

diff --git a/sys-cluster/ceph/files/README.gentoo b/sys-cluster/ceph/files/README.gentoo
index c596120..6e5f836 100644
--- a/sys-cluster/ceph/files/README.gentoo
+++ b/sys-cluster/ceph/files/README.gentoo
@@ -17,9 +17,14 @@
    net-misc/openntpd
    net-misc/chrony
 
-4) Starting from version 9.0.x, Ceph daemons run as ‘ceph’ user instead root.
-   In order to fix this, we suggest to stop ceph daemons, and fix ownership
+4) Starting from version 9.0.x, Ceph daemons run as user 'ceph' instead of 'root'.
+   In order to solve this, we recommand to stop ceph daemons, and fix the ownership
 
-    chown -R ceph:ceph /var/lib/ceph
+    # chown -R ceph:ceph /var/lib/ceph
+
+    or
+
+    Add the following line to ceph.conf on all hosts:
+    " setuser match path = /var/lib/ceph/$type/$cluster-$id "
 
     https://ceph.com/releases/v9-2-0-infernalis-released/


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2016-05-25 17:56 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2016-05-25 17:56 UTC (permalink / raw
  To: gentoo-commits

commit:     d3a2f3beb98b83316c57450bd09d0c3ffd8f2148
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Wed May 25 17:56:01 2016 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Wed May 25 17:56:01 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d3a2f3be

sys-cluster/ceph: Version bump to 10.2.1 (bug #583194)

This also adds some preliminary code for unbundling dev-libs/jerasure and
dev-libs/gf-complete (bug #463326), but it is commented out for the moment
pending bugs 584056 and 584058.

This also contains fixes for bugs 583550 and 582908.

Package-Manager: portage-2.3.0_rc1

 sys-cluster/ceph/Manifest                          |   1 +
 sys-cluster/ceph/ceph-10.2.1.ebuild                | 262 +++++++++++++++
 ...l-doesnt-support-momit-leaf-frame-pointer.patch |  25 ++
 .../ceph/files/ceph-10.2.1-unbundle-jerasure.patch | 355 +++++++++++++++++++++
 4 files changed, 643 insertions(+)

diff --git a/sys-cluster/ceph/Manifest b/sys-cluster/ceph/Manifest
index b575c7d..0ca02c7 100644
--- a/sys-cluster/ceph/Manifest
+++ b/sys-cluster/ceph/Manifest
@@ -1,4 +1,5 @@
 DIST ceph-0.80.10.tar.bz2 4136018 SHA256 a7ca8a3d0710ab88adcd5c52aebe0a8ee573e247c1ccf5d84eea8a9ff07a51fa SHA512 7823a489b7654457512d300050410b4a91d615fbb467d341c76e76b77364d6a2afa763bceb2c6cd8ed05a45d7b0aef4c3baf80155cc3223e940b439e0571f3c9 WHIRLPOOL a03fc3a4ca8c49157ff3b51528418ca62c3520c4141e402863cf3475a11b240be5297f731bf1a4e77a01a476e80f5e06c0722d688fbb8ad2db26ef1975a450da
 DIST ceph-0.94.6.tar.gz 9131464 SHA256 d2e65e21bdecdfa1fffb2661e9be2d5382bd975a0eb8296df0e96bacc11c251f SHA512 4920857d7493769929754877e3f255cc816400757b014b0c075d65ce9c83c47a86725540fa012eb95f9c6395a477945d3a46322f3055f05345298858fec53997 WHIRLPOOL cb1a230dc1f07903b3712d9d23df718b12df219255b680737d3a746e9cbeee0d0c3ddb21da6dad1e31fb4d77aa9b3283e2dbd6e59ca38146db2ae91c5e7d4229
 DIST ceph-10.2.0.tar.gz 11667920 SHA256 1a39d919beccaa26ddfbaeac04eebb80f4d43946a59a18e2e25a9a805d5b262d SHA512 1277f08aa7f8e30d962e455d611ff21667334c27012b7a4c2e22faf0e03c0f3e3278c561ce7ea7548d065c26824e8d212b01303201d0749648b741d2a4eb0125 WHIRLPOOL 3d6e85888f74b629f67107199c4c5de5dffc2f7bdb639a24aaea8cce447710996281685623f667b95786b5218ec586ea1c0b497237ff344b857eb6cbffc28713
+DIST ceph-10.2.1.tar.gz 11697889 SHA256 f9f2f61b9d172f7ac55cde4c22564cf49d2421cdb312b0e7d191de5ab8ca8e9a SHA512 b0dfbca4ce1ebeb069455e7df068d0d3e777080f1bbf10553395106b8dbf198a74f381036c64dbe28854a221c5c5c4a0ac5eed2700b7658e829297610bcd8243 WHIRLPOOL 54c321506fc31875dfec4c4ee13335c8228ef311817cb1021694133303dd0bc9a7216aa46ad3ca529a95909b9974ece14e13db722a106f3130ed4dbc0899a07b
 DIST ceph-9.2.1.tar.gz 9933444 SHA256 1918dfc3df80df5986c5b7ff6bc6c78064eef0f6c5e8269dba30e08c703a7c2f SHA512 1e84c1e2d64f4156a523658ed11552b045f75986922b7b7dbaf4719e73a0a6aadc71eb2b94ae363526f729534a592921a437468a41a3cea88c1b84e09de8505a WHIRLPOOL 3a0eb6712e5b0235707e86129e1d66f1184f50cd4980c30f6d8cc0e7dfd96d30b91177ed16dd7abf2ad4983c6a543eb91915f74f661f7d3e3c810b5b1d656aca

diff --git a/sys-cluster/ceph/ceph-10.2.1.ebuild b/sys-cluster/ceph/ceph-10.2.1.ebuild
new file mode 100644
index 0000000..ab79bf3
--- /dev/null
+++ b/sys-cluster/ceph/ceph-10.2.1.ebuild
@@ -0,0 +1,262 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+PYTHON_COMPAT=( python{2_7,3_{4,5}} )
+
+inherit check-reqs autotools eutils python-r1 udev user \
+	readme.gentoo-r1 systemd versionator flag-o-matic
+
+if [[ ${PV} == *9999* ]]; then
+	inherit git-r3
+	EGIT_REPO_URI="
+		git://github.com/ceph/ceph.git
+		https://github.com/ceph/ceph.git"
+	SRC_URI=""
+else
+	SRC_URI="http://ceph.com/download/${P}.tar.gz"
+	KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+fi
+
+DESCRIPTION="Ceph distributed filesystem"
+HOMEPAGE="http://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
+	dev-libs/boost:=[threads]
+	dev-libs/libaio
+	dev-libs/libedit
+	dev-python/sphinx[$(python_gen_usedep 'python2*')]
+	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 )
+	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 )
+	lttng? ( dev-util/lttng-ust )
+	${PYTHON_DEPS}
+	"
+DEPEND="${COMMON_DEPEND}
+	dev-python/cython[${PYTHON_USEDEP}]
+	app-arch/cpio
+	sys-apps/lsb-release
+	virtual/pkgconfig
+	test? (
+		sys-fs/btrfs-progs
+		sys-apps/grep[pcre]
+		dev-python/tox[${PYTHON_USEDEP}]
+		dev-python/virtualenv[${PYTHON_USEDEP}]
+	)"
+RDEPEND="${COMMON_DEPEND}
+	sys-apps/which
+	sys-apps/hdparm
+	sys-block/parted
+	sys-fs/cryptsetup
+	sys-apps/gptfdisk
+	sys-apps/findutils
+	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}/ceph-10.2.1-armv7l-doesnt-support-momit-leaf-frame-pointer.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
+	enewuser ceph -1 -1 /var/lib/ceph ceph
+}
+
+emake_python_bindings() {
+	local action="${1}" params binding
+	shift
+	params=("${@}")
+
+	__emake_python_bindings_do_impl() {
+		emake "${params[@]}" PYTHON="${EPYTHON}" "${binding}-pybind-${action}"
+
+		# these don't work and aren't needed on python3
+		if [[ ${EBUILD_PHASE} == install ]] && python_is_python3; then
+			rm -f "${ED}/$(python_get_sitedir)"/ceph_{argparse,volume_client}.py
+		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
+	eautoreconf
+}
+
+src_configure() {
+	local myeconfargs=(
+		--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
+	python_export python2.7 PYTHON EPYTHON
+	econf "${myeconfargs[@]}"
+}
+
+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 ceph:ceph /var/lib/ceph
+
+	newinitd "${FILESDIR}/rbdmap.initd" rbdmap
+	newinitd "${FILESDIR}/${PN}.initd-r2" ${PN}
+	newconfd "${FILESDIR}/${PN}.confd-r1" ${PN}
+
+	systemd_install_serviced "${FILESDIR}/ceph-mds_at.service.conf" "ceph-mds@.service"
+	systemd_install_serviced "${FILESDIR}/ceph-osd_at.service.conf" "ceph-osd@.service"
+	systemd_install_serviced "${FILESDIR}/ceph-mon_at.service.conf" "ceph-mon@.service"
+
+	python_fix_shebang "${ED}"/usr/{,s}bin/
+
+	udev_dorules udev/*.rules
+
+	readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+	readme.gentoo_print_elog
+}

diff --git a/sys-cluster/ceph/files/ceph-10.2.1-armv7l-doesnt-support-momit-leaf-frame-pointer.patch b/sys-cluster/ceph/files/ceph-10.2.1-armv7l-doesnt-support-momit-leaf-frame-pointer.patch
new file mode 100644
index 0000000..38d479a
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-10.2.1-armv7l-doesnt-support-momit-leaf-frame-pointer.patch
@@ -0,0 +1,25 @@
+From 0160e50fa9b255ad338a50b97bcbb2bfa56aa93d Mon Sep 17 00:00:00 2001
+From: Your Name <you@example.com>
+Date: Tue, 3 May 2016 10:51:54 -0500
+Subject: [PATCH] armv7l doesnt support -momit-leaf-frame-pointer
+
+---
+ src/rocksdb/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/rocksdb/Makefile b/src/rocksdb/Makefile
+index c64ea36..541dbf3 100644
+--- a/src/rocksdb/Makefile
++++ b/src/rocksdb/Makefile
+@@ -84,7 +84,7 @@ endif
+ # compile with -O2 if debug level is not 2
+ ifneq ($(DEBUG_LEVEL), 2)
+ OPT += -O2 -fno-omit-frame-pointer
+-ifneq ($(MACHINE),ppc64) # ppc64 doesn't support -momit-leaf-frame-pointer
++ifneq ($(MACHINE),$(filter $(MACHINE),ppc64 armv7l)) # ppc64 and armv7l doesn't support -momit-leaf-frame-pointer
+ OPT += -momit-leaf-frame-pointer
+ endif
+ endif
+-- 
+2.7.3
+

diff --git a/sys-cluster/ceph/files/ceph-10.2.1-unbundle-jerasure.patch b/sys-cluster/ceph/files/ceph-10.2.1-unbundle-jerasure.patch
new file mode 100644
index 0000000..8340b4d
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-10.2.1-unbundle-jerasure.patch
@@ -0,0 +1,355 @@
+diff --git a/src/erasure-code/jerasure/Makefile.am b/src/erasure-code/jerasure/Makefile.am
+index adcb95d..8099208 100644
+--- a/src/erasure-code/jerasure/Makefile.am
++++ b/src/erasure-code/jerasure/Makefile.am
+@@ -1,52 +1,17 @@
+ # jerasure plugin
+ noinst_HEADERS += \
+-  erasure-code/jerasure/gf-complete/include/gf_complete.h \
+-  erasure-code/jerasure/gf-complete/include/gf_general.h \
+-  erasure-code/jerasure/gf-complete/include/gf_int.h \
+-  erasure-code/jerasure/gf-complete/include/gf_method.h \
+-  erasure-code/jerasure/gf-complete/include/gf_rand.h \
+-  erasure-code/jerasure/gf-complete/include/gf_w16.h \
+-  erasure-code/jerasure/gf-complete/include/gf_w32.h \
+-  erasure-code/jerasure/gf-complete/include/gf_w4.h \
+-  erasure-code/jerasure/gf-complete/include/gf_w64.h \
+-  erasure-code/jerasure/gf-complete/include/gf_w8.h \
+-  erasure-code/jerasure/jerasure/include/cauchy.h \
+-  erasure-code/jerasure/jerasure/include/galois.h \
+-  erasure-code/jerasure/jerasure/include/jerasure.h \
+-  erasure-code/jerasure/jerasure/include/liberation.h \
+-  erasure-code/jerasure/jerasure/include/reed_sol.h \
+   erasure-code/jerasure/ErasureCodeJerasure.h
+ 
+ jerasure_sources = \
+   erasure-code/ErasureCode.cc \
+-  erasure-code/jerasure/jerasure/src/cauchy.c \
+-  erasure-code/jerasure/jerasure/src/galois.c \
+-  erasure-code/jerasure/jerasure/src/jerasure.c \
+-  erasure-code/jerasure/jerasure/src/liberation.c \
+-  erasure-code/jerasure/jerasure/src/reed_sol.c \
+-  erasure-code/jerasure/gf-complete/src/gf_wgen.c \
+-  erasure-code/jerasure/gf-complete/src/gf_method.c \
+-  erasure-code/jerasure/gf-complete/src/gf_w16.c \
+-  erasure-code/jerasure/gf-complete/src/gf.c \
+-  erasure-code/jerasure/gf-complete/src/gf_w32.c \
+-  erasure-code/jerasure/gf-complete/src/gf_w64.c \
+-  erasure-code/jerasure/gf-complete/src/gf_w128.c \
+-  erasure-code/jerasure/gf-complete/src/gf_general.c \
+-  erasure-code/jerasure/gf-complete/src/gf_w4.c \
+-  erasure-code/jerasure/gf-complete/src/gf_rand.c \
+-  erasure-code/jerasure/gf-complete/src/gf_w8.c \
+   erasure-code/jerasure/ErasureCodePluginJerasure.cc \
+   erasure-code/jerasure/ErasureCodeJerasure.cc
+ 
+ erasure-code/jerasure/ErasureCodePluginJerasure.cc: ./ceph_ver.h
+ 
+ libec_jerasure_generic_la_SOURCES = ${jerasure_sources}
+-libec_jerasure_generic_la_CFLAGS = ${AM_CFLAGS}  \
+-	-I$(srcdir)/erasure-code/jerasure/gf-complete/include \
+-	-I$(srcdir)/erasure-code/jerasure/jerasure/include
+-libec_jerasure_generic_la_CXXFLAGS= ${AM_CXXFLAGS} \
+-	-I$(srcdir)/erasure-code/jerasure/gf-complete/include \
+-	-I$(srcdir)/erasure-code/jerasure/jerasure/include
++libec_jerasure_generic_la_CFLAGS = ${AM_CFLAGS}
++libec_jerasure_generic_la_CXXFLAGS= ${AM_CXXFLAGS}
+ libec_jerasure_generic_la_LIBADD = $(LIBCRUSH) $(PTHREAD_LIBS) $(EXTRALIBS)
+ libec_jerasure_generic_la_LDFLAGS = ${AM_LDFLAGS} -module -avoid-version -shared
+ if LINUX
+@@ -55,20 +20,11 @@ endif
+ 
+ erasure_codelib_LTLIBRARIES += libec_jerasure_generic.la
+ 
+-libec_jerasure_neon_la_SOURCES = ${jerasure_sources}                                       \
+-                                  erasure-code/jerasure/gf-complete/src/neon/gf_w4_neon.c  \
+-                                  erasure-code/jerasure/gf-complete/src/neon/gf_w8_neon.c  \
+-                                  erasure-code/jerasure/gf-complete/src/neon/gf_w16_neon.c \
+-                                  erasure-code/jerasure/gf-complete/src/neon/gf_w32_neon.c \
+-                                  erasure-code/jerasure/gf-complete/src/neon/gf_w64_neon.c
++libec_jerasure_neon_la_SOURCES = ${jerasure_sources}
+ libec_jerasure_neon_la_CFLAGS = ${AM_CFLAGS}  \
+-	${ARM_NEON_FLAGS} \
+-	-I$(srcdir)/erasure-code/jerasure/gf-complete/include \
+-	-I$(srcdir)/erasure-code/jerasure/jerasure/include
++	${ARM_NEON_FLAGS}
+ libec_jerasure_neon_la_CXXFLAGS= ${AM_CXXFLAGS} \
+-	${ARM_NEON_FLAGS} \
+-	-I$(srcdir)/erasure-code/jerasure/gf-complete/include \
+-	-I$(srcdir)/erasure-code/jerasure/jerasure/include
++	${ARM_NEON_FLAGS}
+ libec_jerasure_neon_la_LIBADD = $(LIBCRUSH) $(PTHREAD_LIBS) $(EXTRALIBS)
+ libec_jerasure_neon_la_LDFLAGS = ${AM_LDFLAGS} -module -avoid-version -shared
+ if LINUX
+@@ -84,16 +40,12 @@ libec_jerasure_sse3_la_CFLAGS = ${AM_CFLAGS}  \
+ 	${INTEL_SSE_FLAGS} \
+ 	${INTEL_SSE2_FLAGS} \
+ 	${INTEL_SSE3_FLAGS} \
+-	${INTEL_SSSE3_FLAGS} \
+-	-I$(srcdir)/erasure-code/jerasure/gf-complete/include \
+-	-I$(srcdir)/erasure-code/jerasure/jerasure/include
++	${INTEL_SSSE3_FLAGS}
+ libec_jerasure_sse3_la_CXXFLAGS= ${AM_CXXFLAGS} \
+ 	${INTEL_SSE_FLAGS} \
+ 	${INTEL_SSE2_FLAGS} \
+ 	${INTEL_SSE3_FLAGS} \
+-	${INTEL_SSSE3_FLAGS} \
+-	-I$(srcdir)/erasure-code/jerasure/gf-complete/include \
+-	-I$(srcdir)/erasure-code/jerasure/jerasure/include
++	${INTEL_SSSE3_FLAGS}
+ libec_jerasure_sse3_la_LIBADD = $(LIBCRUSH) $(PTHREAD_LIBS) $(EXTRALIBS)
+ libec_jerasure_sse3_la_LDFLAGS = ${AM_LDFLAGS} -module -avoid-version -shared
+ if LINUX
+@@ -111,18 +63,14 @@ libec_jerasure_sse4_la_CFLAGS = ${AM_CFLAGS}  \
+ 	${INTEL_SSE3_FLAGS} \
+ 	${INTEL_SSSE3_FLAGS} \
+ 	${INTEL_SSE4_1_FLAGS} \
+-	${INTEL_SSE4_2_FLAGS} \
+-	-I$(srcdir)/erasure-code/jerasure/gf-complete/include \
+-	-I$(srcdir)/erasure-code/jerasure/jerasure/include
++	${INTEL_SSE4_2_FLAGS}
+ libec_jerasure_sse4_la_CXXFLAGS= ${AM_CXXFLAGS} \
+ 	${INTEL_SSE_FLAGS} \
+ 	${INTEL_SSE2_FLAGS} \
+ 	${INTEL_SSE3_FLAGS} \
+ 	${INTEL_SSSE3_FLAGS} \
+ 	${INTEL_SSE4_1_FLAGS} \
+-	${INTEL_SSE4_2_FLAGS} \
+-	-I$(srcdir)/erasure-code/jerasure/gf-complete/include \
+-	-I$(srcdir)/erasure-code/jerasure/jerasure/include
++	${INTEL_SSE4_2_FLAGS}
+ libec_jerasure_sse4_la_LIBADD = $(LIBCRUSH) $(PTHREAD_LIBS) $(EXTRALIBS)
+ libec_jerasure_sse4_la_LDFLAGS = ${AM_LDFLAGS} -module -avoid-version -shared
+ if LINUX
+diff --git a/src/erasure-code/shec/ErasureCodePluginShec.cc b/src/erasure-code/shec/ErasureCodePluginShec.cc
+index d2b72f5..acbd172 100644
+--- a/src/erasure-code/shec/ErasureCodePluginShec.cc
++++ b/src/erasure-code/shec/ErasureCodePluginShec.cc
+@@ -71,7 +71,7 @@ public:
+ };
+ 
+ extern "C" {
+-#include "jerasure/include/galois.h"
++#include "galois.h"
+ 
+ extern gf_t *gfp_array[];
+ extern int  gfp_is_composite[];
+diff --git a/src/erasure-code/shec/ErasureCodeShec.cc b/src/erasure-code/shec/ErasureCodeShec.cc
+index 2180328..c84ffc7 100644
+--- a/src/erasure-code/shec/ErasureCodeShec.cc
++++ b/src/erasure-code/shec/ErasureCodeShec.cc
+@@ -28,8 +28,8 @@
+ #include "crush/CrushWrapper.h"
+ #include "osd/osd_types.h"
+ extern "C" {
+-#include "jerasure/include/jerasure.h"
+-#include "jerasure/include/galois.h"
++#include "jerasure.h"
++#include "galois.h"
+ 
+ extern int calc_determinant(int *matrix, int dim);
+ extern int* reed_sol_vandermonde_coding_matrix(int k, int m, int w);
+diff --git a/src/erasure-code/shec/Makefile.am b/src/erasure-code/shec/Makefile.am
+index 6b658d5..3281c60 100644
+--- a/src/erasure-code/shec/Makefile.am
++++ b/src/erasure-code/shec/Makefile.am
+@@ -4,49 +4,19 @@ shec_sources = \
+ 	erasure-code/shec/ErasureCodePluginShec.cc \
+ 	erasure-code/shec/ErasureCodeShec.cc \
+ 	erasure-code/shec/ErasureCodeShecTableCache.cc \
+-	erasure-code/shec/determinant.c \
+-	erasure-code/jerasure/jerasure/src/cauchy.c \
+-	erasure-code/jerasure/jerasure/src/galois.c \
+-	erasure-code/jerasure/jerasure/src/jerasure.c \
+-	erasure-code/jerasure/jerasure/src/liberation.c \
+-	erasure-code/jerasure/jerasure/src/reed_sol.c \
+-	erasure-code/jerasure/gf-complete/src/gf_wgen.c \
+-	erasure-code/jerasure/gf-complete/src/gf_method.c \
+-	erasure-code/jerasure/gf-complete/src/gf_w16.c \
+-	erasure-code/jerasure/gf-complete/src/gf.c \
+-	erasure-code/jerasure/gf-complete/src/gf_w32.c \
+-	erasure-code/jerasure/gf-complete/src/gf_w64.c \
+-	erasure-code/jerasure/gf-complete/src/gf_w128.c \
+-	erasure-code/jerasure/gf-complete/src/gf_general.c \
+-	erasure-code/jerasure/gf-complete/src/gf_w4.c \
+-	erasure-code/jerasure/gf-complete/src/gf_rand.c \
+-	erasure-code/jerasure/gf-complete/src/gf_w8.c
++	erasure-code/shec/determinant.c
+ 
+ noinst_HEADERS += \
+ 	erasure-code/shec/ErasureCodeShec.h \
+-	erasure-code/shec/ErasureCodeShecTableCache.h \
+-	erasure-code/jerasure/jerasure/include/cauchy.h \
+-	erasure-code/jerasure/jerasure/include/galois.h \
+-	erasure-code/jerasure/jerasure/include/jerasure.h \
+-	erasure-code/jerasure/jerasure/include/liberation.h \
+-	erasure-code/jerasure/jerasure/include/reed_sol.h \
+-	erasure-code/jerasure/gf-complete/include/gf_int.h \
+-	erasure-code/jerasure/gf-complete/include/gf_complete.h \
+-	erasure-code/jerasure/gf-complete/include/gf_rand.h \
+-	erasure-code/jerasure/gf-complete/include/gf_method.h \
+-	erasure-code/jerasure/gf-complete/include/gf_general.h
++	erasure-code/shec/ErasureCodeShecTableCache.h
+ 
+ erasure-code/shec/ErasureCodePluginShec.cc: ./ceph_ver.h
+ 
+ libec_shec_generic_la_SOURCES = ${shec_sources}
+ libec_shec_generic_la_CFLAGS = ${AM_CFLAGS}  \
+-	-I$(srcdir)/erasure-code/jerasure/jerasure/include \
+-	-I$(srcdir)/erasure-code/jerasure/gf-complete/include \
+ 	-I$(srcdir)/erasure-code/jerasure \
+ 	-I$(srcdir)/erasure-code/shec
+ libec_shec_generic_la_CXXFLAGS= ${AM_CXXFLAGS} \
+-	-I$(srcdir)/erasure-code/jerasure/jerasure/include \
+-	-I$(srcdir)/erasure-code/jerasure/gf-complete/include \
+ 	-I$(srcdir)/erasure-code/jerasure \
+ 	-I$(srcdir)/erasure-code/shec
+ libec_shec_generic_la_LIBADD = $(LIBCRUSH) $(PTHREAD_LIBS) $(EXTRALIBS)
+@@ -57,22 +27,13 @@ endif
+ 
+ erasure_codelib_LTLIBRARIES += libec_shec_generic.la
+ 
+-libec_shec_neon_la_SOURCES = ${shec_sources} \
+-	erasure-code/jerasure/gf-complete/src/neon/gf_w4_neon.c \
+-	erasure-code/jerasure/gf-complete/src/neon/gf_w8_neon.c \
+-	erasure-code/jerasure/gf-complete/src/neon/gf_w16_neon.c \
+-	erasure-code/jerasure/gf-complete/src/neon/gf_w32_neon.c \
+-	erasure-code/jerasure/gf-complete/src/neon/gf_w64_neon.c
++libec_shec_neon_la_SOURCES = ${shec_sources}
+ libec_shec_neon_la_CFLAGS = ${AM_CFLAGS}  \
+ 	${ARM_NEON_FLAGS} \
+-	-I$(srcdir)/erasure-code/jerasure/jerasure/include \
+-	-I$(srcdir)/erasure-code/jerasure/gf-complete/include \
+ 	-I$(srcdir)/erasure-code/jerasure \
+ 	-I$(srcdir)/erasure-code/shec
+ libec_shec_neon_la_CXXFLAGS= ${AM_CXXFLAGS} \
+ 	${ARM_NEON_FLAGS} \
+-	-I$(srcdir)/erasure-code/jerasure/jerasure/include \
+-	-I$(srcdir)/erasure-code/jerasure/gf-complete/include \
+ 	-I$(srcdir)/erasure-code/jerasure \
+ 	-I$(srcdir)/erasure-code/shec
+ libec_shec_neon_la_LIBADD = $(LIBCRUSH) $(PTHREAD_LIBS) $(EXTRALIBS)
+@@ -91,8 +52,6 @@ libec_shec_sse3_la_CFLAGS = ${AM_CFLAGS}  \
+ 	${INTEL_SSE2_FLAGS} \
+ 	${INTEL_SSE3_FLAGS} \
+ 	${INTEL_SSSE3_FLAGS} \
+-	-I$(srcdir)/erasure-code/jerasure/jerasure/include \
+-	-I$(srcdir)/erasure-code/jerasure/gf-complete/include \
+ 	-I$(srcdir)/erasure-code/jerasure \
+ 	-I$(srcdir)/erasure-code/shec
+ libec_shec_sse3_la_CXXFLAGS= ${AM_CXXFLAGS} \
+@@ -100,8 +59,6 @@ libec_shec_sse3_la_CXXFLAGS= ${AM_CXXFLAGS} \
+ 	${INTEL_SSE2_FLAGS} \
+ 	${INTEL_SSE3_FLAGS} \
+ 	${INTEL_SSSE3_FLAGS} \
+-	-I$(srcdir)/erasure-code/jerasure/jerasure/include \
+-	-I$(srcdir)/erasure-code/jerasure/gf-complete/include \
+ 	-I$(srcdir)/erasure-code/jerasure \
+ 	-I$(srcdir)/erasure-code/shec
+ libec_shec_sse3_la_LIBADD = $(LIBCRUSH) $(PTHREAD_LIBS) $(EXTRALIBS)
+@@ -122,8 +79,6 @@ libec_shec_sse4_la_CFLAGS = ${AM_CFLAGS}  \
+ 	${INTEL_SSSE3_FLAGS} \
+ 	${INTEL_SSE4_1_FLAGS} \
+ 	${INTEL_SSE4_2_FLAGS} \
+-	-I$(srcdir)/erasure-code/jerasure/jerasure/include \
+-	-I$(srcdir)/erasure-code/jerasure/gf-complete/include \
+ 	-I$(srcdir)/erasure-code/jerasure \
+ 	-I$(srcdir)/erasure-code/shec
+ libec_shec_sse4_la_CXXFLAGS= ${AM_CXXFLAGS} \
+@@ -133,8 +88,6 @@ libec_shec_sse4_la_CXXFLAGS= ${AM_CXXFLAGS} \
+ 	${INTEL_SSSE3_FLAGS} \
+ 	${INTEL_SSE4_1_FLAGS} \
+ 	${INTEL_SSE4_2_FLAGS} \
+-	-I$(srcdir)/erasure-code/jerasure/jerasure/include \
+-	-I$(srcdir)/erasure-code/jerasure/gf-complete/include \
+ 	-I$(srcdir)/erasure-code/jerasure \
+ 	-I$(srcdir)/erasure-code/shec
+ libec_shec_sse4_la_LIBADD = $(LIBCRUSH) $(PTHREAD_LIBS) $(EXTRALIBS)
+diff --git a/src/erasure-code/shec/determinant.c b/src/erasure-code/shec/determinant.c
+index 15b62c9..bf5d290 100755
+--- a/src/erasure-code/shec/determinant.c
++++ b/src/erasure-code/shec/determinant.c
+@@ -19,7 +19,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ 
+-#include "jerasure/include/galois.h"
++#include "galois.h"
+ 
+ void print_matrix(int *mat, int dim)
+ {
+diff --git a/src/test/erasure-code/Makefile.am b/src/test/erasure-code/Makefile.am
+index bdce080..11895ae 100644
+--- a/src/test/erasure-code/Makefile.am
++++ b/src/test/erasure-code/Makefile.am
+@@ -166,12 +166,8 @@ check_TESTPROGRAMS += unittest_erasure_code
+ unittest_erasure_code_jerasure_SOURCES = \
+ 	test/erasure-code/TestErasureCodeJerasure.cc \
+ 	${jerasure_sources}
+-unittest_erasure_code_jerasure_CFLAGS = $(AM_CFLAGS) \
+-	-Ierasure-code/jerasure/gf-complete/include \
+-	-Ierasure-code/jerasure/jerasure/include
+-unittest_erasure_code_jerasure_CXXFLAGS = $(UNITTEST_CXXFLAGS) \
+-	-Ierasure-code/jerasure/gf-complete/include \
+-	-Ierasure-code/jerasure/jerasure/include
++unittest_erasure_code_jerasure_CFLAGS = $(AM_CFLAGS)
++unittest_erasure_code_jerasure_CXXFLAGS = $(UNITTEST_CXXFLAGS)
+ unittest_erasure_code_jerasure_LDADD = $(LIBOSD) $(LIBCOMMON) $(UNITTEST_LDADD) $(CEPH_GLOBAL)
+ if LINUX
+ unittest_erasure_code_jerasure_LDADD += -ldl
+@@ -232,13 +228,9 @@ unittest_erasure_code_shec_SOURCES = \
+ 	test/erasure-code/TestErasureCodeShec.cc \
+ 	${shec_sources}
+ unittest_erasure_code_shec_CFLAGS = ${libec_shec_la_CFLAGS} \
+-	-I$(srcdir)/erasure-code/jerasure/jerasure/include \
+-	-I$(srcdir)/erasure-code/jerasure/gf-complete/include \
+ 	-I$(srcdir)/erasure-code/jerasure \
+ 	-I$(srcdir)/erasure-code/shec
+ unittest_erasure_code_shec_CXXFLAGS = ${libec_shec_la_CXXFLAGS} $(UNITTEST_CXXFLAGS) \
+-	-I$(srcdir)/erasure-code/jerasure/jerasure/include \
+-	-I$(srcdir)/erasure-code/jerasure/gf-complete/include \
+ 	-I$(srcdir)/erasure-code/jerasure \
+ 	-I$(srcdir)/erasure-code/shec
+ unittest_erasure_code_shec_LDADD = $(LIBOSD) $(LIBCOMMON) $(UNITTEST_LDADD) $(CEPH_GLOBAL)
+@@ -251,13 +243,9 @@ unittest_erasure_code_shec_all_SOURCES = \
+ 	test/erasure-code/TestErasureCodeShec_all.cc \
+ 	${shec_sources}
+ unittest_erasure_code_shec_all_CFLAGS = ${libec_shec_la_CFLAGS} \
+-	-I$(srcdir)/erasure-code/jerasure/jerasure/include \
+-	-I$(srcdir)/erasure-code/jerasure/gf-complete/include \
+ 	-I$(srcdir)/erasure-code/jerasure \
+ 	-I$(srcdir)/erasure-code/shec
+ unittest_erasure_code_shec_all_CXXFLAGS = ${libec_shec_la_CXXFLAGS} $(UNITTEST_CXXFLAGS) \
+-	-I$(srcdir)/erasure-code/jerasure/jerasure/include \
+-	-I$(srcdir)/erasure-code/jerasure/gf-complete/include \
+ 	-I$(srcdir)/erasure-code/jerasure \
+ 	-I$(srcdir)/erasure-code/shec
+ unittest_erasure_code_shec_all_LDADD = $(LIBOSD) $(LIBCOMMON) $(UNITTEST_LDADD) $(CEPH_GLOBAL)
+@@ -270,13 +258,9 @@ unittest_erasure_code_shec_thread_SOURCES = \
+ 	test/erasure-code/TestErasureCodeShec_thread.cc \
+ 	${shec_sources}
+ unittest_erasure_code_shec_thread_CFLAGS = ${libec_shec_la_CFLAGS} \
+-	-I$(srcdir)/erasure-code/jerasure/jerasure/include \
+-	-I$(srcdir)/erasure-code/jerasure/gf-complete/include \
+ 	-I$(srcdir)/erasure-code/jerasure \
+ 	-I$(srcdir)/erasure-code/shec
+ unittest_erasure_code_shec_thread_CXXFLAGS = ${libec_shec_la_CXXFLAGS} $(UNITTEST_CXXFLAGS) \
+-	-I$(srcdir)/erasure-code/jerasure/jerasure/include \
+-	-I$(srcdir)/erasure-code/jerasure/gf-complete/include \
+ 	-I$(srcdir)/erasure-code/jerasure \
+ 	-I$(srcdir)/erasure-code/shec
+ unittest_erasure_code_shec_thread_LDADD = $(LIBOSD) $(LIBCOMMON) $(UNITTEST_LDADD) $(CEPH_GLOBAL)
+@@ -289,13 +273,9 @@ unittest_erasure_code_shec_arguments_SOURCES = \
+ 	test/erasure-code/TestErasureCodeShec_arguments.cc \
+ 	${shec_sources}
+ unittest_erasure_code_shec_arguments_CFLAGS = ${libec_shec_la_CFLAGS} \
+-	-I$(srcdir)/erasure-code/jerasure/jerasure/include \
+-	-I$(srcdir)/erasure-code/jerasure/gf-complete/include \
+ 	-I$(srcdir)/erasure-code/jerasure \
+ 	-I$(srcdir)/erasure-code/shec
+ unittest_erasure_code_shec_arguments_CXXFLAGS = ${libec_shec_la_CXXFLAGS} $(UNITTEST_CXXFLAGS) \
+-	-I$(srcdir)/erasure-code/jerasure/jerasure/include \
+-	-I$(srcdir)/erasure-code/jerasure/gf-complete/include \
+ 	-I$(srcdir)/erasure-code/jerasure \
+ 	-I$(srcdir)/erasure-code/shec
+ unittest_erasure_code_shec_arguments_LDADD = $(LIBOSD) $(LIBCOMMON) $(UNITTEST_LDADD) $(CEPH_GLOBAL)


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2016-06-16 10:57 Yixun Lan
  0 siblings, 0 replies; 48+ messages in thread
From: Yixun Lan @ 2016-06-16 10:57 UTC (permalink / raw
  To: gentoo-commits

commit:     3136c76f780e6102b2e55598d85861808cc4abb7
Author:     Yixun Lan <dlan <AT> gentoo <DOT> org>
AuthorDate: Thu Jun 16 10:52:37 2016 +0000
Commit:     Yixun Lan <dlan <AT> gentoo <DOT> org>
CommitDate: Thu Jun 16 10:55:25 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3136c76f

sys-cluster/ceph: fix missing xfs header err when USE=xfs enabled

Gentoo-Bug: 585988

Package-Manager: portage-2.3.0_rc1

 sys-cluster/ceph/ceph-9.2.1-r1.ebuild          |  1 +
 sys-cluster/ceph/files/ceph-9.2.1-libxfs.patch | 28 ++++++++++++++++++++++++++
 2 files changed, 29 insertions(+)

diff --git a/sys-cluster/ceph/ceph-9.2.1-r1.ebuild b/sys-cluster/ceph/ceph-9.2.1-r1.ebuild
index 53f3e9c..494094e 100644
--- a/sys-cluster/ceph/ceph-9.2.1-r1.ebuild
+++ b/sys-cluster/ceph/ceph-9.2.1-r1.ebuild
@@ -74,6 +74,7 @@ STRIP_MASK="/usr/lib*/rados-classes/*"
 
 PATCHES=(
 	"${FILESDIR}"/${PN}-0.79-libzfs.patch
+	"${FILESDIR}"/${P}-libxfs.patch
 )
 
 check-reqs_export_vars() {

diff --git a/sys-cluster/ceph/files/ceph-9.2.1-libxfs.patch b/sys-cluster/ceph/files/ceph-9.2.1-libxfs.patch
new file mode 100644
index 0000000..85515be
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-9.2.1-libxfs.patch
@@ -0,0 +1,28 @@
+From 602425abd5cef741fc1b5d4d1dd70c68e153fc8d Mon Sep 17 00:00:00 2001
+From: Ira Cooper <ira@redhat.com>
+Date: Thu, 31 Mar 2016 12:30:45 -0400
+Subject: [PATCH] configure: Add -D_LARGEFILE64_SOURCE to Linux build.
+
+Without -D_LARGEFILE64_SOURCE we can't build against libxfs,
+because off64_t must be defined.
+
+Signed-off-by: Ira Cooper <ira@redhat.com>
+---
+ configure.ac | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/configure.ac b/configure.ac
+index 48a7fc2..610c40b 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -63,6 +63,7 @@ darwin*)
+ 	;;
+ linux*)
+ 	linux="yes"
++	CFLAGS="-D_LARGEFILE64_SOURCE ${CFLAGS}"
+ 	;;
+ freebsd*)
+ 	freebsd="yes"
+-- 
+2.8.4
+


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2016-10-27 21:31 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2016-10-27 21:31 UTC (permalink / raw
  To: gentoo-commits

commit:     6a0cecccd4cde2ac81dd8a2409467dcc291133b5
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Thu Oct 27 21:31:02 2016 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Thu Oct 27 21:31:02 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6a0ceccc

sys-cluster/ceph: Revision bump to 10.2.3-r1 for CVE-2016-8626

Gentoo-Bug: 598206

Package-Manager: portage-2.3.2

 sys-cluster/ceph/ceph-10.2.3-r1.ebuild             | 263 +++++++++++++++++++++
 .../ceph/files/ceph-10.2.3-CVE-2016-8626.patch     |  33 +++
 2 files changed, 296 insertions(+)

diff --git a/sys-cluster/ceph/ceph-10.2.3-r1.ebuild b/sys-cluster/ceph/ceph-10.2.3-r1.ebuild
new file mode 100644
index 00000000..5f40c53
--- /dev/null
+++ b/sys-cluster/ceph/ceph-10.2.3-r1.ebuild
@@ -0,0 +1,263 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+PYTHON_COMPAT=( python{2_7,3_{4,5}} )
+
+inherit check-reqs autotools eutils python-r1 udev user \
+	readme.gentoo-r1 systemd versionator flag-o-matic
+
+if [[ ${PV} == *9999* ]]; then
+	inherit git-r3
+	EGIT_REPO_URI="
+		git://github.com/ceph/ceph.git
+		https://github.com/ceph/ceph.git"
+	SRC_URI=""
+else
+	SRC_URI="http://ceph.com/download/${P}.tar.gz"
+	KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+fi
+
+DESCRIPTION="Ceph distributed filesystem"
+HOMEPAGE="http://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
+	app-arch/lz4:=
+	app-arch/bzip2
+	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 )
+	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 )
+	lttng? ( dev-util/lttng-ust )
+	${PYTHON_DEPS}
+	"
+DEPEND="${COMMON_DEPEND}
+	dev-python/cython[${PYTHON_USEDEP}]
+	app-arch/cpio
+	sys-apps/lsb-release
+	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
+	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.3-CVE-2016-8626.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
+	shift
+	params=("${@}")
+
+	__emake_python_bindings_do_impl() {
+		emake "${params[@]}" PYTHON="${EPYTHON}" "${binding}-pybind-${action}"
+
+		# these don't work and aren't needed on python3
+		if [[ ${EBUILD_PHASE} == install ]] && python_is_python3; then
+			rm -f "${ED}/$(python_get_sitedir)"/ceph_{argparse,volume_client}.py
+		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
+	eautoreconf
+}
+
+src_configure() {
+	local myeconfargs=(
+		--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
+	python_export python2.7 PYTHON EPYTHON
+	econf "${myeconfargs[@]}"
+}
+
+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 ceph:ceph /var/lib/ceph
+
+	newinitd "${FILESDIR}/rbdmap.initd" rbdmap
+	newinitd "${FILESDIR}/${PN}.initd-r2" ${PN}
+	newconfd "${FILESDIR}/${PN}.confd-r1" ${PN}
+
+	systemd_install_serviced "${FILESDIR}/ceph-mds_at.service.conf" "ceph-mds@.service"
+	systemd_install_serviced "${FILESDIR}/ceph-osd_at.service.conf" "ceph-osd@.service"
+	systemd_install_serviced "${FILESDIR}/ceph-mon_at.service.conf" "ceph-mon@.service"
+
+	python_fix_shebang "${ED}"/usr/{,s}bin/
+
+	udev_dorules udev/*.rules
+
+	readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+	readme.gentoo_print_elog
+}

diff --git a/sys-cluster/ceph/files/ceph-10.2.3-CVE-2016-8626.patch b/sys-cluster/ceph/files/ceph-10.2.3-CVE-2016-8626.patch
new file mode 100644
index 00000000..d767d81
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-10.2.3-CVE-2016-8626.patch
@@ -0,0 +1,33 @@
+commit dc2ffda7819d2ebeed3526d9e6da8f53221818de
+Author: Yehuda Sadeh <yehuda@redhat.com>
+Date:   Thu Oct 20 10:17:36 2016 -0700
+
+    rgw: handle empty POST condition
+    
+    Fixes: http://tracker.ceph.com/issues/17635
+    
+    Before accessing json entity, need to check that iterator is valid.
+    If there is no entry return appropriate error code.
+    
+    Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
+    (cherry picked from commit 23cb642243e09ca4a8e104f62a3bb7b2cbb6ea12)
+
+diff --git a/src/rgw/rgw_policy_s3.cc b/src/rgw/rgw_policy_s3.cc
+index 3843511..8af70a8 100644
+--- a/src/rgw/rgw_policy_s3.cc
++++ b/src/rgw/rgw_policy_s3.cc
+@@ -286,11 +286,13 @@ int RGWPolicy::from_json(bufferlist& bl, string& err_msg)
+       int r = add_condition(v[0], v[1], v[2], err_msg);
+       if (r < 0)
+         return r;
+-    } else {
++    } else if (!citer.end()) {
+       JSONObj *c = *citer;
+       dout(0) << "adding simple_check: " << c->get_name() << " : " << c->get_data() << dendl;
+ 
+       add_simple_check(c->get_name(), c->get_data());
++    } else {
++      return -EINVAL;
+     }
+   }
+   return 0;


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2017-03-02  0:38 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2017-03-02  0:38 UTC (permalink / raw
  To: gentoo-commits

commit:     ddd6de576d3d0f0e992974e3f6064c48f2c31039
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Thu Mar  2 00:37:34 2017 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Thu Mar  2 00:38:06 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ddd6de57

sys-cluster/ceph: Revision bump, pull in some python3 patches from upstream

Package-Manager: Portage-2.3.3, Repoman-2.3.1

 sys-cluster/ceph/ceph-10.2.5-r4.ebuild             | 293 +++++++++++++++++++++
 ...ndings-and-tests-compatible-with-Python-3.patch |  22 ++
 ...-Python-bindings-compatible-with-Python-3.patch |  45 ++++
 3 files changed, 360 insertions(+)

diff --git a/sys-cluster/ceph/ceph-10.2.5-r4.ebuild b/sys-cluster/ceph/ceph-10.2.5-r4.ebuild
new file mode 100644
index 00000000000..2cac94d409d
--- /dev/null
+++ b/sys-cluster/ceph/ceph-10.2.5-r4.ebuild
@@ -0,0 +1,293 @@
+# Copyright 1999-2017 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
+
+if [[ ${PV} == *9999* ]]; then
+	inherit git-r3
+	EGIT_REPO_URI="
+		git://github.com/ceph/ceph.git
+		https://github.com/ceph/ceph.git"
+	SRC_URI=""
+else
+	SRC_URI="http://ceph.com/download/${P}.tar.gz"
+	KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+fi
+
+DESCRIPTION="Ceph distributed filesystem"
+HOMEPAGE="http://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
+	app-arch/lz4:=
+	app-arch/bzip2
+	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 )
+	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 )
+	lttng? ( dev-util/lttng-ust )
+	${PYTHON_DEPS}
+	"
+DEPEND="${COMMON_DEPEND}
+	dev-python/cython[${PYTHON_USEDEP}]
+	app-arch/cpio
+	sys-apps/lsb-release
+	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
+	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"
+)
+
+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
+	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-r3" ${PN}
+	newconfd "${FILESDIR}/${PN}.confd-r1" ${PN}
+
+	systemd_install_serviced "${FILESDIR}/ceph-mds_at.service.conf" "ceph-mds@.service"
+	systemd_install_serviced "${FILESDIR}/ceph-osd_at.service.conf" "ceph-osd@.service"
+	systemd_install_serviced "${FILESDIR}/ceph-mon_at.service.conf" "ceph-mon@.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/files/ceph-10.2.5-Make-CephFS-bindings-and-tests-compatible-with-Python-3.patch b/sys-cluster/ceph/files/ceph-10.2.5-Make-CephFS-bindings-and-tests-compatible-with-Python-3.patch
new file mode 100644
index 00000000000..08a7920035a
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-10.2.5-Make-CephFS-bindings-and-tests-compatible-with-Python-3.patch
@@ -0,0 +1,22 @@
+commit e1dc386f93eb4613dc7e89cc76a031aeee5022ba
+Author: Oleh Prypin <oleh@pryp.in>
+Date:   Thu Jul 21 18:33:25 2016 +0300
+
+    pybind: Make CephFS bindings and tests compatible with Python 3
+    
+    Signed-off-by: Oleh Prypin <oleh@pryp.in>
+
+diff --git a/src/pybind/cephfs/cephfs.pyx b/src/pybind/cephfs/cephfs.pyx
+index ac17ada1a1..bd14de3b16 100644
+--- a/src/pybind/cephfs/cephfs.pyx
++++ b/src/pybind/cephfs/cephfs.pyx
+@@ -613,8 +613,7 @@ cdef class LibCephFS(object):
+ 
+         if not isinstance(mode, int):
+             raise TypeError('mode must be an int')
+-        if isinstance(flags, basestring):
+-            flags = cstr(flags, 'flags')
++        if isinstance(flags, str_type):
+             cephfs_flags = 0
+             if flags == '':
+                 cephfs_flags = os.O_RDONLY

diff --git a/sys-cluster/ceph/files/ceph-10.2.5-Make-RBD-Python-bindings-compatible-with-Python-3.patch b/sys-cluster/ceph/files/ceph-10.2.5-Make-RBD-Python-bindings-compatible-with-Python-3.patch
new file mode 100644
index 00000000000..a81aae6e7ce
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-10.2.5-Make-RBD-Python-bindings-compatible-with-Python-3.patch
@@ -0,0 +1,45 @@
+commit 773e01294da518c6ec18f0a8b72e05def85fef6c
+Author: Oleh Prypin <oleh@pryp.in>
+Date:   Fri Jun 24 15:48:57 2016 +0300
+
+    pybind: Make RBD Python bindings compatible with Python 3
+    
+    Signed-off-by: Oleh Prypin <oleh@pryp.in>
+
+diff --git a/src/pybind/rbd/rbd.pyx b/src/pybind/rbd/rbd.pyx
+index 52727bf39e..8f25dfbee0 100644
+--- a/src/pybind/rbd/rbd.pyx
++++ b/src/pybind/rbd/rbd.pyx
+@@ -745,7 +745,7 @@ class RBD(object):
+                     break
+                 elif ret != -errno.ERANGE:
+                     raise make_ex(ret, 'error listing images')
+-            return [decode_cstr(name) for name in c_names[:ret].split('\0')
++            return [decode_cstr(name) for name in c_names[:ret].split(b'\0')
+                     if name]
+         finally:
+             free(c_names)
+@@ -1885,8 +1885,8 @@ written." % (self.name, ret, length))
+                     raise make_ex(ret, 'error listing images')
+             if ret == 0:
+                 return []
+-            pools = map(decode_cstr, c_pools[:pools_size - 1].split('\0'))
+-            images = map(decode_cstr, c_images[:images_size - 1].split('\0'))
++            pools = map(decode_cstr, c_pools[:pools_size - 1].split(b'\0'))
++            images = map(decode_cstr, c_images[:images_size - 1].split(b'\0'))
+             return list(zip(pools, images))
+         finally:
+             free(c_pools)
+@@ -1933,9 +1933,9 @@ written." % (self.name, ret, length))
+                     raise make_ex(ret, 'error listing images')
+             if ret == 0:
+                 return []
+-            clients = map(decode_cstr, c_clients[:clients_size - 1].split('\0'))
+-            cookies = map(decode_cstr, c_cookies[:cookies_size - 1].split('\0'))
+-            addrs = map(decode_cstr, c_addrs[:addrs_size - 1].split('\0'))
++            clients = map(decode_cstr, c_clients[:clients_size - 1].split(b'\0'))
++            cookies = map(decode_cstr, c_cookies[:cookies_size - 1].split(b'\0'))
++            addrs = map(decode_cstr, c_addrs[:addrs_size - 1].split(b'\0'))
+             return {
+                 'tag'       : decode_cstr(c_tag),
+                 'exclusive' : exclusive == 1,


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2017-03-08 22:57 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2017-03-08 22:57 UTC (permalink / raw
  To: gentoo-commits

commit:     81e655fb8e2d3a68f5d71745833dee66ce017ae4
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Wed Mar  8 22:56:46 2017 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Wed Mar  8 22:56:46 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=81e655fb

sys-cluster/ceph: Version bump to 10.2.6

Package-Manager: Portage-2.3.4, Repoman-2.3.2

 sys-cluster/ceph/Manifest                          |   1 +
 sys-cluster/ceph/ceph-10.2.6.ebuild                | 293 +++++++++++++++++++++
 ...sgw-swift-clean-up-flush-newline-behavior.patch |  92 +++++++
 3 files changed, 386 insertions(+)

diff --git a/sys-cluster/ceph/Manifest b/sys-cluster/ceph/Manifest
index 793888de568..767fa7e7bb5 100644
--- a/sys-cluster/ceph/Manifest
+++ b/sys-cluster/ceph/Manifest
@@ -1,4 +1,5 @@
 DIST ceph-0.94.9.tar.gz 9044702 SHA256 d5bc07e7aef75f74d75f0356e5dd2a17956cbad6bb552a1e96a0fabd80924050 SHA512 ef4bbcc4429e22a2d924fd52dc42f522d5327f67ee8c1781d7cf602c2932a485cb48db21bdc33e7c7fbc968eec59c17882ebb18e6405599e11a3abc248f1d376 WHIRLPOOL f348159e8d7dd5e1ac3810a51846f50f6cefdbc5fa4cd15c3127b1136eb960baca8ad8db33c78a5d6435720cf1e2c277e068d09f9b9dbcf0f8ad56d7ddd914dc
 DIST ceph-10.2.3.tar.gz 11596171 SHA256 dca933aa14db67b404d836ef510bd418091978edc2f0c74dfc530ba0aa5e8994 SHA512 9de1e6851fc343d2c52c72cec3f7887d998d5b588f1251ee3a1fda14427badfa10408e6691fb03a374a10f4ec9844868423fee70fbbe2c0d962af98481412f19 WHIRLPOOL 981ebca66113a07a5cc6e5934272a72b29a2c19e03398f7b622c11df6ea0a05339558dfc2f11504403cbbd0efe0b090ad59f4b86206b46db57587744091aa26a
 DIST ceph-10.2.5.tar.gz 14020700 SHA256 82dd4271f18eb7b84ff16f273a5250a4a9e809bfaccce5a1cca493416332d5f4 SHA512 4889aff38c8af781c2e3dce8f4ee51864db0a27c6294774345d2c1b047588ec31354ad41f799e2f0d0a966dc372d76c9bdbfb93f30a0718ea9d7c2b7a645d0f8 WHIRLPOOL 986a6ac35612a732d2a9a73277525679f9da729601c7e3f82b83e7e8ee2eb4245c98cdf5c4462ae1c789cb3d120a2c4a7eb9a3958b072db5e743b2c015269dfc
+DIST ceph-10.2.6.tar.gz 14500365 SHA256 ad32c549d0ce6de581b5e1c6c7eba38e0f6658aaf8a91990e602f7c64c5e48c7 SHA512 c4321e27a6f8983f69435316c35858ab2b8b620cd80663a5471447c7489d867aef30b22541ca9648a7dcf9d931d04055e29d87dea3a6e94963fb360d06713dee WHIRLPOOL bd886105b47b6cfaeeff882f1d21d710442880c31a1943298db0904a453d67da71519c8fe5e1dd0377480b5413c90bf8ae4bed6bd99bfc53e4696f8b8031c23a
 DIST ceph-9.2.1.tar.gz 9933444 SHA256 1918dfc3df80df5986c5b7ff6bc6c78064eef0f6c5e8269dba30e08c703a7c2f SHA512 1e84c1e2d64f4156a523658ed11552b045f75986922b7b7dbaf4719e73a0a6aadc71eb2b94ae363526f729534a592921a437468a41a3cea88c1b84e09de8505a WHIRLPOOL 3a0eb6712e5b0235707e86129e1d66f1184f50cd4980c30f6d8cc0e7dfd96d30b91177ed16dd7abf2ad4983c6a543eb91915f74f661f7d3e3c810b5b1d656aca

diff --git a/sys-cluster/ceph/ceph-10.2.6.ebuild b/sys-cluster/ceph/ceph-10.2.6.ebuild
new file mode 100644
index 00000000000..ac3fbe53c5a
--- /dev/null
+++ b/sys-cluster/ceph/ceph-10.2.6.ebuild
@@ -0,0 +1,293 @@
+# Copyright 1999-2017 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
+
+if [[ ${PV} == *9999* ]]; then
+	inherit git-r3
+	EGIT_REPO_URI="
+		git://github.com/ceph/ceph.git
+		https://github.com/ceph/ceph.git"
+	SRC_URI=""
+else
+	SRC_URI="http://download.ceph.com/tarballs/${P}.tar.gz"
+	KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+fi
+
+DESCRIPTION="Ceph distributed filesystem"
+HOMEPAGE="http://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
+	app-arch/lz4:=
+	app-arch/bzip2
+	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 )
+	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 )
+	lttng? ( dev-util/lttng-ust )
+	${PYTHON_DEPS}
+	"
+DEPEND="${COMMON_DEPEND}
+	dev-python/cython[${PYTHON_USEDEP}]
+	app-arch/cpio
+	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
+	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.6-radosgw-swift-clean-up-flush-newline-behavior.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
+	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-r3" ${PN}
+	newconfd "${FILESDIR}/${PN}.confd-r1" ${PN}
+
+	systemd_install_serviced "${FILESDIR}/ceph-mds_at.service.conf" "ceph-mds@.service"
+	systemd_install_serviced "${FILESDIR}/ceph-osd_at.service.conf" "ceph-osd@.service"
+	systemd_install_serviced "${FILESDIR}/ceph-mon_at.service.conf" "ceph-mon@.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/files/ceph-10.2.6-radosgw-swift-clean-up-flush-newline-behavior.patch b/sys-cluster/ceph/files/ceph-10.2.6-radosgw-swift-clean-up-flush-newline-behavior.patch
new file mode 100644
index 00000000000..3202de3cbe9
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-10.2.6-radosgw-swift-clean-up-flush-newline-behavior.patch
@@ -0,0 +1,92 @@
+From 39848e41b7c517cc5faab1ccf77c2804fd7d2628 Mon Sep 17 00:00:00 2001
+From: Marcus Watts <mwatts@redhat.com>
+Date: Wed, 11 Jan 2017 00:06:15 -0500
+Subject: [PATCH] radosgw/swift: clean up flush / newline behavior.
+
+The current code emits a newline after swift errors, but fails
+to account for it when it calculates 'content-length'.  This results in
+some clients (go github.com/ncw/swift) producing complaints about the
+unsolicited newline such as this,
+	Unsolicited response received on idle HTTP channel starting with "\n"; err=<nil>
+
+This logic eliminates the newline on flush.  This makes the content length
+calculation correct and eliminates the stray newline.
+
+There was already existing separator logic in the rgw plain formatter
+that can emit a newline at the correct point.  It had been checking
+"len" to decide if previous data had been emitted, but that's reset to 0
+by flush().  So, this logic adds a new per-instance variable to separately
+track state that it emitted a previous item (and should emit a newline).
+
+Fixes: http://tracker.ceph.com/issues/18473
+Signed-off-by: Marcus Watts <mwatts@redhat.com>
+Signed-off-by: Matt Benjamin <mbenjamin@redhat.com>
+(cherry picked from commit 5f229d6a33eae4906f22cdb90941835e47ee9f02)
+---
+ src/rgw/rgw_formats.cc | 11 +++++++----
+ src/rgw/rgw_formats.h  |  1 +
+ 2 files changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/src/rgw/rgw_formats.cc b/src/rgw/rgw_formats.cc
+index 698ec96..61e9b66 100644
+--- a/src/rgw/rgw_formats.cc
++++ b/src/rgw/rgw_formats.cc
+@@ -25,6 +25,7 @@ RGWFormatter_Plain::RGWFormatter_Plain(const bool ukv)
+   : buf(NULL),
+     len(0),
+     max_len(0),
++    wrote_something(false),
+     min_stack_level(0),
+     use_kv(ukv)
+ {
+@@ -41,7 +42,7 @@ void RGWFormatter_Plain::flush(ostream& os)
+     return;
+ 
+   if (len) {
+-    os << buf << "\n";
++    os << buf;
+     os.flush();
+   }
+ 
+@@ -156,13 +157,14 @@ void RGWFormatter_Plain::dump_format_va(const char *name, const char *ns, bool q
+   vsnprintf(buf, LARGE_SIZE, fmt, ap);
+ 
+   const char *eol;
+-  if (len) {
++  if (wrote_something) {
+     if (use_kv && entry.is_array && entry.size > 1)
+       eol = ", ";
+     else
+       eol = "\n";
+   } else
+     eol = "";
++  wrote_something = true;
+ 
+   if (use_kv && !entry.is_array)
+     write_data("%s%s: %s", eol, name, buf);
+@@ -268,10 +270,11 @@ void RGWFormatter_Plain::dump_value_int(const char *name, const char *fmt, ...)
+   va_end(ap);
+ 
+   const char *eol;
+-  if (len)
++  if (wrote_something) {
+     eol = "\n";
+-  else
++  } else
+     eol = "";
++  wrote_something = true;
+ 
+   if (use_kv && !entry.is_array)
+     write_data("%s%s: %s", eol, name, buf);
+diff --git a/src/rgw/rgw_formats.h b/src/rgw/rgw_formats.h
+index 9df5251..1c5afd1 100644
+--- a/src/rgw/rgw_formats.h
++++ b/src/rgw/rgw_formats.h
+@@ -56,6 +56,7 @@ class RGWFormatter_Plain : public Formatter {
+   std::list<struct plain_stack_entry> stack;
+   size_t min_stack_level;
+   bool use_kv;
++  bool wrote_something;
+ };
+ 
+ class RGWFormatterFlusher {


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2017-03-17  2:20 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2017-03-17  2:20 UTC (permalink / raw
  To: gentoo-commits

commit:     881726f6fef97cd9f7e360d257e7b5450861143a
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Fri Mar 17 02:20:08 2017 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Fri Mar 17 02:20:08 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=881726f6

sys-cluster/ceph: Revision bump, some minor init script cleanups/enhancements

Package-Manager: Portage-2.3.4, Repoman-2.3.2

 sys-cluster/ceph/ceph-10.2.5-r5.ebuild | 293 +++++++++++++++++++++++++++++++++
 sys-cluster/ceph/ceph-10.2.6-r1.ebuild | 293 +++++++++++++++++++++++++++++++++
 sys-cluster/ceph/files/ceph.confd-r2   |   8 +
 sys-cluster/ceph/files/ceph.initd-r4   |  49 ++++++
 4 files changed, 643 insertions(+)

diff --git a/sys-cluster/ceph/ceph-10.2.5-r5.ebuild b/sys-cluster/ceph/ceph-10.2.5-r5.ebuild
new file mode 100644
index 00000000000..6a70d39196b
--- /dev/null
+++ b/sys-cluster/ceph/ceph-10.2.5-r5.ebuild
@@ -0,0 +1,293 @@
+# Copyright 1999-2017 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
+
+if [[ ${PV} == *9999* ]]; then
+	inherit git-r3
+	EGIT_REPO_URI="
+		git://github.com/ceph/ceph.git
+		https://github.com/ceph/ceph.git"
+	SRC_URI=""
+else
+	SRC_URI="http://ceph.com/download/${P}.tar.gz"
+	KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+fi
+
+DESCRIPTION="Ceph distributed filesystem"
+HOMEPAGE="http://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
+	app-arch/lz4:=
+	app-arch/bzip2
+	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 )
+	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 )
+	lttng? ( dev-util/lttng-ust )
+	${PYTHON_DEPS}
+	"
+DEPEND="${COMMON_DEPEND}
+	dev-python/cython[${PYTHON_USEDEP}]
+	app-arch/cpio
+	sys-apps/lsb-release
+	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
+	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"
+)
+
+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
+	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-r4" ${PN}
+	newconfd "${FILESDIR}/${PN}.confd-r2" ${PN}
+
+	systemd_install_serviced "${FILESDIR}/ceph-mds_at.service.conf" "ceph-mds@.service"
+	systemd_install_serviced "${FILESDIR}/ceph-osd_at.service.conf" "ceph-osd@.service"
+	systemd_install_serviced "${FILESDIR}/ceph-mon_at.service.conf" "ceph-mon@.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-10.2.6-r1.ebuild b/sys-cluster/ceph/ceph-10.2.6-r1.ebuild
new file mode 100644
index 00000000000..a0c131b1783
--- /dev/null
+++ b/sys-cluster/ceph/ceph-10.2.6-r1.ebuild
@@ -0,0 +1,293 @@
+# Copyright 1999-2017 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
+
+if [[ ${PV} == *9999* ]]; then
+	inherit git-r3
+	EGIT_REPO_URI="
+		git://github.com/ceph/ceph.git
+		https://github.com/ceph/ceph.git"
+	SRC_URI=""
+else
+	SRC_URI="http://download.ceph.com/tarballs/${P}.tar.gz"
+	KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+fi
+
+DESCRIPTION="Ceph distributed filesystem"
+HOMEPAGE="http://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
+	app-arch/lz4:=
+	app-arch/bzip2
+	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 )
+	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 )
+	lttng? ( dev-util/lttng-ust )
+	${PYTHON_DEPS}
+	"
+DEPEND="${COMMON_DEPEND}
+	dev-python/cython[${PYTHON_USEDEP}]
+	app-arch/cpio
+	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
+	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.6-radosgw-swift-clean-up-flush-newline-behavior.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
+	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-r4" ${PN}
+	newconfd "${FILESDIR}/${PN}.confd-r2" ${PN}
+
+	systemd_install_serviced "${FILESDIR}/ceph-mds_at.service.conf" "ceph-mds@.service"
+	systemd_install_serviced "${FILESDIR}/ceph-osd_at.service.conf" "ceph-osd@.service"
+	systemd_install_serviced "${FILESDIR}/ceph-mon_at.service.conf" "ceph-mon@.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/files/ceph.confd-r2 b/sys-cluster/ceph/files/ceph.confd-r2
new file mode 100644
index 00000000000..13b1cfad458
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph.confd-r2
@@ -0,0 +1,8 @@
+# default ceph conf file
+#ceph_conf="/etc/ceph/ceph.conf"
+
+# Set ulimits for Ceph services.
+rc_ulimit="-n 32768"
+
+# initd stop timeout.
+#CEPH_TERMTIMEOUT="TERM/60/KILL/5"

diff --git a/sys-cluster/ceph/files/ceph.initd-r4 b/sys-cluster/ceph/files/ceph.initd-r4
new file mode 100644
index 00000000000..33e1a3002ac
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph.initd-r4
@@ -0,0 +1,49 @@
+#!/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}"
+command="/usr/bin/ceph-${daemon_type}"
+pidfile="/run/ceph/${daemon_type}.${daemon_id}.pid"
+command_args="-i ${daemon_id} --pid-file ${pidfile} -c ${ceph_conf}"
+start_stop_daemon_args="--user ceph --group ceph"
+retry="${CEPH_TERMTIMEOUT:-TERM/60/KILL/5}"
+
+depend() {
+	after net ntpd ntp-client chronyd
+	before netmount
+}
+
+is_type_valid() {
+	case ${daemon_type} in
+		mon|mds|osd) return 0;;
+		*) return 1;;
+	esac
+}
+
+start_pre() {
+	export CEPH_CONF="${ceph_conf}"
+
+	checkpath -d -q -o ceph "$(dirname "${pidfile}")"
+
+	if ! is_type_valid ;then
+		eerror "Please give valid Ceph Server Type: mds, mon, osd"
+		return 1
+	fi
+
+	if pgrep -f "[c]eph-${daemon_type} -i ${daemon_id} "; then
+		eerror "${daemon_type}.${daemon_id} is still running, refusing to start"
+		return 1
+	fi
+}
+
+reload() {
+	ebegin "Reloading Ceph ${daemon_type}.${daemon_id}"
+	start-stop-daemon --signal 1 ${start_stop_daemon_args} --pidfile "${pidfile}"
+	eend $?
+}
+
+# vim:ft=gentoo-init-d:ts=4:sts=4:sw=4:noet:


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2017-07-11  2:18 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2017-07-11  2:18 UTC (permalink / raw
  To: gentoo-commits

commit:     ee0636629e9e5745a052318468d5eb0191ca1f8b
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 11 02:16:18 2017 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Tue Jul 11 02:16:18 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ee063662

sys-cluster/ceph: Version bump to 10.2.8, rework init script

The init script is reworked to use the built-in service supervisor from
sys-apps/openrc. See "man openrc-run" for more information.

Package-Manager: Portage-2.3.6, Repoman-2.3.2

 sys-cluster/ceph/Manifest            |   1 +
 sys-cluster/ceph/ceph-10.2.8.ebuild  | 295 +++++++++++++++++++++++++++++++++++
 sys-cluster/ceph/files/ceph.confd-r3 |  61 ++++++++
 sys-cluster/ceph/files/ceph.initd-r5 |  87 +++++++++++
 4 files changed, 444 insertions(+)

diff --git a/sys-cluster/ceph/Manifest b/sys-cluster/ceph/Manifest
index 181c3c79f9a..797645c3fe5 100644
--- a/sys-cluster/ceph/Manifest
+++ b/sys-cluster/ceph/Manifest
@@ -3,4 +3,5 @@ DIST ceph-10.2.3.tar.gz 11596171 SHA256 dca933aa14db67b404d836ef510bd418091978ed
 DIST ceph-10.2.5.tar.gz 14020700 SHA256 82dd4271f18eb7b84ff16f273a5250a4a9e809bfaccce5a1cca493416332d5f4 SHA512 4889aff38c8af781c2e3dce8f4ee51864db0a27c6294774345d2c1b047588ec31354ad41f799e2f0d0a966dc372d76c9bdbfb93f30a0718ea9d7c2b7a645d0f8 WHIRLPOOL 986a6ac35612a732d2a9a73277525679f9da729601c7e3f82b83e7e8ee2eb4245c98cdf5c4462ae1c789cb3d120a2c4a7eb9a3958b072db5e743b2c015269dfc
 DIST ceph-10.2.6.tar.gz 14500365 SHA256 ad32c549d0ce6de581b5e1c6c7eba38e0f6658aaf8a91990e602f7c64c5e48c7 SHA512 c4321e27a6f8983f69435316c35858ab2b8b620cd80663a5471447c7489d867aef30b22541ca9648a7dcf9d931d04055e29d87dea3a6e94963fb360d06713dee WHIRLPOOL bd886105b47b6cfaeeff882f1d21d710442880c31a1943298db0904a453d67da71519c8fe5e1dd0377480b5413c90bf8ae4bed6bd99bfc53e4696f8b8031c23a
 DIST ceph-10.2.7.tar.gz 14518491 SHA256 2cdfeaa9a08e94c2d35f540b450bbf64b2a694bd537679834185e98fc59d8ba2 SHA512 7e0686e9efa4ddd9d548f4145b448f8232f1ca29b08428daa5cd60a74ce26f1176a1f2ebbf2ac1761d9e6c1d364a5ffa194d2b3a18a8111f59b7c27f7a1d7734 WHIRLPOOL b6b6902230401b5f4c6f27801f315678bdc7b99aab4e50b54d941fc3a425b4f0fa9390484f2e12d6b4f962253fb8772fb706dad35d490b4542b06db166fab59b
+DIST ceph-10.2.8.tar.gz 14548472 SHA256 f284743b007cbb61fc9849dc2249942886116c2cb2abcd346d2304d52b16eaaa SHA512 1f3bf81bf6745033e034c3c4e4f05db5c39b2e8435da20fc130971559e8fde0d640bf00bfaafb374d24c45f873e7d768ae9d7d8cd3388347f5804c4bfc303f09 WHIRLPOOL a8bf29ff913c08d423beb0fefa792c06a653d8ac00bd698b7f77bbaf4657f0530ad5a43043dabb24308ed5a4e569fec53130a78d78d8eddf16026a942de8cc40
 DIST ceph-9.2.1.tar.gz 9933444 SHA256 1918dfc3df80df5986c5b7ff6bc6c78064eef0f6c5e8269dba30e08c703a7c2f SHA512 1e84c1e2d64f4156a523658ed11552b045f75986922b7b7dbaf4719e73a0a6aadc71eb2b94ae363526f729534a592921a437468a41a3cea88c1b84e09de8505a WHIRLPOOL 3a0eb6712e5b0235707e86129e1d66f1184f50cd4980c30f6d8cc0e7dfd96d30b91177ed16dd7abf2ad4983c6a543eb91915f74f661f7d3e3c810b5b1d656aca

diff --git a/sys-cluster/ceph/ceph-10.2.8.ebuild b/sys-cluster/ceph/ceph-10.2.8.ebuild
new file mode 100644
index 00000000000..c4e36e3930a
--- /dev/null
+++ b/sys-cluster/ceph/ceph-10.2.8.ebuild
@@ -0,0 +1,295 @@
+# Copyright 1999-2017 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
+
+if [[ ${PV} == *9999* ]]; then
+	inherit git-r3
+	EGIT_REPO_URI="
+		git://github.com/ceph/ceph.git
+		https://github.com/ceph/ceph.git"
+	SRC_URI=""
+else
+	SRC_URI="http://download.ceph.com/tarballs/${P}.tar.gz"
+	KEYWORDS="~amd64 ~arm64 ~x86"
+fi
+
+DESCRIPTION="Ceph distributed filesystem"
+HOMEPAGE="http://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:= )
+	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 )
+	lttng? ( dev-util/lttng-ust:= )
+	${PYTHON_DEPS}
+	"
+DEPEND="${COMMON_DEPEND}
+	dev-python/cython[${PYTHON_USEDEP}]
+	app-arch/cpio
+	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
+	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"
+)
+
+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
+	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-r5" ${PN}
+	newconfd "${FILESDIR}/${PN}.confd-r3" ${PN}
+
+	systemd_install_serviced "${FILESDIR}/ceph-mds_at.service.conf" "ceph-mds@.service"
+	systemd_install_serviced "${FILESDIR}/ceph-osd_at.service.conf" "ceph-osd@.service"
+	systemd_install_serviced "${FILESDIR}/ceph-mon_at.service.conf" "ceph-mon@.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/files/ceph.confd-r3 b/sys-cluster/ceph/files/ceph.confd-r3
new file mode 100644
index 00000000000..491b1241ba6
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph.confd-r3
@@ -0,0 +1,61 @@
+# /etc/conf.d/ceph: startup configurations for ceph
+
+# default ceph conf file
+#ceph_conf="/etc/ceph/ceph.conf"
+
+# Set ulimits for Ceph services.
+#rc_ulimit="-n 32768"
+
+# the directory under /run to store runtime information in
+#rundir=/run/ceph
+
+# the user and group to run ceph as
+
+# settings for openrc supervisor for various ceph daemons
+#
+# defaults (can be overidden for each daemon)
+#respawn_delay=20
+#respawn_max=5
+#respawn_period=1800
+#stdout="/dev/null"
+#stderr="/dev/null"
+
+# radosgw
+#radosgw_respawn_max
+#radosgw_respawn_delay=20
+#radosgw_respawn_period=1800
+#radosgw_stdout="/dev/null"
+#radosgw_stderr="/dev/null"
+
+# mon
+#mon_respawn_max=5
+#mon_respawn_delay=20
+#mon_respawn_period=1800
+#mon_stdout="/dev/null"
+#mon_stderr="/dev/null"
+
+# osd
+#osd_respawn_max=5
+#osd_respawn_delay=30
+#osd_respawn_period=1800
+#osd_stdout="/dev/null"
+#osd_stderr="/dev/null"
+
+# mds
+#mds_respawn_max=5
+#mds_respawn_delay=20
+#mds_respawn_period=1800
+#mds_stdout="/dev/null"
+#mds_stderr="/dev/null"
+
+# mgr
+#mgr_respawn_max=5
+#mgr_respawn_delay=20
+#mgr_respawn_period=1800
+#mgr_stdout="/dev/null"
+#mgr_stderr="/dev/null"
+
+# initd stop timeout.
+#CEPH_TERMTIMEOUT="TERM/120/KILL/5"
+#
+# vim:ft=gentoo-conf-d:ts=4:sts=4:sw=4:noet:

diff --git a/sys-cluster/ceph/files/ceph.initd-r5 b/sys-cluster/ceph/files/ceph.initd-r5
new file mode 100644
index 00000000000..9ed23b8489a
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph.initd-r5
@@ -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 32768}
+
+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:=/dev/null}
+: ${stderr:=/dev/null}
+: ${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}"
+		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:


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2017-07-31 23:06 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2017-07-31 23:06 UTC (permalink / raw
  To: gentoo-commits

commit:     457cc8d804957b769e7c44147a49237068351b9f
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Mon Jul 31 23:06:16 2017 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Mon Jul 31 23:06:36 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=457cc8d8

sys-cluster/ceph: Revision bump to 10.2.9-r2, fix bug in rbd-nbd mapping

Package-Manager: Portage-2.3.6, Repoman-2.3.3

 sys-cluster/ceph/ceph-10.2.9-r2.ebuild             | 299 +++++++++++++++++++++
 ...elax_size_check_for_newer_kernel_versions.patch |  28 ++
 2 files changed, 327 insertions(+)

diff --git a/sys-cluster/ceph/ceph-10.2.9-r2.ebuild b/sys-cluster/ceph/ceph-10.2.9-r2.ebuild
new file mode 100644
index 00000000000..a9d0eec50ea
--- /dev/null
+++ b/sys-cluster/ceph/ceph-10.2.9-r2.ebuild
@@ -0,0 +1,299 @@
+# Copyright 1999-2017 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
+
+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
+	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
+	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-libradosstriper_fix_format_injection_vulnerability.patch"
+	"${FILESDIR}/${PN}-10.2.9-rbd-nbd_relax_size_check_for_newer_kernel_versions.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
+	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-r5" ${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/files/ceph-10.2.9-rbd-nbd_relax_size_check_for_newer_kernel_versions.patch b/sys-cluster/ceph/files/ceph-10.2.9-rbd-nbd_relax_size_check_for_newer_kernel_versions.patch
new file mode 100644
index 00000000000..5cb89be0edf
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-10.2.9-rbd-nbd_relax_size_check_for_newer_kernel_versions.patch
@@ -0,0 +1,28 @@
+diff --git a/src/tools/rbd_nbd/rbd-nbd.cc b/src/tools/rbd_nbd/rbd-nbd.cc
+index 2e399ab832..88e1e0ff65 100644
+--- a/src/tools/rbd_nbd/rbd-nbd.cc
++++ b/src/tools/rbd_nbd/rbd-nbd.cc
+@@ -469,6 +469,10 @@ static int open_device(const char* path, bool try_load_moudle = false)
+ 
+ static int check_device_size(int nbd_index, unsigned long expected_size)
+ {
++  // There are bugs with some older kernel versions that result in an
++  // overflow for large image sizes. This check is to ensure we are
++  // not affected.
++
+   unsigned long size = 0;
+   std::string path = "/sys/block/nbd" + stringify(nbd_index) + "/size";
+   std::ifstream ifs;
+@@ -480,6 +484,12 @@ static int check_device_size(int nbd_index, unsigned long expected_size)
+   ifs >> size;
+   size *= RBD_NBD_BLKSIZE;
+ 
++  if (size == 0) {
++    // Newer kernel versions will report real size only after nbd
++    // connect. Assume this is the case and return success.
++    return 0;
++  }
++
+   if (size != expected_size) {
+     cerr << "rbd-nbd: kernel reported invalid device size (" << size
+          << ", expected " << expected_size << ")" << std::endl;


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2017-09-01  1:46 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2017-09-01  1:46 UTC (permalink / raw
  To: gentoo-commits

commit:     36e2a6eb3dcb8f4d62830c2eeccae3c5c680291d
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Fri Sep  1 01:45:53 2017 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Fri Sep  1 01:45:53 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=36e2a6eb

sys-cluster/ceph: Version bump to 12.2.0

Package-Manager: Portage-2.3.8, Repoman-2.3.3

 sys-cluster/ceph/Manifest                          |   1 +
 sys-cluster/ceph/ceph-12.2.0.ebuild                | 272 +++++++++++++++++++++
 ...h-12.2.0-fix_two_stray_get_health_callers.patch |  46 ++++
 .../ceph-12.2.0-use-provided-cpu-flag-values.patch |  37 +++
 sys-cluster/ceph/metadata.xml                      |   1 +
 5 files changed, 357 insertions(+)

diff --git a/sys-cluster/ceph/Manifest b/sys-cluster/ceph/Manifest
index 5f0cc0c6676..ba05389cad1 100644
--- a/sys-cluster/ceph/Manifest
+++ b/sys-cluster/ceph/Manifest
@@ -3,4 +3,5 @@ DIST ceph-10.2.3.tar.gz 11596171 SHA256 dca933aa14db67b404d836ef510bd418091978ed
 DIST ceph-10.2.7.tar.gz 14518491 SHA256 2cdfeaa9a08e94c2d35f540b450bbf64b2a694bd537679834185e98fc59d8ba2 SHA512 7e0686e9efa4ddd9d548f4145b448f8232f1ca29b08428daa5cd60a74ce26f1176a1f2ebbf2ac1761d9e6c1d364a5ffa194d2b3a18a8111f59b7c27f7a1d7734 WHIRLPOOL b6b6902230401b5f4c6f27801f315678bdc7b99aab4e50b54d941fc3a425b4f0fa9390484f2e12d6b4f962253fb8772fb706dad35d490b4542b06db166fab59b
 DIST ceph-10.2.8.tar.gz 14548472 SHA256 f284743b007cbb61fc9849dc2249942886116c2cb2abcd346d2304d52b16eaaa SHA512 1f3bf81bf6745033e034c3c4e4f05db5c39b2e8435da20fc130971559e8fde0d640bf00bfaafb374d24c45f873e7d768ae9d7d8cd3388347f5804c4bfc303f09 WHIRLPOOL a8bf29ff913c08d423beb0fefa792c06a653d8ac00bd698b7f77bbaf4657f0530ad5a43043dabb24308ed5a4e569fec53130a78d78d8eddf16026a942de8cc40
 DIST ceph-10.2.9.tar.gz 14550219 SHA256 3d93f4fc4a66b1d9f9ce43f65868dc18287cea32fbb2c7421faca6aed2b52a80 SHA512 1d59146614aa87ca551b05b795a684071a3cfb4ce6013e978ba650403c6732b2aa13f3c3cc191e6a1ea34b4631c82e97700593c24e200c41ec2f2b43b3ef5547 WHIRLPOOL 42215d33c4f617087e1b0ef81cd41b42330c3605acf625b0668d44eba9e982239683b466a1cc1a6f926fc1d439dfd6be4ce220f783da7d2214d36a2a6cc9181f
+DIST ceph-12.2.0.tar.gz 148372459 SHA256 0f601a9e28e9ce6837119b3ef0d89e1e44e0432f1f5d55567a947efefdd4d4ce SHA512 e084109c48f5666e35df5ee49262dee36ba5e7620fda30002dec538a87de11bdd21157436b5656557cd909a0943071046f3a17dd679aa1129b88b8b925f73113 WHIRLPOOL 60016eb5a20159bfc74b16c4135055cf8bf68bd868ef897b2455107a1014d4663efd55e6f5977e7d2e29010660a59d6134e3af32922d15dccbae07145c9023ea
 DIST ceph-9.2.1.tar.gz 9933444 SHA256 1918dfc3df80df5986c5b7ff6bc6c78064eef0f6c5e8269dba30e08c703a7c2f SHA512 1e84c1e2d64f4156a523658ed11552b045f75986922b7b7dbaf4719e73a0a6aadc71eb2b94ae363526f729534a592921a437468a41a3cea88c1b84e09de8505a WHIRLPOOL 3a0eb6712e5b0235707e86129e1d66f1184f50cd4980c30f6d8cc0e7dfd96d30b91177ed16dd7abf2ad4983c6a543eb91915f74f661f7d3e3c810b5b1d656aca

diff --git a/sys-cluster/ceph/ceph-12.2.0.ebuild b/sys-cluster/ceph/ceph-12.2.0.ebuild
new file mode 100644
index 00000000000..86ffb9c4fef
--- /dev/null
+++ b/sys-cluster/ceph/ceph-12.2.0.ebuild
@@ -0,0 +1,272 @@
+# Copyright 1999-2017 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="
+	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,static-libs?]
+	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 )
+	"
+
+# radosgw seems to be required to actually build
+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}/${PN}-12.2.0-use-provided-cpu-flag-values.patch"
+
+	# pull in some bugfixes from upstream
+	"${FILESDIR}/${PN}-12.2.0-fix_two_stray_get_health_callers.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:--1}
+	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
+	)
+	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
+}
+
+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-r5" ${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/files/ceph-12.2.0-fix_two_stray_get_health_callers.patch b/sys-cluster/ceph/files/ceph-12.2.0-fix_two_stray_get_health_callers.patch
new file mode 100644
index 00000000000..ec6f53ef461
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-12.2.0-fix_two_stray_get_health_callers.patch
@@ -0,0 +1,46 @@
+commit b713cc831da238844a6e42e80e93cb31ee060aad
+Author: Sage Weil <sage@redhat.com>
+Date:   Fri Aug 25 18:30:12 2017 -0400
+
+    mon: fix two stray legacy get_health() callers
+    
+    These need to call the new method when appropriate.
+    
+    Signed-off-by: Sage Weil <sage@redhat.com>
+    (cherry picked from commit 69038a18070d0cd47dc857020cce115514beaa3d)
+
+diff --git a/src/mon/Monitor.cc b/src/mon/Monitor.cc
+index d98a40967b..b330d78f8c 100644
+--- a/src/mon/Monitor.cc
++++ b/src/mon/Monitor.cc
+@@ -3363,8 +3363,12 @@ void Monitor::handle_command(MonOpRequestRef op)
+       tagstr = tagstr.substr(0, tagstr.find_last_of(' '));
+     f->dump_string("tag", tagstr);
+ 
+-    list<string> hs;
+-    get_health(hs, NULL, f.get());
++    if (osdmon()->osdmap.require_osd_release >= CEPH_RELEASE_LUMINOUS) {
++      get_health_status(true, f.get(), nullptr);
++    } else {
++      list<string> health_str;
++      get_health(health_str, nullptr, f.get());
++    }
+ 
+     monmon()->dump_info(f.get());
+     osdmon()->dump_info(f.get());
+@@ -4399,8 +4403,13 @@ void Monitor::handle_ping(MonOpRequestRef op)
+   boost::scoped_ptr<Formatter> f(new JSONFormatter(true));
+   f->open_object_section("pong");
+ 
+-  list<string> health_str;
+-  get_health(health_str, NULL, f.get());
++  if (osdmon()->osdmap.require_osd_release >= CEPH_RELEASE_LUMINOUS) {
++    get_health_status(false, f.get(), nullptr);
++  } else {
++    list<string> health_str;
++    get_health(health_str, nullptr, f.get());
++  }
++
+   {
+     stringstream ss;
+     get_mon_status(f.get(), ss);

diff --git a/sys-cluster/ceph/files/ceph-12.2.0-use-provided-cpu-flag-values.patch b/sys-cluster/ceph/files/ceph-12.2.0-use-provided-cpu-flag-values.patch
new file mode 100644
index 00000000000..55c82b0a272
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-12.2.0-use-provided-cpu-flag-values.patch
@@ -0,0 +1,37 @@
+diff --git a/cmake/modules/SIMDExt.cmake b/cmake/modules/SIMDExt.cmake
+index 5330835aa1..a4dd881e34 100644
+--- a/cmake/modules/SIMDExt.cmake
++++ b/cmake/modules/SIMDExt.cmake
+@@ -76,32 +76,25 @@ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "arm|ARM")
+ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "i386|i686|amd64|x86_64|AMD64")
+   set(HAVE_INTEL 1)
+   if(CMAKE_SYSTEM_PROCESSOR MATCHES "i686|amd64|x86_64|AMD64")
+-    CHECK_C_COMPILER_FLAG(-msse HAVE_INTEL_SSE)
+     if(HAVE_INTEL_SSE)
+       set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse")
+     endif()
+     if(CMAKE_SYSTEM_PROCESSOR MATCHES "amd64|x86_64|AMD64")
+-      CHECK_C_COMPILER_FLAG(-msse2 HAVE_INTEL_SSE2)
+       if(HAVE_INTEL_SSE2)
+         set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse2")
+       endif()
+-      CHECK_C_COMPILER_FLAG(-msse3 HAVE_INTEL_SSE3)
+       if(HAVE_INTEL_SSE3)
+         set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse3")
+       endif()
+-      CHECK_C_COMPILER_FLAG(-mssse3 HAVE_INTEL_SSSE3)
+       if(HAVE_INTEL_SSSE3)
+         set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -mssse3")
+       endif()
+-      CHECK_C_COMPILER_FLAG(-mpclmul HAVE_INTEL_PCLMUL)
+       if(HAVE_INTEL_PCLMUL)
+         set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -mpclmul")
+       endif()
+-      CHECK_C_COMPILER_FLAG(-msse4.1 HAVE_INTEL_SSE4_1)
+       if(HAVE_INTEL_SSE4_1)
+         set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse4.1")
+       endif()
+-      CHECK_C_COMPILER_FLAG(-msse4.2 HAVE_INTEL_SSE4_2)
+       if(HAVE_INTEL_SSE4_2)
+         set(SIMD_COMPILE_FLAGS "${SIMD_COMPILE_FLAGS} -msse4.2")
+       endif()

diff --git a/sys-cluster/ceph/metadata.xml b/sys-cluster/ceph/metadata.xml
index 958ea7ee16d..be0d84faee0 100644
--- a/sys-cluster/ceph/metadata.xml
+++ b/sys-cluster/ceph/metadata.xml
@@ -26,6 +26,7 @@ Ceph is a distributed network file system designed to provide excellent performa
     <flag name="libaio">Use libaio as asynchronous input/output library</flag>
     <flag name="lttng">Add support for LTTng</flag>
     <flag name="babeltrace">Add support for LTTng babeltrace</flag>
+    <flag name="mgr">Build the ceph-mgr daemon</flag>
     <flag name="nss">Use <pkg>dev-libs/nss</pkg> for cryptography</flag>
     <flag name="radosgw">Add radosgw support</flag>
     <flag name="jemalloc">Use <pkg>dev-libs/jemalloc</pkg> for allocations</flag>


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2017-09-07 23:40 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2017-09-07 23:40 UTC (permalink / raw
  To: gentoo-commits

commit:     e282ab19abdaa03f1405a11e363d281ea5a070aa
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Thu Sep  7 23:37:44 2017 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Thu Sep  7 23:37:44 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e282ab19

sys-cluster/ceph: Fix 10.2.9-r3 to respect CFLAGS

Also don't call lsb_release if it is not installed. Filter debugging
CFLAGS with gcc-7.2.0 as it causes the compiler to crash.

Package-Manager: Portage-2.3.8, Repoman-2.3.3

 sys-cluster/ceph/ceph-10.2.9-r3.ebuild             | 10 +++-
 sys-cluster/ceph/files/ceph-10.2.9-cflags.patch    | 15 +++++
 .../files/ceph-10.2.9-dont-run-lsb_release.patch   | 65 ++++++++++++++++++++++
 3 files changed, 88 insertions(+), 2 deletions(-)

diff --git a/sys-cluster/ceph/ceph-10.2.9-r3.ebuild b/sys-cluster/ceph/ceph-10.2.9-r3.ebuild
index edd9ac4bbd6..73d8983868d 100644
--- a/sys-cluster/ceph/ceph-10.2.9-r3.ebuild
+++ b/sys-cluster/ceph/ceph-10.2.9-r3.ebuild
@@ -5,7 +5,7 @@ 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
+	readme.gentoo-r1 systemd versionator flag-o-matic toolchain-funcs
 
 if [[ ${PV} == *9999* ]]; then
 	inherit git-r3
@@ -114,6 +114,8 @@ PATCHES=(
 	"${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"
 	# pull in some bugfixes from upstream
 	"${FILESDIR}/${PN}-10.2.9-libradosstriper_fix_format_injection_vulnerability.patch"
 	"${FILESDIR}/${PN}-10.2.9-rbd-nbd_relax_size_check_for_newer_kernel_versions.patch"
@@ -122,7 +124,6 @@ PATCHES=(
 	"${FILESDIR}/${PN}-10.2.9-osd-scrub_to_specifies_clone_ver_but_transaction_include.patch"
 	"${FILESDIR}/${PN}-10.2.9-rbd-do_not_attempt_to_load_key_if_auth_is_disabled.patch"
 	"${FILESDIR}/${PN}-10.2.9-unlock_sdata_op_ordering_lock_with_sdata_lock.patch"
-
 )
 
 check-reqs_export_vars() {
@@ -197,6 +198,11 @@ src_prepare() {
 	#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
 }
 

diff --git a/sys-cluster/ceph/files/ceph-10.2.9-cflags.patch b/sys-cluster/ceph/files/ceph-10.2.9-cflags.patch
new file mode 100644
index 00000000000..31221ae2f99
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-10.2.9-cflags.patch
@@ -0,0 +1,15 @@
+diff --git a/src/Makefile-env.am b/src/Makefile-env.am
+index 4771bad02d..f92e20479b 100644
+--- a/src/Makefile-env.am
++++ b/src/Makefile-env.am
+@@ -53,10 +53,6 @@ endif
+ ## automake environment
+ 
+ HARDENING_CFLAGS = \
+-                   -O2 \
+-                   -g \
+-                   -pipe \
+-                   -Wall \
+                    -Wp,-U_FORTIFY_SOURCE \
+                    -Wp,-D_FORTIFY_SOURCE=2 \
+                    -fexceptions \

diff --git a/sys-cluster/ceph/files/ceph-10.2.9-dont-run-lsb_release.patch b/sys-cluster/ceph/files/ceph-10.2.9-dont-run-lsb_release.patch
new file mode 100644
index 00000000000..a6b5515cee2
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-10.2.9-dont-run-lsb_release.patch
@@ -0,0 +1,65 @@
+diff --git a/src/ceph-detect-init/Makefile.am b/src/ceph-detect-init/Makefile.am
+index 3926ac4bec..90e2eae50c 100644
+--- a/src/ceph-detect-init/Makefile.am
++++ b/src/ceph-detect-init/Makefile.am
+@@ -67,7 +67,7 @@ ceph-detect-init-clean:
+ ceph-detect-init-install-data:
+ 	cd $(srcdir)/ceph-detect-init ; \
+ 	if test "$(DESTDIR)" ; then \
+-		if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \
++		if command -v lsb_release >/dev/null && lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \
+ 			options=--install-layout=deb ; \
+ 		else \
+ 			options=--prefix=/usr ; \
+diff --git a/src/ceph-disk/Makefile.am b/src/ceph-disk/Makefile.am
+index a8532878c8..d908b1649a 100644
+--- a/src/ceph-disk/Makefile.am
++++ b/src/ceph-disk/Makefile.am
+@@ -43,7 +43,7 @@ ceph-disk-clean:
+ ceph-disk-install-data:
+ 	cd $(srcdir)/ceph-disk ; \
+ 	if test "$(DESTDIR)" ; then \
+-		if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \
++		if command -v lsb_release >/dev/null && lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \
+ 			options=--install-layout=deb ; \
+ 		else \
+ 			options=--prefix=/usr ; \
+diff --git a/src/pybind/cephfs/Makefile.am b/src/pybind/cephfs/Makefile.am
+index 698522daa4..c49c190986 100644
+--- a/src/pybind/cephfs/Makefile.am
++++ b/src/pybind/cephfs/Makefile.am
+@@ -15,7 +15,7 @@ cephfs-pybind-clean: ${srcdir}/ceph_ver.h
+ 
+ cephfs-pybind-install-exec: ${srcdir}/ceph_ver.h
+ 	if test "$(DESTDIR)" ; then \
+-		if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \
++		if command -v lsb_release >/dev/null && lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \
+ 			options=--install-layout=deb ; \
+ 		else \
+ 			options=--prefix=/usr ; \
+diff --git a/src/pybind/rados/Makefile.am b/src/pybind/rados/Makefile.am
+index a4145bf0f4..960395fee8 100644
+--- a/src/pybind/rados/Makefile.am
++++ b/src/pybind/rados/Makefile.am
+@@ -15,7 +15,7 @@ rados-pybind-clean: ${srcdir}/ceph_ver.h
+ 
+ rados-pybind-install-exec: ${srcdir}/ceph_ver.h
+ 	if test "$(DESTDIR)" ; then \
+-		if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \
++		if command -v lsb_release >/dev/null && lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \
+ 			options=--install-layout=deb ; \
+ 		else \
+ 			options=--prefix=/usr ; \
+diff --git a/src/pybind/rbd/Makefile.am b/src/pybind/rbd/Makefile.am
+index 7dd49333fa..fbb940d07d 100644
+--- a/src/pybind/rbd/Makefile.am
++++ b/src/pybind/rbd/Makefile.am
+@@ -15,7 +15,7 @@ rbd-pybind-clean: ${srcdir}/ceph_ver.h
+ 
+ rbd-pybind-install-exec: ${srcdir}/ceph_ver.h
+ 	if test "$(DESTDIR)" ; then \
+-		if lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \
++		if command -v lsb_release >/dev/null && lsb_release -si | grep --quiet 'Ubuntu\|Debian\|Devuan' ; then \
+ 			options=--install-layout=deb ; \
+ 		else \
+ 			options=--prefix=/usr ; \


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2017-09-07 23:40 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2017-09-07 23:40 UTC (permalink / raw
  To: gentoo-commits

commit:     7eea3cfaacc3251aaefa1fb0575927ded4036cfc
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Thu Sep  7 23:40:21 2017 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Thu Sep  7 23:40:21 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7eea3cfa

sys-cluster/ceph: Clean out old versions

Package-Manager: Portage-2.3.8, Repoman-2.3.3

 sys-cluster/ceph/Manifest                      |   3 -
 sys-cluster/ceph/ceph-0.94.9.ebuild            | 172 ---------------
 sys-cluster/ceph/ceph-10.2.8.ebuild            | 292 -------------------------
 sys-cluster/ceph/ceph-9.2.1-r2.ebuild          | 189 ----------------
 sys-cluster/ceph/files/ceph-0.79-libzfs.patch  |  13 --
 sys-cluster/ceph/files/ceph-9.2.1-libxfs.patch |  28 ---
 6 files changed, 697 deletions(-)

diff --git a/sys-cluster/ceph/Manifest b/sys-cluster/ceph/Manifest
index ba05389cad1..54c044058ee 100644
--- a/sys-cluster/ceph/Manifest
+++ b/sys-cluster/ceph/Manifest
@@ -1,7 +1,4 @@
-DIST ceph-0.94.9.tar.gz 9044702 SHA256 d5bc07e7aef75f74d75f0356e5dd2a17956cbad6bb552a1e96a0fabd80924050 SHA512 ef4bbcc4429e22a2d924fd52dc42f522d5327f67ee8c1781d7cf602c2932a485cb48db21bdc33e7c7fbc968eec59c17882ebb18e6405599e11a3abc248f1d376 WHIRLPOOL f348159e8d7dd5e1ac3810a51846f50f6cefdbc5fa4cd15c3127b1136eb960baca8ad8db33c78a5d6435720cf1e2c277e068d09f9b9dbcf0f8ad56d7ddd914dc
 DIST ceph-10.2.3.tar.gz 11596171 SHA256 dca933aa14db67b404d836ef510bd418091978edc2f0c74dfc530ba0aa5e8994 SHA512 9de1e6851fc343d2c52c72cec3f7887d998d5b588f1251ee3a1fda14427badfa10408e6691fb03a374a10f4ec9844868423fee70fbbe2c0d962af98481412f19 WHIRLPOOL 981ebca66113a07a5cc6e5934272a72b29a2c19e03398f7b622c11df6ea0a05339558dfc2f11504403cbbd0efe0b090ad59f4b86206b46db57587744091aa26a
 DIST ceph-10.2.7.tar.gz 14518491 SHA256 2cdfeaa9a08e94c2d35f540b450bbf64b2a694bd537679834185e98fc59d8ba2 SHA512 7e0686e9efa4ddd9d548f4145b448f8232f1ca29b08428daa5cd60a74ce26f1176a1f2ebbf2ac1761d9e6c1d364a5ffa194d2b3a18a8111f59b7c27f7a1d7734 WHIRLPOOL b6b6902230401b5f4c6f27801f315678bdc7b99aab4e50b54d941fc3a425b4f0fa9390484f2e12d6b4f962253fb8772fb706dad35d490b4542b06db166fab59b
-DIST ceph-10.2.8.tar.gz 14548472 SHA256 f284743b007cbb61fc9849dc2249942886116c2cb2abcd346d2304d52b16eaaa SHA512 1f3bf81bf6745033e034c3c4e4f05db5c39b2e8435da20fc130971559e8fde0d640bf00bfaafb374d24c45f873e7d768ae9d7d8cd3388347f5804c4bfc303f09 WHIRLPOOL a8bf29ff913c08d423beb0fefa792c06a653d8ac00bd698b7f77bbaf4657f0530ad5a43043dabb24308ed5a4e569fec53130a78d78d8eddf16026a942de8cc40
 DIST ceph-10.2.9.tar.gz 14550219 SHA256 3d93f4fc4a66b1d9f9ce43f65868dc18287cea32fbb2c7421faca6aed2b52a80 SHA512 1d59146614aa87ca551b05b795a684071a3cfb4ce6013e978ba650403c6732b2aa13f3c3cc191e6a1ea34b4631c82e97700593c24e200c41ec2f2b43b3ef5547 WHIRLPOOL 42215d33c4f617087e1b0ef81cd41b42330c3605acf625b0668d44eba9e982239683b466a1cc1a6f926fc1d439dfd6be4ce220f783da7d2214d36a2a6cc9181f
 DIST ceph-12.2.0.tar.gz 148372459 SHA256 0f601a9e28e9ce6837119b3ef0d89e1e44e0432f1f5d55567a947efefdd4d4ce SHA512 e084109c48f5666e35df5ee49262dee36ba5e7620fda30002dec538a87de11bdd21157436b5656557cd909a0943071046f3a17dd679aa1129b88b8b925f73113 WHIRLPOOL 60016eb5a20159bfc74b16c4135055cf8bf68bd868ef897b2455107a1014d4663efd55e6f5977e7d2e29010660a59d6134e3af32922d15dccbae07145c9023ea
-DIST ceph-9.2.1.tar.gz 9933444 SHA256 1918dfc3df80df5986c5b7ff6bc6c78064eef0f6c5e8269dba30e08c703a7c2f SHA512 1e84c1e2d64f4156a523658ed11552b045f75986922b7b7dbaf4719e73a0a6aadc71eb2b94ae363526f729534a592921a437468a41a3cea88c1b84e09de8505a WHIRLPOOL 3a0eb6712e5b0235707e86129e1d66f1184f50cd4980c30f6d8cc0e7dfd96d30b91177ed16dd7abf2ad4983c6a543eb91915f74f661f7d3e3c810b5b1d656aca

diff --git a/sys-cluster/ceph/ceph-0.94.9.ebuild b/sys-cluster/ceph/ceph-0.94.9.ebuild
deleted file mode 100644
index 1d7eef4c590..00000000000
--- a/sys-cluster/ceph/ceph-0.94.9.ebuild
+++ /dev/null
@@ -1,172 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-PYTHON_COMPAT=( python2_7 )
-
-if [[ $PV = *9999* ]]; then
-	scm_eclass=git-r3
-	EGIT_REPO_URI="https://github.com/ceph/ceph.git"
-	SRC_URI=""
-else
-	[[ -n ${UPSTREAM_VER} ]] && \
-		UPSTREAM_PATCHSET_URI="https://dev.gentoo.org/~dlan/distfiles/${P}-upstream-patches-${UPSTREAM_VER}.tar.xz"
-
-	SRC_URI="https://download.ceph.com/tarballs/${P}.tar.gz
-		${UPSTREAM_PATCHSET_URI}"
-fi
-KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
-
-inherit check-reqs autotools eutils multilib python-single-r1 udev readme.gentoo-r1 systemd ${scm_eclass}
-
-DESCRIPTION="Ceph distributed filesystem"
-HOMEPAGE="https://ceph.com/"
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-IUSE="babeltrace cryptopp debug fuse gtk libatomic +libaio lttng +nss radosgw static-libs jemalloc python tcmalloc xfs zfs"
-
-COMMON_DEPEND="
-	app-arch/snappy
-	dev-libs/boost:=[threads]
-	dev-libs/fcgi
-	dev-libs/libaio
-	dev-libs/libedit
-	dev-libs/leveldb[snappy]
-	nss? ( dev-libs/nss )
-	cryptopp? ( dev-libs/crypto++ )
-	sys-apps/keyutils
-	sys-apps/util-linux
-	dev-libs/libxml2
-	babeltrace? ( dev-util/babeltrace )
-	fuse? ( sys-fs/fuse:0 )
-	libatomic? ( dev-libs/libatomic_ops )
-	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 )
-	lttng? ( dev-util/lttng-ust )
-	${PYTHON_DEPS}
-	"
-DEPEND="${COMMON_DEPEND}
-	virtual/pkgconfig"
-RDEPEND="${COMMON_DEPEND}
-	sys-apps/hdparm
-	dev-python/flask[${PYTHON_USEDEP}]
-	dev-python/requests[${PYTHON_USEDEP}]
-	"
-REQUIRED_USE="
-	${PYTHON_REQUIRED_USE}
-	^^ ( nss cryptopp )
-	?? ( jemalloc tcmalloc )
-	"
-
-STRIP_MASK="/usr/lib*/rados-classes/*"
-
-PATCHES=(
-	"${FILESDIR}"/${PN}-0.79-libzfs.patch
-)
-CHECKREQS_DISK_BUILD="1400M"
-
-pkg_setup() {
-	python_setup
-}
-
-src_prepare() {
-	# Upstream's patchset
-	if [[ -n ${UPSTREAM_VER} ]]; then
-		einfo "Try to apply Ceph Upstream patch set"
-		EPATCH_SUFFIX="patch" \
-		EPATCH_FORCE="yes" \
-		EPATCH_OPTS="-p1" \
-			epatch "${WORKDIR}"/patches-upstream
-	fi
-
-	[[ ${PATCHES[@]} ]] && epatch "${PATCHES[@]}"
-
-	epatch_user
-	eautoreconf
-}
-
-src_configure() {
-	local myeconfargs=(
-		--without-hadoop
-		--docdir="${EPREFIX}/usr/share/doc/${PF}"
-		--includedir=/usr/include
-		$(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)
-		--without-kinetic
-		--without-librocksdb
-	)
-
-	use jemalloc || \
-		myeconfargs+=( $(usex tcmalloc " --with-tcmalloc" " --with-tcmalloc-minimal") )
-
-	PYTHON="${EPYTHON}" \
-		econf "${myeconfargs[@]}"
-}
-
-src_install() {
-	default
-
-	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}
-
-	chmod 644 "${ED}"/usr/share/doc/${PF}/sample.*
-
-	keepdir /var/lib/${PN}
-	keepdir /var/lib/${PN}/tmp
-	keepdir /var/log/${PN}/stat
-
-	newinitd "${FILESDIR}/rbdmap.initd" rbdmap
-	newinitd "${FILESDIR}/${PN}.initd-r1.1" ${PN}
-	newconfd "${FILESDIR}/${PN}.confd-r1" ${PN}
-
-	systemd_dounit           "${FILESDIR}/ceph.target"
-	systemd_newunit          "${FILESDIR}/ceph-mds_at.service"      "ceph-mds@.service"
-	systemd_install_serviced "${FILESDIR}/ceph-mds_at.service.conf" "ceph-mds@.service"
-	systemd_newunit          "${FILESDIR}/ceph-osd_at.service"      "ceph-osd@.service"
-	systemd_install_serviced "${FILESDIR}/ceph-osd_at.service.conf" "ceph-osd@.service"
-	systemd_newunit          "${FILESDIR}/ceph-mon_at.service"      "ceph-mon@.service"
-
-	python_fix_shebang \
-		"${ED}"/usr/sbin/{ceph-disk,ceph-create-keys} \
-		"${ED}"/usr/bin/{ceph,ceph-rest-api,ceph-brag}
-
-	#install udev rules
-	udev_dorules udev/50-rbd.rules
-	udev_dorules udev/95-ceph-osd.rules
-
-	readme.gentoo_create_doc
-}
-
-pkg_postinst() {
-	readme.gentoo_print_elog
-}

diff --git a/sys-cluster/ceph/ceph-10.2.8.ebuild b/sys-cluster/ceph/ceph-10.2.8.ebuild
deleted file mode 100644
index 90cd7f880ef..00000000000
--- a/sys-cluster/ceph/ceph-10.2.8.ebuild
+++ /dev/null
@@ -1,292 +0,0 @@
-# Copyright 1999-2017 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
-
-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 )
-	lttng? ( dev-util/lttng-ust:= )
-	${PYTHON_DEPS}
-	"
-DEPEND="${COMMON_DEPEND}
-	dev-python/cython[${PYTHON_USEDEP}]
-	app-arch/cpio
-	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
-	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"
-)
-
-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
-	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-r5" ${PN}
-	newconfd "${FILESDIR}/${PN}.confd-r3" ${PN}
-
-	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-9.2.1-r2.ebuild b/sys-cluster/ceph/ceph-9.2.1-r2.ebuild
deleted file mode 100644
index 529686284af..00000000000
--- a/sys-cluster/ceph/ceph-9.2.1-r2.ebuild
+++ /dev/null
@@ -1,189 +0,0 @@
-# Copyright 1999-2017 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=5
-PYTHON_COMPAT=( python2_7 )
-
-if [[ $PV = *9999* ]]; then
-	scm_eclass=git-r3
-	EGIT_REPO_URI="https://github.com/ceph/ceph.git"
-	SRC_URI=""
-else
-	SRC_URI="https://download.ceph.com/tarballs/${P}.tar.gz"
-fi
-KEYWORDS="amd64 ~arm ~ppc ~ppc64 x86"
-
-inherit check-reqs autotools eutils multilib python-single-r1 udev user readme.gentoo systemd versionator ${scm_eclass}
-
-DESCRIPTION="Ceph distributed filesystem"
-HOMEPAGE="https://ceph.com/"
-
-LICENSE="LGPL-2.1"
-SLOT="0"
-IUSE="babeltrace cryptopp debug fuse gtk libatomic +libaio lttng +nss radosgw static-libs jemalloc tcmalloc xfs zfs"
-
-COMMON_DEPEND="
-	app-arch/snappy
-	dev-libs/boost:=[threads]
-	dev-libs/fcgi
-	dev-libs/libaio
-	dev-libs/libedit
-	dev-libs/leveldb[snappy]
-	nss? ( dev-libs/nss )
-	cryptopp? ( dev-libs/crypto++ )
-	sys-apps/keyutils
-	sys-apps/util-linux
-	dev-libs/libxml2
-	babeltrace? ( dev-util/babeltrace )
-	fuse? ( sys-fs/fuse:0 )
-	libatomic? ( dev-libs/libatomic_ops )
-	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 )
-	lttng? ( dev-util/lttng-ust )
-	${PYTHON_DEPS}
-	"
-DEPEND="${COMMON_DEPEND}
-	virtual/pkgconfig"
-RDEPEND="${COMMON_DEPEND}
-	sys-apps/hdparm
-	dev-python/flask[${PYTHON_USEDEP}]
-	dev-python/requests[${PYTHON_USEDEP}]
-	"
-REQUIRED_USE="
-	${PYTHON_REQUIRED_USE}
-	^^ ( nss cryptopp )
-	?? ( jemalloc tcmalloc )
-	"
-
-STRIP_MASK="/usr/lib*/rados-classes/*"
-
-PATCHES=(
-	"${FILESDIR}"/${PN}-0.79-libzfs.patch
-	"${FILESDIR}"/${P}-libxfs.patch
-)
-
-check-reqs_export_vars() {
-	# check-reqs does not support use flags, and there is a lot of variability
-	# in Ceph.
-	# 16G     /var/tmp/portage/sys-cluster/ceph-9999-r1/work/ceph-9999
-	# 6.7G    /var/tmp/portage/sys-cluster/ceph-9999-r1/image/usr
-	# 23G     /var/tmp/portage/sys-cluster/ceph-9999-r1
-	# Size requirements tested for Hammer & Jewel releases
-	if use debug; then
-		export CHECKREQS_DISK_BUILD="23G"
-		export CHECKREQS_DISK_USR="7G"
-	else
-		export CHECKREQS_DISK_BUILD="9G"
-		export CHECKREQS_DISK_USR="450M"
-	fi
-
-	export CHECKREQS_MEMORY="7G"
-}
-
-user_setup() {
-	enewgroup ceph
-	enewuser ceph -1 -1 /var/lib/ceph ceph
-}
-
-pkg_setup() {
-	python_setup
-	check-reqs_export_vars
-	check-reqs_pkg_setup
-	user_setup
-}
-
-src_prepare() {
-	[[ ${PATCHES[@]} ]] && epatch "${PATCHES[@]}"
-
-	epatch_user
-	eautoreconf
-}
-
-pkg_pretend() {
-	check-reqs_export_vars
-	check-reqs_pkg_pretend
-}
-
-src_configure() {
-	local myeconfargs=(
-		--without-hadoop
-		--docdir="${EPREFIX}/usr/share/doc/${PF}"
-		--includedir=/usr/include
-		$(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)
-		--without-kinetic
-		--without-librocksdb
-		--with-systemdsystemunitdir="$(systemd_get_systemunitdir)"
-	)
-
-	use jemalloc || \
-		myeconfargs+=( $(usex tcmalloc " --with-tcmalloc" " --with-tcmalloc-minimal") )
-
-	PYTHON="${EPYTHON}" \
-		econf "${myeconfargs[@]}"
-}
-
-src_install() {
-	default
-
-	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}
-
-	chmod 644 "${ED}"/usr/share/doc/${PF}/sample.*
-
-	keepdir /var/lib/${PN}
-	keepdir /var/lib/${PN}/tmp
-	keepdir /var/log/${PN}/stat
-
-	fowners ceph:ceph /var/lib/ceph
-
-	newinitd "${FILESDIR}/rbdmap.initd" rbdmap
-	newinitd "${FILESDIR}/${PN}.initd-r2" ${PN}
-	newconfd "${FILESDIR}/${PN}.confd-r1" ${PN}
-
-	systemd_install_serviced "${FILESDIR}/ceph-mds_at.service.conf" "ceph-mds@.service"
-	systemd_install_serviced "${FILESDIR}/ceph-osd_at.service.conf" "ceph-osd@.service"
-
-	python_fix_shebang \
-		"${ED}"/usr/sbin/{ceph-disk,ceph-create-keys} \
-		"${ED}"/usr/bin/{ceph,ceph-rest-api,ceph-detect-init,ceph-brag}
-
-	#install udev rules
-	udev_dorules udev/50-rbd.rules
-	udev_dorules udev/95-ceph-osd.rules
-
-	readme.gentoo_create_doc
-}
-
-pkg_postinst() {
-	readme.gentoo_print_elog
-}

diff --git a/sys-cluster/ceph/files/ceph-0.79-libzfs.patch b/sys-cluster/ceph/files/ceph-0.79-libzfs.patch
deleted file mode 100644
index 6d79c178d43..00000000000
--- a/sys-cluster/ceph/files/ceph-0.79-libzfs.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/os/Makefile.am b/src/os/Makefile.am
-index 252c678..c28ad0a 100644
---- a/src/os/Makefile.am
-+++ b/src/os/Makefile.am
-@@ -61,7 +61,7 @@ noinst_HEADERS += \
- 
- if WITH_LIBZFS
- libos_zfs_a_SOURCES = os/ZFS.cc
--libos_zfs_a_CXXFLAGS = ${AM_CXXFLAGS} ${LIBZFS_CFLAGS}
-+libos_zfs_a_CXXFLAGS = ${AM_CXXFLAGS} ${LIBZFS_CFLAGS} -I/usr/include/libzfs -I/usr/include/libspl
- noinst_LIBRARIES += libos_zfs.a
- noinst_HEADERS += os/ZFS.h
- endif

diff --git a/sys-cluster/ceph/files/ceph-9.2.1-libxfs.patch b/sys-cluster/ceph/files/ceph-9.2.1-libxfs.patch
deleted file mode 100644
index 85515be3653..00000000000
--- a/sys-cluster/ceph/files/ceph-9.2.1-libxfs.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 602425abd5cef741fc1b5d4d1dd70c68e153fc8d Mon Sep 17 00:00:00 2001
-From: Ira Cooper <ira@redhat.com>
-Date: Thu, 31 Mar 2016 12:30:45 -0400
-Subject: [PATCH] configure: Add -D_LARGEFILE64_SOURCE to Linux build.
-
-Without -D_LARGEFILE64_SOURCE we can't build against libxfs,
-because off64_t must be defined.
-
-Signed-off-by: Ira Cooper <ira@redhat.com>
----
- configure.ac | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/configure.ac b/configure.ac
-index 48a7fc2..610c40b 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -63,6 +63,7 @@ darwin*)
- 	;;
- linux*)
- 	linux="yes"
-+	CFLAGS="-D_LARGEFILE64_SOURCE ${CFLAGS}"
- 	;;
- freebsd*)
- 	freebsd="yes"
--- 
-2.8.4
-


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2018-03-14  1:34 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2018-03-14  1:34 UTC (permalink / raw
  To: gentoo-commits

commit:     ef08702b2f3a34ef42bc91aaf12bedabd41dbfba
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Wed Mar 14 01:33:36 2018 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Wed Mar 14 01:33:36 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ef08702b

sys-cluster/ceph: Revision bump, brainfart in new init script in 12.2.4-r1

Package-Manager: Portage-2.3.24, Repoman-2.3.6

 sys-cluster/ceph/{ceph-12.2.4-r1.ebuild => ceph-12.2.4-r2.ebuild} | 0
 sys-cluster/ceph/files/ceph.initd-r8                              | 2 +-
 2 files changed, 1 insertion(+), 1 deletion(-)

diff --git a/sys-cluster/ceph/ceph-12.2.4-r1.ebuild b/sys-cluster/ceph/ceph-12.2.4-r2.ebuild
similarity index 100%
rename from sys-cluster/ceph/ceph-12.2.4-r1.ebuild
rename to sys-cluster/ceph/ceph-12.2.4-r2.ebuild

diff --git a/sys-cluster/ceph/files/ceph.initd-r8 b/sys-cluster/ceph/files/ceph.initd-r8
index 2f6c2601f16..2ef2ed1890d 100644
--- a/sys-cluster/ceph/files/ceph.initd-r8
+++ b/sys-cluster/ceph/files/ceph.initd-r8
@@ -77,7 +77,7 @@ start_pre() {
 			log_postfix=".${daemon_id}-${arg_name}.log"
 			log_file="${arg_val}"
 
-			if [ "${log_file}" != /dev/null ]
+			if [ "${log_file}" != /dev/null ]; then
 				log_file="${log_file}${log_postfix}"
 			fi
 


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2018-06-13 17:52 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2018-06-13 17:52 UTC (permalink / raw
  To: gentoo-commits

commit:     15907512d886d53b2f4559b740eb69eb127e7a07
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Wed Jun 13 17:45:58 2018 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Wed Jun 13 17:51:19 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=15907512

sys-cluster/ceph: Version bump to 13.2.0 (unkeyworded for the moment)

Closes: https://bugs.gentoo.org/657430
Package-Manager: Portage-2.3.40, Repoman-2.3.9

 sys-cluster/ceph/Manifest                          |   2 +
 sys-cluster/ceph/ceph-13.2.0.ebuild                | 355 +++++++++++++++++++++
 .../ceph/files/ceph-13.2.0-boost-sonames.patch     | 166 ++++++++++
 sys-cluster/ceph/files/ceph-13.2.0-cflags.patch    |  26 ++
 .../files/ceph-13.2.0-mgr-python-version.patch     |  16 +
 .../ceph/files/ceph-13.2.0-no-virtualenvs.patch    |  78 +++++
 .../ceph/files/make-node-frontend-tarball.bash     | 140 ++++++++
 sys-cluster/ceph/metadata.xml                      |   2 +
 8 files changed, 785 insertions(+)

diff --git a/sys-cluster/ceph/Manifest b/sys-cluster/ceph/Manifest
index 00c897026da..ecef19d5151 100644
--- a/sys-cluster/ceph/Manifest
+++ b/sys-cluster/ceph/Manifest
@@ -6,3 +6,5 @@ DIST ceph-12.2.1.tar.gz 148738778 BLAKE2B df4bea1ad552ab2361174c1e2f285f42b4a07a
 DIST ceph-12.2.2.tar.gz 148763718 BLAKE2B 5c9a56bc536b723ca3a6a0aa68c7f456032c892716167dfa213cda4964e3a45e970efe6dd67e5c43ef6f6018bd9367e0c890de270acccf3217b848b58cb98488 SHA512 89b166dc4b58e0110ebe0147eef9f47e1090ccee01702b3f72cfbdca856d02bf03b2663de9e88c84b21a2a61f8f92211e217a05b8bdcf7d5de3158adbe49db88
 DIST ceph-12.2.4.tar.gz 78694838 BLAKE2B 862c275eb5e42065b2f42d417f8efd2ee8ee67c19575eb19bc799d5923d0720fa4810e1c51915fee6f96a44d433059ca6b180861013b735287751ad24235e611 SHA512 ce9ec49e8693d11345adb3a219763cc76b626db2c26d8d9ba08ff0a4d6fdeb08739da29bb87ff0946fed8e6fd55c8db0672cb286f7ebb90cf2e11a47042ba5d6
 DIST ceph-12.2.5.tar.gz 78758920 BLAKE2B 0e4a515ff80fdd39e8f1afd737434c7dc2a218f0a89b53ec31bc3a5478bfd876c6f2bf3c2947a8c2f056d9b94ffa34d18ceac06b00008605e84485ec631c7a32 SHA512 bd78358590eb077afcc3c1e12864fadee906c95ac8afee25bdca6155f99b75f89d923159fcc13430abba21a89fee3e566177ff5f9ffabdd3b3f220d05602ab86
+DIST ceph-13.2.0-frontend-node-modules.tar.xz 44082360 BLAKE2B 0f1bcf1c5154bdc352c9314853099b314b76c76cf1c3ee2447803ea5d79d02bbc91a0f8aefa6df96b47fc2d89e531354ac485752d2dbb762498d3eaba273635a SHA512 ad3c38b055ba886215aea07c4afb202cc3bfb64cdebc816eb4f124f76f2401e04e5645859b2a780828bf8eddcc0093b36d4d9935b703ac2bbc4212e913abeb8c
+DIST ceph-13.2.0.tar.gz 89077825 BLAKE2B 07ee531a672e436df8f218ecb4a2425d33911771dcf9c63fa9fc36a868c93a101029d8a8c69fcea026882ac466e6032da76be0dc961ceb03845b955fb5762add SHA512 2524ad5a868024463e1a1edc5bd9c3f7bc1f58e47bf8d331902ed53206120abc6a427dd9c1d657131e67efd955d6ed8052b6c3fed8658aa905d58ac58ee62973

diff --git a/sys-cluster/ceph/ceph-13.2.0.ebuild b/sys-cluster/ceph/ceph-13.2.0.ebuild
new file mode 100644
index 00000000000..036cfc442fc
--- /dev/null
+++ b/sys-cluster/ceph/ceph-13.2.0.ebuild
@@ -0,0 +1,355 @@
+# 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 flag-o-matic multiprocessing \
+	python-r1 udev user readme.gentoo-r1 toolchain-funcs systemd
+
+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
+		mgr-frontend? ( mirror://gentoo/${P}-frontend-node-modules.tar.xz )"
+	# unkeyworded for testing that this actually works
+	# had to do a lot of hackery for the mgr frontend, dunno if anything broke
+	#KEYWORDS="~amd64 ~x86"
+fi
+
+DESCRIPTION="Ceph distributed filesystem"
+HOMEPAGE="https://ceph.com/"
+
+LICENSE="LGPL-2.1 CC-BY-SA-3.0 GPL-2 BSD Boost-1.0 MIT"
+SLOT="0"
+
+CPU_FLAGS_X86=(sse{,2,3,4_1,4_2} ssse3)
+
+IUSE="babeltrace cephfs dpdk fuse jemalloc ldap lttng +mgr mgr-frontend nss"
+IUSE+=" +radosgw +ssl static-libs +system-boost systemd +tcmalloc test"
+IUSE+=" 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/crypto++:=[static-libs?]
+	dev-libs/leveldb:=[snappy,static-libs?,tcmalloc?]
+	dev-libs/libaio:=[static-libs?]
+	dev-libs/libxml2:=[static-libs?]
+	sys-auth/oath-toolkit:=
+	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?] )
+	mgr? (
+		<net-libs/nodejs-9.0
+		>net-libs/nodejs-8.10
+	)
+	mgr-frontend? ( net-libs/nodejs[npm] )
+	radosgw? (
+		dev-libs/expat:=[static-libs?]
+		dev-libs/openssl:=[static-libs?]
+		net-misc/curl:=[curl_ssl_openssl,static-libs?]
+	)
+	system-boost? (
+		>=dev-libs/boost-1.66:=[threads,context,python,static-libs?,${PYTHON_USEDEP}]
+	)
+	jemalloc? ( dev-libs/jemalloc:=[static-libs?] )
+	!jemalloc? ( >=dev-util/google-perftools-2.4:=[static-libs?] )
+	${PYTHON_DEPS}
+	"
+DEPEND="${COMMON_DEPEND}
+	amd64? ( dev-lang/yasm )
+	x86? ( dev-lang/yasm )
+	app-arch/cpio
+	dev-python/cython[${PYTHON_USEDEP}]
+	dev-python/sphinx
+	dev-util/cunit
+	dev-util/gperf
+	dev-util/valgrind
+	sys-apps/which
+	sys-devel/bc
+	virtual/pkgconfig
+	test? (
+		dev-python/coverage[${PYTHON_USEDEP}]
+		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-fs/lvm2
+	!<sys-apps/openrc-0.26.3
+	dev-python/bcrypt[${PYTHON_USEDEP}]
+	dev-python/cherrypy[${PYTHON_USEDEP}]
+	dev-python/flask[${PYTHON_USEDEP}]
+	dev-python/jinja[${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_REQUIRED_USE}
+	|| ( $(python_gen_useflags 'python3*') )
+	mgr-frontend? ( mgr || ( $(python_gen_useflags 'python2*') ) )
+	?? ( ssl nss )
+	?? ( jemalloc tcmalloc )
+	"
+
+# currently does not configure without the mgr
+REQUIRED_USE+=" mgr"
+
+RESTRICT="test? ( userpriv )"
+
+# distribution tarball does not include everything needed for tests
+RESTRICT+=" test"
+
+# false positives unless all USE flags are on
+CMAKE_WARN_UNUSED_CLI="no"
+
+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.4-boost-build-none-options.patch"
+	"${FILESDIR}/ceph-13.2.0-cflags.patch"
+	"${FILESDIR}/ceph-12.2.4-rocksdb-cflags.patch"
+	"${FILESDIR}/ceph-13.2.0-mgr-python-version.patch"
+	"${FILESDIR}/ceph-13.2.0-no-virtualenvs.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 'python3*'
+	check-reqs_export_vars
+	check-reqs_pkg_setup
+	user_setup
+}
+
+src_prepare() {
+	cmake-utils_src_prepare
+
+	if use system-boost; then
+		eapply "${FILESDIR}/ceph-13.2.0-boost-sonames.patch"
+	fi
+
+	# prevent useless javascript from being installed to the system
+	use mgr-frontend || rm -rf src/pybind/mgr/dashboard/frontend
+
+	# remove tests that need root access
+	rm src/test/cli/ceph-authtool/cap*.t || die
+
+	#rm -rf "${UNBUNDLE_LIBS[@]}"
+}
+
+ceph_src_configure() {
+	local flag
+	local mycmakeargs=(
+		-DWITH_BABELTRACE=$(usex babeltrace)
+		-DWITH_CEPHFS=$(usex cephfs)
+		-DWITH_DPDK=$(usex dpdk)
+		-DWITH_FUSE=$(usex fuse)
+		-DWITH_LTTNG=$(usex lttng)
+		-DWITH_MGR=$(usex mgr)
+		-DWITH_MGR_DASHBOARD_FRONTEND=$(usex mgr-frontend)
+		-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=$(usex system-boost)
+		-DBOOST_J=$(makeopts_jobs)
+		-DWITH_RDMA=no
+		-DSYSTEMD_UNITDIR=$(systemd_get_systemunitdir)
+		-DEPYTHON_VERSION="${EPYTHON#python}"
+	)
+	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}"
+
+	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() {
+	if use mgr-frontend; then
+		# npm likes trying to create /etc/npm
+		addpredict /etc/npm
+
+		# subshell to avoid polluting the environment
+		(
+			python_setup 'python2*'
+
+			export CC="$(tc-getCC)" CXX="$(tc-getCXX)"
+
+			set -e
+
+			pushd src/pybind/mgr/dashboard/frontend >/dev/null
+
+			npm install --offline --no-save --verbose --parseable \
+				--no-rollback --no-progress --fetch-retries=0 \
+				--nodedir="/usr/include/node" \
+				--cache="${WORKDIR}/${P}-npm-cache" \
+				--registry="http://npmjs.invalid" \
+				--sass-binary-site="http://sass.invalid"
+
+			# this tends to get installed to the system if it's still here
+			rm -rf node_modules/node-sass/build
+
+			popd >/dev/null
+
+		) || die "failed to build node modules for mgr-frontend"
+	fi
+
+	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="${ED}" 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-r8" ${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 'python3*'
+
+	# 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-13.2.0-boost-sonames.patch b/sys-cluster/ceph/files/ceph-13.2.0-boost-sonames.patch
new file mode 100644
index 00000000000..8de09b91d8a
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-13.2.0-boost-sonames.patch
@@ -0,0 +1,166 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2f997d03f8..748cb190e6 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -591,7 +591,7 @@ set(BOOST_COMPONENTS
+ set(BOOST_HEADER_COMPONENTS container)
+ 
+ if(WITH_MGR)
+-	list(APPEND BOOST_COMPONENTS python)
++	list(APPEND BOOST_COMPONENTS python-${EPYTHON_VERSION})
+ endif()
+ if(WITH_BOOST_CONTEXT)
+   list(APPEND BOOST_COMPONENTS context coroutine)
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 3d3b4c0919..94ab42ef9f 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -630,12 +630,12 @@ set(ceph_common_objs
+   $<TARGET_OBJECTS:crush_objs>)
+ set(ceph_common_deps
+   json_spirit erasure_code ${LIB_RESOLV}
+-  Boost::thread
+-  Boost::system
+-  Boost::random
+-  Boost::program_options
+-  Boost::date_time
+-  Boost::iostreams
++  boost_thread
++  boost_system
++  boost_random
++  boost_program_options
++  boost_date_time
++  boost_iostreams
+   ${BLKID_LIBRARIES}
+   ${Backtrace_LIBRARIES}
+   ${BLKIN_LIBRARIES}
+@@ -759,7 +759,7 @@ if (WITH_MGR)
+                  $<TARGET_OBJECTS:heap_profiler_objs>)
+   target_include_directories(ceph-mgr SYSTEM PRIVATE "${PYTHON_INCLUDE_DIRS}")
+   target_link_libraries(ceph-mgr osdc client global-static ceph-common
+-      Boost::python ${MGR_PYTHON_LIBRARIES} ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS} ${ALLOC_LIBS})
++      boost_python-${EPYTHON_VERSION} ${MGR_PYTHON_LIBRARIES} ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS} ${ALLOC_LIBS})
+   install(TARGETS ceph-mgr DESTINATION bin)
+ endif (WITH_MGR)
+ 
+@@ -888,7 +888,7 @@ set(ceph_mds_srcs
+   ceph_mds.cc)
+ add_executable(ceph-mds ${ceph_mds_srcs})
+ target_link_libraries(ceph-mds mds ${CMAKE_DL_LIBS} global-static ceph-common
+-  Boost::thread)
++  boost_thread)
+ install(TARGETS ceph-mds DESTINATION bin)
+ 
+ add_subdirectory(erasure-code)
+diff --git a/src/rbd_replay/CMakeLists.txt b/src/rbd_replay/CMakeLists.txt
+index e9d3804c5f..5c6eb58de1 100644
+--- a/src/rbd_replay/CMakeLists.txt
++++ b/src/rbd_replay/CMakeLists.txt
+@@ -36,7 +36,7 @@ if(HAVE_BABELTRACE)
+     global
+     babeltrace
+     babeltrace-ctf
+-    Boost::date_time
++    boost_date_time
+     )
+   install(TARGETS rbd-replay-prep DESTINATION bin)
+ endif(HAVE_BABELTRACE)
+diff --git a/src/rgw/CMakeLists.txt b/src/rgw/CMakeLists.txt
+index c1edd3b882..000c8daaf8 100644
+--- a/src/rgw/CMakeLists.txt
++++ b/src/rgw/CMakeLists.txt
+@@ -162,7 +162,7 @@ target_link_libraries(rgw_a librados cls_otp_client cls_lock_client cls_rgw_clie
+ 
+ if (WITH_RADOSGW_BEAST_FRONTEND)
+   target_compile_definitions(rgw_a PUBLIC BOOST_COROUTINES_NO_DEPRECATION_WARNING)
+-  target_link_libraries(rgw_a Boost::coroutine Boost::context)
++  target_link_libraries(rgw_a boost_coroutine boost_context)
+ endif()
+ 
+ if (WITH_CURL_OPENSSL OR (WITH_RADOSGW_BEAST_FRONTEND AND WITH_RADOSGW_BEAST_OPENSSL))
+diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt
+index a43335e825..a0d056faaa 100644
+--- a/src/test/CMakeLists.txt
++++ b/src/test/CMakeLists.txt
+@@ -147,7 +147,7 @@ add_executable(ceph_omapbench
+   )
+ target_link_libraries(ceph_omapbench
+   librados
+-  Boost::program_options
++  boost_program_options
+   global
+   ${BLKID_LIBRARIES}
+   ${CMAKE_DL_LIBS}
+diff --git a/src/test/erasure-code/CMakeLists.txt b/src/test/erasure-code/CMakeLists.txt
+index 4ba31ab2a8..ab66208b57 100644
+--- a/src/test/erasure-code/CMakeLists.txt
++++ b/src/test/erasure-code/CMakeLists.txt
+@@ -2,15 +2,15 @@
+ add_executable(ceph_erasure_code_benchmark 
+   ${CMAKE_SOURCE_DIR}/src/erasure-code/ErasureCode.cc
+   ceph_erasure_code_benchmark.cc)
+-target_link_libraries(ceph_erasure_code_benchmark ceph-common Boost::program_options global ${CMAKE_DL_LIBS})
++target_link_libraries(ceph_erasure_code_benchmark ceph-common boost_program_options global ${CMAKE_DL_LIBS})
+ install(TARGETS ceph_erasure_code_benchmark
+   DESTINATION bin)
+ 
+ add_executable(ceph_erasure_code_non_regression ceph_erasure_code_non_regression.cc)
+-target_link_libraries(ceph_erasure_code_non_regression ceph-common Boost::program_options global ${CMAKE_DL_LIBS})
++target_link_libraries(ceph_erasure_code_non_regression ceph-common boost_program_options global ${CMAKE_DL_LIBS})
+ 
+ add_executable(ceph_erasure_code ceph_erasure_code.cc)
+-target_link_libraries(ceph_erasure_code ceph-common Boost::program_options global ${CMAKE_DL_LIBS})
++target_link_libraries(ceph_erasure_code ceph-common boost_program_options global ${CMAKE_DL_LIBS})
+ install(TARGETS ceph_erasure_code
+   DESTINATION bin)
+ 
+diff --git a/src/test/librados/CMakeLists.txt b/src/test/librados/CMakeLists.txt
+index 1c909ee1ce..7c1ef32df1 100644
+--- a/src/test/librados/CMakeLists.txt
++++ b/src/test/librados/CMakeLists.txt
+@@ -61,7 +61,7 @@ set_target_properties(ceph_test_rados_api_asio PROPERTIES COMPILE_FLAGS
+ target_link_libraries(ceph_test_rados_api_asio global
+   librados ${UNITTEST_LIBS})
+ if(WITH_BOOST_CONTEXT)
+-  target_link_libraries(ceph_test_rados_api_asio Boost::coroutine Boost::context)
++  target_link_libraries(ceph_test_rados_api_asio boost_coroutine boost_context)
+ endif()
+ 
+ # ceph_test_rados_api_list
+@@ -147,7 +147,7 @@ add_executable(ceph_test_rados_api_tier
+ set_target_properties(ceph_test_rados_api_tier PROPERTIES COMPILE_FLAGS
+   ${UNITTEST_CXX_FLAGS})
+ target_link_libraries(ceph_test_rados_api_tier
+-  librados global ${UNITTEST_LIBS} Boost::system radostest)
++  librados global ${UNITTEST_LIBS} boost_system radostest)
+ 
+ # ceph_test_rados_api_snapshots
+ add_executable(ceph_test_rados_api_snapshots
+diff --git a/src/tools/CMakeLists.txt b/src/tools/CMakeLists.txt
+index e0844ec0c7..886839302c 100644
+--- a/src/tools/CMakeLists.txt
++++ b/src/tools/CMakeLists.txt
+@@ -29,20 +29,20 @@ install(PROGRAMS
+ endif(WITH_TESTS)
+ 
+ add_executable(ceph-osdomap-tool ceph_osdomap_tool.cc)
+-target_link_libraries(ceph-osdomap-tool os global Boost::program_options)
++target_link_libraries(ceph-osdomap-tool os global boost_program_options)
+ install(TARGETS ceph-osdomap-tool DESTINATION bin)
+ 
+ add_executable(ceph-monstore-tool
+   ceph_monstore_tool.cc
+   ../mgr/mgr_commands.cc)
+-target_link_libraries(ceph-monstore-tool os global Boost::program_options)
++target_link_libraries(ceph-monstore-tool os global boost_program_options)
+ install(TARGETS ceph-monstore-tool DESTINATION bin)
+ 
+ add_executable(ceph-objectstore-tool
+   ceph_objectstore_tool.cc
+   rebuild_mondb.cc
+   RadosDump.cc)
+-target_link_libraries(ceph-objectstore-tool osd os global Boost::program_options ${CMAKE_DL_LIBS})
++target_link_libraries(ceph-objectstore-tool osd os global boost_program_options ${CMAKE_DL_LIBS})
+ if(WITH_FUSE)
+   target_link_libraries(ceph-objectstore-tool fuse)
+ endif(WITH_FUSE)

diff --git a/sys-cluster/ceph/files/ceph-13.2.0-cflags.patch b/sys-cluster/ceph/files/ceph-13.2.0-cflags.patch
new file mode 100644
index 00000000000..b275a177da3
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-13.2.0-cflags.patch
@@ -0,0 +1,26 @@
+diff --git a/cmake/modules/BuildBoost.cmake b/cmake/modules/BuildBoost.cmake
+index d6572115a4..cc0bdddc9f 100644
+--- a/cmake/modules/BuildBoost.cmake
++++ b/cmake/modules/BuildBoost.cmake
+@@ -62,7 +62,7 @@ function(do_build_boost version)
+   else()
+     list(APPEND boost_features "address-model=32")
+   endif()
+-  set(BOOST_CXXFLAGS "-fPIC -w") # check on arm, etc <---XXX
++  set(BOOST_CXXFLAGS "${CMAKE_CXX_FLAGS} -fPIC -w") # check on arm, etc <---XXX
+   list(APPEND boost_features "cxxflags=${BOOST_CXXFLAGS}")
+ 
+   list(FIND Boost_BUILD_COMPONENTS "python" with_python)
+diff --git a/src/compressor/zstd/CMakeLists.txt b/src/compressor/zstd/CMakeLists.txt
+index 5a80aa539c..8d6ff5c8f0 100644
+--- a/src/compressor/zstd/CMakeLists.txt
++++ b/src/compressor/zstd/CMakeLists.txt
+@@ -1,7 +1,7 @@
+ # zstd
+ 
+ # libzstd - build it statically
+-set(ZSTD_C_FLAGS "-fPIC -Wno-unused-variable -O3")
++set(ZSTD_C_FLAGS "-fPIC -Wno-unused-variable $ENV{CFLAGS} -O3")
+ 
+ include(ExternalProject)
+ ExternalProject_Add(zstd_ext

diff --git a/sys-cluster/ceph/files/ceph-13.2.0-mgr-python-version.patch b/sys-cluster/ceph/files/ceph-13.2.0-mgr-python-version.patch
new file mode 100644
index 00000000000..0dc90ebeaef
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-13.2.0-mgr-python-version.patch
@@ -0,0 +1,16 @@
+diff --git a/src/pybind/CMakeLists.txt b/src/pybind/CMakeLists.txt
+index c996cd9402..f99765702b 100644
+--- a/src/pybind/CMakeLists.txt
++++ b/src/pybind/CMakeLists.txt
+@@ -62,11 +62,6 @@ foreach(python_version ${py_vers})
+ endforeach()
+ 
+ if(WITH_MGR)
+-  if(NOT WITH_PYTHON2 AND MGR_PYTHON_VERSION_MAJOR EQUAL 2)
+-    message(FATAL_ERROR "mgr plugins require python2 binding")
+-  elseif(NOT WITH_PYTHON3 AND MGR_PYTHON_VERSION_MAJOR EQUAL 3)
+-    message(FATAL_ERROR "mgr plugins require python3 binding")
+-  endif()
+   # Location needs to match default setting for mgr_module_path, currently:
+   # OPTION(mgr_module_path, OPT_STR, CEPH_PKGLIBDIR "/mgr")
+   install(DIRECTORY

diff --git a/sys-cluster/ceph/files/ceph-13.2.0-no-virtualenvs.patch b/sys-cluster/ceph/files/ceph-13.2.0-no-virtualenvs.patch
new file mode 100644
index 00000000000..470dbaeb3c0
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-13.2.0-no-virtualenvs.patch
@@ -0,0 +1,78 @@
+diff --git a/src/ceph-detect-init/CMakeLists.txt b/src/ceph-detect-init/CMakeLists.txt
+index 6e5946b784..233cccfc9b 100644
+--- a/src/ceph-detect-init/CMakeLists.txt
++++ b/src/ceph-detect-init/CMakeLists.txt
+@@ -2,8 +2,8 @@ set(CEPH_DETECT_INIT_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/ceph-detect-init-virtua
+ 
+ add_custom_target(ceph-detect-init
+   COMMAND
+-  ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=python2.7 ${CEPH_DETECT_INIT_VIRTUALENV} &&
+-  ${CEPH_DETECT_INIT_VIRTUALENV}/bin/pip install --no-index --find-links=file:${CMAKE_SOURCE_DIR}/src/ceph-detect-init/wheelhouse -e .
++  #${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=python2.7 ${CEPH_DETECT_INIT_VIRTUALENV} &&
++  #${CEPH_DETECT_INIT_VIRTUALENV}/bin/pip install --no-index --find-links=file:${CMAKE_SOURCE_DIR}/src/ceph-detect-init/wheelhouse -e .
+   WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/ceph-detect-init
+   COMMENT "ceph-detect-init is being created")
+ add_dependencies(tests ceph-detect-init)
+diff --git a/src/ceph-disk/CMakeLists.txt b/src/ceph-disk/CMakeLists.txt
+index 00aaec4a80..b0700c488f 100644
+--- a/src/ceph-disk/CMakeLists.txt
++++ b/src/ceph-disk/CMakeLists.txt
+@@ -2,8 +2,8 @@ set(CEPH_DISK_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/ceph-disk-virtualenv)
+ 
+ add_custom_target(ceph-disk
+   COMMAND
+-  ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=python2.7 ${CEPH_DISK_VIRTUALENV} &&
+-  ${CEPH_DISK_VIRTUALENV}/bin/pip install --no-index --find-links=file:${CMAKE_SOURCE_DIR}/src/ceph-disk/wheelhouse -e .
++  #${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=python2.7 ${CEPH_DISK_VIRTUALENV} &&
++  #${CEPH_DISK_VIRTUALENV}/bin/pip install --no-index --find-links=file:${CMAKE_SOURCE_DIR}/src/ceph-disk/wheelhouse -e .
+   WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/ceph-disk
+   COMMENT "ceph-disk is being created")
+ add_dependencies(tests ceph-disk)
+diff --git a/src/pybind/mgr/dashboard/CMakeLists.txt b/src/pybind/mgr/dashboard/CMakeLists.txt
+index 2b050f6c6e..e9fb87f76b 100644
+--- a/src/pybind/mgr/dashboard/CMakeLists.txt
++++ b/src/pybind/mgr/dashboard/CMakeLists.txt
+@@ -2,7 +2,7 @@ set(MGR_DASHBOARD_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/mgr-dashboard-virtualenv)
+ 
+ add_custom_target(mgr-dashboard-test-venv
+   COMMAND
+-  ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${MGR_PYTHON_EXECUTABLE} ${MGR_DASHBOARD_VIRTUALENV}
++  #${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${MGR_PYTHON_EXECUTABLE} ${MGR_DASHBOARD_VIRTUALENV}
+   WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard
+   COMMENT "dashboard tests virtualenv is being created")
+ add_dependencies(tests mgr-dashboard-test-venv)
+@@ -13,9 +13,9 @@ set(mgr-dashboard-nodeenv ${CMAKE_CURRENT_BINARY_DIR}/node-env)
+ 
+ add_custom_command(
+   OUTPUT "${mgr-dashboard-nodeenv}/bin/npm"
+-  COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${MGR_PYTHON_EXECUTABLE} ${mgr-dashboard-nodeenv}
+-  COMMAND ${mgr-dashboard-nodeenv}/bin/pip install nodeenv
+-  COMMAND ${mgr-dashboard-nodeenv}/bin/nodeenv -p -n 8.10.0
++  #COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${MGR_PYTHON_EXECUTABLE} ${mgr-dashboard-nodeenv}
++  #COMMAND ${mgr-dashboard-nodeenv}/bin/pip install nodeenv
++  #COMMAND ${mgr-dashboard-nodeenv}/bin/nodeenv -p -n 8.10.0
+   WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+   COMMENT "dashboard nodeenv is being installed"
+ )
+@@ -27,7 +27,7 @@ add_custom_target(mgr-dashboard-nodeenv
+ 
+ add_custom_command(
+   OUTPUT "${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard/frontend/node_modules"
+-  COMMAND . ${mgr-dashboard-nodeenv}/bin/activate && npm install && deactivate
++  #COMMAND . ${mgr-dashboard-nodeenv}/bin/activate && npm install && deactivate
+   DEPENDS frontend/package.json
+   WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard/frontend
+   COMMENT "dashboard frontend dependencies are being installed"
+@@ -62,9 +62,11 @@ else()
+   set(npm_command npm run build)
+ endif()
+ 
++LIST(APPEND CMAKE_PROGRAM_PATH ${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard/frontend/node_modules/.bin)
++
+ add_custom_command(
+   OUTPUT "${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard/frontend/dist"
+-  COMMAND . ${mgr-dashboard-nodeenv}/bin/activate && ${npm_command} && deactivate
++  COMMAND PREFIX="${CMAKE_SOURCE_DIR}" ${npm_command}
+   DEPENDS ${frontend_src} frontend/node_modules
+   WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/pybind/mgr/dashboard/frontend
+   COMMENT "dashboard frontend is being created"

diff --git a/sys-cluster/ceph/files/make-node-frontend-tarball.bash b/sys-cluster/ceph/files/make-node-frontend-tarball.bash
new file mode 100644
index 00000000000..0a8015ffa98
--- /dev/null
+++ b/sys-cluster/ceph/files/make-node-frontend-tarball.bash
@@ -0,0 +1,140 @@
+#!/bin/bash
+
+frontend_path="src/pybind/mgr/dashboard/frontend"
+node_dir="node_modules"
+output_name_format="ceph-%s-frontend-node-modules.tar.xz"
+cache_dir_format="ceph-%s-npm-cache"
+
+# regexes for modules to remove
+remove_modules=(
+	"^karma.*"
+	"^jasmine.*"
+	".+/jasmine.*"
+	"^tslint.*"
+	"^codelyzer"
+	"^protractor"
+	"^ts-node"
+)
+
+# location to find dependencies to prune
+node_dep_location="devDependencies"
+
+# node package files
+node_package_file="package.json"
+node_package_lock="package-lock.json"
+
+# system commands needed
+dependencies=(
+	wget
+	git
+	gzip
+	jq
+	tar
+	xz
+)
+
+check_deps() {
+	local dep
+
+	for dep in "${dependencies[@]}"; do
+		if ! command -v "${dep}" >/dev/null; then
+			printf '%s: ERROR could not find required command "%s"\n' "${appname}" "${dep}" >&2
+			exit 1
+		fi
+	done
+
+	# make sure that jq was compiled with support for regexes
+	if ! jq -c 'map( select(. | test("TEST"; "i")))' <<< '{"TEST": "TEST"}' >/dev/null; then
+		printf '%s: ERROR: jq does not support regular expressions, make sure the "oniguruma" USE flag is enabled\n' \
+			"${appname}"
+		exit 1
+	fi
+	:
+}
+
+get_npm_packages() {
+	local tempfile jq_regex full_cache_dir
+
+	full_cache_dir="${PWD}/${cache_dir}"
+
+	pushd "${source_path}/${frontend_path}" > /dev/null
+	if [[ ! -r "${node_package_file}" ]]; then
+		printf '%s: ERROR: could not find "%s" in "%s"\n' "${appname}" \
+			"${node_package_file}" "${frontend_path}"
+		exit 1
+	fi
+
+	tempfile="$(TMPDIR="." mktemp packages-XXXXX.json)"
+
+	jq_regex="$(printf "%s|" "${remove_modules[@]}")"
+
+	# filter out test only deps that pull in precompiled binaries
+	# shellcheck disable=SC2031
+	jq --monochrome-output --raw-output --exit-status \
+		'."'"${node_dep_location}"'"|=with_entries(select(.key|test("('"${jq_regex%|}"')")|not))' \
+		"${node_package_file}" > "${tempfile}"
+
+	# make sure output is still valid JSON
+	jq . --exit-status "${tempfile}" > /dev/null
+
+	mv "${tempfile}" "${node_package_file}"
+
+	rm -rf "${full_cache_dir:?}" "${node_dir:?}" "${node_package_lock:?}"
+
+	npm install --ignore-scripts --cache="${full_cache_dir}"
+
+	popd >/dev/null
+}
+
+main() {
+	local appname source_path version cache_dir
+
+	set -e
+	set -o pipefail
+	shopt -s nullglob
+
+	appname=$(basename "${0}")
+	source_path="${1}"
+	version="${2}"
+
+	if [[ -z ${source_path} || -z ${version} ]]; then
+		printf 'Syntax: %s <source directory> <version>\n' "${appname}" >&2
+		return 1
+
+	elif [[ ! -d ${source_path} ]]; then
+		printf '%s: ERROR: Not a directory: %s\n' "${appname}" "${source_path}"
+		return 1
+	fi
+
+	check_deps
+
+	# shellcheck disable=SC2059
+	cache_dir="$(printf -- "${cache_dir_format}\\n" "${version}")"
+
+	get_npm_packages
+	pack_tarball
+}
+
+pack_tarball() {
+	local output
+
+	# shellcheck disable=SC2059
+	output="$(printf -- "${output_name_format}\\n" "${version}")"
+
+	tar caf "${output}" \
+		--numeric-owner \
+		--anchored \
+		--owner="root:0" \
+		--group="root:0" \
+		--exclude-vcs \
+		--transform="s:^${source_path}/:ceph-${version}/:" \
+		"${cache_dir}" \
+		"${source_path}/${frontend_path}/${node_package_file}" \
+		"${source_path}/${frontend_path}/${node_package_lock}"
+
+	printf '%s: Output written to "%s"\n' "${appname}" "${output}"
+}
+
+main "${@}"
+
+# vim:ft=sh:noet:ts=4:sts=4:sw=4:

diff --git a/sys-cluster/ceph/metadata.xml b/sys-cluster/ceph/metadata.xml
index 8ed7a4c83e4..0a4f8d20e2e 100644
--- a/sys-cluster/ceph/metadata.xml
+++ b/sys-cluster/ceph/metadata.xml
@@ -20,12 +20,14 @@
     <flag name="babeltrace">Add support for LTTng babeltrace</flag>
     <flag name="cryptopp">Use <pkg>dev-libs/crypto++</pkg> for cryptography</flag>
     <flag name="cephfs">Build support for cephfs, a POSIX compatible filesystem built on top of ceph</flag>
+    <flag name="dpdk">Enable DPDK messaging</flag>
     <flag name="fuse">Build fuse client</flag>
     <flag name="jemalloc">Use <pkg>dev-libs/jemalloc</pkg> for allocations</flag>
     <flag name="libatomic">Use libatomic instead of builtin atomic operations</flag>
     <flag name="libaio">Use libaio as asynchronous input/output library</flag>
     <flag name="lttng">Add support for LTTng</flag>
     <flag name="mgr">Build the ceph-mgr daemon</flag>
+    <flag name="mgr-frontend">Build/install the mgr/dashboard frontend with npm</flag>
     <flag name="nss">Use <pkg>dev-libs/nss</pkg> for cryptography</flag>
     <flag name="radosgw">Add radosgw support</flag>
     <flag name="system-boost">Use system <pkg>dev-libs/boost</pkg> instead of the bundled one</flag>


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2018-07-10 20:51 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2018-07-10 20:51 UTC (permalink / raw
  To: gentoo-commits

commit:     7d3bd77eca37425b9147acbb2edb705a6fcf99a4
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 10 20:51:28 2018 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Tue Jul 10 20:51:28 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7d3bd77e

sys-cluster/ceph: Add patch to remove -Werror (bug 660486)

Closes: https://bugs.gentoo.org/660486
Package-Manager: Portage-2.3.41, Repoman-2.3.9

 sys-cluster/ceph/ceph-12.2.5.ebuild                |   3 +-
 .../ceph/files/ceph-12.2.5-boost-sonames.patch     | 165 +++++++++++++++++++++
 sys-cluster/ceph/files/ceph-12.2.5-no-werror.patch |  55 +++++++
 3 files changed, 222 insertions(+), 1 deletion(-)

diff --git a/sys-cluster/ceph/ceph-12.2.5.ebuild b/sys-cluster/ceph/ceph-12.2.5.ebuild
index c7805109ba2..000712b8e6f 100644
--- a/sys-cluster/ceph/ceph-12.2.5.ebuild
+++ b/sys-cluster/ceph/ceph-12.2.5.ebuild
@@ -128,6 +128,7 @@ PATCHES=(
 	"${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch"
 	"${FILESDIR}/ceph-12.2.4-cflags.patch"
 	"${FILESDIR}/ceph-12.2.4-rocksdb-cflags.patch"
+	"${FILESDIR}/ceph-12.2.5-no-werror.patch"
 )
 
 check-reqs_export_vars() {
@@ -163,7 +164,7 @@ src_prepare() {
 	cmake-utils_src_prepare
 
 	if use system-boost; then
-		eapply "${FILESDIR}/ceph-12.2.4-boost-sonames.patch"
+		eapply "${FILESDIR}/ceph-12.2.5-boost-sonames.patch"
 	fi
 
 	# remove tests that need root access

diff --git a/sys-cluster/ceph/files/ceph-12.2.5-boost-sonames.patch b/sys-cluster/ceph/files/ceph-12.2.5-boost-sonames.patch
new file mode 100644
index 00000000000..57482b3f27c
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-12.2.5-boost-sonames.patch
@@ -0,0 +1,165 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index aa90ba65da..ea65dd4209 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -567,7 +567,7 @@ set(BOOST_COMPONENTS
+ set(BOOST_HEADER_COMPONENTS container)
+ 
+ if(WITH_MGR)
+-	list(APPEND BOOST_COMPONENTS python)
++	list(APPEND BOOST_COMPONENTS python-${EPYTHON_VERSION})
+ endif()
+ if(WITH_BOOST_CONTEXT)
+   list(APPEND BOOST_COMPONENTS context coroutine)
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 7aa8a4392e..111f669f2e 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -622,13 +622,13 @@ set(ceph_common_objs
+   $<TARGET_OBJECTS:crush_objs>)
+ set(ceph_common_deps
+   json_spirit erasure_code rt ${LIB_RESOLV}
+-  Boost::thread
+-  Boost::system
+-  Boost::regex
+-  Boost::random
+-  Boost::program_options
+-  Boost::date_time
+-  Boost::iostreams
++  boost_thread
++  boost_system
++  boost_regex
++  boost_random
++  boost_program_options
++  boost_date_time
++  boost_iostreams
+   ${BLKID_LIBRARIES}
+   ${Backtrace_LIBRARIES}
+   ${BLKIN_LIBRARIES}
+@@ -712,7 +712,7 @@ if (WITH_MGR)
+                  $<TARGET_OBJECTS:heap_profiler_objs>)
+   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_python-${EPYTHON_VERSION} ${PYTHON_LIBRARIES} ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS} ${ALLOC_LIBS})
+   install(TARGETS ceph-mgr DESTINATION bin)
+ endif (WITH_MGR)
+ 
+@@ -885,7 +885,7 @@ set(ceph_mds_srcs
+   ceph_mds.cc)
+ add_executable(ceph-mds ${ceph_mds_srcs})
+ target_link_libraries(ceph-mds mds ${CMAKE_DL_LIBS} global-static common
+-  Boost::thread)
++  boost_thread)
+ install(TARGETS ceph-mds DESTINATION bin)
+ 
+ add_subdirectory(erasure-code)
+diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt
+index f3999e3b01..0ce7fca1ba 100644
+--- a/src/test/CMakeLists.txt
++++ b/src/test/CMakeLists.txt
+@@ -148,7 +148,7 @@ add_executable(ceph_omapbench
+   )
+ target_link_libraries(ceph_omapbench
+   librados
+-  Boost::program_options
++  boost_program_options
+   global
+   ${BLKID_LIBRARIES}
+   ${CMAKE_DL_LIBS}
+@@ -202,7 +202,7 @@ if(${WITH_RADOSGW})
+     cls_rgw_client
+     cls_user_client
+     cls_lock_client
+-    Boost::regex
++    boost_regex
+     ${BLKID_LIBRARIES}
+     ${CURL_LIBRARIES}
+     ${EXPAT_LIBRARIES}
+@@ -232,7 +232,7 @@ if(${WITH_RADOSGW})
+     cls_rgw_client
+     cls_user_client
+     cls_lock_client
+-    Boost::regex
++    boost_regex
+     ${BLKID_LIBRARIES}
+     ${CURL_LIBRARIES}
+     ${EXPAT_LIBRARIES}
+diff --git a/src/test/bench/CMakeLists.txt b/src/test/bench/CMakeLists.txt
+index 9fba701e05..da3cbcfe96 100644
+--- a/src/test/bench/CMakeLists.txt
++++ b/src/test/bench/CMakeLists.txt
+@@ -8,7 +8,7 @@ set(smalliobench_srcs
+ add_executable(ceph_smalliobench
+   ${smalliobench_srcs}
+   )
+-target_link_libraries(ceph_smalliobench librados Boost::program_options global
++target_link_libraries(ceph_smalliobench librados boost_program_options global
+   ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS}) 
+ 
+ # ceph_smalliobenchrbd
+@@ -27,7 +27,7 @@ if(WITH_RBD)
+     librados
+     os
+     global
+-    Boost::program_options
++    boost_program_options
+     ${BLKID_LIBRARIES}
+     ${CMAKE_DL_LIBS}
+     )
+@@ -50,7 +50,7 @@ set(ceph_smalliobenchfs_srcs
+ add_executable(ceph_smalliobenchfs
+   ${ceph_smalliobenchfs_srcs}
+   )
+-target_link_libraries(ceph_smalliobenchfs librados Boost::program_options os global
++target_link_libraries(ceph_smalliobenchfs librados boost_program_options os global
+   ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS}) 
+ 
+ # ceph_smalliobenchdumb
+@@ -63,7 +63,7 @@ set(smalliobenchdumb_srcs
+ add_executable(ceph_smalliobenchdumb
+   ${smalliobenchdumb_srcs}
+   )
+-target_link_libraries(ceph_smalliobenchdumb librados Boost::program_options os global
++target_link_libraries(ceph_smalliobenchdumb librados boost_program_options os global
+   ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS}) 
+ 
+ # ceph_tpbench
+@@ -73,7 +73,7 @@ set(tpbench_srcs
+ add_executable(ceph_tpbench
+   ${tpbench_srcs}
+   )
+-target_link_libraries(ceph_tpbench librados Boost::program_options global
++target_link_libraries(ceph_tpbench librados boost_program_options global
+   ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS})
+ 
+ install(TARGETS
+diff --git a/src/tools/CMakeLists.txt b/src/tools/CMakeLists.txt
+index 9f72fa3b48..665c977606 100644
+--- a/src/tools/CMakeLists.txt
++++ b/src/tools/CMakeLists.txt
+@@ -24,13 +24,13 @@ target_link_libraries(ceph_radosacl librados global)
+ install(TARGETS ceph_radosacl DESTINATION bin)
+ 
+ add_executable(ceph-osdomap-tool ceph_osdomap_tool.cc)
+-target_link_libraries(ceph-osdomap-tool os global Boost::program_options)
++target_link_libraries(ceph-osdomap-tool os global boost_program_options)
+ install(TARGETS ceph-osdomap-tool DESTINATION bin)
+ 
+ add_executable(ceph-monstore-tool
+   ceph_monstore_tool.cc
+   ../mgr/mgr_commands.cc)
+-target_link_libraries(ceph-monstore-tool os global Boost::program_options)
++target_link_libraries(ceph-monstore-tool os global boost_program_options)
+ install(TARGETS ceph-monstore-tool DESTINATION bin)
+ install(PROGRAMS
+   ceph-monstore-update-crush.sh
+@@ -41,7 +41,7 @@ add_executable(ceph-objectstore-tool
+   ceph_objectstore_tool.cc
+   rebuild_mondb.cc
+   RadosDump.cc)
+-target_link_libraries(ceph-objectstore-tool osd os global Boost::program_options ${CMAKE_DL_LIBS})
++target_link_libraries(ceph-objectstore-tool osd os global boost_program_options ${CMAKE_DL_LIBS})
+ if(WITH_FUSE)
+   target_link_libraries(ceph-objectstore-tool fuse)
+ endif(WITH_FUSE)

diff --git a/sys-cluster/ceph/files/ceph-12.2.5-no-werror.patch b/sys-cluster/ceph/files/ceph-12.2.5-no-werror.patch
new file mode 100644
index 00000000000..dd24e7819fe
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-12.2.5-no-werror.patch
@@ -0,0 +1,55 @@
+diff -ur ceph-12.2.5.orig/src/rapidjson/CMakeLists.txt ceph-12.2.5/src/rapidjson/CMakeLists.txt
+--- ceph-12.2.5.orig/src/rapidjson/CMakeLists.txt	2018-07-09 11:18:09.188115751 -0700
++++ ceph-12.2.5/src/rapidjson/CMakeLists.txt	2018-07-09 11:36:56.848639110 -0700
+@@ -50,7 +50,7 @@
+ endif(CCACHE_FOUND)
+ 
+ if ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
+-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native -Wall -Wextra -Werror")
++    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native -Wall -Wextra")
+     if (RAPIDJSON_BUILD_CXX11)
+         if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS "4.7.0")
+             set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
+@@ -73,7 +73,7 @@
+         endif()
+     endif()
+ elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
+-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native -Wall -Wextra -Werror -Wno-missing-field-initializers")
++    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native -Wall -Wextra -Wno-missing-field-initializers")
+     if (RAPIDJSON_BUILD_CXX11)
+         set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
+     endif()
+diff -ur ceph-12.2.5.orig/src/rocksdb/CMakeLists.txt ceph-12.2.5/src/rocksdb/CMakeLists.txt
+--- ceph-12.2.5.orig/src/rocksdb/CMakeLists.txt	2018-07-09 11:18:09.219115543 -0700
++++ ceph-12.2.5/src/rocksdb/CMakeLists.txt	2018-07-09 11:34:58.843411195 -0700
+@@ -174,15 +174,6 @@
+   PROPERTIES COMPILE_FLAGS "-msse4.2")
+ endif()
+ 
+-option(FAIL_ON_WARNINGS "Treat compile warnings as errors" ON)
+-if(FAIL_ON_WARNINGS)
+-  if(MSVC)
+-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /WX")
+-  else() # assume GCC
+-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror")
+-  endif()
+-endif()
+-
+ option(WITH_ASAN "build with ASAN" OFF)
+ if(WITH_ASAN)
+   add_definitions(-DROCKSDB_TSAN_RUN)
+diff -ur ceph-12.2.5.orig/src/rocksdb/Makefile ceph-12.2.5/src/rocksdb/Makefile
+--- ceph-12.2.5.orig/src/rocksdb/Makefile	2018-03-11 18:58:51.000000000 -0700
++++ ceph-12.2.5/src/rocksdb/Makefile	2018-07-09 11:35:53.847049123 -0700
+@@ -243,11 +243,6 @@
+ WARNING_FLAGS = -W -Wextra -Wall -Wsign-compare -Wshadow \
+   -Wno-unused-parameter
+ 
+-ifndef DISABLE_WARNING_AS_ERROR
+-	WARNING_FLAGS += -Werror
+-endif
+-
+-
+ ifdef LUA_PATH
+ 
+ ifndef LUA_INCLUDE


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2018-10-17  0:38 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2018-10-17  0:38 UTC (permalink / raw
  To: gentoo-commits

commit:     9c8362b30d0cef025ec3b0da1716d1c93fac0e21
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Wed Oct 17 00:09:47 2018 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Wed Oct 17 00:38:41 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9c8362b3

sys-cluster/ceph: Version bump to 13.2.2 (bug #667766)

Closes: https://bugs.gentoo.org/667766
Package-Manager: Portage-2.3.51, Repoman-2.3.11
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 sys-cluster/ceph/Manifest                          |   2 +
 sys-cluster/ceph/ceph-13.2.2.ebuild                | 362 +++++++++++++++++++++
 .../ceph-13.2.2-dont-install-sysvinit-script.patch |  15 +
 sys-cluster/ceph/files/ceph.logrotate-r1           |  18 +
 4 files changed, 397 insertions(+)

diff --git a/sys-cluster/ceph/Manifest b/sys-cluster/ceph/Manifest
index 72923438896..84c9df735e2 100644
--- a/sys-cluster/ceph/Manifest
+++ b/sys-cluster/ceph/Manifest
@@ -4,3 +4,5 @@ DIST ceph-12.2.7.tar.gz 78783279 BLAKE2B 9058a5e408b3431cf0e8c28b44f95f6eb12f029
 DIST ceph-12.2.8.tar.gz 77243685 BLAKE2B 37c34396a0c276b8d79735e14934ac70da024822c2a060061531c234e03e5d41aad6c41dc64b05c2ce47f03287d0cae9ef9bed67e4a0861b6380c8ce1de4ea69 SHA512 91c5c11aaeef701b3e31c9f8a1192b6b79fd34f3b96c61595c65173c98bfce0009c5b7c9b29764f5e4d4b1f5ac2ca7109fed5ae598c176aba717a34a132fabac
 DIST ceph-13.2.1-frontend-node-modules.tar.xz 44352460 BLAKE2B 0a0099e60f0b36d48928dcda3f69dbb00e14a9a9e10c688ecbeb3daa3adbe339655652a43924043fe140ce1754525be2abed61f1ad5f24779fa4ff890d2b7cf6 SHA512 3938e8cadb6385cdaf023fe55ab5f202e44ed80173b128e3b76fc4849556cea90ce5d8884a928b93776b0509b5aef814f1078ba5e44a9d644b43a871aea06dd9
 DIST ceph-13.2.1.tar.gz 90786830 BLAKE2B e0884a039ff0e8a1705d8f31f4dcf4cd8ab8989d7c2fa703417038ff9a6cf7b0fbca09abceb901970fbb2dd9a1dc87c2500fec38a2bfca86a9a6dcaab15be991 SHA512 411218ea6037bdf9425a741720ea89876e893e64fbfa518c9584ba581f805fde2c82b13ed47313279665e5d20f36223fc8d5c27055b580c72b22c2004e4da81b
+DIST ceph-13.2.2-frontend-node-modules.tar.xz 45100632 BLAKE2B c3929a6c5e6ec3da5ff60967ae40b99377b2186f31e64af571d9be14889d90bc48b570489aea300ead8e99afc0e62db4438cf343686757a39d84889e772c7fa9 SHA512 93eabc2010c0977c2980c739e131d231a809e375c42120e81effc6cecdeaf0e50b4f8c88286993ef60f1ffaede94f637475104e09fd7af58a289350bd670bf2f
+DIST ceph-13.2.2.tar.gz 90840817 BLAKE2B db5933f358a1ae6888030bca7522e20545a2e107055dca44b371e295537c854568682fa558d3f90193e0dfe618947918ce21816b5e20795fff8a14bc837216bb SHA512 37c4845ae52550428c7f1e0d77d9d671ea1d6f5cad5bce0713dce97b54f3abe7346daa2cbd44b76638fb74fe7bdc4797033a4bf808253cfc8bec0fa495ec7e03

diff --git a/sys-cluster/ceph/ceph-13.2.2.ebuild b/sys-cluster/ceph/ceph-13.2.2.ebuild
new file mode 100644
index 00000000000..b5c1fb29a62
--- /dev/null
+++ b/sys-cluster/ceph/ceph-13.2.2.ebuild
@@ -0,0 +1,362 @@
+# Copyright 1999-2018 Gentoo Authors
+# Copyright 2017-2018 Sony Interactive Entertainment Inc.
+# 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 bash-completion-r1 cmake-utils distutils-r1 flag-o-matic \
+		multiprocessing python-r1 udev user readme.gentoo-r1 toolchain-funcs \
+		systemd
+
+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
+		mgr-frontend? ( mirror://gentoo/${P}-frontend-node-modules.tar.xz )"
+	KEYWORDS="~amd64 ~x86"
+fi
+
+DESCRIPTION="Ceph distributed filesystem"
+HOMEPAGE="https://ceph.com/"
+
+LICENSE="LGPL-2.1 CC-BY-SA-3.0 GPL-2 BSD Boost-1.0 MIT"
+SLOT="0"
+
+CPU_FLAGS_X86=(sse{,2,3,4_1,4_2} ssse3)
+
+IUSE="babeltrace cephfs dpdk fuse jemalloc ldap lttng +mgr mgr-frontend"
+IUSE+=" +radosgw +ssl static-libs +system-boost systemd +tcmalloc test"
+IUSE+=" 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/crypto++:=[static-libs?]
+	dev-libs/leveldb:=[snappy,static-libs?,tcmalloc?]
+	dev-libs/libaio:=[static-libs?]
+	dev-libs/libxml2:=[static-libs?]
+	dev-libs/nss:=
+	sys-auth/oath-toolkit:=
+	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:= )
+	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?] )
+	mgr? (
+		<net-libs/nodejs-9.0
+		>net-libs/nodejs-8.10
+	)
+	mgr-frontend? ( net-libs/nodejs[npm] )
+	radosgw? (
+		dev-libs/expat:=[static-libs?]
+		dev-libs/openssl:=[static-libs?]
+		net-misc/curl:=[curl_ssl_openssl,static-libs?]
+	)
+	system-boost? (
+		>=dev-libs/boost-1.67:=[threads,context,python,static-libs?,${PYTHON_USEDEP}]
+	)
+	jemalloc? ( dev-libs/jemalloc:=[static-libs?] )
+	!jemalloc? ( >=dev-util/google-perftools-2.4:=[static-libs?] )
+	${PYTHON_DEPS}
+	"
+DEPEND="${COMMON_DEPEND}
+	amd64? ( dev-lang/yasm )
+	x86? ( dev-lang/yasm )
+	app-arch/cpio
+	dev-python/cython[${PYTHON_USEDEP}]
+	dev-python/sphinx
+	dev-util/cunit
+	dev-util/gperf
+	dev-util/valgrind
+	sys-apps/which
+	sys-devel/bc
+	virtual/pkgconfig
+	test? (
+		dev-python/coverage[${PYTHON_USEDEP}]
+		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-fs/lvm2
+	!<sys-apps/openrc-0.26.3
+	dev-python/bcrypt[${PYTHON_USEDEP}]
+	dev-python/cherrypy[${PYTHON_USEDEP}]
+	dev-python/flask[${PYTHON_USEDEP}]
+	dev-python/jinja[${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_REQUIRED_USE}
+	|| ( $(python_gen_useflags 'python3*') )
+	mgr-frontend? ( mgr || ( $(python_gen_useflags 'python2*') ) )
+	?? ( jemalloc tcmalloc )
+	"
+
+# building npm stuff is currently broken
+REQUIRED_USE="!mgr-frontend"
+
+# the tests need root access
+RESTRICT="test? ( userpriv )"
+
+# distribution tarball does not include everything needed for tests
+RESTRICT+=" test"
+
+# false positives unless all USE flags are on
+CMAKE_WARN_UNUSED_CLI="no"
+
+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.4-boost-build-none-options.patch"
+	"${FILESDIR}/ceph-13.2.0-cflags.patch"
+	"${FILESDIR}/ceph-12.2.4-rocksdb-cflags.patch"
+	"${FILESDIR}/ceph-13.2.0-mgr-python-version.patch"
+	"${FILESDIR}/ceph-13.2.0-no-virtualenvs.patch"
+	"${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.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 'python3*'
+	check-reqs_export_vars
+	check-reqs_pkg_setup
+	user_setup
+}
+
+src_prepare() {
+	cmake-utils_src_prepare
+
+	if use system-boost; then
+		eapply "${FILESDIR}/ceph-13.2.0-boost-sonames.patch"
+	fi
+
+	sed -i -r "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \
+		src/bash_completion/CMakeLists.txt || die
+
+	# remove tests that need root access
+	rm src/test/cli/ceph-authtool/cap*.t || die
+
+	#rm -rf "${UNBUNDLE_LIBS[@]}"
+}
+
+ceph_src_configure() {
+	local flag
+	local mycmakeargs=(
+		-DWITH_BABELTRACE=$(usex babeltrace)
+		-DWITH_CEPHFS=$(usex cephfs)
+		-DWITH_DPDK=$(usex dpdk)
+		-DWITH_FUSE=$(usex fuse)
+		-DWITH_LTTNG=$(usex lttng)
+		-DWITH_MGR=$(usex mgr)
+		-DWITH_MGR_DASHBOARD_FRONTEND=$(usex mgr-frontend)
+		-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=$(usex system-boost)
+		-DBOOST_J=$(makeopts_jobs)
+		-DWITH_RDMA=no
+		-DSYSTEMD_UNITDIR=$(systemd_get_systemunitdir)
+		-DEPYTHON_VERSION="${EPYTHON#python}"
+		-DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${P}"
+		-DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
+		-Wno-dev
+	)
+	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
+
+	rm -r "${BUILD_DIR}/lib/cython_modules" || die
+
+	pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
+	emake VERBOSE=1 clean
+	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() {
+	if use mgr-frontend; then
+		# npm likes trying to create /etc/npm
+		addpredict /etc/npm
+
+		# subshell to avoid polluting the environment
+		(
+			python_setup 'python2*'
+
+			export CC="$(tc-getCC)" CXX="$(tc-getCXX)"
+
+			set -e
+
+			pushd src/pybind/mgr/dashboard/frontend >/dev/null
+
+			npm install --offline --no-save --verbose --parseable \
+				--no-rollback --no-progress --fetch-retries=0 \
+				--nodedir="/usr/include/node" \
+				--cache="${WORKDIR}/${P}-npm-cache" \
+				--registry="http://npmjs.invalid" \
+				--sass-binary-site="http://sass.invalid"
+
+			# this tends to get installed to the system if it's still here
+			rm -rf node_modules/node-sass/build
+
+			popd >/dev/null
+
+		) || die "failed to build node modules for mgr-frontend"
+	fi
+
+	cmake-utils_src_make VERBOSE=1 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="${ED}" 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-r8" ${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 'python3*'
+
+	# 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-13.2.2-dont-install-sysvinit-script.patch b/sys-cluster/ceph/files/ceph-13.2.2-dont-install-sysvinit-script.patch
new file mode 100644
index 00000000000..4fbc8b6c810
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-13.2.2-dont-install-sysvinit-script.patch
@@ -0,0 +1,15 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 874eabfaa1..e337f4cf8e 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -601,10 +601,6 @@ install(PROGRAMS
+   ${CMAKE_SOURCE_DIR}/src/ceph-run
+   ${CMAKE_SOURCE_DIR}/src/ceph-clsinfo
+   DESTINATION bin)
+-install(PROGRAMS
+-  ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/init-ceph
+-  DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/init.d
+-  RENAME ceph)
+ 
+ install(FILES
+   ${CMAKE_SOURCE_DIR}/share/id_rsa_drop.ceph.com

diff --git a/sys-cluster/ceph/files/ceph.logrotate-r1 b/sys-cluster/ceph/files/ceph.logrotate-r1
new file mode 100644
index 00000000000..df03f5e69a4
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph.logrotate-r1
@@ -0,0 +1,18 @@
+/var/log/ceph/*.log
+{
+    rotate 7
+    daily
+    compress
+    sharedscripts
+    prerotate
+	for dmn in $(cd /run/ceph && ls *.asok 2>/dev/null); do
+		ceph --admin-daemon /run/ceph/${dmn} log flush 2>/dev/null >/dev/null
+	done
+    endscript
+    postrotate
+	for dmn in $(cd /run/ceph && ls *.asok 2>/dev/null); do
+		ceph --admin-daemon /run/ceph/${dmn} log reopen 2>/dev/null >/dev/null
+        done
+    endscript
+    missingok
+}


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2019-02-13 19:52 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2019-02-13 19:52 UTC (permalink / raw
  To: gentoo-commits

commit:     411791b6a219ef34912bbad4abbbf3175198fafd
Author:     Patrick McLean <patrick.mclean <AT> sony <DOT> com>
AuthorDate: Wed Feb 13 19:51:44 2019 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Wed Feb 13 19:51:44 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=411791b6

sys-cluster/ceph: Update boost-sonames patch for 12.2.11

Copyright: Sony Interactive Entertainment Inc.
Package-Manager: Portage-2.3.60, Repoman-2.3.12
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 sys-cluster/ceph/ceph-12.2.11.ebuild               |   2 +-
 .../ceph/files/ceph-12.2.11-boost-sonames.patch    | 214 +++++++++++++++++++++
 2 files changed, 215 insertions(+), 1 deletion(-)

diff --git a/sys-cluster/ceph/ceph-12.2.11.ebuild b/sys-cluster/ceph/ceph-12.2.11.ebuild
index 4fe896d4cc1..d828bc7be4f 100644
--- a/sys-cluster/ceph/ceph-12.2.11.ebuild
+++ b/sys-cluster/ceph/ceph-12.2.11.ebuild
@@ -169,7 +169,7 @@ src_prepare() {
 	cmake-utils_src_prepare
 
 	if use system-boost; then
-		eapply "${FILESDIR}/ceph-12.2.5-boost-sonames.patch"
+		eapply "${FILESDIR}/ceph-12.2.11-boost-sonames.patch"
 	fi
 
 	# remove tests that need root access

diff --git a/sys-cluster/ceph/files/ceph-12.2.11-boost-sonames.patch b/sys-cluster/ceph/files/ceph-12.2.11-boost-sonames.patch
new file mode 100644
index 00000000000..bd17686bd9a
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-12.2.11-boost-sonames.patch
@@ -0,0 +1,214 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 5403de8f4c..ee3336ee27 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -563,7 +563,7 @@ set(BOOST_COMPONENTS
+ set(BOOST_HEADER_COMPONENTS container)
+ 
+ if(WITH_MGR)
+-	list(APPEND BOOST_COMPONENTS python)
++	list(APPEND BOOST_COMPONENTS python-${EPYTHON_VERSION})
+ endif()
+ if(WITH_BOOST_CONTEXT)
+   list(APPEND BOOST_COMPONENTS context coroutine)
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index b0837ab1d9..e12cecf354 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -623,13 +623,13 @@ set(ceph_common_objs
+   $<TARGET_OBJECTS:crush_objs>)
+ set(ceph_common_deps
+   json_spirit erasure_code rt ${LIB_RESOLV}
+-  Boost::thread
+-  Boost::system
+-  Boost::regex
+-  Boost::random
+-  Boost::program_options
+-  Boost::date_time
+-  Boost::iostreams
++  boost_thread
++  boost_system
++  boost_regex
++  boost_random
++  boost_program_options
++  boost_date_time
++  boost_iostreams
+   ${BLKID_LIBRARIES}
+   ${Backtrace_LIBRARIES}
+   ${BLKIN_LIBRARIES}
+@@ -727,7 +727,7 @@ if (WITH_MGR)
+                  $<TARGET_OBJECTS:heap_profiler_objs>)
+   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_python-${EPYTHON_VERSION} ${PYTHON_LIBRARIES} ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS} ${ALLOC_LIBS})
+   install(TARGETS ceph-mgr DESTINATION bin)
+ endif (WITH_MGR)
+ 
+@@ -901,7 +901,7 @@ set(ceph_mds_srcs
+   ceph_mds.cc)
+ add_executable(ceph-mds ${ceph_mds_srcs})
+ target_link_libraries(ceph-mds mds ${CMAKE_DL_LIBS} global-static common
+-  Boost::thread)
++  boost_thread)
+ install(TARGETS ceph-mds DESTINATION bin)
+ 
+ add_subdirectory(erasure-code)
+diff --git a/src/rgw/CMakeLists.txt b/src/rgw/CMakeLists.txt
+index 57cb2a5b94..971af8ebec 100644
+--- a/src/rgw/CMakeLists.txt
++++ b/src/rgw/CMakeLists.txt
+@@ -156,7 +156,7 @@ if (WITH_CURL_OPENSSL OR (WITH_RADOSGW_BEAST_FRONTEND AND WITH_RADOSGW_BEAST_OPE
+ endif()
+ if (WITH_RADOSGW_BEAST_FRONTEND)
+   target_compile_definitions(rgw_a PUBLIC BOOST_COROUTINES_NO_DEPRECATION_WARNING)
+-  target_link_libraries(rgw_a Boost::coroutine Boost::context)
++  target_link_libraries(rgw_a boost_coroutine boost_context)
+ endif()
+ 
+ set(radosgw_srcs
+diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt
+index 66e24b8bc9..0f659c98e2 100644
+--- a/src/test/CMakeLists.txt
++++ b/src/test/CMakeLists.txt
+@@ -145,7 +145,7 @@ add_executable(ceph_omapbench
+   )
+ target_link_libraries(ceph_omapbench
+   librados
+-  Boost::program_options
++  boost_program_options
+   global
+   ${BLKID_LIBRARIES}
+   ${CMAKE_DL_LIBS}
+@@ -199,7 +199,7 @@ if(${WITH_RADOSGW})
+     cls_rgw_client
+     cls_user_client
+     cls_lock_client
+-    Boost::regex
++    boost_regex
+     ${BLKID_LIBRARIES}
+     ${CURL_LIBRARIES}
+     ${EXPAT_LIBRARIES}
+@@ -229,7 +229,7 @@ if(${WITH_RADOSGW})
+     cls_rgw_client
+     cls_user_client
+     cls_lock_client
+-    Boost::regex
++    boost_regex
+     ${BLKID_LIBRARIES}
+     ${CURL_LIBRARIES}
+     ${EXPAT_LIBRARIES}
+diff --git a/src/test/bench/CMakeLists.txt b/src/test/bench/CMakeLists.txt
+index 9fba701e05..da3cbcfe96 100644
+--- a/src/test/bench/CMakeLists.txt
++++ b/src/test/bench/CMakeLists.txt
+@@ -8,7 +8,7 @@ set(smalliobench_srcs
+ add_executable(ceph_smalliobench
+   ${smalliobench_srcs}
+   )
+-target_link_libraries(ceph_smalliobench librados Boost::program_options global
++target_link_libraries(ceph_smalliobench librados boost_program_options global
+   ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS}) 
+ 
+ # ceph_smalliobenchrbd
+@@ -27,7 +27,7 @@ if(WITH_RBD)
+     librados
+     os
+     global
+-    Boost::program_options
++    boost_program_options
+     ${BLKID_LIBRARIES}
+     ${CMAKE_DL_LIBS}
+     )
+@@ -50,7 +50,7 @@ set(ceph_smalliobenchfs_srcs
+ add_executable(ceph_smalliobenchfs
+   ${ceph_smalliobenchfs_srcs}
+   )
+-target_link_libraries(ceph_smalliobenchfs librados Boost::program_options os global
++target_link_libraries(ceph_smalliobenchfs librados boost_program_options os global
+   ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS}) 
+ 
+ # ceph_smalliobenchdumb
+@@ -63,7 +63,7 @@ set(smalliobenchdumb_srcs
+ add_executable(ceph_smalliobenchdumb
+   ${smalliobenchdumb_srcs}
+   )
+-target_link_libraries(ceph_smalliobenchdumb librados Boost::program_options os global
++target_link_libraries(ceph_smalliobenchdumb librados boost_program_options os global
+   ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS}) 
+ 
+ # ceph_tpbench
+@@ -73,7 +73,7 @@ set(tpbench_srcs
+ add_executable(ceph_tpbench
+   ${tpbench_srcs}
+   )
+-target_link_libraries(ceph_tpbench librados Boost::program_options global
++target_link_libraries(ceph_tpbench librados boost_program_options global
+   ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS})
+ 
+ install(TARGETS
+diff --git a/src/test/erasure-code/CMakeLists.txt b/src/test/erasure-code/CMakeLists.txt
+index dc4e0865d0..69502342bb 100644
+--- a/src/test/erasure-code/CMakeLists.txt
++++ b/src/test/erasure-code/CMakeLists.txt
+@@ -2,15 +2,15 @@
+ add_executable(ceph_erasure_code_benchmark 
+   ${CMAKE_SOURCE_DIR}/src/erasure-code/ErasureCode.cc
+   ceph_erasure_code_benchmark.cc)
+-target_link_libraries(ceph_erasure_code_benchmark ceph-common Boost::program_options global ${CMAKE_DL_LIBS})
++target_link_libraries(ceph_erasure_code_benchmark ceph-common boost_program_options global ${CMAKE_DL_LIBS})
+ install(TARGETS ceph_erasure_code_benchmark
+   DESTINATION bin)
+ 
+ add_executable(ceph_erasure_code_non_regression ceph_erasure_code_non_regression.cc)
+-target_link_libraries(ceph_erasure_code_non_regression ceph-common Boost::program_options global ${CMAKE_DL_LIBS})
++target_link_libraries(ceph_erasure_code_non_regression ceph-common boost_program_options global ${CMAKE_DL_LIBS})
+ 
+ add_executable(ceph_erasure_code ceph_erasure_code.cc)
+-target_link_libraries(ceph_erasure_code ceph-common Boost::program_options global ${CMAKE_DL_LIBS})
++target_link_libraries(ceph_erasure_code ceph-common boost_program_options global ${CMAKE_DL_LIBS})
+ install(TARGETS ceph_erasure_code
+   DESTINATION bin)
+ 
+diff --git a/src/test/librados/CMakeLists.txt b/src/test/librados/CMakeLists.txt
+index c35ddb3d8f..3916544259 100644
+--- a/src/test/librados/CMakeLists.txt
++++ b/src/test/librados/CMakeLists.txt
+@@ -137,7 +137,7 @@ add_executable(ceph_test_rados_api_tier
+ set_target_properties(ceph_test_rados_api_tier PROPERTIES COMPILE_FLAGS
+   ${UNITTEST_CXX_FLAGS})
+ target_link_libraries(ceph_test_rados_api_tier
+-  global rados_a ${UNITTEST_LIBS} Boost::system radostest)
++  global rados_a ${UNITTEST_LIBS} boost_system radostest)
+ 
+ # ceph_test_rados_api_snapshots
+ add_executable(ceph_test_rados_api_snapshots
+diff --git a/src/tools/CMakeLists.txt b/src/tools/CMakeLists.txt
+index 9f72fa3b48..665c977606 100644
+--- a/src/tools/CMakeLists.txt
++++ b/src/tools/CMakeLists.txt
+@@ -24,13 +24,13 @@ target_link_libraries(ceph_radosacl librados global)
+ install(TARGETS ceph_radosacl DESTINATION bin)
+ 
+ add_executable(ceph-osdomap-tool ceph_osdomap_tool.cc)
+-target_link_libraries(ceph-osdomap-tool os global Boost::program_options)
++target_link_libraries(ceph-osdomap-tool os global boost_program_options)
+ install(TARGETS ceph-osdomap-tool DESTINATION bin)
+ 
+ add_executable(ceph-monstore-tool
+   ceph_monstore_tool.cc
+   ../mgr/mgr_commands.cc)
+-target_link_libraries(ceph-monstore-tool os global Boost::program_options)
++target_link_libraries(ceph-monstore-tool os global boost_program_options)
+ install(TARGETS ceph-monstore-tool DESTINATION bin)
+ install(PROGRAMS
+   ceph-monstore-update-crush.sh
+@@ -41,7 +41,7 @@ add_executable(ceph-objectstore-tool
+   ceph_objectstore_tool.cc
+   rebuild_mondb.cc
+   RadosDump.cc)
+-target_link_libraries(ceph-objectstore-tool osd os global Boost::program_options ${CMAKE_DL_LIBS})
++target_link_libraries(ceph-objectstore-tool osd os global boost_program_options ${CMAKE_DL_LIBS})
+ if(WITH_FUSE)
+   target_link_libraries(ceph-objectstore-tool fuse)
+ endif(WITH_FUSE)


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2019-03-22 22:32 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2019-03-22 22:32 UTC (permalink / raw
  To: gentoo-commits

commit:     4b1f971d7c5d842d3422d2e167e9d8e272820af1
Author:     Patrick McLean <patrick.mclean <AT> sony <DOT> com>
AuthorDate: Fri Mar 22 22:29:35 2019 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Fri Mar 22 22:32:11 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=4b1f971d

sys-cluster/ceph: revbump 14.2.0-r1 static crc32 fork (bug #681216)

Statically link internal crc32 fork to avoid collisions and runtime
errors.

Closes: https://bugs.gentoo.org/681216
Copyright: Sony Interactive Entertainment Inc.
Package-Manager: Portage-2.3.62, Repoman-2.3.12
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 .../ceph/{ceph-14.2.0-r1.ebuild => ceph-14.2.0-r2.ebuild}     |  4 +++-
 .../ceph/files/ceph-14.2.0-link-crc32-statically.patch        | 11 +++++++++++
 2 files changed, 14 insertions(+), 1 deletion(-)

diff --git a/sys-cluster/ceph/ceph-14.2.0-r1.ebuild b/sys-cluster/ceph/ceph-14.2.0-r2.ebuild
similarity index 98%
rename from sys-cluster/ceph/ceph-14.2.0-r1.ebuild
rename to sys-cluster/ceph/ceph-14.2.0-r2.ebuild
index 868ca8e9fd7..d318002040a 100644
--- a/sys-cluster/ceph/ceph-14.2.0-r1.ebuild
+++ b/sys-cluster/ceph/ceph-14.2.0-r2.ebuild
@@ -38,6 +38,7 @@ COMMON_DEPEND="
 	app-arch/snappy:=[static-libs?]
 	app-arch/zstd:=[static-libs?]
 	app-misc/jq:=[static-libs?]
+	dev-libs/crc32c:=
 	dev-libs/crypto++:=[static-libs?]
 	dev-libs/leveldb:=[snappy,static-libs?,tcmalloc?]
 	dev-libs/libaio:=[static-libs?]
@@ -149,6 +150,7 @@ PATCHES=(
 	"${FILESDIR}/ceph-14.2.0-no-virtualenvs.patch"
 	"${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
 	"${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch"
+	"${FILESDIR}/ceph-14.2.0-link-crc32-statically.patch"
 )
 
 # dpdk and ninja don't get along
@@ -228,7 +230,7 @@ ceph_src_configure() {
 		-DWITH_TBB=no
 		-DSYSTEMD_UNITDIR=$(systemd_get_systemunitdir)
 		-DEPYTHON_VERSION="${EPYTHON#python}"
-		-DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${P}"
+		-DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PN}"
 		-DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
 		-Wno-dev
 	)

diff --git a/sys-cluster/ceph/files/ceph-14.2.0-link-crc32-statically.patch b/sys-cluster/ceph/files/ceph-14.2.0-link-crc32-statically.patch
new file mode 100644
index 00000000000..ec7a4fb079b
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-14.2.0-link-crc32-statically.patch
@@ -0,0 +1,11 @@
+--- ceph-14.2.0.orig/src/common/CMakeLists.txt	2019-03-18 04:08:29.000000000 -0600
++++ ceph-14.2.0/src/common/CMakeLists.txt	2019-03-21 18:42:32.903182824 -0600
+@@ -165,7 +165,7 @@
+     crc32c_aarch64.c)
+ endif(HAVE_INTEL)
+ 
+-add_library(crc32 ${crc32_srcs})
++add_library(crc32 STATIC ${crc32_srcs})
+ if(HAVE_ARMV8_CRC)
+   set_target_properties(crc32 PROPERTIES
+     COMPILE_FLAGS "${CMAKE_C_FLAGS} ${ARMV8_CRC_COMPILE_FLAGS}")


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2019-04-05  1:48 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2019-04-05  1:48 UTC (permalink / raw
  To: gentoo-commits

commit:     84f2bdae597f394425b96329fc8305d9b729f782
Author:     Patrick McLean <patrick.mclean <AT> sony <DOT> com>
AuthorDate: Fri Apr  5 01:45:22 2019 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Fri Apr  5 01:47:56 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=84f2bdae

sys-cluster/ceph: revbumps, fix build with cython-29 (bug 682482)

Closes: https://bugs.gentoo.org/682482
Copyright: Sony Interactive Entertainment Inc.
Package-Manager: Portage-2.3.62, Repoman-2.3.12
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 .../{ceph-13.2.5-r1.ebuild => ceph-13.2.5-r2.ebuild}    |  1 +
 .../{ceph-14.2.0-r3.ebuild => ceph-14.2.0-r4.ebuild}    |  1 +
 sys-cluster/ceph/files/ceph-14.2.0-cython-0.29.patch    | 17 +++++++++++++++++
 3 files changed, 19 insertions(+)

diff --git a/sys-cluster/ceph/ceph-13.2.5-r1.ebuild b/sys-cluster/ceph/ceph-13.2.5-r2.ebuild
similarity index 99%
rename from sys-cluster/ceph/ceph-13.2.5-r1.ebuild
rename to sys-cluster/ceph/ceph-13.2.5-r2.ebuild
index 7d088a08ac6..2ef0f19a401 100644
--- a/sys-cluster/ceph/ceph-13.2.5-r1.ebuild
+++ b/sys-cluster/ceph/ceph-13.2.5-r2.ebuild
@@ -147,6 +147,7 @@ PATCHES=(
 	"${FILESDIR}/ceph-13.2.0-no-virtualenvs.patch"
 	"${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
 	"${FILESDIR}/ceph-13.2.5-no-automagic-deps.patch"
+	"${FILESDIR}/ceph-14.2.0-cython-0.29.patch"
 )
 
 check-reqs_export_vars() {

diff --git a/sys-cluster/ceph/ceph-14.2.0-r3.ebuild b/sys-cluster/ceph/ceph-14.2.0-r4.ebuild
similarity index 99%
rename from sys-cluster/ceph/ceph-14.2.0-r3.ebuild
rename to sys-cluster/ceph/ceph-14.2.0-r4.ebuild
index 01499ef0ffe..61c4b21e9f8 100644
--- a/sys-cluster/ceph/ceph-14.2.0-r3.ebuild
+++ b/sys-cluster/ceph/ceph-14.2.0-r4.ebuild
@@ -150,6 +150,7 @@ PATCHES=(
 	"${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
 	"${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch"
 	"${FILESDIR}/ceph-14.2.0-link-crc32-statically.patch"
+	"${FILESDIR}/ceph-14.2.0-cython-0.29.patch"
 )
 
 # dpdk and ninja don't get along

diff --git a/sys-cluster/ceph/files/ceph-14.2.0-cython-0.29.patch b/sys-cluster/ceph/files/ceph-14.2.0-cython-0.29.patch
new file mode 100644
index 00000000000..be133c121d0
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-14.2.0-cython-0.29.patch
@@ -0,0 +1,17 @@
+--- ceph-13.2.1/cmake/modules/Distutils.cmake.old	2018-07-26 17:39:56.000000000 -0000
++++ ceph-13.2.1/cmake/modules/Distutils.cmake	2018-12-24 05:43:51.566174070 -0000
+@@ -58,8 +62,13 @@
+ function(distutils_install_cython_module name)
+   get_property(compiler_launcher GLOBAL PROPERTY RULE_LAUNCH_COMPILE)
+   get_property(link_launcher GLOBAL PROPERTY RULE_LAUNCH_LINK)
+-  set(PY_CC "${compiler_launcher} ${CMAKE_C_COMPILER}")
++  string(REPLACE " " ";" cflags ${CMAKE_C_FLAGS})
++  list(APPEND cflags -iquote${CMAKE_SOURCE_DIR}/src/include -w)
++  list(APPEND cflags -D'void0=dead_function\(void\)')
++  list(APPEND cflags -D'__Pyx_check_single_interpreter\(ARG\)=ARG \#\# 0')
++  string(REPLACE ";" " " cflags "${cflags}")
++  set(PY_CC "${compiler_launcher} ${CMAKE_C_COMPILER} ${cflags}")
+   set(PY_LDSHARED "${link_launcher} ${CMAKE_C_COMPILER} -shared")
+   install(CODE "
+     set(ENV{CC} \"${PY_CC}\")
+     set(ENV{LDSHARED} \"${PY_LDSHARED}\")


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2019-04-15 23:29 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2019-04-15 23:29 UTC (permalink / raw
  To: gentoo-commits

commit:     9c1469bcc815ad185bba2b5300887a3a142e8603
Author:     Patrick McLean <patrick.mclean <AT> sony <DOT> com>
AuthorDate: Mon Apr 15 23:26:37 2019 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Mon Apr 15 23:26:37 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=9c1469bc

sys-cluster/ceph: Revbumps, 681068, 651460, 671482, 682664, 638750

Cleanups for a lot of old bugs that had fallen through the cracks/

Closes: https://bugs.gentoo.org/681068
Closes: https://bugs.gentoo.org/651460
Closes: https://bugs.gentoo.org/671482
Closes: https://bugs.gentoo.org/682664
Closes: https://bugs.gentoo.org/638750
Copyright: Sony Interactive Entertainment Inc.
Package-Manager: Portage-2.3.62, Repoman-2.3.12
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 ...{ceph-12.2.12.ebuild => ceph-12.2.12-r1.ebuild} | 13 +++++-----
 ...ceph-13.2.5-r2.ebuild => ceph-13.2.5-r3.ebuild} | 23 +++++++++--------
 ...ceph-14.2.0-r4.ebuild => ceph-14.2.0-r5.ebuild} | 13 +++++-----
 .../ceph/files/ceph-12.2.12-ncurses-tinfo.patch    | 20 +++++++++++++++
 .../ceph/files/ceph-14.2.1-ncurses-tinfo.patch     | 30 ++++++++++++++++++++++
 5 files changed, 77 insertions(+), 22 deletions(-)

diff --git a/sys-cluster/ceph/ceph-12.2.12.ebuild b/sys-cluster/ceph/ceph-12.2.12-r1.ebuild
similarity index 96%
rename from sys-cluster/ceph/ceph-12.2.12.ebuild
rename to sys-cluster/ceph/ceph-12.2.12-r1.ebuild
index 002e685d77b..b9a012001e4 100644
--- a/sys-cluster/ceph/ceph-12.2.12.ebuild
+++ b/sys-cluster/ceph/ceph-12.2.12-r1.ebuild
@@ -81,7 +81,6 @@ DEPEND="${COMMON_DEPEND}
 	sys-devel/bc
 	virtual/pkgconfig
 	test? (
-		dev-python/tox[${PYTHON_USEDEP}]
 		dev-python/virtualenv[${PYTHON_USEDEP}]
 		sys-apps/grep[pcre]
 		sys-fs/btrfs-progs
@@ -121,8 +120,6 @@ CMAKE_WARN_UNUSED_CLI="no"
 # ninja does not work at all
 CMAKE_MAKEFILE_GENERATOR="emake"
 
-STRIP_MASK="/usr/lib*/rados-classes/*"
-
 UNBUNDLE_LIBS=(
 	src/erasure-code/jerasure/jerasure
 	src/erasure-code/jerasure/gf-complete
@@ -141,6 +138,7 @@ PATCHES=(
 	"${FILESDIR}/ceph-12.2.12-dont-use-bad-namespace.patch"
 	"${FILESDIR}/ceph-12.2.12-civetweb-openssl-1.1.1.patch"
 	"${FILESDIR}/ceph-12.2.12-qa-warning.patch"
+	"${FILESDIR}/ceph-12.2.12-ncurses-tinfo.patch"
 )
 
 check-reqs_export_vars() {
@@ -189,7 +187,7 @@ ceph_src_configure() {
 	local flag
 	local mycmakeargs=(
 		-DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
-		-DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${P}"
+		-DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PN}-${PVR}"
 		-DWITH_BABELTRACE=$(usex babeltrace)
 		-DWITH_CEPHFS=$(usex cephfs)
 		-DWITH_FUSE=$(usex fuse)
@@ -204,7 +202,7 @@ ceph_src_configure() {
 		-DWITH_XFS=$(usex xfs)
 		-DWITH_ZFS=$(usex zfs)
 		-DENABLE_SHARED=$(usex static-libs '' 'yes' 'no')
-		-DALLOCATOR=$(usex tcmalloc 'tcmalloc' '' "$(usex jemalloc 'jemalloc' '' 'libc' '')" '')
+		-DALLOCATOR=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')")
 		-DWITH_SYSTEM_BOOST=$(usex system-boost)
 		-DBOOST_J=$(makeopts_jobs)
 		-DWITH_RDMA=no
@@ -258,7 +256,7 @@ src_test() {
 python_install() {
 	local CMAKE_USE_DIR="${S}"
 	pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
-	DESTDIR="${D}" emake install
+	DESTDIR="${ED}" emake install
 	popd >/dev/null || die
 }
 
@@ -312,6 +310,9 @@ src_install() {
 	# 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"
+
+	local -a rados_classes=( "${D}/usr/$(get_libdir)/rados-classes"/* )
+	dostrip -x "${rados_classes[@]#${D}}"
 }
 
 pkg_postinst() {

diff --git a/sys-cluster/ceph/ceph-13.2.5-r2.ebuild b/sys-cluster/ceph/ceph-13.2.5-r3.ebuild
similarity index 94%
rename from sys-cluster/ceph/ceph-13.2.5-r2.ebuild
rename to sys-cluster/ceph/ceph-13.2.5-r3.ebuild
index 2ef0f19a401..c426116b1e6 100644
--- a/sys-cluster/ceph/ceph-13.2.5-r2.ebuild
+++ b/sys-cluster/ceph/ceph-13.2.5-r3.ebuild
@@ -1,13 +1,12 @@
 # Copyright 1999-2019 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
-EAPI=6
+EAPI=7
 PYTHON_COMPAT=( python{2_7,3_{4,5,6}} )
 DISTUTILS_OPTIONAL=1
 
-inherit check-reqs bash-completion-r1 cmake-utils distutils-r1 flag-o-matic \
-		multiprocessing python-r1 udev user readme.gentoo-r1 toolchain-funcs \
-		systemd
+inherit check-reqs cmake-utils distutils-r1 flag-o-matic multiprocessing \
+	python-r1 udev user readme.gentoo-r1 systemd
 
 if [[ ${PV} == *9999* ]]; then
 	inherit git-r3
@@ -93,7 +92,6 @@ DEPEND="${COMMON_DEPEND}
 	virtual/pkgconfig
 	test? (
 		dev-python/coverage[${PYTHON_USEDEP}]
-		dev-python/tox[${PYTHON_USEDEP}]
 		dev-python/virtualenv[${PYTHON_USEDEP}]
 		sys-apps/grep[pcre]
 		sys-fs/btrfs-progs
@@ -103,7 +101,7 @@ RDEPEND="${COMMON_DEPEND}
 	sys-apps/gptfdisk
 	sys-block/parted
 	sys-fs/cryptsetup
-	sys-fs/lvm2
+	sys-fs/lvm2[-device-mapper-only(-)]
 	!<sys-apps/openrc-0.26.3
 	dev-python/bcrypt[${PYTHON_USEDEP}]
 	dev-python/cherrypy[${PYTHON_USEDEP}]
@@ -130,7 +128,8 @@ RESTRICT+=" test"
 # false positives unless all USE flags are on
 CMAKE_WARN_UNUSED_CLI="no"
 
-STRIP_MASK="/usr/lib*/rados-classes/*"
+# ninja does not work at all
+CMAKE_MAKEFILE_GENERATOR="emake"
 
 UNBUNDLE_LIBS=(
 	src/erasure-code/jerasure/jerasure
@@ -148,6 +147,7 @@ PATCHES=(
 	"${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
 	"${FILESDIR}/ceph-13.2.5-no-automagic-deps.patch"
 	"${FILESDIR}/ceph-14.2.0-cython-0.29.patch"
+	"${FILESDIR}/ceph-12.2.12-ncurses-tinfo.patch"
 )
 
 check-reqs_export_vars() {
@@ -236,7 +236,7 @@ ceph_src_configure() {
 
 	# bug #630232
 	sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \
-		"${BUILD_DIR:-${CMAKE_BUILD_DIR:-${S}}}"/include/acconfig.h \
+		"${BUILD_DIR:--${S}}"/include/acconfig.h \
 		|| die "sed failed"
 }
 
@@ -283,10 +283,10 @@ src_install() {
 	cmake-utils_src_install
 	python_foreach_impl python_install
 
-	prune_libtool_files --all
+	find "${D}" -name '*.la' -delete || die
 
 	exeinto /usr/$(get_libdir)/ceph
-	newexe "${CMAKE_BUILD_DIR}/bin/init-ceph" ceph_init.sh
+	newexe "${BUILD_DIR}/bin/init-ceph" ceph_init.sh
 
 	insinto /etc/logrotate.d/
 	newins "${FILESDIR}"/ceph.logrotate-r2 ${PN}
@@ -329,6 +329,9 @@ src_install() {
 	# 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"
+
+	local -a rados_classes=( "${D}/usr/$(get_libdir)/rados-classes"/* )
+	dostrip -x "${rados_classes[@]#${D}}"
 }
 
 pkg_postinst() {

diff --git a/sys-cluster/ceph/ceph-14.2.0-r4.ebuild b/sys-cluster/ceph/ceph-14.2.0-r5.ebuild
similarity index 97%
rename from sys-cluster/ceph/ceph-14.2.0-r4.ebuild
rename to sys-cluster/ceph/ceph-14.2.0-r5.ebuild
index 61c4b21e9f8..3484f7a13d0 100644
--- a/sys-cluster/ceph/ceph-14.2.0-r4.ebuild
+++ b/sys-cluster/ceph/ceph-14.2.0-r5.ebuild
@@ -86,7 +86,6 @@ DEPEND="${COMMON_DEPEND}
 	dev-util/cunit
 	test? (
 		dev-python/coverage[${PYTHON_USEDEP}]
-		dev-python/tox[${PYTHON_USEDEP}]
 		dev-python/virtualenv[${PYTHON_USEDEP}]
 		sys-apps/grep[pcre]
 		sys-fs/btrfs-progs
@@ -105,7 +104,7 @@ RDEPEND="${COMMON_DEPEND}
 	sys-apps/gptfdisk
 	sys-block/parted
 	sys-fs/cryptsetup
-	sys-fs/lvm2
+	sys-fs/lvm2[-device-mapper-only(-)]
 	!<sys-apps/openrc-0.26.3
 	dev-python/bcrypt[${PYTHON_USEDEP}]
 	dev-python/cherrypy[${PYTHON_USEDEP}]
@@ -133,8 +132,6 @@ RESTRICT+=" test"
 # false positives unless all USE flags are on
 CMAKE_WARN_UNUSED_CLI="no"
 
-STRIP_MASK="/usr/lib*/rados-classes/*"
-
 UNBUNDLE_LIBS=(
 	src/erasure-code/jerasure/jerasure
 	src/erasure-code/jerasure/gf-complete
@@ -151,6 +148,7 @@ PATCHES=(
 	"${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch"
 	"${FILESDIR}/ceph-14.2.0-link-crc32-statically.patch"
 	"${FILESDIR}/ceph-14.2.0-cython-0.29.patch"
+	"${FILESDIR}/ceph-14.2.1-ncurses-tinfo.patch"
 )
 
 # dpdk and ninja don't get along
@@ -245,7 +243,7 @@ ceph_src_configure() {
 
 	# bug #630232
 	sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \
-		"${BUILD_DIR:-${CMAKE_BUILD_DIR:-${S}}}"/include/acconfig.h \
+		"${BUILD_DIR:-${S}}"/include/acconfig.h \
 		|| die "sed failed"
 }
 
@@ -271,7 +269,7 @@ src_compile() {
 	cmake-utils_src_make VERBOSE=1 all
 
 	# we have to do this here to prevent from building everything multiple times
-	BUILD_DIR="${CMAKE_BUILD_DIR}" python_copy_sources
+	python_copy_sources
 	python_foreach_impl python_compile
 }
 
@@ -336,6 +334,9 @@ src_install() {
 	# 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/{mount.*,ceph-volume{,-systemd}} || die "sed failed"
+
+	local -a rados_classes=( "${D}/usr/$(get_libdir)/rados-classes"/* )
+	dostrip -x "${rados_classes[@]#${D}}"
 }
 
 pkg_postinst() {

diff --git a/sys-cluster/ceph/files/ceph-12.2.12-ncurses-tinfo.patch b/sys-cluster/ceph/files/ceph-12.2.12-ncurses-tinfo.patch
new file mode 100644
index 00000000000..1b72e5447db
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-12.2.12-ncurses-tinfo.patch
@@ -0,0 +1,20 @@
+diff --git a/src/tools/rbd/CMakeLists.txt b/src/tools/rbd/CMakeLists.txt
+index 7aa42e9efd..66186b159f 100644
+--- a/src/tools/rbd/CMakeLists.txt
++++ b/src/tools/rbd/CMakeLists.txt
+@@ -1,3 +1,6 @@
++set(CURSES_NEED_NCURSES TRUE)
++find_package(Curses REQUIRED)
++
+ set(rbd_srcs
+   rbd.cc
+   ArgumentTypes.cc
+@@ -46,7 +49,7 @@ target_link_libraries(rbd librbd librados
+   cls_journal_client cls_rbd_client
+   rbd_types
+   journal
+-  ceph-common global
++  ceph-common global ${CURSES_LIBRARIES}
+   ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS})
+ if(WITH_KRBD)
+   target_link_libraries(rbd 

diff --git a/sys-cluster/ceph/files/ceph-14.2.1-ncurses-tinfo.patch b/sys-cluster/ceph/files/ceph-14.2.1-ncurses-tinfo.patch
new file mode 100644
index 00000000000..7f74a102d77
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-14.2.1-ncurses-tinfo.patch
@@ -0,0 +1,30 @@
+From b7bf406cff5e0f82fc87f19d5987cd4e719919e1 Mon Sep 17 00:00:00 2001
+From: Lars Wendler <polynomial-c@gentoo.org>
+Date: Mon, 8 Apr 2019 16:34:53 +0200
+Subject: [PATCH] cmake: Fix build against ncurses with separate libtinfo
+
+Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
+---
+ src/tools/rbd/CMakeLists.txt | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/tools/rbd/CMakeLists.txt b/src/tools/rbd/CMakeLists.txt
+index 36b2408a8d28..0e38a033ff55 100644
+--- a/src/tools/rbd/CMakeLists.txt
++++ b/src/tools/rbd/CMakeLists.txt
+@@ -1,3 +1,6 @@
++set(CURSES_NEED_NCURSES TRUE)
++find_package(Curses REQUIRED)
++
+ set(rbd_srcs
+   rbd.cc
+   ArgumentTypes.cc
+@@ -52,7 +55,7 @@ target_link_libraries(rbd librbd librados
+   cls_journal_client cls_rbd_client
+   rbd_types
+   journal
+-  ceph-common global ncurses
++  ceph-common global ${CURSES_LIBRARIES}
+   ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS})
+ if(WITH_KRBD)
+   target_link_libraries(rbd 


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2020-03-05  1:17 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2020-03-05  1:17 UTC (permalink / raw
  To: gentoo-commits

commit:     0a61409fb0b83f41e02f91d0065fe33fd0ca1014
Author:     Patrick McLean <patrick.mclean <AT> sony <DOT> com>
AuthorDate: Thu Mar  5 01:11:29 2020 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Thu Mar  5 01:17:36 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0a61409f

sys-cluster/ceph-14.2.8: version bump

Copyright: Sony Interactive Entertainment Inc.
Package-Manager: Portage-2.3.89, Repoman-2.3.20
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 sys-cluster/ceph/Manifest                          |   1 +
 sys-cluster/ceph/ceph-14.2.8.ebuild                | 367 ++++++++++++++
 .../ceph/files/ceph-14.2.8-boost-sonames.patch     | 538 +++++++++++++++++++++
 3 files changed, 906 insertions(+)

diff --git a/sys-cluster/ceph/Manifest b/sys-cluster/ceph/Manifest
index 5bc6a05232c..f6b72a26254 100644
--- a/sys-cluster/ceph/Manifest
+++ b/sys-cluster/ceph/Manifest
@@ -1,2 +1,3 @@
 DIST ceph-12.2.12.tar.gz 77467762 BLAKE2B a5224432121db9ef49c1e22771d847399df2f7881cd9c2e185eca12096efb79d21578659d248eb5bae678924983d57452d370e23ab7e78663764d7bea834a461 SHA512 e694c9a8c1f9836c08fb74b54423bdc16d4900252e34643c56cf1a615d4dacddfb13df06a6a9f68bb9d438f5f07069ed358f9fa4b5a362640a3046f9c7722dcc
 DIST ceph-14.2.7.tar.gz 116647114 BLAKE2B f6971324b0467cfdb863db553b6feacaf3607b14fb9adae2808bd6e5514fc5ce218482c412b80902c22a74b883ed697f2c126bc687c8733a83de5b970593efa2 SHA512 59f475e56053ba5e7e3a482a3a91b4d44272e6ec8051b92783de76c09c0d967a7ef76676db998968a709e48f08e90828dd8f86bd96a7c3fd111d48bfb7fd93b1
+DIST ceph-14.2.8.tar.gz 128415417 BLAKE2B bb3644938106aaefe17d29fd6adc8568a35e6aef799da048add5ecebb6fb0128a8575eba1f5ecc2f33f33caf2130619e5b6979a6291566e0971976d8da0e8387 SHA512 38b0c6df58579377528c8f8e06d0cbc40f471f6eb2fb4a05b395f6fddbd3f2117674545b2147d8730973b01967ddcd4322a769ba03f9c625417ed35cc39f195a

diff --git a/sys-cluster/ceph/ceph-14.2.8.ebuild b/sys-cluster/ceph/ceph-14.2.8.ebuild
new file mode 100644
index 00000000000..287059ae8ea
--- /dev/null
+++ b/sys-cluster/ceph/ceph-14.2.8.ebuild
@@ -0,0 +1,367 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{6,7} )
+CMAKE_MAKEFILE_GENERATOR=emake
+
+DISTUTILS_OPTIONAL=1
+
+inherit check-reqs bash-completion-r1 cmake-utils distutils-r1 flag-o-matic \
+		multiprocessing python-r1 udev readme.gentoo-r1 toolchain-funcs \
+		systemd
+
+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 ~ppc64"
+fi
+
+DESCRIPTION="Ceph distributed filesystem"
+HOMEPAGE="https://ceph.com/"
+
+LICENSE="LGPL-2.1 CC-BY-SA-3.0 GPL-2 GPL-2+ LGPL-2+ BSD Boost-1.0 MIT public-domain"
+SLOT="0"
+
+CPU_FLAGS_X86=(sse{,2,3,4_1,4_2} ssse3)
+
+IUSE="babeltrace +cephfs dpdk fuse grafana jemalloc kerberos ldap libressl"
+IUSE+=" lttng +mgr numa rabbitmq +radosgw +ssl spdk static-libs system-boost"
+IUSE+=" systemd +tcmalloc test xfs zfs"
+IUSE+=" $(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})"
+
+COMMON_DEPEND="
+	acct-group/ceph
+	acct-user/ceph
+	virtual/libudev:=
+	app-arch/bzip2:=[static-libs?]
+	app-arch/lz4:=[static-libs?]
+	app-arch/snappy:=[static-libs(-)?]
+	app-arch/zstd:=[static-libs?]
+	app-shells/bash:0
+	app-misc/jq:=[static-libs?]
+	dev-libs/crypto++:=[static-libs?]
+	dev-libs/leveldb:=[snappy,static-libs?,tcmalloc(-)?]
+	dev-libs/libaio:=[static-libs?]
+	dev-libs/libnl:3=[static-libs?]
+	dev-libs/libxml2:=[static-libs?]
+	dev-libs/nss:=
+	sys-auth/oath-toolkit:=
+	sys-apps/coreutils
+	sys-apps/grep
+	sys-apps/keyutils:=[static-libs?]
+	sys-apps/util-linux:=[static-libs?]
+	sys-apps/sed
+	sys-apps/util-linux
+	sys-libs/libcap-ng:=[static-libs?]
+	sys-libs/ncurses:0=[static-libs?]
+	sys-libs/zlib:=[static-libs?]
+	babeltrace? ( dev-util/babeltrace )
+	ldap? ( net-nds/openldap:=[static-libs?] )
+	lttng? ( dev-util/lttng-ust:= )
+	fuse? ( sys-fs/fuse:0=[static-libs?] )
+	kerberos? ( virtual/krb5 )
+	rabbitmq? ( net-libs/rabbitmq-c:=[static-libs?] )
+	ssl? (
+		!libressl? ( dev-libs/openssl:=[static-libs?] )
+		libressl? ( dev-libs/libressl:=[static-libs?] )
+	)
+	xfs? ( sys-fs/xfsprogs:=[static-libs(+)?] )
+	zfs? ( sys-fs/zfs:=[static-libs?] )
+	radosgw? (
+		dev-libs/expat:=[static-libs?]
+		!libressl? (
+			dev-libs/openssl:=[static-libs?]
+			net-misc/curl:=[curl_ssl_openssl,static-libs?]
+		)
+		libressl? (
+			dev-libs/libressl:=[static-libs?]
+			net-misc/curl:=[curl_ssl_libressl,static-libs?]
+		)
+	)
+	system-boost? ( =dev-libs/boost-1.72*[threads,context,python,static-libs?,${PYTHON_USEDEP}] )
+	jemalloc? ( dev-libs/jemalloc:=[static-libs?] )
+	!jemalloc? ( >=dev-util/google-perftools-2.6.1:=[static-libs?] )
+	${PYTHON_DEPS}
+"
+BDEPEND="
+	amd64? ( dev-lang/yasm )
+	x86? ( dev-lang/yasm )
+	app-arch/cpio
+	>=dev-util/cmake-3.5.0
+	dev-python/cython[${PYTHON_USEDEP}]
+	dev-python/sphinx
+	dev-util/cunit
+	dev-util/gperf
+	dev-util/valgrind
+	sys-apps/coreutils
+	sys-apps/findutils
+	sys-apps/grep
+	sys-apps/sed
+	sys-apps/which
+	sys-devel/bc
+	sys-devel/patch
+	virtual/pkgconfig
+	test? (
+		dev-python/coverage[${PYTHON_USEDEP}]
+		dev-python/virtualenv[${PYTHON_USEDEP}]
+		dev-python/requests-mock[${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-fs/lvm2[-device-mapper-only(-)]
+	sys-fs/lsscsi
+	virtual/awk
+	dev-python/bcrypt[${PYTHON_USEDEP}]
+	dev-python/cherrypy[${PYTHON_USEDEP}]
+	dev-python/flask[${PYTHON_USEDEP}]
+	dev-python/jinja[${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}]
+	mgr? (
+		dev-python/more-itertools[${PYTHON_USEDEP}]
+		dev-python/pyjwt[${PYTHON_USEDEP}]
+		dev-python/pyyaml[${PYTHON_USEDEP}]
+		dev-python/routes[${PYTHON_USEDEP}]
+		dev-python/six[${PYTHON_USEDEP}]
+	)
+"
+REQUIRED_USE="
+	${PYTHON_REQUIRED_USE}
+	mgr? ( cephfs )
+	?? ( jemalloc tcmalloc )
+	rabbitmq? ( radosgw )
+"
+
+# the tests need root access
+RESTRICT="test? ( userpriv )"
+
+# distribution tarball does not include everything needed for tests
+RESTRICT+=" test"
+
+# false positives unless all USE flags are on
+CMAKE_WARN_UNUSED_CLI="no"
+
+PATCHES=(
+	"${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch"
+	"${FILESDIR}/ceph-14.2.0-cflags.patch"
+	"${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch"
+	"${FILESDIR}/ceph-13.2.0-cflags.patch"
+	"${FILESDIR}/ceph-14.2.0-mgr-python-version.patch"
+	"${FILESDIR}/ceph-14.2.5-no-virtualenvs.patch"
+	"${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
+	"${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch"
+	"${FILESDIR}/ceph-14.2.0-link-crc32-statically.patch"
+	"${FILESDIR}/ceph-14.2.0-cython-0.29.patch"
+	"${FILESDIR}/ceph-14.2.3-dpdk-compile-fix-1.patch"
+	"${FILESDIR}/ceph-14.2.4-python-executable.patch"
+	"${FILESDIR}/ceph-14.2.4-undefined-behaviour.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
+}
+
+pkg_pretend() {
+	check-reqs_export_vars
+	check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+	python_setup 'python3*'
+	check-reqs_export_vars
+	check-reqs_pkg_setup
+}
+
+src_prepare() {
+	cmake-utils_src_prepare
+
+	if use system-boost; then
+		eapply "${FILESDIR}/ceph-14.2.8-boost-sonames.patch"
+
+		find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \
+			| xargs --null sed \
+			-e 's|Boost::|Boost_|g' \
+			-e 's|Boost_boost|boost_system|g' -i || die
+	fi
+
+	sed -i -r "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \
+		src/bash_completion/CMakeLists.txt || die
+
+	# remove tests that need root access
+	rm src/test/cli/ceph-authtool/cap*.t || die
+}
+
+ceph_src_configure() {
+	local flag
+	local mycmakeargs=(
+		-DWITH_BABELTRACE=$(usex babeltrace)
+		-DWITH_CEPHFS=$(usex cephfs)
+		-DWITH_CEPHFS_SHELL=$(if python_is_python3; then usex cephfs; else echo OFF; fi)
+		-DWITH_DPDK=$(usex dpdk)
+		-DWITH_DPDK=$(usex spdk)
+		-DWITH_FUSE=$(usex fuse)
+		-DWITH_LTTNG=$(usex lttng)
+		-DWITH_GSSAPI=$(usex kerberos)
+		-DWITH_GRAFANA=$(usex grafana)
+		-DWITH_MGR=$(usex mgr)
+		-DWITH_MGR_DASHBOARD_FRONTEND=NO
+		-DWITH_NUMA=$(usex numa)
+		-DWITH_OPENLDAP=$(usex ldap)
+		-DMGR_PYTHON_VERSION=$(if python_is_python3; then echo 3; else echo 2; fi)
+		-DWITH_PYTHON3=$(if python_is_python3; then echo "ON"; else echo "OFF"; fi)
+		-DWITH_PYTHON2=$(if python_is_python3; then echo "OFF"; else echo "ON"; fi)
+		-DWITH_RADOSGW=$(usex radosgw)
+		-DWITH_RADOSGW_AMQP_ENDPOINT=$(usex rabbitmq)
+		-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 '' 'ON' 'OFF')
+		-DALLOCATOR=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')")
+		-DWITH_SYSTEM_BOOST=$(usex system-boost)
+		-DBOOST_J=$(makeopts_jobs)
+		-DWITH_RDMA=no
+		-DWITH_TBB=no
+		-DSYSTEMD_UNITDIR=$(systemd_get_systemunitdir)
+		-DEPYTHON_VERSION="${EPYTHON#python}"
+		-DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PN}-${PVR}"
+		-DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
+		#-Wno-dev
+	)
+	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" \
+		|| die "failed to remove cmake cache"
+
+	cmake-utils_src_configure
+
+	# bug #630232
+	sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \
+		"${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 clean
+	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 VERBOSE=1 all
+
+	# we have to do this here to prevent from building everything multiple times
+	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="${ED}" emake VERBOSE=1 install
+	popd >/dev/null || die
+
+	python_optimize
+}
+
+src_install() {
+	cmake-utils_src_install
+	python_foreach_impl python_install
+
+	find "${ED}" -name '*.la' -type f -delete || die
+
+	exeinto /usr/$(get_libdir)/ceph
+	newexe "${BUILD_DIR}/bin/init-ceph" init-ceph
+
+	insinto /etc/logrotate.d/
+	newins "${FILESDIR}"/ceph.logrotate-r2 ${PN}
+
+	keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat
+
+	fowners -R ceph:ceph /var/log/ceph
+
+	newinitd "${FILESDIR}/rbdmap.initd" rbdmap
+	newinitd "${FILESDIR}/${PN}.initd-r12" ${PN}
+	newconfd "${FILESDIR}/${PN}.confd-r5" ${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 'python3*'
+
+	# bug #630232
+	sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \
+		|| die "sed failed"
+
+	python_fix_shebang "${ED}"/usr/{,s}bin/
+
+	# python_fix_shebang apparently is not idempotent
+	local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]'
+	grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \
+		| xargs --null --no-run-if-empty -- sed -i -r  "s:${shebang_regex}:\1:" || die
+
+	local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* )
+	dostrip -x "${rados_classes[@]#${ED}}"
+}
+
+pkg_postinst() {
+	readme.gentoo_print_elog
+}

diff --git a/sys-cluster/ceph/files/ceph-14.2.8-boost-sonames.patch b/sys-cluster/ceph/files/ceph-14.2.8-boost-sonames.patch
new file mode 100644
index 00000000000..07def706d78
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-14.2.8-boost-sonames.patch
@@ -0,0 +1,538 @@
+diff --git a/cmake/modules/BuildBoost.cmake b/cmake/modules/BuildBoost.cmake
+index f99d74a0bc..d1a47bc5d1 100644
+--- a/cmake/modules/BuildBoost.cmake
++++ b/cmake/modules/BuildBoost.cmake
+@@ -199,13 +199,13 @@ macro(build_boost version)
+   foreach(c ${Boost_BUILD_COMPONENTS})
+     string(TOUPPER ${c} upper_c)
+     if(Boost_USE_STATIC_LIBS)
+-      add_library(Boost::${c} STATIC IMPORTED)
++      add_library(Boost_${c} STATIC IMPORTED)
+     else()
+-      add_library(Boost::${c} SHARED IMPORTED)
++      add_library(Boost_${c} SHARED IMPORTED)
+     endif()
+-    add_dependencies(Boost::${c} Boost)
++    add_dependencies(Boost_${c} Boost)
+     if(c MATCHES "^python")
+-      set(c "python${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}")
++      set(c "python-${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}")
+     endif()
+     if(Boost_USE_STATIC_LIBS)
+       set(Boost_${upper_c}_LIBRARY
+@@ -215,7 +215,7 @@ macro(build_boost version)
+         ${install_dir}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}boost_${c}${CMAKE_SHARED_LIBRARY_SUFFIX})
+     endif()
+     unset(buildid)
+-    set_target_properties(Boost::${c} PROPERTIES
++    set_target_properties(Boost_${c} PROPERTIES
+       INTERFACE_INCLUDE_DIRECTORIES "${Boost_INCLUDE_DIRS}"
+       IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
+       IMPORTED_LOCATION "${Boost_${upper_c}_LIBRARY}")
+@@ -224,19 +224,19 @@ macro(build_boost version)
+   foreach(c ${Boost_BUILD_COMPONENTS})
+     if(Boost_${c}_DEPENDENCIES)
+       foreach(dep ${Boost_${c}_DEPENDENCIES})
+-        list(APPEND dependencies Boost::${dep})
++        list(APPEND dependencies Boost_${dep})
+       endforeach()
+-      set_target_properties(Boost::${c} PROPERTIES
++      set_target_properties(Boost_${c} PROPERTIES
+         INTERFACE_LINK_LIBRARIES "${dependencies}")
+       unset(dependencies)
+     endif()
+   endforeach()
+ 
+   # for header-only libraries
+-  add_library(Boost::boost INTERFACE IMPORTED)
+-  set_target_properties(Boost::boost PROPERTIES
++  add_library(boost INTERFACE IMPORTED)
++  set_target_properties(boost PROPERTIES
+     INTERFACE_INCLUDE_DIRECTORIES "${Boost_INCLUDE_DIRS}")
+-  add_dependencies(Boost::boost Boost)
++  add_dependencies(boost Boost)
+   find_package_handle_standard_args(Boost DEFAULT_MSG
+     Boost_INCLUDE_DIRS Boost_LIBRARIES)
+   mark_as_advanced(Boost_LIBRARIES BOOST_INCLUDE_DIRS)
+@@ -253,7 +253,7 @@ function(maybe_add_boost_dep target)
+     get_filename_component(ext ${src} EXT)
+     # assuming all cxx source files include boost header(s)
+     if(ext MATCHES ".cc|.cpp|.cxx")
+-      add_dependencies(${target} Boost::boost)
++      add_dependencies(${target} boost)
+       return()
+     endif()
+   endforeach()
+diff --git a/cmake/modules/FindBoost.cmake b/cmake/modules/FindBoost.cmake
+index bc61995b03..4419632fa4 100644
+--- a/cmake/modules/FindBoost.cmake
++++ b/cmake/modules/FindBoost.cmake
+@@ -293,9 +293,9 @@ function(_boost_get_canonical_target_name component target_var)
+   string(TOLOWER "${component}" component)
+   if(component MATCHES "^([a-z_]*)(python|numpy)([1-9])\\.?([0-9])?$")
+     # handle pythonXY and numpyXY versioned components and also python X.Y, mpi_python etc.
+-    set(${target_var} "Boost::${CMAKE_MATCH_1}${CMAKE_MATCH_2}" PARENT_SCOPE)
++    set(${target_var} "boost_${CMAKE_MATCH_1}${CMAKE_MATCH_2}" PARENT_SCOPE)
+   else()
+-    set(${target_var} "Boost::${component}" PARENT_SCOPE)
++    set(${target_var} "boost_${component}" PARENT_SCOPE)
+   endif()
+ endfunction()
+ 
+@@ -403,19 +403,19 @@ function(_boost_set_legacy_variables_from_config)
+   if(WIN32)
+     _boost_set_if_unset(Boost_LIB_DIAGNOSTIC_DEFINITIONS "-DBOOST_LIB_DIAGNOSTIC")
+   endif()
+-  if(NOT TARGET Boost::headers)
+-    add_library(Boost::headers INTERFACE IMPORTED)
+-    target_include_directories(Boost::headers INTERFACE ${Boost_INCLUDE_DIRS})
++  if(NOT TARGET boost_headers)
++    add_library(boost_headers INTERFACE IMPORTED)
++    target_include_directories(boost_headers INTERFACE ${Boost_INCLUDE_DIRS})
+   endif()
+   # Legacy targets w/o functionality as all handled by defined targets
+   foreach(lib diagnostic_definitions disable_autolinking dynamic_linking)
+-    if(NOT TARGET Boost::${lib})
+-      add_library(Boost::${lib} INTERFACE IMPORTED)
++    if(NOT TARGET boost_${lib})
++      add_library(boost_${lib} INTERFACE IMPORTED)
+     endif()
+   endforeach()
+-  if(NOT TARGET Boost::boost)
+-    add_library(Boost::boost INTERFACE IMPORTED)
+-    target_link_libraries(Boost::boost INTERFACE Boost::headers)
++  if(NOT TARGET boost_boost)
++    add_library(boost_boost INTERFACE IMPORTED)
++    target_link_libraries(boost_boost INTERFACE boost_headers)
+   endif()
+ endfunction()
+ 
+@@ -580,10 +580,6 @@ macro(_Boost_ADJUST_LIB_VARS basename)
+ 
+     if(Boost_${basename}_LIBRARY AND Boost_${basename}_HEADER)
+       set(Boost_${basename}_FOUND ON)
+-      if("x${basename}" STREQUAL "xTHREAD" AND NOT TARGET Threads::Threads)
+-        string(APPEND Boost_ERROR_REASON_THREAD " (missing dependency: Threads)")
+-        set(Boost_THREAD_FOUND OFF)
+-      endif()
+     endif()
+ 
+   endif()
+@@ -1170,7 +1166,7 @@ function(_Boost_COMPONENT_DEPENDENCIES component _ret)
+   if (NOT _boost_DEPS_STRING)
+     set(_boost_DEPS_STRING "(none)")
+   endif()
+-  # message(STATUS "Dependencies for Boost::${component}: ${_boost_DEPS_STRING}")
++  # message(STATUS "Dependencies for Boost_${component}: ${_boost_DEPS_STRING}")
+ endfunction()
+ 
+ #
+@@ -1254,7 +1250,7 @@ function(_Boost_COMPONENT_HEADERS component _hdrs)
+   if (NOT _boost_HDRS_STRING)
+     set(_boost_HDRS_STRING "(none)")
+   endif()
+-  # message(STATUS "Headers for Boost::${component}: ${_boost_HDRS_STRING}")
++  # message(STATUS "Headers for Boost_${component}: ${_boost_HDRS_STRING}")
+ endfunction()
+ 
+ #
+@@ -1302,7 +1298,7 @@ endfunction()
+ 
+ #
+ # Some boost libraries may require particular set of compler features.
+-# The very first one was `boost::fiber` introduced in Boost 1.62.
++# The very first one was `boost_fiber` introduced in Boost 1.62.
+ # One can check required compiler features of it in
+ # - `${Boost_ROOT}/libs/fiber/build/Jamfile.v2`;
+ # - `${Boost_ROOT}/libs/context/build/Jamfile.v2`.
+@@ -1472,11 +1468,11 @@ _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}"
+ # on all platforms to keep end user code free from platform dependent
+ # code.  Also provide convenience targets to disable autolinking and
+ # enable dynamic linking.
+-if(NOT TARGET Boost::diagnostic_definitions)
+-  add_library(Boost::diagnostic_definitions INTERFACE IMPORTED)
+-  add_library(Boost::disable_autolinking INTERFACE IMPORTED)
+-  add_library(Boost::dynamic_linking INTERFACE IMPORTED)
+-  set_target_properties(Boost::dynamic_linking PROPERTIES
++if(NOT TARGET boost_diagnostic_definitions)
++  add_library(boost_diagnostic_definitions INTERFACE IMPORTED)
++  add_library(boost_disable_autolinking INTERFACE IMPORTED)
++  add_library(boost_dynamic_linking INTERFACE IMPORTED)
++  set_target_properties(boost_dynamic_linking PROPERTIES
+     INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_DYN_LINK")
+ endif()
+ if(WIN32)
+@@ -1498,9 +1494,9 @@ if(WIN32)
+   # code to emit a #pragma message each time a library is selected
+   # for linking.
+   set(Boost_LIB_DIAGNOSTIC_DEFINITIONS "-DBOOST_LIB_DIAGNOSTIC")
+-  set_target_properties(Boost::diagnostic_definitions PROPERTIES
++  set_target_properties(boost_diagnostic_definitions PROPERTIES
+     INTERFACE_COMPILE_DEFINITIONS "BOOST_LIB_DIAGNOSTIC")
+-  set_target_properties(Boost::disable_autolinking PROPERTIES
++  set_target_properties(boost_disable_autolinking PROPERTIES
+     INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB")
+ endif()
+ 
+@@ -1933,7 +1929,7 @@ if("thread" IN_LIST Boost_FIND_COMPONENTS)
+   else()
+     set(_Boost_find_quiet "")
+   endif()
+-  find_package(Threads ${_Boost_find_quiet})
++  find_package(boost_thread ${_Boost_find_quiet})
+   unset(_Boost_find_quiet)
+ endif()
+ 
+@@ -2234,69 +2230,69 @@ endif()
+ if(Boost_FOUND)
+   # The builtin CMake package in Boost 1.70+ introduces a new name
+   # for the header-only lib, let's provide the same UI in module mode
+-  if(NOT TARGET Boost::headers)
+-    add_library(Boost::headers INTERFACE IMPORTED)
++  if(NOT TARGET boost_headers)
++    add_library(boost_headers INTERFACE IMPORTED)
+     if(Boost_INCLUDE_DIRS)
+-      set_target_properties(Boost::headers PROPERTIES
++      set_target_properties(boost_headers PROPERTIES
+         INTERFACE_INCLUDE_DIRECTORIES "${Boost_INCLUDE_DIRS}")
+     endif()
+   endif()
+ 
+   # Define the old target name for header-only libraries for backwards
+   # compat.
+-  if(NOT TARGET Boost::boost)
+-    add_library(Boost::boost INTERFACE IMPORTED)
+-    set_target_properties(Boost::boost
+-      PROPERTIES INTERFACE_LINK_LIBRARIES Boost::headers)
++  if(NOT TARGET boost_boost)
++    add_library(boost_boost INTERFACE IMPORTED)
++    set_target_properties(boost_boost
++      PROPERTIES INTERFACE_LINK_LIBRARIES boost_headers)
+   endif()
+ 
+   foreach(COMPONENT ${Boost_FIND_COMPONENTS})
+-    if(_Boost_IMPORTED_TARGETS AND NOT TARGET Boost::${COMPONENT})
++    if(_Boost_IMPORTED_TARGETS AND NOT TARGET boost_${COMPONENT})
+       string(TOUPPER ${COMPONENT} UPPERCOMPONENT)
+       if(Boost_${UPPERCOMPONENT}_FOUND)
+         if(Boost_USE_STATIC_LIBS)
+-          add_library(Boost::${COMPONENT} STATIC IMPORTED)
++          add_library(boost_${COMPONENT} STATIC IMPORTED)
+         else()
+           # Even if Boost_USE_STATIC_LIBS is OFF, we might have static
+           # libraries as a result.
+-          add_library(Boost::${COMPONENT} UNKNOWN IMPORTED)
++          add_library(boost_${COMPONENT} UNKNOWN IMPORTED)
+         endif()
+         if(Boost_INCLUDE_DIRS)
+-          set_target_properties(Boost::${COMPONENT} PROPERTIES
++          set_target_properties(boost_${COMPONENT} PROPERTIES
+             INTERFACE_INCLUDE_DIRECTORIES "${Boost_INCLUDE_DIRS}")
+         endif()
+         if(EXISTS "${Boost_${UPPERCOMPONENT}_LIBRARY}")
+-          set_target_properties(Boost::${COMPONENT} PROPERTIES
++          set_target_properties(boost_${COMPONENT} PROPERTIES
+             IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
+             IMPORTED_LOCATION "${Boost_${UPPERCOMPONENT}_LIBRARY}")
+         endif()
+         if(EXISTS "${Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE}")
+-          set_property(TARGET Boost::${COMPONENT} APPEND PROPERTY
++          set_property(TARGET boost_${COMPONENT} APPEND PROPERTY
+             IMPORTED_CONFIGURATIONS RELEASE)
+-          set_target_properties(Boost::${COMPONENT} PROPERTIES
++          set_target_properties(boost_${COMPONENT} PROPERTIES
+             IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
+             IMPORTED_LOCATION_RELEASE "${Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE}")
+         endif()
+         if(EXISTS "${Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG}")
+-          set_property(TARGET Boost::${COMPONENT} APPEND PROPERTY
++          set_property(TARGET boost_${COMPONENT} APPEND PROPERTY
+             IMPORTED_CONFIGURATIONS DEBUG)
+-          set_target_properties(Boost::${COMPONENT} PROPERTIES
++          set_target_properties(boost_${COMPONENT} PROPERTIES
+             IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX"
+             IMPORTED_LOCATION_DEBUG "${Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG}")
+         endif()
+         if(_Boost_${UPPERCOMPONENT}_DEPENDENCIES)
+           unset(_Boost_${UPPERCOMPONENT}_TARGET_DEPENDENCIES)
+           foreach(dep ${_Boost_${UPPERCOMPONENT}_DEPENDENCIES})
+-            list(APPEND _Boost_${UPPERCOMPONENT}_TARGET_DEPENDENCIES Boost::${dep})
++            list(APPEND _Boost_${UPPERCOMPONENT}_TARGET_DEPENDENCIES boost_${dep})
+           endforeach()
+           if(COMPONENT STREQUAL "thread")
+             list(APPEND _Boost_${UPPERCOMPONENT}_TARGET_DEPENDENCIES Threads::Threads)
+           endif()
+-          set_target_properties(Boost::${COMPONENT} PROPERTIES
++          set_target_properties(boost_${COMPONENT} PROPERTIES
+             INTERFACE_LINK_LIBRARIES "${_Boost_${UPPERCOMPONENT}_TARGET_DEPENDENCIES}")
+         endif()
+         if(_Boost_${UPPERCOMPONENT}_COMPILER_FEATURES)
+-          set_target_properties(Boost::${COMPONENT} PROPERTIES
++          set_target_properties(boost_${COMPONENT} PROPERTIES
+             CXX_STANDARD 17)
+         endif()
+       endif()
+diff --git a/cmake/modules/Finddpdk.cmake b/cmake/modules/Finddpdk.cmake
+index 964ae5dfb0..92bf07c14e 100644
+--- a/cmake/modules/Finddpdk.cmake
++++ b/cmake/modules/Finddpdk.cmake
+@@ -102,9 +102,9 @@ if(dpdk_FOUND)
+ 
+   if(NOT TARGET dpdk::dpdk)
+     add_library(dpdk::dpdk INTERFACE IMPORTED)
+-    find_package(Threads QUIET)
++    find_package(boost_thread QUIET)
+     list(APPEND dpdk_LIBRARIES
+-      Threads::Threads
++      boost_thread
+       dpdk::cflags)
+     set_target_properties(dpdk::dpdk PROPERTIES
+       INTERFACE_LINK_LIBRARIES "${dpdk_LIBRARIES}"
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 28ec9835f8..31a1efa19f 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -356,12 +356,12 @@ set(ceph_common_objs
+ set(ceph_common_deps
+   json_spirit erasure_code arch crc32
+   ${LIB_RESOLV}
+-  Boost::thread
+-  Boost::system
+-  Boost::random
+-  Boost::program_options
+-  Boost::date_time
+-  Boost::iostreams
++  boost_thread
++  boost_system
++  boost_random
++  boost_program_options
++  boost_date_time
++  boost_iostreams
+   ${BLKID_LIBRARIES}
+   ${Backtrace_LIBRARIES}
+   ${BLKIN_LIBRARIES}
+@@ -522,7 +522,7 @@ if (WITH_CEPHFS)
+     ceph_mds.cc)
+   add_executable(ceph-mds ${ceph_mds_srcs})
+   target_link_libraries(ceph-mds mds ${CMAKE_DL_LIBS} global-static ceph-common
+-    Boost::thread)
++    boost_thread)
+   install(TARGETS ceph-mds DESTINATION bin)
+ endif()
+ 
+diff --git a/src/crimson/CMakeLists.txt b/src/crimson/CMakeLists.txt
+index d7b58521d4..e1533af33f 100644
+--- a/src/crimson/CMakeLists.txt
++++ b/src/crimson/CMakeLists.txt
+@@ -106,8 +106,8 @@ target_link_libraries(crimson-common
+   PRIVATE
+     crc32
+     crimson::cflags
+-    Boost::iostreams
+-    Boost::random
++    boost_iostreams
++    boost_random
+     ${NSS_LIBRARIES} ${NSPR_LIBRARIES} OpenSSL::Crypto)
+ 
+ set(crimson_auth_srcs
+diff --git a/src/mgr/CMakeLists.txt b/src/mgr/CMakeLists.txt
+index 180e39bc1c..8323aa29a5 100644
+--- a/src/mgr/CMakeLists.txt
++++ b/src/mgr/CMakeLists.txt
+@@ -30,7 +30,7 @@ target_include_directories(ceph-mgr SYSTEM PRIVATE "${PYTHON_INCLUDE_DIRS}")
+ target_link_libraries(ceph-mgr
+   osdc client heap_profiler
+   global-static ceph-common
+-  Boost::python${MGR_PYTHON_VERSION_MAJOR}${MGR_PYTHON_VERSION_MINOR}
++  boost_python${MGR_PYTHON_VERSION_MAJOR}${MGR_PYTHON_VERSION_MINOR}
+   ${MGR_PYTHON_LIBRARIES} ${CMAKE_DL_LIBS} ${GSSAPI_LIBRARIES})
+ set_target_properties(ceph-mgr PROPERTIES
+   POSITION_INDEPENDENT_CODE ${EXE_LINKER_USE_PIE})
+diff --git a/src/rbd_replay/CMakeLists.txt b/src/rbd_replay/CMakeLists.txt
+index e9d3804c5f..5c6eb58de1 100644
+--- a/src/rbd_replay/CMakeLists.txt
++++ b/src/rbd_replay/CMakeLists.txt
+@@ -36,7 +36,7 @@ if(HAVE_BABELTRACE)
+     global
+     babeltrace
+     babeltrace-ctf
+-    Boost::date_time
++    boost_date_time
+     )
+   install(TARGETS rbd-replay-prep DESTINATION bin)
+ endif(HAVE_BABELTRACE)
+diff --git a/src/rgw/CMakeLists.txt b/src/rgw/CMakeLists.txt
+index d184c783de..00740331e3 100644
+--- a/src/rgw/CMakeLists.txt
++++ b/src/rgw/CMakeLists.txt
+@@ -203,7 +203,7 @@ if(WITH_CURL_OPENSSL)
+ endif()
+ 
+ if(WITH_BOOST_CONTEXT)
+-  target_link_libraries(rgw_a PRIVATE Boost::coroutine Boost::context)
++  target_link_libraries(rgw_a PRIVATE boost_coroutine boost_context)
+ endif()
+ 
+ set(rgw_libs rgw_a)
+@@ -354,7 +354,7 @@ if(WITH_RADOSGW_AMQP_ENDPOINT)
+   target_link_libraries(rgw_admin_user PRIVATE RabbitMQ::RabbitMQ)
+ endif()
+ if(WITH_BOOST_CONTEXT)
+-  target_link_libraries(rgw_admin_user PRIVATE Boost::coroutine Boost::context)
++  target_link_libraries(rgw_admin_user PRIVATE boost_coroutine boost_context)
+ endif()
+ 
+ if(WITH_TESTS)
+diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt
+index 5dcee1694d..60743be698 100644
+--- a/src/test/CMakeLists.txt
++++ b/src/test/CMakeLists.txt
+@@ -159,7 +159,7 @@ add_executable(ceph_omapbench
+   )
+ target_link_libraries(ceph_omapbench
+   librados
+-  Boost::program_options
++  boost_program_options
+   global
+   ${BLKID_LIBRARIES}
+   ${CMAKE_DL_LIBS}
+diff --git a/src/test/common/CMakeLists.txt b/src/test/common/CMakeLists.txt
+index 71fb77cda9..aff8fb6565 100644
+--- a/src/test/common/CMakeLists.txt
++++ b/src/test/common/CMakeLists.txt
+@@ -315,8 +315,8 @@ add_ceph_unittest(unittest_hobject)
+ 
+ add_executable(unittest_async_completion test_async_completion.cc)
+ add_ceph_unittest(unittest_async_completion)
+-target_link_libraries(unittest_async_completion Boost::system)
++target_link_libraries(unittest_async_completion boost_system)
+ 
+ add_executable(unittest_async_shared_mutex test_async_shared_mutex.cc)
+ add_ceph_unittest(unittest_async_shared_mutex)
+-target_link_libraries(unittest_async_shared_mutex ceph-common Boost::system)
++target_link_libraries(unittest_async_shared_mutex ceph-common boost_system)
+diff --git a/src/test/erasure-code/CMakeLists.txt b/src/test/erasure-code/CMakeLists.txt
+index 721f6c3675..1cd9635c77 100644
+--- a/src/test/erasure-code/CMakeLists.txt
++++ b/src/test/erasure-code/CMakeLists.txt
+@@ -2,15 +2,15 @@
+ add_executable(ceph_erasure_code_benchmark 
+   ${CMAKE_SOURCE_DIR}/src/erasure-code/ErasureCode.cc
+   ceph_erasure_code_benchmark.cc)
+-target_link_libraries(ceph_erasure_code_benchmark ceph-common Boost::program_options global ${CMAKE_DL_LIBS})
++target_link_libraries(ceph_erasure_code_benchmark ceph-common boost_program_options global ${CMAKE_DL_LIBS})
+ install(TARGETS ceph_erasure_code_benchmark
+   DESTINATION bin)
+ 
+ add_executable(ceph_erasure_code_non_regression ceph_erasure_code_non_regression.cc)
+-target_link_libraries(ceph_erasure_code_non_regression ceph-common Boost::program_options global ${CMAKE_DL_LIBS})
++target_link_libraries(ceph_erasure_code_non_regression ceph-common boost_program_options global ${CMAKE_DL_LIBS})
+ 
+ add_executable(ceph_erasure_code ceph_erasure_code.cc)
+-target_link_libraries(ceph_erasure_code ceph-common Boost::program_options global ${CMAKE_DL_LIBS})
++target_link_libraries(ceph_erasure_code ceph-common boost_program_options global ${CMAKE_DL_LIBS})
+ install(TARGETS ceph_erasure_code
+   DESTINATION bin)
+ 
+diff --git a/src/test/lazy-omap-stats/CMakeLists.txt b/src/test/lazy-omap-stats/CMakeLists.txt
+index fad71f135c..06a3d2d929 100644
+--- a/src/test/lazy-omap-stats/CMakeLists.txt
++++ b/src/test/lazy-omap-stats/CMakeLists.txt
+@@ -4,7 +4,7 @@ add_executable(ceph_test_lazy_omap_stats
+   main.cc
+   lazy_omap_stats_test.cc)
+ target_link_libraries(ceph_test_lazy_omap_stats
+-  librados ${UNITTEST_LIBS} Boost::system)
++  librados ${UNITTEST_LIBS} boost_system)
+ install(TARGETS
+   ceph_test_lazy_omap_stats
+   DESTINATION ${CMAKE_INSTALL_BINDIR})
+diff --git a/src/test/librados/CMakeLists.txt b/src/test/librados/CMakeLists.txt
+index 4fc53d2406..e6304394f8 100644
+--- a/src/test/librados/CMakeLists.txt
++++ b/src/test/librados/CMakeLists.txt
+@@ -62,7 +62,7 @@ add_executable(ceph_test_rados_api_asio asio.cc)
+ target_link_libraries(ceph_test_rados_api_asio global
+   librados ${UNITTEST_LIBS})
+ if(WITH_BOOST_CONTEXT)
+-  target_link_libraries(ceph_test_rados_api_asio Boost::coroutine Boost::context)
++  target_link_libraries(ceph_test_rados_api_asio boost_coroutine boost_context)
+ endif()
+ 
+ add_executable(ceph_test_rados_api_list
+@@ -132,7 +132,7 @@ add_executable(ceph_test_rados_api_tier_pp
+   tier_cxx.cc
+   $<TARGET_OBJECTS:unit-main>)
+ target_link_libraries(ceph_test_rados_api_tier_pp
+-  librados global ${UNITTEST_LIBS} Boost::system radostest-cxx)
++  librados global ${UNITTEST_LIBS} boost_system radostest-cxx)
+ 
+ add_executable(ceph_test_rados_api_snapshots
+   snapshots.cc)
+diff --git a/src/test/librbd/CMakeLists.txt b/src/test/librbd/CMakeLists.txt
+index 3c3e9db6c1..2c208c1a4f 100644
+--- a/src/test/librbd/CMakeLists.txt
++++ b/src/test/librbd/CMakeLists.txt
+@@ -27,7 +27,7 @@ target_link_libraries(rbd_test PRIVATE
+   radostest
+   radostest-cxx
+   librados
+-  Boost::thread
++  boost_thread
+   GMock::GMock
+   GTest::GTest)
+ 
+diff --git a/src/test/mon/CMakeLists.txt b/src/test/mon/CMakeLists.txt
+index b712e95be7..6225ff3320 100644
+--- a/src/test/mon/CMakeLists.txt
++++ b/src/test/mon/CMakeLists.txt
+@@ -44,7 +44,7 @@ target_link_libraries(unittest_mon_montypes mon global)
+ add_executable(ceph_test_mon_memory_target
+   test_mon_memory_target.cc
+   )
+-target_link_libraries(ceph_test_mon_memory_target ${UNITTEST_LIBS} Boost::system)
++target_link_libraries(ceph_test_mon_memory_target ${UNITTEST_LIBS} boost_system)
+ install(TARGETS ceph_test_mon_memory_target
+   DESTINATION ${CMAKE_INSTALL_BINDIR})
+ 
+diff --git a/src/test/rgw/CMakeLists.txt b/src/test/rgw/CMakeLists.txt
+index cde6348d57..e6ce738834 100644
+--- a/src/test/rgw/CMakeLists.txt
++++ b/src/test/rgw/CMakeLists.txt
+@@ -144,7 +144,7 @@ add_ceph_unittest(unittest_rgw_dmclock_scheduler)
+ target_link_libraries(unittest_rgw_dmclock_scheduler radosgw_a dmclock)
+ if(WITH_BOOST_CONTEXT)
+   target_compile_definitions(unittest_rgw_dmclock_scheduler PRIVATE BOOST_COROUTINES_NO_DEPRECATION_WARNING)
+-  target_link_libraries(unittest_rgw_dmclock_scheduler Boost::coroutine Boost::context)
++  target_link_libraries(unittest_rgw_dmclock_scheduler boost_coroutine boost_context)
+ endif()
+ 
+ if(WITH_RADOSGW_AMQP_ENDPOINT)
+diff --git a/src/tools/CMakeLists.txt b/src/tools/CMakeLists.txt
+index d31f3d2408..6945018b11 100644
+--- a/src/tools/CMakeLists.txt
++++ b/src/tools/CMakeLists.txt
+@@ -35,20 +35,20 @@ install(PROGRAMS
+ endif(WITH_TESTS)
+ 
+ add_executable(ceph-osdomap-tool ceph_osdomap_tool.cc)
+-target_link_libraries(ceph-osdomap-tool os global Boost::program_options)
++target_link_libraries(ceph-osdomap-tool os global boost_program_options)
+ install(TARGETS ceph-osdomap-tool DESTINATION bin)
+ 
+ add_executable(ceph-monstore-tool
+   ceph_monstore_tool.cc
+   ../mgr/mgr_commands.cc)
+-target_link_libraries(ceph-monstore-tool os global Boost::program_options)
++target_link_libraries(ceph-monstore-tool os global boost_program_options)
+ install(TARGETS ceph-monstore-tool DESTINATION bin)
+ 
+ add_executable(ceph-objectstore-tool
+   ceph_objectstore_tool.cc
+   rebuild_mondb.cc
+   RadosDump.cc)
+-target_link_libraries(ceph-objectstore-tool osd os global Boost::program_options ${CMAKE_DL_LIBS})
++target_link_libraries(ceph-objectstore-tool osd os global boost_program_options ${CMAKE_DL_LIBS})
+ if(WITH_FUSE)
+   target_link_libraries(ceph-objectstore-tool ${FUSE_LIBRARIES})
+ endif(WITH_FUSE)


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2020-04-23 20:44 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2020-04-23 20:44 UTC (permalink / raw
  To: gentoo-commits

commit:     1a0923bb23a6efb653d10489cb143221d5c57a42
Author:     Patrick McLean <patrick.mclean <AT> sony <DOT> com>
AuthorDate: Thu Apr 23 20:42:03 2020 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Thu Apr 23 20:44:22 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1a0923bb

sys-cluster/ceph: remove old

Copyright: Sony Interactive Entertainment Inc.
Package-Manager: Portage-2.3.99, Repoman-2.3.22
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 sys-cluster/ceph/Manifest                          |   1 -
 sys-cluster/ceph/ceph-12.2.12-r2.ebuild            | 320 ------------
 sys-cluster/ceph/ceph-14.2.8-r1.ebuild             | 368 --------------
 sys-cluster/ceph/ceph-14.2.8.ebuild                | 368 --------------
 sys-cluster/ceph/ceph-14.2.9.ebuild                | 366 --------------
 sys-cluster/ceph/ceph-15.2.1.ebuild                | 389 ---------------
 .../ceph/files/ceph-14.2.8-boost-sonames.patch     | 538 ---------------------
 7 files changed, 2350 deletions(-)

diff --git a/sys-cluster/ceph/Manifest b/sys-cluster/ceph/Manifest
index b5d41bfe5a8..4e3cf108066 100644
--- a/sys-cluster/ceph/Manifest
+++ b/sys-cluster/ceph/Manifest
@@ -1,5 +1,4 @@
 DIST ceph-12.2.12.tar.gz 77467762 BLAKE2B a5224432121db9ef49c1e22771d847399df2f7881cd9c2e185eca12096efb79d21578659d248eb5bae678924983d57452d370e23ab7e78663764d7bea834a461 SHA512 e694c9a8c1f9836c08fb74b54423bdc16d4900252e34643c56cf1a615d4dacddfb13df06a6a9f68bb9d438f5f07069ed358f9fa4b5a362640a3046f9c7722dcc
 DIST ceph-14.2.7.tar.gz 116647114 BLAKE2B f6971324b0467cfdb863db553b6feacaf3607b14fb9adae2808bd6e5514fc5ce218482c412b80902c22a74b883ed697f2c126bc687c8733a83de5b970593efa2 SHA512 59f475e56053ba5e7e3a482a3a91b4d44272e6ec8051b92783de76c09c0d967a7ef76676db998968a709e48f08e90828dd8f86bd96a7c3fd111d48bfb7fd93b1
-DIST ceph-14.2.8.tar.gz 128415417 BLAKE2B bb3644938106aaefe17d29fd6adc8568a35e6aef799da048add5ecebb6fb0128a8575eba1f5ecc2f33f33caf2130619e5b6979a6291566e0971976d8da0e8387 SHA512 38b0c6df58579377528c8f8e06d0cbc40f471f6eb2fb4a05b395f6fddbd3f2117674545b2147d8730973b01967ddcd4322a769ba03f9c625417ed35cc39f195a
 DIST ceph-14.2.9.tar.gz 128419205 BLAKE2B bace7469d9066a3da7320a0eb894013fae5b7139c15679dddae7df28c593a1029956234a1ba0d3bbdf1639e3a975aa776c695efefb915113a16099c80d563675 SHA512 0a26372d0037c32fe1d24be880e272fcce5089b02adfb0e791e0406155f6e66c913fa43762028f49c1fa3f30c6c8d819c521dd11702a37cc7040dfd3097c068e
 DIST ceph-15.2.1.tar.gz 147551715 BLAKE2B fcb5683493431ffc75aced3be7faf5a0486052df695d3133572bb9728fd4863fb88117bd9b13e4bf89c7e4afeea2888bbb252df48b0f52c33ce6202a6f4f7f87 SHA512 01589875078466321aaaeead8d7e21baf670e68c3d1f3168de188f3ad93eada745affb9da30217c8cb4938cbfdbe6bdf6bfd074fe8eb01863e1e8448f06a2304

diff --git a/sys-cluster/ceph/ceph-12.2.12-r2.ebuild b/sys-cluster/ceph/ceph-12.2.12-r2.ebuild
deleted file mode 100644
index 5ce8a64ecb1..00000000000
--- a/sys-cluster/ceph/ceph-12.2.12-r2.ebuild
+++ /dev/null
@@ -1,320 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python3_6 )
-DISTUTILS_OPTIONAL=1
-
-inherit check-reqs cmake-utils distutils-r1 flag-o-matic multiprocessing \
-	python-r1 udev readme.gentoo-r1 systemd
-
-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"
-	# currently broken (bug #708294)
-	#KEYWORDS="~amd64 ~arm64 ~x86"
-fi
-
-DESCRIPTION="Ceph distributed filesystem"
-HOMEPAGE="https://ceph.com/"
-
-LICENSE="LGPL-2.1 CC-BY-SA-3.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 +system-boost 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="
-	acct-group/ceph
-	acct-user/ceph
-	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/crypto++-7.0:=[static-libs?]
-	dev-libs/leveldb:=[snappy,static-libs?,tcmalloc?]
-	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?] )
-	xfs? ( sys-fs/xfsprogs:=[static-libs?] )
-	zfs? ( sys-fs/zfs:=[static-libs?] )
-	ssl? ( dev-libs/openssl:0=[static-libs?] )
-	radosgw? (
-		dev-libs/expat:=[static-libs?]
-		<dev-libs/openssl-1.1:=[static-libs?]
-		net-misc/curl:=[curl_ssl_openssl,static-libs?]
-	)
-	system-boost? (
-		=dev-libs/boost-1.66*:=[threads,context,python,static-libs?,${PYTHON_USEDEP}]
-	)
-	jemalloc? ( dev-libs/jemalloc:=[static-libs?] )
-	!jemalloc? ( >=dev-util/google-perftools-2.4:=[static-libs?] )
-	${PYTHON_DEPS}
-	"
-DEPEND="${COMMON_DEPEND}
-	app-arch/cpio
-	amd64? ( dev-lang/yasm )
-	x86? ( 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/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/e2fsprogs
-	sys-fs/cryptsetup
-	sys-fs/lvm2
-	!<sys-apps/openrc-0.26.3
-	dev-python/cherrypy[${PYTHON_USEDEP}]
-	dev-python/flask[${PYTHON_USEDEP}]
-	dev-python/jinja[${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"
-
-# false positives unless all USE flags are on
-CMAKE_WARN_UNUSED_CLI="no"
-
-# ninja does not work at all
-CMAKE_MAKEFILE_GENERATOR="emake"
-
-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.4-boost-build-none-options.patch"
-	"${FILESDIR}/ceph-12.2.4-cflags.patch"
-	"${FILESDIR}/ceph-12.2.4-rocksdb-cflags.patch"
-	"${FILESDIR}/ceph-12.2.5-no-werror.patch"
-	"${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
-	"${FILESDIR}/ceph-12.2.11-fix-min-call.patch"
-	"${FILESDIR}/ceph-12.2.12-dont-use-bad-namespace.patch"
-	"${FILESDIR}/ceph-12.2.12-civetweb-openssl-1.1.1.patch"
-	"${FILESDIR}/ceph-12.2.12-qa-warning.patch"
-	"${FILESDIR}/ceph-12.2.12-ncurses-tinfo.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() {
-	cmake-utils_src_prepare
-
-	if use system-boost; then
-		eapply "${FILESDIR}/ceph-12.2.11-boost-sonames.patch"
-	fi
-
-	# 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=(
-		-DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
-		-DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PN}-${PVR}"
-		-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=$(usex system-boost)
-		-DBOOST_J=$(makeopts_jobs)
-		-DWITH_RDMA=no
-		-DSYSTEMD_UNITDIR=$(systemd_get_systemunitdir)
-		-DEPYTHON_VERSION="${EPYTHON#python}"
-	)
-	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:--${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
-	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="${ED}" emake install
-	popd >/dev/null || die
-}
-
-src_install() {
-	cmake-utils_src_install
-	python_foreach_impl python_install
-
-	find "${D}" -name '*.la' -delete || die
-
-	exeinto /usr/$(get_libdir)/ceph
-	newexe "${BUILD_DIR}/bin/init-ceph" ceph_init.sh
-
-	insinto /etc/logrotate.d/
-	newins "${FILESDIR}"/ceph.logrotate-r2 ${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-r12" ${PN}
-	newconfd "${FILESDIR}/${PN}.confd-r5" ${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"
-
-	local -a rados_classes=( "${D}/usr/$(get_libdir)/rados-classes"/* )
-	dostrip -x "${rados_classes[@]#${D}}"
-}
-
-pkg_postinst() {
-	readme.gentoo_print_elog
-}

diff --git a/sys-cluster/ceph/ceph-14.2.8-r1.ebuild b/sys-cluster/ceph/ceph-14.2.8-r1.ebuild
deleted file mode 100644
index c2fa46f1c65..00000000000
--- a/sys-cluster/ceph/ceph-14.2.8-r1.ebuild
+++ /dev/null
@@ -1,368 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python3_{6,7} )
-CMAKE_MAKEFILE_GENERATOR=emake
-
-DISTUTILS_OPTIONAL=1
-
-inherit check-reqs bash-completion-r1 cmake-utils distutils-r1 flag-o-matic \
-		multiprocessing python-r1 udev readme.gentoo-r1 toolchain-funcs \
-		systemd
-
-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 ~ppc64"
-fi
-
-DESCRIPTION="Ceph distributed filesystem"
-HOMEPAGE="https://ceph.com/"
-
-LICENSE="LGPL-2.1 CC-BY-SA-3.0 GPL-2 GPL-2+ LGPL-2+ BSD Boost-1.0 MIT public-domain"
-SLOT="0"
-
-CPU_FLAGS_X86=(sse{,2,3,4_1,4_2} ssse3)
-
-IUSE="babeltrace +cephfs custom-cflags dpdk fuse grafana jemalloc kerberos ldap"
-IUSE+=" libressl lttng +mgr numa rabbitmq +radosgw +ssl spdk "
-IUSE+=" system-boost systemd +tcmalloc test xfs zfs"
-IUSE+=" $(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})"
-
-COMMON_DEPEND="
-	acct-group/ceph
-	acct-user/ceph
-	virtual/libudev:=
-	app-arch/bzip2:=
-	app-arch/lz4:=
-	app-arch/snappy:=
-	app-arch/zstd:=
-	app-shells/bash:0
-	app-misc/jq:=
-	dev-libs/crypto++:=
-	dev-libs/leveldb:=[snappy,tcmalloc(-)?]
-	dev-libs/libaio:=
-	dev-libs/libnl:3=
-	dev-libs/libxml2:=
-	dev-libs/nss:=
-	sys-auth/oath-toolkit:=
-	sys-apps/coreutils
-	sys-apps/grep
-	sys-apps/keyutils:=
-	sys-apps/util-linux:=
-	sys-apps/sed
-	sys-apps/util-linux
-	sys-libs/libcap-ng:=
-	sys-libs/ncurses:0=
-	sys-libs/zlib:=
-	babeltrace? ( dev-util/babeltrace )
-	ldap? ( net-nds/openldap:= )
-	lttng? ( dev-util/lttng-ust:= )
-	fuse? ( sys-fs/fuse:0= )
-	kerberos? ( virtual/krb5 )
-	rabbitmq? ( net-libs/rabbitmq-c:= )
-	ssl? (
-		!libressl? ( dev-libs/openssl:= )
-		libressl? ( dev-libs/libressl:= )
-	)
-	xfs? ( sys-fs/xfsprogs:= )
-	zfs? ( sys-fs/zfs:= )
-	radosgw? (
-		dev-libs/expat:=
-		!libressl? (
-			dev-libs/openssl:=
-			net-misc/curl:=[curl_ssl_openssl]
-		)
-		libressl? (
-			dev-libs/libressl:=
-			net-misc/curl:=[curl_ssl_libressl]
-		)
-	)
-	system-boost? ( =dev-libs/boost-1.72*[threads,context,python,${PYTHON_USEDEP}] )
-	jemalloc? ( dev-libs/jemalloc:= )
-	!jemalloc? ( >=dev-util/google-perftools-2.6.1:= )
-	${PYTHON_DEPS}
-"
-BDEPEND="
-	amd64? ( dev-lang/yasm )
-	x86? ( dev-lang/yasm )
-	app-arch/cpio
-	>=dev-util/cmake-3.5.0
-	dev-python/cython[${PYTHON_USEDEP}]
-	dev-python/sphinx
-	dev-util/cunit
-	dev-util/gperf
-	dev-util/valgrind
-	sys-apps/coreutils
-	sys-apps/findutils
-	sys-apps/grep
-	sys-apps/sed
-	sys-apps/which
-	sys-devel/bc
-	sys-devel/patch
-	virtual/pkgconfig
-	test? (
-		dev-python/coverage[${PYTHON_USEDEP}]
-		dev-python/virtualenv[${PYTHON_USEDEP}]
-		dev-python/requests-mock[${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-fs/lvm2[-device-mapper-only(-)]
-	sys-fs/lsscsi
-	virtual/awk
-	dev-python/bcrypt[${PYTHON_USEDEP}]
-	dev-python/cherrypy[${PYTHON_USEDEP}]
-	dev-python/flask[${PYTHON_USEDEP}]
-	dev-python/jinja[${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}]
-	mgr? (
-		dev-python/more-itertools[${PYTHON_USEDEP}]
-		dev-python/pyjwt[${PYTHON_USEDEP}]
-		dev-python/pyyaml[${PYTHON_USEDEP}]
-		dev-python/routes[${PYTHON_USEDEP}]
-		dev-python/six[${PYTHON_USEDEP}]
-	)
-"
-REQUIRED_USE="
-	${PYTHON_REQUIRED_USE}
-	mgr? ( cephfs )
-	?? ( jemalloc tcmalloc )
-	rabbitmq? ( radosgw )
-"
-
-# the tests need root access
-RESTRICT="test? ( userpriv )"
-
-# distribution tarball does not include everything needed for tests
-RESTRICT+=" test"
-
-# false positives unless all USE flags are on
-CMAKE_WARN_UNUSED_CLI="no"
-
-PATCHES=(
-	"${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch"
-	"${FILESDIR}/ceph-14.2.0-cflags.patch"
-	"${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch"
-	"${FILESDIR}/ceph-13.2.0-cflags.patch"
-	"${FILESDIR}/ceph-14.2.0-mgr-python-version.patch"
-	"${FILESDIR}/ceph-14.2.5-no-virtualenvs.patch"
-	"${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
-	"${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch"
-	"${FILESDIR}/ceph-14.2.0-link-crc32-statically.patch"
-	"${FILESDIR}/ceph-14.2.0-cython-0.29.patch"
-	"${FILESDIR}/ceph-14.2.3-dpdk-compile-fix-1.patch"
-	"${FILESDIR}/ceph-14.2.4-python-executable.patch"
-	"${FILESDIR}/ceph-14.2.4-undefined-behaviour.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
-}
-
-pkg_pretend() {
-	check-reqs_export_vars
-	check-reqs_pkg_pretend
-}
-
-pkg_setup() {
-	python_setup 'python3*'
-	check-reqs_export_vars
-	check-reqs_pkg_setup
-}
-
-src_prepare() {
-	cmake-utils_src_prepare
-
-	if use system-boost; then
-		eapply "${FILESDIR}/ceph-14.2.8-boost-sonames.patch"
-
-		find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \
-			| xargs --null sed \
-			-e 's|Boost::|Boost_|g' \
-			-e 's|Boost_boost|boost_system|g' -i || die
-	fi
-
-	sed -i -r "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \
-		src/bash_completion/CMakeLists.txt || die
-
-	# remove tests that need root access
-	rm src/test/cli/ceph-authtool/cap*.t || die
-}
-
-ceph_src_configure() {
-	local flag
-	local mycmakeargs=(
-		-DWITH_BABELTRACE=$(usex babeltrace)
-		-DWITH_CEPHFS=$(usex cephfs)
-		-DWITH_CEPHFS_SHELL=$(if python_is_python3; then usex cephfs; else echo OFF; fi)
-		-DWITH_DPDK=$(usex dpdk)
-		-DWITH_DPDK=$(usex spdk)
-		-DWITH_FUSE=$(usex fuse)
-		-DWITH_LTTNG=$(usex lttng)
-		-DWITH_GSSAPI=$(usex kerberos)
-		-DWITH_GRAFANA=$(usex grafana)
-		-DWITH_MGR=$(usex mgr)
-		-DWITH_MGR_DASHBOARD_FRONTEND=NO
-		-DWITH_NUMA=$(usex numa)
-		-DWITH_OPENLDAP=$(usex ldap)
-		-DMGR_PYTHON_VERSION=$(if python_is_python3; then echo 3; else echo 2; fi)
-		-DWITH_PYTHON3=$(if python_is_python3; then echo "ON"; else echo "OFF"; fi)
-		-DWITH_PYTHON2=$(if python_is_python3; then echo "OFF"; else echo "ON"; fi)
-		-DWITH_RADOSGW=$(usex radosgw)
-		-DWITH_RADOSGW_AMQP_ENDPOINT=$(usex rabbitmq)
-		-DWITH_SSL=$(usex ssl)
-		-DWITH_SYSTEMD=$(usex systemd)
-		-DWITH_TESTS=$(usex test)
-		-DWITH_XFS=$(usex xfs)
-		-DWITH_ZFS=$(usex zfs)
-		-DENABLE_SHARED='ON'
-		-DALLOCATOR=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')")
-		-DWITH_SYSTEM_BOOST=$(usex system-boost)
-		-DBOOST_J=$(makeopts_jobs)
-		-DWITH_RDMA=no
-		-DWITH_TBB=no
-		-DSYSTEMD_UNITDIR=$(systemd_get_systemunitdir)
-		-DEPYTHON_VERSION="${EPYTHON#python}"
-		-DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PN}-${PVR}"
-		-DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
-		#-Wno-dev
-	)
-	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" \
-		|| die "failed to remove cmake cache"
-
-	cmake-utils_src_configure
-
-	# bug #630232
-	sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \
-		"${BUILD_DIR:-${S}}"/include/acconfig.h \
-		|| die "sed failed"
-}
-
-src_configure() {
-	use custom-cflags || strip-flags
-	ceph_src_configure
-}
-
-python_compile() {
-	local CMAKE_USE_DIR="${S}"
-	ceph_src_configure
-
-	pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
-	emake VERBOSE=1 clean
-	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 VERBOSE=1 all
-
-	# we have to do this here to prevent from building everything multiple times
-	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="${ED}" emake VERBOSE=1 install
-	popd >/dev/null || die
-
-	python_optimize
-}
-
-src_install() {
-	cmake-utils_src_install
-	python_foreach_impl python_install
-
-	find "${ED}" -name '*.la' -type f -delete || die
-
-	exeinto /usr/$(get_libdir)/ceph
-	newexe "${BUILD_DIR}/bin/init-ceph" init-ceph
-
-	insinto /etc/logrotate.d/
-	newins "${FILESDIR}"/ceph.logrotate-r2 ${PN}
-
-	keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat
-
-	fowners -R ceph:ceph /var/log/ceph
-
-	newinitd "${FILESDIR}/rbdmap.initd" rbdmap
-	newinitd "${FILESDIR}/${PN}.initd-r12" ${PN}
-	newconfd "${FILESDIR}/${PN}.confd-r5" ${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 'python3*'
-
-	# bug #630232
-	sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \
-		|| die "sed failed"
-
-	python_fix_shebang "${ED}"/usr/{,s}bin/
-
-	# python_fix_shebang apparently is not idempotent
-	local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]'
-	grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \
-		| xargs --null --no-run-if-empty -- sed -i -r  "s:${shebang_regex}:\1:" || die
-
-	local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* )
-	dostrip -x "${rados_classes[@]#${ED}}"
-}
-
-pkg_postinst() {
-	readme.gentoo_print_elog
-}

diff --git a/sys-cluster/ceph/ceph-14.2.8.ebuild b/sys-cluster/ceph/ceph-14.2.8.ebuild
deleted file mode 100644
index 95abd364b0f..00000000000
--- a/sys-cluster/ceph/ceph-14.2.8.ebuild
+++ /dev/null
@@ -1,368 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python3_{6,7} )
-CMAKE_MAKEFILE_GENERATOR=emake
-
-DISTUTILS_OPTIONAL=1
-
-inherit check-reqs bash-completion-r1 cmake-utils distutils-r1 flag-o-matic \
-		multiprocessing python-r1 udev readme.gentoo-r1 toolchain-funcs \
-		systemd
-
-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 ~ppc64"
-fi
-
-DESCRIPTION="Ceph distributed filesystem"
-HOMEPAGE="https://ceph.com/"
-
-LICENSE="LGPL-2.1 CC-BY-SA-3.0 GPL-2 GPL-2+ LGPL-2+ BSD Boost-1.0 MIT public-domain"
-SLOT="0"
-
-CPU_FLAGS_X86=(sse{,2,3,4_1,4_2} ssse3)
-
-IUSE="babeltrace +cephfs custom-cflags dpdk fuse grafana jemalloc kerberos ldap"
-IUSE+=" libressl lttng +mgr numa rabbitmq +radosgw +ssl spdk static-libs"
-IUSE+=" system-boost systemd +tcmalloc test xfs zfs"
-IUSE+=" $(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})"
-
-COMMON_DEPEND="
-	acct-group/ceph
-	acct-user/ceph
-	virtual/libudev:=
-	app-arch/bzip2:=[static-libs?]
-	app-arch/lz4:=[static-libs?]
-	app-arch/snappy:=[static-libs(-)?]
-	app-arch/zstd:=[static-libs?]
-	app-shells/bash:0
-	app-misc/jq:=[static-libs?]
-	dev-libs/crypto++:=[static-libs?]
-	dev-libs/leveldb:=[snappy,static-libs?,tcmalloc(-)?]
-	dev-libs/libaio:=[static-libs?]
-	dev-libs/libnl:3=[static-libs?]
-	dev-libs/libxml2:=[static-libs?]
-	dev-libs/nss:=
-	sys-auth/oath-toolkit:=
-	sys-apps/coreutils
-	sys-apps/grep
-	sys-apps/keyutils:=[static-libs?]
-	sys-apps/util-linux:=[static-libs?]
-	sys-apps/sed
-	sys-apps/util-linux
-	sys-libs/libcap-ng:=[static-libs?]
-	sys-libs/ncurses:0=[static-libs?]
-	sys-libs/zlib:=[static-libs?]
-	babeltrace? ( dev-util/babeltrace )
-	ldap? ( net-nds/openldap:=[static-libs?] )
-	lttng? ( dev-util/lttng-ust:= )
-	fuse? ( sys-fs/fuse:0=[static-libs?] )
-	kerberos? ( virtual/krb5 )
-	rabbitmq? ( net-libs/rabbitmq-c:=[static-libs?] )
-	ssl? (
-		!libressl? ( dev-libs/openssl:=[static-libs?] )
-		libressl? ( dev-libs/libressl:=[static-libs?] )
-	)
-	xfs? ( sys-fs/xfsprogs:=[static-libs(+)?] )
-	zfs? ( sys-fs/zfs:=[static-libs?] )
-	radosgw? (
-		dev-libs/expat:=[static-libs?]
-		!libressl? (
-			dev-libs/openssl:=[static-libs?]
-			net-misc/curl:=[curl_ssl_openssl,static-libs?]
-		)
-		libressl? (
-			dev-libs/libressl:=[static-libs?]
-			net-misc/curl:=[curl_ssl_libressl,static-libs?]
-		)
-	)
-	system-boost? ( =dev-libs/boost-1.72*[threads,context,python,static-libs?,${PYTHON_USEDEP}] )
-	jemalloc? ( dev-libs/jemalloc:=[static-libs?] )
-	!jemalloc? ( >=dev-util/google-perftools-2.6.1:=[static-libs?] )
-	${PYTHON_DEPS}
-"
-BDEPEND="
-	amd64? ( dev-lang/yasm )
-	x86? ( dev-lang/yasm )
-	app-arch/cpio
-	>=dev-util/cmake-3.5.0
-	dev-python/cython[${PYTHON_USEDEP}]
-	dev-python/sphinx
-	dev-util/cunit
-	dev-util/gperf
-	dev-util/valgrind
-	sys-apps/coreutils
-	sys-apps/findutils
-	sys-apps/grep
-	sys-apps/sed
-	sys-apps/which
-	sys-devel/bc
-	sys-devel/patch
-	virtual/pkgconfig
-	test? (
-		dev-python/coverage[${PYTHON_USEDEP}]
-		dev-python/virtualenv[${PYTHON_USEDEP}]
-		dev-python/requests-mock[${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-fs/lvm2[-device-mapper-only(-)]
-	sys-fs/lsscsi
-	virtual/awk
-	dev-python/bcrypt[${PYTHON_USEDEP}]
-	dev-python/cherrypy[${PYTHON_USEDEP}]
-	dev-python/flask[${PYTHON_USEDEP}]
-	dev-python/jinja[${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}]
-	mgr? (
-		dev-python/more-itertools[${PYTHON_USEDEP}]
-		dev-python/pyjwt[${PYTHON_USEDEP}]
-		dev-python/pyyaml[${PYTHON_USEDEP}]
-		dev-python/routes[${PYTHON_USEDEP}]
-		dev-python/six[${PYTHON_USEDEP}]
-	)
-"
-REQUIRED_USE="
-	${PYTHON_REQUIRED_USE}
-	mgr? ( cephfs )
-	?? ( jemalloc tcmalloc )
-	rabbitmq? ( radosgw )
-"
-
-# the tests need root access
-RESTRICT="test? ( userpriv )"
-
-# distribution tarball does not include everything needed for tests
-RESTRICT+=" test"
-
-# false positives unless all USE flags are on
-CMAKE_WARN_UNUSED_CLI="no"
-
-PATCHES=(
-	"${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch"
-	"${FILESDIR}/ceph-14.2.0-cflags.patch"
-	"${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch"
-	"${FILESDIR}/ceph-13.2.0-cflags.patch"
-	"${FILESDIR}/ceph-14.2.0-mgr-python-version.patch"
-	"${FILESDIR}/ceph-14.2.5-no-virtualenvs.patch"
-	"${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
-	"${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch"
-	"${FILESDIR}/ceph-14.2.0-link-crc32-statically.patch"
-	"${FILESDIR}/ceph-14.2.0-cython-0.29.patch"
-	"${FILESDIR}/ceph-14.2.3-dpdk-compile-fix-1.patch"
-	"${FILESDIR}/ceph-14.2.4-python-executable.patch"
-	"${FILESDIR}/ceph-14.2.4-undefined-behaviour.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
-}
-
-pkg_pretend() {
-	check-reqs_export_vars
-	check-reqs_pkg_pretend
-}
-
-pkg_setup() {
-	python_setup 'python3*'
-	check-reqs_export_vars
-	check-reqs_pkg_setup
-}
-
-src_prepare() {
-	cmake-utils_src_prepare
-
-	if use system-boost; then
-		eapply "${FILESDIR}/ceph-14.2.8-boost-sonames.patch"
-
-		find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \
-			| xargs --null sed \
-			-e 's|Boost::|Boost_|g' \
-			-e 's|Boost_boost|boost_system|g' -i || die
-	fi
-
-	sed -i -r "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \
-		src/bash_completion/CMakeLists.txt || die
-
-	# remove tests that need root access
-	rm src/test/cli/ceph-authtool/cap*.t || die
-}
-
-ceph_src_configure() {
-	local flag
-	local mycmakeargs=(
-		-DWITH_BABELTRACE=$(usex babeltrace)
-		-DWITH_CEPHFS=$(usex cephfs)
-		-DWITH_CEPHFS_SHELL=$(if python_is_python3; then usex cephfs; else echo OFF; fi)
-		-DWITH_DPDK=$(usex dpdk)
-		-DWITH_DPDK=$(usex spdk)
-		-DWITH_FUSE=$(usex fuse)
-		-DWITH_LTTNG=$(usex lttng)
-		-DWITH_GSSAPI=$(usex kerberos)
-		-DWITH_GRAFANA=$(usex grafana)
-		-DWITH_MGR=$(usex mgr)
-		-DWITH_MGR_DASHBOARD_FRONTEND=NO
-		-DWITH_NUMA=$(usex numa)
-		-DWITH_OPENLDAP=$(usex ldap)
-		-DMGR_PYTHON_VERSION=$(if python_is_python3; then echo 3; else echo 2; fi)
-		-DWITH_PYTHON3=$(if python_is_python3; then echo "ON"; else echo "OFF"; fi)
-		-DWITH_PYTHON2=$(if python_is_python3; then echo "OFF"; else echo "ON"; fi)
-		-DWITH_RADOSGW=$(usex radosgw)
-		-DWITH_RADOSGW_AMQP_ENDPOINT=$(usex rabbitmq)
-		-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 '' 'ON' 'OFF')
-		-DALLOCATOR=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')")
-		-DWITH_SYSTEM_BOOST=$(usex system-boost)
-		-DBOOST_J=$(makeopts_jobs)
-		-DWITH_RDMA=no
-		-DWITH_TBB=no
-		-DSYSTEMD_UNITDIR=$(systemd_get_systemunitdir)
-		-DEPYTHON_VERSION="${EPYTHON#python}"
-		-DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PN}-${PVR}"
-		-DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
-		#-Wno-dev
-	)
-	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" \
-		|| die "failed to remove cmake cache"
-
-	cmake-utils_src_configure
-
-	# bug #630232
-	sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \
-		"${BUILD_DIR:-${S}}"/include/acconfig.h \
-		|| die "sed failed"
-}
-
-src_configure() {
-	use custom-cflags || strip-flags
-	ceph_src_configure
-}
-
-python_compile() {
-	local CMAKE_USE_DIR="${S}"
-	ceph_src_configure
-
-	pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
-	emake VERBOSE=1 clean
-	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 VERBOSE=1 all
-
-	# we have to do this here to prevent from building everything multiple times
-	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="${ED}" emake VERBOSE=1 install
-	popd >/dev/null || die
-
-	python_optimize
-}
-
-src_install() {
-	cmake-utils_src_install
-	python_foreach_impl python_install
-
-	find "${ED}" -name '*.la' -type f -delete || die
-
-	exeinto /usr/$(get_libdir)/ceph
-	newexe "${BUILD_DIR}/bin/init-ceph" init-ceph
-
-	insinto /etc/logrotate.d/
-	newins "${FILESDIR}"/ceph.logrotate-r2 ${PN}
-
-	keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat
-
-	fowners -R ceph:ceph /var/log/ceph
-
-	newinitd "${FILESDIR}/rbdmap.initd" rbdmap
-	newinitd "${FILESDIR}/${PN}.initd-r12" ${PN}
-	newconfd "${FILESDIR}/${PN}.confd-r5" ${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 'python3*'
-
-	# bug #630232
-	sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \
-		|| die "sed failed"
-
-	python_fix_shebang "${ED}"/usr/{,s}bin/
-
-	# python_fix_shebang apparently is not idempotent
-	local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]'
-	grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \
-		| xargs --null --no-run-if-empty -- sed -i -r  "s:${shebang_regex}:\1:" || die
-
-	local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* )
-	dostrip -x "${rados_classes[@]#${ED}}"
-}
-
-pkg_postinst() {
-	readme.gentoo_print_elog
-}

diff --git a/sys-cluster/ceph/ceph-14.2.9.ebuild b/sys-cluster/ceph/ceph-14.2.9.ebuild
deleted file mode 100644
index 75b01167a71..00000000000
--- a/sys-cluster/ceph/ceph-14.2.9.ebuild
+++ /dev/null
@@ -1,366 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python3_{6,7} )
-CMAKE_MAKEFILE_GENERATOR=emake
-
-DISTUTILS_OPTIONAL=1
-
-inherit check-reqs bash-completion-r1 cmake-utils distutils-r1 flag-o-matic \
-		multiprocessing python-r1 udev readme.gentoo-r1 toolchain-funcs \
-		systemd
-
-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 ~ppc64"
-fi
-
-DESCRIPTION="Ceph distributed filesystem"
-HOMEPAGE="https://ceph.com/"
-
-LICENSE="LGPL-2.1 CC-BY-SA-3.0 GPL-2 GPL-2+ LGPL-2+ BSD Boost-1.0 MIT public-domain"
-SLOT="0"
-
-CPU_FLAGS_X86=(sse{,2,3,4_1,4_2} ssse3)
-
-IUSE="babeltrace +cephfs custom-cflags dpdk fuse grafana jemalloc kerberos ldap"
-IUSE+=" libressl lttng +mgr numa rabbitmq +radosgw +ssl spdk static-libs"
-IUSE+=" system-boost systemd +tcmalloc test xfs zfs"
-IUSE+=" $(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})"
-
-COMMON_DEPEND="
-	acct-group/ceph
-	acct-user/ceph
-	virtual/libudev:=
-	app-arch/bzip2:=[static-libs?]
-	app-arch/lz4:=[static-libs?]
-	app-arch/snappy:=[static-libs(-)?]
-	app-arch/zstd:=[static-libs?]
-	app-shells/bash:0
-	app-misc/jq:=[static-libs?]
-	dev-libs/crypto++:=[static-libs?]
-	dev-libs/leveldb:=[snappy,static-libs?,tcmalloc(-)?]
-	dev-libs/libaio:=[static-libs?]
-	dev-libs/libnl:3=[static-libs?]
-	dev-libs/libxml2:=[static-libs?]
-	dev-libs/nss:=
-	sys-auth/oath-toolkit:=
-	sys-apps/coreutils
-	sys-apps/grep
-	sys-apps/keyutils:=[static-libs?]
-	sys-apps/util-linux:=[static-libs?]
-	sys-apps/sed
-	sys-apps/util-linux
-	sys-libs/libcap-ng:=[static-libs?]
-	sys-libs/ncurses:0=[static-libs?]
-	sys-libs/zlib:=[static-libs?]
-	babeltrace? ( dev-util/babeltrace )
-	ldap? ( net-nds/openldap:=[static-libs?] )
-	lttng? ( dev-util/lttng-ust:= )
-	fuse? ( sys-fs/fuse:0=[static-libs?] )
-	kerberos? ( virtual/krb5 )
-	rabbitmq? ( net-libs/rabbitmq-c:=[static-libs?] )
-	ssl? (
-		!libressl? ( dev-libs/openssl:=[static-libs?] )
-		libressl? ( dev-libs/libressl:=[static-libs?] )
-	)
-	xfs? ( sys-fs/xfsprogs:=[static-libs(+)?] )
-	zfs? ( sys-fs/zfs:=[static-libs?] )
-	radosgw? (
-		dev-libs/expat:=[static-libs?]
-		!libressl? (
-			dev-libs/openssl:=[static-libs?]
-			net-misc/curl:=[curl_ssl_openssl,static-libs?]
-		)
-		libressl? (
-			dev-libs/libressl:=[static-libs?]
-			net-misc/curl:=[curl_ssl_libressl,static-libs?]
-		)
-	)
-	system-boost? ( =dev-libs/boost-1.72*[threads,context,python,static-libs?,${PYTHON_USEDEP}] )
-	jemalloc? ( dev-libs/jemalloc:=[static-libs?] )
-	!jemalloc? ( >=dev-util/google-perftools-2.6.1:=[static-libs?] )
-	${PYTHON_DEPS}
-"
-BDEPEND="
-	amd64? ( dev-lang/yasm )
-	x86? ( dev-lang/yasm )
-	app-arch/cpio
-	>=dev-util/cmake-3.5.0
-	dev-python/cython[${PYTHON_USEDEP}]
-	dev-python/sphinx
-	dev-util/cunit
-	dev-util/gperf
-	dev-util/valgrind
-	sys-apps/coreutils
-	sys-apps/findutils
-	sys-apps/grep
-	sys-apps/sed
-	sys-apps/which
-	sys-devel/bc
-	sys-devel/patch
-	virtual/pkgconfig
-	test? (
-		dev-python/coverage[${PYTHON_USEDEP}]
-		dev-python/virtualenv[${PYTHON_USEDEP}]
-		dev-python/requests-mock[${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-fs/lvm2[-device-mapper-only(-)]
-	sys-fs/lsscsi
-	virtual/awk
-	dev-python/bcrypt[${PYTHON_USEDEP}]
-	dev-python/cherrypy[${PYTHON_USEDEP}]
-	dev-python/flask[${PYTHON_USEDEP}]
-	dev-python/jinja[${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}]
-	mgr? (
-		dev-python/more-itertools[${PYTHON_USEDEP}]
-		dev-python/pyjwt[${PYTHON_USEDEP}]
-		dev-python/pyyaml[${PYTHON_USEDEP}]
-		dev-python/routes[${PYTHON_USEDEP}]
-		dev-python/six[${PYTHON_USEDEP}]
-	)
-"
-REQUIRED_USE="
-	${PYTHON_REQUIRED_USE}
-	mgr? ( cephfs )
-	?? ( jemalloc tcmalloc )
-	rabbitmq? ( radosgw )
-"
-
-# the tests need root access
-RESTRICT="test? ( userpriv )"
-
-# distribution tarball does not include everything needed for tests
-RESTRICT+=" test"
-
-# false positives unless all USE flags are on
-CMAKE_WARN_UNUSED_CLI="no"
-
-PATCHES=(
-	"${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch"
-	"${FILESDIR}/ceph-14.2.0-cflags.patch"
-	"${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch"
-	"${FILESDIR}/ceph-13.2.0-cflags.patch"
-	"${FILESDIR}/ceph-14.2.0-mgr-python-version.patch"
-	"${FILESDIR}/ceph-14.2.5-no-virtualenvs.patch"
-	"${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
-	"${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch"
-	"${FILESDIR}/ceph-14.2.0-link-crc32-statically.patch"
-	"${FILESDIR}/ceph-14.2.0-cython-0.29.patch"
-	"${FILESDIR}/ceph-14.2.3-dpdk-compile-fix-1.patch"
-	"${FILESDIR}/ceph-14.2.4-python-executable.patch"
-	"${FILESDIR}/ceph-14.2.4-undefined-behaviour.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
-}
-
-pkg_pretend() {
-	check-reqs_export_vars
-	check-reqs_pkg_pretend
-}
-
-pkg_setup() {
-	python_setup 'python3*'
-	check-reqs_export_vars
-	check-reqs_pkg_setup
-}
-
-src_prepare() {
-	cmake-utils_src_prepare
-
-	if use system-boost; then
-		find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \
-			| xargs --null sed \
-			-e 's|Boost::|boost_|g' \
-			-e 's|boost_boost|boost_system|g' -i || die
-	fi
-
-	sed -i -r "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \
-		src/bash_completion/CMakeLists.txt || die
-
-	# remove tests that need root access
-	rm src/test/cli/ceph-authtool/cap*.t || die
-}
-
-ceph_src_configure() {
-	local flag
-	local mycmakeargs=(
-		-DWITH_BABELTRACE=$(usex babeltrace)
-		-DWITH_CEPHFS=$(usex cephfs)
-		-DWITH_CEPHFS_SHELL=$(if python_is_python3; then usex cephfs; else echo OFF; fi)
-		-DWITH_DPDK=$(usex dpdk)
-		-DWITH_DPDK=$(usex spdk)
-		-DWITH_FUSE=$(usex fuse)
-		-DWITH_LTTNG=$(usex lttng)
-		-DWITH_GSSAPI=$(usex kerberos)
-		-DWITH_GRAFANA=$(usex grafana)
-		-DWITH_MGR=$(usex mgr)
-		-DWITH_MGR_DASHBOARD_FRONTEND=NO
-		-DWITH_NUMA=$(usex numa)
-		-DWITH_OPENLDAP=$(usex ldap)
-		-DMGR_PYTHON_VERSION=$(if python_is_python3; then echo 3; else echo 2; fi)
-		-DWITH_PYTHON3=$(if python_is_python3; then echo "ON"; else echo "OFF"; fi)
-		-DWITH_PYTHON2=$(if python_is_python3; then echo "OFF"; else echo "ON"; fi)
-		-DWITH_RADOSGW=$(usex radosgw)
-		-DWITH_RADOSGW_AMQP_ENDPOINT=$(usex rabbitmq)
-		-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 '' 'ON' 'OFF')
-		-DALLOCATOR=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')")
-		-DWITH_SYSTEM_BOOST=$(usex system-boost)
-		-DBOOST_J=$(makeopts_jobs)
-		-DWITH_RDMA=no
-		-DWITH_TBB=no
-		-DSYSTEMD_UNITDIR=$(systemd_get_systemunitdir)
-		-DEPYTHON_VERSION="${EPYTHON#python}"
-		-DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PN}-${PVR}"
-		-DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
-		#-Wno-dev
-	)
-	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" \
-		|| die "failed to remove cmake cache"
-
-	cmake-utils_src_configure
-
-	# bug #630232
-	sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \
-		"${BUILD_DIR:-${S}}"/include/acconfig.h \
-		|| die "sed failed"
-}
-
-src_configure() {
-	use custom-cflags || strip-flags
-	ceph_src_configure
-}
-
-python_compile() {
-	local CMAKE_USE_DIR="${S}"
-	ceph_src_configure
-
-	pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
-	emake VERBOSE=1 clean
-	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 VERBOSE=1 all
-
-	# we have to do this here to prevent from building everything multiple times
-	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="${ED}" emake VERBOSE=1 install
-	popd >/dev/null || die
-
-	python_optimize
-}
-
-src_install() {
-	cmake-utils_src_install
-	python_foreach_impl python_install
-
-	find "${ED}" -name '*.la' -type f -delete || die
-
-	exeinto /usr/$(get_libdir)/ceph
-	newexe "${BUILD_DIR}/bin/init-ceph" init-ceph
-
-	insinto /etc/logrotate.d/
-	newins "${FILESDIR}"/ceph.logrotate-r2 ${PN}
-
-	keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat
-
-	fowners -R ceph:ceph /var/log/ceph
-
-	newinitd "${FILESDIR}/rbdmap.initd" rbdmap
-	newinitd "${FILESDIR}/${PN}.initd-r12" ${PN}
-	newconfd "${FILESDIR}/${PN}.confd-r5" ${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 'python3*'
-
-	# bug #630232
-	sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \
-		|| die "sed failed"
-
-	python_fix_shebang "${ED}"/usr/{,s}bin/
-
-	# python_fix_shebang apparently is not idempotent
-	local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]'
-	grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \
-		| xargs --null --no-run-if-empty -- sed -i -r  "s:${shebang_regex}:\1:" || die
-
-	local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* )
-	dostrip -x "${rados_classes[@]#${ED}}"
-}
-
-pkg_postinst() {
-	readme.gentoo_print_elog
-}

diff --git a/sys-cluster/ceph/ceph-15.2.1.ebuild b/sys-cluster/ceph/ceph-15.2.1.ebuild
deleted file mode 100644
index 08f7ccfa694..00000000000
--- a/sys-cluster/ceph/ceph-15.2.1.ebuild
+++ /dev/null
@@ -1,389 +0,0 @@
-# Copyright 1999-2020 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=7
-PYTHON_COMPAT=( python3_{6,7,8} )
-CMAKE_MAKEFILE_GENERATOR=emake
-
-DISTUTILS_OPTIONAL=1
-
-inherit check-reqs bash-completion-r1 cmake-utils distutils-r1 flag-o-matic \
-		multiprocessing python-r1 udev readme.gentoo-r1 toolchain-funcs \
-		systemd
-
-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"
-fi
-
-DESCRIPTION="Ceph distributed filesystem"
-HOMEPAGE="https://ceph.com/"
-
-LICENSE="Apache-2.0 LGPL-2.1 CC-BY-SA-3.0 GPL-2 GPL-2+ LGPL-2+ LGPL-2.1 LGPL-3 GPL-3 BSD Boost-1.0 MIT public-domain"
-SLOT="0"
-
-CPU_FLAGS_X86=(sse{,2,3,4_1,4_2} ssse3)
-
-IUSE="babeltrace +cephfs custom-cflags dpdk fuse grafana jemalloc kafka kerberos ldap
-	libressl lttng +mgr numa +openssl pmdk rabbitmq +radosgw rbd-rwl +ssl spdk static-libs
-	system-boost systemd +tcmalloc test uring xfs zfs"
-IUSE+=" $(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})"
-
-COMMON_DEPEND="
-	acct-group/ceph
-	acct-user/ceph
-	virtual/libudev:=
-	app-arch/bzip2:=[static-libs?]
-	app-arch/lz4:=[static-libs?]
-	app-arch/snappy:=[static-libs(-)?]
-	app-arch/zstd:=[static-libs?]
-	app-shells/bash:0
-	app-misc/jq:=[static-libs?]
-	dev-libs/crypto++:=[static-libs?]
-	dev-libs/leveldb:=[snappy,static-libs?,tcmalloc(-)?]
-	dev-libs/libaio:=[static-libs?]
-	dev-libs/libfmt:=
-	dev-libs/libnl:3=[static-libs?]
-	dev-libs/libxml2:=[static-libs?]
-	dev-libs/xmlsec:=[!openssl?,!libressl?,static-libs?]
-	dev-cpp/yaml-cpp:=
-	dev-libs/nss:=
-	dev-libs/protobuf:=[static-libs?]
-	net-dns/c-ares:=[static-libs?]
-	net-libs/gnutls:=[static-libs?]
-	sys-auth/oath-toolkit:=
-	sys-apps/coreutils
-	sys-apps/grep
-	sys-apps/hwloc:=[static-libs?]
-	sys-apps/keyutils:=[static-libs?]
-	sys-apps/util-linux:=[static-libs?]
-	sys-apps/sed
-	sys-apps/util-linux
-	sys-libs/libcap-ng:=[static-libs?]
-	sys-libs/ncurses:0=[static-libs?]
-	sys-libs/zlib:=[static-libs?]
-	sys-process/numactl:=[static-libs?]
-	x11-libs/libpciaccess:=[static-libs?]
-	babeltrace? ( dev-util/babeltrace )
-	fuse? ( sys-fs/fuse:0=[static-libs?] )
-	jemalloc? ( dev-libs/jemalloc:=[static-libs?] )
-	!jemalloc? ( >=dev-util/google-perftools-2.6.1:=[static-libs?] )
-	kafka? ( dev-libs/librdkafka:=[static-libs?] )
-	kerberos? ( virtual/krb5 )
-	ldap? ( net-nds/openldap:=[static-libs?] )
-	lttng? ( dev-util/lttng-ust:= )
-	rabbitmq? ( net-libs/rabbitmq-c:=[static-libs?] )
-	radosgw? (
-		dev-libs/expat:=[static-libs?]
-		openssl? (
-			dev-libs/openssl:=[static-libs?]
-			net-misc/curl:=[curl_ssl_openssl,static-libs?]
-		)
-		libressl? (
-			dev-libs/libressl:=[static-libs?]
-			net-misc/curl:=[curl_ssl_libressl,static-libs?]
-		)
-	)
-	ssl? (
-		openssl? ( dev-libs/openssl:=[static-libs?] )
-		libressl? ( dev-libs/libressl:=[static-libs?] )
-	)
-	system-boost? ( =dev-libs/boost-1.72*[threads,context,python,static-libs?,${PYTHON_USEDEP}] )
-	uring? ( sys-libs/liburing:=[static-libs?] )
-	xfs? ( sys-fs/xfsprogs:=[static-libs(+)?] )
-	zfs? ( sys-fs/zfs:=[static-libs?] )
-	${PYTHON_DEPS}
-"
-BDEPEND="
-	amd64? ( dev-lang/yasm )
-	x86? ( dev-lang/yasm )
-	app-arch/cpio
-	>=dev-util/cmake-3.5.0
-	dev-python/cython[${PYTHON_USEDEP}]
-	dev-python/sphinx
-	dev-util/cunit
-	dev-util/gperf
-	dev-util/ragel
-	dev-util/valgrind
-	sys-apps/coreutils
-	sys-apps/findutils
-	sys-apps/grep
-	sys-apps/sed
-	sys-apps/which
-	sys-devel/bc
-	sys-devel/patch
-	virtual/pkgconfig
-	test? (
-		dev-python/coverage[${PYTHON_USEDEP}]
-		dev-python/virtualenv[${PYTHON_USEDEP}]
-		dev-python/requests-mock[${PYTHON_USEDEP}]
-		sys-apps/grep[pcre]
-		sys-fs/btrfs-progs
-	)
-"
-RDEPEND="${COMMON_DEPEND}
-	app-admin/sudo
-	net-misc/socat
-	sys-apps/gptfdisk
-	sys-apps/nvme-cli
-	>=sys-apps/smartmontools-7.0
-	sys-block/parted
-	sys-fs/cryptsetup
-	sys-fs/lsscsi
-	sys-fs/lvm2[-device-mapper-only(-)]
-	virtual/awk
-	dev-python/bcrypt[${PYTHON_USEDEP}]
-	dev-python/cherrypy[${PYTHON_USEDEP}]
-	dev-python/python-dateutil[${PYTHON_USEDEP}]
-	dev-python/flask[${PYTHON_USEDEP}]
-	dev-python/jinja[${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}]
-	mgr? (
-		dev-python/jsonpatch[${PYTHON_USEDEP}]
-		dev-python/more-itertools[${PYTHON_USEDEP}]
-		dev-python/numpy[${PYTHON_USEDEP}]
-		dev-python/pyjwt[${PYTHON_USEDEP}]
-		dev-python/pyyaml[${PYTHON_USEDEP}]
-		dev-python/routes[${PYTHON_USEDEP}]
-		sci-libs/scipy[${PYTHON_USEDEP}]
-		sci-libs/scikits_learn[${PYTHON_USEDEP}]
-		dev-python/six[${PYTHON_USEDEP}]
-	)
-"
-REQUIRED_USE="
-	${PYTHON_REQUIRED_USE}
-	^^ ( openssl libressl )
-	kafka? ( radosgw )
-	rabbitmq? ( radosgw )
-	mgr? ( cephfs )
-	?? ( jemalloc tcmalloc )
-	rabbitmq? ( radosgw )
-"
-RESTRICT="!test? ( test )"
-
-# the tests need root access
-RESTRICT="test? ( userpriv )"
-
-# distribution tarball does not include everything needed for tests
-RESTRICT+=" test"
-
-# false positives unless all USE flags are on
-CMAKE_WARN_UNUSED_CLI="no"
-
-PATCHES=(
-	"${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch"
-	"${FILESDIR}/ceph-14.2.0-cflags.patch"
-	"${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch"
-	"${FILESDIR}/ceph-13.2.0-cflags.patch"
-	"${FILESDIR}/ceph-15.2.0-no-virtualenvs.patch"
-	"${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
-	"${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch"
-	"${FILESDIR}/ceph-14.2.0-link-crc32-statically.patch"
-	"${FILESDIR}/ceph-14.2.0-cython-0.29.patch"
-	"${FILESDIR}/ceph-15.2.0-rocksdb-cmake.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
-}
-
-pkg_pretend() {
-	check-reqs_export_vars
-	check-reqs_pkg_pretend
-}
-
-pkg_setup() {
-	python_setup 'python3*'
-	check-reqs_export_vars
-	check-reqs_pkg_setup
-}
-
-src_prepare() {
-	cmake-utils_src_prepare
-
-	if use system-boost; then
-		find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \
-			| xargs --null sed -r \
-			-e 's|Boost::|Boost_|g' \
-			-e 's|Boost_|boost_|g' \
-			-e 's|[Bb]oost_boost|boost_system|g' -i || die
-	fi
-
-	sed -i -r "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \
-		src/bash_completion/CMakeLists.txt || die
-
-	# remove tests that need root access
-	rm src/test/cli/ceph-authtool/cap*.t || die
-}
-
-ceph_src_configure() {
-	local flag
-	local mycmakeargs=(
-		-DWITH_BABELTRACE=$(usex babeltrace)
-		-DWITH_BLUESTORE_PMEM=$(usex pmdk)
-		-DWITH_CEPHFS=$(usex cephfs)
-		-DWITH_CEPHFS_SHELL=$(usex cephfs)
-		-DWITH_DPDK=$(usex dpdk)
-		-DWITH_DPDK=$(usex spdk)
-		-DWITH_FUSE=$(usex fuse)
-		-DWITH_LTTNG=$(usex lttng)
-		-DWITH_GSSAPI=$(usex kerberos)
-		-DWITH_GRAFANA=$(usex grafana)
-		-DWITH_MGR=$(usex mgr)
-		-DWITH_MGR_DASHBOARD_FRONTEND=OFF
-		-DWITH_NUMA=$(usex numa)
-		-DWITH_OPENLDAP=$(usex ldap)
-		-DWITH_PYTHON3=3
-		-DWITH_RADOSGW=$(usex radosgw)
-		-DWITH_RADOSGW_AMQP_ENDPOINT=$(usex rabbitmq)
-		-DWITH_RADOSGW_KAFKA_ENDPOINT=$(usex kafka)
-		-DWITH_RBD_RWL=$(usex rbd-rwl)
-		-DWITH_SSL=$(usex ssl)
-		-DWITH_SYSTEMD=$(usex systemd)
-		-DWITH_TESTS=$(usex test)
-		-DWITH_LIBURING=$(usex uring)
-		-DWITH_XFS=$(usex xfs)
-		-DWITH_ZFS=$(usex zfs)
-		-DENABLE_SHARED=$(usex static-libs '' 'ON' 'OFF')
-		-DALLOCATOR=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')")
-		-DWITH_SYSTEM_BOOST=$(usex system-boost)
-		-DBOOST_J=$(makeopts_jobs)
-		-DWITH_RDMA=OFF
-		-DWITH_TBB=OFF
-		-DSYSTEMD_UNITDIR=$(systemd_get_systemunitdir)
-		-DEPYTHON_VERSION="${EPYTHON#python}"
-		-DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PN}-${PVR}"
-		-DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
-	)
-	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" \
-		|| die "failed to remove cmake cache"
-
-	cmake-utils_src_configure
-
-	# bug #630232
-	sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \
-		"${BUILD_DIR:-${S}}"/include/acconfig.h \
-		|| die "sed failed"
-}
-
-src_configure() {
-	use custom-cflags || strip-flags
-	ceph_src_configure
-}
-
-python_compile() {
-	local CMAKE_USE_DIR="${S}"
-	ceph_src_configure
-
-	pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
-	emake VERBOSE=1 clean
-	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 VERBOSE=1 all
-
-	# we have to do this here to prevent from building everything multiple times
-	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="${ED}" emake VERBOSE=1 install
-	popd >/dev/null || die
-
-	python_optimize
-}
-
-src_install() {
-	cmake-utils_src_install
-	python_foreach_impl python_install
-
-	find "${ED}" -name '*.la' -type f -delete || die
-
-	exeinto /usr/$(get_libdir)/ceph
-	newexe "${BUILD_DIR}/bin/init-ceph" init-ceph
-
-	insinto /etc/logrotate.d/
-	newins "${FILESDIR}"/ceph.logrotate-r2 ${PN}
-
-	keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat
-
-	fowners -R ceph:ceph /var/log/ceph
-
-	newinitd "${FILESDIR}/rbdmap.initd" rbdmap
-	newinitd "${FILESDIR}/${PN}.initd-r12" ${PN}
-	newconfd "${FILESDIR}/${PN}.confd-r5" ${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 'python3*'
-
-	# bug #630232
-	sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \
-		|| die "sed failed"
-
-	python_fix_shebang "${ED}"/usr/{,s}bin/
-
-	# python_fix_shebang apparently is not idempotent
-	local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]'
-	grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \
-		| xargs --null --no-run-if-empty -- sed -i -r  "s:${shebang_regex}:\1:" || die
-
-	local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* )
-	dostrip -x "${rados_classes[@]#${ED}}"
-}
-
-pkg_postinst() {
-	readme.gentoo_print_elog
-}

diff --git a/sys-cluster/ceph/files/ceph-14.2.8-boost-sonames.patch b/sys-cluster/ceph/files/ceph-14.2.8-boost-sonames.patch
deleted file mode 100644
index 07def706d78..00000000000
--- a/sys-cluster/ceph/files/ceph-14.2.8-boost-sonames.patch
+++ /dev/null
@@ -1,538 +0,0 @@
-diff --git a/cmake/modules/BuildBoost.cmake b/cmake/modules/BuildBoost.cmake
-index f99d74a0bc..d1a47bc5d1 100644
---- a/cmake/modules/BuildBoost.cmake
-+++ b/cmake/modules/BuildBoost.cmake
-@@ -199,13 +199,13 @@ macro(build_boost version)
-   foreach(c ${Boost_BUILD_COMPONENTS})
-     string(TOUPPER ${c} upper_c)
-     if(Boost_USE_STATIC_LIBS)
--      add_library(Boost::${c} STATIC IMPORTED)
-+      add_library(Boost_${c} STATIC IMPORTED)
-     else()
--      add_library(Boost::${c} SHARED IMPORTED)
-+      add_library(Boost_${c} SHARED IMPORTED)
-     endif()
--    add_dependencies(Boost::${c} Boost)
-+    add_dependencies(Boost_${c} Boost)
-     if(c MATCHES "^python")
--      set(c "python${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}")
-+      set(c "python-${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR}")
-     endif()
-     if(Boost_USE_STATIC_LIBS)
-       set(Boost_${upper_c}_LIBRARY
-@@ -215,7 +215,7 @@ macro(build_boost version)
-         ${install_dir}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}boost_${c}${CMAKE_SHARED_LIBRARY_SUFFIX})
-     endif()
-     unset(buildid)
--    set_target_properties(Boost::${c} PROPERTIES
-+    set_target_properties(Boost_${c} PROPERTIES
-       INTERFACE_INCLUDE_DIRECTORIES "${Boost_INCLUDE_DIRS}"
-       IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
-       IMPORTED_LOCATION "${Boost_${upper_c}_LIBRARY}")
-@@ -224,19 +224,19 @@ macro(build_boost version)
-   foreach(c ${Boost_BUILD_COMPONENTS})
-     if(Boost_${c}_DEPENDENCIES)
-       foreach(dep ${Boost_${c}_DEPENDENCIES})
--        list(APPEND dependencies Boost::${dep})
-+        list(APPEND dependencies Boost_${dep})
-       endforeach()
--      set_target_properties(Boost::${c} PROPERTIES
-+      set_target_properties(Boost_${c} PROPERTIES
-         INTERFACE_LINK_LIBRARIES "${dependencies}")
-       unset(dependencies)
-     endif()
-   endforeach()
- 
-   # for header-only libraries
--  add_library(Boost::boost INTERFACE IMPORTED)
--  set_target_properties(Boost::boost PROPERTIES
-+  add_library(boost INTERFACE IMPORTED)
-+  set_target_properties(boost PROPERTIES
-     INTERFACE_INCLUDE_DIRECTORIES "${Boost_INCLUDE_DIRS}")
--  add_dependencies(Boost::boost Boost)
-+  add_dependencies(boost Boost)
-   find_package_handle_standard_args(Boost DEFAULT_MSG
-     Boost_INCLUDE_DIRS Boost_LIBRARIES)
-   mark_as_advanced(Boost_LIBRARIES BOOST_INCLUDE_DIRS)
-@@ -253,7 +253,7 @@ function(maybe_add_boost_dep target)
-     get_filename_component(ext ${src} EXT)
-     # assuming all cxx source files include boost header(s)
-     if(ext MATCHES ".cc|.cpp|.cxx")
--      add_dependencies(${target} Boost::boost)
-+      add_dependencies(${target} boost)
-       return()
-     endif()
-   endforeach()
-diff --git a/cmake/modules/FindBoost.cmake b/cmake/modules/FindBoost.cmake
-index bc61995b03..4419632fa4 100644
---- a/cmake/modules/FindBoost.cmake
-+++ b/cmake/modules/FindBoost.cmake
-@@ -293,9 +293,9 @@ function(_boost_get_canonical_target_name component target_var)
-   string(TOLOWER "${component}" component)
-   if(component MATCHES "^([a-z_]*)(python|numpy)([1-9])\\.?([0-9])?$")
-     # handle pythonXY and numpyXY versioned components and also python X.Y, mpi_python etc.
--    set(${target_var} "Boost::${CMAKE_MATCH_1}${CMAKE_MATCH_2}" PARENT_SCOPE)
-+    set(${target_var} "boost_${CMAKE_MATCH_1}${CMAKE_MATCH_2}" PARENT_SCOPE)
-   else()
--    set(${target_var} "Boost::${component}" PARENT_SCOPE)
-+    set(${target_var} "boost_${component}" PARENT_SCOPE)
-   endif()
- endfunction()
- 
-@@ -403,19 +403,19 @@ function(_boost_set_legacy_variables_from_config)
-   if(WIN32)
-     _boost_set_if_unset(Boost_LIB_DIAGNOSTIC_DEFINITIONS "-DBOOST_LIB_DIAGNOSTIC")
-   endif()
--  if(NOT TARGET Boost::headers)
--    add_library(Boost::headers INTERFACE IMPORTED)
--    target_include_directories(Boost::headers INTERFACE ${Boost_INCLUDE_DIRS})
-+  if(NOT TARGET boost_headers)
-+    add_library(boost_headers INTERFACE IMPORTED)
-+    target_include_directories(boost_headers INTERFACE ${Boost_INCLUDE_DIRS})
-   endif()
-   # Legacy targets w/o functionality as all handled by defined targets
-   foreach(lib diagnostic_definitions disable_autolinking dynamic_linking)
--    if(NOT TARGET Boost::${lib})
--      add_library(Boost::${lib} INTERFACE IMPORTED)
-+    if(NOT TARGET boost_${lib})
-+      add_library(boost_${lib} INTERFACE IMPORTED)
-     endif()
-   endforeach()
--  if(NOT TARGET Boost::boost)
--    add_library(Boost::boost INTERFACE IMPORTED)
--    target_link_libraries(Boost::boost INTERFACE Boost::headers)
-+  if(NOT TARGET boost_boost)
-+    add_library(boost_boost INTERFACE IMPORTED)
-+    target_link_libraries(boost_boost INTERFACE boost_headers)
-   endif()
- endfunction()
- 
-@@ -580,10 +580,6 @@ macro(_Boost_ADJUST_LIB_VARS basename)
- 
-     if(Boost_${basename}_LIBRARY AND Boost_${basename}_HEADER)
-       set(Boost_${basename}_FOUND ON)
--      if("x${basename}" STREQUAL "xTHREAD" AND NOT TARGET Threads::Threads)
--        string(APPEND Boost_ERROR_REASON_THREAD " (missing dependency: Threads)")
--        set(Boost_THREAD_FOUND OFF)
--      endif()
-     endif()
- 
-   endif()
-@@ -1170,7 +1166,7 @@ function(_Boost_COMPONENT_DEPENDENCIES component _ret)
-   if (NOT _boost_DEPS_STRING)
-     set(_boost_DEPS_STRING "(none)")
-   endif()
--  # message(STATUS "Dependencies for Boost::${component}: ${_boost_DEPS_STRING}")
-+  # message(STATUS "Dependencies for Boost_${component}: ${_boost_DEPS_STRING}")
- endfunction()
- 
- #
-@@ -1254,7 +1250,7 @@ function(_Boost_COMPONENT_HEADERS component _hdrs)
-   if (NOT _boost_HDRS_STRING)
-     set(_boost_HDRS_STRING "(none)")
-   endif()
--  # message(STATUS "Headers for Boost::${component}: ${_boost_HDRS_STRING}")
-+  # message(STATUS "Headers for Boost_${component}: ${_boost_HDRS_STRING}")
- endfunction()
- 
- #
-@@ -1302,7 +1298,7 @@ endfunction()
- 
- #
- # Some boost libraries may require particular set of compler features.
--# The very first one was `boost::fiber` introduced in Boost 1.62.
-+# The very first one was `boost_fiber` introduced in Boost 1.62.
- # One can check required compiler features of it in
- # - `${Boost_ROOT}/libs/fiber/build/Jamfile.v2`;
- # - `${Boost_ROOT}/libs/context/build/Jamfile.v2`.
-@@ -1472,11 +1468,11 @@ _Boost_DEBUG_PRINT_VAR("${CMAKE_CURRENT_LIST_FILE}" "${CMAKE_CURRENT_LIST_LINE}"
- # on all platforms to keep end user code free from platform dependent
- # code.  Also provide convenience targets to disable autolinking and
- # enable dynamic linking.
--if(NOT TARGET Boost::diagnostic_definitions)
--  add_library(Boost::diagnostic_definitions INTERFACE IMPORTED)
--  add_library(Boost::disable_autolinking INTERFACE IMPORTED)
--  add_library(Boost::dynamic_linking INTERFACE IMPORTED)
--  set_target_properties(Boost::dynamic_linking PROPERTIES
-+if(NOT TARGET boost_diagnostic_definitions)
-+  add_library(boost_diagnostic_definitions INTERFACE IMPORTED)
-+  add_library(boost_disable_autolinking INTERFACE IMPORTED)
-+  add_library(boost_dynamic_linking INTERFACE IMPORTED)
-+  set_target_properties(boost_dynamic_linking PROPERTIES
-     INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_DYN_LINK")
- endif()
- if(WIN32)
-@@ -1498,9 +1494,9 @@ if(WIN32)
-   # code to emit a #pragma message each time a library is selected
-   # for linking.
-   set(Boost_LIB_DIAGNOSTIC_DEFINITIONS "-DBOOST_LIB_DIAGNOSTIC")
--  set_target_properties(Boost::diagnostic_definitions PROPERTIES
-+  set_target_properties(boost_diagnostic_definitions PROPERTIES
-     INTERFACE_COMPILE_DEFINITIONS "BOOST_LIB_DIAGNOSTIC")
--  set_target_properties(Boost::disable_autolinking PROPERTIES
-+  set_target_properties(boost_disable_autolinking PROPERTIES
-     INTERFACE_COMPILE_DEFINITIONS "BOOST_ALL_NO_LIB")
- endif()
- 
-@@ -1933,7 +1929,7 @@ if("thread" IN_LIST Boost_FIND_COMPONENTS)
-   else()
-     set(_Boost_find_quiet "")
-   endif()
--  find_package(Threads ${_Boost_find_quiet})
-+  find_package(boost_thread ${_Boost_find_quiet})
-   unset(_Boost_find_quiet)
- endif()
- 
-@@ -2234,69 +2230,69 @@ endif()
- if(Boost_FOUND)
-   # The builtin CMake package in Boost 1.70+ introduces a new name
-   # for the header-only lib, let's provide the same UI in module mode
--  if(NOT TARGET Boost::headers)
--    add_library(Boost::headers INTERFACE IMPORTED)
-+  if(NOT TARGET boost_headers)
-+    add_library(boost_headers INTERFACE IMPORTED)
-     if(Boost_INCLUDE_DIRS)
--      set_target_properties(Boost::headers PROPERTIES
-+      set_target_properties(boost_headers PROPERTIES
-         INTERFACE_INCLUDE_DIRECTORIES "${Boost_INCLUDE_DIRS}")
-     endif()
-   endif()
- 
-   # Define the old target name for header-only libraries for backwards
-   # compat.
--  if(NOT TARGET Boost::boost)
--    add_library(Boost::boost INTERFACE IMPORTED)
--    set_target_properties(Boost::boost
--      PROPERTIES INTERFACE_LINK_LIBRARIES Boost::headers)
-+  if(NOT TARGET boost_boost)
-+    add_library(boost_boost INTERFACE IMPORTED)
-+    set_target_properties(boost_boost
-+      PROPERTIES INTERFACE_LINK_LIBRARIES boost_headers)
-   endif()
- 
-   foreach(COMPONENT ${Boost_FIND_COMPONENTS})
--    if(_Boost_IMPORTED_TARGETS AND NOT TARGET Boost::${COMPONENT})
-+    if(_Boost_IMPORTED_TARGETS AND NOT TARGET boost_${COMPONENT})
-       string(TOUPPER ${COMPONENT} UPPERCOMPONENT)
-       if(Boost_${UPPERCOMPONENT}_FOUND)
-         if(Boost_USE_STATIC_LIBS)
--          add_library(Boost::${COMPONENT} STATIC IMPORTED)
-+          add_library(boost_${COMPONENT} STATIC IMPORTED)
-         else()
-           # Even if Boost_USE_STATIC_LIBS is OFF, we might have static
-           # libraries as a result.
--          add_library(Boost::${COMPONENT} UNKNOWN IMPORTED)
-+          add_library(boost_${COMPONENT} UNKNOWN IMPORTED)
-         endif()
-         if(Boost_INCLUDE_DIRS)
--          set_target_properties(Boost::${COMPONENT} PROPERTIES
-+          set_target_properties(boost_${COMPONENT} PROPERTIES
-             INTERFACE_INCLUDE_DIRECTORIES "${Boost_INCLUDE_DIRS}")
-         endif()
-         if(EXISTS "${Boost_${UPPERCOMPONENT}_LIBRARY}")
--          set_target_properties(Boost::${COMPONENT} PROPERTIES
-+          set_target_properties(boost_${COMPONENT} PROPERTIES
-             IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
-             IMPORTED_LOCATION "${Boost_${UPPERCOMPONENT}_LIBRARY}")
-         endif()
-         if(EXISTS "${Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE}")
--          set_property(TARGET Boost::${COMPONENT} APPEND PROPERTY
-+          set_property(TARGET boost_${COMPONENT} APPEND PROPERTY
-             IMPORTED_CONFIGURATIONS RELEASE)
--          set_target_properties(Boost::${COMPONENT} PROPERTIES
-+          set_target_properties(boost_${COMPONENT} PROPERTIES
-             IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
-             IMPORTED_LOCATION_RELEASE "${Boost_${UPPERCOMPONENT}_LIBRARY_RELEASE}")
-         endif()
-         if(EXISTS "${Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG}")
--          set_property(TARGET Boost::${COMPONENT} APPEND PROPERTY
-+          set_property(TARGET boost_${COMPONENT} APPEND PROPERTY
-             IMPORTED_CONFIGURATIONS DEBUG)
--          set_target_properties(Boost::${COMPONENT} PROPERTIES
-+          set_target_properties(boost_${COMPONENT} PROPERTIES
-             IMPORTED_LINK_INTERFACE_LANGUAGES_DEBUG "CXX"
-             IMPORTED_LOCATION_DEBUG "${Boost_${UPPERCOMPONENT}_LIBRARY_DEBUG}")
-         endif()
-         if(_Boost_${UPPERCOMPONENT}_DEPENDENCIES)
-           unset(_Boost_${UPPERCOMPONENT}_TARGET_DEPENDENCIES)
-           foreach(dep ${_Boost_${UPPERCOMPONENT}_DEPENDENCIES})
--            list(APPEND _Boost_${UPPERCOMPONENT}_TARGET_DEPENDENCIES Boost::${dep})
-+            list(APPEND _Boost_${UPPERCOMPONENT}_TARGET_DEPENDENCIES boost_${dep})
-           endforeach()
-           if(COMPONENT STREQUAL "thread")
-             list(APPEND _Boost_${UPPERCOMPONENT}_TARGET_DEPENDENCIES Threads::Threads)
-           endif()
--          set_target_properties(Boost::${COMPONENT} PROPERTIES
-+          set_target_properties(boost_${COMPONENT} PROPERTIES
-             INTERFACE_LINK_LIBRARIES "${_Boost_${UPPERCOMPONENT}_TARGET_DEPENDENCIES}")
-         endif()
-         if(_Boost_${UPPERCOMPONENT}_COMPILER_FEATURES)
--          set_target_properties(Boost::${COMPONENT} PROPERTIES
-+          set_target_properties(boost_${COMPONENT} PROPERTIES
-             CXX_STANDARD 17)
-         endif()
-       endif()
-diff --git a/cmake/modules/Finddpdk.cmake b/cmake/modules/Finddpdk.cmake
-index 964ae5dfb0..92bf07c14e 100644
---- a/cmake/modules/Finddpdk.cmake
-+++ b/cmake/modules/Finddpdk.cmake
-@@ -102,9 +102,9 @@ if(dpdk_FOUND)
- 
-   if(NOT TARGET dpdk::dpdk)
-     add_library(dpdk::dpdk INTERFACE IMPORTED)
--    find_package(Threads QUIET)
-+    find_package(boost_thread QUIET)
-     list(APPEND dpdk_LIBRARIES
--      Threads::Threads
-+      boost_thread
-       dpdk::cflags)
-     set_target_properties(dpdk::dpdk PROPERTIES
-       INTERFACE_LINK_LIBRARIES "${dpdk_LIBRARIES}"
-diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
-index 28ec9835f8..31a1efa19f 100644
---- a/src/CMakeLists.txt
-+++ b/src/CMakeLists.txt
-@@ -356,12 +356,12 @@ set(ceph_common_objs
- set(ceph_common_deps
-   json_spirit erasure_code arch crc32
-   ${LIB_RESOLV}
--  Boost::thread
--  Boost::system
--  Boost::random
--  Boost::program_options
--  Boost::date_time
--  Boost::iostreams
-+  boost_thread
-+  boost_system
-+  boost_random
-+  boost_program_options
-+  boost_date_time
-+  boost_iostreams
-   ${BLKID_LIBRARIES}
-   ${Backtrace_LIBRARIES}
-   ${BLKIN_LIBRARIES}
-@@ -522,7 +522,7 @@ if (WITH_CEPHFS)
-     ceph_mds.cc)
-   add_executable(ceph-mds ${ceph_mds_srcs})
-   target_link_libraries(ceph-mds mds ${CMAKE_DL_LIBS} global-static ceph-common
--    Boost::thread)
-+    boost_thread)
-   install(TARGETS ceph-mds DESTINATION bin)
- endif()
- 
-diff --git a/src/crimson/CMakeLists.txt b/src/crimson/CMakeLists.txt
-index d7b58521d4..e1533af33f 100644
---- a/src/crimson/CMakeLists.txt
-+++ b/src/crimson/CMakeLists.txt
-@@ -106,8 +106,8 @@ target_link_libraries(crimson-common
-   PRIVATE
-     crc32
-     crimson::cflags
--    Boost::iostreams
--    Boost::random
-+    boost_iostreams
-+    boost_random
-     ${NSS_LIBRARIES} ${NSPR_LIBRARIES} OpenSSL::Crypto)
- 
- set(crimson_auth_srcs
-diff --git a/src/mgr/CMakeLists.txt b/src/mgr/CMakeLists.txt
-index 180e39bc1c..8323aa29a5 100644
---- a/src/mgr/CMakeLists.txt
-+++ b/src/mgr/CMakeLists.txt
-@@ -30,7 +30,7 @@ target_include_directories(ceph-mgr SYSTEM PRIVATE "${PYTHON_INCLUDE_DIRS}")
- target_link_libraries(ceph-mgr
-   osdc client heap_profiler
-   global-static ceph-common
--  Boost::python${MGR_PYTHON_VERSION_MAJOR}${MGR_PYTHON_VERSION_MINOR}
-+  boost_python${MGR_PYTHON_VERSION_MAJOR}${MGR_PYTHON_VERSION_MINOR}
-   ${MGR_PYTHON_LIBRARIES} ${CMAKE_DL_LIBS} ${GSSAPI_LIBRARIES})
- set_target_properties(ceph-mgr PROPERTIES
-   POSITION_INDEPENDENT_CODE ${EXE_LINKER_USE_PIE})
-diff --git a/src/rbd_replay/CMakeLists.txt b/src/rbd_replay/CMakeLists.txt
-index e9d3804c5f..5c6eb58de1 100644
---- a/src/rbd_replay/CMakeLists.txt
-+++ b/src/rbd_replay/CMakeLists.txt
-@@ -36,7 +36,7 @@ if(HAVE_BABELTRACE)
-     global
-     babeltrace
-     babeltrace-ctf
--    Boost::date_time
-+    boost_date_time
-     )
-   install(TARGETS rbd-replay-prep DESTINATION bin)
- endif(HAVE_BABELTRACE)
-diff --git a/src/rgw/CMakeLists.txt b/src/rgw/CMakeLists.txt
-index d184c783de..00740331e3 100644
---- a/src/rgw/CMakeLists.txt
-+++ b/src/rgw/CMakeLists.txt
-@@ -203,7 +203,7 @@ if(WITH_CURL_OPENSSL)
- endif()
- 
- if(WITH_BOOST_CONTEXT)
--  target_link_libraries(rgw_a PRIVATE Boost::coroutine Boost::context)
-+  target_link_libraries(rgw_a PRIVATE boost_coroutine boost_context)
- endif()
- 
- set(rgw_libs rgw_a)
-@@ -354,7 +354,7 @@ if(WITH_RADOSGW_AMQP_ENDPOINT)
-   target_link_libraries(rgw_admin_user PRIVATE RabbitMQ::RabbitMQ)
- endif()
- if(WITH_BOOST_CONTEXT)
--  target_link_libraries(rgw_admin_user PRIVATE Boost::coroutine Boost::context)
-+  target_link_libraries(rgw_admin_user PRIVATE boost_coroutine boost_context)
- endif()
- 
- if(WITH_TESTS)
-diff --git a/src/test/CMakeLists.txt b/src/test/CMakeLists.txt
-index 5dcee1694d..60743be698 100644
---- a/src/test/CMakeLists.txt
-+++ b/src/test/CMakeLists.txt
-@@ -159,7 +159,7 @@ add_executable(ceph_omapbench
-   )
- target_link_libraries(ceph_omapbench
-   librados
--  Boost::program_options
-+  boost_program_options
-   global
-   ${BLKID_LIBRARIES}
-   ${CMAKE_DL_LIBS}
-diff --git a/src/test/common/CMakeLists.txt b/src/test/common/CMakeLists.txt
-index 71fb77cda9..aff8fb6565 100644
---- a/src/test/common/CMakeLists.txt
-+++ b/src/test/common/CMakeLists.txt
-@@ -315,8 +315,8 @@ add_ceph_unittest(unittest_hobject)
- 
- add_executable(unittest_async_completion test_async_completion.cc)
- add_ceph_unittest(unittest_async_completion)
--target_link_libraries(unittest_async_completion Boost::system)
-+target_link_libraries(unittest_async_completion boost_system)
- 
- add_executable(unittest_async_shared_mutex test_async_shared_mutex.cc)
- add_ceph_unittest(unittest_async_shared_mutex)
--target_link_libraries(unittest_async_shared_mutex ceph-common Boost::system)
-+target_link_libraries(unittest_async_shared_mutex ceph-common boost_system)
-diff --git a/src/test/erasure-code/CMakeLists.txt b/src/test/erasure-code/CMakeLists.txt
-index 721f6c3675..1cd9635c77 100644
---- a/src/test/erasure-code/CMakeLists.txt
-+++ b/src/test/erasure-code/CMakeLists.txt
-@@ -2,15 +2,15 @@
- add_executable(ceph_erasure_code_benchmark 
-   ${CMAKE_SOURCE_DIR}/src/erasure-code/ErasureCode.cc
-   ceph_erasure_code_benchmark.cc)
--target_link_libraries(ceph_erasure_code_benchmark ceph-common Boost::program_options global ${CMAKE_DL_LIBS})
-+target_link_libraries(ceph_erasure_code_benchmark ceph-common boost_program_options global ${CMAKE_DL_LIBS})
- install(TARGETS ceph_erasure_code_benchmark
-   DESTINATION bin)
- 
- add_executable(ceph_erasure_code_non_regression ceph_erasure_code_non_regression.cc)
--target_link_libraries(ceph_erasure_code_non_regression ceph-common Boost::program_options global ${CMAKE_DL_LIBS})
-+target_link_libraries(ceph_erasure_code_non_regression ceph-common boost_program_options global ${CMAKE_DL_LIBS})
- 
- add_executable(ceph_erasure_code ceph_erasure_code.cc)
--target_link_libraries(ceph_erasure_code ceph-common Boost::program_options global ${CMAKE_DL_LIBS})
-+target_link_libraries(ceph_erasure_code ceph-common boost_program_options global ${CMAKE_DL_LIBS})
- install(TARGETS ceph_erasure_code
-   DESTINATION bin)
- 
-diff --git a/src/test/lazy-omap-stats/CMakeLists.txt b/src/test/lazy-omap-stats/CMakeLists.txt
-index fad71f135c..06a3d2d929 100644
---- a/src/test/lazy-omap-stats/CMakeLists.txt
-+++ b/src/test/lazy-omap-stats/CMakeLists.txt
-@@ -4,7 +4,7 @@ add_executable(ceph_test_lazy_omap_stats
-   main.cc
-   lazy_omap_stats_test.cc)
- target_link_libraries(ceph_test_lazy_omap_stats
--  librados ${UNITTEST_LIBS} Boost::system)
-+  librados ${UNITTEST_LIBS} boost_system)
- install(TARGETS
-   ceph_test_lazy_omap_stats
-   DESTINATION ${CMAKE_INSTALL_BINDIR})
-diff --git a/src/test/librados/CMakeLists.txt b/src/test/librados/CMakeLists.txt
-index 4fc53d2406..e6304394f8 100644
---- a/src/test/librados/CMakeLists.txt
-+++ b/src/test/librados/CMakeLists.txt
-@@ -62,7 +62,7 @@ add_executable(ceph_test_rados_api_asio asio.cc)
- target_link_libraries(ceph_test_rados_api_asio global
-   librados ${UNITTEST_LIBS})
- if(WITH_BOOST_CONTEXT)
--  target_link_libraries(ceph_test_rados_api_asio Boost::coroutine Boost::context)
-+  target_link_libraries(ceph_test_rados_api_asio boost_coroutine boost_context)
- endif()
- 
- add_executable(ceph_test_rados_api_list
-@@ -132,7 +132,7 @@ add_executable(ceph_test_rados_api_tier_pp
-   tier_cxx.cc
-   $<TARGET_OBJECTS:unit-main>)
- target_link_libraries(ceph_test_rados_api_tier_pp
--  librados global ${UNITTEST_LIBS} Boost::system radostest-cxx)
-+  librados global ${UNITTEST_LIBS} boost_system radostest-cxx)
- 
- add_executable(ceph_test_rados_api_snapshots
-   snapshots.cc)
-diff --git a/src/test/librbd/CMakeLists.txt b/src/test/librbd/CMakeLists.txt
-index 3c3e9db6c1..2c208c1a4f 100644
---- a/src/test/librbd/CMakeLists.txt
-+++ b/src/test/librbd/CMakeLists.txt
-@@ -27,7 +27,7 @@ target_link_libraries(rbd_test PRIVATE
-   radostest
-   radostest-cxx
-   librados
--  Boost::thread
-+  boost_thread
-   GMock::GMock
-   GTest::GTest)
- 
-diff --git a/src/test/mon/CMakeLists.txt b/src/test/mon/CMakeLists.txt
-index b712e95be7..6225ff3320 100644
---- a/src/test/mon/CMakeLists.txt
-+++ b/src/test/mon/CMakeLists.txt
-@@ -44,7 +44,7 @@ target_link_libraries(unittest_mon_montypes mon global)
- add_executable(ceph_test_mon_memory_target
-   test_mon_memory_target.cc
-   )
--target_link_libraries(ceph_test_mon_memory_target ${UNITTEST_LIBS} Boost::system)
-+target_link_libraries(ceph_test_mon_memory_target ${UNITTEST_LIBS} boost_system)
- install(TARGETS ceph_test_mon_memory_target
-   DESTINATION ${CMAKE_INSTALL_BINDIR})
- 
-diff --git a/src/test/rgw/CMakeLists.txt b/src/test/rgw/CMakeLists.txt
-index cde6348d57..e6ce738834 100644
---- a/src/test/rgw/CMakeLists.txt
-+++ b/src/test/rgw/CMakeLists.txt
-@@ -144,7 +144,7 @@ add_ceph_unittest(unittest_rgw_dmclock_scheduler)
- target_link_libraries(unittest_rgw_dmclock_scheduler radosgw_a dmclock)
- if(WITH_BOOST_CONTEXT)
-   target_compile_definitions(unittest_rgw_dmclock_scheduler PRIVATE BOOST_COROUTINES_NO_DEPRECATION_WARNING)
--  target_link_libraries(unittest_rgw_dmclock_scheduler Boost::coroutine Boost::context)
-+  target_link_libraries(unittest_rgw_dmclock_scheduler boost_coroutine boost_context)
- endif()
- 
- if(WITH_RADOSGW_AMQP_ENDPOINT)
-diff --git a/src/tools/CMakeLists.txt b/src/tools/CMakeLists.txt
-index d31f3d2408..6945018b11 100644
---- a/src/tools/CMakeLists.txt
-+++ b/src/tools/CMakeLists.txt
-@@ -35,20 +35,20 @@ install(PROGRAMS
- endif(WITH_TESTS)
- 
- add_executable(ceph-osdomap-tool ceph_osdomap_tool.cc)
--target_link_libraries(ceph-osdomap-tool os global Boost::program_options)
-+target_link_libraries(ceph-osdomap-tool os global boost_program_options)
- install(TARGETS ceph-osdomap-tool DESTINATION bin)
- 
- add_executable(ceph-monstore-tool
-   ceph_monstore_tool.cc
-   ../mgr/mgr_commands.cc)
--target_link_libraries(ceph-monstore-tool os global Boost::program_options)
-+target_link_libraries(ceph-monstore-tool os global boost_program_options)
- install(TARGETS ceph-monstore-tool DESTINATION bin)
- 
- add_executable(ceph-objectstore-tool
-   ceph_objectstore_tool.cc
-   rebuild_mondb.cc
-   RadosDump.cc)
--target_link_libraries(ceph-objectstore-tool osd os global Boost::program_options ${CMAKE_DL_LIBS})
-+target_link_libraries(ceph-objectstore-tool osd os global boost_program_options ${CMAKE_DL_LIBS})
- if(WITH_FUSE)
-   target_link_libraries(ceph-objectstore-tool ${FUSE_LIBRARIES})
- endif(WITH_FUSE)


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2020-05-28 19:09 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2020-05-28 19:09 UTC (permalink / raw
  To: gentoo-commits

commit:     c8077590d4fd447e07508c7e511e9190920f0ca8
Author:     Patrick McLean <patrick.mclean <AT> sony <DOT> com>
AuthorDate: Thu May 28 19:08:53 2020 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Thu May 28 19:09:22 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c8077590

sys-cluster/ceph-15.2.2-r1: Revbump, fix bugs #724508 and #724438

Adds a "diskprediction" USE flag to enable diskprediction_local since it
forces an old scipy (forcing off python3_8) (bug #724438)

Fixes up the systemd unit and adds a tmpfiles entry (bug #724508)

Closes: https://bugs.gentoo.org/724508
Closes: https://bugs.gentoo.org/724438
Copyright: Sony Interactive Entertainment Inc.
Package-Manager: Portage-2.3.100, Repoman-2.3.22
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 .../{ceph-15.2.2.ebuild => ceph-15.2.2-r1.ebuild}  | 30 +++++++++++++++-------
 .../ceph/files/ceph-15.2.2-systemd-unit.patch      | 12 +++++++++
 sys-cluster/ceph/files/ceph-tmpfilesd              |  1 +
 sys-cluster/ceph/metadata.xml                      |  1 +
 4 files changed, 35 insertions(+), 9 deletions(-)

diff --git a/sys-cluster/ceph/ceph-15.2.2.ebuild b/sys-cluster/ceph/ceph-15.2.2-r1.ebuild
similarity index 92%
rename from sys-cluster/ceph/ceph-15.2.2.ebuild
rename to sys-cluster/ceph/ceph-15.2.2-r1.ebuild
index 2d9f2924eca..d8466689267 100644
--- a/sys-cluster/ceph/ceph-15.2.2.ebuild
+++ b/sys-cluster/ceph/ceph-15.2.2-r1.ebuild
@@ -9,7 +9,7 @@ DISTUTILS_OPTIONAL=1
 
 inherit check-reqs bash-completion-r1 cmake-utils distutils-r1 flag-o-matic \
 		multiprocessing python-r1 udev readme.gentoo-r1 toolchain-funcs \
-		systemd
+		systemd tmpfiles
 
 if [[ ${PV} == *9999* ]]; then
 	inherit git-r3
@@ -28,9 +28,9 @@ SLOT="0"
 
 CPU_FLAGS_X86=(sse{,2,3,4_1,4_2} ssse3)
 
-IUSE="babeltrace +cephfs custom-cflags dpdk fuse grafana jemalloc kafka kerberos ldap
-	libressl lttng +mgr numa +openssl pmdk rabbitmq +radosgw rbd-rwl +ssl spdk
-	system-boost systemd +tcmalloc test uring xfs zfs"
+IUSE="babeltrace +cephfs custom-cflags diskprediction dpdk fuse grafana jemalloc
+	kafka kerberos ldap libressl lttng +mgr numa +openssl pmdk rabbitmq +radosgw
+	rbd-rwl +ssl spdk system-boost systemd +tcmalloc test uring xfs zfs"
 IUSE+=" $(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})"
 
 COMMON_DEPEND="
@@ -153,18 +153,22 @@ RDEPEND="${COMMON_DEPEND}
 		dev-python/pyjwt[${PYTHON_USEDEP}]
 		dev-python/pyyaml[${PYTHON_USEDEP}]
 		dev-python/routes[${PYTHON_USEDEP}]
-		sci-libs/scipy[${PYTHON_USEDEP}]
+		diskprediction? (
+			$(python_gen_cond_dep '<sci-libs/scipy-1.4.0[${PYTHON_USEDEP}]' python3_{6,7})
+		)
 		sci-libs/scikits_learn[${PYTHON_USEDEP}]
 		dev-python/six[${PYTHON_USEDEP}]
 	)
 "
+# diskprediction needs older scipy not compatible with py38
+# bug #724438
 REQUIRED_USE="
 	${PYTHON_REQUIRED_USE}
+	?? ( jemalloc tcmalloc )
 	^^ ( openssl libressl )
+	diskprediction? ( mgr !python_targets_python3_8 )
 	kafka? ( radosgw )
-	rabbitmq? ( radosgw )
 	mgr? ( cephfs )
-	?? ( jemalloc tcmalloc )
 	rabbitmq? ( radosgw )
 "
 RESTRICT="!test? ( test )"
@@ -189,10 +193,11 @@ PATCHES=(
 	"${FILESDIR}/ceph-14.2.0-link-crc32-statically.patch"
 	"${FILESDIR}/ceph-14.2.0-cython-0.29.patch"
 	"${FILESDIR}/ceph-15.2.0-rocksdb-cmake.patch"
+	"${FILESDIR}/ceph-15.2.2-systemd-unit.patch"
 )
 
 check-reqs_export_vars() {
-	CHECKREQS_DISK_BUILD="5.2G"
+	CHECKREQS_DISK_BUILD="5200M"
 	CHECKREQS_DISK_USR="510M"
 
 	export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR
@@ -223,6 +228,10 @@ src_prepare() {
 	sed -i -r "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \
 		src/bash_completion/CMakeLists.txt || die
 
+	if ! use diskprediction; then
+		rm -rf src/pybind/mgr/diskprediction_local || die
+	fi
+
 	# remove tests that need root access
 	rm src/test/cli/ceph-authtool/cap*.t || die
 }
@@ -262,6 +271,7 @@ ceph_src_configure() {
 		-DWITH_RDMA=OFF
 		-DWITH_TBB=OFF
 		-DSYSTEMD_UNITDIR=$(systemd_get_systemunitdir)
+		-DCMAKE_INSTALL_SYSTEMD_SERVICEDIR=$(systemd_get_systemunitdir)
 		-DEPYTHON_VERSION="${EPYTHON#python}"
 		-DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PN}-${PVR}"
 		-DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
@@ -356,13 +366,15 @@ src_install() {
 
 		systemd_install_serviced "${FILESDIR}/ceph-osd_at.service.conf" \
 			"ceph-osd@.service"
+
 	fi
 
 	udev_dorules udev/*.rules
+	newtmpfiles "${FILESDIR}"/ceph-tmpfilesd ${PN}.conf
 
 	readme.gentoo_create_doc
 
-	python_setup 'python3*'
+	python_setup
 
 	# bug #630232
 	sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \

diff --git a/sys-cluster/ceph/files/ceph-15.2.2-systemd-unit.patch b/sys-cluster/ceph/files/ceph-15.2.2-systemd-unit.patch
new file mode 100644
index 00000000000..fdd3a6ac2ac
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-15.2.2-systemd-unit.patch
@@ -0,0 +1,12 @@
+diff -ur ceph-15.2.2/systemd/ceph-osd@.service.in ceph-15.2.2.af/systemd/ceph-osd@.service.in
+--- ceph-15.2.2/systemd/ceph-osd@.service.in    2020-05-18 16:25:12.000000000 +0000
++++ ceph-15.2.2.af/systemd/ceph-osd@.service.in 2020-05-21 21:20:58.318655944 +0000
+@@ -10,7 +10,7 @@
+ EnvironmentFile=-@SYSTEMD_ENV_FILE@
+ Environment=CLUSTER=ceph
+ ExecStart=/usr/bin/ceph-osd -f --cluster ${CLUSTER} --id %i --setuser ceph --setgroup ceph
+-ExecStartPre=/usr/lib/ceph/ceph-osd-prestart.sh --cluster ${CLUSTER} --id %i
++ExecStartPre=/usr/libexec/ceph/ceph-osd-prestart.sh --cluster ${CLUSTER} --id %i
+ ExecReload=/bin/kill -HUP $MAINPID
+ LockPersonality=true
+ MemoryDenyWriteExecute=true

diff --git a/sys-cluster/ceph/files/ceph-tmpfilesd b/sys-cluster/ceph/files/ceph-tmpfilesd
new file mode 100644
index 00000000000..2ded82f5f65
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-tmpfilesd
@@ -0,0 +1 @@
+d /run/ceph 0770 ceph ceph -

diff --git a/sys-cluster/ceph/metadata.xml b/sys-cluster/ceph/metadata.xml
index dcf0de05f77..b29a383d9b5 100644
--- a/sys-cluster/ceph/metadata.xml
+++ b/sys-cluster/ceph/metadata.xml
@@ -20,6 +20,7 @@
     <flag name="babeltrace">Add support for LTTng babeltrace</flag>
     <flag name="cephfs">Build support for cephfs, a POSIX compatible filesystem built on top of ceph</flag>
     <flag name="dpdk">Enable DPDK messaging</flag>
+    <flag name="diskprediction">Enable local diskprediction module to predict disk failures</flag>
     <flag name="spdk">Enable SPDK user-mode storage driver toolkit</flag>
     <flag name="fuse">Build fuse client</flag>
     <flag name="grafana">Install grafana dashboards</flag>


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2020-06-01 19:14 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2020-06-01 19:14 UTC (permalink / raw
  To: gentoo-commits

commit:     8f0f8a7ad1f00acef2416ea918d0b6ed978a8e63
Author:     Patrick McLean <patrick.mclean <AT> sony <DOT> com>
AuthorDate: Mon Jun  1 19:14:09 2020 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Mon Jun  1 19:14:48 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8f0f8a7a

sys-cluster/ceph-15.2.3: Fix build with USE=spdk

Copyright: Sony Interactive Entertainment Inc.
Package-Manager: Portage-2.3.100, Repoman-2.3.22
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 sys-cluster/ceph/ceph-15.2.3.ebuild                   | 1 +
 sys-cluster/ceph/files/ceph-15.2.3-spdk-compile.patch | 9 +++++++++
 2 files changed, 10 insertions(+)

diff --git a/sys-cluster/ceph/ceph-15.2.3.ebuild b/sys-cluster/ceph/ceph-15.2.3.ebuild
index 6b0fa3f4c3b..dc22c44fea6 100644
--- a/sys-cluster/ceph/ceph-15.2.3.ebuild
+++ b/sys-cluster/ceph/ceph-15.2.3.ebuild
@@ -194,6 +194,7 @@ PATCHES=(
 	"${FILESDIR}/ceph-14.2.0-cython-0.29.patch"
 	"${FILESDIR}/ceph-15.2.0-rocksdb-cmake.patch"
 	"${FILESDIR}/ceph-15.2.2-systemd-unit.patch"
+	"${FILESDIR}/ceph-15.2.3-spdk-compile.patch"
 )
 
 check-reqs_export_vars() {

diff --git a/sys-cluster/ceph/files/ceph-15.2.3-spdk-compile.patch b/sys-cluster/ceph/files/ceph-15.2.3-spdk-compile.patch
new file mode 100644
index 00000000000..3ea6eadbb86
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-15.2.3-spdk-compile.patch
@@ -0,0 +1,9 @@
+--- ceph-15.2.3.orig/cmake/modules/BuildSPDK.cmake	2020-05-29 09:24:50.000000000 -0700
++++ ceph-15.2.3/cmake/modules/BuildSPDK.cmake	2020-06-01 10:36:14.629306433 -0700
+@@ -1,5 +1,5 @@
+ macro(build_spdk)
+-  set(DPDK_DIR ${CMAKE_BINARY_DIR}/src/dpdk)
++  set(DPDK_DIR ${CMAKE_SOURCE_DIR}/src/dpdk)
+   if(NOT TARGET dpdk-ext)
+     include(BuildDPDK)
+     build_dpdk(${DPDK_DIR})


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2020-06-27 20:00 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2020-06-27 20:00 UTC (permalink / raw
  To: gentoo-commits

commit:     e98b9305296a9f98342559a50e29834ad12b1c0b
Author:     Patrick McLean <patrick.mclean <AT> sony <DOT> com>
AuthorDate: Sat Jun 27 07:47:57 2020 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Sat Jun 27 19:59:14 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e98b9305

sys-cluster/ceph-14.2.10: Version bump

This release includes the diskprediction code, so add the USE flag for
that. Also move from cmake-utils.eclass to cmake.eclass.

Copyright: Sony Interactive Entertainment Inc.
Package-Manager: Portage-2.3.103, Repoman-2.3.23
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 sys-cluster/ceph/Manifest                          |   1 +
 sys-cluster/ceph/ceph-14.2.10.ebuild               | 392 +++++++++++++++++++++
 .../ceph/files/ceph-14.2.10-missing-includes.patch |  26 ++
 .../ceph/files/ceph-14.2.10-python-warnings.patch  |  31 ++
 4 files changed, 450 insertions(+)

diff --git a/sys-cluster/ceph/Manifest b/sys-cluster/ceph/Manifest
index f3022f2a86f..8c2cc97fb01 100644
--- a/sys-cluster/ceph/Manifest
+++ b/sys-cluster/ceph/Manifest
@@ -1,3 +1,4 @@
 DIST ceph-12.2.12.tar.gz 77467762 BLAKE2B a5224432121db9ef49c1e22771d847399df2f7881cd9c2e185eca12096efb79d21578659d248eb5bae678924983d57452d370e23ab7e78663764d7bea834a461 SHA512 e694c9a8c1f9836c08fb74b54423bdc16d4900252e34643c56cf1a615d4dacddfb13df06a6a9f68bb9d438f5f07069ed358f9fa4b5a362640a3046f9c7722dcc
+DIST ceph-14.2.10.tar.gz 129274835 BLAKE2B b3f14897db478418b982281bf367a0c497cdfa8991a73e277b5582663c159550f3eff5bdc78a506e267eae8d59c59b19b8a9294802cb532fd7dfa9f612ed0e53 SHA512 5ec95b933a360183f89404446c5e1912a81853dfb1134bb8868bc6675a0185420c2bf1eba72308014a008f617aeb8733d51eb8c8eea5d472c32514cf483f4ea6
 DIST ceph-14.2.9.tar.gz 128419205 BLAKE2B bace7469d9066a3da7320a0eb894013fae5b7139c15679dddae7df28c593a1029956234a1ba0d3bbdf1639e3a975aa776c695efefb915113a16099c80d563675 SHA512 0a26372d0037c32fe1d24be880e272fcce5089b02adfb0e791e0406155f6e66c913fa43762028f49c1fa3f30c6c8d819c521dd11702a37cc7040dfd3097c068e
 DIST ceph-15.2.3.tar.gz 147807898 BLAKE2B ff5e9707cf05e22af718ee177cce87ea9913b1b78d7ba17589f2c7fdaea0a7a27dd1f7b8e9947a095ed74106b6b19258fd8be259100624032f3a6e8ce5243390 SHA512 0378365863bcb86e62d64a2eff91e39a91218eabfb126dae74185e1fe52b21a3d5113f885ddb8076551f2f069435e18b24417bf70f29f23e21fac7065e412912

diff --git a/sys-cluster/ceph/ceph-14.2.10.ebuild b/sys-cluster/ceph/ceph-14.2.10.ebuild
new file mode 100644
index 00000000000..b9bca5dfb76
--- /dev/null
+++ b/sys-cluster/ceph/ceph-14.2.10.ebuild
@@ -0,0 +1,392 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{6,7,8} )
+CMAKE_MAKEFILE_GENERATOR=emake
+
+DISTUTILS_OPTIONAL=1
+
+inherit check-reqs bash-completion-r1 cmake-utils distutils-r1 flag-o-matic \
+		multiprocessing python-r1 udev readme.gentoo-r1 toolchain-funcs \
+		systemd tmpfiles
+
+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 ~ppc64"
+fi
+
+DESCRIPTION="Ceph distributed filesystem"
+HOMEPAGE="https://ceph.com/"
+
+LICENSE="Apache-2.0 LGPL-2.1 CC-BY-SA-3.0 GPL-2 GPL-2+ LGPL-2+ LGPL-2.1 LGPL-3 GPL-3 BSD Boost-1.0 MIT public-domain"
+SLOT="0"
+
+CPU_FLAGS_X86=(sse{,2,3,4_1,4_2} ssse3)
+
+IUSE="babeltrace +cephfs custom-cflags diskprediction dpdk fuse grafana jemalloc
+	kafka kerberos ldap libressl lttng +mgr numa +openssl rabbitmq +radosgw +ssl
+	spdk system-boost systemd +tcmalloc test xfs zfs"
+IUSE+=" $(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})"
+
+COMMON_DEPEND="
+	acct-group/ceph
+	acct-user/ceph
+	virtual/libudev:=
+	app-arch/bzip2:=
+	app-arch/lz4:=
+	app-arch/snappy:=
+	app-arch/zstd:=
+	app-shells/bash:0
+	app-misc/jq:=
+	dev-libs/crypto++:=
+	dev-libs/leveldb:=[snappy,tcmalloc(-)?]
+	dev-libs/libaio:=
+	dev-libs/libnl:3=
+	dev-libs/libxml2:=
+	dev-libs/xmlsec:=[!openssl?,!libressl?]
+	dev-cpp/yaml-cpp:=
+	dev-libs/nss:=
+	dev-libs/protobuf:=
+	net-dns/c-ares:=
+	net-libs/gnutls:=
+	sys-auth/oath-toolkit:=
+	sys-apps/coreutils
+	sys-apps/grep
+	sys-apps/hwloc:=
+	sys-apps/keyutils:=
+	sys-apps/util-linux:=
+	sys-apps/sed
+	sys-apps/util-linux
+	sys-libs/libcap-ng:=
+	sys-libs/ncurses:0=
+	sys-libs/zlib:=
+	sys-process/numactl:=
+	x11-libs/libpciaccess:=
+	babeltrace? ( dev-util/babeltrace )
+	fuse? ( sys-fs/fuse:0= )
+	jemalloc? ( dev-libs/jemalloc:= )
+	!jemalloc? ( >=dev-util/google-perftools-2.6.1:= )
+	kafka? ( dev-libs/librdkafka:= )
+	kerberos? ( virtual/krb5 )
+	ldap? ( net-nds/openldap:= )
+	lttng? ( dev-util/lttng-ust:= )
+	rabbitmq? ( net-libs/rabbitmq-c:= )
+	radosgw? (
+		dev-libs/expat:=
+		openssl? (
+			dev-libs/openssl:=
+			net-misc/curl:=[curl_ssl_openssl]
+		)
+		libressl? (
+			dev-libs/libressl:=
+			net-misc/curl:=[curl_ssl_libressl]
+		)
+	)
+	ssl? (
+		openssl? ( dev-libs/openssl:= )
+		libressl? ( dev-libs/libressl:= )
+	)
+	system-boost? ( =dev-libs/boost-1.72*[threads,context,python,${PYTHON_USEDEP}] )
+	xfs? ( sys-fs/xfsprogs:= )
+	zfs? ( sys-fs/zfs:= )
+	${PYTHON_DEPS}
+"
+BDEPEND="
+	amd64? ( dev-lang/yasm )
+	x86? ( dev-lang/yasm )
+	app-arch/cpio
+	>=dev-util/cmake-3.5.0
+	dev-python/cython[${PYTHON_USEDEP}]
+	dev-python/sphinx
+	dev-util/cunit
+	dev-util/gperf
+	dev-util/ragel
+	dev-util/valgrind
+	sys-apps/coreutils
+	sys-apps/findutils
+	sys-apps/grep
+	sys-apps/sed
+	sys-apps/which
+	sys-devel/bc
+	sys-devel/patch
+	virtual/pkgconfig
+	test? (
+		dev-python/coverage[${PYTHON_USEDEP}]
+		dev-python/virtualenv[${PYTHON_USEDEP}]
+		dev-python/requests-mock[${PYTHON_USEDEP}]
+		sys-apps/grep[pcre]
+		sys-fs/btrfs-progs
+	)
+"
+RDEPEND="${COMMON_DEPEND}
+	app-admin/sudo
+	net-misc/socat
+	sys-apps/gptfdisk
+	>=sys-apps/smartmontools-7.0
+	sys-block/parted
+	sys-fs/cryptsetup
+	sys-fs/lsscsi
+	sys-fs/lvm2[-device-mapper-only(-)]
+	virtual/awk
+	dev-python/bcrypt[${PYTHON_USEDEP}]
+	dev-python/cherrypy[${PYTHON_USEDEP}]
+	dev-python/flask[${PYTHON_USEDEP}]
+	dev-python/jinja[${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}]
+	mgr? (
+		dev-python/more-itertools[${PYTHON_USEDEP}]
+		dev-python/numpy[${PYTHON_USEDEP}]
+		dev-python/pyjwt[${PYTHON_USEDEP}]
+		dev-python/pyyaml[${PYTHON_USEDEP}]
+		dev-python/routes[${PYTHON_USEDEP}]
+		diskprediction? (
+			$(python_gen_cond_dep '<sci-libs/scipy-1.4.0[${PYTHON_USEDEP}]' python3_{6,7})
+		)
+		sci-libs/scikits_learn[${PYTHON_USEDEP}]
+		dev-python/six[${PYTHON_USEDEP}]
+	)
+"
+# diskprediction needs older scipy not compatible with py38
+# bug #724438
+REQUIRED_USE="
+	${PYTHON_REQUIRED_USE}
+	?? ( jemalloc tcmalloc )
+	^^ ( openssl libressl )
+	diskprediction? ( mgr !python_targets_python3_8 )
+	kafka? ( radosgw )
+	mgr? ( cephfs )
+	rabbitmq? ( radosgw )
+"
+RESTRICT="!test? ( test )"
+
+# the tests need root access
+RESTRICT="test? ( userpriv )"
+
+# distribution tarball does not include everything needed for tests
+RESTRICT+=" test"
+
+# false positives unless all USE flags are on
+CMAKE_WARN_UNUSED_CLI="no"
+
+PATCHES=(
+	"${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch"
+	"${FILESDIR}/ceph-14.2.0-cflags.patch"
+	"${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch"
+	"${FILESDIR}/ceph-13.2.0-cflags.patch"
+	"${FILESDIR}/ceph-14.2.0-mgr-python-version.patch"
+	"${FILESDIR}/ceph-14.2.5-no-virtualenvs.patch"
+	"${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
+	"${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch"
+	"${FILESDIR}/ceph-14.2.0-link-crc32-statically.patch"
+	"${FILESDIR}/ceph-14.2.0-cython-0.29.patch"
+	"${FILESDIR}/ceph-14.2.3-dpdk-compile-fix-1.patch"
+	"${FILESDIR}/ceph-14.2.4-python-executable.patch"
+	"${FILESDIR}/ceph-14.2.4-undefined-behaviour.patch"
+	"${FILESDIR}/ceph-14.2.10-missing-includes.patch"
+)
+
+check-reqs_export_vars() {
+	CHECKREQS_DISK_BUILD="5200M"
+	CHECKREQS_DISK_USR="510M"
+
+	export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR
+}
+
+pkg_pretend() {
+	check-reqs_export_vars
+	check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+	python_setup
+	check-reqs_export_vars
+	check-reqs_pkg_setup
+}
+
+src_prepare() {
+	cmake-utils_src_prepare
+
+	if use system-boost; then
+		find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \
+			| xargs --null sed -r \
+			-e 's|Boost::|boost_|g' \
+			-e 's|Boost_|boost_|g' \
+			-e 's|[Bb]oost_boost|boost_system|g' -i || die
+	fi
+
+	sed -i -r "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \
+		src/bash_completion/CMakeLists.txt || die
+
+	if ! use diskprediction; then
+		rm -rf src/pybind/mgr/diskprediction_local || die
+	fi
+
+	# remove tests that need root access
+	rm src/test/cli/ceph-authtool/cap*.t || die
+}
+
+ceph_src_configure() {
+	local flag
+	local mycmakeargs=(
+		-DWITH_BABELTRACE=$(usex babeltrace)
+		-DWITH_CEPHFS=$(usex cephfs)
+		-DWITH_CEPHFS_SHELL=$(usex cephfs)
+		-DWITH_DPDK=$(usex dpdk)
+		-DWITH_DPDK=$(usex spdk)
+		-DWITH_FUSE=$(usex fuse)
+		-DWITH_LTTNG=$(usex lttng)
+		-DWITH_GSSAPI=$(usex kerberos)
+		-DWITH_GRAFANA=$(usex grafana)
+		-DWITH_MGR=$(usex mgr)
+		-DWITH_MGR_DASHBOARD_FRONTEND=OFF
+		-DWITH_NUMA=$(usex numa)
+		-DWITH_OPENLDAP=$(usex ldap)
+		-DWITH_PYTHON3=3
+		-DWITH_RADOSGW=$(usex radosgw)
+		-DWITH_RADOSGW_AMQP_ENDPOINT=$(usex rabbitmq)
+		-DWITH_RADOSGW_KAFKA_ENDPOINT=$(usex kafka)
+		-DWITH_SSL=$(usex ssl)
+		-DWITH_SYSTEMD=$(usex systemd)
+		-DWITH_TESTS=$(usex test)
+		-DWITH_XFS=$(usex xfs)
+		-DWITH_ZFS=$(usex zfs)
+		-DENABLE_SHARED="ON"
+		-DALLOCATOR=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')")
+		-DWITH_SYSTEM_BOOST=$(usex system-boost)
+		-DBOOST_J=$(makeopts_jobs)
+		-DWITH_RDMA=OFF
+		-DWITH_TBB=OFF
+		-DSYSTEMD_UNITDIR=$(systemd_get_systemunitdir)
+		-DCMAKE_INSTALL_SYSTEMD_SERVICEDIR=$(systemd_get_systemunitdir)
+		-DEPYTHON_VERSION="${EPYTHON#python}"
+		-DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PN}-${PVR}"
+		-DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
+		-Wno-dev
+	)
+	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" \
+		|| die "failed to remove cmake cache"
+
+	cmake-utils_src_configure
+
+	# bug #630232
+	sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \
+		"${BUILD_DIR:-${S}}"/include/acconfig.h \
+		|| die "sed failed"
+}
+
+src_configure() {
+	use custom-cflags || strip-flags
+	ceph_src_configure
+}
+
+python_compile() {
+	local CMAKE_USE_DIR="${S}"
+	ceph_src_configure
+
+	pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
+	emake VERBOSE=1 clean
+	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 VERBOSE=1 all
+
+	# we have to do this here to prevent from building everything multiple times
+	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="${ED}" emake VERBOSE=1 install
+	popd >/dev/null || die
+
+	python_optimize
+}
+
+src_install() {
+	cmake-utils_src_install
+	python_foreach_impl python_install
+
+	find "${ED}" -name '*.la' -type f -delete || die
+
+	exeinto /usr/$(get_libdir)/ceph
+	newexe "${BUILD_DIR}/bin/init-ceph" init-ceph
+
+	insinto /etc/logrotate.d/
+	newins "${FILESDIR}"/ceph.logrotate-r2 ${PN}
+
+	keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat
+
+	fowners -R ceph:ceph /var/log/ceph
+
+	newinitd "${FILESDIR}/rbdmap.initd" rbdmap
+	newinitd "${FILESDIR}/${PN}.initd-r12" ${PN}
+	newconfd "${FILESDIR}/${PN}.confd-r5" ${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
+	newtmpfiles "${FILESDIR}"/ceph-tmpfilesd ${PN}.conf
+
+	readme.gentoo_create_doc
+
+	python_setup
+
+	# bug #630232
+	sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \
+		|| die "sed failed"
+
+	python_fix_shebang "${ED}"/usr/{,s}bin/
+
+	# python_fix_shebang apparently is not idempotent
+	local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]'
+	grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \
+		| xargs --null --no-run-if-empty -- sed -i -r  "s:${shebang_regex}:\1:" || die
+
+	local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* )
+	dostrip -x "${rados_classes[@]#${ED}}"
+}
+
+pkg_postinst() {
+	readme.gentoo_print_elog
+}

diff --git a/sys-cluster/ceph/files/ceph-14.2.10-missing-includes.patch b/sys-cluster/ceph/files/ceph-14.2.10-missing-includes.patch
new file mode 100644
index 00000000000..59663028cfa
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-14.2.10-missing-includes.patch
@@ -0,0 +1,26 @@
+diff --git a/src/common/bit_str.h b/src/common/bit_str.h
+index c4c24f6a75..b5631e8b84 100644
+--- a/src/common/bit_str.h
++++ b/src/common/bit_str.h
+@@ -14,6 +14,8 @@
+ #ifndef CEPH_COMMON_BIT_STR_H
+ #define CEPH_COMMON_BIT_STR_H
+ 
++#include <cstdint>
++#include <ostream>
+ #include <functional>
+ 
+ namespace ceph {
+diff --git a/src/librbd/api/PoolMetadata.h b/src/librbd/api/PoolMetadata.h
+index 977ce3638d..8d982879aa 100644
+--- a/src/librbd/api/PoolMetadata.h
++++ b/src/librbd/api/PoolMetadata.h
+@@ -8,6 +8,8 @@
+ #include "include/rados/librados_fwd.hpp"
+ 
+ #include <map>
++#include <string>
++#include <cstdint>
+ 
+ namespace librbd {
+ 

diff --git a/sys-cluster/ceph/files/ceph-14.2.10-python-warnings.patch b/sys-cluster/ceph/files/ceph-14.2.10-python-warnings.patch
new file mode 100644
index 00000000000..8be3e509a1c
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-14.2.10-python-warnings.patch
@@ -0,0 +1,31 @@
+diff --git a/src/pybind/ceph_volume_client.py b/src/pybind/ceph_volume_client.py
+index 7d7e5b49e4..9a1ba80e69 100644
+--- a/src/pybind/ceph_volume_client.py
++++ b/src/pybind/ceph_volume_client.py
+@@ -355,7 +355,7 @@ class CephFSVolumeClient(object):
+                 continue
+ 
+             (group_id, volume_id) = volume.split('/')
+-            group_id = group_id if group_id is not 'None' else None
++            group_id = group_id if group_id != 'None' else None
+             volume_path = VolumePath(group_id, volume_id)
+             access_level = volume_data['access_level']
+ 
+@@ -378,7 +378,7 @@ class CephFSVolumeClient(object):
+                 if vol_meta['auths'][auth_id] == want_auth:
+                     continue
+ 
+-                readonly = True if access_level is 'r' else False
++                readonly = True if access_level == 'r' else False
+                 self._authorize_volume(volume_path, auth_id, readonly)
+ 
+             # Recovered from partial auth updates for the auth ID's access
+@@ -1120,7 +1120,7 @@ class CephFSVolumeClient(object):
+ 
+             # Construct auth caps that if present might conflict with the desired
+             # auth caps.
+-            unwanted_access_level = 'r' if want_access_level is 'rw' else 'rw'
++            unwanted_access_level = 'r' if want_access_level == 'rw' else 'rw'
+             unwanted_mds_cap = 'allow {0} path={1}'.format(unwanted_access_level, path)
+             if namespace:
+                 unwanted_osd_cap = 'allow {0} pool={1} namespace={2}'.format(


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2020-07-20 20:10 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2020-07-20 20:10 UTC (permalink / raw
  To: gentoo-commits

commit:     2eae111954e16b5efa850296d4ebe53a13692c71
Author:     Patrick McLean <patrick.mclean <AT> sony <DOT> com>
AuthorDate: Mon Jul 20 20:10:41 2020 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Mon Jul 20 20:10:41 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2eae1119

sys-cluster/ceph: Use RelWithDebInfo cmake build type (bug 733316)

Closes: https://bugs.gentoo.org/733316
Copyright: Sony Interactive Entertainment Inc.
Package-Manager: Portage-2.3.103, Repoman-2.3.23
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 sys-cluster/ceph/{ceph-14.2.10.ebuild => ceph-14.2.10-r1.ebuild} | 3 +++
 sys-cluster/ceph/{ceph-15.2.4.ebuild => ceph-15.2.4-r1.ebuild}   | 3 +++
 sys-cluster/ceph/files/ceph-14.2.10-missing-includes.patch       | 2 +-
 3 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/sys-cluster/ceph/ceph-14.2.10.ebuild b/sys-cluster/ceph/ceph-14.2.10-r1.ebuild
similarity index 99%
rename from sys-cluster/ceph/ceph-14.2.10.ebuild
rename to sys-cluster/ceph/ceph-14.2.10-r1.ebuild
index f335155f0e1..a074166f6b2 100644
--- a/sys-cluster/ceph/ceph-14.2.10.ebuild
+++ b/sys-cluster/ceph/ceph-14.2.10-r1.ebuild
@@ -173,6 +173,9 @@ RESTRICT="test? ( userpriv )"
 # distribution tarball does not include everything needed for tests
 RESTRICT+=" test"
 
+# create a non-debug release
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
 # false positives unless all USE flags are on
 CMAKE_WARN_UNUSED_CLI=no
 

diff --git a/sys-cluster/ceph/ceph-15.2.4.ebuild b/sys-cluster/ceph/ceph-15.2.4-r1.ebuild
similarity index 99%
rename from sys-cluster/ceph/ceph-15.2.4.ebuild
rename to sys-cluster/ceph/ceph-15.2.4-r1.ebuild
index dc446889a8f..78786763b46 100644
--- a/sys-cluster/ceph/ceph-15.2.4.ebuild
+++ b/sys-cluster/ceph/ceph-15.2.4-r1.ebuild
@@ -178,6 +178,9 @@ RESTRICT="test? ( userpriv )"
 # distribution tarball does not include everything needed for tests
 RESTRICT+=" test"
 
+# create a non-debug release
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
 # false positives unless all USE flags are on
 CMAKE_WARN_UNUSED_CLI=no
 

diff --git a/sys-cluster/ceph/files/ceph-14.2.10-missing-includes.patch b/sys-cluster/ceph/files/ceph-14.2.10-missing-includes.patch
index 59663028cfa..aaa6ee080a3 100644
--- a/sys-cluster/ceph/files/ceph-14.2.10-missing-includes.patch
+++ b/sys-cluster/ceph/files/ceph-14.2.10-missing-includes.patch
@@ -7,7 +7,7 @@ index c4c24f6a75..b5631e8b84 100644
  #define CEPH_COMMON_BIT_STR_H
  
 +#include <cstdint>
-+#include <ostream>
++#include <iosfwd>
  #include <functional>
  
  namespace ceph {


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2020-08-05  0:16 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2020-08-05  0:16 UTC (permalink / raw
  To: gentoo-commits

commit:     113190b93664650497e2a1ee8e503b27ca19a199
Author:     Patrick McLean <patrick.mclean <AT> sony <DOT> com>
AuthorDate: Wed Aug  5 00:14:59 2020 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Wed Aug  5 00:16:30 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=113190b9

sys-cluster/ceph-15.2.4-r3: revbump, fix deps, fix build with USE=uring

Copyright: Sony Interactive Entertainment Inc.
Package-Manager: Portage-3.0.1, Repoman-2.3.23
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 ...ceph-15.2.4-r2.ebuild => ceph-15.2.4-r3.ebuild} |  5 +-
 .../ceph/files/ceph-15.2.4-system-uring.patch      | 66 ++++++++++++++++++++++
 2 files changed, 69 insertions(+), 2 deletions(-)

diff --git a/sys-cluster/ceph/ceph-15.2.4-r2.ebuild b/sys-cluster/ceph/ceph-15.2.4-r3.ebuild
similarity index 99%
rename from sys-cluster/ceph/ceph-15.2.4-r2.ebuild
rename to sys-cluster/ceph/ceph-15.2.4-r3.ebuild
index b497a432952..a81fe959935 100644
--- a/sys-cluster/ceph/ceph-15.2.4-r2.ebuild
+++ b/sys-cluster/ceph/ceph-15.2.4-r3.ebuild
@@ -32,7 +32,7 @@ IUSE="babeltrace +cephfs custom-cflags diskprediction dpdk fuse grafana jemalloc
 	rbd-rwl +ssl spdk system-boost systemd +tcmalloc test uring xfs zfs"
 IUSE+=" $(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})"
 
-COMMON_DEPEND="
+DEPEND="
 	acct-group/ceph
 	acct-user/ceph
 	virtual/libudev:=
@@ -124,7 +124,7 @@ BDEPEND="
 		sys-fs/btrfs-progs
 	)
 "
-RDEPEND="${COMMON_DEPEND}
+RDEPEND="${DEPEND}
 	app-admin/sudo
 	net-misc/socat
 	sys-apps/gptfdisk
@@ -198,6 +198,7 @@ PATCHES=(
 	"${FILESDIR}/ceph-15.2.2-systemd-unit.patch"
 	"${FILESDIR}/ceph-15.2.3-spdk-compile.patch"
 	"${FILESDIR}/ceph-14.2.10-python-warnings.patch"
+	"${FILESDIR}/ceph-15.2.4-system-uring.patch"
 )
 
 check-reqs_export_vars() {

diff --git a/sys-cluster/ceph/files/ceph-15.2.4-system-uring.patch b/sys-cluster/ceph/files/ceph-15.2.4-system-uring.patch
new file mode 100644
index 00000000000..64df81bf97b
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-15.2.4-system-uring.patch
@@ -0,0 +1,66 @@
+diff --git a/src/os/CMakeLists.txt b/src/os/CMakeLists.txt
+index 760244b9b4..7f83923671 100644
+--- a/src/os/CMakeLists.txt
++++ b/src/os/CMakeLists.txt
+@@ -134,27 +134,6 @@ if(WITH_EVENTTRACE)
+ endif()
+ 
+ if(WITH_LIBURING)
+-  include(ExternalProject)
+-  if("${CMAKE_GENERATOR}" MATCHES "Make")
+-    set(make_cmd "$(MAKE)")
+-  else()
+-    set(make_cmd "make")
+-  endif()
+-  ExternalProject_Add(liburing_ext
+-    DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/src/
+-    GIT_REPOSITORY http://git.kernel.dk/liburing
+-    GIT_TAG "4e360f71131918c36774f51688e5c65dea8d43f2"
+-    SOURCE_DIR ${CMAKE_BINARY_DIR}/src/liburing
+-    CONFIGURE_COMMAND <SOURCE_DIR>/configure
+-    BUILD_COMMAND env CC=${CMAKE_C_COMPILER} ${make_cmd} -C src -s
+-    BUILD_IN_SOURCE 1
+-    INSTALL_COMMAND "")
+-  unset(make_cmd)
+-  add_library(liburing STATIC IMPORTED GLOBAL)
+-  add_dependencies(liburing liburing_ext)
+-  set_target_properties(liburing PROPERTIES
+-    IMPORTED_LINK_INTERFACE_LANGUAGES "C"
+-    IMPORTED_LOCATION "${CMAKE_BINARY_DIR}/src/liburing/src/liburing.a")
+-  target_link_libraries(os liburing)
+-  target_include_directories(os SYSTEM PRIVATE "${CMAKE_BINARY_DIR}/src/liburing/src/include")
++  pkg_check_modules(LIBURING REQUIRED IMPORTED_TARGET liburing)
++  target_link_libraries(os uring)
+ endif(WITH_LIBURING)
+diff --git a/src/os/bluestore/io_uring.cc b/src/os/bluestore/io_uring.cc
+index 54fa0f9535..4ba83cf172 100644
+--- a/src/os/bluestore/io_uring.cc
++++ b/src/os/bluestore/io_uring.cc
+@@ -7,6 +7,8 @@
+ 
+ #include "liburing.h"
+ #include <sys/epoll.h>
++#include <unistd.h>
++#include <sys/syscall.h>
+ 
+ /* Options */
+ 
+@@ -134,8 +136,7 @@ int ioring_queue_t::init(std::vector<int> &fds)
+   if (ret < 0)
+     return ret;
+ 
+-  ret = io_uring_register(d->io_uring.ring_fd, IORING_REGISTER_FILES,
+-			  &fds[0], fds.size());
++  ret = io_uring_register_files(&d->io_uring, &fds[0], fds.size());
+   if (ret < 0) {
+     ret = -errno;
+     goto close_ring_fd;
+@@ -214,7 +215,7 @@ bool ioring_queue_t::supported()
+   struct io_uring_params p;
+ 
+   memset(&p, 0, sizeof(p));
+-  int fd = io_uring_setup(16, &p);
++  int fd = syscall(SYS_io_uring_setup, 16, &p);
+   if (fd < 0)
+     return false;
+ 


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2020-10-02 11:37 Vadim Misbakh-Soloviov
  0 siblings, 0 replies; 48+ messages in thread
From: Vadim Misbakh-Soloviov @ 2020-10-02 11:37 UTC (permalink / raw
  To: gentoo-commits

commit:     8430cafd2d19ed29b89829b7d61a033dbf55005b
Author:     Vadim Misbakh-Soloviov <mva <AT> gentoo <DOT> org>
AuthorDate: Fri Oct  2 11:37:33 2020 +0000
Commit:     Vadim Misbakh-Soloviov <mva <AT> gentoo <DOT> org>
CommitDate: Fri Oct  2 11:37:33 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8430cafd

sys-cluster/ceph: fix building with glibc-2.32

Bug: https://bugs.gentoo.org/739042
Package-Manager: Portage-3.0.6, Repoman-3.0.1
Signed-off-by: Vadim Misbakh-Soloviov <mva <AT> gentoo.org>

 sys-cluster/ceph/ceph-15.2.4-r3.ebuild              |  1 +
 sys-cluster/ceph/ceph-15.2.5-r1.ebuild              |  1 +
 sys-cluster/ceph/files/ceph-15.2.5-glibc-2.32.patch | 15 +++++++++++++++
 3 files changed, 17 insertions(+)

diff --git a/sys-cluster/ceph/ceph-15.2.4-r3.ebuild b/sys-cluster/ceph/ceph-15.2.4-r3.ebuild
index d3903349156..5a32d2f3787 100644
--- a/sys-cluster/ceph/ceph-15.2.4-r3.ebuild
+++ b/sys-cluster/ceph/ceph-15.2.4-r3.ebuild
@@ -199,6 +199,7 @@ PATCHES=(
 	"${FILESDIR}/ceph-15.2.3-spdk-compile.patch"
 	"${FILESDIR}/ceph-14.2.10-python-warnings.patch"
 	"${FILESDIR}/ceph-15.2.4-system-uring.patch"
+	"${FILESDIR}/ceph-15.2.5-glibc-2.32.patch"
 )
 
 check-reqs_export_vars() {

diff --git a/sys-cluster/ceph/ceph-15.2.5-r1.ebuild b/sys-cluster/ceph/ceph-15.2.5-r1.ebuild
index e86923bb252..ace42c44650 100644
--- a/sys-cluster/ceph/ceph-15.2.5-r1.ebuild
+++ b/sys-cluster/ceph/ceph-15.2.5-r1.ebuild
@@ -201,6 +201,7 @@ PATCHES=(
 	"${FILESDIR}/ceph-15.2.4-system-uring.patch"
 	"${FILESDIR}/ceph-15.2.5-missing-includes.patch"
 	"${FILESDIR}/ceph-15.2.5-systemd-unit-fix.patch"
+	"${FILESDIR}/ceph-15.2.5-glibc-2.32.patch"
 )
 
 check-reqs_export_vars() {

diff --git a/sys-cluster/ceph/files/ceph-15.2.5-glibc-2.32.patch b/sys-cluster/ceph/files/ceph-15.2.5-glibc-2.32.patch
new file mode 100644
index 00000000000..f8f7fad8b65
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-15.2.5-glibc-2.32.patch
@@ -0,0 +1,15 @@
+diff -NaurBwdp a/src/global/signal_handler.h src/global/b/signal_handler.h
+--- a/src/global/signal_handler.h	2020-10-01 03:15:48.208164979 +0700
++++ b/src/global/signal_handler.h	2020-10-01 03:15:40.655244081 +0700
+@@ -20,11 +20,7 @@
+ 
+ typedef void (*signal_handler_t)(int);
+ 
+-#ifndef HAVE_REENTRANT_STRSIGNAL
+-# define sig_str(signum) sys_siglist[signum]
+-#else
+ # define sig_str(signum) strsignal(signum)
+-#endif
+ 
+ void install_sighandler(int signum, signal_handler_t handler, int flags);
+ 


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2021-02-26  0:44 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2021-02-26  0:44 UTC (permalink / raw
  To: gentoo-commits

commit:     113ee30b5fbc92ced3160824d5d7c0dd2881e40a
Author:     Patrick McLean <patrick.mclean <AT> sony <DOT> com>
AuthorDate: Fri Feb 26 00:35:22 2021 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Fri Feb 26 00:44:08 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=113ee30b

sys-cluster/ceph-15.2.9: Version bump

- Add patch to avoid SSE 4.1 functions when SSE 4.1 is disabled (bug
  #701618)
- Don't call objdump directly (bug #733814)
- Drop libressl support (closes bug #724522)
- Add a dep on the new pmdk package (bug #52177)

Closes: https://bugs.gentoo.org/701618
Bug: https://bugs.gentoo.org/733814
Closes: https://bugs.gentoo.org/724522
Closes: https://bugs.gentoo.org/752177
Copyright: Sony Interactive Entertainment Inc.
Package-Manager: Portage-3.0.15, Repoman-3.0.2
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 sys-cluster/ceph/Manifest                          |   1 +
 sys-cluster/ceph/ceph-15.2.9.ebuild                | 405 +++++++++++++++++++++
 ...ompile-isal_compress-if-don-t-have-SSE4_1.patch |  22 ++
 sys-cluster/ceph/files/rbdmap.initd-r1             | 122 +++++++
 4 files changed, 550 insertions(+)

diff --git a/sys-cluster/ceph/Manifest b/sys-cluster/ceph/Manifest
index 34eb0178d51..a920d9ddde8 100644
--- a/sys-cluster/ceph/Manifest
+++ b/sys-cluster/ceph/Manifest
@@ -3,3 +3,4 @@ DIST ceph-14.2.13.tar.gz 129255298 BLAKE2B 32d12ede10ff657e9341e2fc31412018041a3
 DIST ceph-14.2.15.tar.gz 129254705 BLAKE2B bb30f04ace31c2175c6678a9f252fc31951fd32f47362fb460ed9b8edec3a6535752d28214530e9b996c384a6e6a23eebce5caa89cb2746a2e258f5a1e1f8a3c SHA512 20ac9244974cc1312b7c642acf00142f5b7f59b09ae338f73b6c8e1ee2054b4ebd62701b18653cc792ca575a77b98644903ebb11bee6a9f1ab3aec6b37a2ef1b
 DIST ceph-14.2.16.tar.gz 130220625 BLAKE2B 30fcf971dd3ebaad8decf0d8d3ade1b554c0f97844db037ca618fd3f133964c08248067dc82c525cbc7deb04949a3a3d07850a5f56e75bcb8e359957d31df85f SHA512 94cab2c9711f5ee2c826ee27b474676c7bb8507c0761ed8d0a520a7e5182c4b353402061ffafbe9b95ac45603f023015752bffbbe0936f4835dfafc9476d3275
 DIST ceph-15.2.8.tar.gz 149565241 BLAKE2B 5b484734c0149aae95a5df2d4481c44e30bf23cdd25aa082084a7a69e5d3398711d45e7d634f98dc99d16a77d85456c13fe3fe0d241087a990e1524664597892 SHA512 66c7322575165b4747955ac9de34f9f9e2d4361c8cd8498819383883045601b92f786c4336c79369d6f019db1c4524c492faa40cdceed7fc1b2b373ca6ab5065
+DIST ceph-15.2.9.tar.gz 149518360 BLAKE2B 3d1d2cf7e356587d77c1ca3e6b05078a3de656607007d38ff0369f5a76fb9e12a3f06929bcbf19ed5d3de7c8e402dc0972c0b3c7245f64e6f5d94a4a78bb1d00 SHA512 1f55b0a13bf06df782831d0c9d5f8617c22442ab97fb186e6ccb08183e02bf1756caf8633fa6b1cf156c3fb7b1bdff90a60a1249adfad0b9450036e2329bf8ff

diff --git a/sys-cluster/ceph/ceph-15.2.9.ebuild b/sys-cluster/ceph/ceph-15.2.9.ebuild
new file mode 100644
index 00000000000..d90c82927bc
--- /dev/null
+++ b/sys-cluster/ceph/ceph-15.2.9.ebuild
@@ -0,0 +1,405 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{7..9} )
+DISTUTILS_USE_SETUPTOOLS=rdepend
+CMAKE_MAKEFILE_GENERATOR=emake
+
+DISTUTILS_OPTIONAL=1
+
+inherit check-reqs bash-completion-r1 cmake distutils-r1 flag-o-matic \
+		python-r1 udev readme.gentoo-r1 toolchain-funcs systemd tmpfiles
+
+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 ~ppc64"
+fi
+
+DESCRIPTION="Ceph distributed filesystem"
+HOMEPAGE="https://ceph.com/"
+
+LICENSE="Apache-2.0 LGPL-2.1 CC-BY-SA-3.0 GPL-2 GPL-2+ LGPL-2+ LGPL-2.1 LGPL-3 GPL-3 BSD Boost-1.0 MIT public-domain"
+SLOT="0"
+
+CPU_FLAGS_X86=(sse{,2,3,4_1,4_2} ssse3)
+
+IUSE="babeltrace +cephfs custom-cflags diskprediction dpdk fuse grafana jemalloc
+	kafka kerberos ldap lttng +mgr numa pmdk rabbitmq +radosgw rbd-rwl +ssl spdk
+	system-boost systemd +tcmalloc test uring xfs zfs"
+IUSE+=" $(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})"
+
+DEPEND="
+	acct-group/ceph
+	acct-user/ceph
+	virtual/libudev:=
+	app-arch/bzip2:=
+	app-arch/lz4:=
+	app-arch/snappy:=
+	app-arch/zstd:=
+	app-shells/bash:0
+	app-misc/jq:=
+	dev-libs/crypto++:=
+	dev-cpp/gflags:=
+	dev-libs/leveldb:=[snappy,tcmalloc(-)?]
+	dev-libs/libaio:=
+	dev-libs/libfmt:=
+	dev-libs/libnl:3=
+	dev-libs/libxml2:=
+	<dev-libs/rocksdb-6.15:=
+	dev-libs/xmlsec:=[openssl]
+	dev-cpp/yaml-cpp:=
+	dev-libs/nss:=
+	dev-libs/protobuf:=
+	net-dns/c-ares:=
+	net-libs/gnutls:=
+	sys-auth/oath-toolkit:=
+	sys-apps/coreutils
+	sys-apps/grep
+	sys-apps/hwloc:=
+	sys-apps/keyutils:=
+	sys-apps/util-linux:=
+	sys-apps/sed
+	sys-apps/util-linux
+	sys-libs/libcap-ng:=
+	sys-libs/ncurses:0=
+	sys-libs/zlib:=
+	sys-process/numactl:=
+	x11-libs/libpciaccess:=
+	babeltrace? ( dev-util/babeltrace )
+	fuse? ( sys-fs/fuse:0= )
+	jemalloc? ( dev-libs/jemalloc:= )
+	!jemalloc? ( >=dev-util/google-perftools-2.6.1:= )
+	kafka? ( dev-libs/librdkafka:= )
+	kerberos? ( virtual/krb5 )
+	ldap? ( net-nds/openldap:= )
+	lttng? ( dev-util/lttng-ust:= )
+	pmdk? ( dev-libs/pmdk:= )
+	rabbitmq? ( net-libs/rabbitmq-c:= )
+	radosgw? (
+		dev-libs/expat:=
+		dev-libs/openssl:=
+		net-misc/curl:=[curl_ssl_openssl]
+	)
+	rbd-rwl? ( dev-libs/pmdk:= )
+	ssl? ( dev-libs/openssl:= )
+	system-boost? ( >=dev-libs/boost-1.72[threads,context,python,${PYTHON_USEDEP}] )
+	uring? ( sys-libs/liburing:= )
+	xfs? ( sys-fs/xfsprogs:= )
+	zfs? ( sys-fs/zfs:= )
+	${PYTHON_DEPS}
+"
+BDEPEND="
+	amd64? ( dev-lang/yasm )
+	x86? ( dev-lang/yasm )
+	app-arch/cpio
+	>=dev-util/cmake-3.5.0
+	dev-python/cython[${PYTHON_USEDEP}]
+	dev-python/sphinx
+	dev-util/cunit
+	dev-util/gperf
+	dev-util/ragel
+	dev-util/valgrind
+	sys-apps/coreutils
+	sys-apps/findutils
+	sys-apps/grep
+	sys-apps/sed
+	sys-apps/which
+	sys-devel/bc
+	sys-devel/patch
+	virtual/pkgconfig
+	test? (
+		dev-python/coverage[${PYTHON_USEDEP}]
+		dev-python/virtualenv[${PYTHON_USEDEP}]
+		dev-python/requests-mock[${PYTHON_USEDEP}]
+		sys-apps/grep[pcre]
+		sys-fs/btrfs-progs
+	)
+"
+RDEPEND="${DEPEND}
+	app-admin/sudo
+	net-misc/socat
+	sys-apps/gptfdisk
+	sys-apps/nvme-cli
+	>=sys-apps/smartmontools-7.0
+	sys-block/parted
+	sys-fs/cryptsetup
+	sys-fs/lsscsi
+	sys-fs/lvm2[-device-mapper-only(-)]
+	virtual/awk
+	dev-python/bcrypt[${PYTHON_USEDEP}]
+	dev-python/cherrypy[${PYTHON_USEDEP}]
+	dev-python/python-dateutil[${PYTHON_USEDEP}]
+	dev-python/flask[${PYTHON_USEDEP}]
+	dev-python/jinja[${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}]
+	mgr? (
+		dev-python/jsonpatch[${PYTHON_USEDEP}]
+		dev-python/more-itertools[${PYTHON_USEDEP}]
+		dev-python/numpy[${PYTHON_USEDEP}]
+		dev-python/pyjwt[${PYTHON_USEDEP}]
+		dev-python/pyyaml[${PYTHON_USEDEP}]
+		dev-python/routes[${PYTHON_USEDEP}]
+		diskprediction? (
+			$(python_gen_cond_dep '<dev-python/scipy-1.4.0[${PYTHON_USEDEP}]' python3_{6,7})
+		)
+		sci-libs/scikit-learn[${PYTHON_USEDEP}]
+		dev-python/six[${PYTHON_USEDEP}]
+	)
+"
+# diskprediction needs older scipy not compatible with py38
+# bug #724438
+REQUIRED_USE="
+	${PYTHON_REQUIRED_USE}
+	?? ( jemalloc tcmalloc )
+	diskprediction? ( mgr !python_targets_python3_8 )
+	kafka? ( radosgw )
+	mgr? ( cephfs )
+	rabbitmq? ( radosgw )
+"
+RESTRICT="!test? ( test )"
+
+# the tests need root access
+RESTRICT="test? ( userpriv )"
+
+# distribution tarball does not include everything needed for tests
+RESTRICT+=" test"
+
+# create a non-debug release
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+# false positives unless all USE flags are on
+CMAKE_WARN_UNUSED_CLI=no
+
+PATCHES=(
+	"${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch"
+	"${FILESDIR}/ceph-14.2.0-cflags.patch"
+	"${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch"
+	"${FILESDIR}/ceph-13.2.0-cflags.patch"
+	"${FILESDIR}/ceph-15.2.0-no-virtualenvs.patch"
+	"${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
+	"${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch"
+	"${FILESDIR}/ceph-14.2.0-link-crc32-statically.patch"
+	"${FILESDIR}/ceph-14.2.0-cython-0.29.patch"
+	"${FILESDIR}/ceph-15.2.0-rocksdb-cmake.patch"
+	"${FILESDIR}/ceph-15.2.2-systemd-unit.patch"
+	"${FILESDIR}/ceph-15.2.3-spdk-compile.patch"
+	"${FILESDIR}/ceph-15.2.4-system-uring.patch"
+	"${FILESDIR}/ceph-15.2.5-missing-includes.patch"
+	"${FILESDIR}/ceph-15.2.9-dont-compile-isal_compress-if-don-t-have-SSE4_1.patch"
+)
+
+check-reqs_export_vars() {
+	CHECKREQS_DISK_BUILD="5400M"
+	CHECKREQS_DISK_USR="510M"
+
+	export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR
+}
+
+pkg_pretend() {
+	check-reqs_export_vars
+	check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+	python_setup
+	check-reqs_export_vars
+	check-reqs_pkg_setup
+}
+
+src_prepare() {
+	cmake_src_prepare
+
+	if use system-boost; then
+		find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \
+			| xargs --null sed -r \
+			-e 's|Boost::|boost_|g' \
+			-e 's|Boost_|boost_|g' \
+			-e 's|[Bb]oost_boost|boost_system|g' -i || die
+	fi
+
+	sed -r -e "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \
+		-i src/bash_completion/CMakeLists.txt || die
+
+	sed  -e "s:objdump -p:$(tc-getOBJDUMP) -p:" -i CMakeLists.txt || die
+
+	if ! use diskprediction; then
+		rm -rf src/pybind/mgr/diskprediction_local || die
+	fi
+
+	# remove tests that need root access
+	rm src/test/cli/ceph-authtool/cap*.t || die
+}
+
+ceph_src_configure() {
+	local flag
+	local mycmakeargs=(
+		-DWITH_BABELTRACE=$(usex babeltrace)
+		-DWITH_BLUESTORE_PMEM=$(usex pmdk)
+		-DWITH_CEPHFS=$(usex cephfs)
+		-DWITH_CEPHFS_SHELL=$(usex cephfs)
+		-DWITH_DPDK=$(usex dpdk)
+		-DWITH_SPDK=$(usex spdk)
+		-DWITH_FUSE=$(usex fuse)
+		-DWITH_LTTNG=$(usex lttng)
+		-DWITH_GSSAPI=$(usex kerberos)
+		-DWITH_GRAFANA=$(usex grafana)
+		-DWITH_MGR=$(usex mgr)
+		-DWITH_MGR_DASHBOARD_FRONTEND=OFF
+		-DWITH_NUMA=$(usex numa)
+		-DWITH_OPENLDAP=$(usex ldap)
+		-DWITH_PYTHON3=3
+		-DWITH_RADOSGW=$(usex radosgw)
+		-DWITH_RADOSGW_AMQP_ENDPOINT=$(usex rabbitmq)
+		-DWITH_RADOSGW_KAFKA_ENDPOINT=$(usex kafka)
+		-DWITH_RBD_RWL=$(usex rbd-rwl)
+		-DWITH_SSL=$(usex ssl)
+		-DWITH_SYSTEMD=$(usex systemd)
+		-DWITH_TESTS=$(usex test)
+		-DWITH_LIBURING=$(usex uring)
+		-DWITH_XFS=$(usex xfs)
+		-DWITH_ZFS=$(usex zfs)
+		-DENABLE_SHARED="ON"
+		-DALLOCATOR=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')")
+		-DWITH_SYSTEM_PMDK=$(usex pmdk 'YES' "$(usex rbd-rwl)")
+		-DWITH_SYSTEM_BOOST=$(usex system-boost)
+		-DBOOST_J=$(makeopts_jobs)
+		-DWITH_SYSTEM_ROCKSDB=ON
+		-DWITH_RDMA=OFF
+		-DWITH_TBB=OFF
+		-DSYSTEMD_UNITDIR=$(systemd_get_systemunitdir)
+		-DCMAKE_INSTALL_SYSTEMD_SERVICEDIR=$(systemd_get_systemunitdir)
+		-DEPYTHON_VERSION="${EPYTHON#python}"
+		-DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PN}-${PVR}"
+		-DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
+		-Wno-dev
+	)
+	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
+
+	# needed for >=glibc-2.32
+	has_version '>=sys-libs/glibc-2.32' && mycmakeargs+=(-DWITH_REENTRANT_STRSIGNAL:BOOL=ON)
+
+	rm -f "${BUILD_DIR:-${S}}/CMakeCache.txt" \
+		|| die "failed to remove cmake cache"
+
+	cmake_src_configure
+
+	# bug #630232
+	sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \
+		"${BUILD_DIR:-${S}}"/include/acconfig.h \
+		|| die "sed failed"
+}
+
+src_configure() {
+	use custom-cflags || strip-flags
+	ceph_src_configure
+}
+
+python_compile() {
+	local CMAKE_USE_DIR="${S}"
+	ceph_src_configure
+
+	pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
+	emake VERBOSE=1 clean
+	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_build VERBOSE=1 all
+
+	# we have to do this here to prevent from building everything multiple times
+	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="${ED}" emake VERBOSE=1 install
+	popd >/dev/null || die
+
+	python_optimize
+}
+
+src_install() {
+	cmake_src_install
+	python_foreach_impl python_install
+
+	find "${ED}" -name '*.la' -type f -delete || die
+
+	exeinto /usr/$(get_libdir)/ceph
+	newexe "${BUILD_DIR}/bin/init-ceph" init-ceph
+
+	insinto /etc/logrotate.d/
+	newins "${FILESDIR}"/ceph.logrotate-r2 ${PN}
+
+	keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat
+
+	fowners -R ceph:ceph /var/log/ceph
+
+	newinitd "${FILESDIR}/rbdmap.initd-r1" rbdmap
+	newinitd "${FILESDIR}/${PN}.initd-r12" ${PN}
+	newconfd "${FILESDIR}/${PN}.confd-r5" ${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
+	newtmpfiles "${FILESDIR}"/ceph-tmpfilesd ${PN}.conf
+
+	readme.gentoo_create_doc
+
+	python_setup
+
+	# bug #630232
+	sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \
+		|| die "sed failed"
+
+	python_fix_shebang "${ED}"/usr/{,s}bin/
+
+	# python_fix_shebang apparently is not idempotent
+	local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]'
+	grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \
+		| xargs --null --no-run-if-empty -- sed -i -r  "s:${shebang_regex}:\1:" || die
+
+	local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* )
+	dostrip -x "${rados_classes[@]#${ED}}"
+}
+
+pkg_postinst() {
+	readme.gentoo_print_elog
+}

diff --git a/sys-cluster/ceph/files/ceph-15.2.9-dont-compile-isal_compress-if-don-t-have-SSE4_1.patch b/sys-cluster/ceph/files/ceph-15.2.9-dont-compile-isal_compress-if-don-t-have-SSE4_1.patch
new file mode 100644
index 00000000000..e9439a63018
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-15.2.9-dont-compile-isal_compress-if-don-t-have-SSE4_1.patch
@@ -0,0 +1,22 @@
+diff --git a/src/compressor/zlib/ZlibCompressor.cc b/src/compressor/zlib/ZlibCompressor.cc
+index e3064d2a21..c86b19da6c 100644
+--- a/src/compressor/zlib/ZlibCompressor.cc
++++ b/src/compressor/zlib/ZlibCompressor.cc
+@@ -107,7 +107,7 @@ int ZlibCompressor::zlib_compress(const bufferlist &in, bufferlist &out)
+   return 0;
+ }
+ 
+-#if __x86_64__ && defined(HAVE_BETTER_YASM_ELF64)
++#if __x86_64__ && defined(HAVE_BETTER_YASM_ELF64) && defined(HAVE_INTEL_SSE4_1)
+ int ZlibCompressor::isal_compress(const bufferlist &in, bufferlist &out)
+ {
+   int ret;
+@@ -167,7 +167,7 @@ int ZlibCompressor::compress(const bufferlist &in, bufferlist &out)
+   if (qat_enabled)
+     return qat_accel.compress(in, out);
+ #endif
+-#if __x86_64__ && defined(HAVE_BETTER_YASM_ELF64)
++#if __x86_64__ && defined(HAVE_BETTER_YASM_ELF64) && defined(HAVE_INTEL_SSE4_1)
+   if (isal_enabled)
+     return isal_compress(in, out);
+   else

diff --git a/sys-cluster/ceph/files/rbdmap.initd-r1 b/sys-cluster/ceph/files/rbdmap.initd-r1
new file mode 100644
index 00000000000..f3f2ea526e4
--- /dev/null
+++ b/sys-cluster/ceph/files/rbdmap.initd-r1
@@ -0,0 +1,122 @@
+#!/sbin/openrc-run
+
+DESC="RBD Mapping:"
+RBDMAPFILE="/etc/ceph/rbdmap"
+
+extra_started_commands="reload"
+
+depend() {
+	need localmount net
+	before netmount
+}
+
+start() {
+
+	if [ ! -f "${RBDMAPFILE}" ]; then
+		ewarn "$DESC : No ${RBDMAPFILE} found."
+		exit 0
+	fi
+
+	RET=0
+	# Read /etc/ceph/rbdmap to create non-existant mapping
+	while read DEV PARAMS; do
+		case "$DEV" in
+			""|\#*)
+			continue
+			;;
+			*/*)
+			;;
+			*)
+			DEV=rbd/$DEV
+			;;
+		esac
+		ebegin "${DESC} '${DEV}'"
+		newrbd=""
+		MAP_RV=""
+		RET_OP=0
+		OIFS=$IFS
+		IFS=','
+		for PARAM in ${PARAMS}; do
+			CMDPARAMS="${CMDPARAMS} --$(printf '%s\n' "${PARAM}" | tr '=' ' ')"
+		done
+		IFS=$OIFS
+		if [ ! -b /dev/rbd/${DEV} ]; then
+			MAP_RV=$(rbd map ${DEV} ${CMDPARAMS} 2>&1)
+			if [ $? -eq 0 ]; then
+				newrbd="yes"
+			else
+				RET=$((${RET}+$?))
+				RET_OP=1
+			fi
+		fi
+		eend ${RET_OP} "${MAP_RV}"
+
+		if [ "$newrbd" ]; then
+			## Mount new rbd
+			MNT_RV=""
+			mount --fake /dev/rbd/${DEV} >>/dev/null 2>&1 \
+			&& MNT_RV=$(mount -vn /dev/rbd/${DEV} 2>&1)
+			[ -n "${MNT_RV}" ] && einfo "mount: ${MNT_RV}"
+
+			## post-mapping
+			if [ -x "/etc/ceph/rbd.d/${DEV}" ]; then
+				einfo "RBD Running post-map hook '/etc/ceph/rbd.d/${DEV}'"
+				/etc/ceph/rbd.d/${DEV} map "/dev/rbd/${DEV}"
+			fi
+		fi
+	done < ${RBDMAPFILE}
+	eend ${RET}
+}
+
+stop() {
+
+	RET=0
+	## Unmount and unmap all rbd devices
+	if ls /dev/rbd[0-9]* >/dev/null 2>&1; then
+		for DEV in /dev/rbd[0-9]*; do
+			## pre-unmapping
+			for L in $(find /dev/rbd -type l); do
+				LL="${L##/dev/rbd/}"
+				if [ "$(readlink -f $L)" = "${DEV}" ] \
+				&& [ -x "/etc/ceph/rbd.d/${LL}" ]; then
+					einfo "RBD pre-unmap:  '${DEV}' hook '/etc/ceph/rbd.d/${LL}'"
+					/etc/ceph/rbd.d/${LL} unmap "$L"
+					break
+				fi
+			done
+
+			ebegin "Unmapping RBD device: '${DEV}'"
+			UMNT_RV=""
+			UMAP_RV=""
+			RET_OP=0
+			MNT=$(findmnt --mtab --source ${DEV} --noheadings | awk '{print $1'})
+			if [ -n "${MNT}" ]; then
+				einfo "un-mounting '${MNT}'"
+				UMNT_RV=$(umount "${MNT}" 2>&1)
+			fi
+			if mountpoint -q "${MNT}"; then
+				## Un-mounting failed.
+				RET_OP=1
+				RET=$((${RET}+1))
+			else
+				## Un-mapping.
+				UMAP_RV=$(rbd unmap $DEV 2>&1)
+				if [ $? -ne 0 ]; then
+					RET=$((${RET}+$?))
+					RET_OP=1
+				fi
+			fi
+			eend ${RET_OP} "${UMAP_RV}"
+			[ -n "${UMNT_RV}" ] && einfo "${UMNT_RV}"
+		done
+	fi
+	eend ${RET}
+}
+
+reload() {
+	start
+}
+
+status() {
+	rbd showmapped
+}


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2021-04-03  4:20 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2021-04-03  4:20 UTC (permalink / raw
  To: gentoo-commits

commit:     b2d98f7c634994ea1f55511ab74e3280fcc44775
Author:     Patrick McLean <patrick.mclean <AT> sony <DOT> com>
AuthorDate: Sat Apr  3 04:15:20 2021 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Sat Apr  3 04:20:03 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b2d98f7c

sys-cluster/ceph-16.2.0: Version bump

Copyright: Sony Interactive Entertainment Inc.
Package-Manager: Portage-3.0.17, Repoman-3.0.2
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 sys-cluster/ceph/Manifest                          |   1 +
 sys-cluster/ceph/ceph-16.2.0.ebuild                | 448 +++++++++++++++++++++
 .../ceph/files/ceph-16.2.0-install-libblk.patch    |  12 +
 .../files/ceph-16.2.0-jaeger-system-boost.patch    |  14 +
 sys-cluster/ceph/files/ceph-16.2.0-liburing.patch  |  35 ++
 .../ceph/files/ceph-16.2.0-no-virtualenvs.patch    |  74 ++++
 .../ceph/files/ceph-16.2.0-rocksdb-cmake.patch     |  15 +
 .../ceph/files/ceph-16.2.0-spdk-tinfo.patch        |  10 +
 sys-cluster/ceph/metadata.xml                      |   4 +
 9 files changed, 613 insertions(+)

diff --git a/sys-cluster/ceph/Manifest b/sys-cluster/ceph/Manifest
index 6bb1b6cdb29..02a9ca913cc 100644
--- a/sys-cluster/ceph/Manifest
+++ b/sys-cluster/ceph/Manifest
@@ -2,3 +2,4 @@ DIST ceph-14.2.16.tar.gz 130220625 BLAKE2B 30fcf971dd3ebaad8decf0d8d3ade1b554c0f
 DIST ceph-14.2.19.tar.gz 129290834 BLAKE2B d1de69afcdacd4507a4d1d230a9a4cbd75067f7efa67c01b9f7100d29bf91b7196a36df6514d307affc3194bd83f1e91b5c274b424d0cb1931c9457f6321dc36 SHA512 69e3adba292d003e364f3b7eb16878992a3f3015a1ad0b73a9bd9b4ccb2f2f46518833346d40e024b62274985d30b684e1927e533a34a1e357a1780812c231fa
 DIST ceph-15.2.10.tar.gz 148500214 BLAKE2B c24679bc5e41da45b093dcd01fa103fd3dff45ddc7d244acebd182547851f426dd140e24ae5afafd71d797b185d6825fbdb9b84abd5c7ead41d5f29b06ed01fa SHA512 20202c07a068f99d5ce56b1969f703f996ad34c201ea3ab9bb05ea278afac71ccba43fb03e9de641dc3ab9692eecfcc6f52ff1ac03e13a1dc2f939bd8159fc2d
 DIST ceph-15.2.9.tar.gz 149518360 BLAKE2B 3d1d2cf7e356587d77c1ca3e6b05078a3de656607007d38ff0369f5a76fb9e12a3f06929bcbf19ed5d3de7c8e402dc0972c0b3c7245f64e6f5d94a4a78bb1d00 SHA512 1f55b0a13bf06df782831d0c9d5f8617c22442ab97fb186e6ccb08183e02bf1756caf8633fa6b1cf156c3fb7b1bdff90a60a1249adfad0b9450036e2329bf8ff
+DIST ceph-16.2.0.tar.gz 157057713 BLAKE2B 3e3e5d71f15b6af706eb6f9c174dd44ff208cbfa2eb587c473dff91726a61ec029b0d6b53b171ddadcc989eaaf19ded67321f8cf3cad743cfd5ef88e2af08eef SHA512 aeb9a91c33221c64ea24603dc88cab346bf0abdf0d41ff85c2e1cf134130737ec1fab1246be0a2fa3af8a655ae1dabb69688855f229f54438e60cb8098175b8e

diff --git a/sys-cluster/ceph/ceph-16.2.0.ebuild b/sys-cluster/ceph/ceph-16.2.0.ebuild
new file mode 100644
index 00000000000..ba5408dd220
--- /dev/null
+++ b/sys-cluster/ceph/ceph-16.2.0.ebuild
@@ -0,0 +1,448 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{7..9} )
+DISTUTILS_USE_SETUPTOOLS=rdepend
+DISTUTILS_OPTIONAL=1
+LUA_COMPAT=( lua5-3 )
+
+CMAKE_MAKEFILE_GENERATOR=emake
+
+inherit check-reqs bash-completion-r1 cmake distutils-r1 flag-o-matic \
+		lua-single python-r1 udev readme.gentoo-r1 toolchain-funcs \
+		systemd tmpfiles
+
+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 ~ppc64"
+fi
+
+DESCRIPTION="Ceph distributed filesystem"
+HOMEPAGE="https://ceph.com/"
+
+LICENSE="Apache-2.0 LGPL-2.1 CC-BY-SA-3.0 GPL-2 GPL-2+ LGPL-2+ LGPL-2.1 LGPL-3 GPL-3 BSD Boost-1.0 MIT public-domain"
+SLOT="0"
+
+CPU_FLAGS_X86=(avx2 avx512f pclmul sse{,2,3,4_1,4_2} ssse3)
+
+IUSE="babeltrace +cephfs custom-cflags diskprediction dpdk fuse grafana
+	jemalloc jaeger kafka kerberos ldap lttng +mgr numa pmdk rabbitmq
+	+radosgw rbd-rwl rbd-ssd rgw-lua +ssl spdk +sqlite system-boost systemd
+	+tcmalloc test uring xfs zbd zfs"
+IUSE+=" $(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})"
+
+DEPEND="
+	${LUA_DEPS}
+	acct-group/ceph
+	acct-user/ceph
+	virtual/libudev:=
+	app-arch/bzip2:=
+	app-arch/lz4:=
+	app-arch/snappy:=
+	app-arch/zstd:=
+	app-shells/bash:0
+	app-misc/jq:=
+	dev-libs/crypto++:=
+	dev-cpp/gflags:=
+	dev-libs/leveldb:=[snappy,tcmalloc(-)?]
+	dev-libs/libaio:=
+	dev-libs/libfmt:=
+	dev-libs/libnl:3=
+	dev-libs/libxml2:=
+	dev-libs/libevent:=
+	<dev-libs/rocksdb-6.15:=
+	dev-libs/xmlsec:=[openssl]
+	dev-cpp/yaml-cpp:=
+	dev-libs/nss:=
+	dev-libs/protobuf:=
+	net-dns/c-ares:=
+	net-libs/gnutls:=
+	sys-auth/oath-toolkit:=
+	sys-apps/coreutils
+	sys-apps/grep
+	sys-apps/hwloc:=
+	sys-apps/keyutils:=
+	sys-apps/util-linux:=
+	sys-apps/sed
+	sys-apps/util-linux
+	sys-libs/libcap-ng:=
+	sys-libs/ncurses:0=
+	sys-libs/zlib:=
+	sys-process/numactl:=
+	x11-libs/libpciaccess:=
+	babeltrace? ( dev-util/babeltrace )
+	fuse? ( sys-fs/fuse:0= )
+	jemalloc? ( dev-libs/jemalloc:= )
+	!jemalloc? ( >=dev-util/google-perftools-2.6.1:= )
+	jaeger? ( dev-cpp/nlohmann_json:= )
+	kafka? ( dev-libs/librdkafka:= )
+	kerberos? ( virtual/krb5 )
+	ldap? ( net-nds/openldap:= )
+	lttng? ( dev-util/lttng-ust:= )
+	pmdk? ( dev-libs/pmdk:= )
+	rabbitmq? ( net-libs/rabbitmq-c:= )
+	radosgw? (
+		dev-libs/icu:=
+		dev-libs/expat:=
+		dev-libs/openssl:=
+		net-misc/curl:=[curl_ssl_openssl]
+	)
+	rbd-rwl? ( dev-libs/pmdk:= )
+	ssl? ( dev-libs/openssl:= )
+	sqlite? ( dev-db/sqlite:= )
+	system-boost? ( >=dev-libs/boost-1.72[threads,context,python,${PYTHON_USEDEP}] )
+	uring? ( sys-libs/liburing:= )
+	xfs? ( sys-fs/xfsprogs:= )
+	zbd? ( sys-block/libzbd:= )
+	zfs? ( sys-fs/zfs:= )
+	${PYTHON_DEPS}
+"
+BDEPEND="
+	amd64? ( dev-lang/nasm )
+	x86? ( dev-lang/yasm )
+	app-arch/cpio
+	>=dev-util/cmake-3.5.0
+	dev-python/cython[${PYTHON_USEDEP}]
+	dev-python/sphinx
+	dev-util/cunit
+	dev-util/gperf
+	dev-util/ragel
+	dev-util/valgrind
+	sys-apps/coreutils
+	sys-apps/findutils
+	sys-apps/grep
+	sys-apps/sed
+	sys-apps/which
+	sys-devel/bc
+	sys-devel/patch
+	virtual/pkgconfig
+	jaeger? (
+		sys-devel/bison
+		sys-devel/flex
+	)
+	test? (
+		dev-python/coverage[${PYTHON_USEDEP}]
+		dev-python/virtualenv[${PYTHON_USEDEP}]
+		dev-python/requests-mock[${PYTHON_USEDEP}]
+		sys-apps/grep[pcre]
+		sys-fs/btrfs-progs
+	)
+"
+RDEPEND="
+	${DEPEND}
+	app-admin/sudo
+	net-misc/socat
+	sys-apps/gptfdisk
+	sys-apps/nvme-cli
+	>=sys-apps/smartmontools-7.0
+	sys-block/parted
+	sys-fs/cryptsetup
+	sys-fs/lsscsi
+	sys-fs/lvm2[-device-mapper-only(-)]
+	virtual/awk
+	dev-python/bcrypt[${PYTHON_USEDEP}]
+	dev-python/cherrypy[${PYTHON_USEDEP}]
+	dev-python/python-dateutil[${PYTHON_USEDEP}]
+	dev-python/flask[${PYTHON_USEDEP}]
+	dev-python/jinja[${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}]
+	mgr? (
+		dev-python/jsonpatch[${PYTHON_USEDEP}]
+		dev-python/more-itertools[${PYTHON_USEDEP}]
+		dev-python/numpy[${PYTHON_USEDEP}]
+		dev-python/pyjwt[${PYTHON_USEDEP}]
+		dev-python/pyyaml[${PYTHON_USEDEP}]
+		dev-python/routes[${PYTHON_USEDEP}]
+		diskprediction? (
+			>=dev-python/scipy-1.4.0[${PYTHON_USEDEP}]
+		)
+		sci-libs/scikit-learn[${PYTHON_USEDEP}]
+		dev-python/six[${PYTHON_USEDEP}]
+	)
+"
+# diskprediction needs older scipy not compatible with py38
+# bug #724438
+REQUIRED_USE="
+	${PYTHON_REQUIRED_USE}
+	${LUA_REQUIRED_USE}
+	?? ( jemalloc tcmalloc )
+	jaeger? ( !system-boost )
+	diskprediction? ( mgr )
+	kafka? ( radosgw )
+	mgr? ( cephfs )
+	rabbitmq? ( radosgw )
+"
+RESTRICT="!test? ( test )"
+
+# the tests need root access
+RESTRICT="test? ( userpriv )"
+
+# distribution tarball does not include everything needed for tests
+RESTRICT+=" test"
+
+# create a non-debug release
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+# false positives unless all USE flags are on
+CMAKE_WARN_UNUSED_CLI=no
+
+PATCHES=(
+	"${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch"
+	"${FILESDIR}/ceph-14.2.0-cflags.patch"
+	"${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch"
+	"${FILESDIR}/ceph-13.2.0-cflags.patch"
+	"${FILESDIR}/ceph-16.2.0-no-virtualenvs.patch"
+	"${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
+	"${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch"
+	"${FILESDIR}/ceph-14.2.0-link-crc32-statically.patch"
+	"${FILESDIR}/ceph-14.2.0-cython-0.29.patch"
+	"${FILESDIR}/ceph-16.2.0-rocksdb-cmake.patch"
+	"${FILESDIR}/ceph-15.2.3-spdk-compile.patch"
+	"${FILESDIR}/ceph-16.2.0-install-libblk.patch"
+	"${FILESDIR}/ceph-16.2.0-spdk-tinfo.patch"
+	"${FILESDIR}/ceph-16.2.0-jaeger-system-boost.patch"
+	"${FILESDIR}/ceph-16.2.0-liburing.patch"
+)
+
+check-reqs_export_vars() {
+	CHECKREQS_DISK_BUILD="6G"
+
+	if use system-boost; then
+		CHECKREQS_DISK_USR="350M"
+	else
+		CHECKREQS_DISK_USR="510M"
+	fi
+
+	export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR
+}
+
+pkg_pretend() {
+	check-reqs_export_vars
+	check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+	python_setup
+	lua_setup
+	check-reqs_export_vars
+	check-reqs_pkg_setup
+}
+
+src_prepare() {
+	cmake_src_prepare
+
+	if use system-boost; then
+		find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \
+			| xargs --null sed -r \
+			-e 's|Boost::|boost_|g' \
+			-e 's|Boost_|boost_|g' \
+			-e 's|[Bb]oost_boost|boost_system|g' -i || die
+	fi
+
+	sed -r -e "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \
+		-i src/bash_completion/CMakeLists.txt || die
+
+	sed  -e "s:objdump -p:$(tc-getOBJDUMP) -p:" -i CMakeLists.txt || die
+
+	if ! use diskprediction; then
+		rm -rf src/pybind/mgr/diskprediction_local || die
+	fi
+
+	# force lua version to use selected version
+	local lua_version
+	lua_version=$(ver_cut 1-2 $(lua_get_version))
+	sed -i "s:find_package(Lua [0-9][.][0-9] REQUIRED):find_package(Lua ${lua_version} EXACT REQUIRED):" src/CMakeLists.txt
+
+	# remove tests that need root access
+	rm src/test/cli/ceph-authtool/cap*.t || die
+}
+
+ceph_src_configure() {
+	local flag
+	local mycmakeargs=(
+		-DWITH_BABELTRACE=$(usex babeltrace)
+		-DWITH_BLUESTORE_PMEM=$(usex pmdk)
+		-DWITH_CEPHFS=$(usex cephfs)
+		-DWITH_CEPHFS_SHELL=$(usex cephfs)
+		-DWITH_DPDK=$(usex dpdk)
+		-DWITH_SPDK=$(usex spdk)
+		-DWITH_FUSE=$(usex fuse)
+		-DWITH_LTTNG=$(usex lttng)
+		-DWITH_GSSAPI=$(usex kerberos)
+		-DWITH_GRAFANA=$(usex grafana)
+		-DWITH_MGR=$(usex mgr)
+		-DWITH_MGR_DASHBOARD_FRONTEND=OFF
+		-DWITH_NUMA=$(usex numa)
+		-DWITH_OPENLDAP=$(usex ldap)
+		-DWITH_PYTHON3=3
+		-DWITH_RADOSGW=$(usex radosgw)
+		-DWITH_RADOSGW_AMQP_ENDPOINT=$(usex rabbitmq)
+		-DWITH_RADOSGW_KAFKA_ENDPOINT=$(usex kafka)
+		-DWITH_RADOSGW_LUA_PACKAGES=$(usex rgw-lua "$(usex radosgw)" "NO")
+		-DWITH_RBD_RWL=$(usex rbd-rwl)
+		-DWITH_RBD_SSD_CACHE=$(usex rbd-ssd)
+		-DWITH_SSL=$(usex ssl)
+		-DWITH_SYSTEMD=$(usex systemd)
+		-DWITH_TESTS=$(usex test)
+		-DWITH_LIBURING=$(usex uring)
+		-DWITH_SYSTEM_LIBURING=$(usex uring)
+		-DWITH_LIBCEPHSQLITE=$(usex sqlite)
+		-DWITH_XFS=$(usex xfs)
+		-DWITH_ZBD=$(usex zbd)
+		-DWITH_ZFS=$(usex zfs)
+		-DENABLE_SHARED="ON"
+		-DALLOCATOR=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')")
+		-DWITH_SYSTEM_PMDK=$(usex pmdk 'YES' "$(usex rbd-rwl)")
+		-DWITH_SYSTEM_BOOST=$(usex system-boost)
+		-DBOOST_J=$(makeopts_jobs)
+		-DWITH_SYSTEM_ROCKSDB=ON
+		-DWITH_RDMA=OFF
+		-DWITH_TBB=OFF
+		-DSYSTEMD_UNITDIR=$(systemd_get_systemunitdir)
+		-DCMAKE_INSTALL_SYSTEMD_SERVICEDIR=$(systemd_get_systemunitdir)
+		-DEPYTHON_VERSION="${EPYTHON#python}"
+		-DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PN}-${PVR}"
+		-DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
+		-Wno-dev
+	)
+
+	# this breaks when re-configuring for python impl
+	[[ ${EBUILD_PHASE} == configure ]] && mycmakeargs+=(-DWITH_JAEGER=$(usex jaeger))
+
+	if use amd64 || use x86; then
+		for flag in ${CPU_FLAGS_X86[@]}; do
+			case "${flag}" in
+				avx*)
+					local var=${flag%f}
+					mycmakeargs+=("$(usex cpu_flags_x86_${flag} "-DHAVE_NASM_X64_${var^^}=1")")
+				;;
+				*) mycmakeargs+=("$(usex cpu_flags_x86_${flag} "-DHAVE_INTEL_${flag^^}=1")");;
+			esac
+		done
+	fi
+
+	# needed for >=glibc-2.32
+	has_version '>=sys-libs/glibc-2.32' && mycmakeargs+=(-DWITH_REENTRANT_STRSIGNAL:BOOL=ON)
+
+	rm -f "${BUILD_DIR:-${S}}/CMakeCache.txt" \
+		|| die "failed to remove cmake cache"
+
+	cmake_src_configure
+
+	# bug #630232
+	sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \
+		"${BUILD_DIR:-${S}}"/include/acconfig.h \
+		|| die "sed failed"
+}
+
+src_configure() {
+	use custom-cflags || strip-flags
+	ceph_src_configure
+}
+
+python_compile() {
+	local CMAKE_USE_DIR="${S}"
+	ceph_src_configure
+
+	pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
+	emake VERBOSE=1 clean
+	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_build VERBOSE=1 all
+
+	# we have to do this here to prevent from building everything multiple times
+	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="${ED}" emake VERBOSE=1 install
+	popd >/dev/null || die
+
+	python_optimize
+}
+
+src_install() {
+	cmake_src_install
+	python_foreach_impl python_install
+
+	find "${ED}" -name '*.la' -type f -delete || die
+
+	exeinto /usr/$(get_libdir)/ceph
+	newexe "${BUILD_DIR}/bin/init-ceph" init-ceph
+
+	insinto /etc/logrotate.d/
+	newins "${FILESDIR}"/ceph.logrotate-r2 ${PN}
+
+	keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat
+
+	fowners -R ceph:ceph /var/log/ceph
+
+	newinitd "${FILESDIR}/rbdmap.initd-r1" rbdmap
+	newinitd "${FILESDIR}/${PN}.initd-r12" ${PN}
+	newconfd "${FILESDIR}/${PN}.confd-r5" ${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
+	newtmpfiles "${FILESDIR}"/ceph-tmpfilesd ${PN}.conf
+
+	readme.gentoo_create_doc
+
+	python_setup
+
+	# bug #630232
+	sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \
+		|| die "sed failed"
+
+	python_fix_shebang "${ED}"/usr/{,s}bin/
+
+	# python_fix_shebang apparently is not idempotent
+	local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]'
+	grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \
+		| xargs --null --no-run-if-empty -- sed -i -r  "s:${shebang_regex}:\1:" || die
+
+	local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* )
+	dostrip -x "${rados_classes[@]#${ED}}"
+}
+
+pkg_postinst() {
+	readme.gentoo_print_elog
+}

diff --git a/sys-cluster/ceph/files/ceph-16.2.0-install-libblk.patch b/sys-cluster/ceph/files/ceph-16.2.0-install-libblk.patch
new file mode 100644
index 00000000000..309e00d226d
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-16.2.0-install-libblk.patch
@@ -0,0 +1,12 @@
+diff --git a/src/blk/CMakeLists.txt b/src/blk/CMakeLists.txt
+index b424482dee..dc4f9b82ae 100644
+--- a/src/blk/CMakeLists.txt
++++ b/src/blk/CMakeLists.txt
+@@ -26,6 +26,7 @@ if(WITH_ZBD)
+ endif()
+ 
+ add_library(blk ${libblk_srcs})
++install(TARGETS blk DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ target_include_directories(blk PRIVATE "./")
+ 
+ if(HAVE_LIBAIO)

diff --git a/sys-cluster/ceph/files/ceph-16.2.0-jaeger-system-boost.patch b/sys-cluster/ceph/files/ceph-16.2.0-jaeger-system-boost.patch
new file mode 100644
index 00000000000..18d5d9c6d51
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-16.2.0-jaeger-system-boost.patch
@@ -0,0 +1,14 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 0a0d8672a7..a76e7e1842 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -631,6 +631,9 @@ if(WITH_SYSTEM_BOOST)
+     set_property(TARGET Boost::iostreams APPEND PROPERTY
+       INTERFACE_LINK_LIBRARIES ZLIB::ZLIB)
+   endif()
++  if (WITH_JAEGER)
++    include_directories("${CMAKE_SOURCE_DIR}/boost/include")
++  endif()
+ else()
+   set(BOOST_J 1 CACHE STRING
+     "max jobs for Boost build") # override w/-DBOOST_J=<n>

diff --git a/sys-cluster/ceph/files/ceph-16.2.0-liburing.patch b/sys-cluster/ceph/files/ceph-16.2.0-liburing.patch
new file mode 100644
index 00000000000..dd248d51ac6
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-16.2.0-liburing.patch
@@ -0,0 +1,35 @@
+diff --git a/cmake/modules/Finduring.cmake b/cmake/modules/Finduring.cmake
+index 10c8de4255..c0a4dadfe4 100644
+--- a/cmake/modules/Finduring.cmake
++++ b/cmake/modules/Finduring.cmake
+@@ -8,10 +8,10 @@ find_path(URING_INCLUDE_DIR liburing.h)
+ find_library(URING_LIBRARIES liburing.a liburing)
+ 
+ include(FindPackageHandleStandardArgs)
+-find_package_handle_standard_args(uring DEFAULT_MSG URING_LIBRARIES URING_INCLUDE_DIR)
++pkg_check_modules(URING REQUIRED liburing)
+ 
+ if(uring_FOUND AND NOT TARGET uring::uring)
+-  add_library(uring::uring UNKNOWN IMPORTED)
++  add_library(uring::uring ALIAS ${URING_LIBRARIES})
+   set_target_properties(uring::uring PROPERTIES
+     INTERFACE_INCLUDE_DIRECTORIES "${URING_INCLUDE_DIR}"
+     IMPORTED_LINK_INTERFACE_LANGUAGES "C"
+diff --git a/src/blk/CMakeLists.txt b/src/blk/CMakeLists.txt
+index dc4f9b82ae..e39d690394 100644
+--- a/src/blk/CMakeLists.txt
++++ b/src/blk/CMakeLists.txt
+@@ -52,10 +52,11 @@ endif()
+ 
+ if(WITH_LIBURING)
+   if(WITH_SYSTEM_LIBURING)
+-    find_package(uring REQUIRED)
++	list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}../../cmake/modules/")
++	pkg_check_modules(URING REQUIRED liburing)
+   else()
+     include(Builduring)
+     build_uring()
+   endif()
+-  target_link_libraries(blk PRIVATE uring::uring)
++  target_link_libraries(blk PRIVATE ${URING_LIBRARIES})
+ endif()

diff --git a/sys-cluster/ceph/files/ceph-16.2.0-no-virtualenvs.patch b/sys-cluster/ceph/files/ceph-16.2.0-no-virtualenvs.patch
new file mode 100644
index 00000000000..d8acd4355b5
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-16.2.0-no-virtualenvs.patch
@@ -0,0 +1,74 @@
+diff --git a/cmake/modules/AddCephTest.cmake b/cmake/modules/AddCephTest.cmake
+index 2c8fdb0b93..07d52b3d67 100644
+--- a/cmake/modules/AddCephTest.cmake
++++ b/cmake/modules/AddCephTest.cmake
+@@ -70,14 +70,6 @@ function(add_tox_test name)
+   endif()
+   string(REPLACE ";" "," tox_envs "${tox_envs}")
+   find_package(Python3 QUIET REQUIRED)
+-  add_custom_command(
+-    OUTPUT ${venv_path}/bin/activate
+-    COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python="${Python3_EXECUTABLE}" ${venv_path}
+-    WORKING_DIRECTORY ${tox_path}
+-    COMMENT "preparing venv for ${name}")
+-  add_custom_target(${name}-venv
+-    DEPENDS ${venv_path}/bin/activate)
+-  add_dependencies(tests ${name}-venv)
+   add_test(
+     NAME ${test_name}
+     COMMAND ${CMAKE_SOURCE_DIR}/src/script/run_tox.sh
+diff --git a/src/ceph-volume/CMakeLists.txt b/src/ceph-volume/CMakeLists.txt
+index 4224499c47..9a6c87595b 100644
+--- a/src/ceph-volume/CMakeLists.txt
++++ b/src/ceph-volume/CMakeLists.txt
+@@ -8,22 +8,6 @@ if(FREEBSD)
+   add_subdirectory(plugin/zfs)
+ endif()
+ 
+-# Required for running ceph-volume inventory in a vstart environment
+-set(CEPH_VOLUME_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/ceph-volume-virtualenv)
+-
+-add_custom_command(
+-  OUTPUT ${CEPH_VOLUME_VIRTUALENV}/bin/python
+-  COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${Python_EXECUTABLE} ${CEPH_VOLUME_VIRTUALENV}
+-  WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/ceph-volume
+-  COMMENT "ceph-volume venv is being created")
+-
+-add_custom_command(
+-  OUTPUT ${CEPH_VOLUME_VIRTUALENV}/bin/ceph-volume
+-  DEPENDS ${CEPH_VOLUME_VIRTUALENV}/bin/python
+-  COMMAND . ${CEPH_VOLUME_VIRTUALENV}/bin/activate && ${CEPH_VOLUME_VIRTUALENV}/bin/python setup.py develop && deactivate
+-  WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/ceph-volume
+-  COMMENT "${CMAKE_SOURCE_DIR}/src/ceph-volume")
+-
+ add_custom_target(ceph-volume-venv-setup
+   DEPENDS ${CEPH_VOLUME_VIRTUALENV}/bin/ceph-volume)
+ 
+diff --git a/src/pybind/mgr/dashboard/CMakeLists.txt b/src/pybind/mgr/dashboard/CMakeLists.txt
+index 59c28a33f6..7f63e2adf4 100644
+--- a/src/pybind/mgr/dashboard/CMakeLists.txt
++++ b/src/pybind/mgr/dashboard/CMakeLists.txt
+@@ -5,9 +5,6 @@ function(add_npm_command)
+   set(multi_kw COMMAND DEPENDS)
+   cmake_parse_arguments(NC "${options}" "${single_kw}" "${multi_kw}" ${ARGN})
+   string(REPLACE ";" " " command "${NC_COMMAND}")
+-  if(NC_NODEENV)
+-    string(REGEX REPLACE "^(.*(npm|npx) .*)$" ". ${mgr-dashboard-nodeenv-dir}/bin/activate && \\1 && deactivate" command ${command})
+-  endif()
+   string(REPLACE " " ";" command "${command}")
+   add_custom_command(
+     OUTPUT "${NC_OUTPUT}"
+@@ -51,11 +48,8 @@ else(WITH_SYSTEM_NPM)
+     set(node_mirror_opt "--mirror=$ENV{NODE_MIRROR}")
+   endif()
+   add_custom_command(
+-    OUTPUT "${mgr-dashboard-nodeenv-dir}/bin/npm"
+-    COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${MGR_PYTHON_EXECUTABLE} ${mgr-dashboard-nodeenv-dir}
+-    COMMAND ${mgr-dashboard-nodeenv-dir}/bin/pip install nodeenv
+-    COMMAND ${mgr-dashboard-nodeenv-dir}/bin/nodeenv ${node_mirror_opt} -p --node=12.18.2
+-    COMMAND mkdir ${mgr-dashboard-nodeenv-dir}/.npm
++    OUTPUT "/bin/npm"
++    COMMAND /bin/nodeenv ${node_mirror_opt} -p --node=12.18.2
+     WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+     COMMENT "dashboard nodeenv is being installed"
+     )

diff --git a/sys-cluster/ceph/files/ceph-16.2.0-rocksdb-cmake.patch b/sys-cluster/ceph/files/ceph-16.2.0-rocksdb-cmake.patch
new file mode 100644
index 00000000000..aff00c196d6
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-16.2.0-rocksdb-cmake.patch
@@ -0,0 +1,15 @@
+diff --git a/cmake/modules/BuildRocksDB.cmake b/cmake/modules/BuildRocksDB.cmake
+index 58ce26a6ac..2f8702c1dc 100644
+--- a/cmake/modules/BuildRocksDB.cmake
++++ b/cmake/modules/BuildRocksDB.cmake
+@@ -6,10 +6,6 @@ function(build_rocksdb)
+   # CMAKE_PREFIX_PATH, for which reason we'll have to use some other separator.
+   string(REPLACE ";" "!" CMAKE_PREFIX_PATH_ALT_SEP "${CMAKE_PREFIX_PATH}")
+   list(APPEND rocksdb_CMAKE_ARGS -DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH_ALT_SEP})
+-  if(CMAKE_TOOLCHAIN_FILE)
+-    list(APPEND rocksdb_CMAKE_ARGS
+-         -DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE})
+-  endif()
+ 
+   if(ALLOCATOR STREQUAL "jemalloc")
+     list(APPEND rocksdb_CMAKE_ARGS -DWITH_JEMALLOC=ON)

diff --git a/sys-cluster/ceph/files/ceph-16.2.0-spdk-tinfo.patch b/sys-cluster/ceph/files/ceph-16.2.0-spdk-tinfo.patch
new file mode 100644
index 00000000000..19f2cce891f
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-16.2.0-spdk-tinfo.patch
@@ -0,0 +1,10 @@
+--- a/src/spdk/app/spdk_top/Makefile	2021-04-02 14:27:44.307824110 -0700
++++ b/src/spdk/app/spdk_top/Makefile	2021-04-02 14:27:56.722742839 -0700
+@@ -39,6 +39,6 @@
+ C_SRCS := spdk_top.c
+ 
+ SPDK_LIB_LIST = jsonrpc json rpc log util
+-LIBS=-lncurses -lpanel -lmenu
++LIBS=-lncurses -ltinfo -lpanel -lmenu
+ 
+ include $(SPDK_ROOT_DIR)/mk/spdk.app.mk

diff --git a/sys-cluster/ceph/metadata.xml b/sys-cluster/ceph/metadata.xml
index cd3df6b4e4c..85de88c2661 100644
--- a/sys-cluster/ceph/metadata.xml
+++ b/sys-cluster/ceph/metadata.xml
@@ -24,6 +24,7 @@
     <flag name="spdk">Enable SPDK user-mode storage driver toolkit</flag>
     <flag name="fuse">Build fuse client</flag>
     <flag name="grafana">Install grafana dashboards</flag>
+    <flag name="jaeger">Enable jaegertracing and it's dependent libraries</flag>
     <flag name="kafka">Rados Gateway's pubsub support for Kafka push endpoint</flag>
     <flag name="lttng">Add support for LTTng</flag>
     <flag name="mgr">Build the ceph-mgr daemon</flag>
@@ -32,8 +33,11 @@
     <flag name="rabbitmq">Use rabbitmq-c to build rgw amqp push endpoint</flag>
     <flag name="radosgw">Add radosgw support</flag>
     <flag name="rbd-rwl">Enable librbd persistent write back cache</flag>
+    <flag name="rbd-ssd">Enable librbd persistent write back cache for SSDs</flag>
+    <flag name="rgw-lua">Rados Gateway's support for dynamically adding lua packagess</flag>
     <flag name="system-boost">Use system <pkg>dev-libs/boost</pkg> instead of the bundled one</flag>
     <flag name="uring">Build with support for <pkg>sys-libs/liburing</pkg></flag>
+    <flag name="zbd">Enable <pkg>sys-block/libzbd</pkg> bluestore backend</flag>
     <flag name="xfs">Add xfs support</flag>
     <flag name="zfs">Add zfs support</flag>
   </use>


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2021-05-27  5:30 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2021-05-27  5:30 UTC (permalink / raw
  To: gentoo-commits

commit:     8e91fc08406dde5075852d4c9fdc9a7a8263070f
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Thu May 27 04:33:22 2021 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Thu May 27 05:30:06 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8e91fc08

sys-cluster/ceph-15.2.13: Version bump

Package-Manager: Portage-3.0.19, Repoman-3.0.3
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 sys-cluster/ceph/Manifest                          |   1 +
 sys-cluster/ceph/ceph-15.2.13.ebuild               | 403 +++++++++++++++++++++
 .../ceph/files/ceph-15.2.13-no-virtualenvs.patch   |  73 ++++
 3 files changed, 477 insertions(+)

diff --git a/sys-cluster/ceph/Manifest b/sys-cluster/ceph/Manifest
index 1fc50693970..6c86ea70178 100644
--- a/sys-cluster/ceph/Manifest
+++ b/sys-cluster/ceph/Manifest
@@ -1,3 +1,4 @@
 DIST ceph-14.2.21.tar.gz 129272778 BLAKE2B f82f452e0f0c40a95ea1bdb3654c2d322caa3edeeb05e41247e02a8ffe731c570d9e49aefa61c447a8b73620d4a9b9872335171f1e08fbd9a08eea930ccbfe76 SHA512 39b4a0624dcab2bafa50f51a42155fcf96dad74531a001d75009ad246a8ca80ce81ae538b34c0a1b773691c363626f1d0342f2439b711bd0dd16214592171884
 DIST ceph-15.2.12.tar.gz 148509713 BLAKE2B 4962e7d574b38592a874a1b3fa8610bb2d0afc8713d995d67a790c025bb086cb619cbbaec76482ec096b4c55b9f1df383f5bd4806a231bc88e70ac3efbac24b5 SHA512 08266a2e9a7ca5a37e03f340873571fd012c630dd898a87241cd97c29760b2bf41fe64c8883e7b08e0f83c26245072cd26e69ecb1db02378d1ec38335ba1cd0f
+DIST ceph-15.2.13.tar.gz 148542333 BLAKE2B 2e9668bcb0fd283ec4ab51b0c6142fc9a3b6310eb5d34e07da5e6b73b55dd7976db5ab9c78a93684ddc2f51873b1a17c4d31c5f5647b2d43a2826ee5362f7e5d SHA512 bde28c331c489db0845959f65c425146c317466a7793f56a83e2827dec35b8cd6f600bf9056151c1e6926cc0155deebbc8681c240ac9f37ad876b9a6afae96da
 DIST ceph-16.2.4.tar.gz 155840423 BLAKE2B a803ffa61ac9fd6d42790d6d8e12aa8df843968627df0051475355f3ba0dc1272afa3d9e2716115ad769b2f322d7bd239d99b89e51610e89ce9efe39af4f01ae SHA512 8904e7fcabd50276e4e86735fd85dba96f417c194c219025146f994707def7abe372528b0f2e862e274b2f405d7b791bac86b6cbb8d57cecd6f44023a2ffb6f6

diff --git a/sys-cluster/ceph/ceph-15.2.13.ebuild b/sys-cluster/ceph/ceph-15.2.13.ebuild
new file mode 100644
index 00000000000..6eee7a8e23e
--- /dev/null
+++ b/sys-cluster/ceph/ceph-15.2.13.ebuild
@@ -0,0 +1,403 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{7..9} )
+DISTUTILS_USE_SETUPTOOLS=rdepend
+CMAKE_MAKEFILE_GENERATOR=emake
+
+DISTUTILS_OPTIONAL=1
+
+inherit check-reqs bash-completion-r1 cmake distutils-r1 flag-o-matic \
+		python-r1 udev readme.gentoo-r1 toolchain-funcs systemd tmpfiles
+
+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 ~ppc64"
+fi
+
+DESCRIPTION="Ceph distributed filesystem"
+HOMEPAGE="https://ceph.com/"
+
+LICENSE="Apache-2.0 LGPL-2.1 CC-BY-SA-3.0 GPL-2 GPL-2+ LGPL-2+ LGPL-2.1 LGPL-3 GPL-3 BSD Boost-1.0 MIT public-domain"
+SLOT="0"
+
+CPU_FLAGS_X86=(sse{,2,3,4_1,4_2} ssse3)
+
+IUSE="babeltrace +cephfs custom-cflags diskprediction dpdk fuse grafana jemalloc
+	kafka kerberos ldap lttng +mgr numa pmdk rabbitmq +radosgw rbd-rwl +ssl spdk
+	system-boost systemd +tcmalloc test uring xfs zfs"
+IUSE+=" $(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})"
+
+DEPEND="
+	acct-group/ceph
+	acct-user/ceph
+	virtual/libudev:=
+	app-arch/bzip2:=
+	app-arch/lz4:=
+	app-arch/snappy:=
+	app-arch/zstd:=
+	app-shells/bash:0
+	app-misc/jq:=
+	dev-libs/crypto++:=
+	dev-cpp/gflags:=
+	dev-libs/leveldb:=[snappy,tcmalloc(-)?]
+	dev-libs/libaio:=
+	dev-libs/libfmt:=
+	dev-libs/libnl:3=
+	dev-libs/libxml2:=
+	<dev-libs/rocksdb-6.15:=
+	dev-libs/xmlsec:=[openssl]
+	dev-cpp/yaml-cpp:=
+	dev-libs/nss:=
+	dev-libs/protobuf:=
+	net-dns/c-ares:=
+	net-libs/gnutls:=
+	sys-auth/oath-toolkit:=
+	sys-apps/coreutils
+	sys-apps/grep
+	sys-apps/hwloc:=
+	sys-apps/keyutils:=
+	sys-apps/util-linux:=
+	sys-apps/sed
+	sys-apps/util-linux
+	sys-libs/libcap-ng:=
+	sys-libs/ncurses:0=
+	sys-libs/zlib:=
+	sys-process/numactl:=
+	x11-libs/libpciaccess:=
+	babeltrace? ( dev-util/babeltrace )
+	fuse? ( sys-fs/fuse:0= )
+	jemalloc? ( dev-libs/jemalloc:= )
+	!jemalloc? ( >=dev-util/google-perftools-2.6.1:= )
+	kafka? ( dev-libs/librdkafka:= )
+	kerberos? ( virtual/krb5 )
+	ldap? ( net-nds/openldap:= )
+	lttng? ( dev-util/lttng-ust:= )
+	pmdk? ( dev-libs/pmdk:= )
+	rabbitmq? ( net-libs/rabbitmq-c:= )
+	radosgw? (
+		dev-libs/expat:=
+		dev-libs/openssl:=
+		net-misc/curl:=[curl_ssl_openssl]
+	)
+	rbd-rwl? ( dev-libs/pmdk:= )
+	ssl? ( dev-libs/openssl:= )
+	system-boost? ( >=dev-libs/boost-1.72[threads,context,python,${PYTHON_USEDEP}] )
+	uring? ( sys-libs/liburing:= )
+	xfs? ( sys-fs/xfsprogs:= )
+	zfs? ( sys-fs/zfs:= )
+	${PYTHON_DEPS}
+"
+BDEPEND="
+	amd64? ( dev-lang/yasm )
+	x86? ( dev-lang/yasm )
+	app-arch/cpio
+	>=dev-util/cmake-3.5.0
+	dev-python/cython[${PYTHON_USEDEP}]
+	dev-python/sphinx
+	dev-util/cunit
+	dev-util/gperf
+	dev-util/ragel
+	dev-util/valgrind
+	sys-apps/coreutils
+	sys-apps/findutils
+	sys-apps/grep
+	sys-apps/sed
+	sys-apps/which
+	sys-devel/bc
+	sys-devel/patch
+	virtual/pkgconfig
+	test? (
+		dev-python/coverage[${PYTHON_USEDEP}]
+		dev-python/virtualenv[${PYTHON_USEDEP}]
+		dev-python/requests-mock[${PYTHON_USEDEP}]
+		sys-apps/grep[pcre]
+		sys-fs/btrfs-progs
+	)
+"
+RDEPEND="${DEPEND}
+	app-admin/sudo
+	net-misc/socat
+	sys-apps/gptfdisk
+	sys-apps/nvme-cli
+	>=sys-apps/smartmontools-7.0
+	sys-block/parted
+	sys-fs/cryptsetup
+	sys-fs/lsscsi
+	sys-fs/lvm2[-device-mapper-only(-)]
+	virtual/awk
+	dev-python/bcrypt[${PYTHON_USEDEP}]
+	dev-python/cherrypy[${PYTHON_USEDEP}]
+	dev-python/python-dateutil[${PYTHON_USEDEP}]
+	dev-python/flask[${PYTHON_USEDEP}]
+	dev-python/jinja[${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}]
+	mgr? (
+		dev-python/jsonpatch[${PYTHON_USEDEP}]
+		dev-python/more-itertools[${PYTHON_USEDEP}]
+		dev-python/numpy[${PYTHON_USEDEP}]
+		dev-python/pyjwt[${PYTHON_USEDEP}]
+		dev-python/pyyaml[${PYTHON_USEDEP}]
+		dev-python/routes[${PYTHON_USEDEP}]
+		diskprediction? (
+			$(python_gen_cond_dep '<dev-python/scipy-1.4.0[${PYTHON_USEDEP}]' python3_{6,7})
+		)
+		sci-libs/scikit-learn[${PYTHON_USEDEP}]
+		dev-python/six[${PYTHON_USEDEP}]
+	)
+"
+# diskprediction needs older scipy not compatible with py38
+# bug #724438
+REQUIRED_USE="
+	${PYTHON_REQUIRED_USE}
+	?? ( jemalloc tcmalloc )
+	diskprediction? ( mgr !python_targets_python3_8 )
+	kafka? ( radosgw )
+	mgr? ( cephfs )
+	rabbitmq? ( radosgw )
+"
+RESTRICT="!test? ( test )"
+
+# the tests need root access
+RESTRICT="test? ( userpriv )"
+
+# distribution tarball does not include everything needed for tests
+RESTRICT+=" test"
+
+# create a non-debug release
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+# false positives unless all USE flags are on
+CMAKE_WARN_UNUSED_CLI=no
+
+PATCHES=(
+	"${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch"
+	"${FILESDIR}/ceph-14.2.0-cflags.patch"
+	"${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch"
+	"${FILESDIR}/ceph-13.2.0-cflags.patch"
+	"${FILESDIR}/ceph-15.2.13-no-virtualenvs.patch"
+	"${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
+	"${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch"
+	"${FILESDIR}/ceph-14.2.0-cython-0.29.patch"
+	"${FILESDIR}/ceph-15.2.0-rocksdb-cmake.patch"
+	"${FILESDIR}/ceph-15.2.2-systemd-unit.patch"
+	"${FILESDIR}/ceph-15.2.3-spdk-compile.patch"
+	"${FILESDIR}/ceph-15.2.4-system-uring.patch"
+	"${FILESDIR}/ceph-15.2.9-dont-compile-isal_compress-if-don-t-have-SSE4_1.patch"
+)
+
+check-reqs_export_vars() {
+	CHECKREQS_DISK_BUILD="5400M"
+	CHECKREQS_DISK_USR="510M"
+
+	export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR
+}
+
+pkg_pretend() {
+	check-reqs_export_vars
+	check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+	python_setup
+	check-reqs_export_vars
+	check-reqs_pkg_setup
+}
+
+src_prepare() {
+	cmake_src_prepare
+
+	if use system-boost; then
+		find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \
+			| xargs --null sed -r \
+			-e 's|Boost::|boost_|g' \
+			-e 's|Boost_|boost_|g' \
+			-e 's|[Bb]oost_boost|boost_system|g' -i || die
+	fi
+
+	sed -r -e "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \
+		-i src/bash_completion/CMakeLists.txt || die
+
+	sed  -e "s:objdump -p:$(tc-getOBJDUMP) -p:" -i CMakeLists.txt || die
+
+	if ! use diskprediction; then
+		rm -rf src/pybind/mgr/diskprediction_local || die
+	fi
+
+	# remove tests that need root access
+	rm src/test/cli/ceph-authtool/cap*.t || die
+}
+
+ceph_src_configure() {
+	local flag
+	local mycmakeargs=(
+		-DWITH_BABELTRACE=$(usex babeltrace)
+		-DWITH_BLUESTORE_PMEM=$(usex pmdk)
+		-DWITH_CEPHFS=$(usex cephfs)
+		-DWITH_CEPHFS_SHELL=$(usex cephfs)
+		-DWITH_DPDK=$(usex dpdk)
+		-DWITH_SPDK=$(usex spdk)
+		-DWITH_FUSE=$(usex fuse)
+		-DWITH_LTTNG=$(usex lttng)
+		-DWITH_GSSAPI=$(usex kerberos)
+		-DWITH_GRAFANA=$(usex grafana)
+		-DWITH_MGR=$(usex mgr)
+		-DWITH_MGR_DASHBOARD_FRONTEND=OFF
+		-DWITH_NUMA=$(usex numa)
+		-DWITH_OPENLDAP=$(usex ldap)
+		-DWITH_PYTHON3=3
+		-DWITH_RADOSGW=$(usex radosgw)
+		-DWITH_RADOSGW_AMQP_ENDPOINT=$(usex rabbitmq)
+		-DWITH_RADOSGW_KAFKA_ENDPOINT=$(usex kafka)
+		-DWITH_RBD_RWL=$(usex rbd-rwl)
+		-DWITH_SSL=$(usex ssl)
+		-DWITH_SYSTEMD=$(usex systemd)
+		-DWITH_TESTS=$(usex test)
+		-DWITH_LIBURING=$(usex uring)
+		-DWITH_XFS=$(usex xfs)
+		-DWITH_ZFS=$(usex zfs)
+		-DENABLE_SHARED="ON"
+		-DALLOCATOR=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')")
+		-DWITH_SYSTEM_PMDK=$(usex pmdk 'YES' "$(usex rbd-rwl)")
+		-DWITH_SYSTEM_BOOST=$(usex system-boost)
+		-DBOOST_J=$(makeopts_jobs)
+		-DWITH_SYSTEM_ROCKSDB=ON
+		-DWITH_RDMA=OFF
+		-DWITH_TBB=OFF
+		-DSYSTEMD_UNITDIR=$(systemd_get_systemunitdir)
+		-DCMAKE_INSTALL_SYSTEMD_SERVICEDIR=$(systemd_get_systemunitdir)
+		-DEPYTHON_VERSION="${EPYTHON#python}"
+		-DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PN}-${PVR}"
+		-DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
+		-Wno-dev
+	)
+	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
+
+	# needed for >=glibc-2.32
+	has_version '>=sys-libs/glibc-2.32' && mycmakeargs+=(-DWITH_REENTRANT_STRSIGNAL:BOOL=ON)
+
+	rm -f "${BUILD_DIR:-${S}}/CMakeCache.txt" \
+		|| die "failed to remove cmake cache"
+
+	cmake_src_configure
+
+	# bug #630232
+	sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \
+		"${BUILD_DIR:-${S}}"/include/acconfig.h \
+		|| die "sed failed"
+}
+
+src_configure() {
+	use custom-cflags || strip-flags
+	ceph_src_configure
+}
+
+python_compile() {
+	local CMAKE_USE_DIR="${S}"
+	ceph_src_configure
+
+	pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
+	emake VERBOSE=1 clean
+	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_build VERBOSE=1 all
+
+	# we have to do this here to prevent from building everything multiple times
+	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="${ED}" emake VERBOSE=1 install
+	popd >/dev/null || die
+
+	python_optimize
+}
+
+src_install() {
+	cmake_src_install
+	python_foreach_impl python_install
+
+	find "${ED}" -name '*.la' -type f -delete || die
+
+	exeinto /usr/$(get_libdir)/ceph
+	newexe "${BUILD_DIR}/bin/init-ceph" init-ceph
+
+	insinto /etc/logrotate.d/
+	newins "${FILESDIR}"/ceph.logrotate-r2 ${PN}
+
+	keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat
+
+	fowners -R ceph:ceph /var/log/ceph
+
+	newinitd "${FILESDIR}/rbdmap.initd-r1" rbdmap
+	newinitd "${FILESDIR}/${PN}.initd-r12" ${PN}
+	newconfd "${FILESDIR}/${PN}.confd-r5" ${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
+	newtmpfiles "${FILESDIR}"/ceph-tmpfilesd ${PN}.conf
+
+	readme.gentoo_create_doc
+
+	python_setup
+
+	# bug #630232
+	sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \
+		|| die "sed failed"
+
+	python_fix_shebang "${ED}"/usr/{,s}bin/
+
+	# python_fix_shebang apparently is not idempotent
+	local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]'
+	grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \
+		| xargs --null --no-run-if-empty -- sed -i -r  "s:${shebang_regex}:\1:" || die
+
+	local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* )
+	dostrip -x "${rados_classes[@]#${ED}}"
+}
+
+pkg_postinst() {
+	readme.gentoo_print_elog
+}

diff --git a/sys-cluster/ceph/files/ceph-15.2.13-no-virtualenvs.patch b/sys-cluster/ceph/files/ceph-15.2.13-no-virtualenvs.patch
new file mode 100644
index 00000000000..665bb891426
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-15.2.13-no-virtualenvs.patch
@@ -0,0 +1,73 @@
+diff --git a/cmake/modules/AddCephTest.cmake b/cmake/modules/AddCephTest.cmake
+index c9ee8c1b8f..09f75543da 100644
+--- a/cmake/modules/AddCephTest.cmake
++++ b/cmake/modules/AddCephTest.cmake
+@@ -68,14 +68,6 @@ function(add_tox_test name)
+   endif()
+   string(REPLACE ";" "," tox_envs "${tox_envs}")
+   find_package(Python3 QUIET REQUIRED)
+-  add_custom_command(
+-    OUTPUT ${venv_path}/bin/activate
+-    COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python="${Python3_EXECUTABLE}" ${venv_path}
+-    WORKING_DIRECTORY ${tox_path}
+-    COMMENT "preparing venv for ${name}")
+-  add_custom_target(${name}-venv
+-    DEPENDS ${venv_path}/bin/activate)
+-  add_dependencies(tests ${name}-venv)
+   add_test(
+     NAME ${test_name}
+     COMMAND ${CMAKE_SOURCE_DIR}/src/script/run_tox.sh
+diff --git a/src/ceph-volume/CMakeLists.txt b/src/ceph-volume/CMakeLists.txt
+index 4224499c47..9a6c87595b 100644
+--- a/src/ceph-volume/CMakeLists.txt
++++ b/src/ceph-volume/CMakeLists.txt
+@@ -8,22 +8,6 @@ if(FREEBSD)
+   add_subdirectory(plugin/zfs)
+ endif()
+ 
+-# Required for running ceph-volume inventory in a vstart environment
+-set(CEPH_VOLUME_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/ceph-volume-virtualenv)
+-
+-add_custom_command(
+-  OUTPUT ${CEPH_VOLUME_VIRTUALENV}/bin/python
+-  COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${Python_EXECUTABLE} ${CEPH_VOLUME_VIRTUALENV}
+-  WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/ceph-volume
+-  COMMENT "ceph-volume venv is being created")
+-
+-add_custom_command(
+-  OUTPUT ${CEPH_VOLUME_VIRTUALENV}/bin/ceph-volume
+-  DEPENDS ${CEPH_VOLUME_VIRTUALENV}/bin/python
+-  COMMAND . ${CEPH_VOLUME_VIRTUALENV}/bin/activate && ${CEPH_VOLUME_VIRTUALENV}/bin/python setup.py develop && deactivate
+-  WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/ceph-volume
+-  COMMENT "${CMAKE_SOURCE_DIR}/src/ceph-volume")
+-
+ add_custom_target(ceph-volume-venv-setup
+   DEPENDS ${CEPH_VOLUME_VIRTUALENV}/bin/ceph-volume)
+ 
+diff --git a/src/pybind/mgr/dashboard/CMakeLists.txt b/src/pybind/mgr/dashboard/CMakeLists.txt
+index 92e4cdc538..3153c93c45 100644
+--- a/src/pybind/mgr/dashboard/CMakeLists.txt
++++ b/src/pybind/mgr/dashboard/CMakeLists.txt
+@@ -5,9 +5,6 @@ function(add_npm_command)
+   set(multi_kw COMMAND DEPENDS)
+   cmake_parse_arguments(NC "${options}" "${single_kw}" "${multi_kw}" ${ARGN})
+   string(REPLACE ";" " " command "${NC_COMMAND}")
+-  if(NC_NODEENV)
+-    string(REGEX REPLACE "^(.*(npm|npx) .*)$" ". ${mgr-dashboard-nodeenv-dir}/bin/activate && \\1 && deactivate" command ${command})
+-  endif()
+   string(REPLACE " " ";" command "${command}")
+   add_custom_command(
+     OUTPUT "${NC_OUTPUT}"
+@@ -29,10 +26,8 @@ else()
+   set(nodeenv NODEENV)
+ 
+   add_custom_command(
+-    OUTPUT "${mgr-dashboard-nodeenv-dir}/bin/npm"
+-    COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${MGR_PYTHON_EXECUTABLE} ${mgr-dashboard-nodeenv-dir}
+-    COMMAND ${mgr-dashboard-nodeenv-dir}/bin/pip install nodeenv
+-    COMMAND ${mgr-dashboard-nodeenv-dir}/bin/nodeenv --verbose -p --node=10.18.1
++    OUTPUT "npm"
++    COMMAND nodeenv --verbose -p --node=10.18.1
+     WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+     COMMENT "dashboard nodeenv is being installed"
+   )


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2021-12-08  6:21 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2021-12-08  6:21 UTC (permalink / raw
  To: gentoo-commits

commit:     efce49ae22d7f4d35945e8107649580c7e496c20
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Wed Dec  8 06:20:40 2021 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Wed Dec  8 06:21:28 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=efce49ae

sys-cluster/ceph: Version bump

Package-Manager: Portage-3.0.28, Repoman-3.0.3
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 sys-cluster/ceph/Manifest                          |   1 +
 sys-cluster/ceph/ceph-16.2.7.ebuild                | 461 +++++++++++++++++++++
 .../ceph/files/ceph-16.2.7-no-virtualenvs.patch    |  74 ++++
 .../ceph/files/ceph-16.2.7-string-includes.patch   |  23 +
 4 files changed, 559 insertions(+)

diff --git a/sys-cluster/ceph/Manifest b/sys-cluster/ceph/Manifest
index 0998b3de4eaa..b9d1bf4a7e80 100644
--- a/sys-cluster/ceph/Manifest
+++ b/sys-cluster/ceph/Manifest
@@ -2,3 +2,4 @@ DIST ceph-14.2.22.tar.gz 130597047 BLAKE2B 58bbb3243de076ed1d25dfd7bd75717c50ad1
 DIST ceph-15.2.15.tar.gz 148584988 BLAKE2B 6ff629846a74c9b30c7e5d54731e2c85c67942f1871194cc8e704c56826b86cdd6163d6693805d9d6210bc0e3fc4d84fada12b9d81a5640e34d76be83cfe6e47 SHA512 e4d929ffda5c3e31767d93340fb97b5d49ca1d5641f6c30134ce5542486fc4f72684aef2ef47cb940a332e8b9144d8cec63ce8a9f86c773dbc0ccebdd8e7fb19
 DIST ceph-16.2.5.tar.gz 155933825 BLAKE2B 3c8f3f1663b91d4de1e3736317add0b88d9083db5ab2fc3e2e913278977deec076bd4410e309f4e47ccc169d74356c2ab1221c94532cc45ee75ec73673fc42a0 SHA512 5c32f9aa817ecfa788725bcfe5743756853ca9b3f9ee453242110f1b5e1bdd1feaef79ad9ccf2b185445c9644bcecb1355e151a2255bfd27edc9818e0d6d4c4a
 DIST ceph-16.2.6.tar.gz 156087762 BLAKE2B e2595d1a958200e4f1877e4597c53319a9eee2e95606ea1b3ba2966a0d17f1cfcf52e05cca59752cc6ac383e32d944c380920d111aec840631235aef273a4de1 SHA512 f01e29088ae566d4111c21b5d0c173ddb02badaa0d8272f7f1548eb8e66a95dc7052b3945d9fb342e6c97a65c57648fda394317340d1f4236a57af7580073658
+DIST ceph-16.2.7.tar.gz 156621262 BLAKE2B 3c79cb1586e71927df4578fe7f3a13f4ab257a5e145b6bf76d942292cbca7bf32583350373f3d816f6d8f8700ee0f98a14f350c823b0eb89ffd7735acee7de63 SHA512 eab047e646970d444acf1064d98237b8b1677fb16b5e771082d55880f7bc6d8bdb278c2fe514c82ae12c438878d9ecea29139fa6b8d890f9f737138f10fb740c

diff --git a/sys-cluster/ceph/ceph-16.2.7.ebuild b/sys-cluster/ceph/ceph-16.2.7.ebuild
new file mode 100644
index 000000000000..eefa97462b83
--- /dev/null
+++ b/sys-cluster/ceph/ceph-16.2.7.ebuild
@@ -0,0 +1,461 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{7..9} )
+DISTUTILS_OPTIONAL=1
+LUA_COMPAT=( lua5-3 )
+
+CMAKE_MAKEFILE_GENERATOR=emake
+
+inherit check-reqs bash-completion-r1 cmake distutils-r1 flag-o-matic \
+		lua-single python-r1 udev readme.gentoo-r1 toolchain-funcs \
+		systemd tmpfiles multiprocessing
+
+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 ~ppc64"
+fi
+
+DESCRIPTION="Ceph distributed filesystem"
+HOMEPAGE="https://ceph.com/"
+
+LICENSE="Apache-2.0 LGPL-2.1 CC-BY-SA-3.0 GPL-2 GPL-2+ LGPL-2+ LGPL-2.1 LGPL-3 GPL-3 BSD Boost-1.0 MIT public-domain"
+SLOT="0"
+
+CPU_FLAGS_X86=(avx2 avx512f pclmul sse{,2,3,4_1,4_2} ssse3)
+
+IUSE="babeltrace +cephfs custom-cflags diskprediction dpdk fuse grafana
+	jemalloc jaeger kafka kerberos ldap lttng +mgr numa pmdk rabbitmq
+	+radosgw rbd-rwl rbd-ssd rgw-lua +ssl spdk +sqlite +system-boost systemd
+	+tcmalloc test uring xfs zbd zfs"
+IUSE+=" $(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})"
+
+DEPEND="
+	${LUA_DEPS}
+	acct-group/ceph
+	acct-user/ceph
+	virtual/libudev:=
+	app-arch/bzip2:=
+	app-arch/lz4:=
+	app-arch/snappy
+	|| ( >=app-arch/snappy-1.1.9-r1 <app-arch/snappy-1.1.9 )
+	app-arch/zstd:=
+	app-shells/bash:0
+	app-misc/jq:=
+	dev-libs/crypto++:=
+	dev-cpp/gflags:=
+	<dev-libs/leveldb-1.23:=[snappy,tcmalloc(-)?]
+	dev-libs/libaio:=
+	dev-libs/libfmt:=
+	dev-libs/libnl:3=
+	dev-libs/libxml2:=
+	dev-libs/libevent:=
+	<dev-libs/rocksdb-6.15:=
+	dev-libs/xmlsec:=[openssl]
+	dev-cpp/yaml-cpp:=
+	dev-libs/nss:=
+	dev-libs/protobuf:=
+	net-dns/c-ares:=
+	net-libs/gnutls:=
+	sys-auth/oath-toolkit:=
+	sys-apps/coreutils
+	sys-apps/grep
+	sys-apps/hwloc:=
+	sys-apps/keyutils:=
+	sys-apps/util-linux:=
+	sys-apps/sed
+	sys-apps/util-linux
+	sys-libs/libcap-ng:=
+	sys-libs/ncurses:0=
+	sys-libs/zlib:=
+	sys-process/numactl:=
+	virtual/libcrypt:=
+	x11-libs/libpciaccess:=
+	babeltrace? ( dev-util/babeltrace )
+	fuse? ( sys-fs/fuse:0= )
+	jemalloc? ( dev-libs/jemalloc:= )
+	!jemalloc? ( >=dev-util/google-perftools-2.6.1:= )
+	jaeger? ( dev-cpp/nlohmann_json:= )
+	kafka? ( dev-libs/librdkafka:= )
+	kerberos? ( virtual/krb5 )
+	ldap? ( net-nds/openldap:= )
+	lttng? ( dev-util/lttng-ust:= )
+	pmdk? ( dev-libs/pmdk:= )
+	rabbitmq? ( net-libs/rabbitmq-c:= )
+	radosgw? (
+		dev-libs/icu:=
+		dev-libs/expat:=
+		dev-libs/openssl:=
+		net-misc/curl:=[curl_ssl_openssl]
+	)
+	rbd-rwl? ( dev-libs/pmdk:= )
+	ssl? ( dev-libs/openssl:= )
+	sqlite? ( dev-db/sqlite:= )
+	system-boost? ( >=dev-libs/boost-1.72:=[threads(+),context,python,${PYTHON_USEDEP}] )
+	uring? ( sys-libs/liburing:= )
+	xfs? ( sys-fs/xfsprogs:= )
+	zbd? ( sys-block/libzbd:= )
+	zfs? ( sys-fs/zfs:= )
+	${PYTHON_DEPS}
+"
+BDEPEND="
+	amd64? ( dev-lang/nasm )
+	x86? ( dev-lang/yasm )
+	app-arch/cpio
+	>=dev-util/cmake-3.5.0
+	dev-python/cython[${PYTHON_USEDEP}]
+	dev-python/setuptools[${PYTHON_USEDEP}]
+	dev-python/sphinx
+	dev-util/cunit
+	dev-util/gperf
+	dev-util/ragel
+	dev-util/valgrind
+	sys-apps/coreutils
+	sys-apps/findutils
+	sys-apps/grep
+	sys-apps/sed
+	sys-apps/which
+	sys-devel/bc
+	sys-devel/patch
+	virtual/pkgconfig
+	jaeger? (
+		sys-devel/bison
+		sys-devel/flex
+	)
+	test? (
+		dev-python/coverage[${PYTHON_USEDEP}]
+		dev-python/virtualenv[${PYTHON_USEDEP}]
+		dev-python/requests-mock[${PYTHON_USEDEP}]
+		sys-apps/grep[pcre]
+		sys-fs/btrfs-progs
+	)
+"
+RDEPEND="
+	${DEPEND}
+	app-admin/sudo
+	net-misc/socat
+	sys-apps/gptfdisk
+	sys-apps/nvme-cli
+	>=sys-apps/smartmontools-7.0
+	sys-block/parted
+	sys-fs/cryptsetup
+	sys-fs/lsscsi
+	sys-fs/lvm2[-device-mapper-only(-)]
+	virtual/awk
+	dev-python/bcrypt[${PYTHON_USEDEP}]
+	dev-python/cherrypy[${PYTHON_USEDEP}]
+	dev-python/python-dateutil[${PYTHON_USEDEP}]
+	dev-python/flask[${PYTHON_USEDEP}]
+	dev-python/jinja[${PYTHON_USEDEP}]
+	dev-python/pecan[${PYTHON_USEDEP}]
+	dev-python/prettytable[${PYTHON_USEDEP}]
+	dev-python/pyopenssl[${PYTHON_USEDEP}]
+	dev-python/pyyaml[${PYTHON_USEDEP}]
+	dev-python/requests[${PYTHON_USEDEP}]
+	dev-python/werkzeug[${PYTHON_USEDEP}]
+	mgr? (
+		dev-python/jsonpatch[${PYTHON_USEDEP}]
+		dev-python/more-itertools[${PYTHON_USEDEP}]
+		dev-python/numpy[${PYTHON_USEDEP}]
+		dev-python/pyjwt[${PYTHON_USEDEP}]
+		dev-python/routes[${PYTHON_USEDEP}]
+		diskprediction? (
+			>=dev-python/scipy-1.4.0[${PYTHON_USEDEP}]
+		)
+		sci-libs/scikit-learn[${PYTHON_USEDEP}]
+		dev-python/six[${PYTHON_USEDEP}]
+	)
+"
+# diskprediction needs older scipy not compatible with py38
+# bug #724438
+REQUIRED_USE="
+	${PYTHON_REQUIRED_USE}
+	${LUA_REQUIRED_USE}
+	?? ( jemalloc tcmalloc )
+	jaeger? ( !system-boost )
+	diskprediction? ( mgr )
+	kafka? ( radosgw )
+	mgr? ( cephfs )
+	rabbitmq? ( radosgw )
+"
+RESTRICT="!test? ( test )"
+
+# the tests need root access
+RESTRICT="test? ( userpriv )"
+
+# distribution tarball does not include everything needed for tests
+RESTRICT+=" test"
+
+# create a non-debug release
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+# false positives unless all USE flags are on
+CMAKE_WARN_UNUSED_CLI=no
+
+PATCHES=(
+	"${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch"
+	"${FILESDIR}/ceph-14.2.0-cflags.patch"
+	"${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch"
+	"${FILESDIR}/ceph-16.2.2-cflags.patch"
+	"${FILESDIR}/ceph-16.2.7-no-virtualenvs.patch"
+	"${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
+	"${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch"
+	"${FILESDIR}/ceph-14.2.0-cython-0.29.patch"
+	"${FILESDIR}/ceph-16.2.0-rocksdb-cmake.patch"
+	"${FILESDIR}/ceph-15.2.3-spdk-compile.patch"
+	"${FILESDIR}/ceph-16.2.0-spdk-tinfo.patch"
+	"${FILESDIR}/ceph-16.2.0-jaeger-system-boost.patch"
+	"${FILESDIR}/ceph-16.2.0-liburing.patch"
+	"${FILESDIR}/ceph-16.2.2-system-zstd.patch"
+	"${FILESDIR}/ceph-16.2.7-string-includes.patch"
+)
+
+check-reqs_export_vars() {
+	CHECKREQS_DISK_BUILD="6G"
+
+	if use system-boost; then
+		CHECKREQS_DISK_USR="350M"
+	else
+		CHECKREQS_DISK_USR="510M"
+	fi
+
+	export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR
+}
+
+pkg_pretend() {
+	check-reqs_export_vars
+	check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+	python_setup
+	lua_setup
+	check-reqs_export_vars
+	check-reqs_pkg_setup
+}
+
+src_prepare() {
+	cmake_src_prepare
+
+	if use system-boost; then
+		find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \
+			| xargs --null sed -r \
+			-e 's|Boost::|boost_|g' \
+			-e 's|Boost_|boost_|g' \
+			-e 's|[Bb]oost_boost|boost_system|g' -i || die
+	fi
+
+	if ! use systemd; then
+		find "${S}"/src/ceph-volume/ceph_volume -name '*.py' -print0 \
+			| xargs --null sed \
+			-e '/^from ceph_volume.systemd import systemctl/ d' \
+			-i || die
+	fi
+
+	sed -r -e "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \
+		-i src/bash_completion/CMakeLists.txt || die
+
+	sed  -e "s:objdump -p:$(tc-getOBJDUMP) -p:" -i CMakeLists.txt || die
+
+	if ! use diskprediction; then
+		rm -rf src/pybind/mgr/diskprediction_local || die
+	fi
+
+	# force lua version to use selected version
+	local lua_version
+	lua_version=$(ver_cut 1-2 $(lua_get_version))
+	sed -i "s:find_package(Lua [0-9][.][0-9] REQUIRED):find_package(Lua ${lua_version} EXACT REQUIRED):" src/CMakeLists.txt
+
+	# remove tests that need root access
+	rm src/test/cli/ceph-authtool/cap*.t || die
+}
+
+ceph_src_configure() {
+	local flag
+	local mycmakeargs=(
+		-DWITH_BABELTRACE=$(usex babeltrace)
+		-DWITH_BLUESTORE_PMEM=$(usex pmdk)
+		-DWITH_CEPHFS=$(usex cephfs)
+		-DWITH_CEPHFS_SHELL=$(usex cephfs)
+		-DWITH_DPDK=$(usex dpdk)
+		-DWITH_SPDK=$(usex spdk)
+		-DWITH_FUSE=$(usex fuse)
+		-DWITH_LTTNG=$(usex lttng)
+		-DWITH_GSSAPI=$(usex kerberos)
+		-DWITH_GRAFANA=$(usex grafana)
+		-DWITH_MGR=$(usex mgr)
+		-DWITH_MGR_DASHBOARD_FRONTEND=OFF
+		-DWITH_NUMA=$(usex numa)
+		-DWITH_OPENLDAP=$(usex ldap)
+		-DWITH_PYTHON3=3
+		-DWITH_RADOSGW=$(usex radosgw)
+		-DWITH_RADOSGW_AMQP_ENDPOINT=$(usex rabbitmq)
+		-DWITH_RADOSGW_KAFKA_ENDPOINT=$(usex kafka)
+		-DWITH_RADOSGW_LUA_PACKAGES=$(usex rgw-lua "$(usex radosgw)" "NO")
+		-DWITH_RBD_RWL=$(usex rbd-rwl)
+		-DWITH_RBD_SSD_CACHE=$(usex rbd-ssd)
+		-DWITH_SSL=$(usex ssl)
+		-DWITH_SYSTEMD=$(usex systemd)
+		-DWITH_TESTS=$(usex test)
+		-DWITH_LIBURING=$(usex uring)
+		-DWITH_SYSTEM_LIBURING=$(usex uring)
+		-DWITH_LIBCEPHSQLITE=$(usex sqlite)
+		-DWITH_XFS=$(usex xfs)
+		-DWITH_ZBD=$(usex zbd)
+		-DWITH_ZFS=$(usex zfs)
+		-DENABLE_SHARED="ON"
+		-DALLOCATOR=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')")
+		-DWITH_SYSTEM_PMDK=$(usex pmdk 'YES' "$(usex rbd-rwl)")
+		-DWITH_SYSTEM_BOOST=$(usex system-boost)
+		-DBOOST_J=$(makeopts_jobs)
+		-DWITH_SYSTEM_ROCKSDB=ON
+		-DWITH_RDMA=OFF
+		-DWITH_TBB=OFF
+		-DSYSTEMD_UNITDIR=$(systemd_get_systemunitdir)
+		-DCMAKE_INSTALL_SYSTEMD_SERVICEDIR=$(systemd_get_systemunitdir)
+		-DEPYTHON_VERSION="${EPYTHON#python}"
+		-DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PN}-${PVR}"
+		-DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
+		-Wno-dev
+	)
+
+	# this breaks when re-configuring for python impl
+	[[ ${EBUILD_PHASE} == configure ]] && mycmakeargs+=(-DWITH_JAEGER=$(usex jaeger))
+
+	if use amd64 || use x86; then
+		for flag in ${CPU_FLAGS_X86[@]}; do
+			case "${flag}" in
+				avx*)
+					local var=${flag%f}
+					mycmakeargs+=("$(usex cpu_flags_x86_${flag} "-DHAVE_NASM_X64_${var^^}=1")")
+				;;
+				*) mycmakeargs+=("$(usex cpu_flags_x86_${flag} "-DHAVE_INTEL_${flag^^}=1")");;
+			esac
+		done
+	fi
+
+	# needed for >=glibc-2.32
+	has_version '>=sys-libs/glibc-2.32' && mycmakeargs+=(-DWITH_REENTRANT_STRSIGNAL:BOOL=ON)
+
+	rm -f "${BUILD_DIR:-${S}}/CMakeCache.txt" \
+		|| die "failed to remove cmake cache"
+
+	cmake_src_configure
+
+	# bug #630232
+	sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \
+		"${BUILD_DIR:-${S}}"/include/acconfig.h \
+		|| die "sed failed"
+}
+
+src_configure() {
+	use custom-cflags || strip-flags
+	ceph_src_configure
+}
+
+python_compile() {
+	local CMAKE_USE_DIR="${S}"
+	ceph_src_configure
+
+	pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
+	emake VERBOSE=1 clean
+	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_build VERBOSE=1 all
+
+	# we have to do this here to prevent from building everything multiple times
+	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="${ED}" emake VERBOSE=1 install
+	popd >/dev/null || die
+
+	python_optimize
+}
+
+src_install() {
+	cmake_src_install
+	python_foreach_impl python_install
+
+	find "${ED}" -name '*.la' -type f -delete || die
+
+	exeinto /usr/$(get_libdir)/ceph
+	newexe "${BUILD_DIR}/bin/init-ceph" init-ceph
+
+	insinto /etc/logrotate.d/
+	newins "${FILESDIR}"/ceph.logrotate-r2 ${PN}
+
+	keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat
+
+	fowners -R ceph:ceph /var/log/ceph
+
+	newinitd "${FILESDIR}/rbdmap.initd-r1" rbdmap
+	newinitd "${FILESDIR}/${PN}.initd-r12" ${PN}
+	newconfd "${FILESDIR}/${PN}.confd-r5" ${PN}
+
+	insinto /etc/sudoers.d
+	doins sudoers.d/*
+
+	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
+	newtmpfiles "${FILESDIR}"/ceph-tmpfilesd ${PN}.conf
+
+	readme.gentoo_create_doc
+
+	python_setup
+
+	# bug #630232
+	sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \
+		|| die "sed failed"
+
+	python_fix_shebang "${ED}"/usr/{,s}bin/
+
+	# python_fix_shebang apparently is not idempotent
+	local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]'
+	grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \
+		| xargs --null --no-run-if-empty -- sed -i -r  "s:${shebang_regex}:\1:" || die
+
+	local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* )
+	dostrip -x "${rados_classes[@]#${ED}}"
+}
+
+pkg_postinst() {
+	readme.gentoo_print_elog
+	tmpfiles_process ${PN}.conf
+}

diff --git a/sys-cluster/ceph/files/ceph-16.2.7-no-virtualenvs.patch b/sys-cluster/ceph/files/ceph-16.2.7-no-virtualenvs.patch
new file mode 100644
index 000000000000..977a3ab50cba
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-16.2.7-no-virtualenvs.patch
@@ -0,0 +1,74 @@
+diff --git a/cmake/modules/AddCephTest.cmake b/cmake/modules/AddCephTest.cmake
+index d26d003c779..bc962e3aa73 100644
+--- a/cmake/modules/AddCephTest.cmake
++++ b/cmake/modules/AddCephTest.cmake
+@@ -70,14 +70,6 @@ function(add_tox_test name)
+   endif()
+   string(REPLACE ";" "," tox_envs "${tox_envs}")
+   find_package(Python3 QUIET REQUIRED)
+-  add_custom_command(
+-    OUTPUT ${venv_path}/bin/activate
+-    COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python="${Python3_EXECUTABLE}" ${venv_path}
+-    WORKING_DIRECTORY ${tox_path}
+-    COMMENT "preparing venv for ${name}")
+-  add_custom_target(${name}-venv
+-    DEPENDS ${venv_path}/bin/activate)
+-  add_dependencies(tests ${name}-venv)
+   add_test(
+     NAME ${test_name}
+     COMMAND ${CMAKE_SOURCE_DIR}/src/script/run_tox.sh
+diff --git a/src/ceph-volume/CMakeLists.txt b/src/ceph-volume/CMakeLists.txt
+index 9166553dc73..9a6c87595b9 100644
+--- a/src/ceph-volume/CMakeLists.txt
++++ b/src/ceph-volume/CMakeLists.txt
+@@ -8,22 +8,6 @@ if(FREEBSD)
+   add_subdirectory(plugin/zfs)
+ endif()
+ 
+-# Required for running ceph-volume inventory in a vstart environment
+-set(CEPH_VOLUME_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/ceph-volume-virtualenv)
+-
+-add_custom_command(
+-  OUTPUT ${CEPH_VOLUME_VIRTUALENV}/bin/python
+-  COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${Python3_EXECUTABLE} ${CEPH_VOLUME_VIRTUALENV}
+-  WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/ceph-volume
+-  COMMENT "ceph-volume venv is being created")
+-
+-add_custom_command(
+-  OUTPUT ${CEPH_VOLUME_VIRTUALENV}/bin/ceph-volume
+-  DEPENDS ${CEPH_VOLUME_VIRTUALENV}/bin/python
+-  COMMAND . ${CEPH_VOLUME_VIRTUALENV}/bin/activate && ${CEPH_VOLUME_VIRTUALENV}/bin/python setup.py develop && deactivate
+-  WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/ceph-volume
+-  COMMENT "${CMAKE_SOURCE_DIR}/src/ceph-volume")
+-
+ add_custom_target(ceph-volume-venv-setup
+   DEPENDS ${CEPH_VOLUME_VIRTUALENV}/bin/ceph-volume)
+ 
+diff --git a/src/pybind/mgr/dashboard/CMakeLists.txt b/src/pybind/mgr/dashboard/CMakeLists.txt
+index 9b3432213a0..973b185f5de 100644
+--- a/src/pybind/mgr/dashboard/CMakeLists.txt
++++ b/src/pybind/mgr/dashboard/CMakeLists.txt
+@@ -5,9 +5,6 @@ function(add_npm_command)
+   set(multi_kw COMMAND DEPENDS)
+   cmake_parse_arguments(NC "${options}" "${single_kw}" "${multi_kw}" ${ARGN})
+   string(REPLACE ";" " " command "${NC_COMMAND}")
+-  if(NC_NODEENV)
+-    string(REGEX REPLACE "^(.*(npm|npx) .*)$" ". ${mgr-dashboard-nodeenv-dir}/bin/activate && \\1 && deactivate" command ${command})
+-  endif()
+   string(REPLACE " " ";" command "${command}")
+   add_custom_command(
+     OUTPUT "${NC_OUTPUT}"
+@@ -51,11 +48,8 @@ else(WITH_SYSTEM_NPM)
+     set(node_mirror_opt "--mirror=$ENV{NODE_MIRROR}")
+   endif()
+   add_custom_command(
+-    OUTPUT "${mgr-dashboard-nodeenv-dir}/bin/npm"
+-    COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${MGR_PYTHON_EXECUTABLE} ${mgr-dashboard-nodeenv-dir}
+-    COMMAND ${mgr-dashboard-nodeenv-dir}/bin/pip install nodeenv
+-    COMMAND ${mgr-dashboard-nodeenv-dir}/bin/nodeenv --verbose ${node_mirror_opt} -p --node=12.18.2
+-    COMMAND mkdir ${mgr-dashboard-nodeenv-dir}/.npm
++    OUTPUT "/bin/npm"
++    COMMAND /bin/nodeenv ${node_mirror_opt} -p --node=12.18.2
+     WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+     COMMENT "dashboard nodeenv is being installed"
+     )

diff --git a/sys-cluster/ceph/files/ceph-16.2.7-string-includes.patch b/sys-cluster/ceph/files/ceph-16.2.7-string-includes.patch
new file mode 100644
index 000000000000..f703a8fcf46a
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-16.2.7-string-includes.patch
@@ -0,0 +1,23 @@
+commit ebf3a0398f18eab67d2ba25e6a10b41ff140f6a4
+Author: Duncan Bellamy <dunk@denkimushi.com>
+Date:   Fri May 21 06:30:10 2021 +0100
+
+    rgw/rgw_string.h: add missing includes for alpine and boost 1.75
+    alpine needs: string, stdexcept
+    
+    Fixes: https://tracker.ceph.com/issues/50924
+    Signed-off-by: Duncan Bellamy <dunk@denkimushi.com>
+
+diff --git a/src/rgw/rgw_string.h b/src/rgw/rgw_string.h
+index 257daa9c1fe..90e64f98a25 100644
+--- a/src/rgw/rgw_string.h
++++ b/src/rgw/rgw_string.h
+@@ -8,6 +8,8 @@
+ #include <stdlib.h>
+ #include <limits.h>
+ #include <string_view>
++#include <string>
++#include <stdexcept>
+ 
+ #include <boost/container/small_vector.hpp>
+ 


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2022-05-04 22:43 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2022-05-04 22:43 UTC (permalink / raw
  To: gentoo-commits

commit:     cf1586831645abb734e92e5f4224f8d6d825c23a
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Wed May  4 22:37:12 2022 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Wed May  4 22:43:24 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cf158683

sys-cluster/ceph: add 17.2.0

Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 sys-cluster/ceph/Manifest                          |   2 +
 sys-cluster/ceph/ceph-17.2.0.ebuild                | 455 +++++++++++++++++++++
 .../ceph/files/ceph-17.2.0-boost-1.74.patch        |  25 ++
 .../ceph/files/ceph-17.2.0-cyclic-deps.patch       |  53 +++
 .../ceph/files/ceph-17.2.0-deprecated-boost.patch  |  69 ++++
 sys-cluster/ceph/files/ceph-17.2.0-findre2.patch   |  22 +
 .../ceph/files/ceph-17.2.0-install-dbstore.patch   |  12 +
 .../ceph/files/ceph-17.2.0-no-virtualenvs.patch    |  68 +++
 .../ceph/files/ceph-17.2.0-pybind-boost-1.74.patch |  26 ++
 .../files/ceph-17.2.0-system-opentelemetry.patch   |  20 +
 sys-cluster/ceph/metadata.xml                      |   5 +
 11 files changed, 757 insertions(+)

diff --git a/sys-cluster/ceph/Manifest b/sys-cluster/ceph/Manifest
index 45f6d44762e5..884ad263bca6 100644
--- a/sys-cluster/ceph/Manifest
+++ b/sys-cluster/ceph/Manifest
@@ -1,3 +1,5 @@
 DIST ceph-14.2.22.tar.gz 130597047 BLAKE2B 58bbb3243de076ed1d25dfd7bd75717c50ad15d16690dcbd1511d1b506477845efc3ff7fbe713cf18fb8cfcc8c16707ad2a0f30159e3198ff82e57fbd2eb3cf2 SHA512 1c66661e1a39fa9151e95e33c390b810ffe269465d8785e2197cc15b8d83bd2edde77de48a8abd71a4da68cd5830ff14bcdf6b98fd17edabe85caeb1eca018d3
 DIST ceph-15.2.16.tar.gz 148628915 BLAKE2B 4f624078027c706428eae3eddd5b5479efe3b4442c19a4e6b6cdf8d3839cf56e2863b18249dc3c5079a7e25f60796bfec3202ffd695537587654f5e2f820caaa SHA512 532b8a5073e157fe9ed552b26976faeb64dc29b79a249910c0982134ad5f945d4f57d8bf451adf63487b6d285c6e4bd5c39f0e3fcd449230d6fb3087539f8c3b
 DIST ceph-16.2.7.tar.gz 156621262 BLAKE2B 3c79cb1586e71927df4578fe7f3a13f4ab257a5e145b6bf76d942292cbca7bf32583350373f3d816f6d8f8700ee0f98a14f350c823b0eb89ffd7735acee7de63 SHA512 eab047e646970d444acf1064d98237b8b1677fb16b5e771082d55880f7bc6d8bdb278c2fe514c82ae12c438878d9ecea29139fa6b8d890f9f737138f10fb740c
+DIST ceph-17.2.0.tar.gz 168742006 BLAKE2B 15272da3471722936198f62b5ef7537d29bd944b35ef1552e87cf0f0f400a8be5fd1fa873494eb17ca71df9360d7ffa4fa20a6f1b1ba819520b180770a4e6299 SHA512 70b96e709f153f16069bec8346ea73812d699eaab91a012351d02addb3fd176b84fce32c3dae84fdf91d0ffe49f2bb258410b47caeee81d81a672b4dbd04cc7e
+DIST ceph-xsimd-17.2.0.tar.gz 173025 BLAKE2B 54679c24804c195ae55b9f49589e331dde92c6d89aaa20e827539e9a4e0010c7549cdd5cf02a7ebed83f953ab2a6f1d9cc9a98cf45c3dc7758ae4938c9c43713 SHA512 ecc58e7909648aaa22aefbf76ee2c5a2bece4b1b88da9c7eda1b69a46247e619ff99c4366afd6015f95debd68c1a6b89292c677b9049462d0fc0255fbc0c2a33

diff --git a/sys-cluster/ceph/ceph-17.2.0.ebuild b/sys-cluster/ceph/ceph-17.2.0.ebuild
new file mode 100644
index 000000000000..74a067688a6d
--- /dev/null
+++ b/sys-cluster/ceph/ceph-17.2.0.ebuild
@@ -0,0 +1,455 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..10} )
+LUA_COMPAT=( lua5-{3..4} )
+
+inherit check-reqs bash-completion-r1 cmake flag-o-matic lua-single \
+		python-r1 udev readme.gentoo-r1 toolchain-funcs systemd tmpfiles
+
+SRC_URI="
+	https://download.ceph.com/tarballs/${P}.tar.gz
+	parquet? ( https://github.com/xtensor-stack/xsimd/archive/aeec9c872c8b475dedd7781336710f2dd2666cb2.tar.gz -> ceph-xsimd-${PV}.tar.gz )
+"
+KEYWORDS="~amd64"
+
+DESCRIPTION="Ceph distributed filesystem"
+HOMEPAGE="https://ceph.com/"
+
+LICENSE="Apache-2.0 LGPL-2.1 CC-BY-SA-3.0 GPL-2 GPL-2+ LGPL-2+ LGPL-2.1 LGPL-3 GPL-3 BSD Boost-1.0 MIT public-domain"
+SLOT="0"
+
+CPU_FLAGS_X86=(avx2 avx512f pclmul sse{,2,3,4_1,4_2} ssse3)
+
+IUSE="
+	babeltrace +cephfs custom-cflags diskprediction dpdk fuse grafana
+	jemalloc jaeger kafka kerberos ldap lttng +mgr +parquet pmdk rabbitmq
+	+radosgw rbd-rwl rbd-ssd rdma rgw-lua +ssl spdk +sqlite +system-boost
+	systemd +tcmalloc test +uring xfs zbd zfs
+"
+
+IUSE+="$(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})"
+
+DEPEND="
+	${LUA_DEPS}
+	${PYTHON_DEPS}
+	acct-group/ceph
+	acct-user/ceph
+	virtual/libudev:=
+	app-arch/bzip2:=
+	app-arch/lz4:=
+	app-arch/snappy:=
+	|| ( >=app-arch/snappy-1.1.9-r1 <app-arch/snappy-1.1.9 )
+	app-arch/zstd:=
+	app-shells/bash:0
+	app-misc/jq:=
+	dev-libs/crypto++:=
+	dev-cpp/gflags:=
+	<dev-libs/leveldb-1.23:=[snappy,tcmalloc(-)?]
+	dev-libs/libaio:=
+	>=dev-libs/libfmt-6.2.1:=
+	dev-libs/libnl:3=
+	dev-libs/libxml2:=
+	dev-libs/libevent:=
+	dev-libs/libutf8proc:=
+	dev-libs/openssl:=
+	<dev-libs/rocksdb-6.15:=
+	dev-libs/thrift:=
+	dev-libs/xmlsec:=[openssl]
+	dev-cpp/yaml-cpp:=
+	dev-libs/nss:=
+	dev-python/pyyaml[${PYTHON_USEDEP}]
+	net-dns/c-ares:=
+	net-libs/gnutls:=
+	sys-auth/oath-toolkit:=
+	sys-apps/coreutils
+	sys-apps/hwloc:=
+	sys-apps/keyutils:=
+	sys-apps/util-linux:=
+	sys-libs/libcap-ng:=
+	sys-libs/ncurses:0=
+	sys-libs/zlib:=
+	sys-process/numactl:=
+	virtual/libcrypt:=
+	x11-libs/libpciaccess:=
+	babeltrace? ( dev-util/babeltrace )
+	fuse? ( sys-fs/fuse:0= )
+	jemalloc? ( dev-libs/jemalloc:= )
+	!jemalloc? ( >=dev-util/google-perftools-2.6.1:= )
+	jaeger? (
+		dev-cpp/nlohmann_json:=
+		dev-cpp/opentelemetry-cpp:=[jaeger]
+	)
+	kafka? ( dev-libs/librdkafka:= )
+	kerberos? ( virtual/krb5 )
+	ldap? ( net-nds/openldap:= )
+	lttng? ( dev-util/lttng-ust:= )
+	parquet? ( dev-libs/re2:= )
+	pmdk? ( dev-libs/pmdk:= )
+	rabbitmq? ( net-libs/rabbitmq-c:= )
+	radosgw? (
+		dev-libs/icu:=
+		dev-libs/expat:=
+		net-misc/curl:=[curl_ssl_openssl]
+	)
+	rbd-rwl? ( dev-libs/pmdk:= )
+	rdma? ( sys-cluster/rdma-core:= )
+	spdk? ( dev-util/cunit )
+	sqlite? ( dev-db/sqlite:= )
+	system-boost? ( >=dev-libs/boost-1.72:=[threads(+),context,python,${PYTHON_USEDEP}] )
+	uring? ( sys-libs/liburing:= )
+	xfs? ( sys-fs/xfsprogs:= )
+	zbd? ( sys-block/libzbd:= )
+	zfs? ( sys-fs/zfs:= )
+"
+BDEPEND="
+	amd64? ( dev-lang/nasm )
+	x86? ( dev-lang/yasm )
+	app-arch/cpio
+	>=dev-util/cmake-3.5.0
+	dev-python/cython[${PYTHON_USEDEP}]
+	dev-python/setuptools[${PYTHON_USEDEP}]
+	dev-python/sphinx
+	dev-util/gperf
+	dev-util/ragel
+	dev-util/valgrind
+	sys-apps/coreutils
+	sys-apps/grep
+	sys-apps/sed
+	sys-apps/util-linux
+	sys-apps/which
+	sys-devel/bc
+	sys-devel/patch
+	virtual/pkgconfig
+	jaeger? (
+		sys-devel/bison
+		sys-devel/flex
+	)
+	test? (
+		dev-util/cunit
+		dev-python/coverage[${PYTHON_USEDEP}]
+		dev-python/virtualenv[${PYTHON_USEDEP}]
+		dev-python/requests-mock[${PYTHON_USEDEP}]
+		sys-apps/grep[pcre]
+		sys-fs/btrfs-progs
+	)
+"
+RDEPEND="
+	${DEPEND}
+	app-admin/sudo
+	net-misc/socat
+	sys-apps/gptfdisk
+	sys-apps/nvme-cli
+	>=sys-apps/smartmontools-7.0
+	sys-block/parted
+	sys-fs/cryptsetup
+	sys-fs/lsscsi
+	sys-fs/lvm2[-device-mapper-only(-)]
+	virtual/awk
+	dev-python/bcrypt[${PYTHON_USEDEP}]
+	dev-python/cherrypy[${PYTHON_USEDEP}]
+	dev-python/python-dateutil[${PYTHON_USEDEP}]
+	dev-python/flask[${PYTHON_USEDEP}]
+	dev-python/jinja[${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}]
+	mgr? (
+		dev-python/jsonpatch[${PYTHON_USEDEP}]
+		dev-python/more-itertools[${PYTHON_USEDEP}]
+		dev-python/numpy[${PYTHON_USEDEP}]
+		dev-python/pyjwt[${PYTHON_USEDEP}]
+		dev-python/routes[${PYTHON_USEDEP}]
+		diskprediction? (
+			>=dev-python/scipy-1.4.0[${PYTHON_USEDEP}]
+		)
+		sci-libs/scikit-learn[${PYTHON_USEDEP}]
+		dev-python/six[${PYTHON_USEDEP}]
+	)
+"
+# diskprediction needs older scipy not compatible with py38
+# bug #724438
+REQUIRED_USE="
+	${PYTHON_REQUIRED_USE}
+	${LUA_REQUIRED_USE}
+	?? ( jemalloc tcmalloc )
+	diskprediction? ( mgr )
+	kafka? ( radosgw )
+	mgr? ( cephfs )
+	rabbitmq? ( radosgw )
+	rgw-lua? ( radosgw )
+"
+
+RESTRICT="
+	!test? ( test )
+"
+
+# tests need root access, and network access
+RESTRICT+="test"
+
+# false positives unless all USE flags are on
+CMAKE_WARN_UNUSED_CLI=no
+
+PATCHES=(
+	"${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch"
+	"${FILESDIR}/ceph-14.2.0-cflags.patch"
+	"${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch"
+	"${FILESDIR}/ceph-16.2.2-cflags.patch"
+	"${FILESDIR}/ceph-17.2.0-no-virtualenvs.patch"
+	"${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
+	"${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch"
+	"${FILESDIR}/ceph-16.2.0-rocksdb-cmake.patch"
+	"${FILESDIR}/ceph-16.2.0-spdk-tinfo.patch"
+	"${FILESDIR}/ceph-16.2.0-jaeger-system-boost.patch"
+	"${FILESDIR}/ceph-16.2.0-liburing.patch"
+	"${FILESDIR}/ceph-17.2.0-cyclic-deps.patch"
+	"${FILESDIR}/ceph-17.2.0-pybind-boost-1.74.patch"
+	"${FILESDIR}/ceph-17.2.0-findre2.patch"
+	"${FILESDIR}/ceph-17.2.0-install-dbstore.patch"
+	"${FILESDIR}/ceph-17.2.0-deprecated-boost.patch"
+	"${FILESDIR}/ceph-17.2.0-system-opentelemetry.patch"
+)
+
+check-reqs_export_vars() {
+	CHECKREQS_DISK_BUILD="6G"
+
+	if use system-boost; then
+		CHECKREQS_DISK_USR="350M"
+	else
+		CHECKREQS_DISK_USR="510M"
+	fi
+
+	export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR
+}
+
+pkg_pretend() {
+	check-reqs_export_vars
+	check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+	python_setup
+	lua_setup
+	check-reqs_export_vars
+	check-reqs_pkg_setup
+}
+
+src_prepare() {
+	cmake_src_prepare
+
+	if use system-boost; then
+		find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \
+			| xargs --null sed -r \
+			-e 's|Boost::|boost_|g' \
+			-e 's|Boost_|boost_|g' \
+			-e 's|[Bb]oost_boost|boost_system|g' \
+			-i || die
+	fi
+
+	if ! use systemd; then
+		find "${S}"/src/ceph-volume/ceph_volume -name '*.py' -print0 \
+			| xargs --null sed \
+			-e '/^from ceph_volume.systemd import systemctl/ d' \
+			-i || die
+	fi
+
+	sed -r -e "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \
+		-i src/bash_completion/CMakeLists.txt || die
+
+	sed -e "s:objdump -p:$(tc-getOBJDUMP) -p:" -i CMakeLists.txt || die
+
+	# force lua version to use selected version
+	local lua_version
+	lua_version=$(ver_cut 1-2 $(lua_get_version))
+	sed "s:find_package(Lua [0-9][.][0-9] REQUIRED):find_package(Lua ${lua_version} EXACT REQUIRED):" \
+		-i src/CMakeLists.txt
+
+	# remove tests that need root access
+	rm src/test/cli/ceph-authtool/cap*.t || die
+}
+
+ceph_src_configure() {
+	local mycmakeargs=(
+		-DWITH_BABELTRACE:BOOL=$(usex babeltrace)
+		-DWITH_BLUESTORE_PMEM:BOOL=$(usex pmdk)
+		-DWITH_CEPHFS:BOOL=$(usex cephfs)
+		-DWITH_CEPHFS_SHELL:BOOL=$(usex cephfs)
+		-DWITH_DPDK:BOOL=$(usex dpdk)
+		-DWITH_SPDK:BOOL=$(usex spdk)
+		-DWITH_FUSE:BOOL=$(usex fuse)
+		-DWITH_LTTNG:BOOL=$(usex lttng)
+		-DWITH_GSSAPI:BOOL=$(usex kerberos)
+		-DWITH_GRAFANA:BOOL=$(usex grafana)
+		-DWITH_MGR:BOOL=$(usex mgr)
+		-DWITH_MGR_DASHBOARD_FRONTEND:BOOL=OFF
+		-DWITH_OPENLDAP:BOOL=$(usex ldap)
+		-DWITH_PYTHON3:STRING=3
+		-DWITH_RADOSGW:BOOL=$(usex radosgw)
+		-DWITH_RADOSGW_AMQP_ENDPOINT:BOOL=$(usex rabbitmq)
+		-DWITH_RADOSGW_KAFKA_ENDPOINT:BOOL=$(usex kafka)
+		-DWITH_RADOSGW_LUA_PACKAGES:BOOL=$(usex rgw-lua "$(usex radosgw)" "NO")
+		-DWITH_RBD_RWL:BOOL=$(usex rbd-rwl)
+		-DWITH_RBD_SSD_CACHE:BOOL=$(usex rbd-ssd)
+		-DWITH_SYSTEMD:BOOL=$(usex systemd)
+		-DWITH_TESTS:BOOL=$(usex test)
+		-DWITH_LIBURING:BOOL=$(usex uring)
+		-DWITH_SYSTEM_LIBURING:BOOL=$(usex uring)
+		-DWITH_LIBCEPHSQLITE:BOOL=$(usex sqlite)
+		-DWITH_XFS:BOOL=$(usex xfs)
+		-DWITH_ZBD:BOOL=$(usex zbd)
+		-DWITH_ZFS:BOOL=$(usex zfs)
+		-DENABLE_SHARED:BOOL=ON
+		-DALLOCATOR:STRING=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')")
+		-DWITH_SYSTEM_PMDK:BOOL=$(usex pmdk 'YES' "$(usex rbd-rwl '')")
+		-DWITH_SYSTEM_BOOST:BOOL=$(usex system-boost)
+		-DWITH_SYSTEM_ROCKSDB:BOOL=ON
+		-DWITH_SYSTEM_ZSTD:BOOL=ON
+		-DWITH_RDMA:BOOL=$(usex rdma)
+		-DCMAKE_INSTALL_DOCDIR:PATH="${EPREFIX}/usr/share/doc/${PN}-${PVR}"
+		-DCMAKE_INSTALL_SYSCONFDIR:PATH="${EPREFIX}/etc"
+		-Wno-dev
+	)
+
+	# this breaks when re-configuring for python impl
+	if [[ ${EBUILD_PHASE} == configure ]]; then
+		mycmakeargs+=(
+			-DWITH_JAEGER:BOOL=$(usex jaeger)
+			-DWITH_RADOSGW_SELECT_PARQUET:BOOL=$(usex parquet)
+		)
+	else
+		mycmakeargs+=(
+			-DWITH_RADOSGW_SELECT_PARQUET:BOOL=OFF
+		)
+	fi
+
+	# conditionally used cmake args
+	use test && mycmakearts+=( -DWITH_SYSTEM_GTEST:BOOL=$(usex test) )
+	use systemd && mycmakeargs+=( -DSYSTEMD_SYSTEM_UNIT_DIR:PATH=$(systemd_get_systemunitdir) )
+
+	if use amd64 || use x86; then
+		local flag
+		for flag in "${CPU_FLAGS_X86[@]}"; do
+			case "${flag}" in
+				avx*)
+					local var=${flag%f}
+					mycmakeargs+=(
+						"-DHAVE_NASM_X64_${var^^}:BOOL=$(usex cpu_flags_x86_${flag})"
+					)
+				;;
+				*) mycmakeargs+=(
+						"-DHAVE_INTEL_${flag^^}:BOOL=$(usex cpu_flags_x86_${flag})"
+					);;
+			esac
+		done
+	fi
+
+	# needed for >=glibc-2.32
+	has_version '>=sys-libs/glibc-2.32' && mycmakeargs+=( -DWITH_REENTRANT_STRSIGNAL:BOOL=ON )
+
+	rm -f "${BUILD_DIR:-${S}}/CMakeCache.txt" \
+		|| die "failed to remove cmake cache"
+
+	# hopefully this will not be necessary in the next release
+	use parquet && export ARROW_XSIMD_URL="file:///${DISTDIR}/ceph-xsimd-${PV}.tar.gz"
+
+	cmake_src_configure
+
+	# bug #630232
+	sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \
+		"${BUILD_DIR:-${S}}"/include/acconfig.h \
+		|| die "sed failed"
+}
+
+src_configure() {
+	use custom-cflags || strip-flags
+	ceph_src_configure
+}
+
+src_compile() {
+	cmake_build all
+
+	# we have to do this here to prevent from building everything multiple times
+	python_copy_sources
+	python_foreach_impl python_compile
+}
+
+python_compile() {
+	local CMAKE_USE_DIR="${S}"
+	ceph_src_configure
+
+	cmake_build src/pybind/CMakeFiles/cython_modules
+}
+
+src_install() {
+	python_foreach_impl python_install
+
+	python_setup
+	cmake_src_install
+
+	find "${ED}" -name '*.la' -type f -delete || die
+
+	exeinto /usr/$(get_libdir)/ceph
+	newexe "${BUILD_DIR}/bin/init-ceph" init-ceph
+
+	insinto /etc/logrotate.d/
+	newins "${FILESDIR}"/ceph.logrotate-r2 ${PN}
+
+	keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat
+
+	fowners -R ceph:ceph /var/log/ceph
+
+	newinitd "${FILESDIR}/rbdmap.initd-r1" rbdmap
+	newinitd "${FILESDIR}/${PN}.initd-r12" ${PN}
+	newconfd "${FILESDIR}/${PN}.confd-r5" ${PN}
+
+	insinto /etc/sudoers.d
+	doins sudoers.d/*
+
+	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
+	newtmpfiles "${FILESDIR}"/ceph-tmpfilesd ${PN}.conf
+
+	readme.gentoo_create_doc
+
+	# bug #630232
+	sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \
+		|| die "sed failed"
+
+	python_fix_shebang "${ED}"/usr/{,s}bin/
+
+	# python_fix_shebang apparently is not idempotent
+	local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]'
+	grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \
+		| xargs --null --no-run-if-empty -- sed -i -r  "s:${shebang_regex}:\1:" || die
+
+	local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* )
+	dostrip -x "${rados_classes[@]#${ED}}"
+}
+
+python_install() {
+	local CMAKE_USE_DIR="${S}"
+	DESTDIR="${ED}" cmake_build src/pybind/install
+
+	python_optimize
+}
+
+pkg_postinst() {
+	readme.gentoo_print_elog
+	tmpfiles_process ${PN}.conf
+	udev_reload
+}

diff --git a/sys-cluster/ceph/files/ceph-17.2.0-boost-1.74.patch b/sys-cluster/ceph/files/ceph-17.2.0-boost-1.74.patch
new file mode 100644
index 000000000000..8fa7330520d8
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-17.2.0-boost-1.74.patch
@@ -0,0 +1,25 @@
+From 722b4303b1986ce93744af5baeecde7681d8e347 Mon Sep 17 00:00:00 2001
+From: Casey Bodley <cbodley@redhat.com>
+Date: Mon, 25 Jan 2021 13:08:35 -0500
+Subject: [PATCH] cmake: boost>=1.74 adds BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT
+ to radosgw
+
+Fixes: https://tracker.ceph.com/issues/48988
+
+Signed-off-by: Casey Bodley <cbodley@redhat.com>
+---
+ src/rgw/CMakeLists.txt | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/src/rgw/CMakeLists.txt b/src/rgw/CMakeLists.txt
+index 1b8cb81b8f2c1..12b42e4077f5a 100644
+--- a/src/rgw/CMakeLists.txt
++++ b/src/rgw/CMakeLists.txt
+@@ -1,3 +1,7 @@
++if(Boost_VERSION VERSION_GREATER_EQUAL 1.74)
++  add_definitions(-DBOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT)
++endif()
++
+ add_custom_target(civetweb_h
+   COMMAND ${CMAKE_COMMAND} -E make_directory
+   "${CMAKE_BINARY_DIR}/src/include/civetweb"

diff --git a/sys-cluster/ceph/files/ceph-17.2.0-cyclic-deps.patch b/sys-cluster/ceph/files/ceph-17.2.0-cyclic-deps.patch
new file mode 100644
index 000000000000..f80edddd8de7
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-17.2.0-cyclic-deps.patch
@@ -0,0 +1,53 @@
+From 78edb6a91788133334ceeeda0c95529df5f40da8 Mon Sep 17 00:00:00 2001
+From: "Kaleb S. KEITHLEY" <kkeithle@redhat.com>
+Date: Mon, 14 Feb 2022 07:42:08 -0500
+Subject: [PATCH] rgw: cmake configure error on fedora-37/rawhide
+
+see
+https://kojipkgs.fedoraproject.org//work/tasks/6624/82706624/build.log,
+excerpted below
+
+...
+CMake Error: The inter-target dependency graph contains the following
+strongly connected component (cycle): "rgw_common" of type
+STATIC_LIBRARY depends on "dbstore" (weak) depends on "sqlite_db" (weak)
+"dbstore" of type SHARED_LIBRARY depends on "rgw_common" (weak) depends
+on "sqlite_db" (weak) "sqlite_db" of type SHARED_LIBRARY depends on
+"rgw_common" (weak) depends on "dbstore" (weak) At least one of these
+targets is not a STATIC_LIBRARY. Cyclic dependencies are allowed only
+among static libraries. CMake Generate step failed. Build files cannot
+be regenerated correctly.
+...
+
+https://tracker.ceph.com/issues/54266
+
+Signed-off-by: Kaleb S. KEITHLEY <kkeithle@redhat.com>
+---
+ src/rgw/store/dbstore/CMakeLists.txt        | 2 +-
+ src/rgw/store/dbstore/sqlite/CMakeLists.txt | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/rgw/store/dbstore/CMakeLists.txt b/src/rgw/store/dbstore/CMakeLists.txt
+index 143ede3c094c9..18e032b73f54f 100644
+--- a/src/rgw/store/dbstore/CMakeLists.txt
++++ b/src/rgw/store/dbstore/CMakeLists.txt
+@@ -47,7 +47,7 @@ else()
+ endif()
+ 
+ include_directories(${CMAKE_INCLUDE_DIR})
+-add_library(dbstore ${dbstore_mgr_srcs})
++add_library(dbstore STATIC ${dbstore_mgr_srcs})
+ target_link_libraries(dbstore ${CMAKE_LINK_LIBRARIES})
+ 
+ # testing purpose
+diff --git a/src/rgw/store/dbstore/sqlite/CMakeLists.txt b/src/rgw/store/dbstore/sqlite/CMakeLists.txt
+index cce59b9ec0aa9..909765e3058b6 100644
+--- a/src/rgw/store/dbstore/sqlite/CMakeLists.txt
++++ b/src/rgw/store/dbstore/sqlite/CMakeLists.txt
+@@ -12,5 +12,5 @@ include_directories(${CMAKE_INCLUDE_DIR})
+ set(SQLITE_COMPILE_FLAGS "-DSQLITE_THREADSAFE=1")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${SQLITE_COMPILE_FLAGS}")
+ 
+-add_library(sqlite_db ${sqlite_db_srcs})
++add_library(sqlite_db STATIC ${sqlite_db_srcs})
+ target_link_libraries(sqlite_db sqlite3 dbstore_lib rgw_common)

diff --git a/sys-cluster/ceph/files/ceph-17.2.0-deprecated-boost.patch b/sys-cluster/ceph/files/ceph-17.2.0-deprecated-boost.patch
new file mode 100644
index 000000000000..64b6d5c614c8
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-17.2.0-deprecated-boost.patch
@@ -0,0 +1,69 @@
+diff --git a/src/common/ConfUtils.cc b/src/common/ConfUtils.cc
+index ad791ece4f7..2f78fd02bf9 100644
+--- a/src/common/ConfUtils.cc
++++ b/src/common/ConfUtils.cc
+@@ -26,7 +26,7 @@
+ #include <boost/algorithm/string.hpp>
+ #include <boost/algorithm/string/trim_all.hpp>
+ #include <boost/spirit/include/qi.hpp>
+-#include <boost/spirit/include/phoenix.hpp>
++#include <boost/phoenix.hpp>
+ #include <boost/spirit/include/support_line_pos_iterator.hpp>
+ 
+ #include "include/buffer.h"
+diff --git a/src/mds/MDSAuthCaps.cc b/src/mds/MDSAuthCaps.cc
+index b78ebd6615b..f8158be6866 100644
+--- a/src/mds/MDSAuthCaps.cc
++++ b/src/mds/MDSAuthCaps.cc
+@@ -17,8 +17,8 @@
+ #include <errno.h>
+ 
+ #include <boost/spirit/include/qi.hpp>
+-#include <boost/spirit/include/phoenix_operator.hpp>
+-#include <boost/spirit/include/phoenix.hpp>
++#include <boost/phoenix/operator.hpp>
++#include <boost/phoenix.hpp>
+ 
+ #include "common/debug.h"
+ #include "MDSAuthCaps.h"
+diff --git a/src/mgr/MgrCap.cc b/src/mgr/MgrCap.cc
+index cba758083c3..6e5e1f9bb99 100644
+--- a/src/mgr/MgrCap.cc
++++ b/src/mgr/MgrCap.cc
+@@ -16,7 +16,7 @@
+ #include <boost/spirit/include/qi_uint.hpp>
+ #include <boost/spirit/include/qi.hpp>
+ #include <boost/fusion/include/std_pair.hpp>
+-#include <boost/spirit/include/phoenix.hpp>
++#include <boost/phoenix.hpp>
+ #include <boost/fusion/adapted/struct/adapt_struct.hpp>
+ #include <boost/fusion/include/adapt_struct.hpp>
+ #include <boost/algorithm/string/predicate.hpp>
+diff --git a/src/mon/MonCap.cc b/src/mon/MonCap.cc
+index e1dc3723965..0ff9fefdd15 100644
+--- a/src/mon/MonCap.cc
++++ b/src/mon/MonCap.cc
+@@ -16,7 +16,7 @@
+ #include <boost/spirit/include/qi_uint.hpp>
+ #include <boost/spirit/include/qi.hpp>
+ #include <boost/fusion/include/std_pair.hpp>
+-#include <boost/spirit/include/phoenix.hpp>
++#include <boost/phoenix.hpp>
+ #include <boost/fusion/adapted/struct/adapt_struct.hpp>
+ #include <boost/fusion/include/adapt_struct.hpp>
+ #include <boost/algorithm/string/predicate.hpp>
+diff --git a/src/osd/OSDCap.cc b/src/osd/OSDCap.cc
+index e7bf0582799..f847e80e337 100644
+--- a/src/osd/OSDCap.cc
++++ b/src/osd/OSDCap.cc
+@@ -14,8 +14,8 @@
+ 
+ #include <boost/config/warning_disable.hpp>
+ #include <boost/spirit/include/qi.hpp>
+-#include <boost/spirit/include/phoenix_operator.hpp>
+-#include <boost/spirit/include/phoenix.hpp>
++#include <boost/phoenix/operator.hpp>
++#include <boost/phoenix.hpp>
+ #include <boost/algorithm/string/predicate.hpp>
+ 
+ #include "OSDCap.h"

diff --git a/sys-cluster/ceph/files/ceph-17.2.0-findre2.patch b/sys-cluster/ceph/files/ceph-17.2.0-findre2.patch
new file mode 100644
index 000000000000..e42f291e55bf
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-17.2.0-findre2.patch
@@ -0,0 +1,22 @@
+diff --git a/src/arrow/cpp/cmake_modules/Findre2.cmake b/src/arrow/cpp/cmake_modules/Findre2.cmake
+new file mode 100644
+index 00000000000..6f39de75461
+--- /dev/null
++++ b/src/arrow/cpp/cmake_modules/Findre2.cmake
+@@ -0,0 +1,16 @@
++FIND_PATH(SYSTEM_RE2_INCLUDE_DIR re2/re2.h)
++IF (SYSTEM_RE2_INCLUDE_DIR)
++  MESSAGE(STATUS "Found RE2 include dir")
++  FIND_LIBRARY(SYSTEM_RE2_LIBRARY re2)
++  IF (SYSTEM_RE2_LIBRARY)
++    MESSAGE(STATUS "Found RE2 library")
++    SET(RE2_INCLUDE_DIR ${SYSTEM_RE2_INCLUDE_DIR})
++    SET(RE2_LIBRARY ${SYSTEM_RE2_LIBRARY})
++  ELSE ()
++    MESSAGE(FATAL_ERROR "Found RE2 headers, but not the library")
++  ENDIF ()
++ELSE ()
++  MESSAGE(STATUS "Did not find system RE2")
++ENDIF ()
++
++

diff --git a/sys-cluster/ceph/files/ceph-17.2.0-install-dbstore.patch b/sys-cluster/ceph/files/ceph-17.2.0-install-dbstore.patch
new file mode 100644
index 000000000000..e50030071c81
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-17.2.0-install-dbstore.patch
@@ -0,0 +1,12 @@
+diff --git a/src/rgw/store/dbstore/CMakeLists.txt b/src/rgw/store/dbstore/CMakeLists.txt
+index 143ede3c094..204ef653010 100644
+--- a/src/rgw/store/dbstore/CMakeLists.txt
++++ b/src/rgw/store/dbstore/CMakeLists.txt
+@@ -24,6 +24,7 @@ if(WITH_JAEGER)
+   list(APPEND link_targets ${jaeger_base})
+ endif()
+ target_link_libraries(dbstore_lib PUBLIC ${link_targets})
++install(TARGETS dbstore_lib DESTINATION ${CMAKE_INSTALL_LIBDIR})
+ 
+ set (CMAKE_LINK_LIBRARIES ${CMAKE_LINK_LIBRARIES} dbstore_lib)
+ 

diff --git a/sys-cluster/ceph/files/ceph-17.2.0-no-virtualenvs.patch b/sys-cluster/ceph/files/ceph-17.2.0-no-virtualenvs.patch
new file mode 100644
index 000000000000..930dd08e8630
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-17.2.0-no-virtualenvs.patch
@@ -0,0 +1,68 @@
+diff --git a/cmake/modules/AddCephTest.cmake b/cmake/modules/AddCephTest.cmake
+index 0df7125b508..01afc88289c 100644
+--- a/cmake/modules/AddCephTest.cmake
++++ b/cmake/modules/AddCephTest.cmake
+@@ -57,7 +57,6 @@ endfunction()
+ 
+ function(add_tox_test name)
+   set(test_name run-tox-${name})
+-  set(venv_path ${CEPH_BUILD_VIRTUALENV}/${name}-virtualenv)
+   cmake_parse_arguments(TOXTEST "" "TOX_PATH" "TOX_ENVS" ${ARGN})
+   if(DEFINED TOXTEST_TOX_PATH)
+     set(tox_path ${TOXTEST_TOX_PATH})
+@@ -71,27 +70,13 @@ function(add_tox_test name)
+   endif()
+   string(REPLACE ";" "," tox_envs "${tox_envs}")
+   find_package(Python3 QUIET REQUIRED)
+-  add_test(
+-    NAME setup-venv-for-${name}
+-    COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${Python3_EXECUTABLE} ${venv_path}
+-    WORKING_DIRECTORY ${tox_path})
+-  set_tests_properties(setup-venv-for-${name} PROPERTIES
+-    FIXTURES_SETUP venv-for-${name})
+-  add_test(
+-    NAME teardown-venv-for-${name}
+-    COMMAND ${CMAKE_COMMAND} -E remove_directory ${venv_path})
+-  set_tests_properties(teardown-venv-for-${name} PROPERTIES
+-    FIXTURES_CLEANUP venv-for-${name})
+   add_test(
+     NAME ${test_name}
+     COMMAND ${CMAKE_SOURCE_DIR}/src/script/run_tox.sh
+               --source-dir ${CMAKE_SOURCE_DIR}
+               --build-dir ${CMAKE_BINARY_DIR}
+               --tox-path ${tox_path}
+-              --tox-envs ${tox_envs}
+-              --venv-path ${venv_path})
+-  set_tests_properties(${test_name} PROPERTIES
+-    FIXTURES_REQUIRED venv-for-${name})
++              --tox-envs ${tox_envs})
+   set_property(
+     TEST ${test_name}
+     PROPERTY ENVIRONMENT
+diff --git a/src/ceph-volume/CMakeLists.txt b/src/ceph-volume/CMakeLists.txt
+index 9166553dc73..9a6c87595b9 100644
+--- a/src/ceph-volume/CMakeLists.txt
++++ b/src/ceph-volume/CMakeLists.txt
+@@ -8,22 +8,6 @@ if(FREEBSD)
+   add_subdirectory(plugin/zfs)
+ endif()
+ 
+-# Required for running ceph-volume inventory in a vstart environment
+-set(CEPH_VOLUME_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/ceph-volume-virtualenv)
+-
+-add_custom_command(
+-  OUTPUT ${CEPH_VOLUME_VIRTUALENV}/bin/python
+-  COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${Python3_EXECUTABLE} ${CEPH_VOLUME_VIRTUALENV}
+-  WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/ceph-volume
+-  COMMENT "ceph-volume venv is being created")
+-
+-add_custom_command(
+-  OUTPUT ${CEPH_VOLUME_VIRTUALENV}/bin/ceph-volume
+-  DEPENDS ${CEPH_VOLUME_VIRTUALENV}/bin/python
+-  COMMAND . ${CEPH_VOLUME_VIRTUALENV}/bin/activate && ${CEPH_VOLUME_VIRTUALENV}/bin/python setup.py develop && deactivate
+-  WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/ceph-volume
+-  COMMENT "${CMAKE_SOURCE_DIR}/src/ceph-volume")
+-
+ add_custom_target(ceph-volume-venv-setup
+   DEPENDS ${CEPH_VOLUME_VIRTUALENV}/bin/ceph-volume)
+ 

diff --git a/sys-cluster/ceph/files/ceph-17.2.0-pybind-boost-1.74.patch b/sys-cluster/ceph/files/ceph-17.2.0-pybind-boost-1.74.patch
new file mode 100644
index 000000000000..8591b0bc7f89
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-17.2.0-pybind-boost-1.74.patch
@@ -0,0 +1,26 @@
+diff --git a/src/pybind/CMakeLists.txt b/src/pybind/CMakeLists.txt
+index cd9b27623d2..12688ad32b9 100644
+--- a/src/pybind/CMakeLists.txt
++++ b/src/pybind/CMakeLists.txt
+@@ -36,6 +36,10 @@ execute_process(
+   OUTPUT_VARIABLE "PYTHON3_INSTDIR"
+   OUTPUT_STRIP_TRAILING_WHITESPACE)
+ 
++if(Boost_VERSION VERSION_GREATER_EQUAL 1.74)
++  add_definitions(-DBOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT)
++endif()
++
+ install(FILES
+   ceph_argparse.py
+   ceph_daemon.py
+diff --git a/src/test/librados/CMakeLists.txt b/src/test/librados/CMakeLists.txt
+index fc033766cc4..0ba3bc56e98 100644
+--- a/src/test/librados/CMakeLists.txt
++++ b/src/test/librados/CMakeLists.txt
+@@ -1,3 +1,6 @@
++
++add_definitions(-DBOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT)
++
+ # radostest
+ add_library(radostest_shared OBJECT test_shared.cc)
+ target_include_directories(radostest_shared PRIVATE

diff --git a/sys-cluster/ceph/files/ceph-17.2.0-system-opentelemetry.patch b/sys-cluster/ceph/files/ceph-17.2.0-system-opentelemetry.patch
new file mode 100644
index 000000000000..6e0788a093e5
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-17.2.0-system-opentelemetry.patch
@@ -0,0 +1,20 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 30cf3605468..902e2123d04 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -430,9 +430,12 @@ add_dependencies(common-objs legacy-option-headers)
+ 
+ if(WITH_JAEGER)
+   find_package(thrift 0.13.0 REQUIRED)
+-  include(BuildOpentelemetry)
+-  build_opentelemetry()
+-  set(jaeger_base opentelemetry::libopentelemetry thrift::libthrift)
++  find_package(opentelemetry-cpp 1.3.0 REQUIRED)
++  set(jaeger_base
++	  opentelemetry-cpp::common
++	  opentelemetry-cpp::trace
++	  opentelemetry-cpp::jaeger_trace_exporter
++	  thrift::libthrift)
+   add_dependencies(common-objs ${jaeger_base})
+   target_link_libraries(common-objs ${jaeger_base})
+ endif()

diff --git a/sys-cluster/ceph/metadata.xml b/sys-cluster/ceph/metadata.xml
index 3bafabc339fd..b9a4aabfe140 100644
--- a/sys-cluster/ceph/metadata.xml
+++ b/sys-cluster/ceph/metadata.xml
@@ -25,11 +25,13 @@
     <flag name="lttng">Add support for LTTng</flag>
     <flag name="mgr">Build the ceph-mgr daemon</flag>
     <flag name="numa">Use <pkg>sys-process/numactl</pkg> for numa support in rocksdb</flag>
+    <flag name="parquet">Support for s3 select on parquet objects</flag>
     <flag name="pmdk">Enable PMDK libraries</flag>
     <flag name="rabbitmq">Use rabbitmq-c to build rgw amqp push endpoint</flag>
     <flag name="radosgw">Add radosgw support</flag>
     <flag name="rbd-rwl">Enable librbd persistent write back cache</flag>
     <flag name="rbd-ssd">Enable librbd persistent write back cache for SSDs</flag>
+	<flag name="rdma">Enable RDMA support via <pkg>sys-cluster/rdma-core</pkg></flag>
     <flag name="rgw-lua">Rados Gateway's support for dynamically adding lua packagess</flag>
     <flag name="system-boost">Use system <pkg>dev-libs/boost</pkg> instead of the bundled one</flag>
     <flag name="uring">Build with support for <pkg>sys-libs/liburing</pkg></flag>
@@ -37,4 +39,7 @@
     <flag name="xfs">Add xfs support</flag>
     <flag name="zfs">Add zfs support</flag>
   </use>
+  <upstream>
+    <bugs-to>https://tracker.ceph.com/issues</bugs-to>
+  </upstream>
 </pkgmetadata>


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2022-07-13  0:20 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2022-07-13  0:20 UTC (permalink / raw
  To: gentoo-commits

commit:     0c5fe2e412eed3c9648d55f1e7d16d4f127bf02c
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Wed Jul 13 00:19:59 2022 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Wed Jul 13 00:19:59 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0c5fe2e4

sys-cluster/ceph: Patch to fix py310 (bug #857702)

Also update libfmt dep

Closes: https://bugs.gentoo.org/857702

Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 sys-cluster/ceph/Manifest                          |   2 +
 sys-cluster/ceph/ceph-17.2.1-r1.ebuild             | 459 +++++++++++++++++++++
 sys-cluster/ceph/files/ceph-17.2.1-python310.patch |  35 ++
 3 files changed, 496 insertions(+)

diff --git a/sys-cluster/ceph/Manifest b/sys-cluster/ceph/Manifest
index 9b6f58453e84..d2eb006a495d 100644
--- a/sys-cluster/ceph/Manifest
+++ b/sys-cluster/ceph/Manifest
@@ -1,2 +1,4 @@
 DIST ceph-15.2.16.tar.gz 148628915 BLAKE2B 4f624078027c706428eae3eddd5b5479efe3b4442c19a4e6b6cdf8d3839cf56e2863b18249dc3c5079a7e25f60796bfec3202ffd695537587654f5e2f820caaa SHA512 532b8a5073e157fe9ed552b26976faeb64dc29b79a249910c0982134ad5f945d4f57d8bf451adf63487b6d285c6e4bd5c39f0e3fcd449230d6fb3087539f8c3b
 DIST ceph-16.2.9.tar.gz 157168096 BLAKE2B 0a667a9699925cfc920ca0cc535e5331cbcd95997fb0b9816a4d84c8add454b6b17813018bc1d1de07c802167ef50aa528704b10b01f42759189392ccdb5088f SHA512 bf369038ad6383f88abbed267f0239e9d8a1d33b46b34ed260aeeb1fda1b374cb6e658238e1ace013fbbb68e73b8cd2922b7def318d7a110e5f4560eeae8fca3
+DIST ceph-17.2.1.tar.gz 168819036 BLAKE2B 2d6506f3a43ccbe4a149163c13ab2de72aeba568308ca7c0c59d0ff32316519d27b334451fd8d78af799cabe3b5a8c5b7b19d5da028e52c420ec7fc38efe5aad SHA512 cb88a3feff67ce41c575cb6c0067a32de51fcbf36d8f9f7273cccd54a3413ee890f473e83fcc1429a86b858b05c412fca8b2cfc24871c5adf612e3d224227cf0
+DIST ceph-xsimd-17.2.1.tar.gz 173025 BLAKE2B 54679c24804c195ae55b9f49589e331dde92c6d89aaa20e827539e9a4e0010c7549cdd5cf02a7ebed83f953ab2a6f1d9cc9a98cf45c3dc7758ae4938c9c43713 SHA512 ecc58e7909648aaa22aefbf76ee2c5a2bece4b1b88da9c7eda1b69a46247e619ff99c4366afd6015f95debd68c1a6b89292c677b9049462d0fc0255fbc0c2a33

diff --git a/sys-cluster/ceph/ceph-17.2.1-r1.ebuild b/sys-cluster/ceph/ceph-17.2.1-r1.ebuild
new file mode 100644
index 000000000000..8a67048c3455
--- /dev/null
+++ b/sys-cluster/ceph/ceph-17.2.1-r1.ebuild
@@ -0,0 +1,459 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..10} )
+LUA_COMPAT=( lua5-{3..4} )
+
+inherit check-reqs bash-completion-r1 cmake flag-o-matic lua-single \
+		python-r1 udev readme.gentoo-r1 toolchain-funcs systemd tmpfiles
+
+SRC_URI="
+	https://download.ceph.com/tarballs/${P}.tar.gz
+	parquet? ( https://github.com/xtensor-stack/xsimd/archive/aeec9c872c8b475dedd7781336710f2dd2666cb2.tar.gz -> ceph-xsimd-${PV}.tar.gz )
+"
+KEYWORDS="~amd64 ~arm64"
+
+DESCRIPTION="Ceph distributed filesystem"
+HOMEPAGE="https://ceph.com/"
+
+LICENSE="Apache-2.0 LGPL-2.1 CC-BY-SA-3.0 GPL-2 GPL-2+ LGPL-2+ LGPL-2.1 LGPL-3 GPL-3 BSD Boost-1.0 MIT public-domain"
+SLOT="0"
+
+CPU_FLAGS_X86=(avx2 avx512f pclmul sse{,2,3,4_1,4_2} ssse3)
+
+IUSE="
+	babeltrace +cephfs custom-cflags diskprediction dpdk fuse grafana
+	jemalloc jaeger kafka kerberos ldap lttng +mgr +parquet pmdk rabbitmq
+	+radosgw rbd-rwl rbd-ssd rdma rgw-lua +ssl spdk +sqlite +system-boost
+	systemd +tcmalloc test +uring xfs zbd zfs
+"
+
+IUSE+="$(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})"
+
+DEPEND="
+	${LUA_DEPS}
+	${PYTHON_DEPS}
+	acct-group/ceph
+	acct-user/ceph
+	virtual/libudev:=
+	app-arch/bzip2:=
+	app-arch/lz4:=
+	app-arch/snappy:=
+	|| ( >=app-arch/snappy-1.1.9-r1 <app-arch/snappy-1.1.9 )
+	app-arch/zstd:=
+	app-shells/bash:0
+	app-misc/jq:=
+	dev-libs/crypto++:=
+	dev-cpp/gflags:=
+	<dev-libs/leveldb-1.23:=[snappy,tcmalloc(-)?]
+	dev-libs/libaio:=
+	>=dev-libs/libfmt-6.2.1:=
+	<dev-libs/libfmt-9:=
+	dev-libs/libnl:3=
+	dev-libs/libxml2:=
+	dev-libs/libevent:=
+	dev-libs/libutf8proc:=
+	dev-libs/openssl:=
+	<dev-libs/rocksdb-6.15:=
+	dev-libs/thrift:=
+	dev-libs/xmlsec:=[openssl]
+	dev-cpp/yaml-cpp:=
+	dev-libs/nss:=
+	dev-python/pyyaml[${PYTHON_USEDEP}]
+	net-dns/c-ares:=
+	net-libs/gnutls:=
+	sys-auth/oath-toolkit:=
+	sys-apps/coreutils
+	sys-apps/hwloc:=
+	sys-apps/keyutils:=
+	sys-apps/util-linux:=
+	sys-libs/libcap-ng:=
+	sys-libs/ncurses:0=
+	sys-libs/zlib:=
+	sys-process/numactl:=
+	virtual/libcrypt:=
+	x11-libs/libpciaccess:=
+	babeltrace? ( dev-util/babeltrace )
+	fuse? ( sys-fs/fuse:3= )
+	jemalloc? ( dev-libs/jemalloc:= )
+	!jemalloc? ( >=dev-util/google-perftools-2.6.1:= )
+	jaeger? (
+		dev-cpp/nlohmann_json:=
+		dev-cpp/opentelemetry-cpp:=[jaeger]
+	)
+	kafka? ( dev-libs/librdkafka:= )
+	kerberos? ( virtual/krb5 )
+	ldap? ( net-nds/openldap:= )
+	lttng? ( dev-util/lttng-ust:= )
+	parquet? ( dev-libs/re2:= )
+	pmdk? ( dev-libs/pmdk:= )
+	rabbitmq? ( net-libs/rabbitmq-c:= )
+	radosgw? (
+		dev-libs/icu:=
+		dev-libs/expat:=
+		net-misc/curl:=[curl_ssl_openssl]
+	)
+	rbd-rwl? ( dev-libs/pmdk:= )
+	rdma? ( sys-cluster/rdma-core:= )
+	spdk? ( dev-util/cunit )
+	sqlite? ( dev-db/sqlite:= )
+	system-boost? ( >=dev-libs/boost-1.72:=[threads(+),context,python,${PYTHON_USEDEP}] )
+	uring? ( sys-libs/liburing:= )
+	xfs? ( sys-fs/xfsprogs:= )
+	zbd? ( sys-block/libzbd:= )
+	zfs? ( sys-fs/zfs:= )
+"
+BDEPEND="
+	amd64? ( dev-lang/nasm )
+	x86? ( dev-lang/yasm )
+	app-arch/cpio
+	>=dev-util/cmake-3.5.0
+	dev-python/cython[${PYTHON_USEDEP}]
+	dev-python/setuptools[${PYTHON_USEDEP}]
+	dev-python/sphinx
+	dev-util/gperf
+	dev-util/ragel
+	dev-util/valgrind
+	sys-apps/coreutils
+	sys-apps/grep
+	sys-apps/sed
+	sys-apps/util-linux
+	sys-apps/which
+	sys-devel/bc
+	sys-devel/patch
+	virtual/pkgconfig
+	jaeger? (
+		sys-devel/bison
+		sys-devel/flex
+	)
+	test? (
+		dev-util/cunit
+		dev-python/coverage[${PYTHON_USEDEP}]
+		dev-python/virtualenv[${PYTHON_USEDEP}]
+		dev-python/requests-mock[${PYTHON_USEDEP}]
+		sys-apps/grep[pcre]
+		sys-fs/btrfs-progs
+	)
+"
+RDEPEND="
+	${DEPEND}
+	app-admin/sudo
+	net-misc/socat
+	sys-apps/gptfdisk
+	sys-apps/nvme-cli
+	>=sys-apps/smartmontools-7.0
+	sys-block/parted
+	sys-fs/cryptsetup
+	sys-fs/lsscsi
+	sys-fs/lvm2[-device-mapper-only(-)]
+	virtual/awk
+	dev-python/bcrypt[${PYTHON_USEDEP}]
+	dev-python/cherrypy[${PYTHON_USEDEP}]
+	dev-python/python-dateutil[${PYTHON_USEDEP}]
+	dev-python/flask[${PYTHON_USEDEP}]
+	dev-python/jinja[${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}]
+	mgr? (
+		dev-python/jsonpatch[${PYTHON_USEDEP}]
+		dev-python/more-itertools[${PYTHON_USEDEP}]
+		dev-python/numpy[${PYTHON_USEDEP}]
+		dev-python/pyjwt[${PYTHON_USEDEP}]
+		dev-python/routes[${PYTHON_USEDEP}]
+		diskprediction? (
+			>=dev-python/scipy-1.4.0[${PYTHON_USEDEP}]
+		)
+		sci-libs/scikit-learn[${PYTHON_USEDEP}]
+		dev-python/six[${PYTHON_USEDEP}]
+	)
+"
+# diskprediction needs older scipy not compatible with py38
+# bug #724438
+REQUIRED_USE="
+	${PYTHON_REQUIRED_USE}
+	${LUA_REQUIRED_USE}
+	?? ( jemalloc tcmalloc )
+	diskprediction? ( mgr )
+	kafka? ( radosgw )
+	mgr? ( cephfs )
+	rabbitmq? ( radosgw )
+	rgw-lua? ( radosgw )
+"
+
+RESTRICT="
+	!test? ( test )
+"
+
+# tests need root access, and network access
+RESTRICT+="test"
+
+# false positives unless all USE flags are on
+CMAKE_WARN_UNUSED_CLI=no
+
+PATCHES=(
+	"${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch"
+	"${FILESDIR}/ceph-14.2.0-cflags.patch"
+	"${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch"
+	"${FILESDIR}/ceph-16.2.2-cflags.patch"
+	"${FILESDIR}/ceph-17.2.1-no-virtualenvs.patch"
+	"${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
+	"${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch"
+	"${FILESDIR}/ceph-16.2.0-rocksdb-cmake.patch"
+	"${FILESDIR}/ceph-16.2.0-spdk-tinfo.patch"
+	"${FILESDIR}/ceph-16.2.0-jaeger-system-boost.patch"
+	"${FILESDIR}/ceph-16.2.0-liburing.patch"
+	"${FILESDIR}/ceph-17.2.0-cyclic-deps.patch"
+	"${FILESDIR}/ceph-17.2.0-pybind-boost-1.74.patch"
+	"${FILESDIR}/ceph-17.2.0-findre2.patch"
+	"${FILESDIR}/ceph-17.2.0-install-dbstore.patch"
+	"${FILESDIR}/ceph-17.2.0-deprecated-boost.patch"
+	"${FILESDIR}/ceph-17.2.0-system-opentelemetry.patch"
+	"${FILESDIR}/ceph-17.2.0-fuse3.patch"
+	"${FILESDIR}/ceph-17.2.0-osd_class_dir.patch"
+	"${FILESDIR}/ceph-17.2.1-python310.patch"
+)
+
+check-reqs_export_vars() {
+	CHECKREQS_DISK_BUILD="6G"
+
+	if use system-boost; then
+		CHECKREQS_DISK_USR="350M"
+	else
+		CHECKREQS_DISK_USR="510M"
+	fi
+
+	export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR
+}
+
+pkg_pretend() {
+	check-reqs_export_vars
+	check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+	python_setup
+	lua_setup
+	check-reqs_export_vars
+	check-reqs_pkg_setup
+}
+
+src_prepare() {
+	cmake_src_prepare
+
+	if use system-boost; then
+		find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \
+			| xargs --null sed -r \
+			-e 's|Boost::|boost_|g' \
+			-e 's|Boost_|boost_|g' \
+			-e 's|[Bb]oost_boost|boost_system|g' \
+			-i || die
+	fi
+
+	if ! use systemd; then
+		find "${S}"/src/ceph-volume/ceph_volume -name '*.py' -print0 \
+			| xargs --null sed \
+			-e '/^from ceph_volume.systemd import systemctl/ d' \
+			-i || die
+	fi
+
+	sed -r -e "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \
+		-i src/bash_completion/CMakeLists.txt || die
+
+	sed -e "s:objdump -p:$(tc-getOBJDUMP) -p:" -i CMakeLists.txt || die
+
+	# force lua version to use selected version
+	local lua_version
+	lua_version=$(ver_cut 1-2 $(lua_get_version))
+	sed "s:find_package(Lua [0-9][.][0-9] REQUIRED):find_package(Lua ${lua_version} EXACT REQUIRED):" \
+		-i src/CMakeLists.txt
+
+	# remove tests that need root access
+	rm src/test/cli/ceph-authtool/cap*.t || die
+}
+
+ceph_src_configure() {
+	local mycmakeargs=(
+		-DWITH_BABELTRACE:BOOL=$(usex babeltrace)
+		-DWITH_BLUESTORE_PMEM:BOOL=$(usex pmdk)
+		-DWITH_CEPHFS:BOOL=$(usex cephfs)
+		-DWITH_CEPHFS_SHELL:BOOL=$(usex cephfs)
+		-DWITH_DPDK:BOOL=$(usex dpdk)
+		-DWITH_SPDK:BOOL=$(usex spdk)
+		-DWITH_FUSE:BOOL=$(usex fuse)
+		-DWITH_LTTNG:BOOL=$(usex lttng)
+		-DWITH_GSSAPI:BOOL=$(usex kerberos)
+		-DWITH_GRAFANA:BOOL=$(usex grafana)
+		-DWITH_MGR:BOOL=$(usex mgr)
+		-DWITH_MGR_DASHBOARD_FRONTEND:BOOL=OFF
+		-DWITH_OPENLDAP:BOOL=$(usex ldap)
+		-DWITH_PYTHON3:STRING=3
+		-DWITH_RADOSGW:BOOL=$(usex radosgw)
+		-DWITH_RADOSGW_AMQP_ENDPOINT:BOOL=$(usex rabbitmq)
+		-DWITH_RADOSGW_KAFKA_ENDPOINT:BOOL=$(usex kafka)
+		-DWITH_RADOSGW_LUA_PACKAGES:BOOL=$(usex rgw-lua "$(usex radosgw)" "NO")
+		-DWITH_RBD_RWL:BOOL=$(usex rbd-rwl)
+		-DWITH_RBD_SSD_CACHE:BOOL=$(usex rbd-ssd)
+		-DWITH_SYSTEMD:BOOL=$(usex systemd)
+		-DWITH_TESTS:BOOL=$(usex test)
+		-DWITH_LIBURING:BOOL=$(usex uring)
+		-DWITH_SYSTEM_LIBURING:BOOL=$(usex uring)
+		-DWITH_LIBCEPHSQLITE:BOOL=$(usex sqlite)
+		-DWITH_XFS:BOOL=$(usex xfs)
+		-DWITH_ZBD:BOOL=$(usex zbd)
+		-DWITH_ZFS:BOOL=$(usex zfs)
+		-DENABLE_SHARED:BOOL=ON
+		-DALLOCATOR:STRING=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')")
+		-DWITH_SYSTEM_PMDK:BOOL=$(usex pmdk 'YES' "$(usex rbd-rwl '')")
+		-DWITH_SYSTEM_BOOST:BOOL=$(usex system-boost)
+		-DWITH_SYSTEM_ROCKSDB:BOOL=ON
+		-DWITH_SYSTEM_ZSTD:BOOL=ON
+		-DWITH_RDMA:BOOL=$(usex rdma)
+		-DCMAKE_INSTALL_DOCDIR:PATH="${EPREFIX}/usr/share/doc/${PN}-${PVR}"
+		-DCMAKE_INSTALL_SYSCONFDIR:PATH="${EPREFIX}/etc"
+		-Wno-dev
+	)
+
+	# this breaks when re-configuring for python impl
+	if [[ ${EBUILD_PHASE} == configure ]]; then
+		mycmakeargs+=(
+			-DWITH_JAEGER:BOOL=$(usex jaeger)
+			-DWITH_RADOSGW_SELECT_PARQUET:BOOL=$(usex parquet)
+		)
+	else
+		mycmakeargs+=(
+			-DWITH_RADOSGW_SELECT_PARQUET:BOOL=OFF
+		)
+	fi
+
+	# conditionally used cmake args
+	use test && mycmakearts+=( -DWITH_SYSTEM_GTEST:BOOL=$(usex test) )
+	use systemd && mycmakeargs+=( -DSYSTEMD_SYSTEM_UNIT_DIR:PATH=$(systemd_get_systemunitdir) )
+
+	if use amd64 || use x86; then
+		local flag
+		for flag in "${CPU_FLAGS_X86[@]}"; do
+			case "${flag}" in
+				avx*)
+					local var=${flag%f}
+					mycmakeargs+=(
+						"-DHAVE_NASM_X64_${var^^}:BOOL=$(usex cpu_flags_x86_${flag})"
+					)
+				;;
+				*) mycmakeargs+=(
+						"-DHAVE_INTEL_${flag^^}:BOOL=$(usex cpu_flags_x86_${flag})"
+					);;
+			esac
+		done
+	fi
+
+	# needed for >=glibc-2.32
+	has_version '>=sys-libs/glibc-2.32' && mycmakeargs+=( -DWITH_REENTRANT_STRSIGNAL:BOOL=ON )
+
+	rm -f "${BUILD_DIR:-${S}}/CMakeCache.txt" \
+		|| die "failed to remove cmake cache"
+
+	# hopefully this will not be necessary in the next release
+	use parquet && export ARROW_XSIMD_URL="file:///${DISTDIR}/ceph-xsimd-${PV}.tar.gz"
+
+	cmake_src_configure
+
+	# bug #630232
+	sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \
+		"${BUILD_DIR:-${S}}"/include/acconfig.h \
+		|| die "sed failed"
+}
+
+src_configure() {
+	use custom-cflags || strip-flags
+	ceph_src_configure
+}
+
+src_compile() {
+	cmake_build all
+
+	# we have to do this here to prevent from building everything multiple times
+	python_copy_sources
+	python_foreach_impl python_compile
+}
+
+python_compile() {
+	local CMAKE_USE_DIR="${S}"
+	ceph_src_configure
+
+	cmake_build src/pybind/CMakeFiles/cython_modules
+}
+
+src_install() {
+	python_foreach_impl python_install
+
+	python_setup
+	cmake_src_install
+
+	find "${ED}" -name '*.la' -type f -delete || die
+
+	exeinto /usr/$(get_libdir)/ceph
+	newexe "${BUILD_DIR}/bin/init-ceph" init-ceph
+
+	insinto /etc/logrotate.d/
+	newins "${FILESDIR}"/ceph.logrotate-r2 ${PN}
+
+	keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat
+
+	fowners -R ceph:ceph /var/log/ceph
+
+	newinitd "${FILESDIR}/rbdmap.initd-r1" rbdmap
+	newinitd "${FILESDIR}/${PN}.initd-r12" ${PN}
+	newconfd "${FILESDIR}/${PN}.confd-r5" ${PN}
+
+	insinto /etc/sudoers.d
+	doins sudoers.d/*
+
+	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
+	newtmpfiles "${FILESDIR}"/ceph-tmpfilesd ${PN}.conf
+
+	readme.gentoo_create_doc
+
+	# bug #630232
+	sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \
+		|| die "sed failed"
+
+	python_fix_shebang "${ED}"/usr/{,s}bin/
+
+	# python_fix_shebang apparently is not idempotent
+	local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]'
+	grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \
+		| xargs --null --no-run-if-empty -- sed -i -r  "s:${shebang_regex}:\1:" || die
+
+	local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* )
+	dostrip -x "${rados_classes[@]#${ED}}"
+}
+
+python_install() {
+	local CMAKE_USE_DIR="${S}"
+	DESTDIR="${ED}" cmake_build src/pybind/install
+
+	python_optimize
+}
+
+pkg_postinst() {
+	readme.gentoo_print_elog
+	tmpfiles_process ${PN}.conf
+	udev_reload
+}

diff --git a/sys-cluster/ceph/files/ceph-17.2.1-python310.patch b/sys-cluster/ceph/files/ceph-17.2.1-python310.patch
new file mode 100644
index 000000000000..767cd2922a26
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-17.2.1-python310.patch
@@ -0,0 +1,35 @@
+From 389054888f2aa782f73564125ec7a1ef0212d536 Mon Sep 17 00:00:00 2001
+From: Pete Zaitcev <zaitcev@redhat.com>
+Date: Tue, 14 Dec 2021 23:04:34 -0600
+Subject: [PATCH] mgr: Define PY_SSIZE_T_CLEAN ahead of every Python.h
+
+Building on Fedora 35 with Python 3.10 makes vstart to loop
+forever, throwing the following message:
+
+ Error EINVAL: SystemError: PY_SSIZE_T_CLEAN macro must be
+ defined for '#' formats
+
+I followed the hint in the following document:
+ https://docs.python.org/3/c-api/intro.html
+
+It says "recommended" to always define PY_SSIZE_T_CLEAN,
+but as you can see it is actually required in our case.
+
+Fixes: https://tracker.ceph.com/issues/53441
+Signed-off-by: Pete Zaitcev <zaitcev@redhat.com>
+---
+ src/mgr/CMakeLists.txt | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/mgr/CMakeLists.txt b/src/mgr/CMakeLists.txt
+index 55147af4fc6ba..8f39e41ac0694 100644
+--- a/src/mgr/CMakeLists.txt
++++ b/src/mgr/CMakeLists.txt
+@@ -33,6 +33,7 @@ if(WITH_MGR)
+     mgr_commands.cc
+     $<TARGET_OBJECTS:mgr_cap_obj>)
+   add_executable(ceph-mgr ${mgr_srcs})
++  target_compile_definitions(ceph-mgr PRIVATE PY_SSIZE_T_CLEAN)
+   if(WITH_LIBCEPHSQLITE)
+     target_link_libraries(ceph-mgr cephsqlite SQLite3::SQLite3)
+   endif()


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2022-07-13  0:20 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2022-07-13  0:20 UTC (permalink / raw
  To: gentoo-commits

commit:     a4be3d5347668f59ece000c45cbb019f793c716f
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 12 22:47:18 2022 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Wed Jul 13 00:19:48 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a4be3d53

sys-cluster/ceph: Revbump to 16.2.9-r1 fix #857702

Also change libfmt dep to be <9.0

Bug: https://bugs.gentoo.org/857702
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 sys-cluster/ceph/Manifest                                    |  2 --
 .../ceph/{ceph-16.2.9.ebuild => ceph-16.2.9-r1.ebuild}       |  3 ++-
 sys-cluster/ceph/files/ceph-16.2.9-python310.patch           | 12 ++++++++++++
 3 files changed, 14 insertions(+), 3 deletions(-)

diff --git a/sys-cluster/ceph/Manifest b/sys-cluster/ceph/Manifest
index d2eb006a495d..9b6f58453e84 100644
--- a/sys-cluster/ceph/Manifest
+++ b/sys-cluster/ceph/Manifest
@@ -1,4 +1,2 @@
 DIST ceph-15.2.16.tar.gz 148628915 BLAKE2B 4f624078027c706428eae3eddd5b5479efe3b4442c19a4e6b6cdf8d3839cf56e2863b18249dc3c5079a7e25f60796bfec3202ffd695537587654f5e2f820caaa SHA512 532b8a5073e157fe9ed552b26976faeb64dc29b79a249910c0982134ad5f945d4f57d8bf451adf63487b6d285c6e4bd5c39f0e3fcd449230d6fb3087539f8c3b
 DIST ceph-16.2.9.tar.gz 157168096 BLAKE2B 0a667a9699925cfc920ca0cc535e5331cbcd95997fb0b9816a4d84c8add454b6b17813018bc1d1de07c802167ef50aa528704b10b01f42759189392ccdb5088f SHA512 bf369038ad6383f88abbed267f0239e9d8a1d33b46b34ed260aeeb1fda1b374cb6e658238e1ace013fbbb68e73b8cd2922b7def318d7a110e5f4560eeae8fca3
-DIST ceph-17.2.1.tar.gz 168819036 BLAKE2B 2d6506f3a43ccbe4a149163c13ab2de72aeba568308ca7c0c59d0ff32316519d27b334451fd8d78af799cabe3b5a8c5b7b19d5da028e52c420ec7fc38efe5aad SHA512 cb88a3feff67ce41c575cb6c0067a32de51fcbf36d8f9f7273cccd54a3413ee890f473e83fcc1429a86b858b05c412fca8b2cfc24871c5adf612e3d224227cf0
-DIST ceph-xsimd-17.2.1.tar.gz 173025 BLAKE2B 54679c24804c195ae55b9f49589e331dde92c6d89aaa20e827539e9a4e0010c7549cdd5cf02a7ebed83f953ab2a6f1d9cc9a98cf45c3dc7758ae4938c9c43713 SHA512 ecc58e7909648aaa22aefbf76ee2c5a2bece4b1b88da9c7eda1b69a46247e619ff99c4366afd6015f95debd68c1a6b89292c677b9049462d0fc0255fbc0c2a33

diff --git a/sys-cluster/ceph/ceph-16.2.9.ebuild b/sys-cluster/ceph/ceph-16.2.9-r1.ebuild
similarity index 99%
rename from sys-cluster/ceph/ceph-16.2.9.ebuild
rename to sys-cluster/ceph/ceph-16.2.9-r1.ebuild
index 688c98bb2b8f..880937c7a706 100644
--- a/sys-cluster/ceph/ceph-16.2.9.ebuild
+++ b/sys-cluster/ceph/ceph-16.2.9-r1.ebuild
@@ -48,7 +48,7 @@ DEPEND="
 	dev-cpp/gflags:=
 	<dev-libs/leveldb-1.23:=[snappy,tcmalloc(-)?]
 	dev-libs/libaio:=
-	dev-libs/libfmt:=
+	<dev-libs/libfmt-9:=
 	dev-libs/libnl:3=
 	dev-libs/libxml2:=
 	dev-libs/libevent:=
@@ -217,6 +217,7 @@ PATCHES=(
 	"${FILESDIR}/ceph-16.2.2-system-zstd.patch"
 	"${FILESDIR}/ceph-16.2.7-string-includes.patch"
 	"${FILESDIR}/ceph-17.2.0-fuse3.patch"
+	"${FILESDIR}/ceph-16.2.9-python310.patch"
 )
 
 check-reqs_export_vars() {

diff --git a/sys-cluster/ceph/files/ceph-16.2.9-python310.patch b/sys-cluster/ceph/files/ceph-16.2.9-python310.patch
new file mode 100644
index 000000000000..403cfe2f3d1d
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-16.2.9-python310.patch
@@ -0,0 +1,12 @@
+diff --git a/src/mgr/CMakeLists.txt b/src/mgr/CMakeLists.txt
+index 38aad299ccb..8e152e060ea 100644
+--- a/src/mgr/CMakeLists.txt
++++ b/src/mgr/CMakeLists.txt
+@@ -34,6 +34,7 @@ if(WITH_MGR)
+     mgr_commands.cc
+     $<TARGET_OBJECTS:mgr_cap_obj>)
+   add_executable(ceph-mgr ${mgr_srcs})
++  target_compile_definitions(ceph-mgr PRIVATE PY_SSIZE_T_CLEAN)
+   target_link_libraries(ceph-mgr
+     osdc client heap_profiler
+     global-static ceph-common


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2022-08-12 20:46 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2022-08-12 20:46 UTC (permalink / raw
  To: gentoo-commits

commit:     0fb3b4acc70849deeee7a7cf07bc111e34be12fc
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Fri Aug 12 20:45:59 2022 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Fri Aug 12 20:46:44 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0fb3b4ac

sys-cluster/ceph: Add patch to attempt to fix bug #854681

I am unable to reproduce this bug, but this patch should theoretically fix it.
Please reopen the bug if the issue still exists.

Closes: https://bugs.gentoo.org/854681
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 sys-cluster/ceph/ceph-17.2.3.ebuild            |  1 +
 sys-cluster/ceph/files/ceph-17.2.3-gcc12.patch | 12 ++++++++++++
 2 files changed, 13 insertions(+)

diff --git a/sys-cluster/ceph/ceph-17.2.3.ebuild b/sys-cluster/ceph/ceph-17.2.3.ebuild
index 8a67048c3455..49a8857b5c24 100644
--- a/sys-cluster/ceph/ceph-17.2.3.ebuild
+++ b/sys-cluster/ceph/ceph-17.2.3.ebuild
@@ -216,6 +216,7 @@ PATCHES=(
 	"${FILESDIR}/ceph-17.2.0-fuse3.patch"
 	"${FILESDIR}/ceph-17.2.0-osd_class_dir.patch"
 	"${FILESDIR}/ceph-17.2.1-python310.patch"
+	"${FILESDIR}/ceph-17.2.3-gcc12.patch"
 )
 
 check-reqs_export_vars() {

diff --git a/sys-cluster/ceph/files/ceph-17.2.3-gcc12.patch b/sys-cluster/ceph/files/ceph-17.2.3-gcc12.patch
new file mode 100644
index 000000000000..e5e77b4116f6
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-17.2.3-gcc12.patch
@@ -0,0 +1,12 @@
+diff --git a/src/include/buffer.h b/src/include/buffer.h
+index 0c89367dd3b..98fcd7c3e08 100644
+--- a/src/include/buffer.h
++++ b/src/include/buffer.h
+@@ -62,6 +62,7 @@
+ #endif
+ 
+ #include "inline_memory.h"
++#include <memory>
+ 
+ #define CEPH_BUFFER_API
+ 


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2022-08-22 20:29 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2022-08-22 20:29 UTC (permalink / raw
  To: gentoo-commits

commit:     bf4283275302cbdf950f965f94920071068a2a8d
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Mon Aug 22 20:27:40 2022 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Mon Aug 22 20:29:27 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bf428327

sys-cluster/ceph: gcc12 (bug #866039), boost dep (bug #865509)

Also reduce filesdir usage a bit.

Closes: https://bugs.gentoo.org/865509
Closes: https://bugs.gentoo.org/866039
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 sys-cluster/ceph/Manifest                          |  1 +
 ...{ceph-16.2.10.ebuild => ceph-16.2.10-r1.ebuild} |  5 ++-
 .../ceph/files/ceph-15.2.15-snappy-1.1.9.patch     | 22 -----------
 sys-cluster/ceph/files/ceph-16.2.10-gcc12.patch    | 45 ++++++++++++++++++++++
 4 files changed, 49 insertions(+), 24 deletions(-)

diff --git a/sys-cluster/ceph/Manifest b/sys-cluster/ceph/Manifest
index 1d0f28a97518..85706e051c7c 100644
--- a/sys-cluster/ceph/Manifest
+++ b/sys-cluster/ceph/Manifest
@@ -1,4 +1,5 @@
 DIST ceph-15.2.17.tar.gz 148640102 BLAKE2B a10dd702ffca005a8741bff645eaf2f671300be969edf9e9e321e29abdc34a403de7c56684fd1509d30c2bd32b996fff3aaa88d1d08c3d258d6f5ef43ecefddf SHA512 952cd4db057fcab5efa3c6331fbc19cf1e904f5855266c2ed13e41ffb2e5a7d18ed133bd113fea493149005a182f429eef39931c4ceac7776aefe84a208a745a
+DIST ceph-16.2.10.tar.gz 157176743 BLAKE2B 065b6f1941f87fde150ab22ba45aa9f58069acf7f33a483456faf0a26e41936846944e800ccd7f99bd8863db8438ae70804621522f75065c0b2506522c4fdd7d SHA512 ae164c24462c3e08763d202acc3e2fe86ffc09f312b5059bae07863e804fc47bd158fc130aa2923246ffcfe26ae6d6d9317326aec96373226e6f9030d7123c8b
 DIST ceph-16.2.9.tar.gz 157168096 BLAKE2B 0a667a9699925cfc920ca0cc535e5331cbcd95997fb0b9816a4d84c8add454b6b17813018bc1d1de07c802167ef50aa528704b10b01f42759189392ccdb5088f SHA512 bf369038ad6383f88abbed267f0239e9d8a1d33b46b34ed260aeeb1fda1b374cb6e658238e1ace013fbbb68e73b8cd2922b7def318d7a110e5f4560eeae8fca3
 DIST ceph-17.2.3.tar.gz 168821857 BLAKE2B 21ec5ac33591ae8b22eae3d88680ae87340e639cc21cb9c79bc4fb2f7b6cc7e93aa6b5af0242a6c094a4af9808a2b6f86b6bd7e3c8f247a513c91defa6d4e4a9 SHA512 fd6e057ba8440f69423e870dddb2705d68015089ff8d97356bdc359c2ab41e19351fb1c914330de6ba05180f48e328e3ea4c877e9dd80be049e2ec5895068595
 DIST ceph-xsimd-17.2.3.tar.gz 173025 BLAKE2B 54679c24804c195ae55b9f49589e331dde92c6d89aaa20e827539e9a4e0010c7549cdd5cf02a7ebed83f953ab2a6f1d9cc9a98cf45c3dc7758ae4938c9c43713 SHA512 ecc58e7909648aaa22aefbf76ee2c5a2bece4b1b88da9c7eda1b69a46247e619ff99c4366afd6015f95debd68c1a6b89292c677b9049462d0fc0255fbc0c2a33

diff --git a/sys-cluster/ceph/ceph-16.2.10.ebuild b/sys-cluster/ceph/ceph-16.2.10-r1.ebuild
similarity index 99%
rename from sys-cluster/ceph/ceph-16.2.10.ebuild
rename to sys-cluster/ceph/ceph-16.2.10-r1.ebuild
index 7100183dd1ba..fab42ed01f7d 100644
--- a/sys-cluster/ceph/ceph-16.2.10.ebuild
+++ b/sys-cluster/ceph/ceph-16.2.10-r1.ebuild
@@ -40,7 +40,7 @@ DEPEND="
 	app-arch/bzip2:=
 	app-arch/lz4:=
 	app-arch/snappy:=
-	|| ( >=app-arch/snappy-1.1.9-r1 <app-arch/snappy-1.1.9 )
+	>=app-arch/snappy-1.1.9-r1
 	app-arch/zstd:=
 	app-shells/bash:0
 	app-misc/jq:=
@@ -92,7 +92,7 @@ DEPEND="
 	rdma? ( sys-cluster/rdma-core:= )
 	spdk? ( dev-util/cunit )
 	sqlite? ( dev-db/sqlite:= )
-	system-boost? ( >=dev-libs/boost-1.72:=[threads(+),context,python,${PYTHON_USEDEP}] )
+	system-boost? ( >=dev-libs/boost-1.72:=[threads(+),context,python,${PYTHON_USEDEP},zlib] )
 	!system-boost? ( $(python_gen_impl_dep '' 3.8 3.9) )
 	uring? ( sys-libs/liburing:= )
 	xfs? ( sys-fs/xfsprogs:= )
@@ -218,6 +218,7 @@ PATCHES=(
 	"${FILESDIR}/ceph-16.2.7-string-includes.patch"
 	"${FILESDIR}/ceph-17.2.0-fuse3.patch"
 	"${FILESDIR}/ceph-16.2.9-python310.patch"
+	"${FILESDIR}/ceph-16.2.10-gcc12.patch"
 )
 
 check-reqs_export_vars() {

diff --git a/sys-cluster/ceph/files/ceph-15.2.15-snappy-1.1.9.patch b/sys-cluster/ceph/files/ceph-15.2.15-snappy-1.1.9.patch
index 3b38c1708733..3319f3989ff9 100644
--- a/sys-cluster/ceph/files/ceph-15.2.15-snappy-1.1.9.patch
+++ b/sys-cluster/ceph/files/ceph-15.2.15-snappy-1.1.9.patch
@@ -1,25 +1,3 @@
-From 4c13a798dcf2e783afd7558bf3541dc025de854a Mon Sep 17 00:00:00 2001
-From: Nathan Cutler <ncutler@suse.com>
-Date: Tue, 27 Jul 2021 15:27:58 +0200
-Subject: [PATCH] compression/snappy: use uint32_t to be compatible with 1.1.9
-
-The snappy project made the following change in snappy.h between version 1.1.8
-and 1.1.9:
-
-<   bool GetUncompressedLength(Source* source, uint32_t* result);
----
->   bool GetUncompressedLength(Source* source, uint32* result);
-
-This causes Ceph to FTBFS with snappy 1.1.9.
-
-Thanks to Chris Denice for bringing this to our attention via Redmine.
-
-Fixes: https://tracker.ceph.com/issues/50934
-Signed-off-by: Nathan Cutler <ncutler@suse.com>
----
- src/compressor/snappy/SnappyCompressor.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
 diff --git a/src/compressor/snappy/SnappyCompressor.h b/src/compressor/snappy/SnappyCompressor.h
 index 25393f8dc1ff4..93206c4007bed 100644
 --- a/src/compressor/snappy/SnappyCompressor.h

diff --git a/sys-cluster/ceph/files/ceph-16.2.10-gcc12.patch b/sys-cluster/ceph/files/ceph-16.2.10-gcc12.patch
new file mode 100644
index 000000000000..79bc5d41f410
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-16.2.10-gcc12.patch
@@ -0,0 +1,45 @@
+diff --git a/src/include/buffer.h b/src/include/buffer.h
+index 7c8f90e9fb5d3..71cb01935000b 100644
+--- a/src/include/buffer.h
++++ b/src/include/buffer.h
+@@ -41,6 +41,7 @@
+ #include <iosfwd>
+ #include <iomanip>
+ #include <list>
++#include <memory>
+ #include <vector>
+ #include <string>
+ #if __cplusplus >= 201703L
+
+diff --git a/src/rgw/rgw_string.h b/src/rgw/rgw_string.h
+index 257daa9c1fe6e..90e64f98a2587 100644
+--- a/src/rgw/rgw_string.h
++++ b/src/rgw/rgw_string.h
+@@ -8,6 +8,8 @@
+ #include <stdlib.h>
+ #include <limits.h>
+ #include <string_view>
++#include <string>
++#include <stdexcept>
+ 
+ #include <boost/container/small_vector.hpp>
+ 
+
+diff --git a/src/test/encoding.cc b/src/test/encoding.cc
+index 6d252fae18b71..f18901cbd27d9 100644
+--- a/src/test/encoding.cc
++++ b/src/test/encoding.cc
+@@ -334,11 +334,11 @@ void lame_decoder(int which) {
+ }
+ 
+ TEST(EncodingException, Macros) {
+-  for (unsigned i = 0; i < sizeof(expected_what)/sizeof(expected_what[0]); i++) {
++  for (unsigned i = 0; i < std::size(expected_what); i++) {
+     try {
+       lame_decoder(i);
+     } catch (const exception& e) {
+-      ASSERT_EQ(string(expected_what[i]), string(e.what()));
++      ASSERT_NE(string(e.what()).find(expected_what[i]), string::npos);
+     }
+   }
+ }


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2022-08-23  7:44 罗百科
  0 siblings, 0 replies; 48+ messages in thread
From: 罗百科 @ 2022-08-23  7:44 UTC (permalink / raw
  To: gentoo-commits

commit:     624ff5962199a2fb0891a96e1afbaac0677d5578
Author:     Patrick Lauer <patrick <AT> gentoo <DOT> org>
AuthorDate: Tue Aug 23 07:44:05 2022 +0000
Commit:     罗百科 <patrick <AT> gentoo <DOT> org>
CommitDate: Tue Aug 23 07:44:34 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=624ff596

sys-cluster/ceph: More gcc12 fixes

Patches from
https://github.com/lgirdk/meta-virtualization/tree/master/recipes-extended/ceph/ceph

Package-Manager: Portage-3.0.30, Repoman-3.0.3
Signed-off-by: Patrick Lauer <patrick <AT> gentoo.org>

 sys-cluster/ceph/ceph-17.2.3-r2.ebuild             | 462 +++++++++++++++++++++
 .../ceph/files/ceph-17.2.0-gcc12-dout.patch        |  42 ++
 .../ceph/files/ceph-17.2.0-gcc12-header.patch      |  30 ++
 3 files changed, 534 insertions(+)

diff --git a/sys-cluster/ceph/ceph-17.2.3-r2.ebuild b/sys-cluster/ceph/ceph-17.2.3-r2.ebuild
new file mode 100644
index 000000000000..c31770f38434
--- /dev/null
+++ b/sys-cluster/ceph/ceph-17.2.3-r2.ebuild
@@ -0,0 +1,462 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..10} )
+LUA_COMPAT=( lua5-{3..4} )
+
+inherit check-reqs bash-completion-r1 cmake flag-o-matic lua-single \
+		python-r1 udev readme.gentoo-r1 toolchain-funcs systemd tmpfiles
+
+SRC_URI="
+	https://download.ceph.com/tarballs/${P}.tar.gz
+	parquet? ( https://github.com/xtensor-stack/xsimd/archive/aeec9c872c8b475dedd7781336710f2dd2666cb2.tar.gz -> ceph-xsimd-${PV}.tar.gz )
+"
+KEYWORDS="~amd64 ~arm64"
+
+DESCRIPTION="Ceph distributed filesystem"
+HOMEPAGE="https://ceph.com/"
+
+LICENSE="Apache-2.0 LGPL-2.1 CC-BY-SA-3.0 GPL-2 GPL-2+ LGPL-2+ LGPL-2.1 LGPL-3 GPL-3 BSD Boost-1.0 MIT public-domain"
+SLOT="0"
+
+CPU_FLAGS_X86=(avx2 avx512f pclmul sse{,2,3,4_1,4_2} ssse3)
+
+IUSE="
+	babeltrace +cephfs custom-cflags diskprediction dpdk fuse grafana
+	jemalloc jaeger kafka kerberos ldap lttng +mgr +parquet pmdk rabbitmq
+	+radosgw rbd-rwl rbd-ssd rdma rgw-lua +ssl spdk +sqlite +system-boost
+	systemd +tcmalloc test +uring xfs zbd zfs
+"
+
+IUSE+="$(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})"
+
+DEPEND="
+	${LUA_DEPS}
+	${PYTHON_DEPS}
+	acct-group/ceph
+	acct-user/ceph
+	virtual/libudev:=
+	app-arch/bzip2:=
+	app-arch/lz4:=
+	app-arch/snappy:=
+	>=app-arch/snappy-1.1.9-r1
+	app-arch/zstd:=
+	app-shells/bash:0
+	app-misc/jq:=
+	dev-libs/crypto++:=
+	dev-cpp/gflags:=
+	<dev-libs/leveldb-1.23:=[snappy,tcmalloc(-)?]
+	dev-libs/libaio:=
+	>=dev-libs/libfmt-6.2.1:=
+	<dev-libs/libfmt-9:=
+	dev-libs/libnl:3=
+	dev-libs/libxml2:=
+	dev-libs/libevent:=
+	dev-libs/libutf8proc:=
+	dev-libs/openssl:=
+	<dev-libs/rocksdb-6.15:=
+	dev-libs/thrift:=
+	dev-libs/xmlsec:=[openssl]
+	dev-cpp/yaml-cpp:=
+	dev-libs/nss:=
+	dev-python/pyyaml[${PYTHON_USEDEP}]
+	net-dns/c-ares:=
+	net-libs/gnutls:=
+	sys-auth/oath-toolkit:=
+	sys-apps/coreutils
+	sys-apps/hwloc:=
+	sys-apps/keyutils:=
+	sys-apps/util-linux:=
+	sys-libs/libcap-ng:=
+	sys-libs/ncurses:0=
+	sys-libs/zlib:=
+	sys-process/numactl:=
+	virtual/libcrypt:=
+	x11-libs/libpciaccess:=
+	babeltrace? ( dev-util/babeltrace )
+	fuse? ( sys-fs/fuse:3= )
+	jemalloc? ( dev-libs/jemalloc:= )
+	!jemalloc? ( >=dev-util/google-perftools-2.6.1:= )
+	jaeger? (
+		dev-cpp/nlohmann_json:=
+		dev-cpp/opentelemetry-cpp:=[jaeger]
+	)
+	kafka? ( dev-libs/librdkafka:= )
+	kerberos? ( virtual/krb5 )
+	ldap? ( net-nds/openldap:= )
+	lttng? ( dev-util/lttng-ust:= )
+	parquet? ( dev-libs/re2:= )
+	pmdk? ( dev-libs/pmdk:= )
+	rabbitmq? ( net-libs/rabbitmq-c:= )
+	radosgw? (
+		dev-libs/icu:=
+		dev-libs/expat:=
+		net-misc/curl:=[curl_ssl_openssl]
+	)
+	rbd-rwl? ( dev-libs/pmdk:= )
+	rdma? ( sys-cluster/rdma-core:= )
+	spdk? ( dev-util/cunit )
+	sqlite? ( dev-db/sqlite:= )
+	system-boost? ( >=dev-libs/boost-1.72:=[threads(+),context,python,${PYTHON_USEDEP},zlib] )
+	uring? ( sys-libs/liburing:= )
+	xfs? ( sys-fs/xfsprogs:= )
+	zbd? ( sys-block/libzbd:= )
+	zfs? ( sys-fs/zfs:= )
+"
+BDEPEND="
+	amd64? ( dev-lang/nasm )
+	x86? ( dev-lang/yasm )
+	app-arch/cpio
+	>=dev-util/cmake-3.5.0
+	dev-python/cython[${PYTHON_USEDEP}]
+	dev-python/setuptools[${PYTHON_USEDEP}]
+	dev-python/sphinx
+	dev-util/gperf
+	dev-util/ragel
+	dev-util/valgrind
+	sys-apps/coreutils
+	sys-apps/grep
+	sys-apps/sed
+	sys-apps/util-linux
+	sys-apps/which
+	sys-devel/bc
+	sys-devel/patch
+	virtual/pkgconfig
+	jaeger? (
+		sys-devel/bison
+		sys-devel/flex
+	)
+	test? (
+		dev-util/cunit
+		dev-python/coverage[${PYTHON_USEDEP}]
+		dev-python/virtualenv[${PYTHON_USEDEP}]
+		dev-python/requests-mock[${PYTHON_USEDEP}]
+		sys-apps/grep[pcre]
+		sys-fs/btrfs-progs
+	)
+"
+RDEPEND="
+	${DEPEND}
+	app-admin/sudo
+	net-misc/socat
+	sys-apps/gptfdisk
+	sys-apps/nvme-cli
+	>=sys-apps/smartmontools-7.0
+	sys-block/parted
+	sys-fs/cryptsetup
+	sys-fs/lsscsi
+	sys-fs/lvm2[-device-mapper-only(-)]
+	virtual/awk
+	dev-python/bcrypt[${PYTHON_USEDEP}]
+	dev-python/cherrypy[${PYTHON_USEDEP}]
+	dev-python/python-dateutil[${PYTHON_USEDEP}]
+	dev-python/flask[${PYTHON_USEDEP}]
+	dev-python/jinja[${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}]
+	mgr? (
+		dev-python/jsonpatch[${PYTHON_USEDEP}]
+		dev-python/more-itertools[${PYTHON_USEDEP}]
+		dev-python/numpy[${PYTHON_USEDEP}]
+		dev-python/pyjwt[${PYTHON_USEDEP}]
+		dev-python/routes[${PYTHON_USEDEP}]
+		diskprediction? (
+			>=dev-python/scipy-1.4.0[${PYTHON_USEDEP}]
+		)
+		sci-libs/scikit-learn[${PYTHON_USEDEP}]
+		dev-python/six[${PYTHON_USEDEP}]
+	)
+"
+# diskprediction needs older scipy not compatible with py38
+# bug #724438
+REQUIRED_USE="
+	${PYTHON_REQUIRED_USE}
+	${LUA_REQUIRED_USE}
+	?? ( jemalloc tcmalloc )
+	diskprediction? ( mgr )
+	kafka? ( radosgw )
+	mgr? ( cephfs )
+	rabbitmq? ( radosgw )
+	rgw-lua? ( radosgw )
+"
+
+RESTRICT="
+	!test? ( test )
+"
+
+# tests need root access, and network access
+RESTRICT+="test"
+
+# false positives unless all USE flags are on
+CMAKE_WARN_UNUSED_CLI=no
+
+PATCHES=(
+	"${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch"
+	"${FILESDIR}/ceph-14.2.0-cflags.patch"
+	"${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch"
+	"${FILESDIR}/ceph-16.2.2-cflags.patch"
+	"${FILESDIR}/ceph-17.2.1-no-virtualenvs.patch"
+	"${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
+	"${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch"
+	"${FILESDIR}/ceph-16.2.0-rocksdb-cmake.patch"
+	"${FILESDIR}/ceph-16.2.0-spdk-tinfo.patch"
+	"${FILESDIR}/ceph-16.2.0-jaeger-system-boost.patch"
+	"${FILESDIR}/ceph-16.2.0-liburing.patch"
+	"${FILESDIR}/ceph-17.2.0-cyclic-deps.patch"
+	"${FILESDIR}/ceph-17.2.0-pybind-boost-1.74.patch"
+	"${FILESDIR}/ceph-17.2.0-findre2.patch"
+	"${FILESDIR}/ceph-17.2.0-install-dbstore.patch"
+	"${FILESDIR}/ceph-17.2.0-deprecated-boost.patch"
+	"${FILESDIR}/ceph-17.2.0-system-opentelemetry.patch"
+	"${FILESDIR}/ceph-17.2.0-fuse3.patch"
+	"${FILESDIR}/ceph-17.2.0-osd_class_dir.patch"
+	"${FILESDIR}/ceph-17.2.1-python310.patch"
+	"${FILESDIR}/ceph-17.2.3-gcc12.patch"
+	"${FILESDIR}/ceph-17.2.0-gcc12-dout.patch"
+	"${FILESDIR}/ceph-17.2.0-gcc12-header.patch"
+)
+
+check-reqs_export_vars() {
+	CHECKREQS_DISK_BUILD="6G"
+
+	if use system-boost; then
+		CHECKREQS_DISK_USR="350M"
+	else
+		CHECKREQS_DISK_USR="510M"
+	fi
+
+	export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR
+}
+
+pkg_pretend() {
+	check-reqs_export_vars
+	check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+	python_setup
+	lua_setup
+	check-reqs_export_vars
+	check-reqs_pkg_setup
+}
+
+src_prepare() {
+	cmake_src_prepare
+
+	if use system-boost; then
+		find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \
+			| xargs --null sed -r \
+			-e 's|Boost::|boost_|g' \
+			-e 's|Boost_|boost_|g' \
+			-e 's|[Bb]oost_boost|boost_system|g' \
+			-i || die
+	fi
+
+	if ! use systemd; then
+		find "${S}"/src/ceph-volume/ceph_volume -name '*.py' -print0 \
+			| xargs --null sed \
+			-e '/^from ceph_volume.systemd import systemctl/ d' \
+			-i || die
+	fi
+
+	sed -r -e "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \
+		-i src/bash_completion/CMakeLists.txt || die
+
+	sed -e "s:objdump -p:$(tc-getOBJDUMP) -p:" -i CMakeLists.txt || die
+
+	# force lua version to use selected version
+	local lua_version
+	lua_version=$(ver_cut 1-2 $(lua_get_version))
+	sed "s:find_package(Lua [0-9][.][0-9] REQUIRED):find_package(Lua ${lua_version} EXACT REQUIRED):" \
+		-i src/CMakeLists.txt
+
+	# remove tests that need root access
+	rm src/test/cli/ceph-authtool/cap*.t || die
+}
+
+ceph_src_configure() {
+	local mycmakeargs=(
+		-DWITH_BABELTRACE:BOOL=$(usex babeltrace)
+		-DWITH_BLUESTORE_PMEM:BOOL=$(usex pmdk)
+		-DWITH_CEPHFS:BOOL=$(usex cephfs)
+		-DWITH_CEPHFS_SHELL:BOOL=$(usex cephfs)
+		-DWITH_DPDK:BOOL=$(usex dpdk)
+		-DWITH_SPDK:BOOL=$(usex spdk)
+		-DWITH_FUSE:BOOL=$(usex fuse)
+		-DWITH_LTTNG:BOOL=$(usex lttng)
+		-DWITH_GSSAPI:BOOL=$(usex kerberos)
+		-DWITH_GRAFANA:BOOL=$(usex grafana)
+		-DWITH_MGR:BOOL=$(usex mgr)
+		-DWITH_MGR_DASHBOARD_FRONTEND:BOOL=OFF
+		-DWITH_OPENLDAP:BOOL=$(usex ldap)
+		-DWITH_PYTHON3:STRING=3
+		-DWITH_RADOSGW:BOOL=$(usex radosgw)
+		-DWITH_RADOSGW_AMQP_ENDPOINT:BOOL=$(usex rabbitmq)
+		-DWITH_RADOSGW_KAFKA_ENDPOINT:BOOL=$(usex kafka)
+		-DWITH_RADOSGW_LUA_PACKAGES:BOOL=$(usex rgw-lua "$(usex radosgw)" "NO")
+		-DWITH_RBD_RWL:BOOL=$(usex rbd-rwl)
+		-DWITH_RBD_SSD_CACHE:BOOL=$(usex rbd-ssd)
+		-DWITH_SYSTEMD:BOOL=$(usex systemd)
+		-DWITH_TESTS:BOOL=$(usex test)
+		-DWITH_LIBURING:BOOL=$(usex uring)
+		-DWITH_SYSTEM_LIBURING:BOOL=$(usex uring)
+		-DWITH_LIBCEPHSQLITE:BOOL=$(usex sqlite)
+		-DWITH_XFS:BOOL=$(usex xfs)
+		-DWITH_ZBD:BOOL=$(usex zbd)
+		-DWITH_ZFS:BOOL=$(usex zfs)
+		-DENABLE_SHARED:BOOL=ON
+		-DALLOCATOR:STRING=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')")
+		-DWITH_SYSTEM_PMDK:BOOL=$(usex pmdk 'YES' "$(usex rbd-rwl '')")
+		-DWITH_SYSTEM_BOOST:BOOL=$(usex system-boost)
+		-DWITH_SYSTEM_ROCKSDB:BOOL=ON
+		-DWITH_SYSTEM_ZSTD:BOOL=ON
+		-DWITH_RDMA:BOOL=$(usex rdma)
+		-DCMAKE_INSTALL_DOCDIR:PATH="${EPREFIX}/usr/share/doc/${PN}-${PVR}"
+		-DCMAKE_INSTALL_SYSCONFDIR:PATH="${EPREFIX}/etc"
+		-Wno-dev
+	)
+
+	# this breaks when re-configuring for python impl
+	if [[ ${EBUILD_PHASE} == configure ]]; then
+		mycmakeargs+=(
+			-DWITH_JAEGER:BOOL=$(usex jaeger)
+			-DWITH_RADOSGW_SELECT_PARQUET:BOOL=$(usex parquet)
+		)
+	else
+		mycmakeargs+=(
+			-DWITH_RADOSGW_SELECT_PARQUET:BOOL=OFF
+		)
+	fi
+
+	# conditionally used cmake args
+	use test && mycmakearts+=( -DWITH_SYSTEM_GTEST:BOOL=$(usex test) )
+	use systemd && mycmakeargs+=( -DSYSTEMD_SYSTEM_UNIT_DIR:PATH=$(systemd_get_systemunitdir) )
+
+	if use amd64 || use x86; then
+		local flag
+		for flag in "${CPU_FLAGS_X86[@]}"; do
+			case "${flag}" in
+				avx*)
+					local var=${flag%f}
+					mycmakeargs+=(
+						"-DHAVE_NASM_X64_${var^^}:BOOL=$(usex cpu_flags_x86_${flag})"
+					)
+				;;
+				*) mycmakeargs+=(
+						"-DHAVE_INTEL_${flag^^}:BOOL=$(usex cpu_flags_x86_${flag})"
+					);;
+			esac
+		done
+	fi
+
+	# needed for >=glibc-2.32
+	has_version '>=sys-libs/glibc-2.32' && mycmakeargs+=( -DWITH_REENTRANT_STRSIGNAL:BOOL=ON )
+
+	rm -f "${BUILD_DIR:-${S}}/CMakeCache.txt" \
+		|| die "failed to remove cmake cache"
+
+	# hopefully this will not be necessary in the next release
+	use parquet && export ARROW_XSIMD_URL="file:///${DISTDIR}/ceph-xsimd-${PV}.tar.gz"
+
+	cmake_src_configure
+
+	# bug #630232
+	sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \
+		"${BUILD_DIR:-${S}}"/include/acconfig.h \
+		|| die "sed failed"
+}
+
+src_configure() {
+	use custom-cflags || strip-flags
+	ceph_src_configure
+}
+
+src_compile() {
+	cmake_build all
+
+	# we have to do this here to prevent from building everything multiple times
+	python_copy_sources
+	python_foreach_impl python_compile
+}
+
+python_compile() {
+	local CMAKE_USE_DIR="${S}"
+	ceph_src_configure
+
+	cmake_build src/pybind/CMakeFiles/cython_modules
+}
+
+src_install() {
+	python_foreach_impl python_install
+
+	python_setup
+	cmake_src_install
+
+	find "${ED}" -name '*.la' -type f -delete || die
+
+	exeinto /usr/$(get_libdir)/ceph
+	newexe "${BUILD_DIR}/bin/init-ceph" init-ceph
+
+	insinto /etc/logrotate.d/
+	newins "${FILESDIR}"/ceph.logrotate-r2 ${PN}
+
+	keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat
+
+	fowners -R ceph:ceph /var/log/ceph
+
+	newinitd "${FILESDIR}/rbdmap.initd-r1" rbdmap
+	newinitd "${FILESDIR}/${PN}.initd-r12" ${PN}
+	newconfd "${FILESDIR}/${PN}.confd-r5" ${PN}
+
+	insinto /etc/sudoers.d
+	doins sudoers.d/*
+
+	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
+	newtmpfiles "${FILESDIR}"/ceph-tmpfilesd ${PN}.conf
+
+	readme.gentoo_create_doc
+
+	# bug #630232
+	sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \
+		|| die "sed failed"
+
+	python_fix_shebang "${ED}"/usr/{,s}bin/
+
+	# python_fix_shebang apparently is not idempotent
+	local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]'
+	grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \
+		| xargs --null --no-run-if-empty -- sed -i -r  "s:${shebang_regex}:\1:" || die
+
+	local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* )
+	dostrip -x "${rados_classes[@]#${ED}}"
+}
+
+python_install() {
+	local CMAKE_USE_DIR="${S}"
+	DESTDIR="${ED}" cmake_build src/pybind/install
+
+	python_optimize
+}
+
+pkg_postinst() {
+	readme.gentoo_print_elog
+	tmpfiles_process ${PN}.conf
+	udev_reload
+}

diff --git a/sys-cluster/ceph/files/ceph-17.2.0-gcc12-dout.patch b/sys-cluster/ceph/files/ceph-17.2.0-gcc12-dout.patch
new file mode 100644
index 000000000000..d119bf1bf11d
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-17.2.0-gcc12-dout.patch
@@ -0,0 +1,42 @@
+From 841806de212226921eeaeb3eea054bda8ccce616 Mon Sep 17 00:00:00 2001
+From: Radoslaw Zarzynski <rzarzyns@redhat.com>
+Date: Wed, 19 Jan 2022 15:24:11 +0000
+Subject: [PATCH 2/2] common: fix FTBFS due to dout & need_dynamic on GCC-12
+
+For details see:
+https://gist.github.com/rzarzynski/d6d2df6888923bef6a3e764f4856853f.
+
+Special thanks to Kaleb Keithley who reported the issue
+and tested the fix!
+
+Fixes: https://tracker.ceph.com/issues/53896
+Signed-off-by: Radoslaw Zarzynski <rzarzyns@redhat.com>
+
+Upstream-Status: Backport [963d756ded40f5adf2efef53893c917bec1845c1]
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ src/common/dout.h | 5 +++--
+ 1 file changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/src/common/dout.h b/src/common/dout.h
+index c7c08182..42f49915 100644
+--- a/src/common/dout.h
++++ b/src/common/dout.h
+@@ -99,11 +99,12 @@ namespace ceph::dout {
+ template<typename T>
+ struct dynamic_marker_t {
+   T value;
+-  operator T() const { return value; }
++  // constexpr ctor isn't needed as it's an aggregate type
++  constexpr operator T() const { return value; }
+ };
+ 
+ template<typename T>
+-dynamic_marker_t<T> need_dynamic(T&& t) {
++constexpr dynamic_marker_t<T> need_dynamic(T&& t) {
+   return dynamic_marker_t<T>{ std::forward<T>(t) };
+ }
+ 
+-- 
+2.36.0
+

diff --git a/sys-cluster/ceph/files/ceph-17.2.0-gcc12-header.patch b/sys-cluster/ceph/files/ceph-17.2.0-gcc12-header.patch
new file mode 100644
index 000000000000..70d3eb94c97a
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-17.2.0-gcc12-header.patch
@@ -0,0 +1,30 @@
+From 496465d9238109a93612e28682273e5bf576823b Mon Sep 17 00:00:00 2001
+From: Chen Qi <Qi.Chen@windriver.com>
+Date: Sun, 22 May 2022 19:40:59 -0700
+Subject: [PATCH 1/2] buffer.h: add missing header file due to gcc upgrade
+
+The header file <memory> have been changed to be no longer included by other
+heades, thus requiring explicit include. See https://gcc.gnu.org/gcc-12/porting_to.html
+
+Upstream-Status: Pending
+
+Signed-off-by: Chen Qi <Qi.Chen@windriver.com>
+---
+ src/include/buffer.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/include/buffer.h b/src/include/buffer.h
+index 5c8b427d..88845ee6 100644
+--- a/src/include/buffer.h
++++ b/src/include/buffer.h
+@@ -43,6 +43,7 @@
+ #include <list>
+ #include <vector>
+ #include <string>
++#include <memory>
+ #if __cplusplus >= 201703L
+ #include <string_view>
+ #endif // __cplusplus >= 201703L
+-- 
+2.36.0
+


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2022-08-24 23:27 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2022-08-24 23:27 UTC (permalink / raw
  To: gentoo-commits

commit:     dc412bfceb29b3de1cab492e25dd17ead7eabf13
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Wed Aug 24 23:27:37 2022 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Wed Aug 24 23:27:37 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dc412bfc

sys-cluster/ceph: Make sure LDFLAGS is respected for python

Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 sys-cluster/ceph/ceph-16.2.10-r2.ebuild         |  1 +
 sys-cluster/ceph/files/ceph-16.2.10-flags.patch | 14 ++++++++++++++
 2 files changed, 15 insertions(+)

diff --git a/sys-cluster/ceph/ceph-16.2.10-r2.ebuild b/sys-cluster/ceph/ceph-16.2.10-r2.ebuild
index 93265481033e..546f6123d069 100644
--- a/sys-cluster/ceph/ceph-16.2.10-r2.ebuild
+++ b/sys-cluster/ceph/ceph-16.2.10-r2.ebuild
@@ -219,6 +219,7 @@ PATCHES=(
 	"${FILESDIR}/ceph-17.2.0-fuse3.patch"
 	"${FILESDIR}/ceph-16.2.9-python310.patch"
 	"${FILESDIR}/ceph-17.2.0-gcc12-header.patch"
+	"${FILESDIR}/ceph-16.2.10-flags.patch"
 )
 
 check-reqs_export_vars() {

diff --git a/sys-cluster/ceph/files/ceph-16.2.10-flags.patch b/sys-cluster/ceph/files/ceph-16.2.10-flags.patch
new file mode 100644
index 000000000000..79002b3a5fce
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-16.2.10-flags.patch
@@ -0,0 +1,14 @@
+diff --git a/cmake/modules/Distutils.cmake b/cmake/modules/Distutils.cmake
+index 01a6fc500c8..9eb4658482f 100644
+--- a/cmake/modules/Distutils.cmake
++++ b/cmake/modules/Distutils.cmake
+@@ -90,7 +90,8 @@ function(distutils_add_cython_module target name src)
+     CXX="${PY_CXX}"
+     LDSHARED="${PY_LDSHARED}"
+     OPT=\"-DNDEBUG -g -fwrapv -w\"
+-    LDFLAGS=-L${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
++    CFLAGS=${CMAKE_C_FLAGS}
++    LDFLAGS=-L${CMAKE_LIBRARY_OUTPUT_DIRECTORY}\ ${CMAKE_LINKER_FLAGS}\ ${CMAKE_SHARED_LINKER_FLAGS}
+     CYTHON_BUILD_DIR=${CMAKE_CURRENT_BINARY_DIR}
+     CEPH_LIBDIR=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
+     ${Python3_EXECUTABLE} ${setup_py}


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2022-10-20  1:27 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2022-10-20  1:27 UTC (permalink / raw
  To: gentoo-commits

commit:     3db33760c4de33531b54ae4057ea1e6efe22c1aa
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Thu Oct 20 01:26:57 2022 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Thu Oct 20 01:26:57 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3db33760

sys-cluster/ceph: add 17.2.5

Closes: https://bugs.gentoo.org/866165
Closes: https://bugs.gentoo.org/871942
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 sys-cluster/ceph/Manifest                          |   2 +
 sys-cluster/ceph/ceph-17.2.5.ebuild                | 478 +++++++++++++++++++++
 .../files/ceph-17.2.5-suppress-cmake-warning.patch |  11 +
 3 files changed, 491 insertions(+)

diff --git a/sys-cluster/ceph/Manifest b/sys-cluster/ceph/Manifest
index 2b750ba706c0..ccee4ae209f0 100644
--- a/sys-cluster/ceph/Manifest
+++ b/sys-cluster/ceph/Manifest
@@ -3,5 +3,7 @@ DIST ceph-16.2.10.tar.gz 157176743 BLAKE2B 065b6f1941f87fde150ab22ba45aa9f58069a
 DIST ceph-16.2.9.tar.gz 157168096 BLAKE2B 0a667a9699925cfc920ca0cc535e5331cbcd95997fb0b9816a4d84c8add454b6b17813018bc1d1de07c802167ef50aa528704b10b01f42759189392ccdb5088f SHA512 bf369038ad6383f88abbed267f0239e9d8a1d33b46b34ed260aeeb1fda1b374cb6e658238e1ace013fbbb68e73b8cd2922b7def318d7a110e5f4560eeae8fca3
 DIST ceph-17.2.3.tar.gz 168821857 BLAKE2B 21ec5ac33591ae8b22eae3d88680ae87340e639cc21cb9c79bc4fb2f7b6cc7e93aa6b5af0242a6c094a4af9808a2b6f86b6bd7e3c8f247a513c91defa6d4e4a9 SHA512 fd6e057ba8440f69423e870dddb2705d68015089ff8d97356bdc359c2ab41e19351fb1c914330de6ba05180f48e328e3ea4c877e9dd80be049e2ec5895068595
 DIST ceph-17.2.4.tar.gz 169013206 BLAKE2B 05c30a88b05b28845eb18cf89f323673d8a271fbe0011caef1badf26779e932bff610622cc93c4f4436726ade1a71dc6841c47a6a58c9ef2a31b471e52737cfe SHA512 430e916004a697bddda8cb7a83026b6e0e2b2e618e645df48c0580d16d7370d5a40d94b802db5b344faeab7c4e48d65c8ade47d0cbf0eaa0e7ddf399b09a279d
+DIST ceph-17.2.5.tar.gz 169004360 BLAKE2B b6d8df5f9b58de5e42fed5d16b1c82d2178297f8bb1b6cf9c42ff55d6a5b2e20fe413feeab038738f62342576ef59fff7091b87648c10cf71401377b0ffa5dc8 SHA512 10cd3d9eb01c91c148a92f1f7d040bbd78af5bb1ab15d071d93f54b37097dc9e1268eed9e788fe32794d137f6af81abd6a2aeaee39cef44d2c45234a15cc6020
 DIST ceph-xsimd-17.2.3.tar.gz 173025 BLAKE2B 54679c24804c195ae55b9f49589e331dde92c6d89aaa20e827539e9a4e0010c7549cdd5cf02a7ebed83f953ab2a6f1d9cc9a98cf45c3dc7758ae4938c9c43713 SHA512 ecc58e7909648aaa22aefbf76ee2c5a2bece4b1b88da9c7eda1b69a46247e619ff99c4366afd6015f95debd68c1a6b89292c677b9049462d0fc0255fbc0c2a33
 DIST ceph-xsimd-17.2.4.tar.gz 173025 BLAKE2B 54679c24804c195ae55b9f49589e331dde92c6d89aaa20e827539e9a4e0010c7549cdd5cf02a7ebed83f953ab2a6f1d9cc9a98cf45c3dc7758ae4938c9c43713 SHA512 ecc58e7909648aaa22aefbf76ee2c5a2bece4b1b88da9c7eda1b69a46247e619ff99c4366afd6015f95debd68c1a6b89292c677b9049462d0fc0255fbc0c2a33
+DIST ceph-xsimd-17.2.5.tar.gz 173025 BLAKE2B 54679c24804c195ae55b9f49589e331dde92c6d89aaa20e827539e9a4e0010c7549cdd5cf02a7ebed83f953ab2a6f1d9cc9a98cf45c3dc7758ae4938c9c43713 SHA512 ecc58e7909648aaa22aefbf76ee2c5a2bece4b1b88da9c7eda1b69a46247e619ff99c4366afd6015f95debd68c1a6b89292c677b9049462d0fc0255fbc0c2a33

diff --git a/sys-cluster/ceph/ceph-17.2.5.ebuild b/sys-cluster/ceph/ceph-17.2.5.ebuild
new file mode 100644
index 000000000000..59cec215e6f8
--- /dev/null
+++ b/sys-cluster/ceph/ceph-17.2.5.ebuild
@@ -0,0 +1,478 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..10} )
+LUA_COMPAT=( lua5-{3..4} )
+
+inherit check-reqs bash-completion-r1 cmake flag-o-matic lua-single \
+		python-r1 udev readme.gentoo-r1 toolchain-funcs systemd tmpfiles
+
+SRC_URI="
+	https://download.ceph.com/tarballs/${P}.tar.gz
+	parquet? ( https://github.com/xtensor-stack/xsimd/archive/aeec9c872c8b475dedd7781336710f2dd2666cb2.tar.gz -> ceph-xsimd-${PV}.tar.gz )
+"
+KEYWORDS="~amd64 ~arm64"
+
+DESCRIPTION="Ceph distributed filesystem"
+HOMEPAGE="https://ceph.com/"
+
+LICENSE="Apache-2.0 LGPL-2.1 CC-BY-SA-3.0 GPL-2 GPL-2+ LGPL-2+ LGPL-2.1 LGPL-3 GPL-3 BSD Boost-1.0 MIT public-domain"
+SLOT="0"
+
+CPU_FLAGS_X86=(avx2 avx512f pclmul sse{,2,3,4_1,4_2} ssse3)
+
+IUSE="
+	babeltrace +cephfs custom-cflags diskprediction dpdk fuse grafana
+	jemalloc jaeger kafka kerberos ldap lttng +mgr +parquet pmdk rabbitmq
+	+radosgw rbd-rwl rbd-ssd rdma rgw-lua +ssl spdk +sqlite +system-boost
+	systemd +tcmalloc test +uring xfs zbd zfs
+"
+
+IUSE+="$(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})"
+
+DEPEND="
+	${LUA_DEPS}
+	${PYTHON_DEPS}
+	acct-group/ceph
+	acct-user/ceph
+	virtual/libudev:=
+	app-arch/bzip2:=
+	app-arch/lz4:=
+	app-arch/snappy:=
+	>=app-arch/snappy-1.1.9-r1
+	app-arch/zstd:=
+	app-shells/bash:0
+	app-misc/jq:=
+	dev-libs/crypto++:=
+	dev-cpp/gflags:=
+	dev-lang/jsonnet:=
+	<dev-libs/leveldb-1.23:=[snappy,tcmalloc(-)?]
+	dev-libs/libaio:=
+	>=dev-libs/libfmt-6.2.1:=
+	<dev-libs/libfmt-9:=
+	dev-libs/libnl:3=
+	dev-libs/libxml2:=
+	dev-libs/libevent:=
+	dev-libs/libutf8proc:=
+	dev-libs/nss:=
+	dev-libs/openssl:=
+	<dev-libs/rocksdb-6.15:=
+	dev-libs/thrift:=
+	dev-libs/xmlsec:=[openssl]
+	dev-cpp/yaml-cpp:=
+	dev-python/natsort[${PYTHON_USEDEP}]
+	dev-python/pyyaml[${PYTHON_USEDEP}]
+	net-dns/c-ares:=
+	net-libs/gnutls:=
+	sys-auth/oath-toolkit:=
+	sys-apps/coreutils
+	sys-apps/hwloc:=
+	sys-apps/keyutils:=
+	sys-apps/util-linux:=
+	sys-libs/libcap-ng:=
+	sys-libs/ncurses:0=
+	sys-libs/zlib:=
+	sys-process/numactl:=
+	virtual/libcrypt:=
+	x11-libs/libpciaccess:=
+	babeltrace? ( dev-util/babeltrace )
+	fuse? ( sys-fs/fuse:3= )
+	jemalloc? ( dev-libs/jemalloc:= )
+	!jemalloc? ( >=dev-util/google-perftools-2.6.1:= )
+	jaeger? (
+		dev-cpp/nlohmann_json:=
+		dev-cpp/opentelemetry-cpp:=[jaeger]
+	)
+	kafka? ( dev-libs/librdkafka:= )
+	kerberos? ( virtual/krb5 )
+	ldap? ( net-nds/openldap:= )
+	lttng? ( dev-util/lttng-ust:= )
+	parquet? ( dev-libs/re2:= )
+	pmdk? ( >=dev-libs/pmdk-1.10.0:= )
+	rabbitmq? ( net-libs/rabbitmq-c:= )
+	radosgw? (
+		dev-libs/icu:=
+		dev-libs/expat:=
+		net-misc/curl:=[curl_ssl_openssl]
+	)
+	rbd-rwl? ( dev-libs/pmdk:= )
+	rdma? ( sys-cluster/rdma-core:= )
+	spdk? ( dev-util/cunit )
+	sqlite? ( dev-db/sqlite:= )
+	system-boost? ( dev-libs/boost:=[context,python,${PYTHON_USEDEP},zlib] )
+	uring? ( sys-libs/liburing:= )
+	xfs? ( sys-fs/xfsprogs:= )
+	zbd? ( sys-block/libzbd:= )
+	zfs? ( sys-fs/zfs:= )
+"
+BDEPEND="
+	amd64? ( dev-lang/nasm )
+	x86? ( dev-lang/yasm )
+	app-arch/cpio
+	>=dev-util/cmake-3.5.0
+	dev-python/cython[${PYTHON_USEDEP}]
+	dev-python/setuptools[${PYTHON_USEDEP}]
+	dev-python/sphinx
+	dev-util/gperf
+	dev-util/ragel
+	dev-util/valgrind
+	sys-apps/coreutils
+	sys-apps/grep
+	sys-apps/sed
+	sys-apps/util-linux
+	sys-apps/which
+	sys-devel/bc
+	sys-devel/patch
+	virtual/pkgconfig
+	jaeger? (
+		sys-devel/bison
+		sys-devel/flex
+	)
+	test? (
+		dev-util/cunit
+		dev-python/coverage[${PYTHON_USEDEP}]
+		dev-python/virtualenv[${PYTHON_USEDEP}]
+		dev-python/requests-mock[${PYTHON_USEDEP}]
+		sys-apps/grep[pcre]
+		sys-fs/btrfs-progs
+	)
+"
+RDEPEND="
+	${DEPEND}
+	app-admin/sudo
+	net-misc/socat
+	sys-apps/gptfdisk
+	sys-apps/nvme-cli
+	>=sys-apps/smartmontools-7.0
+	sys-block/parted
+	sys-fs/cryptsetup
+	sys-fs/lsscsi
+	sys-fs/lvm2[-device-mapper-only(-)]
+	virtual/awk
+	dev-python/bcrypt[${PYTHON_USEDEP}]
+	dev-python/cherrypy[${PYTHON_USEDEP}]
+	dev-python/python-dateutil[${PYTHON_USEDEP}]
+	dev-python/flask[${PYTHON_USEDEP}]
+	dev-python/jinja[${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}]
+	mgr? (
+		dev-python/jsonpatch[${PYTHON_USEDEP}]
+		dev-python/more-itertools[${PYTHON_USEDEP}]
+		dev-python/numpy[${PYTHON_USEDEP}]
+		dev-python/pyjwt[${PYTHON_USEDEP}]
+		dev-python/routes[${PYTHON_USEDEP}]
+		diskprediction? (
+			>=dev-python/scipy-1.4.0[${PYTHON_USEDEP}]
+		)
+		sci-libs/scikit-learn[${PYTHON_USEDEP}]
+		dev-python/six[${PYTHON_USEDEP}]
+	)
+"
+# diskprediction needs older scipy not compatible with py38
+# bug #724438
+REQUIRED_USE="
+	${PYTHON_REQUIRED_USE}
+	${LUA_REQUIRED_USE}
+	?? ( jemalloc tcmalloc )
+	diskprediction? ( mgr )
+	kafka? ( radosgw )
+	mgr? ( cephfs )
+	rabbitmq? ( radosgw )
+	rgw-lua? ( radosgw )
+"
+
+RESTRICT="
+	!test? ( test )
+"
+
+# tests need root access, and network access
+RESTRICT+="test"
+
+# false positives unless all USE flags are on
+CMAKE_WARN_UNUSED_CLI=no
+
+PATCHES=(
+	"${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch"
+	"${FILESDIR}/ceph-14.2.0-cflags.patch"
+	"${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch"
+	"${FILESDIR}/ceph-16.2.2-cflags.patch"
+	"${FILESDIR}/ceph-17.2.1-no-virtualenvs.patch"
+	"${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
+	"${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch"
+	"${FILESDIR}/ceph-16.2.0-rocksdb-cmake.patch"
+	"${FILESDIR}/ceph-16.2.0-spdk-tinfo.patch"
+	"${FILESDIR}/ceph-16.2.0-jaeger-system-boost.patch"
+	"${FILESDIR}/ceph-16.2.0-liburing.patch"
+	"${FILESDIR}/ceph-17.2.0-cyclic-deps.patch"
+	"${FILESDIR}/ceph-17.2.0-pybind-boost-1.74.patch"
+	"${FILESDIR}/ceph-17.2.0-findre2.patch"
+	"${FILESDIR}/ceph-17.2.0-install-dbstore.patch"
+	"${FILESDIR}/ceph-17.2.0-deprecated-boost.patch"
+	"${FILESDIR}/ceph-17.2.0-system-opentelemetry.patch"
+	"${FILESDIR}/ceph-17.2.0-fuse3.patch"
+	"${FILESDIR}/ceph-17.2.0-osd_class_dir.patch"
+	"${FILESDIR}/ceph-17.2.0-gcc12-header.patch"
+	"${FILESDIR}/ceph-17.2.3-flags.patch"
+	"${FILESDIR}/ceph-17.2.4-cyclic-deps.patch"
+	# https://bugs.gentoo.org/866165
+	"${FILESDIR}/ceph-17.2.5-suppress-cmake-warning.patch"
+)
+
+check-reqs_export_vars() {
+	CHECKREQS_DISK_BUILD="6G"
+
+	if use system-boost; then
+		CHECKREQS_DISK_USR="350M"
+	else
+		CHECKREQS_DISK_USR="510M"
+	fi
+
+	export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR
+}
+
+pkg_pretend() {
+	check-reqs_export_vars
+	check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+	python_setup
+	lua_setup
+	check-reqs_export_vars
+	check-reqs_pkg_setup
+}
+
+src_prepare() {
+	cmake_src_prepare
+
+	if use system-boost; then
+		find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \
+			| xargs --null sed -r \
+			-e 's|Boost::|boost_|g' \
+			-e 's|Boost_|boost_|g' \
+			-e 's|[Bb]oost_boost|boost_system|g' \
+			-i || die
+	fi
+
+	if ! use systemd; then
+		find "${S}"/src/ceph-volume/ceph_volume -name '*.py' -print0 \
+			| xargs --null sed \
+			-e '/^from ceph_volume.systemd import systemctl/ d' \
+			-i || die
+	fi
+
+	sed -r -e "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \
+		-i src/bash_completion/CMakeLists.txt || die
+
+	sed -e "s:objdump -p:$(tc-getOBJDUMP) -p:" -i CMakeLists.txt || die
+
+	# force lua version to use selected version
+	local lua_version
+	lua_version=$(ver_cut 1-2 $(lua_get_version))
+	sed "s:find_package(Lua [0-9][.][0-9] REQUIRED):find_package(Lua ${lua_version} EXACT REQUIRED):" \
+		-i src/CMakeLists.txt
+
+	if use spdk; then
+		# bug #871942
+		sed -i 's/[#]ifndef HAVE_ARC4RANDOM/#if 0/' src/spdk/lib/iscsi/iscsi.c || die
+	fi
+
+	# remove tests that need root access
+	rm src/test/cli/ceph-authtool/cap*.t || die
+}
+
+ceph_src_configure() {
+	local mycmakeargs=(
+		-DWITH_BABELTRACE:BOOL=$(usex babeltrace)
+		-DWITH_BLUESTORE_PMEM:BOOL=$(usex pmdk)
+		-DWITH_CEPHFS:BOOL=$(usex cephfs)
+		-DWITH_CEPHFS_SHELL:BOOL=$(usex cephfs)
+		-DWITH_DPDK:BOOL=$(usex dpdk)
+		-DWITH_SPDK:BOOL=$(usex spdk)
+		-DWITH_FUSE:BOOL=$(usex fuse)
+		-DWITH_LTTNG:BOOL=$(usex lttng)
+		-DWITH_GSSAPI:BOOL=$(usex kerberos)
+		-DWITH_GRAFANA:BOOL=$(usex grafana)
+		-DWITH_MGR:BOOL=$(usex mgr)
+		-DWITH_MGR_DASHBOARD_FRONTEND:BOOL=OFF
+		-DWITH_OPENLDAP:BOOL=$(usex ldap)
+		-DWITH_PYTHON3:STRING=3
+		-DWITH_RADOSGW:BOOL=$(usex radosgw)
+		-DWITH_RADOSGW_AMQP_ENDPOINT:BOOL=$(usex rabbitmq)
+		-DWITH_RADOSGW_KAFKA_ENDPOINT:BOOL=$(usex kafka)
+		-DWITH_RADOSGW_LUA_PACKAGES:BOOL=$(usex rgw-lua "$(usex radosgw)" "NO")
+		-DWITH_RBD_RWL:BOOL=$(usex rbd-rwl)
+		-DWITH_RBD_SSD_CACHE:BOOL=$(usex rbd-ssd)
+		-DWITH_SYSTEMD:BOOL=$(usex systemd)
+		-DWITH_TESTS:BOOL=$(usex test)
+		-DWITH_LIBURING:BOOL=$(usex uring)
+		-DWITH_SYSTEM_LIBURING:BOOL=$(usex uring)
+		-DWITH_LIBCEPHSQLITE:BOOL=$(usex sqlite)
+		-DWITH_XFS:BOOL=$(usex xfs)
+		-DWITH_ZBD:BOOL=$(usex zbd)
+		-DWITH_ZFS:BOOL=$(usex zfs)
+		-DENABLE_SHARED:BOOL=ON
+		-DALLOCATOR:STRING=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')")
+		-DWITH_SYSTEM_PMDK:BOOL=$(usex pmdk 'YES' "$(usex rbd-rwl '')")
+		-DWITH_SYSTEM_BOOST:BOOL=$(usex system-boost)
+		-DWITH_SYSTEM_ROCKSDB:BOOL=ON
+		-DWITH_SYSTEM_ZSTD:BOOL=ON
+		-DWITH_RDMA:BOOL=$(usex rdma)
+		-DCMAKE_INSTALL_DOCDIR:PATH="${EPREFIX}/usr/share/doc/${PN}-${PVR}"
+		-DCMAKE_INSTALL_SYSCONFDIR:PATH="${EPREFIX}/etc"
+		-Wno-dev
+	)
+
+	# this breaks when re-configuring for python impl
+	if [[ ${EBUILD_PHASE} == configure ]]; then
+		mycmakeargs+=(
+			-DWITH_JAEGER:BOOL=$(usex jaeger)
+			-DWITH_RADOSGW_SELECT_PARQUET:BOOL=$(usex parquet)
+		)
+	else
+		mycmakeargs+=(
+			-DWITH_RADOSGW_SELECT_PARQUET:BOOL=OFF
+			-DWITH_JAEGER:BOOL=OFF
+			# don't want to warn about unused CLI when reconfiguring for python
+			-DCMAKE_WARN_UNUSED_CLI:BOOL=OFF
+		)
+	fi
+
+	# conditionally used cmake args
+	use test && mycmakearts+=( -DWITH_SYSTEM_GTEST:BOOL=$(usex test) )
+	use systemd && mycmakeargs+=( -DSYSTEMD_SYSTEM_UNIT_DIR:PATH=$(systemd_get_systemunitdir) )
+
+	if use amd64 || use x86; then
+		local flag
+		for flag in "${CPU_FLAGS_X86[@]}"; do
+			case "${flag}" in
+				avx*)
+					local var=${flag%f}
+					mycmakeargs+=(
+						"-DHAVE_NASM_X64_${var^^}:BOOL=$(usex cpu_flags_x86_${flag})"
+					)
+				;;
+				*) mycmakeargs+=(
+						"-DHAVE_INTEL_${flag^^}:BOOL=$(usex cpu_flags_x86_${flag})"
+					);;
+			esac
+		done
+	fi
+
+	# needed for >=glibc-2.32
+	has_version '>=sys-libs/glibc-2.32' && mycmakeargs+=( -DWITH_REENTRANT_STRSIGNAL:BOOL=ON )
+
+	rm -f "${BUILD_DIR:-${S}}/CMakeCache.txt" \
+		|| die "failed to remove cmake cache"
+
+	# hopefully this will not be necessary in the next release
+	use parquet && export ARROW_XSIMD_URL="file:///${DISTDIR}/ceph-xsimd-${PV}.tar.gz"
+
+	cmake_src_configure
+
+	# bug #630232
+	sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \
+		"${BUILD_DIR:-${S}}"/include/acconfig.h \
+		|| die "sed failed"
+}
+
+src_configure() {
+	use custom-cflags || strip-flags
+	ceph_src_configure
+}
+
+src_compile() {
+	cmake_build all
+
+	# we have to do this here to prevent from building everything multiple times
+	python_copy_sources
+	python_foreach_impl python_compile
+}
+
+python_compile() {
+	local CMAKE_USE_DIR="${S}"
+	ceph_src_configure
+
+	cmake_build src/pybind/CMakeFiles/cython_modules
+}
+
+src_install() {
+	python_foreach_impl python_install
+
+	python_setup
+	cmake_src_install
+	python_optimize
+
+	find "${ED}" -name '*.la' -type f -delete || die
+
+	exeinto /usr/$(get_libdir)/ceph
+	newexe "${BUILD_DIR}/bin/init-ceph" init-ceph
+
+	insinto /etc/logrotate.d/
+	newins "${FILESDIR}"/ceph.logrotate-r2 ${PN}
+
+	keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat
+
+	fowners -R ceph:ceph /var/log/ceph
+
+	newinitd "${FILESDIR}/rbdmap.initd-r1" rbdmap
+	newinitd "${FILESDIR}/${PN}.initd-r12" ${PN}
+	newconfd "${FILESDIR}/${PN}.confd-r5" ${PN}
+
+	insinto /etc/sudoers.d
+	doins sudoers.d/*
+
+	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
+	newtmpfiles "${FILESDIR}"/ceph-tmpfilesd ${PN}.conf
+
+	readme.gentoo_create_doc
+
+	# bug #630232
+	sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \
+		|| die "sed failed"
+
+	python_fix_shebang "${ED}"/usr/{,s}bin/
+
+	# python_fix_shebang apparently is not idempotent
+	local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]'
+	grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \
+		| xargs --null --no-run-if-empty -- sed -i -r  "s:${shebang_regex}:\1:" || die
+
+	local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* )
+	dostrip -x "${rados_classes[@]#${ED}}"
+}
+
+python_install() {
+	local CMAKE_USE_DIR="${S}"
+	DESTDIR="${ED}" cmake_build src/pybind/install
+
+	python_optimize
+}
+
+pkg_postinst() {
+	readme.gentoo_print_elog
+	tmpfiles_process ${PN}.conf
+	udev_reload
+}
+
+pkg_postrm() {
+	udev_reload
+}

diff --git a/sys-cluster/ceph/files/ceph-17.2.5-suppress-cmake-warning.patch b/sys-cluster/ceph/files/ceph-17.2.5-suppress-cmake-warning.patch
new file mode 100644
index 000000000000..99022cd082f3
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-17.2.5-suppress-cmake-warning.patch
@@ -0,0 +1,11 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 7ffe1065d5c..2ea9a5125e1 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -708,3 +708,6 @@ add_tags(ctags
+   EXCLUDE_OPTS ${CTAG_EXCLUDES}
+   EXCLUDES "*.js" "*.css" ".tox" "python-common/build")
+ add_custom_target(tags DEPENDS ctags)
++
++# suppress warning in cmake.eclass
++set(UNUSED_VAR "${CMAKE_INSTALL_LIBDIR}")


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2022-12-30  6:33 Sam James
  0 siblings, 0 replies; 48+ messages in thread
From: Sam James @ 2022-12-30  6:33 UTC (permalink / raw
  To: gentoo-commits

commit:     a3b86c8057583ba85cb568b61795bd4a4ee37227
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Fri Dec 30 04:55:03 2022 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Fri Dec 30 04:55:04 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a3b86c80

sys-cluster/ceph: fix build w/ boost 1.81

Thanks-to: Michael Uleysky <uleysky <AT> gmail.com>
Closes: https://bugs.gentoo.org/887481
Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-cluster/ceph/ceph-17.2.5-r2.ebuild             | 477 +++++++++++++++++++++
 .../ceph/files/ceph-17.2.5-boost-1.81.patch        |  49 +++
 2 files changed, 526 insertions(+)

diff --git a/sys-cluster/ceph/ceph-17.2.5-r2.ebuild b/sys-cluster/ceph/ceph-17.2.5-r2.ebuild
new file mode 100644
index 000000000000..1401c2d28548
--- /dev/null
+++ b/sys-cluster/ceph/ceph-17.2.5-r2.ebuild
@@ -0,0 +1,477 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..10} )
+LUA_COMPAT=( lua5-{3..4} )
+
+inherit check-reqs bash-completion-r1 cmake flag-o-matic lua-single \
+		python-r1 udev readme.gentoo-r1 toolchain-funcs systemd tmpfiles
+
+SRC_URI="
+	https://download.ceph.com/tarballs/${P}.tar.gz
+	parquet? ( https://github.com/xtensor-stack/xsimd/archive/aeec9c872c8b475dedd7781336710f2dd2666cb2.tar.gz -> ceph-xsimd-${PV}.tar.gz )
+"
+KEYWORDS="~amd64 ~arm64"
+
+DESCRIPTION="Ceph distributed filesystem"
+HOMEPAGE="https://ceph.com/"
+
+LICENSE="Apache-2.0 LGPL-2.1 CC-BY-SA-3.0 GPL-2 GPL-2+ LGPL-2+ LGPL-2.1 LGPL-3 GPL-3 BSD Boost-1.0 MIT public-domain"
+SLOT="0"
+
+CPU_FLAGS_X86=(avx2 avx512f pclmul sse{,2,3,4_1,4_2} ssse3)
+
+IUSE="
+	babeltrace +cephfs custom-cflags diskprediction dpdk fuse grafana
+	jemalloc jaeger kafka kerberos ldap lttng +mgr +parquet pmdk rabbitmq
+	+radosgw rbd-rwl rbd-ssd rdma rgw-lua +ssl spdk +sqlite +system-boost
+	systemd +tcmalloc test +uring xfs zbd zfs
+"
+
+IUSE+="$(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})"
+
+DEPEND="
+	${LUA_DEPS}
+	${PYTHON_DEPS}
+	acct-group/ceph
+	acct-user/ceph
+	virtual/libudev:=
+	app-arch/bzip2:=
+	app-arch/lz4:=
+	app-arch/snappy:=
+	>=app-arch/snappy-1.1.9-r1
+	app-arch/zstd:=
+	app-shells/bash:0
+	app-misc/jq:=
+	dev-libs/crypto++:=
+	dev-cpp/gflags:=
+	dev-lang/jsonnet:=
+	<dev-libs/leveldb-1.23:=[snappy,tcmalloc(-)?]
+	dev-libs/libaio:=
+	>=dev-libs/libfmt-6.2.1:=
+	<dev-libs/libfmt-9:=
+	dev-libs/libnl:3=
+	dev-libs/libxml2:=
+	dev-libs/libevent:=
+	dev-libs/libutf8proc:=
+	dev-libs/nss:=
+	dev-libs/openssl:=
+	<dev-libs/rocksdb-6.15:=
+	dev-libs/thrift:=
+	dev-libs/xmlsec:=[openssl]
+	dev-cpp/yaml-cpp:=
+	dev-python/natsort[${PYTHON_USEDEP}]
+	dev-python/pyyaml[${PYTHON_USEDEP}]
+	net-dns/c-ares:=
+	net-libs/gnutls:=
+	sys-auth/oath-toolkit:=
+	sys-apps/coreutils
+	sys-apps/hwloc:=
+	sys-apps/keyutils:=
+	sys-apps/util-linux:=
+	sys-libs/libcap-ng:=
+	sys-libs/ncurses:0=
+	sys-libs/zlib:=
+	sys-process/numactl:=
+	virtual/libcrypt:=
+	x11-libs/libpciaccess:=
+	babeltrace? ( dev-util/babeltrace )
+	fuse? ( sys-fs/fuse:3= )
+	jemalloc? ( dev-libs/jemalloc:= )
+	!jemalloc? ( >=dev-util/google-perftools-2.6.1:= )
+	jaeger? (
+		dev-cpp/nlohmann_json:=
+		dev-cpp/opentelemetry-cpp:=[jaeger]
+	)
+	kafka? ( dev-libs/librdkafka:= )
+	kerberos? ( virtual/krb5 )
+	ldap? ( net-nds/openldap:= )
+	lttng? ( dev-util/lttng-ust:= )
+	parquet? ( dev-libs/re2:= )
+	pmdk? ( >=dev-libs/pmdk-1.10.0:= )
+	rabbitmq? ( net-libs/rabbitmq-c:= )
+	radosgw? (
+		dev-libs/icu:=
+		dev-libs/expat:=
+		net-misc/curl:=[curl_ssl_openssl]
+	)
+	rbd-rwl? ( dev-libs/pmdk:= )
+	rdma? ( sys-cluster/rdma-core:= )
+	spdk? ( dev-util/cunit )
+	sqlite? ( dev-db/sqlite:= )
+	system-boost? ( dev-libs/boost:=[context,python,${PYTHON_USEDEP},zlib] )
+	uring? ( sys-libs/liburing:= )
+	xfs? ( sys-fs/xfsprogs:= )
+	zbd? ( sys-block/libzbd:= )
+	zfs? ( sys-fs/zfs:= )
+"
+BDEPEND="
+	amd64? ( dev-lang/nasm )
+	x86? ( dev-lang/yasm )
+	app-arch/cpio
+	>=dev-util/cmake-3.5.0
+	dev-python/cython[${PYTHON_USEDEP}]
+	dev-python/setuptools[${PYTHON_USEDEP}]
+	dev-python/sphinx
+	dev-util/gperf
+	dev-util/ragel
+	dev-util/valgrind
+	sys-apps/coreutils
+	sys-apps/grep
+	sys-apps/util-linux
+	sys-apps/which
+	sys-devel/bc
+	sys-devel/patch
+	virtual/pkgconfig
+	jaeger? (
+		sys-devel/bison
+		sys-devel/flex
+	)
+	test? (
+		dev-util/cunit
+		dev-python/coverage[${PYTHON_USEDEP}]
+		dev-python/virtualenv[${PYTHON_USEDEP}]
+		dev-python/requests-mock[${PYTHON_USEDEP}]
+		sys-apps/grep[pcre]
+		sys-fs/btrfs-progs
+	)
+"
+RDEPEND="
+	${DEPEND}
+	app-admin/sudo
+	net-misc/socat
+	sys-apps/gptfdisk
+	sys-apps/nvme-cli
+	>=sys-apps/smartmontools-7.0
+	sys-block/parted
+	sys-fs/cryptsetup
+	sys-fs/lsscsi
+	sys-fs/lvm2[lvm]
+	app-alternatives/awk
+	dev-python/bcrypt[${PYTHON_USEDEP}]
+	dev-python/cherrypy[${PYTHON_USEDEP}]
+	dev-python/python-dateutil[${PYTHON_USEDEP}]
+	dev-python/flask[${PYTHON_USEDEP}]
+	dev-python/jinja[${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}]
+	mgr? (
+		dev-python/jsonpatch[${PYTHON_USEDEP}]
+		dev-python/more-itertools[${PYTHON_USEDEP}]
+		dev-python/numpy[${PYTHON_USEDEP}]
+		dev-python/pyjwt[${PYTHON_USEDEP}]
+		dev-python/routes[${PYTHON_USEDEP}]
+		diskprediction? (
+			>=dev-python/scipy-1.4.0[${PYTHON_USEDEP}]
+		)
+		sci-libs/scikit-learn[${PYTHON_USEDEP}]
+		dev-python/six[${PYTHON_USEDEP}]
+	)
+"
+REQUIRED_USE="
+	${PYTHON_REQUIRED_USE}
+	${LUA_REQUIRED_USE}
+	?? ( jemalloc tcmalloc )
+	diskprediction? ( mgr )
+	kafka? ( radosgw )
+	mgr? ( cephfs )
+	rabbitmq? ( radosgw )
+	rgw-lua? ( radosgw )
+"
+
+RESTRICT="
+	!test? ( test )
+"
+
+# tests need root access, and network access
+RESTRICT+="test"
+
+# false positives unless all USE flags are on
+CMAKE_WARN_UNUSED_CLI=no
+
+PATCHES=(
+	"${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch"
+	"${FILESDIR}/ceph-14.2.0-cflags.patch"
+	"${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch"
+	"${FILESDIR}/ceph-16.2.2-cflags.patch"
+	"${FILESDIR}/ceph-17.2.1-no-virtualenvs.patch"
+	"${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
+	"${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch"
+	"${FILESDIR}/ceph-16.2.0-rocksdb-cmake.patch"
+	"${FILESDIR}/ceph-16.2.0-spdk-tinfo.patch"
+	"${FILESDIR}/ceph-16.2.0-jaeger-system-boost.patch"
+	"${FILESDIR}/ceph-16.2.0-liburing.patch"
+	"${FILESDIR}/ceph-17.2.0-cyclic-deps.patch"
+	"${FILESDIR}/ceph-17.2.0-pybind-boost-1.74.patch"
+	"${FILESDIR}/ceph-17.2.0-findre2.patch"
+	"${FILESDIR}/ceph-17.2.0-install-dbstore.patch"
+	"${FILESDIR}/ceph-17.2.0-deprecated-boost.patch"
+	"${FILESDIR}/ceph-17.2.0-system-opentelemetry.patch"
+	"${FILESDIR}/ceph-17.2.0-fuse3.patch"
+	"${FILESDIR}/ceph-17.2.0-osd_class_dir.patch"
+	"${FILESDIR}/ceph-17.2.0-gcc12-header.patch"
+	"${FILESDIR}/ceph-17.2.3-flags.patch"
+	"${FILESDIR}/ceph-17.2.4-cyclic-deps.patch"
+	# https://bugs.gentoo.org/866165
+	"${FILESDIR}/ceph-17.2.5-suppress-cmake-warning.patch"
+	"${FILESDIR}/ceph-17.2.5-gcc13.patch"
+	"${FILESDIR}/ceph-17.2.5-boost-1.81.patch"
+)
+
+check-reqs_export_vars() {
+	CHECKREQS_DISK_BUILD="6G"
+
+	if use system-boost; then
+		CHECKREQS_DISK_USR="350M"
+	else
+		CHECKREQS_DISK_USR="510M"
+	fi
+
+	export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR
+}
+
+pkg_pretend() {
+	check-reqs_export_vars
+	check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+	python_setup
+	lua_setup
+	check-reqs_export_vars
+	check-reqs_pkg_setup
+}
+
+src_prepare() {
+	cmake_src_prepare
+
+	if use system-boost; then
+		find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \
+			| xargs --null sed -r \
+			-e 's|Boost::|boost_|g' \
+			-e 's|Boost_|boost_|g' \
+			-e 's|[Bb]oost_boost|boost_system|g' \
+			-i || die
+	fi
+
+	if ! use systemd; then
+		find "${S}"/src/ceph-volume/ceph_volume -name '*.py' -print0 \
+			| xargs --null sed \
+			-e '/^from ceph_volume.systemd import systemctl/ d' \
+			-i || die
+	fi
+
+	sed -r -e "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \
+		-i src/bash_completion/CMakeLists.txt || die
+
+	sed -e "s:objdump -p:$(tc-getOBJDUMP) -p:" -i CMakeLists.txt || die
+
+	# force lua version to use selected version
+	local lua_version
+	lua_version=$(ver_cut 1-2 $(lua_get_version))
+	sed "s:find_package(Lua [0-9][.][0-9] REQUIRED):find_package(Lua ${lua_version} EXACT REQUIRED):" \
+		-i src/CMakeLists.txt
+
+	if use spdk; then
+		# https://bugs.gentoo.org/871942
+		sed -i 's/[#]ifndef HAVE_ARC4RANDOM/#if 0/' src/spdk/lib/iscsi/iscsi.c || die
+	fi
+
+	# remove tests that need root access
+	rm src/test/cli/ceph-authtool/cap*.t || die
+}
+
+ceph_src_configure() {
+	local mycmakeargs=(
+		-DWITH_BABELTRACE:BOOL=$(usex babeltrace)
+		-DWITH_BLUESTORE_PMEM:BOOL=$(usex pmdk)
+		-DWITH_CEPHFS:BOOL=$(usex cephfs)
+		-DWITH_CEPHFS_SHELL:BOOL=$(usex cephfs)
+		-DWITH_DPDK:BOOL=$(usex dpdk)
+		-DWITH_SPDK:BOOL=$(usex spdk)
+		-DWITH_FUSE:BOOL=$(usex fuse)
+		-DWITH_LTTNG:BOOL=$(usex lttng)
+		-DWITH_GSSAPI:BOOL=$(usex kerberos)
+		-DWITH_GRAFANA:BOOL=$(usex grafana)
+		-DWITH_MGR:BOOL=$(usex mgr)
+		-DWITH_MGR_DASHBOARD_FRONTEND:BOOL=OFF
+		-DWITH_OPENLDAP:BOOL=$(usex ldap)
+		-DWITH_PYTHON3:STRING=3
+		-DWITH_RADOSGW:BOOL=$(usex radosgw)
+		-DWITH_RADOSGW_AMQP_ENDPOINT:BOOL=$(usex rabbitmq)
+		-DWITH_RADOSGW_KAFKA_ENDPOINT:BOOL=$(usex kafka)
+		-DWITH_RADOSGW_LUA_PACKAGES:BOOL=$(usex rgw-lua "$(usex radosgw)" "NO")
+		-DWITH_RBD_RWL:BOOL=$(usex rbd-rwl)
+		-DWITH_RBD_SSD_CACHE:BOOL=$(usex rbd-ssd)
+		-DWITH_SYSTEMD:BOOL=$(usex systemd)
+		-DWITH_TESTS:BOOL=$(usex test)
+		-DWITH_LIBURING:BOOL=$(usex uring)
+		-DWITH_SYSTEM_LIBURING:BOOL=$(usex uring)
+		-DWITH_LIBCEPHSQLITE:BOOL=$(usex sqlite)
+		-DWITH_XFS:BOOL=$(usex xfs)
+		-DWITH_ZBD:BOOL=$(usex zbd)
+		-DWITH_ZFS:BOOL=$(usex zfs)
+		-DENABLE_SHARED:BOOL=ON
+		-DALLOCATOR:STRING=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')")
+		-DWITH_SYSTEM_PMDK:BOOL=$(usex pmdk 'YES' "$(usex rbd-rwl '')")
+		-DWITH_SYSTEM_BOOST:BOOL=$(usex system-boost)
+		-DWITH_SYSTEM_ROCKSDB:BOOL=ON
+		-DWITH_SYSTEM_ZSTD:BOOL=ON
+		-DWITH_RDMA:BOOL=$(usex rdma)
+		-DCMAKE_INSTALL_DOCDIR:PATH="${EPREFIX}/usr/share/doc/${PN}-${PVR}"
+		-DCMAKE_INSTALL_SYSCONFDIR:PATH="${EPREFIX}/etc"
+		-Wno-dev
+	)
+
+	# this breaks when re-configuring for python impl
+	if [[ ${EBUILD_PHASE} == configure ]]; then
+		mycmakeargs+=(
+			-DWITH_JAEGER:BOOL=$(usex jaeger)
+			-DWITH_RADOSGW_SELECT_PARQUET:BOOL=$(usex parquet)
+		)
+	else
+		mycmakeargs+=(
+			-DWITH_RADOSGW_SELECT_PARQUET:BOOL=OFF
+			-DWITH_JAEGER:BOOL=OFF
+			# don't want to warn about unused CLI when reconfiguring for python
+			-DCMAKE_WARN_UNUSED_CLI:BOOL=OFF
+		)
+	fi
+
+	# conditionally used cmake args
+	use test && mycmakearts+=( -DWITH_SYSTEM_GTEST:BOOL=$(usex test) )
+	use systemd && mycmakeargs+=( -DSYSTEMD_SYSTEM_UNIT_DIR:PATH=$(systemd_get_systemunitdir) )
+
+	if use amd64 || use x86; then
+		local flag
+		for flag in "${CPU_FLAGS_X86[@]}"; do
+			case "${flag}" in
+				avx*)
+					local var=${flag%f}
+					mycmakeargs+=(
+						"-DHAVE_NASM_X64_${var^^}:BOOL=$(usex cpu_flags_x86_${flag})"
+					)
+				;;
+				*) mycmakeargs+=(
+						"-DHAVE_INTEL_${flag^^}:BOOL=$(usex cpu_flags_x86_${flag})"
+					);;
+			esac
+		done
+	fi
+
+	# needed for >=glibc-2.32
+	has_version '>=sys-libs/glibc-2.32' && mycmakeargs+=( -DWITH_REENTRANT_STRSIGNAL:BOOL=ON )
+
+	rm -f "${BUILD_DIR:-${S}}/CMakeCache.txt" \
+		|| die "failed to remove cmake cache"
+
+	# hopefully this will not be necessary in the next release
+	use parquet && export ARROW_XSIMD_URL="file:///${DISTDIR}/ceph-xsimd-${PV}.tar.gz"
+
+	cmake_src_configure
+
+	# bug #630232
+	sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \
+		"${BUILD_DIR:-${S}}"/include/acconfig.h \
+		|| die "sed failed"
+}
+
+src_configure() {
+	use custom-cflags || strip-flags
+	ceph_src_configure
+}
+
+src_compile() {
+	cmake_build all
+
+	# we have to do this here to prevent from building everything multiple times
+	python_copy_sources
+	python_foreach_impl python_compile
+}
+
+python_compile() {
+	local CMAKE_USE_DIR="${S}"
+	ceph_src_configure
+
+	cmake_build src/pybind/CMakeFiles/cython_modules
+}
+
+src_install() {
+	python_foreach_impl python_install
+
+	python_setup
+	cmake_src_install
+	python_optimize
+
+	find "${ED}" -name '*.la' -type f -delete || die
+
+	exeinto /usr/$(get_libdir)/ceph
+	newexe "${BUILD_DIR}/bin/init-ceph" init-ceph
+
+	insinto /etc/logrotate.d/
+	newins "${FILESDIR}"/ceph.logrotate-r2 ${PN}
+
+	keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat
+
+	fowners -R ceph:ceph /var/log/ceph
+
+	newinitd "${FILESDIR}/rbdmap.initd-r1" rbdmap
+	newinitd "${FILESDIR}/${PN}.initd-r12" ${PN}
+	newconfd "${FILESDIR}/${PN}.confd-r5" ${PN}
+
+	insinto /etc/sudoers.d
+	doins sudoers.d/*
+
+	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
+	newtmpfiles "${FILESDIR}"/ceph-tmpfilesd ${PN}.conf
+
+	readme.gentoo_create_doc
+
+	# bug #630232
+	sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \
+		|| die "sed failed"
+
+	python_fix_shebang "${ED}"/usr/{,s}bin/
+
+	# python_fix_shebang apparently is not idempotent
+	local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]'
+	grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \
+		| xargs --null --no-run-if-empty -- sed -i -r  "s:${shebang_regex}:\1:" || die
+
+	local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* )
+	dostrip -x "${rados_classes[@]#${ED}}"
+}
+
+python_install() {
+	local CMAKE_USE_DIR="${S}"
+	DESTDIR="${ED}" cmake_build src/pybind/install
+
+	python_optimize
+}
+
+pkg_postinst() {
+	readme.gentoo_print_elog
+	tmpfiles_process ${PN}.conf
+	udev_reload
+}
+
+pkg_postrm() {
+	udev_reload
+}

diff --git a/sys-cluster/ceph/files/ceph-17.2.5-boost-1.81.patch b/sys-cluster/ceph/files/ceph-17.2.5-boost-1.81.patch
new file mode 100644
index 000000000000..2dd06edb312f
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-17.2.5-boost-1.81.patch
@@ -0,0 +1,49 @@
+https://bugs.gentoo.org/887481
+--- a/src/rgw/rgw_asio_client.cc
++++ b/src/rgw/rgw_asio_client.cc
+@@ -39,11 +39,11 @@
+     const auto& value = header->value();
+ 
+     if (field == beast::http::field::content_length) {
+-      env.set("CONTENT_LENGTH", value.to_string());
++      env.set("CONTENT_LENGTH", value);
+       continue;
+     }
+     if (field == beast::http::field::content_type) {
+-      env.set("CONTENT_TYPE", value.to_string());
++      env.set("CONTENT_TYPE", value);
+       continue;
+     }
+ 
+@@ -62,26 +62,26 @@
+     }
+     *dest = '\0';
+ 
+-    env.set(buf, value.to_string());
++    env.set(buf, value);
+   }
+ 
+   int major = request.version() / 10;
+   int minor = request.version() % 10;
+   env.set("HTTP_VERSION", std::to_string(major) + '.' + std::to_string(minor));
+ 
+-  env.set("REQUEST_METHOD", request.method_string().to_string());
++  env.set("REQUEST_METHOD", request.method_string());
+ 
+   // split uri from query
+   auto uri = request.target();
+   auto pos = uri.find('?');
+   if (pos != uri.npos) {
+     auto query = uri.substr(pos + 1);
+-    env.set("QUERY_STRING", query.to_string());
++    env.set("QUERY_STRING", query);
+     uri = uri.substr(0, pos);
+   }
+-  env.set("SCRIPT_URI", uri.to_string());
++  env.set("SCRIPT_URI", uri);
+ 
+-  env.set("REQUEST_URI", request.target().to_string());
++  env.set("REQUEST_URI", request.target());
+ 
+   char port_buf[16];
+   snprintf(port_buf, sizeof(port_buf), "%d", local_endpoint.port());


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2023-01-13  1:55 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2023-01-13  1:55 UTC (permalink / raw
  To: gentoo-commits

commit:     7d581fd5a9f851e3be2d98c1767b9f88230ba62a
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 12 21:31:31 2023 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Fri Jan 13 01:54:53 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=7d581fd5

sys-cluster/ceph: Revbumps, fix location of console output logs

The init script was writing the console logs to /var/log/ceph rather than
/var/log/ceph/console. This was resulting in the copytruncate in the logrotate
not applying, so the logs were not effectively being rotated.

This also fixes some definitions in the init script.

Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 sys-cluster/ceph/ceph-15.2.17-r2.ebuild | 409 +++++++++++++++++++++++++++
 sys-cluster/ceph/ceph-16.2.10-r4.ebuild | 473 +++++++++++++++++++++++++++++++
 sys-cluster/ceph/ceph-17.2.5-r3.ebuild  | 477 ++++++++++++++++++++++++++++++++
 sys-cluster/ceph/files/ceph.initd-r13   | 115 ++++++++
 4 files changed, 1474 insertions(+)

diff --git a/sys-cluster/ceph/ceph-15.2.17-r2.ebuild b/sys-cluster/ceph/ceph-15.2.17-r2.ebuild
new file mode 100644
index 000000000000..d250506f978d
--- /dev/null
+++ b/sys-cluster/ceph/ceph-15.2.17-r2.ebuild
@@ -0,0 +1,409 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{8..9} )
+CMAKE_MAKEFILE_GENERATOR=emake
+
+DISTUTILS_OPTIONAL=1
+
+inherit check-reqs bash-completion-r1 cmake distutils-r1 flag-o-matic \
+		python-r1 udev readme.gentoo-r1 toolchain-funcs systemd tmpfiles \
+		multiprocessing
+
+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=""
+fi
+
+DESCRIPTION="Ceph distributed filesystem"
+HOMEPAGE="https://ceph.com/"
+
+LICENSE="Apache-2.0 LGPL-2.1 CC-BY-SA-3.0 GPL-2 GPL-2+ LGPL-2+ LGPL-2.1 LGPL-3 GPL-3 BSD Boost-1.0 MIT public-domain"
+SLOT="0"
+
+CPU_FLAGS_X86=(sse{,2,3,4_1,4_2} ssse3)
+
+IUSE="babeltrace +cephfs custom-cflags diskprediction dpdk fuse grafana jemalloc
+	kafka kerberos ldap lttng +mgr numa pmdk rabbitmq +radosgw rbd-rwl +ssl spdk
+	+system-boost systemd +tcmalloc test uring xfs zfs"
+IUSE+=" $(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})"
+
+DEPEND="
+	acct-group/ceph
+	acct-user/ceph
+	virtual/libudev:=
+	app-arch/bzip2:=
+	app-arch/lz4:=
+	app-arch/snappy:=
+	|| ( >=app-arch/snappy-1.1.9-r1 <app-arch/snappy-1.1.9 )
+	app-arch/zstd:=
+	app-shells/bash:0
+	app-misc/jq:=
+	dev-libs/crypto++:=
+	dev-cpp/gflags:=
+	dev-libs/leveldb:=[snappy,tcmalloc(-)?]
+	dev-libs/libaio:=
+	dev-libs/libfmt:=
+	<dev-libs/libfmt-9:=
+	dev-libs/libnl:3=
+	dev-libs/libxml2:=
+	<dev-libs/rocksdb-6.15:=
+	dev-libs/xmlsec:=[openssl]
+	dev-cpp/yaml-cpp:=
+	dev-libs/nss:=
+	dev-libs/protobuf:=
+	net-dns/c-ares:=
+	net-libs/gnutls:=
+	sys-auth/oath-toolkit:=
+	sys-apps/coreutils
+	sys-apps/grep
+	sys-apps/hwloc:=
+	sys-apps/keyutils:=
+	sys-apps/util-linux:=
+	sys-apps/util-linux
+	sys-libs/libcap-ng:=
+	sys-libs/ncurses:0=
+	sys-libs/zlib:=
+	sys-process/numactl:=
+	virtual/libcrypt:=
+	x11-libs/libpciaccess:=
+	babeltrace? ( dev-util/babeltrace )
+	fuse? ( sys-fs/fuse:0= )
+	jemalloc? ( dev-libs/jemalloc:= )
+	!jemalloc? ( >=dev-util/google-perftools-2.6.1:= )
+	kafka? ( dev-libs/librdkafka:= )
+	kerberos? ( virtual/krb5 )
+	ldap? ( net-nds/openldap:= )
+	lttng? ( dev-util/lttng-ust:= )
+	pmdk? ( dev-libs/pmdk:= )
+	rabbitmq? ( net-libs/rabbitmq-c:= )
+	radosgw? (
+		dev-libs/expat:=
+		dev-libs/openssl:=
+		net-misc/curl:=[curl_ssl_openssl]
+	)
+	rbd-rwl? ( dev-libs/pmdk:= )
+	ssl? ( dev-libs/openssl:= )
+	system-boost? ( dev-libs/boost:=[context,python,${PYTHON_USEDEP}] )
+	!system-boost? ( <sys-libs/glibc-2.34 )
+	uring? ( sys-libs/liburing:= )
+	xfs? ( sys-fs/xfsprogs:= )
+	zfs? ( sys-fs/zfs:= )
+"
+BDEPEND="
+	${PYTHON_DEPS}
+	amd64? ( dev-lang/yasm )
+	x86? ( dev-lang/yasm )
+	app-arch/cpio
+	>=dev-util/cmake-3.5.0
+	dev-python/cython[${PYTHON_USEDEP}]
+	dev-python/setuptools[${PYTHON_USEDEP}]
+	dev-python/sphinx
+	dev-util/cunit
+	dev-util/gperf
+	dev-util/ragel
+	dev-util/valgrind
+	sys-apps/coreutils
+	sys-apps/grep
+	sys-apps/which
+	sys-devel/bc
+	sys-devel/patch
+	virtual/pkgconfig
+	test? (
+		dev-python/coverage[${PYTHON_USEDEP}]
+		dev-python/virtualenv[${PYTHON_USEDEP}]
+		dev-python/requests-mock[${PYTHON_USEDEP}]
+		sys-apps/grep[pcre]
+		sys-fs/btrfs-progs
+	)
+"
+RDEPEND="${DEPEND}
+	${PYTHON_DEPS}
+	app-admin/sudo
+	net-misc/socat
+	sys-apps/gptfdisk
+	sys-apps/nvme-cli
+	>=sys-apps/smartmontools-7.0
+	sys-block/parted
+	sys-fs/cryptsetup
+	sys-fs/lsscsi
+	sys-fs/lvm2[lvm]
+	app-alternatives/awk
+	dev-python/bcrypt[${PYTHON_USEDEP}]
+	dev-python/cherrypy[${PYTHON_USEDEP}]
+	dev-python/python-dateutil[${PYTHON_USEDEP}]
+	dev-python/flask[${PYTHON_USEDEP}]
+	dev-python/jinja[${PYTHON_USEDEP}]
+	dev-python/pecan[${PYTHON_USEDEP}]
+	dev-python/prettytable[${PYTHON_USEDEP}]
+	dev-python/pyopenssl[${PYTHON_USEDEP}]
+	dev-python/requests[${PYTHON_USEDEP}]
+	dev-python/setuptools[${PYTHON_USEDEP}]
+	dev-python/werkzeug[${PYTHON_USEDEP}]
+	mgr? (
+		dev-python/jsonpatch[${PYTHON_USEDEP}]
+		dev-python/more-itertools[${PYTHON_USEDEP}]
+		dev-python/numpy[${PYTHON_USEDEP}]
+		dev-python/pyjwt[${PYTHON_USEDEP}]
+		dev-python/pyyaml[${PYTHON_USEDEP}]
+		dev-python/routes[${PYTHON_USEDEP}]
+		sci-libs/scikit-learn[${PYTHON_USEDEP}]
+		dev-python/six[${PYTHON_USEDEP}]
+	)
+"
+REQUIRED_USE="
+	${PYTHON_REQUIRED_USE}
+	?? ( jemalloc tcmalloc )
+	diskprediction? ( mgr )
+	kafka? ( radosgw )
+	mgr? ( cephfs )
+	rabbitmq? ( radosgw )
+"
+RESTRICT="!test? ( test )"
+
+# the tests need root access
+RESTRICT="test? ( userpriv )"
+
+# distribution tarball does not include everything needed for tests
+RESTRICT+=" test"
+
+# create a non-debug release
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+# false positives unless all USE flags are on
+CMAKE_WARN_UNUSED_CLI=no
+
+PATCHES=(
+	"${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch"
+	"${FILESDIR}/ceph-14.2.0-cflags.patch"
+	"${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch"
+	"${FILESDIR}/ceph-13.2.0-cflags.patch"
+	"${FILESDIR}/ceph-15.2.15-no-virtualenvs.patch"
+	"${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
+	"${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch"
+	"${FILESDIR}/ceph-14.2.0-cython-0.29.patch"
+	"${FILESDIR}/ceph-15.2.0-rocksdb-cmake.patch"
+	"${FILESDIR}/ceph-15.2.2-systemd-unit.patch"
+	"${FILESDIR}/ceph-15.2.3-spdk-compile.patch"
+	"${FILESDIR}/ceph-15.2.4-system-uring.patch"
+	"${FILESDIR}/ceph-15.2.9-dont-compile-isal_compress-if-don-t-have-SSE4_1.patch"
+	"${FILESDIR}/ceph-15.2.15-snappy-1.1.9.patch"
+)
+
+check-reqs_export_vars() {
+	CHECKREQS_DISK_BUILD="5400M"
+	CHECKREQS_DISK_USR="510M"
+
+	export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR
+}
+
+pkg_pretend() {
+	check-reqs_export_vars
+	check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+	python_setup
+	check-reqs_export_vars
+	check-reqs_pkg_setup
+}
+
+src_prepare() {
+	cmake_src_prepare
+
+	if use system-boost; then
+		find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \
+			| xargs --null sed -r \
+			-e 's|Boost::|boost_|g' \
+			-e 's|Boost_|boost_|g' \
+			-e 's|[Bb]oost_boost|boost_system|g' -i || die
+	fi
+
+	sed -r -e "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \
+		-i src/bash_completion/CMakeLists.txt || die
+
+	sed  -e "s:objdump -p:$(tc-getOBJDUMP) -p:" -i CMakeLists.txt || die
+
+	if ! use diskprediction; then
+		rm -rf src/pybind/mgr/diskprediction_local || die
+	fi
+
+	# remove tests that need root access
+	rm src/test/cli/ceph-authtool/cap*.t || die
+}
+
+ceph_src_configure() {
+	local flag
+	local mycmakeargs=(
+		-DWITH_BABELTRACE=$(usex babeltrace)
+		-DWITH_BLUESTORE_PMEM=$(usex pmdk)
+		-DWITH_CEPHFS=$(usex cephfs)
+		-DWITH_CEPHFS_SHELL=$(usex cephfs)
+		-DWITH_DPDK=$(usex dpdk)
+		-DWITH_SPDK=$(usex spdk)
+		-DWITH_FUSE=$(usex fuse)
+		-DWITH_LTTNG=$(usex lttng)
+		-DWITH_GSSAPI=$(usex kerberos)
+		-DWITH_GRAFANA=$(usex grafana)
+		-DWITH_MGR=$(usex mgr)
+		-DWITH_MGR_DASHBOARD_FRONTEND=OFF
+		-DWITH_NUMA=$(usex numa)
+		-DWITH_OPENLDAP=$(usex ldap)
+		-DWITH_PYTHON3=3
+		-DWITH_RADOSGW=$(usex radosgw)
+		-DWITH_RADOSGW_AMQP_ENDPOINT=$(usex rabbitmq)
+		-DWITH_RADOSGW_KAFKA_ENDPOINT=$(usex kafka)
+		-DWITH_RBD_RWL=$(usex rbd-rwl)
+		-DWITH_SSL=$(usex ssl)
+		-DWITH_SYSTEMD=$(usex systemd)
+		-DWITH_TESTS=$(usex test)
+		-DWITH_LIBURING=$(usex uring)
+		-DWITH_XFS=$(usex xfs)
+		-DWITH_ZFS=$(usex zfs)
+		-DENABLE_SHARED="ON"
+		-DALLOCATOR=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')")
+		-DWITH_SYSTEM_PMDK=$(usex pmdk 'YES' "$(usex rbd-rwl)")
+		-DWITH_SYSTEM_BOOST=$(usex system-boost)
+		-DBOOST_J=$(makeopts_jobs)
+		-DWITH_SYSTEM_ROCKSDB=ON
+		-DWITH_RDMA=OFF
+		-DWITH_TBB=OFF
+		-DSYSTEMD_UNITDIR=$(systemd_get_systemunitdir)
+		-DCMAKE_INSTALL_SYSTEMD_SERVICEDIR=$(systemd_get_systemunitdir)
+		-DEPYTHON_VERSION="${EPYTHON#python}"
+		-DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PN}-${PVR}"
+		-DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
+		-Wno-dev
+	)
+	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
+
+	# needed for >=glibc-2.32
+	has_version '>=sys-libs/glibc-2.32' && mycmakeargs+=(-DWITH_REENTRANT_STRSIGNAL:BOOL=ON)
+
+	rm -f "${BUILD_DIR:-${S}}/CMakeCache.txt" \
+		|| die "failed to remove cmake cache"
+
+	cmake_src_configure
+
+	# bug #630232
+	sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \
+		"${BUILD_DIR:-${S}}"/include/acconfig.h \
+		|| die "sed failed"
+}
+
+src_configure() {
+	use custom-cflags || strip-flags
+	ceph_src_configure
+}
+
+python_compile() {
+	local CMAKE_USE_DIR="${S}"
+	ceph_src_configure
+
+	pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
+	emake VERBOSE=1 clean
+	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_build VERBOSE=1 all
+
+	# we have to do this here to prevent from building everything multiple times
+	python_copy_sources
+	distutils-r1_src_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="${ED}" emake VERBOSE=1 install
+	popd >/dev/null || die
+
+	python_optimize
+}
+
+src_install() {
+	cmake_src_install
+	distutils-r1_src_install
+
+	find "${ED}" -name '*.la' -type f -delete || die
+
+	exeinto /usr/$(get_libdir)/ceph
+	newexe "${BUILD_DIR}/bin/init-ceph" init-ceph
+
+	insinto /etc/logrotate.d/
+	newins "${FILESDIR}"/ceph.logrotate-r2 ${PN}
+
+	keepdir /var/lib/${PN}{,/tmp} /var/log/ceph/stat /var/log/ceph/console
+
+	fowners -R ceph:ceph /var/log/ceph
+
+	newinitd "${FILESDIR}/rbdmap.initd-r1" rbdmap
+	newinitd "${FILESDIR}/${PN}.initd-r13" ${PN}
+	newconfd "${FILESDIR}/${PN}.confd-r5" ${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
+	newtmpfiles "${FILESDIR}"/ceph-tmpfilesd ${PN}.conf
+
+	readme.gentoo_create_doc
+
+	python_setup
+
+	# bug #630232
+	sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \
+		|| die "sed failed"
+
+	python_fix_shebang "${ED}"/usr/{,s}bin/
+
+	# python_fix_shebang apparently is not idempotent
+	local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]'
+	grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \
+		| xargs --null --no-run-if-empty -- sed -i -r  "s:${shebang_regex}:\1:" || die
+
+	local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* )
+	dostrip -x "${rados_classes[@]#${ED}}"
+}
+
+pkg_postinst() {
+	readme.gentoo_print_elog
+	tmpfiles_process ${PN}.conf
+	udev_reload
+}
+
+pkg_postrm() {
+	udev_reload
+}

diff --git a/sys-cluster/ceph/ceph-16.2.10-r4.ebuild b/sys-cluster/ceph/ceph-16.2.10-r4.ebuild
new file mode 100644
index 000000000000..d13869019397
--- /dev/null
+++ b/sys-cluster/ceph/ceph-16.2.10-r4.ebuild
@@ -0,0 +1,473 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..10} )
+LUA_COMPAT=( lua5-3 )
+
+CMAKE_MAKEFILE_GENERATOR=emake
+
+inherit check-reqs bash-completion-r1 cmake python-r1 flag-o-matic \
+		lua-single udev readme.gentoo-r1 toolchain-funcs systemd tmpfiles
+
+SRC_URI="https://download.ceph.com/tarballs/${P}.tar.gz"
+KEYWORDS="~amd64 ~arm64 ~ppc64"
+
+DESCRIPTION="Ceph distributed filesystem"
+HOMEPAGE="https://ceph.com/"
+
+LICENSE="Apache-2.0 LGPL-2.1 CC-BY-SA-3.0 GPL-2 GPL-2+ LGPL-2+ LGPL-2.1 LGPL-3 GPL-3 BSD Boost-1.0 MIT public-domain"
+SLOT="0"
+
+CPU_FLAGS_X86=(avx2 avx512f pclmul sse{,2,3,4_1,4_2} ssse3)
+
+IUSE="
+	babeltrace +cephfs custom-cflags diskprediction dpdk fuse grafana
+	jemalloc jaeger kafka kerberos ldap lttng +mgr numa pmdk rabbitmq
+	+radosgw rbd-rwl rbd-ssd rdma rgw-lua +ssl spdk +sqlite +system-boost
+	systemd +tcmalloc test uring xfs zbd zfs
+"
+
+IUSE+="$(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})"
+
+DEPEND="
+	${LUA_DEPS}
+	${PYTHON_DEPS}
+	acct-group/ceph
+	acct-user/ceph
+	virtual/libudev:=
+	app-arch/bzip2:=
+	app-arch/lz4:=
+	app-arch/snappy:=
+	>=app-arch/snappy-1.1.9-r1
+	app-arch/zstd:=
+	app-shells/bash:0
+	app-misc/jq:=
+	dev-libs/crypto++:=
+	dev-cpp/gflags:=
+	<dev-libs/leveldb-1.23:=[snappy,tcmalloc(-)?]
+	dev-libs/libaio:=
+	<dev-libs/libfmt-9:=
+	dev-libs/libnl:3=
+	dev-libs/libxml2:=
+	dev-libs/libevent:=
+	dev-libs/openssl:=
+	<dev-libs/rocksdb-6.15:=
+	dev-libs/xmlsec:=[openssl]
+	dev-cpp/yaml-cpp:=
+	dev-libs/nss:=
+	dev-libs/protobuf:=
+	net-dns/c-ares:=
+	net-libs/gnutls:=
+	sys-auth/oath-toolkit:=
+	sys-apps/coreutils
+	sys-apps/hwloc:=
+	sys-apps/keyutils:=
+	sys-apps/util-linux:=
+	sys-apps/util-linux
+	sys-libs/libcap-ng:=
+	sys-libs/ncurses:0=
+	sys-libs/zlib:=
+	sys-process/numactl:=
+	virtual/libcrypt:=
+	x11-libs/libpciaccess:=
+	babeltrace? ( dev-util/babeltrace )
+	fuse? ( sys-fs/fuse:3= )
+	jemalloc? ( dev-libs/jemalloc:= )
+	!jemalloc? ( >=dev-util/google-perftools-2.6.1:= )
+	jaeger? ( dev-cpp/nlohmann_json:= )
+	kafka? ( dev-libs/librdkafka:= )
+	kerberos? ( virtual/krb5 )
+	ldap? ( net-nds/openldap:= )
+	lttng? ( dev-util/lttng-ust:= )
+	pmdk? ( dev-libs/pmdk:= )
+	rabbitmq? ( net-libs/rabbitmq-c:= )
+	radosgw? (
+		dev-libs/icu:=
+		dev-libs/expat:=
+		net-misc/curl:=[curl_ssl_openssl]
+	)
+	rbd-rwl? ( dev-libs/pmdk:= )
+	rdma? ( sys-cluster/rdma-core:= )
+	spdk? ( dev-util/cunit )
+	sqlite? ( dev-db/sqlite:= )
+	system-boost? ( dev-libs/boost:=[context,python,${PYTHON_USEDEP},zlib] )
+	!system-boost? ( $(python_gen_impl_dep '' 3.8 3.9) )
+	uring? ( sys-libs/liburing:= )
+	xfs? ( sys-fs/xfsprogs:= )
+	zbd? ( sys-block/libzbd:= )
+	zfs? ( sys-fs/zfs:= )
+"
+BDEPEND="
+	amd64? ( dev-lang/nasm )
+	x86? ( dev-lang/yasm )
+	app-arch/cpio
+	>=dev-util/cmake-3.5.0
+	dev-python/cython[${PYTHON_USEDEP}]
+	dev-python/setuptools[${PYTHON_USEDEP}]
+	dev-python/sphinx
+	dev-util/gperf
+	dev-util/ragel
+	dev-util/valgrind
+	sys-apps/coreutils
+	sys-apps/grep
+	sys-apps/util-linux
+	sys-apps/which
+	sys-devel/bc
+	sys-devel/patch
+	virtual/pkgconfig
+	jaeger? (
+		sys-devel/bison
+		sys-devel/flex
+	)
+	test? (
+		dev-util/cunit
+		dev-python/coverage[${PYTHON_USEDEP}]
+		dev-python/virtualenv[${PYTHON_USEDEP}]
+		dev-python/requests-mock[${PYTHON_USEDEP}]
+		sys-apps/grep[pcre]
+		sys-fs/btrfs-progs
+	)
+"
+RDEPEND="
+	${DEPEND}
+	app-admin/sudo
+	net-misc/socat
+	sys-apps/gptfdisk
+	sys-apps/nvme-cli
+	>=sys-apps/smartmontools-7.0
+	sys-block/parted
+	sys-fs/cryptsetup
+	sys-fs/lsscsi
+	sys-fs/lvm2[lvm]
+	app-alternatives/awk
+	dev-python/bcrypt[${PYTHON_USEDEP}]
+	dev-python/cherrypy[${PYTHON_USEDEP}]
+	dev-python/python-dateutil[${PYTHON_USEDEP}]
+	dev-python/flask[${PYTHON_USEDEP}]
+	dev-python/jinja[${PYTHON_USEDEP}]
+	dev-python/pecan[${PYTHON_USEDEP}]
+	dev-python/prettytable[${PYTHON_USEDEP}]
+	dev-python/pyopenssl[${PYTHON_USEDEP}]
+	dev-python/pyyaml[${PYTHON_USEDEP}]
+	dev-python/requests[${PYTHON_USEDEP}]
+	dev-python/werkzeug[${PYTHON_USEDEP}]
+	mgr? (
+		dev-python/jsonpatch[${PYTHON_USEDEP}]
+		dev-python/more-itertools[${PYTHON_USEDEP}]
+		dev-python/numpy[${PYTHON_USEDEP}]
+		dev-python/pyjwt[${PYTHON_USEDEP}]
+		dev-python/routes[${PYTHON_USEDEP}]
+		diskprediction? (
+			>=dev-python/scipy-1.4.0[${PYTHON_USEDEP}]
+		)
+		sci-libs/scikit-learn[${PYTHON_USEDEP}]
+		dev-python/six[${PYTHON_USEDEP}]
+	)
+"
+REQUIRED_USE="
+	${PYTHON_REQUIRED_USE}
+	${LUA_REQUIRED_USE}
+	?? ( jemalloc tcmalloc )
+	jaeger? ( !system-boost )
+	diskprediction? ( mgr )
+	kafka? ( radosgw )
+	mgr? ( cephfs )
+	rabbitmq? ( radosgw )
+	!system-boost? (
+		python_targets_python3_9
+		python_targets_python3_10
+	)
+"
+
+RESTRICT="
+	!test? ( test )
+"
+
+# tests need root access, and network access
+RESTRICT+="test"
+
+# create a non-debug release
+CMAKE_BUILD_TYPE=RelWithDebInfo
+
+# false positives unless all USE flags are on
+CMAKE_WARN_UNUSED_CLI=no
+
+PATCHES=(
+	"${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch"
+	"${FILESDIR}/ceph-14.2.0-cflags.patch"
+	"${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch"
+	"${FILESDIR}/ceph-16.2.2-cflags.patch"
+	"${FILESDIR}/ceph-16.2.8-no-virtualenvs.patch"
+	"${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
+	"${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch"
+	"${FILESDIR}/ceph-14.2.0-cython-0.29.patch"
+	"${FILESDIR}/ceph-16.2.0-rocksdb-cmake.patch"
+	"${FILESDIR}/ceph-15.2.3-spdk-compile.patch"
+	"${FILESDIR}/ceph-16.2.0-spdk-tinfo.patch"
+	"${FILESDIR}/ceph-16.2.0-jaeger-system-boost.patch"
+	"${FILESDIR}/ceph-16.2.0-liburing.patch"
+	"${FILESDIR}/ceph-16.2.2-system-zstd.patch"
+	"${FILESDIR}/ceph-16.2.7-string-includes.patch"
+	"${FILESDIR}/ceph-17.2.0-fuse3.patch"
+	"${FILESDIR}/ceph-16.2.9-python310.patch"
+	"${FILESDIR}/ceph-17.2.0-gcc12-header.patch"
+	"${FILESDIR}/ceph-16.2.10-flags.patch"
+)
+
+check-reqs_export_vars() {
+	CHECKREQS_DISK_BUILD="6G"
+
+	if use system-boost; then
+		CHECKREQS_DISK_USR="350M"
+	else
+		CHECKREQS_DISK_USR="510M"
+	fi
+
+	export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR
+}
+
+pkg_pretend() {
+	check-reqs_export_vars
+	check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+	if ! use system-boost; then
+		python_setup 3.8 3.9
+	else
+		python_setup
+	fi
+	lua_setup
+	check-reqs_export_vars
+	check-reqs_pkg_setup
+}
+
+src_prepare() {
+	cmake_src_prepare
+
+	if use system-boost; then
+		find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \
+			| xargs --null sed -r \
+			-e 's|Boost::|boost_|g' \
+			-e 's|Boost_|boost_|g' \
+			-e 's|[Bb]oost_boost|boost_system|g' \
+			-i || die
+	fi
+
+	if ! use systemd; then
+		find "${S}"/src/ceph-volume/ceph_volume -name '*.py' -print0 \
+			| xargs --null sed \
+			-e '/^from ceph_volume.systemd import systemctl/ d' \
+			-i || die
+	fi
+
+	sed -r -e "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \
+		-i src/bash_completion/CMakeLists.txt || die
+
+	sed  -e "s:objdump -p:$(tc-getOBJDUMP) -p:" -i CMakeLists.txt || die
+
+	if ! use diskprediction; then
+		rm -rf src/pybind/mgr/diskprediction_local || die
+	fi
+
+	# force lua version to use selected version
+	local lua_version
+	lua_version=$(ver_cut 1-2 $(lua_get_version))
+	sed "s:find_package(Lua [0-9][.][0-9] REQUIRED):find_package(Lua ${lua_version} EXACT REQUIRED):" \
+		-i src/CMakeLists.txt
+
+	# remove tests that need root access
+	rm src/test/cli/ceph-authtool/cap*.t || die
+}
+
+ceph_src_configure() {
+	local mycmakeargs=(
+		-DWITH_BABELTRACE:BOOL=$(usex babeltrace)
+		-DWITH_BLUESTORE_PMEM:BOOL=$(usex pmdk)
+		-DWITH_CEPHFS:BOOL=$(usex cephfs)
+		-DWITH_CEPHFS_SHELL:BOOL=$(usex cephfs)
+		-DWITH_DPDK:BOOL=$(usex dpdk)
+		-DWITH_SPDK:BOOL=$(usex spdk)
+		-DWITH_FUSE:BOOL=$(usex fuse)
+		-DWITH_LTTNG:BOOL=$(usex lttng)
+		-DWITH_GSSAPI:BOOL=$(usex kerberos)
+		-DWITH_GRAFANA:BOOL=$(usex grafana)
+		-DWITH_MGR:BOOL=$(usex mgr)
+		-DWITH_MGR_DASHBOARD_FRONTEND:BOOL=OFF
+		-DWITH_OPENLDAP:BOOL=$(usex ldap)
+		-DWITH_PYTHON3:STRING=3
+		-DWITH_RADOSGW:BOOL=$(usex radosgw)
+		-DWITH_RADOSGW_AMQP_ENDPOINT:BOOL=$(usex rabbitmq)
+		-DWITH_RADOSGW_KAFKA_ENDPOINT:BOOL=$(usex kafka)
+		-DWITH_RADOSGW_LUA_PACKAGES:BOOL=$(usex rgw-lua "$(usex radosgw)" "NO")
+		-DWITH_RBD_RWL:BOOL=$(usex rbd-rwl)
+		-DWITH_RBD_SSD_CACHE:BOOL=$(usex rbd-ssd)
+		-DWITH_SYSTEMD:BOOL=$(usex systemd)
+		-DWITH_TESTS:BOOL=$(usex test)
+		-DWITH_LIBURING:BOOL=$(usex uring)
+		-DWITH_SYSTEM_LIBURING:BOOL=$(usex uring)
+		-DWITH_LIBCEPHSQLITE:BOOL=$(usex sqlite)
+		-DWITH_XFS:BOOL=$(usex xfs)
+		-DWITH_ZBD:BOOL=$(usex zbd)
+		-DWITH_ZFS:BOOL=$(usex zfs)
+		-DENABLE_SHARED:BOOL=ON
+		-DALLOCATOR:STRING=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')")
+		-DWITH_SYSTEM_PMDK:BOOL=$(usex pmdk 'YES' "$(usex rbd-rwl)")
+		-DWITH_SYSTEM_BOOST:BOOL=$(usex system-boost)
+		-DWITH_SYSTEM_ROCKSDB:BOOL=ON
+		-DWITH_RDMA:BOOL=$(usex rdma)
+		-DCMAKE_INSTALL_DOCDIR:PATH="${EPREFIX}/usr/share/doc/${PN}-${PVR}"
+		-DCMAKE_INSTALL_SYSCONFDIR:PATH="${EPREFIX}/etc"
+		-Wno-dev
+	)
+
+	# this breaks when re-configuring for python impl
+	if [[ ${EBUILD_PHASE} == configure ]]; then
+		mycmakeargs+=(
+			-DWITH_JAEGER:BOOL=$(usex jaeger)
+		)
+	else
+		mycmakeargs+=(
+			-DWITH_RADOSGW_SELECT_PARQUET:BOOL=OFF
+		)
+	fi
+
+	# conditionally used cmake args
+	use test && mycmakearts+=( -DWITH_SYSTEM_GTEST:BOOL=$(usex test) )
+	use systemd && mycmakeargs+=( -DCMAKE_INSTALL_SYSTEMD_SERVICEDIR:PATH=$(systemd_get_systemunitdir) )
+
+	if use amd64 || use x86; then
+		local flag
+		for flag in "${CPU_FLAGS_X86[@]}"; do
+			case "${flag}" in
+				avx*)
+					local var=${flag%f}
+					mycmakeargs+=(
+						"-DHAVE_NASM_X64_${var^^}:BOOL=$(usex cpu_flags_x86_${flag})"
+					)
+				;;
+				*) mycmakeargs+=(
+						"-DHAVE_INTEL_${flag^^}:BOOL=$(usex cpu_flags_x86_${flag})"
+					);;
+			esac
+		done
+	fi
+
+	# needed for >=glibc-2.32
+	has_version '>=sys-libs/glibc-2.32' && mycmakeargs+=( -DWITH_REENTRANT_STRSIGNAL:BOOL=ON )
+
+	rm -f "${BUILD_DIR:-${S}}/CMakeCache.txt" \
+		|| die "failed to remove cmake cache"
+
+	cmake_src_configure
+
+	# bug #630232
+	sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \
+		"${BUILD_DIR:-${S}}"/include/acconfig.h \
+		|| die "sed failed"
+}
+
+src_configure() {
+	use custom-cflags || strip-flags
+	ceph_src_configure
+}
+
+src_compile() {
+	cmake_build VERBOSE=1 all
+
+	# we have to do this here to prevent from building everything multiple times
+	python_copy_sources
+	python_foreach_impl python_compile
+}
+
+python_compile() {
+	local CMAKE_USE_DIR="${S}"
+	ceph_src_configure
+
+	pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
+	cmake_build VERBOSE=1 clean
+	cmake_build 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}" cmake_build VERBOSE=1 install
+	popd >/dev/null || die
+}
+
+src_install() {
+	python_foreach_impl python_install
+
+	python_setup
+	cmake_src_install
+
+	find "${ED}" -name '*.la' -type f -delete || die
+
+	exeinto /usr/$(get_libdir)/ceph
+	newexe "${BUILD_DIR}/bin/init-ceph" init-ceph
+
+	insinto /etc/logrotate.d/
+	newins "${FILESDIR}"/ceph.logrotate-r2 ${PN}
+
+	keepdir /var/lib/${PN}{,/tmp} /var/log/ceph/stat /var/log/ceph/console
+
+	fowners -R ceph:ceph /var/log/ceph
+
+	newinitd "${FILESDIR}/rbdmap.initd-r1" rbdmap
+	newinitd "${FILESDIR}/${PN}.initd-r13" ${PN}
+	newconfd "${FILESDIR}/${PN}.confd-r5" ${PN}
+
+	insinto /etc/sudoers.d
+	doins sudoers.d/*
+
+	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
+	newtmpfiles "${FILESDIR}"/ceph-tmpfilesd ${PN}.conf
+
+	readme.gentoo_create_doc
+
+	# bug #630232
+	sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \
+		|| die "sed failed"
+
+	python_fix_shebang "${ED}"/usr/{,s}bin/
+
+	# python_fix_shebang apparently is not idempotent
+	local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]'
+	grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \
+		| xargs --null --no-run-if-empty -- sed -i -r  "s:${shebang_regex}:\1:" || die
+
+	local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* )
+	dostrip -x "${rados_classes[@]#${ED}}"
+}
+
+python_install() {
+	local CMAKE_USE_DIR="${S}"
+	pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
+	DESTDIR="${ED}" cmake_build VERBOSE=1 install
+	popd >/dev/null || die
+
+	python_optimize
+}
+
+pkg_postinst() {
+	readme.gentoo_print_elog
+	tmpfiles_process ${PN}.conf
+	udev_reload
+}
+
+pkg_postrm() {
+	udev_reload
+}

diff --git a/sys-cluster/ceph/ceph-17.2.5-r3.ebuild b/sys-cluster/ceph/ceph-17.2.5-r3.ebuild
new file mode 100644
index 000000000000..93999ca1aac5
--- /dev/null
+++ b/sys-cluster/ceph/ceph-17.2.5-r3.ebuild
@@ -0,0 +1,477 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..10} )
+LUA_COMPAT=( lua5-{3..4} )
+
+inherit check-reqs bash-completion-r1 cmake flag-o-matic lua-single \
+		python-r1 udev readme.gentoo-r1 toolchain-funcs systemd tmpfiles
+
+SRC_URI="
+	https://download.ceph.com/tarballs/${P}.tar.gz
+	parquet? ( https://github.com/xtensor-stack/xsimd/archive/aeec9c872c8b475dedd7781336710f2dd2666cb2.tar.gz -> ceph-xsimd-${PV}.tar.gz )
+"
+KEYWORDS="~amd64 ~arm64"
+
+DESCRIPTION="Ceph distributed filesystem"
+HOMEPAGE="https://ceph.com/"
+
+LICENSE="Apache-2.0 LGPL-2.1 CC-BY-SA-3.0 GPL-2 GPL-2+ LGPL-2+ LGPL-2.1 LGPL-3 GPL-3 BSD Boost-1.0 MIT public-domain"
+SLOT="0"
+
+CPU_FLAGS_X86=(avx2 avx512f pclmul sse{,2,3,4_1,4_2} ssse3)
+
+IUSE="
+	babeltrace +cephfs custom-cflags diskprediction dpdk fuse grafana
+	jemalloc jaeger kafka kerberos ldap lttng +mgr +parquet pmdk rabbitmq
+	+radosgw rbd-rwl rbd-ssd rdma rgw-lua +ssl spdk +sqlite +system-boost
+	systemd +tcmalloc test +uring xfs zbd zfs
+"
+
+IUSE+="$(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})"
+
+DEPEND="
+	${LUA_DEPS}
+	${PYTHON_DEPS}
+	acct-group/ceph
+	acct-user/ceph
+	virtual/libudev:=
+	app-arch/bzip2:=
+	app-arch/lz4:=
+	app-arch/snappy:=
+	>=app-arch/snappy-1.1.9-r1
+	app-arch/zstd:=
+	app-shells/bash:0
+	app-misc/jq:=
+	dev-libs/crypto++:=
+	dev-cpp/gflags:=
+	dev-lang/jsonnet:=
+	<dev-libs/leveldb-1.23:=[snappy,tcmalloc(-)?]
+	dev-libs/libaio:=
+	>=dev-libs/libfmt-6.2.1:=
+	<dev-libs/libfmt-9:=
+	dev-libs/libnl:3=
+	dev-libs/libxml2:=
+	dev-libs/libevent:=
+	dev-libs/libutf8proc:=
+	dev-libs/nss:=
+	dev-libs/openssl:=
+	<dev-libs/rocksdb-6.15:=
+	dev-libs/thrift:=
+	dev-libs/xmlsec:=[openssl]
+	dev-cpp/yaml-cpp:=
+	dev-python/natsort[${PYTHON_USEDEP}]
+	dev-python/pyyaml[${PYTHON_USEDEP}]
+	net-dns/c-ares:=
+	net-libs/gnutls:=
+	sys-auth/oath-toolkit:=
+	sys-apps/coreutils
+	sys-apps/hwloc:=
+	sys-apps/keyutils:=
+	sys-apps/util-linux:=
+	sys-libs/libcap-ng:=
+	sys-libs/ncurses:0=
+	sys-libs/zlib:=
+	sys-process/numactl:=
+	virtual/libcrypt:=
+	x11-libs/libpciaccess:=
+	babeltrace? ( dev-util/babeltrace )
+	fuse? ( sys-fs/fuse:3= )
+	jemalloc? ( dev-libs/jemalloc:= )
+	!jemalloc? ( >=dev-util/google-perftools-2.6.1:= )
+	jaeger? (
+		dev-cpp/nlohmann_json:=
+		dev-cpp/opentelemetry-cpp:=[jaeger]
+	)
+	kafka? ( dev-libs/librdkafka:= )
+	kerberos? ( virtual/krb5 )
+	ldap? ( net-nds/openldap:= )
+	lttng? ( dev-util/lttng-ust:= )
+	parquet? ( dev-libs/re2:= )
+	pmdk? ( >=dev-libs/pmdk-1.10.0:= )
+	rabbitmq? ( net-libs/rabbitmq-c:= )
+	radosgw? (
+		dev-libs/icu:=
+		dev-libs/expat:=
+		net-misc/curl:=[curl_ssl_openssl]
+	)
+	rbd-rwl? ( dev-libs/pmdk:= )
+	rdma? ( sys-cluster/rdma-core:= )
+	spdk? ( dev-util/cunit )
+	sqlite? ( dev-db/sqlite:= )
+	system-boost? ( dev-libs/boost:=[context,python,${PYTHON_USEDEP},zlib] )
+	uring? ( sys-libs/liburing:= )
+	xfs? ( sys-fs/xfsprogs:= )
+	zbd? ( sys-block/libzbd:= )
+	zfs? ( sys-fs/zfs:= )
+"
+BDEPEND="
+	amd64? ( dev-lang/nasm )
+	x86? ( dev-lang/yasm )
+	app-arch/cpio
+	>=dev-util/cmake-3.5.0
+	dev-python/cython[${PYTHON_USEDEP}]
+	dev-python/setuptools[${PYTHON_USEDEP}]
+	dev-python/sphinx
+	dev-util/gperf
+	dev-util/ragel
+	dev-util/valgrind
+	sys-apps/coreutils
+	sys-apps/grep
+	sys-apps/util-linux
+	sys-apps/which
+	sys-devel/bc
+	sys-devel/patch
+	virtual/pkgconfig
+	jaeger? (
+		sys-devel/bison
+		sys-devel/flex
+	)
+	test? (
+		dev-util/cunit
+		dev-python/coverage[${PYTHON_USEDEP}]
+		dev-python/virtualenv[${PYTHON_USEDEP}]
+		dev-python/requests-mock[${PYTHON_USEDEP}]
+		sys-apps/grep[pcre]
+		sys-fs/btrfs-progs
+	)
+"
+RDEPEND="
+	${DEPEND}
+	app-admin/sudo
+	net-misc/socat
+	sys-apps/gptfdisk
+	sys-apps/nvme-cli
+	>=sys-apps/smartmontools-7.0
+	sys-block/parted
+	sys-fs/cryptsetup
+	sys-fs/lsscsi
+	sys-fs/lvm2[lvm]
+	app-alternatives/awk
+	dev-python/bcrypt[${PYTHON_USEDEP}]
+	dev-python/cherrypy[${PYTHON_USEDEP}]
+	dev-python/python-dateutil[${PYTHON_USEDEP}]
+	dev-python/flask[${PYTHON_USEDEP}]
+	dev-python/jinja[${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}]
+	mgr? (
+		dev-python/jsonpatch[${PYTHON_USEDEP}]
+		dev-python/more-itertools[${PYTHON_USEDEP}]
+		dev-python/numpy[${PYTHON_USEDEP}]
+		dev-python/pyjwt[${PYTHON_USEDEP}]
+		dev-python/routes[${PYTHON_USEDEP}]
+		diskprediction? (
+			>=dev-python/scipy-1.4.0[${PYTHON_USEDEP}]
+		)
+		sci-libs/scikit-learn[${PYTHON_USEDEP}]
+		dev-python/six[${PYTHON_USEDEP}]
+	)
+"
+REQUIRED_USE="
+	${PYTHON_REQUIRED_USE}
+	${LUA_REQUIRED_USE}
+	?? ( jemalloc tcmalloc )
+	diskprediction? ( mgr )
+	kafka? ( radosgw )
+	mgr? ( cephfs )
+	rabbitmq? ( radosgw )
+	rgw-lua? ( radosgw )
+"
+
+RESTRICT="
+	!test? ( test )
+"
+
+# tests need root access, and network access
+RESTRICT+="test"
+
+# false positives unless all USE flags are on
+CMAKE_WARN_UNUSED_CLI=no
+
+PATCHES=(
+	"${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch"
+	"${FILESDIR}/ceph-14.2.0-cflags.patch"
+	"${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch"
+	"${FILESDIR}/ceph-16.2.2-cflags.patch"
+	"${FILESDIR}/ceph-17.2.1-no-virtualenvs.patch"
+	"${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
+	"${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch"
+	"${FILESDIR}/ceph-16.2.0-rocksdb-cmake.patch"
+	"${FILESDIR}/ceph-16.2.0-spdk-tinfo.patch"
+	"${FILESDIR}/ceph-16.2.0-jaeger-system-boost.patch"
+	"${FILESDIR}/ceph-16.2.0-liburing.patch"
+	"${FILESDIR}/ceph-17.2.0-cyclic-deps.patch"
+	"${FILESDIR}/ceph-17.2.0-pybind-boost-1.74.patch"
+	"${FILESDIR}/ceph-17.2.0-findre2.patch"
+	"${FILESDIR}/ceph-17.2.0-install-dbstore.patch"
+	"${FILESDIR}/ceph-17.2.0-deprecated-boost.patch"
+	"${FILESDIR}/ceph-17.2.0-system-opentelemetry.patch"
+	"${FILESDIR}/ceph-17.2.0-fuse3.patch"
+	"${FILESDIR}/ceph-17.2.0-osd_class_dir.patch"
+	"${FILESDIR}/ceph-17.2.0-gcc12-header.patch"
+	"${FILESDIR}/ceph-17.2.3-flags.patch"
+	"${FILESDIR}/ceph-17.2.4-cyclic-deps.patch"
+	# https://bugs.gentoo.org/866165
+	"${FILESDIR}/ceph-17.2.5-suppress-cmake-warning.patch"
+	"${FILESDIR}/ceph-17.2.5-gcc13.patch"
+	"${FILESDIR}/ceph-17.2.5-boost-1.81.patch"
+)
+
+check-reqs_export_vars() {
+	CHECKREQS_DISK_BUILD="6G"
+
+	if use system-boost; then
+		CHECKREQS_DISK_USR="350M"
+	else
+		CHECKREQS_DISK_USR="510M"
+	fi
+
+	export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR
+}
+
+pkg_pretend() {
+	check-reqs_export_vars
+	check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+	python_setup
+	lua_setup
+	check-reqs_export_vars
+	check-reqs_pkg_setup
+}
+
+src_prepare() {
+	cmake_src_prepare
+
+	if use system-boost; then
+		find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \
+			| xargs --null sed -r \
+			-e 's|Boost::|boost_|g' \
+			-e 's|Boost_|boost_|g' \
+			-e 's|[Bb]oost_boost|boost_system|g' \
+			-i || die
+	fi
+
+	if ! use systemd; then
+		find "${S}"/src/ceph-volume/ceph_volume -name '*.py' -print0 \
+			| xargs --null sed \
+			-e '/^from ceph_volume.systemd import systemctl/ d' \
+			-i || die
+	fi
+
+	sed -r -e "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \
+		-i src/bash_completion/CMakeLists.txt || die
+
+	sed -e "s:objdump -p:$(tc-getOBJDUMP) -p:" -i CMakeLists.txt || die
+
+	# force lua version to use selected version
+	local lua_version
+	lua_version=$(ver_cut 1-2 $(lua_get_version))
+	sed "s:find_package(Lua [0-9][.][0-9] REQUIRED):find_package(Lua ${lua_version} EXACT REQUIRED):" \
+		-i src/CMakeLists.txt
+
+	if use spdk; then
+		# https://bugs.gentoo.org/871942
+		sed -i 's/[#]ifndef HAVE_ARC4RANDOM/#if 0/' src/spdk/lib/iscsi/iscsi.c || die
+	fi
+
+	# remove tests that need root access
+	rm src/test/cli/ceph-authtool/cap*.t || die
+}
+
+ceph_src_configure() {
+	local mycmakeargs=(
+		-DWITH_BABELTRACE:BOOL=$(usex babeltrace)
+		-DWITH_BLUESTORE_PMEM:BOOL=$(usex pmdk)
+		-DWITH_CEPHFS:BOOL=$(usex cephfs)
+		-DWITH_CEPHFS_SHELL:BOOL=$(usex cephfs)
+		-DWITH_DPDK:BOOL=$(usex dpdk)
+		-DWITH_SPDK:BOOL=$(usex spdk)
+		-DWITH_FUSE:BOOL=$(usex fuse)
+		-DWITH_LTTNG:BOOL=$(usex lttng)
+		-DWITH_GSSAPI:BOOL=$(usex kerberos)
+		-DWITH_GRAFANA:BOOL=$(usex grafana)
+		-DWITH_MGR:BOOL=$(usex mgr)
+		-DWITH_MGR_DASHBOARD_FRONTEND:BOOL=OFF
+		-DWITH_OPENLDAP:BOOL=$(usex ldap)
+		-DWITH_PYTHON3:STRING=3
+		-DWITH_RADOSGW:BOOL=$(usex radosgw)
+		-DWITH_RADOSGW_AMQP_ENDPOINT:BOOL=$(usex rabbitmq)
+		-DWITH_RADOSGW_KAFKA_ENDPOINT:BOOL=$(usex kafka)
+		-DWITH_RADOSGW_LUA_PACKAGES:BOOL=$(usex rgw-lua "$(usex radosgw)" "NO")
+		-DWITH_RBD_RWL:BOOL=$(usex rbd-rwl)
+		-DWITH_RBD_SSD_CACHE:BOOL=$(usex rbd-ssd)
+		-DWITH_SYSTEMD:BOOL=$(usex systemd)
+		-DWITH_TESTS:BOOL=$(usex test)
+		-DWITH_LIBURING:BOOL=$(usex uring)
+		-DWITH_SYSTEM_LIBURING:BOOL=$(usex uring)
+		-DWITH_LIBCEPHSQLITE:BOOL=$(usex sqlite)
+		-DWITH_XFS:BOOL=$(usex xfs)
+		-DWITH_ZBD:BOOL=$(usex zbd)
+		-DWITH_ZFS:BOOL=$(usex zfs)
+		-DENABLE_SHARED:BOOL=ON
+		-DALLOCATOR:STRING=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')")
+		-DWITH_SYSTEM_PMDK:BOOL=$(usex pmdk 'YES' "$(usex rbd-rwl '')")
+		-DWITH_SYSTEM_BOOST:BOOL=$(usex system-boost)
+		-DWITH_SYSTEM_ROCKSDB:BOOL=ON
+		-DWITH_SYSTEM_ZSTD:BOOL=ON
+		-DWITH_RDMA:BOOL=$(usex rdma)
+		-DCMAKE_INSTALL_DOCDIR:PATH="${EPREFIX}/usr/share/doc/${PN}-${PVR}"
+		-DCMAKE_INSTALL_SYSCONFDIR:PATH="${EPREFIX}/etc"
+		-Wno-dev
+	)
+
+	# this breaks when re-configuring for python impl
+	if [[ ${EBUILD_PHASE} == configure ]]; then
+		mycmakeargs+=(
+			-DWITH_JAEGER:BOOL=$(usex jaeger)
+			-DWITH_RADOSGW_SELECT_PARQUET:BOOL=$(usex parquet)
+		)
+	else
+		mycmakeargs+=(
+			-DWITH_RADOSGW_SELECT_PARQUET:BOOL=OFF
+			-DWITH_JAEGER:BOOL=OFF
+			# don't want to warn about unused CLI when reconfiguring for python
+			-DCMAKE_WARN_UNUSED_CLI:BOOL=OFF
+		)
+	fi
+
+	# conditionally used cmake args
+	use test && mycmakearts+=( -DWITH_SYSTEM_GTEST:BOOL=$(usex test) )
+	use systemd && mycmakeargs+=( -DSYSTEMD_SYSTEM_UNIT_DIR:PATH=$(systemd_get_systemunitdir) )
+
+	if use amd64 || use x86; then
+		local flag
+		for flag in "${CPU_FLAGS_X86[@]}"; do
+			case "${flag}" in
+				avx*)
+					local var=${flag%f}
+					mycmakeargs+=(
+						"-DHAVE_NASM_X64_${var^^}:BOOL=$(usex cpu_flags_x86_${flag})"
+					)
+				;;
+				*) mycmakeargs+=(
+						"-DHAVE_INTEL_${flag^^}:BOOL=$(usex cpu_flags_x86_${flag})"
+					);;
+			esac
+		done
+	fi
+
+	# needed for >=glibc-2.32
+	has_version '>=sys-libs/glibc-2.32' && mycmakeargs+=( -DWITH_REENTRANT_STRSIGNAL:BOOL=ON )
+
+	rm -f "${BUILD_DIR:-${S}}/CMakeCache.txt" \
+		|| die "failed to remove cmake cache"
+
+	# hopefully this will not be necessary in the next release
+	use parquet && export ARROW_XSIMD_URL="file:///${DISTDIR}/ceph-xsimd-${PV}.tar.gz"
+
+	cmake_src_configure
+
+	# bug #630232
+	sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \
+		"${BUILD_DIR:-${S}}"/include/acconfig.h \
+		|| die "sed failed"
+}
+
+src_configure() {
+	use custom-cflags || strip-flags
+	ceph_src_configure
+}
+
+src_compile() {
+	cmake_build all
+
+	# we have to do this here to prevent from building everything multiple times
+	python_copy_sources
+	python_foreach_impl python_compile
+}
+
+python_compile() {
+	local CMAKE_USE_DIR="${S}"
+	ceph_src_configure
+
+	cmake_build src/pybind/CMakeFiles/cython_modules
+}
+
+src_install() {
+	python_foreach_impl python_install
+
+	python_setup
+	cmake_src_install
+	python_optimize
+
+	find "${ED}" -name '*.la' -type f -delete || die
+
+	exeinto /usr/$(get_libdir)/ceph
+	newexe "${BUILD_DIR}/bin/init-ceph" init-ceph
+
+	insinto /etc/logrotate.d/
+	newins "${FILESDIR}"/ceph.logrotate-r2 ${PN}
+
+	keepdir /var/lib/${PN}{,/tmp} /var/log/ceph/stat /var/log/ceph/console
+
+	fowners -R ceph:ceph /var/log/ceph
+
+	newinitd "${FILESDIR}/rbdmap.initd-r1" rbdmap
+	newinitd "${FILESDIR}/${PN}.initd-r13" ${PN}
+	newconfd "${FILESDIR}/${PN}.confd-r5" ${PN}
+
+	insinto /etc/sudoers.d
+	doins sudoers.d/*
+
+	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
+	newtmpfiles "${FILESDIR}"/ceph-tmpfilesd ${PN}.conf
+
+	readme.gentoo_create_doc
+
+	# bug #630232
+	sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \
+		|| die "sed failed"
+
+	python_fix_shebang "${ED}"/usr/{,s}bin/
+
+	# python_fix_shebang apparently is not idempotent
+	local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]'
+	grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \
+		| xargs --null --no-run-if-empty -- sed -i -r  "s:${shebang_regex}:\1:" || die
+
+	local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* )
+	dostrip -x "${rados_classes[@]#${ED}}"
+}
+
+python_install() {
+	local CMAKE_USE_DIR="${S}"
+	DESTDIR="${ED}" cmake_build src/pybind/install
+
+	python_optimize
+}
+
+pkg_postinst() {
+	readme.gentoo_print_elog
+	tmpfiles_process ${PN}.conf
+	udev_reload
+}
+
+pkg_postrm() {
+	udev_reload
+}

diff --git a/sys-cluster/ceph/files/ceph.initd-r13 b/sys-cluster/ceph/files/ceph.initd-r13
new file mode 100644
index 000000000000..2d158ad80be3
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph.initd-r13
@@ -0,0 +1,115 @@
+#!/sbin/openrc-run
+
+# make sure /etc/conf.d/ceph gets loaded for ceph-mon etc
+_CONFD_FILE="${RC_SERVICE%/*}/../conf.d/${RC_SVCNAME%-*}"
+if [ -r "${_CONFD_FILE}" ]; then
+	. "${_CONFD_FILE}" || exit 1
+fi
+
+: "${ceph_conf:=/etc/ceph/ceph.conf}"
+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}"
+extra_commands="${extra_commands} reload"
+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/console/ceph}"
+: "${stderr:=/var/log/ceph/console/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() {
+	local log_dir
+	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
+
+	if [ -n "${bluestore_osd_fsid}" ]; then
+		einfo "Mounting Bluestore"
+		ceph-volume lvm activate "${daemon_id}" "${bluestore_osd_fsid}" --no-systemd
+	fi
+
+	if [ "${daemon_type}" = radosgw ] && [ "${RADOSGW_WANT_NAME_PARAM}" = y ]; then
+		command_args="${command_args} --name client.${daemon_id}"
+	fi
+
+	local arg_name arg_val repl_arg_name
+	for arg_name in stdout stderr respawn_delay respawn_max respawn_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
+			local log_file log_postfix
+			log_postfix=".${daemon_id}-${arg_name}.log"
+			log_file="${arg_val}"
+
+			if [ "${log_file}" != /dev/null ]; then
+				log_file="${log_file}${log_postfix}"
+
+				log_dir="$(dirname "${log_file}")"
+				checkpath -m 0755 -o "${user}:${group}" -d "${log_dir}"
+			fi
+
+			repl_arg_name="$(printf -- "%s\n" "${arg_name}" | tr _ -)"
+			supervise_daemon_args="${supervise_daemon_args} --${repl_arg_name}=${log_file}"
+		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:


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2023-04-11 23:28 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2023-04-11 23:28 UTC (permalink / raw
  To: gentoo-commits

commit:     043478b715372b5abf09a1b992d8ea135f5d3d32
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 11 23:28:39 2023 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Tue Apr 11 23:28:52 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=043478b7

sys-cluster/ceph: drop 15.2.17-r3

Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 sys-cluster/ceph/Manifest                          |   1 -
 sys-cluster/ceph/ceph-15.2.17-r3.ebuild            | 408 ---------------------
 sys-cluster/ceph/files/ceph-13.2.0-cflags.patch    |  26 --
 .../ceph/files/ceph-15.2.0-rocksdb-cmake.patch     |  15 -
 .../ceph/files/ceph-15.2.15-no-virtualenvs.patch   |  73 ----
 .../ceph/files/ceph-15.2.15-snappy-1.1.9.patch     |  14 -
 .../ceph/files/ceph-15.2.2-systemd-unit.patch      |  12 -
 .../ceph/files/ceph-15.2.4-system-uring.patch      |  66 ----
 ...ompile-isal_compress-if-don-t-have-SSE4_1.patch |  22 --
 sys-cluster/ceph/files/ceph.initd-r12              | 115 ------
 10 files changed, 752 deletions(-)

diff --git a/sys-cluster/ceph/Manifest b/sys-cluster/ceph/Manifest
index b998db99a74a..40e9e424d312 100644
--- a/sys-cluster/ceph/Manifest
+++ b/sys-cluster/ceph/Manifest
@@ -1,4 +1,3 @@
-DIST ceph-15.2.17.tar.gz 148640102 BLAKE2B a10dd702ffca005a8741bff645eaf2f671300be969edf9e9e321e29abdc34a403de7c56684fd1509d30c2bd32b996fff3aaa88d1d08c3d258d6f5ef43ecefddf SHA512 952cd4db057fcab5efa3c6331fbc19cf1e904f5855266c2ed13e41ffb2e5a7d18ed133bd113fea493149005a182f429eef39931c4ceac7776aefe84a208a745a
 DIST ceph-16.2.10.tar.gz 157176743 BLAKE2B 065b6f1941f87fde150ab22ba45aa9f58069acf7f33a483456faf0a26e41936846944e800ccd7f99bd8863db8438ae70804621522f75065c0b2506522c4fdd7d SHA512 ae164c24462c3e08763d202acc3e2fe86ffc09f312b5059bae07863e804fc47bd158fc130aa2923246ffcfe26ae6d6d9317326aec96373226e6f9030d7123c8b
 DIST ceph-16.2.11.tar.gz 157171361 BLAKE2B f9b7398da50b9c5a7a553de0d8db5412745d1077310d57ee8682e1302d49bae2b8454326bd27c7781386c8ba267c41e72b0cc5c142839d7288ebd69662679fd4 SHA512 905e36bc08f5cf1af1eca7fb467dd9e946d44f7ed3561c262afa9caeb35443a445a86e0b1f662754727213a4a123bc2a5eb1f080ec6697743d235449d34681fd
 DIST ceph-17.2.5.tar.gz 169004360 BLAKE2B b6d8df5f9b58de5e42fed5d16b1c82d2178297f8bb1b6cf9c42ff55d6a5b2e20fe413feeab038738f62342576ef59fff7091b87648c10cf71401377b0ffa5dc8 SHA512 10cd3d9eb01c91c148a92f1f7d040bbd78af5bb1ab15d071d93f54b37097dc9e1268eed9e788fe32794d137f6af81abd6a2aeaee39cef44d2c45234a15cc6020

diff --git a/sys-cluster/ceph/ceph-15.2.17-r3.ebuild b/sys-cluster/ceph/ceph-15.2.17-r3.ebuild
deleted file mode 100644
index 931743cffc69..000000000000
--- a/sys-cluster/ceph/ceph-15.2.17-r3.ebuild
+++ /dev/null
@@ -1,408 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-PYTHON_COMPAT=( python3_9 )
-CMAKE_MAKEFILE_GENERATOR=emake
-
-DISTUTILS_OPTIONAL=1
-
-inherit check-reqs bash-completion-r1 cmake distutils-r1 flag-o-matic \
-		python-r1 udev readme.gentoo-r1 toolchain-funcs systemd tmpfiles \
-		multiprocessing
-
-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=""
-fi
-
-DESCRIPTION="Ceph distributed filesystem"
-HOMEPAGE="https://ceph.com/"
-
-LICENSE="Apache-2.0 LGPL-2.1 CC-BY-SA-3.0 GPL-2 GPL-2+ LGPL-2+ LGPL-2.1 LGPL-3 GPL-3 BSD Boost-1.0 MIT public-domain"
-SLOT="0"
-
-CPU_FLAGS_X86=(sse{,2,3,4_1,4_2} ssse3)
-
-IUSE="babeltrace +cephfs custom-cflags diskprediction dpdk fuse grafana jemalloc
-	kafka kerberos ldap lttng +mgr numa pmdk rabbitmq +radosgw rbd-rwl +ssl spdk
-	+system-boost systemd +tcmalloc test uring xfs zfs"
-IUSE+=" $(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})"
-
-DEPEND="
-	acct-group/ceph
-	acct-user/ceph
-	virtual/libudev:=
-	app-arch/bzip2:=
-	app-arch/lz4:=
-	app-arch/snappy:=
-	app-arch/zstd:=
-	app-shells/bash:0
-	app-misc/jq:=
-	dev-libs/crypto++:=
-	dev-cpp/gflags:=
-	dev-libs/leveldb:=[snappy,tcmalloc(-)?]
-	dev-libs/libaio:=
-	dev-libs/libfmt:=
-	<dev-libs/libfmt-9:=
-	dev-libs/libnl:3=
-	dev-libs/libxml2:=
-	<dev-libs/rocksdb-6.15:=
-	dev-libs/xmlsec:=[openssl]
-	dev-cpp/yaml-cpp:=
-	dev-libs/nss:=
-	dev-libs/protobuf:=
-	net-dns/c-ares:=
-	net-libs/gnutls:=
-	sys-auth/oath-toolkit:=
-	sys-apps/coreutils
-	sys-apps/grep
-	sys-apps/hwloc:=
-	sys-apps/keyutils:=
-	sys-apps/util-linux:=
-	sys-apps/util-linux
-	sys-libs/libcap-ng:=
-	sys-libs/ncurses:0=
-	sys-libs/zlib:=
-	sys-process/numactl:=
-	virtual/libcrypt:=
-	x11-libs/libpciaccess:=
-	babeltrace? ( dev-util/babeltrace )
-	fuse? ( sys-fs/fuse:0= )
-	jemalloc? ( dev-libs/jemalloc:= )
-	!jemalloc? ( >=dev-util/google-perftools-2.6.1:= )
-	kafka? ( dev-libs/librdkafka:= )
-	kerberos? ( virtual/krb5 )
-	ldap? ( net-nds/openldap:= )
-	lttng? ( dev-util/lttng-ust:= )
-	pmdk? ( dev-libs/pmdk:= )
-	rabbitmq? ( net-libs/rabbitmq-c:= )
-	radosgw? (
-		dev-libs/expat:=
-		dev-libs/openssl:=
-		net-misc/curl:=[curl_ssl_openssl]
-	)
-	rbd-rwl? ( dev-libs/pmdk:= )
-	ssl? ( dev-libs/openssl:= )
-	system-boost? ( dev-libs/boost:=[context,python,${PYTHON_USEDEP}] )
-	!system-boost? ( <sys-libs/glibc-2.34 )
-	uring? ( sys-libs/liburing:= )
-	xfs? ( sys-fs/xfsprogs:= )
-	zfs? ( sys-fs/zfs:= )
-"
-BDEPEND="
-	${PYTHON_DEPS}
-	amd64? ( dev-lang/yasm )
-	x86? ( dev-lang/yasm )
-	app-arch/cpio
-	>=dev-util/cmake-3.5.0
-	dev-python/cython[${PYTHON_USEDEP}]
-	dev-python/setuptools[${PYTHON_USEDEP}]
-	dev-python/sphinx
-	dev-util/cunit
-	dev-util/gperf
-	dev-util/ragel
-	dev-util/valgrind
-	sys-apps/coreutils
-	sys-apps/grep
-	sys-apps/which
-	sys-devel/bc
-	sys-devel/patch
-	virtual/pkgconfig
-	test? (
-		dev-python/coverage[${PYTHON_USEDEP}]
-		dev-python/virtualenv[${PYTHON_USEDEP}]
-		dev-python/requests-mock[${PYTHON_USEDEP}]
-		sys-apps/grep[pcre]
-		sys-fs/btrfs-progs
-	)
-"
-RDEPEND="${DEPEND}
-	${PYTHON_DEPS}
-	app-admin/sudo
-	net-misc/socat
-	sys-apps/gptfdisk
-	sys-apps/nvme-cli
-	>=sys-apps/smartmontools-7.0
-	sys-block/parted
-	sys-fs/cryptsetup
-	sys-fs/lsscsi
-	sys-fs/lvm2[lvm]
-	app-alternatives/awk
-	dev-python/bcrypt[${PYTHON_USEDEP}]
-	dev-python/cherrypy[${PYTHON_USEDEP}]
-	dev-python/python-dateutil[${PYTHON_USEDEP}]
-	dev-python/flask[${PYTHON_USEDEP}]
-	dev-python/jinja[${PYTHON_USEDEP}]
-	dev-python/pecan[${PYTHON_USEDEP}]
-	dev-python/prettytable[${PYTHON_USEDEP}]
-	dev-python/pyopenssl[${PYTHON_USEDEP}]
-	dev-python/requests[${PYTHON_USEDEP}]
-	dev-python/setuptools[${PYTHON_USEDEP}]
-	dev-python/werkzeug[${PYTHON_USEDEP}]
-	mgr? (
-		dev-python/jsonpatch[${PYTHON_USEDEP}]
-		dev-python/more-itertools[${PYTHON_USEDEP}]
-		dev-python/numpy[${PYTHON_USEDEP}]
-		dev-python/pyjwt[${PYTHON_USEDEP}]
-		dev-python/pyyaml[${PYTHON_USEDEP}]
-		dev-python/routes[${PYTHON_USEDEP}]
-		sci-libs/scikit-learn[${PYTHON_USEDEP}]
-		dev-python/six[${PYTHON_USEDEP}]
-	)
-"
-REQUIRED_USE="
-	${PYTHON_REQUIRED_USE}
-	?? ( jemalloc tcmalloc )
-	diskprediction? ( mgr )
-	kafka? ( radosgw )
-	mgr? ( cephfs )
-	rabbitmq? ( radosgw )
-"
-RESTRICT="!test? ( test )"
-
-# the tests need root access
-RESTRICT="test? ( userpriv )"
-
-# distribution tarball does not include everything needed for tests
-RESTRICT+=" test"
-
-# create a non-debug release
-CMAKE_BUILD_TYPE=RelWithDebInfo
-
-# false positives unless all USE flags are on
-CMAKE_WARN_UNUSED_CLI=no
-
-PATCHES=(
-	"${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch"
-	"${FILESDIR}/ceph-14.2.0-cflags.patch"
-	"${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch"
-	"${FILESDIR}/ceph-13.2.0-cflags.patch"
-	"${FILESDIR}/ceph-15.2.15-no-virtualenvs.patch"
-	"${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
-	"${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch"
-	"${FILESDIR}/ceph-14.2.0-cython-0.29.patch"
-	"${FILESDIR}/ceph-15.2.0-rocksdb-cmake.patch"
-	"${FILESDIR}/ceph-15.2.2-systemd-unit.patch"
-	"${FILESDIR}/ceph-15.2.3-spdk-compile.patch"
-	"${FILESDIR}/ceph-15.2.4-system-uring.patch"
-	"${FILESDIR}/ceph-15.2.9-dont-compile-isal_compress-if-don-t-have-SSE4_1.patch"
-	"${FILESDIR}/ceph-15.2.15-snappy-1.1.9.patch"
-)
-
-check-reqs_export_vars() {
-	CHECKREQS_DISK_BUILD="5400M"
-	CHECKREQS_DISK_USR="510M"
-
-	export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR
-}
-
-pkg_pretend() {
-	check-reqs_export_vars
-	check-reqs_pkg_pretend
-}
-
-pkg_setup() {
-	python_setup
-	check-reqs_export_vars
-	check-reqs_pkg_setup
-}
-
-src_prepare() {
-	cmake_src_prepare
-
-	if use system-boost; then
-		find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \
-			| xargs --null sed -r \
-			-e 's|Boost::|boost_|g' \
-			-e 's|Boost_|boost_|g' \
-			-e 's|[Bb]oost_boost|boost_system|g' -i || die
-	fi
-
-	sed -r -e "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \
-		-i src/bash_completion/CMakeLists.txt || die
-
-	sed  -e "s:objdump -p:$(tc-getOBJDUMP) -p:" -i CMakeLists.txt || die
-
-	if ! use diskprediction; then
-		rm -rf src/pybind/mgr/diskprediction_local || die
-	fi
-
-	# remove tests that need root access
-	rm src/test/cli/ceph-authtool/cap*.t || die
-}
-
-ceph_src_configure() {
-	local flag
-	local mycmakeargs=(
-		-DWITH_BABELTRACE=$(usex babeltrace)
-		-DWITH_BLUESTORE_PMEM=$(usex pmdk)
-		-DWITH_CEPHFS=$(usex cephfs)
-		-DWITH_CEPHFS_SHELL=$(usex cephfs)
-		-DWITH_DPDK=$(usex dpdk)
-		-DWITH_SPDK=$(usex spdk)
-		-DWITH_FUSE=$(usex fuse)
-		-DWITH_LTTNG=$(usex lttng)
-		-DWITH_GSSAPI=$(usex kerberos)
-		-DWITH_GRAFANA=$(usex grafana)
-		-DWITH_MGR=$(usex mgr)
-		-DWITH_MGR_DASHBOARD_FRONTEND=OFF
-		-DWITH_NUMA=$(usex numa)
-		-DWITH_OPENLDAP=$(usex ldap)
-		-DWITH_PYTHON3=3
-		-DWITH_RADOSGW=$(usex radosgw)
-		-DWITH_RADOSGW_AMQP_ENDPOINT=$(usex rabbitmq)
-		-DWITH_RADOSGW_KAFKA_ENDPOINT=$(usex kafka)
-		-DWITH_RBD_RWL=$(usex rbd-rwl)
-		-DWITH_SSL=$(usex ssl)
-		-DWITH_SYSTEMD=$(usex systemd)
-		-DWITH_TESTS=$(usex test)
-		-DWITH_LIBURING=$(usex uring)
-		-DWITH_XFS=$(usex xfs)
-		-DWITH_ZFS=$(usex zfs)
-		-DENABLE_SHARED="ON"
-		-DALLOCATOR=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')")
-		-DWITH_SYSTEM_PMDK=$(usex pmdk 'YES' "$(usex rbd-rwl)")
-		-DWITH_SYSTEM_BOOST=$(usex system-boost)
-		-DBOOST_J=$(makeopts_jobs)
-		-DWITH_SYSTEM_ROCKSDB=ON
-		-DWITH_RDMA=OFF
-		-DWITH_TBB=OFF
-		-DSYSTEMD_UNITDIR=$(systemd_get_systemunitdir)
-		-DCMAKE_INSTALL_SYSTEMD_SERVICEDIR=$(systemd_get_systemunitdir)
-		-DEPYTHON_VERSION="${EPYTHON#python}"
-		-DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PN}-${PVR}"
-		-DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
-		-Wno-dev
-	)
-	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
-
-	# needed for >=glibc-2.32
-	has_version '>=sys-libs/glibc-2.32' && mycmakeargs+=(-DWITH_REENTRANT_STRSIGNAL:BOOL=ON)
-
-	rm -f "${BUILD_DIR:-${S}}/CMakeCache.txt" \
-		|| die "failed to remove cmake cache"
-
-	cmake_src_configure
-
-	# bug #630232
-	sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \
-		"${BUILD_DIR:-${S}}"/include/acconfig.h \
-		|| die "sed failed"
-}
-
-src_configure() {
-	use custom-cflags || strip-flags
-	ceph_src_configure
-}
-
-python_compile() {
-	local CMAKE_USE_DIR="${S}"
-	ceph_src_configure
-
-	pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
-	emake VERBOSE=1 clean
-	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_build VERBOSE=1 all
-
-	# we have to do this here to prevent from building everything multiple times
-	python_copy_sources
-	distutils-r1_src_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="${ED}" emake VERBOSE=1 install
-	popd >/dev/null || die
-
-	python_optimize
-}
-
-src_install() {
-	cmake_src_install
-	distutils-r1_src_install
-
-	find "${ED}" -name '*.la' -type f -delete || die
-
-	exeinto /usr/$(get_libdir)/ceph
-	newexe "${BUILD_DIR}/bin/init-ceph" init-ceph
-
-	insinto /etc/logrotate.d/
-	newins "${FILESDIR}"/ceph.logrotate-r2 ${PN}
-
-	keepdir /var/lib/${PN}{,/tmp} /var/log/ceph/stat /var/log/ceph/console
-
-	fowners -R ceph:ceph /var/log/ceph
-
-	newinitd "${FILESDIR}/rbdmap.initd-r1" rbdmap
-	newinitd "${FILESDIR}/${PN}.initd-r13" ${PN}
-	newconfd "${FILESDIR}/${PN}.confd-r5" ${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
-	newtmpfiles "${FILESDIR}"/ceph-tmpfilesd ${PN}.conf
-
-	readme.gentoo_create_doc
-
-	python_setup
-
-	# bug #630232
-	sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \
-		|| die "sed failed"
-
-	python_fix_shebang "${ED}"/usr/{,s}bin/
-
-	# python_fix_shebang apparently is not idempotent
-	local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]'
-	grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \
-		| xargs --null --no-run-if-empty -- sed -i -r  "s:${shebang_regex}:\1:" || die
-
-	local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* )
-	dostrip -x "${rados_classes[@]#${ED}}"
-}
-
-pkg_postinst() {
-	readme.gentoo_print_elog
-	tmpfiles_process ${PN}.conf
-	udev_reload
-}
-
-pkg_postrm() {
-	udev_reload
-}

diff --git a/sys-cluster/ceph/files/ceph-13.2.0-cflags.patch b/sys-cluster/ceph/files/ceph-13.2.0-cflags.patch
deleted file mode 100644
index b275a177da35..000000000000
--- a/sys-cluster/ceph/files/ceph-13.2.0-cflags.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-diff --git a/cmake/modules/BuildBoost.cmake b/cmake/modules/BuildBoost.cmake
-index d6572115a4..cc0bdddc9f 100644
---- a/cmake/modules/BuildBoost.cmake
-+++ b/cmake/modules/BuildBoost.cmake
-@@ -62,7 +62,7 @@ function(do_build_boost version)
-   else()
-     list(APPEND boost_features "address-model=32")
-   endif()
--  set(BOOST_CXXFLAGS "-fPIC -w") # check on arm, etc <---XXX
-+  set(BOOST_CXXFLAGS "${CMAKE_CXX_FLAGS} -fPIC -w") # check on arm, etc <---XXX
-   list(APPEND boost_features "cxxflags=${BOOST_CXXFLAGS}")
- 
-   list(FIND Boost_BUILD_COMPONENTS "python" with_python)
-diff --git a/src/compressor/zstd/CMakeLists.txt b/src/compressor/zstd/CMakeLists.txt
-index 5a80aa539c..8d6ff5c8f0 100644
---- a/src/compressor/zstd/CMakeLists.txt
-+++ b/src/compressor/zstd/CMakeLists.txt
-@@ -1,7 +1,7 @@
- # zstd
- 
- # libzstd - build it statically
--set(ZSTD_C_FLAGS "-fPIC -Wno-unused-variable -O3")
-+set(ZSTD_C_FLAGS "-fPIC -Wno-unused-variable $ENV{CFLAGS} -O3")
- 
- include(ExternalProject)
- ExternalProject_Add(zstd_ext

diff --git a/sys-cluster/ceph/files/ceph-15.2.0-rocksdb-cmake.patch b/sys-cluster/ceph/files/ceph-15.2.0-rocksdb-cmake.patch
deleted file mode 100644
index 9b3d34858e76..000000000000
--- a/sys-cluster/ceph/files/ceph-15.2.0-rocksdb-cmake.patch
+++ /dev/null
@@ -1,15 +0,0 @@
-diff --git a/cmake/modules/BuildRocksDB.cmake b/cmake/modules/BuildRocksDB.cmake
-index de9748878b..4b86b36d35 100644
---- a/cmake/modules/BuildRocksDB.cmake
-+++ b/cmake/modules/BuildRocksDB.cmake
-@@ -6,10 +6,6 @@ function(build_rocksdb)
-   # CMAKE_PREFIX_PATH, for which reason we'll have to use some other separator.
-   string(REPLACE ";" "!" CMAKE_PREFIX_PATH_ALT_SEP "${CMAKE_PREFIX_PATH}")
-   list(APPEND rocksdb_CMAKE_ARGS -DCMAKE_PREFIX_PATH=${CMAKE_PREFIX_PATH_ALT_SEP})
--  if(CMAKE_TOOLCHAIN_FILE)
--    list(APPEND rocksdb_CMAKE_ARGS
--         -DCMAKE_TOOLCHAIN_FILE=$CMAKE_TOOLCHAIN_FILE)
--  endif()
- 
-   if(ALLOCATOR STREQUAL "jemalloc")
-     list(APPEND rocksdb_CMAKE_ARGS -DWITH_JEMALLOC=ON)

diff --git a/sys-cluster/ceph/files/ceph-15.2.15-no-virtualenvs.patch b/sys-cluster/ceph/files/ceph-15.2.15-no-virtualenvs.patch
deleted file mode 100644
index 5ef7fb3a73e1..000000000000
--- a/sys-cluster/ceph/files/ceph-15.2.15-no-virtualenvs.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-diff --git a/cmake/modules/AddCephTest.cmake b/cmake/modules/AddCephTest.cmake
-index c9ee8c1b8f6..09f75543da2 100644
---- a/cmake/modules/AddCephTest.cmake
-+++ b/cmake/modules/AddCephTest.cmake
-@@ -68,14 +68,6 @@ function(add_tox_test name)
-   endif()
-   string(REPLACE ";" "," tox_envs "${tox_envs}")
-   find_package(Python3 QUIET REQUIRED)
--  add_custom_command(
--    OUTPUT ${venv_path}/bin/activate
--    COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python="${Python3_EXECUTABLE}" ${venv_path}
--    WORKING_DIRECTORY ${tox_path}
--    COMMENT "preparing venv for ${name}")
--  add_custom_target(${name}-venv
--    DEPENDS ${venv_path}/bin/activate)
--  add_dependencies(tests ${name}-venv)
-   add_test(
-     NAME ${test_name}
-     COMMAND ${CMAKE_SOURCE_DIR}/src/script/run_tox.sh
-diff --git a/src/ceph-volume/CMakeLists.txt b/src/ceph-volume/CMakeLists.txt
-index 9166553dc73..9a6c87595b9 100644
---- a/src/ceph-volume/CMakeLists.txt
-+++ b/src/ceph-volume/CMakeLists.txt
-@@ -8,22 +8,6 @@ if(FREEBSD)
-   add_subdirectory(plugin/zfs)
- endif()
- 
--# Required for running ceph-volume inventory in a vstart environment
--set(CEPH_VOLUME_VIRTUALENV ${CEPH_BUILD_VIRTUALENV}/ceph-volume-virtualenv)
--
--add_custom_command(
--  OUTPUT ${CEPH_VOLUME_VIRTUALENV}/bin/python
--  COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${Python3_EXECUTABLE} ${CEPH_VOLUME_VIRTUALENV}
--  WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/ceph-volume
--  COMMENT "ceph-volume venv is being created")
--
--add_custom_command(
--  OUTPUT ${CEPH_VOLUME_VIRTUALENV}/bin/ceph-volume
--  DEPENDS ${CEPH_VOLUME_VIRTUALENV}/bin/python
--  COMMAND . ${CEPH_VOLUME_VIRTUALENV}/bin/activate && ${CEPH_VOLUME_VIRTUALENV}/bin/python setup.py develop && deactivate
--  WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/src/ceph-volume
--  COMMENT "${CMAKE_SOURCE_DIR}/src/ceph-volume")
--
- add_custom_target(ceph-volume-venv-setup
-   DEPENDS ${CEPH_VOLUME_VIRTUALENV}/bin/ceph-volume)
- 
-diff --git a/src/pybind/mgr/dashboard/CMakeLists.txt b/src/pybind/mgr/dashboard/CMakeLists.txt
-index 92e4cdc538b..3153c93c459 100644
---- a/src/pybind/mgr/dashboard/CMakeLists.txt
-+++ b/src/pybind/mgr/dashboard/CMakeLists.txt
-@@ -5,9 +5,6 @@ function(add_npm_command)
-   set(multi_kw COMMAND DEPENDS)
-   cmake_parse_arguments(NC "${options}" "${single_kw}" "${multi_kw}" ${ARGN})
-   string(REPLACE ";" " " command "${NC_COMMAND}")
--  if(NC_NODEENV)
--    string(REGEX REPLACE "^(.*(npm|npx) .*)$" ". ${mgr-dashboard-nodeenv-dir}/bin/activate && \\1 && deactivate" command ${command})
--  endif()
-   string(REPLACE " " ";" command "${command}")
-   add_custom_command(
-     OUTPUT "${NC_OUTPUT}"
-@@ -29,10 +26,8 @@ else()
-   set(nodeenv NODEENV)
- 
-   add_custom_command(
--    OUTPUT "${mgr-dashboard-nodeenv-dir}/bin/npm"
--    COMMAND ${CMAKE_SOURCE_DIR}/src/tools/setup-virtualenv.sh --python=${MGR_PYTHON_EXECUTABLE} ${mgr-dashboard-nodeenv-dir}
--    COMMAND ${mgr-dashboard-nodeenv-dir}/bin/pip install nodeenv
--    COMMAND ${mgr-dashboard-nodeenv-dir}/bin/nodeenv --verbose -p --node=10.18.1
-+    OUTPUT "npm"
-+    COMMAND nodeenv --verbose -p --node=10.18.1
-     WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
-     COMMENT "dashboard nodeenv is being installed"
-   )

diff --git a/sys-cluster/ceph/files/ceph-15.2.15-snappy-1.1.9.patch b/sys-cluster/ceph/files/ceph-15.2.15-snappy-1.1.9.patch
deleted file mode 100644
index 3319f3989ff9..000000000000
--- a/sys-cluster/ceph/files/ceph-15.2.15-snappy-1.1.9.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-diff --git a/src/compressor/snappy/SnappyCompressor.h b/src/compressor/snappy/SnappyCompressor.h
-index 25393f8dc1ff4..93206c4007bed 100644
---- a/src/compressor/snappy/SnappyCompressor.h
-+++ b/src/compressor/snappy/SnappyCompressor.h
-@@ -97,8 +97,8 @@ class SnappyCompressor : public Compressor {
-     if (qat_enabled)
-       return qat_accel.decompress(p, compressed_len, dst, compressor_message);
- #endif
--    snappy::uint32 res_len = 0;
-     BufferlistSource source_1(p, compressed_len);
-+    uint32_t res_len = 0;
-     if (!snappy::GetUncompressedLength(&source_1, &res_len)) {
-       return -1;
-     }

diff --git a/sys-cluster/ceph/files/ceph-15.2.2-systemd-unit.patch b/sys-cluster/ceph/files/ceph-15.2.2-systemd-unit.patch
deleted file mode 100644
index fdd3a6ac2ac7..000000000000
--- a/sys-cluster/ceph/files/ceph-15.2.2-systemd-unit.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff -ur ceph-15.2.2/systemd/ceph-osd@.service.in ceph-15.2.2.af/systemd/ceph-osd@.service.in
---- ceph-15.2.2/systemd/ceph-osd@.service.in    2020-05-18 16:25:12.000000000 +0000
-+++ ceph-15.2.2.af/systemd/ceph-osd@.service.in 2020-05-21 21:20:58.318655944 +0000
-@@ -10,7 +10,7 @@
- EnvironmentFile=-@SYSTEMD_ENV_FILE@
- Environment=CLUSTER=ceph
- ExecStart=/usr/bin/ceph-osd -f --cluster ${CLUSTER} --id %i --setuser ceph --setgroup ceph
--ExecStartPre=/usr/lib/ceph/ceph-osd-prestart.sh --cluster ${CLUSTER} --id %i
-+ExecStartPre=/usr/libexec/ceph/ceph-osd-prestart.sh --cluster ${CLUSTER} --id %i
- ExecReload=/bin/kill -HUP $MAINPID
- LockPersonality=true
- MemoryDenyWriteExecute=true

diff --git a/sys-cluster/ceph/files/ceph-15.2.4-system-uring.patch b/sys-cluster/ceph/files/ceph-15.2.4-system-uring.patch
deleted file mode 100644
index 64df81bf97b5..000000000000
--- a/sys-cluster/ceph/files/ceph-15.2.4-system-uring.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-diff --git a/src/os/CMakeLists.txt b/src/os/CMakeLists.txt
-index 760244b9b4..7f83923671 100644
---- a/src/os/CMakeLists.txt
-+++ b/src/os/CMakeLists.txt
-@@ -134,27 +134,6 @@ if(WITH_EVENTTRACE)
- endif()
- 
- if(WITH_LIBURING)
--  include(ExternalProject)
--  if("${CMAKE_GENERATOR}" MATCHES "Make")
--    set(make_cmd "$(MAKE)")
--  else()
--    set(make_cmd "make")
--  endif()
--  ExternalProject_Add(liburing_ext
--    DOWNLOAD_DIR ${CMAKE_BINARY_DIR}/src/
--    GIT_REPOSITORY http://git.kernel.dk/liburing
--    GIT_TAG "4e360f71131918c36774f51688e5c65dea8d43f2"
--    SOURCE_DIR ${CMAKE_BINARY_DIR}/src/liburing
--    CONFIGURE_COMMAND <SOURCE_DIR>/configure
--    BUILD_COMMAND env CC=${CMAKE_C_COMPILER} ${make_cmd} -C src -s
--    BUILD_IN_SOURCE 1
--    INSTALL_COMMAND "")
--  unset(make_cmd)
--  add_library(liburing STATIC IMPORTED GLOBAL)
--  add_dependencies(liburing liburing_ext)
--  set_target_properties(liburing PROPERTIES
--    IMPORTED_LINK_INTERFACE_LANGUAGES "C"
--    IMPORTED_LOCATION "${CMAKE_BINARY_DIR}/src/liburing/src/liburing.a")
--  target_link_libraries(os liburing)
--  target_include_directories(os SYSTEM PRIVATE "${CMAKE_BINARY_DIR}/src/liburing/src/include")
-+  pkg_check_modules(LIBURING REQUIRED IMPORTED_TARGET liburing)
-+  target_link_libraries(os uring)
- endif(WITH_LIBURING)
-diff --git a/src/os/bluestore/io_uring.cc b/src/os/bluestore/io_uring.cc
-index 54fa0f9535..4ba83cf172 100644
---- a/src/os/bluestore/io_uring.cc
-+++ b/src/os/bluestore/io_uring.cc
-@@ -7,6 +7,8 @@
- 
- #include "liburing.h"
- #include <sys/epoll.h>
-+#include <unistd.h>
-+#include <sys/syscall.h>
- 
- /* Options */
- 
-@@ -134,8 +136,7 @@ int ioring_queue_t::init(std::vector<int> &fds)
-   if (ret < 0)
-     return ret;
- 
--  ret = io_uring_register(d->io_uring.ring_fd, IORING_REGISTER_FILES,
--			  &fds[0], fds.size());
-+  ret = io_uring_register_files(&d->io_uring, &fds[0], fds.size());
-   if (ret < 0) {
-     ret = -errno;
-     goto close_ring_fd;
-@@ -214,7 +215,7 @@ bool ioring_queue_t::supported()
-   struct io_uring_params p;
- 
-   memset(&p, 0, sizeof(p));
--  int fd = io_uring_setup(16, &p);
-+  int fd = syscall(SYS_io_uring_setup, 16, &p);
-   if (fd < 0)
-     return false;
- 

diff --git a/sys-cluster/ceph/files/ceph-15.2.9-dont-compile-isal_compress-if-don-t-have-SSE4_1.patch b/sys-cluster/ceph/files/ceph-15.2.9-dont-compile-isal_compress-if-don-t-have-SSE4_1.patch
deleted file mode 100644
index e9439a630185..000000000000
--- a/sys-cluster/ceph/files/ceph-15.2.9-dont-compile-isal_compress-if-don-t-have-SSE4_1.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/src/compressor/zlib/ZlibCompressor.cc b/src/compressor/zlib/ZlibCompressor.cc
-index e3064d2a21..c86b19da6c 100644
---- a/src/compressor/zlib/ZlibCompressor.cc
-+++ b/src/compressor/zlib/ZlibCompressor.cc
-@@ -107,7 +107,7 @@ int ZlibCompressor::zlib_compress(const bufferlist &in, bufferlist &out)
-   return 0;
- }
- 
--#if __x86_64__ && defined(HAVE_BETTER_YASM_ELF64)
-+#if __x86_64__ && defined(HAVE_BETTER_YASM_ELF64) && defined(HAVE_INTEL_SSE4_1)
- int ZlibCompressor::isal_compress(const bufferlist &in, bufferlist &out)
- {
-   int ret;
-@@ -167,7 +167,7 @@ int ZlibCompressor::compress(const bufferlist &in, bufferlist &out)
-   if (qat_enabled)
-     return qat_accel.compress(in, out);
- #endif
--#if __x86_64__ && defined(HAVE_BETTER_YASM_ELF64)
-+#if __x86_64__ && defined(HAVE_BETTER_YASM_ELF64) && defined(HAVE_INTEL_SSE4_1)
-   if (isal_enabled)
-     return isal_compress(in, out);
-   else

diff --git a/sys-cluster/ceph/files/ceph.initd-r12 b/sys-cluster/ceph/files/ceph.initd-r12
deleted file mode 100644
index 4a90e3c3f984..000000000000
--- a/sys-cluster/ceph/files/ceph.initd-r12
+++ /dev/null
@@ -1,115 +0,0 @@
-#!/sbin/openrc-run
-
-# make sure /etc/conf.d/ceph gets loaded for ceph-mon etc
-_CONFD_FILE="${RC_SERVICE%/*}/../conf.d/${RC_SVCNAME%-*}"
-if [ -r "${_CONFD_FILE}" ]; then
-	. "${_CONFD_FILE}" || exit 1
-fi
-
-: "${ceph_conf:=/etc/ceph/ceph.conf}"
-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}"
-extra_commands="${extra_commands} reload"
-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() {
-	local log_dir
-	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
-
-	if [ -n "${bluestore_osd_fsid}" ]; then
-		einfo "Mounting Bluestore"
-		ceph-volume lvm activate "${daemon_id}" "${bluestore_osd_fsid}" --no-systemd
-	fi
-
-	if [ "${daemon_type}" = radosgw ] && [ "${RADOSGW_WANT_NAME_PARAM}" = y ]; then
-		command_args="${command_args} --name client.${daemon_id}"
-	fi
-
-	local arg_name arg_val repl_arg_name
-	for arg_name in stdout stderr respawn_delay respawn_max respawn_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
-			local log_file log_postfix
-			log_postfix=".${daemon_id}-${arg_name}.log"
-			log_file="${arg_val}"
-
-			if [ "${log_file}" != /dev/null ]; then
-				log_file="${log_file}${log_postfix}"
-
-				log_dir="$(dirname "${log_file}")"
-				checkpath -m 0755 -o "${user}:${group}" -d "${log_dir}"
-			fi
-
-			repl_arg_name="$(printf -- "%s\n" "${arg_name}" | tr _ -)"
-			supervise_daemon_args="${supervise_daemon_args} --${repl_arg_name}=${log_file}"
-		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:


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2023-04-18  8:46 Sam James
  0 siblings, 0 replies; 48+ messages in thread
From: Sam James @ 2023-04-18  8:46 UTC (permalink / raw
  To: gentoo-commits

commit:     fe44cb66634c6a364804f0f1c7c94a773cea96f9
Author:     Sam James <sam <AT> gentoo <DOT> org>
AuthorDate: Tue Apr 18 08:46:06 2023 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Tue Apr 18 08:46:40 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fe44cb66

sys-cluster/ceph: fix build w/ gcc 13

Closes: https://bugs.gentoo.org/892501
Signed-off-by: Sam James <sam <AT> gentoo.org>

 sys-cluster/ceph/ceph-17.2.5-r3.ebuild             |  1 +
 sys-cluster/ceph/ceph-17.2.6.ebuild                |  1 +
 .../ceph/files/ceph-17.2.5-gcc13-deux.patch        | 94 ++++++++++++++++++++++
 3 files changed, 96 insertions(+)

diff --git a/sys-cluster/ceph/ceph-17.2.5-r3.ebuild b/sys-cluster/ceph/ceph-17.2.5-r3.ebuild
index 2221ccb8e94e..29bdfc8cecf8 100644
--- a/sys-cluster/ceph/ceph-17.2.5-r3.ebuild
+++ b/sys-cluster/ceph/ceph-17.2.5-r3.ebuild
@@ -221,6 +221,7 @@ PATCHES=(
 	# https://bugs.gentoo.org/866165
 	"${FILESDIR}/ceph-17.2.5-suppress-cmake-warning.patch"
 	"${FILESDIR}/ceph-17.2.5-gcc13.patch"
+	"${FILESDIR}/ceph-17.2.5-gcc13-deux.patch"
 	"${FILESDIR}/ceph-17.2.5-boost-1.81.patch"
 	# https://bugs.gentoo.org/901403
 	"${FILESDIR}/ceph-17.2.5-link-boost-context.patch"

diff --git a/sys-cluster/ceph/ceph-17.2.6.ebuild b/sys-cluster/ceph/ceph-17.2.6.ebuild
index aa370edc1017..90bd3470f2ff 100644
--- a/sys-cluster/ceph/ceph-17.2.6.ebuild
+++ b/sys-cluster/ceph/ceph-17.2.6.ebuild
@@ -220,6 +220,7 @@ PATCHES=(
 	"${FILESDIR}/ceph-17.2.4-cyclic-deps.patch"
 	# https://bugs.gentoo.org/866165
 	"${FILESDIR}/ceph-17.2.5-suppress-cmake-warning.patch"
+	"${FILESDIR}/ceph-17.2.5-gcc13-deux.patch"
 	"${FILESDIR}/ceph-17.2.5-boost-1.81.patch"
 	# https://bugs.gentoo.org/901403
 	"${FILESDIR}/ceph-17.2.6-link-boost-context.patch"

diff --git a/sys-cluster/ceph/files/ceph-17.2.5-gcc13-deux.patch b/sys-cluster/ceph/files/ceph-17.2.5-gcc13-deux.patch
new file mode 100644
index 000000000000..1bfe7fdbf52f
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-17.2.5-gcc13-deux.patch
@@ -0,0 +1,94 @@
+https://bugs.gentoo.org/892501
+https://src.fedoraproject.org/rpms/ceph/c/945dc70d291321704f3218faa7c3efe70687ce27?branch=rawhide
+--- a/src/common/subsys_types.h
++++ b/src/common/subsys_types.h
+@@ -53,7 +53,7 @@
+ #undef DEFAULT_SUBSYS
+ }
+ 
+-constexpr static std::uint8_t
++constexpr static uint8_t
+ ceph_subsys_get_max_default_level(const std::size_t subidx) {
+   const auto item = ceph_subsys_get_as_array()[subidx];
+   return std::max(item.log_level, item.gather_level);
+--- a/src/msg/async/compression_onwire.h
++++ b/src/msg/async/compression_onwire.h
+@@ -44,7 +44,7 @@
+ 
+   class TxHandler final : private Handler {
+   public:
+-    TxHandler(CephContext* const cct, CompressorRef compressor, int mode, std::uint64_t min_size)
++    TxHandler(CephContext* const cct, CompressorRef compressor, int mode, uint64_t min_size)
+       : Handler(cct, compressor),
+ 	m_min_size(min_size),
+ 	m_mode(static_cast<Compressor::CompressionMode>(mode))
+@@ -97,7 +97,7 @@
+     static rxtx_t create_handler_pair(
+       CephContext* ctx,
+       const CompConnectionMeta& comp_meta,
+-      std::uint64_t compress_min_size);
++      uint64_t compress_min_size);
+   };
+ }
+ 
+--- a/src/msg/async/crypto_onwire.h
++++ b/src/msg/async/crypto_onwire.h
+@@ -95,7 +95,7 @@
+   // Transmitter can append extra bytes of ciphertext at the -final step.
+   // This method return how much was added, and thus let client translate
+   // plaintext size into ciphertext size to grab from wire.
+-  virtual std::uint32_t get_extra_size_at_final() = 0;
++  virtual uint32_t get_extra_size_at_final() = 0;
+ 
+   // Instance of RxHandler must be reset before doing any decrypt-update
+   // step. This applies also to situation when decrypt-final was already
+--- a/src/common/Cycles.h
++++ b/src/common/Cycles.h
+@@ -29,8 +29,9 @@
+  */
+ 
+ 
+-#ifndef CEPH_CYCLES_H
+-#define CEPH_CYCLES_H
++#pragma once
++
++#include <cstdint>
+ 
+ /**
+  * This class provides static methods that read the fine-grain CPU
+@@ -112,4 +113,3 @@
+   }
+ };
+ 
+-#endif  // CEPH_CYCLES_H
+--- a/src/test/librados/op_speed.cc
++++ b/src/test/librados/op_speed.cc
+@@ -9,7 +9,7 @@
+   for (int i = 0; i < to_create; ++i) {
+     librados::ObjectReadOperation op;
+     bufferlist bl;
+-    std::uint64_t sz;
++    uint64_t sz;
+     struct timespec tm;
+     std::map<std::string, ceph::buffer::list> xattrs;
+     std::map<std::string, ceph::buffer::list> omap;
+--- a/src/test/mon/test_log_rss_usage.cc
++++ b/src/test/mon/test_log_rss_usage.cc
+@@ -5,6 +5,7 @@
+ #include <string>
+ #include <iostream>
+ #include <fstream>
++#include <cstdint>
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <unistd.h>
+--- a/src/librbd/api/PoolMetadata.h
++++ b/src/librbd/api/PoolMetadata.h
+@@ -9,6 +9,7 @@
+ 
+ #include <map>
+ #include <string>
++#include <cstdint>
+ 
+ namespace librbd {
+ 


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2023-05-09 17:49 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2023-05-09 17:49 UTC (permalink / raw
  To: gentoo-commits

commit:     81a5985a7fdb2fcb371406bc0269de2685a119cf
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Tue May  9 17:48:16 2023 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Tue May  9 17:49:04 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=81a5985a

sys-cluster/ceph: Revbump, fix radosgw in init script (bug #905870)

Closes: https://bugs.gentoo.org/905870
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 ...ceph-17.2.5-r4.ebuild => ceph-17.2.5-r6.ebuild} |   2 +-
 ...ceph-17.2.6-r1.ebuild => ceph-17.2.6-r2.ebuild} |   2 +-
 sys-cluster/ceph/files/ceph.initd-r14              | 119 +++++++++++++++++++++
 3 files changed, 121 insertions(+), 2 deletions(-)

diff --git a/sys-cluster/ceph/ceph-17.2.5-r4.ebuild b/sys-cluster/ceph/ceph-17.2.5-r6.ebuild
similarity index 99%
rename from sys-cluster/ceph/ceph-17.2.5-r4.ebuild
rename to sys-cluster/ceph/ceph-17.2.5-r6.ebuild
index e4046b3b5701..95be155b4526 100644
--- a/sys-cluster/ceph/ceph-17.2.5-r4.ebuild
+++ b/sys-cluster/ceph/ceph-17.2.5-r6.ebuild
@@ -424,7 +424,7 @@ src_install() {
 	fowners -R ceph:ceph /var/log/ceph
 
 	newinitd "${FILESDIR}/rbdmap.initd-r1" rbdmap
-	newinitd "${FILESDIR}/${PN}.initd-r13" ${PN}
+	newinitd "${FILESDIR}/${PN}.initd-r14" ${PN}
 	newconfd "${FILESDIR}/${PN}.confd-r5" ${PN}
 
 	insinto /etc/sudoers.d

diff --git a/sys-cluster/ceph/ceph-17.2.6-r1.ebuild b/sys-cluster/ceph/ceph-17.2.6-r2.ebuild
similarity index 99%
rename from sys-cluster/ceph/ceph-17.2.6-r1.ebuild
rename to sys-cluster/ceph/ceph-17.2.6-r2.ebuild
index 90bd3470f2ff..a28df53b6173 100644
--- a/sys-cluster/ceph/ceph-17.2.6-r1.ebuild
+++ b/sys-cluster/ceph/ceph-17.2.6-r2.ebuild
@@ -424,7 +424,7 @@ src_install() {
 	fowners -R ceph:ceph /var/log/ceph
 
 	newinitd "${FILESDIR}/rbdmap.initd-r1" rbdmap
-	newinitd "${FILESDIR}/${PN}.initd-r13" ${PN}
+	newinitd "${FILESDIR}/${PN}.initd-r14" ${PN}
 	newconfd "${FILESDIR}/${PN}.confd-r5" ${PN}
 
 	insinto /etc/sudoers.d

diff --git a/sys-cluster/ceph/files/ceph.initd-r14 b/sys-cluster/ceph/files/ceph.initd-r14
new file mode 100644
index 000000000000..04002703d9e7
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph.initd-r14
@@ -0,0 +1,119 @@
+#!/sbin/openrc-run
+
+# make sure /etc/conf.d/ceph gets loaded for ceph-mon etc
+_CONFD_FILE="${RC_SERVICE%/*}/../conf.d/${RC_SVCNAME%-*}"
+if [ -r "${_CONFD_FILE}" ]; then
+	. "${_CONFD_FILE}" || exit 1
+fi
+
+: "${ceph_conf:=/etc/ceph/ceph.conf}"
+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}"
+extra_commands="${extra_commands} reload"
+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/console/ceph}"
+: "${stderr:=/var/log/ceph/console/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() {
+	local log_dir
+	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
+
+	if [ -n "${bluestore_osd_fsid}" ]; then
+		einfo "Mounting Bluestore"
+		ceph-volume lvm activate "${daemon_id}" "${bluestore_osd_fsid}" --no-systemd
+	fi
+
+	if [ "${daemon_type}" = radosgw ]; then
+		command="/usr/bin/radosgw"
+
+		if [ "${RADOSGW_WANT_NAME_PARAM}" = y ]; then
+			command_args="${command_args} --name client.${daemon_id}"
+		fi
+	fi
+
+	local arg_name arg_val repl_arg_name
+	for arg_name in stdout stderr respawn_delay respawn_max respawn_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
+			local log_file log_postfix
+			log_postfix=".${daemon_id}-${arg_name}.log"
+			log_file="${arg_val}"
+
+			if [ "${log_file}" != /dev/null ]; then
+				log_file="${log_file}${log_postfix}"
+
+				log_dir="$(dirname "${log_file}")"
+				checkpath -m 0755 -o "${user}:${group}" -d "${log_dir}"
+			fi
+
+			repl_arg_name="$(printf -- "%s\n" "${arg_name}" | tr _ -)"
+			supervise_daemon_args="${supervise_daemon_args} --${repl_arg_name}=${log_file}"
+		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:


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2023-08-10 21:02 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2023-08-10 21:02 UTC (permalink / raw
  To: gentoo-commits

commit:     dbcb83cdbeccd5f4f9ef409052bdb616b9ab6b1d
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 10 17:36:42 2023 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Thu Aug 10 21:02:24 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dbcb83cd

sys-cluster/ceph: add 18.2.0

Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 sys-cluster/ceph/Manifest                          |   2 +
 sys-cluster/ceph/ceph-18.2.0.ebuild                | 481 +++++++++++++++++++++
 .../ceph/files/ceph-18.2.0-cyclic-deps.patch       |  13 +
 .../files/ceph-18.2.0-system-opentelemetry.patch   |  19 +
 4 files changed, 515 insertions(+)

diff --git a/sys-cluster/ceph/Manifest b/sys-cluster/ceph/Manifest
index c6a19a4f4244..f4f3aab3b39d 100644
--- a/sys-cluster/ceph/Manifest
+++ b/sys-cluster/ceph/Manifest
@@ -1,3 +1,5 @@
 DIST ceph-16.2.13.tar.gz 157213576 BLAKE2B cc319ff67f6320c101341d7bbca0d49630fd6d4a5ed48b34e73a9e780ddf934adc35e3ff09e32115fe4b9a853bff9a85ca2c1e5e62d5596251d2dae535726a28 SHA512 39ec2bed1de0276f08bf93241f9fb275893041fd5f20ade75e68728107011ae5d01aed532d5afd8805951d09061a5a3d96c4311701c8897a29668f77126c19ab
 DIST ceph-17.2.6.tar.gz 168093221 BLAKE2B f79efce9bd7f485b43ae1b4da94a1d9fb3753003f34535e93c80e480ffeaaf054d371f75bca72402da5f9dd460aafa820bb2af550d213bdbcca74aa939180431 SHA512 dca9aea2ce210c15fcc34cb06a5dc5b4488ffa36d684166d47ebd87e48b54b6fee0882e1c67007a780e1c25754e9bc6e760cc10f60ea1183263f8504ef2dbd9b
+DIST ceph-18.2.0.tar.gz 197353856 BLAKE2B 0f2217d9ec4105f72b7b48f7981c5cc098e8f6d46b029acaae1aa91d71486e7dc5726cad0763b5bb0f79d006e289a9f590c95f2494c17f2f09fb492c06db455a SHA512 fe6a3ca4227cc05b5effc33a02670c466583ec9e4c7c025241248223992254e6e6551d7db486d5ead36bf0ba922d54e0aabc2aaf456d4593679376ec88bd971a
 DIST ceph-xsimd-17.2.6.tar.gz 173025 BLAKE2B 54679c24804c195ae55b9f49589e331dde92c6d89aaa20e827539e9a4e0010c7549cdd5cf02a7ebed83f953ab2a6f1d9cc9a98cf45c3dc7758ae4938c9c43713 SHA512 ecc58e7909648aaa22aefbf76ee2c5a2bece4b1b88da9c7eda1b69a46247e619ff99c4366afd6015f95debd68c1a6b89292c677b9049462d0fc0255fbc0c2a33
+DIST ceph-xsimd-18.2.0.tar.gz 173025 BLAKE2B 54679c24804c195ae55b9f49589e331dde92c6d89aaa20e827539e9a4e0010c7549cdd5cf02a7ebed83f953ab2a6f1d9cc9a98cf45c3dc7758ae4938c9c43713 SHA512 ecc58e7909648aaa22aefbf76ee2c5a2bece4b1b88da9c7eda1b69a46247e619ff99c4366afd6015f95debd68c1a6b89292c677b9049462d0fc0255fbc0c2a33

diff --git a/sys-cluster/ceph/ceph-18.2.0.ebuild b/sys-cluster/ceph/ceph-18.2.0.ebuild
new file mode 100644
index 000000000000..ca91f209f974
--- /dev/null
+++ b/sys-cluster/ceph/ceph-18.2.0.ebuild
@@ -0,0 +1,481 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{10..11} )
+LUA_COMPAT=( lua5-{3..4} )
+
+inherit check-reqs bash-completion-r1 cmake flag-o-matic lua-single \
+		python-r1 udev readme.gentoo-r1 toolchain-funcs systemd tmpfiles
+
+XSIMD_HASH="aeec9c872c8b475dedd7781336710f2dd2666cb2"
+SRC_URI="
+	https://download.ceph.com/tarballs/${P}.tar.gz
+	parquet? ( https://github.com/xtensor-stack/xsimd/archive/${XSIMD_HASH}.tar.gz -> ceph-xsimd-${PV}.tar.gz )
+"
+KEYWORDS="~amd64 ~arm64"
+
+DESCRIPTION="Ceph distributed filesystem"
+HOMEPAGE="https://ceph.com/"
+
+LICENSE="Apache-2.0 LGPL-2.1 CC-BY-SA-3.0 GPL-2 GPL-2+ LGPL-2+ LGPL-2.1 LGPL-3 GPL-3 BSD Boost-1.0 MIT public-domain"
+SLOT="0"
+
+CPU_FLAGS_X86=(avx2 avx512f pclmul sse{,2,3,4_1,4_2} ssse3)
+
+IUSE="
+	babeltrace +cephfs custom-cflags diskprediction dpdk fuse grafana
+	jemalloc jaeger kafka kerberos ldap lttng +mgr +parquet pmdk rabbitmq
+	+radosgw rbd-rwl rbd-ssd rdma rgw-lua selinux +ssl spdk +sqlite +system-boost
+	systemd +tcmalloc test +uring xfs zbd zfs
+"
+
+IUSE+="$(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})"
+
+DEPEND="
+	${LUA_DEPS}
+	${PYTHON_DEPS}
+	acct-group/ceph
+	acct-user/ceph
+	virtual/libudev:=
+	app-arch/bzip2:=
+	app-arch/lz4:=
+	app-arch/snappy:=
+	>=app-arch/snappy-1.1.9-r1
+	app-arch/zstd:=
+	app-shells/bash:0
+	app-misc/jq:=
+	dev-cpp/gflags:=
+	dev-lang/jsonnet:=
+	dev-libs/libaio:=
+	dev-libs/libnl:3=
+	dev-libs/libxml2:=
+	dev-libs/libevent:=
+	dev-libs/libutf8proc:=
+	dev-libs/nss:=
+	dev-libs/openssl:=
+	<dev-libs/rocksdb-6.15:=
+	dev-libs/thrift:=
+	dev-libs/xmlsec:=[openssl]
+	dev-cpp/yaml-cpp:=
+	dev-python/natsort[${PYTHON_USEDEP}]
+	dev-python/pyyaml[${PYTHON_USEDEP}]
+	net-dns/c-ares:=
+	net-libs/gnutls:=
+	sys-auth/oath-toolkit:=
+	sys-apps/coreutils
+	sys-apps/hwloc:=
+	sys-apps/keyutils:=
+	sys-apps/util-linux:=
+	sys-libs/libcap-ng:=
+	sys-libs/ncurses:0=
+	sys-libs/zlib:=
+	sys-process/numactl:=
+	virtual/libcrypt:=
+	x11-libs/libpciaccess:=
+	babeltrace? ( dev-util/babeltrace )
+	fuse? ( sys-fs/fuse:3= )
+	jemalloc? ( dev-libs/jemalloc:= )
+	!jemalloc? ( >=dev-util/google-perftools-2.6.1:= )
+	jaeger? (
+		dev-cpp/nlohmann_json:=
+		dev-cpp/opentelemetry-cpp:=[jaeger]
+	)
+	kafka? ( dev-libs/librdkafka:= )
+	kerberos? ( virtual/krb5 )
+	ldap? ( net-nds/openldap:= )
+	lttng? ( dev-util/lttng-ust:= )
+	parquet? ( dev-libs/re2:= )
+	pmdk? (
+		>=dev-libs/pmdk-1.10.0:=
+		sys-block/ndctl:=
+	)
+	rabbitmq? ( net-libs/rabbitmq-c:= )
+	radosgw? (
+		dev-libs/icu:=
+		dev-libs/expat:=
+		net-misc/curl:=[curl_ssl_openssl]
+	)
+	rbd-rwl? ( dev-libs/pmdk:= )
+	rdma? ( sys-cluster/rdma-core:= )
+	spdk? ( dev-util/cunit )
+	sqlite? ( dev-db/sqlite:= )
+	system-boost? ( dev-libs/boost:=[context,python,${PYTHON_USEDEP},zlib] )
+	uring? ( sys-libs/liburing:= )
+	xfs? ( sys-fs/xfsprogs:= )
+	zbd? ( sys-block/libzbd:= )
+	zfs? ( sys-fs/zfs:= )
+"
+BDEPEND="
+	amd64? ( dev-lang/nasm )
+	x86? ( dev-lang/yasm )
+	app-arch/cpio
+	>=dev-util/cmake-3.5.0
+	dev-python/cython[${PYTHON_USEDEP}]
+	dev-python/setuptools[${PYTHON_USEDEP}]
+	dev-python/sphinx
+	dev-util/gperf
+	dev-util/ragel
+	dev-util/valgrind
+	sys-apps/coreutils
+	sys-apps/grep
+	sys-apps/util-linux
+	sys-apps/which
+	sys-devel/bc
+	sys-devel/patch
+	virtual/pkgconfig
+	jaeger? (
+		sys-devel/bison
+		sys-devel/flex
+	)
+	test? (
+		dev-util/cunit
+		dev-python/coverage[${PYTHON_USEDEP}]
+		dev-python/virtualenv[${PYTHON_USEDEP}]
+		dev-python/requests-mock[${PYTHON_USEDEP}]
+		sys-apps/grep[pcre]
+		sys-fs/btrfs-progs
+	)
+"
+RDEPEND="
+	${DEPEND}
+	app-admin/sudo
+	net-misc/socat
+	sys-apps/gptfdisk
+	sys-apps/nvme-cli
+	>=sys-apps/smartmontools-7.0
+	sys-block/parted
+	sys-fs/cryptsetup
+	sys-fs/lsscsi
+	sys-fs/lvm2[lvm]
+	app-alternatives/awk
+	dev-python/bcrypt[${PYTHON_USEDEP}]
+	dev-python/cherrypy[${PYTHON_USEDEP}]
+	dev-python/python-dateutil[${PYTHON_USEDEP}]
+	dev-python/flask[${PYTHON_USEDEP}]
+	dev-python/jinja[${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}]
+	mgr? (
+		dev-python/jsonpatch[${PYTHON_USEDEP}]
+		dev-python/more-itertools[${PYTHON_USEDEP}]
+		dev-python/numpy[${PYTHON_USEDEP}]
+		dev-python/pyjwt[${PYTHON_USEDEP}]
+		dev-python/routes[${PYTHON_USEDEP}]
+		diskprediction? (
+			>=dev-python/scipy-1.4.0[${PYTHON_USEDEP}]
+		)
+		sci-libs/scikit-learn[${PYTHON_USEDEP}]
+		dev-python/six[${PYTHON_USEDEP}]
+	)
+	selinux? ( sec-policy/selinux-ceph )
+"
+REQUIRED_USE="
+	${PYTHON_REQUIRED_USE}
+	${LUA_REQUIRED_USE}
+	?? ( jemalloc tcmalloc )
+	diskprediction? ( mgr )
+	kafka? ( radosgw )
+	mgr? ( cephfs )
+	rabbitmq? ( radosgw )
+	rgw-lua? ( radosgw )
+"
+
+RESTRICT="
+	!test? ( test )
+"
+
+# tests need root access, and network access
+RESTRICT+="test"
+
+# false positives unless all USE flags are on
+CMAKE_WARN_UNUSED_CLI=no
+
+PATCHES=(
+	"${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch"
+	"${FILESDIR}/ceph-14.2.0-cflags.patch"
+	"${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch"
+	"${FILESDIR}/ceph-17.2.1-no-virtualenvs.patch"
+	"${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
+	"${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch"
+	"${FILESDIR}/ceph-16.2.0-rocksdb-cmake.patch"
+	"${FILESDIR}/ceph-16.2.0-spdk-tinfo.patch"
+	"${FILESDIR}/ceph-16.2.0-jaeger-system-boost.patch"
+	"${FILESDIR}/ceph-16.2.0-liburing.patch"
+	"${FILESDIR}/ceph-17.2.0-pybind-boost-1.74.patch"
+	"${FILESDIR}/ceph-17.2.0-findre2.patch"
+	"${FILESDIR}/ceph-18.2.0-system-opentelemetry.patch"
+	"${FILESDIR}/ceph-17.2.0-osd_class_dir.patch"
+	"${FILESDIR}/ceph-17.2.0-gcc12-header.patch"
+	"${FILESDIR}/ceph-17.2.3-flags.patch"
+	# https://bugs.gentoo.org/866165
+	"${FILESDIR}/ceph-17.2.5-suppress-cmake-warning.patch"
+	"${FILESDIR}/ceph-17.2.5-gcc13-deux.patch"
+	"${FILESDIR}/ceph-17.2.5-boost-1.81.patch"
+	# https://bugs.gentoo.org/901403
+	"${FILESDIR}/ceph-17.2.6-link-boost-context.patch"
+	# https://bugs.gentoo.org/905626
+	"${FILESDIR}/ceph-17.2.6-arrow-flatbuffers-c++14.patch"
+	# https://bugs.gentoo.org/868891
+	"${FILESDIR}/ceph-17.2.6-cmake.patch"
+	"${FILESDIR}/ceph-18.2.0-cyclic-deps.patch"
+)
+
+check-reqs_export_vars() {
+	CHECKREQS_DISK_BUILD="6G"
+
+	if use system-boost; then
+		CHECKREQS_DISK_USR="350M"
+	else
+		CHECKREQS_DISK_USR="510M"
+	fi
+
+	export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR
+}
+
+pkg_pretend() {
+	check-reqs_export_vars
+	check-reqs_pkg_pretend
+}
+
+pkg_setup() {
+	python_setup
+	lua_setup
+	check-reqs_export_vars
+	check-reqs_pkg_setup
+}
+
+src_prepare() {
+	cmake_src_prepare
+
+	if use system-boost; then
+		find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \
+			| xargs --null sed -r \
+			-e 's|Boost::|boost_|g' \
+			-e 's|Boost_|boost_|g' \
+			-e 's|[Bb]oost_boost|boost_system|g' \
+			-i || die
+	fi
+
+	if ! use systemd; then
+		find "${S}"/src/ceph-volume/ceph_volume -name '*.py' -print0 \
+			| xargs --null sed \
+			-e '/^from ceph_volume.systemd import systemctl/ d' \
+			-i || die
+	fi
+
+	sed -r -e "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \
+		-i src/bash_completion/CMakeLists.txt || die
+
+	sed -e "s:objdump -p:$(tc-getOBJDUMP) -p:" -i CMakeLists.txt || die
+
+	# force lua version to use selected version
+	local lua_version
+	lua_version=$(ver_cut 1-2 $(lua_get_version))
+	sed "s:find_package(Lua [0-9][.][0-9] REQUIRED):find_package(Lua ${lua_version} EXACT REQUIRED):" \
+		-i src/CMakeLists.txt
+
+	if use spdk; then
+		# https://bugs.gentoo.org/871942
+		sed -i 's/[#]ifndef HAVE_ARC4RANDOM/#if 0/' src/spdk/lib/iscsi/iscsi.c || die
+	fi
+
+	# remove tests that need root access
+	rm src/test/cli/ceph-authtool/cap*.t || die
+}
+
+ceph_src_configure() {
+	local mycmakeargs=(
+		-DWITH_BABELTRACE:BOOL=$(usex babeltrace)
+		-DWITH_BLUESTORE_PMEM:BOOL=$(usex pmdk)
+		-DWITH_CEPHFS:BOOL=$(usex cephfs)
+		-DWITH_CEPHFS_SHELL:BOOL=$(usex cephfs)
+		-DWITH_DPDK:BOOL=$(usex dpdk)
+		-DWITH_SPDK:BOOL=$(usex spdk)
+		-DWITH_FUSE:BOOL=$(usex fuse)
+		-DWITH_LTTNG:BOOL=$(usex lttng)
+		-DWITH_GSSAPI:BOOL=$(usex kerberos)
+		-DWITH_GRAFANA:BOOL=$(usex grafana)
+		-DWITH_MGR:BOOL=$(usex mgr)
+		-DWITH_MGR_DASHBOARD_FRONTEND:BOOL=OFF
+		-DWITH_OPENLDAP:BOOL=$(usex ldap)
+		-DWITH_PYTHON3:STRING=3
+		-DWITH_RADOSGW:BOOL=$(usex radosgw)
+		-DWITH_RADOSGW_AMQP_ENDPOINT:BOOL=$(usex rabbitmq)
+		-DWITH_RADOSGW_KAFKA_ENDPOINT:BOOL=$(usex kafka)
+		-DWITH_RADOSGW_LUA_PACKAGES:BOOL=$(usex rgw-lua "$(usex radosgw)" "NO")
+		-DWITH_RBD_RWL:BOOL=$(usex rbd-rwl)
+		-DWITH_RBD_SSD_CACHE:BOOL=$(usex rbd-ssd)
+		-DWITH_SYSTEMD:BOOL=$(usex systemd)
+		-DWITH_TESTS:BOOL=$(usex test)
+		-DWITH_LIBURING:BOOL=$(usex uring)
+		-DWITH_SYSTEM_LIBURING:BOOL=$(usex uring)
+		-DWITH_LIBCEPHSQLITE:BOOL=$(usex sqlite)
+		-DWITH_XFS:BOOL=$(usex xfs)
+		-DWITH_ZBD:BOOL=$(usex zbd)
+		-DWITH_ZFS:BOOL=$(usex zfs)
+		-DENABLE_SHARED:BOOL=ON
+		-DALLOCATOR:STRING=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')")
+		-DWITH_SYSTEM_PMDK:BOOL=$(usex pmdk 'YES' "$(usex rbd-rwl '')")
+		-DWITH_SYSTEM_BOOST:BOOL=$(usex system-boost)
+		-DWITH_SYSTEM_ROCKSDB:BOOL=ON
+		-DWITH_SYSTEM_ZSTD:BOOL=ON
+		-DWITH_RDMA:BOOL=$(usex rdma)
+		-DCMAKE_INSTALL_DOCDIR:PATH="${EPREFIX}/usr/share/doc/${PN}-${PVR}"
+		-DCMAKE_INSTALL_SYSCONFDIR:PATH="${EPREFIX}/etc"
+		# use the bundled libfmt for now since they seem to constantly break their API
+		-DCMAKE_DISABLE_FIND_PACKAGE_fmt=ON
+		-Wno-dev
+	)
+
+	# this breaks when re-configuring for python impl
+	if [[ ${EBUILD_PHASE} == configure ]]; then
+		mycmakeargs+=(
+			-DWITH_JAEGER:BOOL=$(usex jaeger)
+			-DWITH_RADOSGW_SELECT_PARQUET:BOOL=$(usex parquet)
+		)
+	else
+		mycmakeargs+=(
+			-DWITH_RADOSGW_SELECT_PARQUET:BOOL=OFF
+			-DWITH_JAEGER:BOOL=OFF
+			# don't want to warn about unused CLI when reconfiguring for python
+			-DCMAKE_WARN_UNUSED_CLI:BOOL=OFF
+		)
+	fi
+
+	# conditionally used cmake args
+	use test && mycmakearts+=( -DWITH_SYSTEM_GTEST:BOOL=$(usex test) )
+	use systemd && mycmakeargs+=( -DSYSTEMD_SYSTEM_UNIT_DIR:PATH=$(systemd_get_systemunitdir) )
+
+	if use amd64 || use x86; then
+		local flag
+		for flag in "${CPU_FLAGS_X86[@]}"; do
+			case "${flag}" in
+				avx*)
+					local var=${flag%f}
+					mycmakeargs+=(
+						"-DHAVE_NASM_X64_${var^^}:BOOL=$(usex cpu_flags_x86_${flag})"
+					)
+				;;
+				*) mycmakeargs+=(
+						"-DHAVE_INTEL_${flag^^}:BOOL=$(usex cpu_flags_x86_${flag})"
+					);;
+			esac
+		done
+	fi
+
+	# needed for >=glibc-2.32
+	has_version '>=sys-libs/glibc-2.32' && mycmakeargs+=( -DWITH_REENTRANT_STRSIGNAL:BOOL=ON )
+
+	rm -f "${BUILD_DIR:-${S}}/CMakeCache.txt" \
+		|| die "failed to remove cmake cache"
+
+	# hopefully this will not be necessary in the next release
+	use parquet && export ARROW_XSIMD_URL="file:///${DISTDIR}/ceph-xsimd-${PV}.tar.gz"
+
+	cmake_src_configure
+
+	# bug #630232
+	sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \
+		"${BUILD_DIR:-${S}}"/include/acconfig.h \
+		|| die "sed failed"
+}
+
+src_configure() {
+	use custom-cflags || strip-flags
+	ceph_src_configure
+}
+
+src_compile() {
+	cmake_build all
+
+	# we have to do this here to prevent from building everything multiple times
+	python_copy_sources
+	python_foreach_impl python_compile
+}
+
+python_compile() {
+	local CMAKE_USE_DIR="${S}"
+	ceph_src_configure
+
+	cmake_build src/pybind/CMakeFiles/cython_modules
+}
+
+src_install() {
+	python_foreach_impl python_install
+
+	python_setup
+	cmake_src_install
+	python_optimize
+
+	find "${ED}" -name '*.la' -type f -delete || die
+
+	exeinto /usr/$(get_libdir)/ceph
+	newexe "${BUILD_DIR}/bin/init-ceph" init-ceph
+
+	insinto /etc/logrotate.d/
+	newins "${FILESDIR}"/ceph.logrotate-r2 ${PN}
+
+	keepdir /var/lib/${PN}{,/tmp} /var/log/ceph/stat /var/log/ceph/console
+
+	fowners -R ceph:ceph /var/log/ceph
+
+	newinitd "${FILESDIR}/rbdmap.initd-r1" rbdmap
+	newinitd "${FILESDIR}/${PN}.initd-r14" ${PN}
+	newconfd "${FILESDIR}/${PN}.confd-r5" ${PN}
+
+	insinto /etc/sudoers.d
+	doins sudoers.d/*
+
+	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
+	newtmpfiles "${FILESDIR}"/ceph-tmpfilesd ${PN}.conf
+
+	readme.gentoo_create_doc
+
+	# bug #630232
+	sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \
+		|| die "sed failed"
+
+	python_fix_shebang "${ED}"/usr/{,s}bin/
+
+	# python_fix_shebang apparently is not idempotent
+	local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]'
+	grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \
+		| xargs --null --no-run-if-empty -- sed -i -r  "s:${shebang_regex}:\1:" || die
+
+	local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* )
+	dostrip -x "${rados_classes[@]#${ED}}"
+}
+
+python_install() {
+	local CMAKE_USE_DIR="${S}"
+	DESTDIR="${ED}" cmake_build src/pybind/install
+
+	python_optimize
+}
+
+pkg_postinst() {
+	readme.gentoo_print_elog
+	tmpfiles_process ${PN}.conf
+	udev_reload
+}
+
+pkg_postrm() {
+	udev_reload
+}

diff --git a/sys-cluster/ceph/files/ceph-18.2.0-cyclic-deps.patch b/sys-cluster/ceph/files/ceph-18.2.0-cyclic-deps.patch
new file mode 100644
index 000000000000..af9caa63aed2
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-18.2.0-cyclic-deps.patch
@@ -0,0 +1,13 @@
+diff --git a/src/rgw/driver/dbstore/CMakeLists.txt b/src/rgw/driver/dbstore/CMakeLists.txt
+index a3aca7a64e4..072d20193e3 100644
+--- a/src/rgw/driver/dbstore/CMakeLists.txt
++++ b/src/rgw/driver/dbstore/CMakeLists.txt
+@@ -24,7 +24,7 @@ set(dbstore_mgr_srcs
+     dbstore_mgr.cc
+     )
+ 
+-add_library(dbstore_lib ${dbstore_srcs})
++	add_library(dbstore_lib STATIC ${dbstore_srcs})
+ target_include_directories(dbstore_lib
+     PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw"
+     PUBLIC "${CMAKE_SOURCE_DIR}/src/rgw/store/rados"

diff --git a/sys-cluster/ceph/files/ceph-18.2.0-system-opentelemetry.patch b/sys-cluster/ceph/files/ceph-18.2.0-system-opentelemetry.patch
new file mode 100644
index 000000000000..5e92d491dba9
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-18.2.0-system-opentelemetry.patch
@@ -0,0 +1,19 @@
+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
+index 0a841c5db37..29be0232b48 100644
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -433,8 +433,12 @@ add_dependencies(common-objs legacy-option-headers)
+ 
+ if(WITH_JAEGER)
+   find_package(thrift 0.13.0 REQUIRED)
+-  include(BuildOpentelemetry)
+-  build_opentelemetry()
++  find_package(opentelemetry-cpp REQUIRED)
++  set(jaeger_base
++	  opentelemetry-cpp::common
++	  opentelemetry-cpp::trace
++	  opentelemetry-cpp::jaeger_trace_exporter
++	  thrift::libthrift)
+   add_library(jaeger_base INTERFACE)
+   target_link_libraries(jaeger_base INTERFACE opentelemetry::libopentelemetry
+     thrift::libthrift)


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2023-09-13 23:49 Patrick McLean
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick McLean @ 2023-09-13 23:49 UTC (permalink / raw
  To: gentoo-commits

commit:     bb07f65ed157020b4c7ebea9557820f5148d8920
Author:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
AuthorDate: Wed Sep 13 23:48:54 2023 +0000
Commit:     Patrick McLean <chutzpah <AT> gentoo <DOT> org>
CommitDate: Wed Sep 13 23:49:27 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bb07f65e

sys-cluster/ceph: Revbumps, add patch to build with cython-3

Closes: https://bugs.gentoo.org/907739
Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>

 ...{ceph-16.2.14.ebuild => ceph-16.2.14-r1.ebuild} |  4 +++-
 ...ceph-17.2.6-r7.ebuild => ceph-17.2.6-r8.ebuild} |  4 +++-
 ...ceph-18.2.0-r1.ebuild => ceph-18.2.0-r2.ebuild} |  5 +++--
 sys-cluster/ceph/files/ceph-18.2.0-cython3.patch   | 26 ++++++++++++++++++++++
 4 files changed, 35 insertions(+), 4 deletions(-)

diff --git a/sys-cluster/ceph/ceph-16.2.14.ebuild b/sys-cluster/ceph/ceph-16.2.14-r1.ebuild
similarity index 99%
rename from sys-cluster/ceph/ceph-16.2.14.ebuild
rename to sys-cluster/ceph/ceph-16.2.14-r1.ebuild
index c62e195e159e..40f04bb1347a 100644
--- a/sys-cluster/ceph/ceph-16.2.14.ebuild
+++ b/sys-cluster/ceph/ceph-16.2.14-r1.ebuild
@@ -103,7 +103,7 @@ BDEPEND="
 	x86? ( dev-lang/yasm )
 	app-arch/cpio
 	>=dev-util/cmake-3.5.0
-	<dev-python/cython-3[${PYTHON_USEDEP}]
+	dev-python/cython[${PYTHON_USEDEP}]
 	dev-python/setuptools[${PYTHON_USEDEP}]
 	dev-python/sphinx
 	dev-util/gperf
@@ -213,6 +213,8 @@ PATCHES=(
 	"${FILESDIR}/ceph-16.2.10-flags.patch"
 	"${FILESDIR}/ceph-17.2.5-boost-1.81.patch"
 	"${FILESDIR}/ceph-16.2.14-gcc13.patch"
+	# https://bugs.gentoo.org/907739
+	"${FILESDIR}/ceph-18.2.0-cython3.patch"
 )
 
 check-reqs_export_vars() {

diff --git a/sys-cluster/ceph/ceph-17.2.6-r7.ebuild b/sys-cluster/ceph/ceph-17.2.6-r8.ebuild
similarity index 99%
rename from sys-cluster/ceph/ceph-17.2.6-r7.ebuild
rename to sys-cluster/ceph/ceph-17.2.6-r8.ebuild
index 2a2b757517dd..3f4382b4cbef 100644
--- a/sys-cluster/ceph/ceph-17.2.6-r7.ebuild
+++ b/sys-cluster/ceph/ceph-17.2.6-r8.ebuild
@@ -110,7 +110,7 @@ BDEPEND="
 	x86? ( dev-lang/yasm )
 	app-arch/cpio
 	>=dev-util/cmake-3.5.0
-	<dev-python/cython-3[${PYTHON_USEDEP}]
+	dev-python/cython[${PYTHON_USEDEP}]
 	dev-python/setuptools[${PYTHON_USEDEP}]
 	dev-python/sphinx
 	dev-util/gperf
@@ -226,6 +226,8 @@ PATCHES=(
 	"${FILESDIR}/ceph-17.2.6-arrow-flatbuffers-c++14.patch"
 	# https://bugs.gentoo.org/868891
 	"${FILESDIR}/ceph-17.2.6-cmake.patch"
+	# https://bugs.gentoo.org/907739
+	"${FILESDIR}/ceph-18.2.0-cython3.patch"
 )
 
 check-reqs_export_vars() {

diff --git a/sys-cluster/ceph/ceph-18.2.0-r1.ebuild b/sys-cluster/ceph/ceph-18.2.0-r2.ebuild
similarity index 99%
rename from sys-cluster/ceph/ceph-18.2.0-r1.ebuild
rename to sys-cluster/ceph/ceph-18.2.0-r2.ebuild
index c24704db3311..72743d105137 100644
--- a/sys-cluster/ceph/ceph-18.2.0-r1.ebuild
+++ b/sys-cluster/ceph/ceph-18.2.0-r2.ebuild
@@ -107,13 +107,12 @@ DEPEND="
 	zbd? ( sys-block/libzbd:= )
 	zfs? ( sys-fs/zfs:= )
 "
-# <cython-3: bug #907739
 BDEPEND="
 	amd64? ( dev-lang/nasm )
 	x86? ( dev-lang/yasm )
 	app-arch/cpio
 	>=dev-util/cmake-3.5.0
-	<dev-python/cython-3[${PYTHON_USEDEP}]
+	dev-python/cython[${PYTHON_USEDEP}]
 	dev-python/setuptools[${PYTHON_USEDEP}]
 	dev-python/sphinx
 	dev-util/gperf
@@ -224,6 +223,8 @@ PATCHES=(
 	# https://bugs.gentoo.org/868891
 	"${FILESDIR}/ceph-17.2.6-cmake.patch"
 	"${FILESDIR}/ceph-18.2.0-cyclic-deps.patch"
+	# https://bugs.gentoo.org/907739
+	"${FILESDIR}/ceph-18.2.0-cython3.patch"
 )
 
 check-reqs_export_vars() {

diff --git a/sys-cluster/ceph/files/ceph-18.2.0-cython3.patch b/sys-cluster/ceph/files/ceph-18.2.0-cython3.patch
new file mode 100644
index 000000000000..bfaeacea4f26
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-18.2.0-cython3.patch
@@ -0,0 +1,26 @@
+diff --git a/src/pybind/rbd/rbd.pyx b/src/pybind/rbd/rbd.pyx
+index 5e14e38c919..d10dce62262 100644
+--- a/src/pybind/rbd/rbd.pyx
++++ b/src/pybind/rbd/rbd.pyx
+@@ -371,10 +371,10 @@ ELSE:
+     cdef rados_ioctx_t convert_ioctx(rados.Ioctx ioctx) except? NULL:
+         return <rados_ioctx_t>ioctx.io
+ 
+-cdef int progress_callback(uint64_t offset, uint64_t total, void* ptr) with gil:
++cdef int progress_callback(uint64_t offset, uint64_t total, void* ptr) noexcept with gil:
+     return (<object>ptr)(offset, total)
+ 
+-cdef int no_op_progress_callback(uint64_t offset, uint64_t total, void* ptr):
++cdef int no_op_progress_callback(uint64_t offset, uint64_t total, void* ptr) noexcept with gil:
+     return 0
+ 
+ def cstr(val, name, encoding="utf-8", opt=False):
+@@ -426,7 +426,7 @@ RBD_MIRROR_PEER_ATTRIBUTE_NAME_KEY = decode_cstr(_RBD_MIRROR_PEER_ATTRIBUTE_NAME
+ 
+ cdef class Completion
+ 
+-cdef void __aio_complete_cb(rbd_completion_t completion, void *args) with gil:
++cdef void __aio_complete_cb(rbd_completion_t completion, void *args) noexcept with gil:
+     """
+     Callback to oncomplete() for asynchronous operations
+     """


^ permalink raw reply related	[flat|nested] 48+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/
@ 2024-10-04 11:53 Patrick Lauer
  0 siblings, 0 replies; 48+ messages in thread
From: Patrick Lauer @ 2024-10-04 11:53 UTC (permalink / raw
  To: gentoo-commits

commit:     e0728e24f29a6de82909cda5d81017e7900ea8c4
Author:     Patrick Lauer <patrick <AT> gentoo <DOT> org>
AuthorDate: Fri Oct  4 11:52:30 2024 +0000
Commit:     Patrick Lauer <patrick <AT> gentoo <DOT> org>
CommitDate: Fri Oct  4 11:52:30 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e0728e24

sys-cluster/ceph: Fix build with use=spdk

Tests don't build, but we don't even run the tests.
Exclude tests from build.

Closes: https://bugs.gentoo.org/936889
Signed-off-by: Patrick Lauer <patrick <AT> gentoo.org>

 sys-cluster/ceph/ceph-18.2.4-r2.ebuild        |  1 +
 sys-cluster/ceph/ceph-19.2.0.ebuild           |  3 +++
 sys-cluster/ceph/files/ceph-18.2.4-spdk.patch | 13 +++++++++++++
 3 files changed, 17 insertions(+)

diff --git a/sys-cluster/ceph/ceph-18.2.4-r2.ebuild b/sys-cluster/ceph/ceph-18.2.4-r2.ebuild
index f23e56039cf6..9684c2b6a87a 100644
--- a/sys-cluster/ceph/ceph-18.2.4-r2.ebuild
+++ b/sys-cluster/ceph/ceph-18.2.4-r2.ebuild
@@ -234,6 +234,7 @@ PATCHES=(
 	"${FILESDIR}/ceph-18.2.1-gcc14.patch"
 	"${FILESDIR}/ceph-18.2.1-gcc14-2.patch"
 	"${FILESDIR}/ceph-18.2.4-liburing.patch"
+	"${FILESDIR}/ceph-18.2.4-spdk.patch"
 )
 
 check-reqs_export_vars() {

diff --git a/sys-cluster/ceph/ceph-19.2.0.ebuild b/sys-cluster/ceph/ceph-19.2.0.ebuild
index 05634a309b86..24a94bc4b788 100644
--- a/sys-cluster/ceph/ceph-19.2.0.ebuild
+++ b/sys-cluster/ceph/ceph-19.2.0.ebuild
@@ -230,6 +230,7 @@ PATCHES=(
 	# https://bugs.gentoo.org/936889
 	"${FILESDIR}/ceph-18.2.1-gcc14.patch"
 	"${FILESDIR}/ceph-18.2.4-liburing.patch"
+	"${FILESDIR}/ceph-18.2.4-spdk.patch"
 )
 
 check-reqs_export_vars() {
@@ -289,6 +290,8 @@ src_prepare() {
 	if use spdk; then
 		# https://bugs.gentoo.org/871942
 		sed -i 's/[#]ifndef HAVE_ARC4RANDOM/#if 0/' src/spdk/lib/iscsi/iscsi.c || die
+		# unittests fail to build (??!?)
+		sed -i -e 's/CONFIG_UNIT_TESTS=y/CONFIG_UNIT_TESTS=n/' src/spdk/CONFIG || die
 	fi
 
 	# remove tests that need root access

diff --git a/sys-cluster/ceph/files/ceph-18.2.4-spdk.patch b/sys-cluster/ceph/files/ceph-18.2.4-spdk.patch
new file mode 100644
index 000000000000..27fb3c6eaa89
--- /dev/null
+++ b/sys-cluster/ceph/files/ceph-18.2.4-spdk.patch
@@ -0,0 +1,13 @@
+diff --git a/cmake/modules/BuildSPDK.cmake b/cmake/modules/BuildSPDK.cmake
+index d6ce97e..0c49e05 100644
+--- a/cmake/modules/BuildSPDK.cmake
++++ b/cmake/modules/BuildSPDK.cmake
+@@ -51,6 +51,8 @@ macro(build_spdk)
+       --with-dpdk=${DPDK_DIR}
+       --without-isal
+       --without-vhost
++      --disable-tests
++      --disable-unit-tests
+       --target-arch=${target_arch}
+     # unset $CFLAGS, otherwise it will interfere with how SPDK sets
+     # its include directory.


^ permalink raw reply related	[flat|nested] 48+ messages in thread

end of thread, other threads:[~2024-10-04 11:53 UTC | newest]

Thread overview: 48+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-10-02 11:37 [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/files/, sys-cluster/ceph/ Vadim Misbakh-Soloviov
  -- strict thread matches above, loose matches on Subject: below --
2024-10-04 11:53 Patrick Lauer
2023-09-13 23:49 Patrick McLean
2023-08-10 21:02 Patrick McLean
2023-05-09 17:49 Patrick McLean
2023-04-18  8:46 Sam James
2023-04-11 23:28 Patrick McLean
2023-01-13  1:55 Patrick McLean
2022-12-30  6:33 Sam James
2022-10-20  1:27 Patrick McLean
2022-08-24 23:27 Patrick McLean
2022-08-23  7:44 罗百科
2022-08-22 20:29 Patrick McLean
2022-08-12 20:46 Patrick McLean
2022-07-13  0:20 Patrick McLean
2022-07-13  0:20 Patrick McLean
2022-05-04 22:43 Patrick McLean
2021-12-08  6:21 Patrick McLean
2021-05-27  5:30 Patrick McLean
2021-04-03  4:20 Patrick McLean
2021-02-26  0:44 Patrick McLean
2020-08-05  0:16 Patrick McLean
2020-07-20 20:10 Patrick McLean
2020-06-27 20:00 Patrick McLean
2020-06-01 19:14 Patrick McLean
2020-05-28 19:09 Patrick McLean
2020-04-23 20:44 Patrick McLean
2020-03-05  1:17 Patrick McLean
2019-04-15 23:29 Patrick McLean
2019-04-05  1:48 Patrick McLean
2019-03-22 22:32 Patrick McLean
2019-02-13 19:52 Patrick McLean
2018-10-17  0:38 Patrick McLean
2018-07-10 20:51 Patrick McLean
2018-06-13 17:52 Patrick McLean
2018-03-14  1:34 Patrick McLean
2017-09-07 23:40 Patrick McLean
2017-09-07 23:40 Patrick McLean
2017-09-01  1:46 Patrick McLean
2017-07-31 23:06 Patrick McLean
2017-07-11  2:18 Patrick McLean
2017-03-17  2:20 Patrick McLean
2017-03-08 22:57 Patrick McLean
2017-03-02  0:38 Patrick McLean
2016-10-27 21:31 Patrick McLean
2016-06-16 10:57 Yixun Lan
2016-05-25 17:56 Patrick McLean
2016-02-16 10:04 Yixun Lan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox