Gentoo Archives: gentoo-commits

From: Patrick McLean <chutzpah@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/
Date: Thu, 23 Apr 2020 20:44:34
Message-Id: 1587674661.bea94b24a68841e9c60b819c6634f5850c98e895.chutzpah@gentoo
1 commit: bea94b24a68841e9c60b819c6634f5850c98e895
2 Author: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com>
3 AuthorDate: Wed Apr 22 23:40:05 2020 +0000
4 Commit: Patrick McLean <chutzpah <AT> gentoo <DOT> org>
5 CommitDate: Thu Apr 23 20:44:21 2020 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=bea94b24
7
8 sys-cluster/ceph: remove static-libs useflag
9
10 as per policy
11 https://projects.gentoo.org/qa/policy-guide/installed-files.html?highlight=static#pg0302
12
13 for more context read:
14 https://flameeyes.blog/2011/08/29/useless-flag-static-libs/
15 https://archives.gentoo.org/gentoo-dev/message/2dada80c2b9c85b0e83e6328428bf8ab
16
17 Package-Manager: Portage-2.3.99, Repoman-2.3.22
18 Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com>
19 Closes: https://github.com/gentoo/gentoo/pull/15476
20 Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>
21
22 sys-cluster/ceph/ceph-12.2.12-r3.ebuild | 320 ++++++++++++++++++++++++++
23 sys-cluster/ceph/ceph-14.2.7-r1.ebuild | 370 ++++++++++++++++++++++++++++++
24 sys-cluster/ceph/ceph-14.2.8-r1.ebuild | 368 ++++++++++++++++++++++++++++++
25 sys-cluster/ceph/ceph-14.2.9-r1.ebuild | 368 ++++++++++++++++++++++++++++++
26 sys-cluster/ceph/ceph-15.2.1-r1.ebuild | 389 ++++++++++++++++++++++++++++++++
27 5 files changed, 1815 insertions(+)
28
29 diff --git a/sys-cluster/ceph/ceph-12.2.12-r3.ebuild b/sys-cluster/ceph/ceph-12.2.12-r3.ebuild
30 new file mode 100644
31 index 00000000000..029b309f009
32 --- /dev/null
33 +++ b/sys-cluster/ceph/ceph-12.2.12-r3.ebuild
34 @@ -0,0 +1,320 @@
35 +# Copyright 1999-2020 Gentoo Authors
36 +# Distributed under the terms of the GNU General Public License v2
37 +
38 +EAPI=7
39 +PYTHON_COMPAT=( python3_6 )
40 +DISTUTILS_OPTIONAL=1
41 +
42 +inherit check-reqs cmake-utils distutils-r1 flag-o-matic multiprocessing \
43 + python-r1 udev readme.gentoo-r1 systemd
44 +
45 +if [[ ${PV} == *9999* ]]; then
46 + inherit git-r3
47 + EGIT_REPO_URI="https://github.com/ceph/ceph.git"
48 + SRC_URI=""
49 +else
50 + SRC_URI="https://download.ceph.com/tarballs/${P}.tar.gz"
51 + # currently broken (bug #708294)
52 + #KEYWORDS="~amd64 ~arm64 ~x86"
53 +fi
54 +
55 +DESCRIPTION="Ceph distributed filesystem"
56 +HOMEPAGE="https://ceph.com/"
57 +
58 +LICENSE="LGPL-2.1 CC-BY-SA-3.0 GPL-2 BSD Boost-1.0 MIT"
59 +SLOT="0"
60 +
61 +CPU_FLAGS_X86=(sse{,2,3,4_1,4_2} ssse3)
62 +
63 +IUSE="babeltrace cephfs fuse jemalloc ldap lttng +mgr nss +radosgw +ssl"
64 +IUSE+=" +system-boost systemd +tcmalloc test xfs zfs"
65 +IUSE+=" $(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})"
66 +
67 +# unbundling code commented out pending bugs 584056 and 584058
68 +#>=dev-libs/jerasure-2.0.0-r1
69 +#>=dev-libs/gf-complete-2.0.0
70 +COMMON_DEPEND="
71 + acct-group/ceph
72 + acct-user/ceph
73 + virtual/libudev:=
74 + app-arch/bzip2:=
75 + app-arch/lz4:=
76 + app-arch/snappy:=
77 + app-arch/zstd:=
78 + app-misc/jq:=
79 + <dev-libs/crypto++-7.0:=
80 + dev-libs/leveldb:=[snappy,tcmalloc?]
81 + dev-libs/libaio:=
82 + dev-libs/libxml2:=
83 + sys-apps/keyutils:=
84 + sys-apps/util-linux:=
85 + sys-libs/zlib:=
86 + babeltrace? ( dev-util/babeltrace )
87 + ldap? ( net-nds/openldap:= )
88 + lttng? ( dev-util/lttng-ust:= )
89 + nss? ( dev-libs/nss:= )
90 + fuse? ( sys-fs/fuse:0= )
91 + xfs? ( sys-fs/xfsprogs:= )
92 + zfs? ( sys-fs/zfs:= )
93 + ssl? ( dev-libs/openssl:0= )
94 + radosgw? (
95 + dev-libs/expat:=
96 + <dev-libs/openssl-1.1:=
97 + net-misc/curl:=[curl_ssl_openssl]
98 + )
99 + system-boost? (
100 + =dev-libs/boost-1.66*:=[threads,context,python,${PYTHON_USEDEP}]
101 + )
102 + jemalloc? ( dev-libs/jemalloc:= )
103 + !jemalloc? ( >=dev-util/google-perftools-2.4:= )
104 + ${PYTHON_DEPS}
105 + "
106 +DEPEND="${COMMON_DEPEND}
107 + app-arch/cpio
108 + amd64? ( dev-lang/yasm )
109 + x86? ( dev-lang/yasm )
110 + dev-python/cython[${PYTHON_USEDEP}]
111 + dev-python/sphinx
112 + dev-util/gperf
113 + dev-util/valgrind
114 + sys-apps/which
115 + sys-devel/bc
116 + virtual/pkgconfig
117 + test? (
118 + dev-python/virtualenv[${PYTHON_USEDEP}]
119 + sys-apps/grep[pcre]
120 + sys-fs/btrfs-progs
121 + )"
122 +RDEPEND="${COMMON_DEPEND}
123 + net-misc/socat
124 + sys-apps/gptfdisk
125 + sys-block/parted
126 + sys-fs/e2fsprogs
127 + sys-fs/cryptsetup
128 + sys-fs/lvm2
129 + !<sys-apps/openrc-0.26.3
130 + dev-python/cherrypy[${PYTHON_USEDEP}]
131 + dev-python/flask[${PYTHON_USEDEP}]
132 + dev-python/jinja[${PYTHON_USEDEP}]
133 + dev-python/pecan[${PYTHON_USEDEP}]
134 + dev-python/prettytable[${PYTHON_USEDEP}]
135 + dev-python/pyopenssl[${PYTHON_USEDEP}]
136 + dev-python/requests[${PYTHON_USEDEP}]
137 + dev-python/werkzeug[${PYTHON_USEDEP}]
138 + "
139 +REQUIRED_USE="
140 + $(python_gen_useflags 'python2*')
141 + ${PYTHON_REQUIRED_USE}
142 + ?? ( ssl nss )
143 + ?? ( jemalloc tcmalloc )
144 + "
145 +
146 +RESTRICT="test? ( userpriv )"
147 +
148 +# distribution tarball does not include everything needed for tests
149 +RESTRICT+=" test"
150 +
151 +# false positives unless all USE flags are on
152 +CMAKE_WARN_UNUSED_CLI="no"
153 +
154 +# ninja does not work at all
155 +CMAKE_MAKEFILE_GENERATOR="emake"
156 +
157 +UNBUNDLE_LIBS=(
158 + src/erasure-code/jerasure/jerasure
159 + src/erasure-code/jerasure/gf-complete
160 +)
161 +
162 +PATCHES=(
163 + "${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch"
164 + "${FILESDIR}/ceph-12.2.0-cflags.patch"
165 + "${FILESDIR}/ceph-12.2.1-systemd-unitdir.patch"
166 + "${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch"
167 + "${FILESDIR}/ceph-12.2.4-cflags.patch"
168 + "${FILESDIR}/ceph-12.2.4-rocksdb-cflags.patch"
169 + "${FILESDIR}/ceph-12.2.5-no-werror.patch"
170 + "${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
171 + "${FILESDIR}/ceph-12.2.11-fix-min-call.patch"
172 + "${FILESDIR}/ceph-12.2.12-dont-use-bad-namespace.patch"
173 + "${FILESDIR}/ceph-12.2.12-civetweb-openssl-1.1.1.patch"
174 + "${FILESDIR}/ceph-12.2.12-qa-warning.patch"
175 + "${FILESDIR}/ceph-12.2.12-ncurses-tinfo.patch"
176 +)
177 +
178 +check-reqs_export_vars() {
179 + if use amd64; then
180 + CHECKREQS_DISK_BUILD="12G"
181 + CHECKREQS_DISK_USR="460M"
182 + else
183 + CHECKREQS_DISK_BUILD="1400M"
184 + CHECKREQS_DISK_USR="450M"
185 + fi
186 +
187 + export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR
188 +}
189 +
190 +user_setup() {
191 + enewgroup ceph ${CEPH_GID}
192 + enewuser ceph "${CEPH_UID:--1}" -1 /var/lib/ceph ceph
193 +}
194 +
195 +pkg_pretend() {
196 + check-reqs_export_vars
197 + check-reqs_pkg_pretend
198 +}
199 +
200 +pkg_setup() {
201 + python_setup 'python2*'
202 + check-reqs_export_vars
203 + check-reqs_pkg_setup
204 + user_setup
205 +}
206 +
207 +src_prepare() {
208 + cmake-utils_src_prepare
209 +
210 + if use system-boost; then
211 + eapply "${FILESDIR}/ceph-12.2.11-boost-sonames.patch"
212 + fi
213 +
214 + # remove tests that need root access
215 + rm src/test/cli/ceph-authtool/cap*.t
216 +
217 + #rm -rf "${UNBUNDLE_LIBS[@]}"
218 +}
219 +
220 +ceph_src_configure() {
221 + local flag
222 + local mycmakeargs=(
223 + -DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
224 + -DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PN}-${PVR}"
225 + -DWITH_BABELTRACE=$(usex babeltrace)
226 + -DWITH_CEPHFS=$(usex cephfs)
227 + -DWITH_FUSE=$(usex fuse)
228 + -DWITH_LTTNG=$(usex lttng)
229 + -DWITH_MGR=$(usex mgr)
230 + -DWITH_NSS=$(usex nss)
231 + -DWITH_OPENLDAP=$(usex ldap)
232 + -DWITH_RADOSGW=$(usex radosgw)
233 + -DWITH_SSL=$(usex ssl)
234 + -DWITH_SYSTEMD=$(usex systemd)
235 + -DWITH_TESTS=$(usex test)
236 + -DWITH_XFS=$(usex xfs)
237 + -DWITH_ZFS=$(usex zfs)
238 + -DENABLE_SHARED="yes"
239 + -DALLOCATOR=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')")
240 + -DWITH_SYSTEM_BOOST=$(usex system-boost)
241 + -DBOOST_J=$(makeopts_jobs)
242 + -DWITH_RDMA=no
243 + -DSYSTEMD_UNITDIR=$(systemd_get_systemunitdir)
244 + -DEPYTHON_VERSION="${EPYTHON#python}"
245 + )
246 + if use amd64 || use x86; then
247 + for flag in ${CPU_FLAGS_X86[@]}; do
248 + mycmakeargs+=("$(usex cpu_flags_x86_${flag} "-DHAVE_INTEL_${flag^^}=1")")
249 + done
250 + fi
251 +
252 + rm -f "${BUILD_DIR:-${S}}/CMakeCache.txt"
253 + cmake-utils_src_configure
254 +
255 + # bug #630232
256 + sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \
257 + "${BUILD_DIR:--${S}}"/include/acconfig.h \
258 + || die "sed failed"
259 +}
260 +
261 +src_configure() {
262 + ceph_src_configure
263 +}
264 +
265 +python_compile() {
266 + local CMAKE_USE_DIR="${S}"
267 +
268 + ceph_src_configure
269 + pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
270 + emake VERBOSE=1 all
271 +
272 + # python modules are only compiled with "make install" so we need to do this to
273 + # prevent doing a bunch of compilation in src_install
274 + DESTDIR="${T}" emake VERBOSE=1 install
275 + popd >/dev/null || die
276 +}
277 +
278 +src_compile() {
279 + cmake-utils_src_make all
280 +
281 + # we have to do this here to prevent from building everything multiple times
282 + python_copy_sources
283 + python_foreach_impl python_compile
284 +}
285 +
286 +src_test() {
287 + make check || die "make check failed"
288 +}
289 +
290 +python_install() {
291 + local CMAKE_USE_DIR="${S}"
292 + pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
293 + DESTDIR="${ED}" emake install
294 + popd >/dev/null || die
295 +}
296 +
297 +src_install() {
298 + cmake-utils_src_install
299 + python_foreach_impl python_install
300 +
301 + find "${D}" -name '*.la' -delete || die
302 +
303 + exeinto /usr/$(get_libdir)/ceph
304 + newexe "${BUILD_DIR}/bin/init-ceph" ceph_init.sh
305 +
306 + insinto /etc/logrotate.d/
307 + newins "${FILESDIR}"/ceph.logrotate-r2 ${PN}
308 +
309 + keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat
310 +
311 + fowners -R ceph:ceph /var/lib/ceph /var/log/ceph
312 +
313 + newinitd "${FILESDIR}/rbdmap.initd" rbdmap
314 + newinitd "${FILESDIR}/${PN}.initd-r12" ${PN}
315 + newconfd "${FILESDIR}/${PN}.confd-r5" ${PN}
316 +
317 + insinto /etc/sysctl.d
318 + newins "${FILESDIR}"/sysctld 90-${PN}.conf
319 +
320 + use tcmalloc && newenvd "${FILESDIR}"/envd-tcmalloc 99${PN}-tcmalloc
321 +
322 + # units aren't installed by the build system unless systemd is enabled
323 + # so no point installing these with the USE flag disabled
324 + if use systemd; then
325 + systemd_install_serviced "${FILESDIR}/ceph-mds_at.service.conf" \
326 + "ceph-mds@.service"
327 +
328 + systemd_install_serviced "${FILESDIR}/ceph-osd_at.service.conf" \
329 + "ceph-osd@.service"
330 + fi
331 +
332 + udev_dorules udev/*.rules
333 +
334 + readme.gentoo_create_doc
335 +
336 + python_setup 'python2*'
337 +
338 + # bug #630232
339 + sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph \
340 + || die "sed failed"
341 +
342 + python_fix_shebang "${ED}"/usr/{,s}bin/
343 +
344 + # python_fix_shebang apparently is not idempotent
345 + sed -i -r 's:(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]:\1:' \
346 + "${ED}"/usr/{sbin/ceph-disk,bin/ceph-detect-init} || die "sed failed"
347 +
348 + local -a rados_classes=( "${D}/usr/$(get_libdir)/rados-classes"/* )
349 + dostrip -x "${rados_classes[@]#${D}}"
350 +}
351 +
352 +pkg_postinst() {
353 + readme.gentoo_print_elog
354 +}
355
356 diff --git a/sys-cluster/ceph/ceph-14.2.7-r1.ebuild b/sys-cluster/ceph/ceph-14.2.7-r1.ebuild
357 new file mode 100644
358 index 00000000000..f05b0b4f65b
359 --- /dev/null
360 +++ b/sys-cluster/ceph/ceph-14.2.7-r1.ebuild
361 @@ -0,0 +1,370 @@
362 +# Copyright 1999-2020 Gentoo Authors
363 +# Distributed under the terms of the GNU General Public License v2
364 +
365 +EAPI=7
366 +PYTHON_COMPAT=( python3_{6,7} )
367 +CMAKE_MAKEFILE_GENERATOR=emake
368 +
369 +DISTUTILS_OPTIONAL=1
370 +
371 +inherit check-reqs bash-completion-r1 cmake-utils distutils-r1 flag-o-matic \
372 + multiprocessing python-r1 udev readme.gentoo-r1 toolchain-funcs \
373 + systemd
374 +
375 +if [[ ${PV} == *9999* ]]; then
376 + inherit git-r3
377 + EGIT_REPO_URI="https://github.com/ceph/ceph.git"
378 + SRC_URI=""
379 +else
380 + SRC_URI="https://download.ceph.com/tarballs/${P}.tar.gz"
381 + KEYWORDS="~amd64 ~arm64 ~ppc64"
382 +fi
383 +
384 +DESCRIPTION="Ceph distributed filesystem"
385 +HOMEPAGE="https://ceph.com/"
386 +
387 +LICENSE="LGPL-2.1 CC-BY-SA-3.0 GPL-2 GPL-2+ LGPL-2+ BSD Boost-1.0 MIT public-domain"
388 +SLOT="0"
389 +
390 +CPU_FLAGS_X86=(sse{,2,3,4_1,4_2} ssse3)
391 +
392 +IUSE="babeltrace cephfs dpdk fuse grafana jemalloc kerberos ldap libressl"
393 +IUSE+=" lttng +mgr numa rabbitmq +radosgw +ssl spdk system-boost"
394 +IUSE+=" systemd +tcmalloc test xfs zfs"
395 +IUSE+=" $(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})"
396 +
397 +COMMON_DEPEND="
398 + acct-group/ceph
399 + acct-user/ceph
400 + virtual/libudev:=
401 + app-arch/bzip2:=
402 + app-arch/lz4:=
403 + app-arch/snappy:=
404 + app-arch/zstd:=
405 + app-shells/bash:0
406 + app-misc/jq:=
407 + dev-libs/crypto++:=
408 + dev-libs/leveldb:=[snappy,tcmalloc(-)?]
409 + dev-libs/libaio:=
410 + dev-libs/libnl:3=
411 + dev-libs/libxml2:=
412 + dev-libs/nss:=
413 + sys-auth/oath-toolkit:=
414 + sys-apps/coreutils
415 + sys-apps/grep
416 + sys-apps/keyutils:=
417 + sys-apps/util-linux:=
418 + sys-apps/sed
419 + sys-apps/util-linux
420 + sys-libs/libcap-ng:=
421 + sys-libs/ncurses:0=
422 + sys-libs/zlib:=
423 + babeltrace? ( dev-util/babeltrace )
424 + ldap? ( net-nds/openldap:= )
425 + lttng? ( dev-util/lttng-ust:= )
426 + fuse? ( sys-fs/fuse:0= )
427 + kerberos? ( virtual/krb5 )
428 + rabbitmq? ( net-libs/rabbitmq-c:= )
429 + ssl? (
430 + !libressl? ( dev-libs/openssl:= )
431 + libressl? ( dev-libs/libressl:= )
432 + )
433 + xfs? ( sys-fs/xfsprogs:= )
434 + zfs? ( sys-fs/zfs:= )
435 + radosgw? (
436 + dev-libs/expat:=
437 + !libressl? (
438 + dev-libs/openssl:=
439 + net-misc/curl:=[curl_ssl_openssl]
440 + )
441 + libressl? (
442 + dev-libs/libressl:=
443 + net-misc/curl:=[curl_ssl_libressl]
444 + )
445 + )
446 + system-boost? (
447 + || (
448 + =dev-libs/boost-1.71*[threads,context,python,${PYTHON_USEDEP}]
449 + =dev-libs/boost-1.70*[threads,context,python,${PYTHON_USEDEP}]
450 + =dev-libs/boost-1.67*[threads,context,python,${PYTHON_USEDEP}]
451 + )
452 + dev-libs/boost:=[threads,context,python,${PYTHON_USEDEP}]
453 + )
454 + jemalloc? ( dev-libs/jemalloc:= )
455 + !jemalloc? ( >=dev-util/google-perftools-2.4:= )
456 + ${PYTHON_DEPS}
457 +"
458 +DEPEND="${COMMON_DEPEND}
459 + amd64? ( dev-lang/yasm )
460 + x86? ( dev-lang/yasm )
461 + dev-python/cython[${PYTHON_USEDEP}]
462 + dev-python/sphinx
463 + dev-util/cunit
464 + test? (
465 + dev-python/coverage[${PYTHON_USEDEP}]
466 + dev-python/virtualenv[${PYTHON_USEDEP}]
467 + sys-apps/grep[pcre]
468 + sys-fs/btrfs-progs
469 + )
470 +"
471 +BDEPEND="
472 + app-arch/cpio
473 + >=dev-util/cmake-3.5.0
474 + dev-util/gperf
475 + dev-util/valgrind
476 + sys-apps/coreutils
477 + sys-apps/findutils
478 + sys-apps/grep
479 + sys-apps/sed
480 + sys-apps/which
481 + sys-devel/bc
482 + sys-devel/patch
483 + virtual/pkgconfig
484 +"
485 +RDEPEND="${COMMON_DEPEND}
486 + net-misc/socat
487 + sys-apps/gptfdisk
488 + sys-block/parted
489 + sys-fs/cryptsetup
490 + sys-fs/lvm2[-device-mapper-only(-)]
491 + sys-fs/lsscsi
492 + virtual/awk
493 + dev-python/bcrypt[${PYTHON_USEDEP}]
494 + dev-python/cherrypy[${PYTHON_USEDEP}]
495 + dev-python/flask[${PYTHON_USEDEP}]
496 + dev-python/jinja[${PYTHON_USEDEP}]
497 + dev-python/pecan[${PYTHON_USEDEP}]
498 + dev-python/prettytable[${PYTHON_USEDEP}]
499 + dev-python/pyopenssl[${PYTHON_USEDEP}]
500 + dev-python/requests[${PYTHON_USEDEP}]
501 + dev-python/werkzeug[${PYTHON_USEDEP}]
502 +"
503 +REQUIRED_USE="
504 + ${PYTHON_REQUIRED_USE}
505 + || ( $(python_gen_useflags 'python3*') )
506 + ?? ( jemalloc tcmalloc )
507 + rabbitmq? ( radosgw )
508 +"
509 +
510 +# the tests need root access
511 +RESTRICT="test? ( userpriv )"
512 +
513 +# distribution tarball does not include everything needed for tests
514 +RESTRICT+=" test"
515 +
516 +# false positives unless all USE flags are on
517 +CMAKE_WARN_UNUSED_CLI="no"
518 +
519 +PATCHES=(
520 + "${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch"
521 + "${FILESDIR}/ceph-14.2.0-cflags.patch"
522 + "${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch"
523 + "${FILESDIR}/ceph-13.2.0-cflags.patch"
524 + "${FILESDIR}/ceph-14.2.0-mgr-python-version.patch"
525 + "${FILESDIR}/ceph-14.2.5-no-virtualenvs.patch"
526 + "${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
527 + "${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch"
528 + "${FILESDIR}/ceph-14.2.0-link-crc32-statically.patch"
529 + "${FILESDIR}/ceph-14.2.0-cython-0.29.patch"
530 + "${FILESDIR}/ceph-14.2.5-boost-1.70.patch"
531 + "${FILESDIR}/ceph-14.2.3-dpdk-compile-fix-1.patch"
532 + "${FILESDIR}/ceph-14.2.4-python-executable.patch"
533 + "${FILESDIR}/ceph-14.2.4-undefined-behaviour.patch"
534 +)
535 +
536 +check-reqs_export_vars() {
537 + if use amd64; then
538 + CHECKREQS_DISK_BUILD="12G"
539 + CHECKREQS_DISK_USR="460M"
540 + else
541 + CHECKREQS_DISK_BUILD="1400M"
542 + CHECKREQS_DISK_USR="450M"
543 + fi
544 +
545 + export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR
546 +}
547 +
548 +pkg_pretend() {
549 + check-reqs_export_vars
550 + check-reqs_pkg_pretend
551 +}
552 +
553 +pkg_setup() {
554 + python_setup 'python3*'
555 + check-reqs_export_vars
556 + check-reqs_pkg_setup
557 +}
558 +
559 +src_prepare() {
560 + cmake-utils_src_prepare
561 +
562 + if use system-boost; then
563 + eapply "${FILESDIR}/ceph-14.2.5-boost-sonames.patch"
564 +
565 + find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \
566 + | xargs --null sed -e 's|Boost::|Boost_|g' -i || die
567 +
568 + has_version '>=dev-libs/boost-1.70.0' || \
569 + eapply "${FILESDIR}/ceph-14.2.5-boost-1.6-python-sonames.patch"
570 + fi
571 +
572 + sed -i -r "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \
573 + src/bash_completion/CMakeLists.txt || die
574 +
575 + # remove tests that need root access
576 + rm src/test/cli/ceph-authtool/cap*.t || die
577 +}
578 +
579 +ceph_src_configure() {
580 + local flag
581 + local mycmakeargs=(
582 + -DWITH_BABELTRACE=$(usex babeltrace)
583 + -DWITH_CEPHFS=$(usex cephfs)
584 + -DWITH_CEPHFS_SHELL=$(if python_is_python3; then usex cephfs; else echo OFF; fi)
585 + -DWITH_DPDK=$(usex dpdk)
586 + -DWITH_DPDK=$(usex spdk)
587 + -DWITH_FUSE=$(usex fuse)
588 + -DWITH_LTTNG=$(usex lttng)
589 + -DWITH_GSSAPI=$(usex kerberos)
590 + -DWITH_GRAFANA=$(usex grafana)
591 + -DWITH_MGR=$(usex mgr)
592 + -DWITH_MGR_DASHBOARD_FRONTEND=NO
593 + -DWITH_NUMA=$(usex numa)
594 + -DWITH_OPENLDAP=$(usex ldap)
595 + -DMGR_PYTHON_VERSION=$(if python_is_python3; then echo 3; else echo 2; fi)
596 + -DWITH_PYTHON3=$(if python_is_python3; then echo "ON"; else echo "OFF"; fi)
597 + -DWITH_PYTHON2=$(if python_is_python3; then echo "OFF"; else echo "ON"; fi)
598 + -DWITH_RADOSGW=$(usex radosgw)
599 + -DWITH_RADOSGW_AMQP_ENDPOINT=$(usex rabbitmq)
600 + -DWITH_SSL=$(usex ssl)
601 + -DWITH_SYSTEMD=$(usex systemd)
602 + -DWITH_TESTS=$(usex test)
603 + -DWITH_XFS=$(usex xfs)
604 + -DWITH_ZFS=$(usex zfs)
605 + -DENABLE_SHARED="ON"
606 + -DALLOCATOR=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')")
607 + -DWITH_SYSTEM_BOOST=$(usex system-boost)
608 + -DBOOST_J=$(makeopts_jobs)
609 + -DWITH_RDMA=no
610 + -DWITH_TBB=no
611 + -DSYSTEMD_UNITDIR=$(systemd_get_systemunitdir)
612 + -DEPYTHON_VERSION="${EPYTHON#python}"
613 + -DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PN}-${PVR}"
614 + -DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
615 + #-Wno-dev
616 + )
617 + if use amd64 || use x86; then
618 + for flag in ${CPU_FLAGS_X86[@]}; do
619 + mycmakeargs+=("$(usex cpu_flags_x86_${flag} "-DHAVE_INTEL_${flag^^}=1")")
620 + done
621 + fi
622 +
623 + rm -f "${BUILD_DIR:-${S}}/CMakeCache.txt" \
624 + || die "failed to remove cmake cache"
625 +
626 + cmake-utils_src_configure
627 +
628 + # bug #630232
629 + sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \
630 + "${BUILD_DIR:-${S}}"/include/acconfig.h \
631 + || die "sed failed"
632 +}
633 +
634 +src_configure() {
635 + ceph_src_configure
636 +}
637 +
638 +python_compile() {
639 + local CMAKE_USE_DIR="${S}"
640 + ceph_src_configure
641 +
642 + pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
643 + emake VERBOSE=1 clean
644 + emake VERBOSE=1 all
645 +
646 + # python modules are only compiled with "make install" so we need to do this to
647 + # prevent doing a bunch of compilation in src_install
648 + DESTDIR="${T}" emake VERBOSE=1 install
649 + popd >/dev/null || die
650 +}
651 +
652 +src_compile() {
653 + cmake-utils_src_make VERBOSE=1 all
654 +
655 + # we have to do this here to prevent from building everything multiple times
656 + python_copy_sources
657 + python_foreach_impl python_compile
658 +}
659 +
660 +src_test() {
661 + make check || die "make check failed"
662 +}
663 +
664 +python_install() {
665 + local CMAKE_USE_DIR="${S}"
666 + pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
667 + DESTDIR="${ED}" emake VERBOSE=1 install
668 + popd >/dev/null || die
669 +
670 + python_optimize
671 +}
672 +
673 +src_install() {
674 + cmake-utils_src_install
675 + python_foreach_impl python_install
676 +
677 + find "${ED}" -name '*.la' -type f -delete || die
678 +
679 + exeinto /usr/$(get_libdir)/ceph
680 + newexe "${BUILD_DIR}/bin/init-ceph" init-ceph
681 +
682 + insinto /etc/logrotate.d/
683 + newins "${FILESDIR}"/ceph.logrotate-r2 ${PN}
684 +
685 + keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat
686 +
687 + fowners -R ceph:ceph /var/log/ceph
688 +
689 + newinitd "${FILESDIR}/rbdmap.initd" rbdmap
690 + newinitd "${FILESDIR}/${PN}.initd-r12" ${PN}
691 + newconfd "${FILESDIR}/${PN}.confd-r5" ${PN}
692 +
693 + insinto /etc/sysctl.d
694 + newins "${FILESDIR}"/sysctld 90-${PN}.conf
695 +
696 + use tcmalloc && newenvd "${FILESDIR}"/envd-tcmalloc 99${PN}-tcmalloc
697 +
698 + # units aren't installed by the build system unless systemd is enabled
699 + # so no point installing these with the USE flag disabled
700 + if use systemd; then
701 + systemd_install_serviced "${FILESDIR}/ceph-mds_at.service.conf" \
702 + "ceph-mds@.service"
703 +
704 + systemd_install_serviced "${FILESDIR}/ceph-osd_at.service.conf" \
705 + "ceph-osd@.service"
706 + fi
707 +
708 + udev_dorules udev/*.rules
709 +
710 + readme.gentoo_create_doc
711 +
712 + python_setup 'python3*'
713 +
714 + # bug #630232
715 + sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \
716 + || die "sed failed"
717 +
718 + python_fix_shebang "${ED}"/usr/{,s}bin/
719 +
720 + # python_fix_shebang apparently is not idempotent
721 + local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]'
722 + grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \
723 + | xargs --null --no-run-if-empty -- sed -i -r "s:${shebang_regex}:\1:" || die
724 +
725 + local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* )
726 + dostrip -x "${rados_classes[@]#${ED}}"
727 +}
728 +
729 +pkg_postinst() {
730 + readme.gentoo_print_elog
731 +}
732
733 diff --git a/sys-cluster/ceph/ceph-14.2.8-r1.ebuild b/sys-cluster/ceph/ceph-14.2.8-r1.ebuild
734 new file mode 100644
735 index 00000000000..c2fa46f1c65
736 --- /dev/null
737 +++ b/sys-cluster/ceph/ceph-14.2.8-r1.ebuild
738 @@ -0,0 +1,368 @@
739 +# Copyright 1999-2020 Gentoo Authors
740 +# Distributed under the terms of the GNU General Public License v2
741 +
742 +EAPI=7
743 +PYTHON_COMPAT=( python3_{6,7} )
744 +CMAKE_MAKEFILE_GENERATOR=emake
745 +
746 +DISTUTILS_OPTIONAL=1
747 +
748 +inherit check-reqs bash-completion-r1 cmake-utils distutils-r1 flag-o-matic \
749 + multiprocessing python-r1 udev readme.gentoo-r1 toolchain-funcs \
750 + systemd
751 +
752 +if [[ ${PV} == *9999* ]]; then
753 + inherit git-r3
754 + EGIT_REPO_URI="https://github.com/ceph/ceph.git"
755 + SRC_URI=""
756 +else
757 + SRC_URI="https://download.ceph.com/tarballs/${P}.tar.gz"
758 + KEYWORDS="~amd64 ~ppc64"
759 +fi
760 +
761 +DESCRIPTION="Ceph distributed filesystem"
762 +HOMEPAGE="https://ceph.com/"
763 +
764 +LICENSE="LGPL-2.1 CC-BY-SA-3.0 GPL-2 GPL-2+ LGPL-2+ BSD Boost-1.0 MIT public-domain"
765 +SLOT="0"
766 +
767 +CPU_FLAGS_X86=(sse{,2,3,4_1,4_2} ssse3)
768 +
769 +IUSE="babeltrace +cephfs custom-cflags dpdk fuse grafana jemalloc kerberos ldap"
770 +IUSE+=" libressl lttng +mgr numa rabbitmq +radosgw +ssl spdk "
771 +IUSE+=" system-boost systemd +tcmalloc test xfs zfs"
772 +IUSE+=" $(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})"
773 +
774 +COMMON_DEPEND="
775 + acct-group/ceph
776 + acct-user/ceph
777 + virtual/libudev:=
778 + app-arch/bzip2:=
779 + app-arch/lz4:=
780 + app-arch/snappy:=
781 + app-arch/zstd:=
782 + app-shells/bash:0
783 + app-misc/jq:=
784 + dev-libs/crypto++:=
785 + dev-libs/leveldb:=[snappy,tcmalloc(-)?]
786 + dev-libs/libaio:=
787 + dev-libs/libnl:3=
788 + dev-libs/libxml2:=
789 + dev-libs/nss:=
790 + sys-auth/oath-toolkit:=
791 + sys-apps/coreutils
792 + sys-apps/grep
793 + sys-apps/keyutils:=
794 + sys-apps/util-linux:=
795 + sys-apps/sed
796 + sys-apps/util-linux
797 + sys-libs/libcap-ng:=
798 + sys-libs/ncurses:0=
799 + sys-libs/zlib:=
800 + babeltrace? ( dev-util/babeltrace )
801 + ldap? ( net-nds/openldap:= )
802 + lttng? ( dev-util/lttng-ust:= )
803 + fuse? ( sys-fs/fuse:0= )
804 + kerberos? ( virtual/krb5 )
805 + rabbitmq? ( net-libs/rabbitmq-c:= )
806 + ssl? (
807 + !libressl? ( dev-libs/openssl:= )
808 + libressl? ( dev-libs/libressl:= )
809 + )
810 + xfs? ( sys-fs/xfsprogs:= )
811 + zfs? ( sys-fs/zfs:= )
812 + radosgw? (
813 + dev-libs/expat:=
814 + !libressl? (
815 + dev-libs/openssl:=
816 + net-misc/curl:=[curl_ssl_openssl]
817 + )
818 + libressl? (
819 + dev-libs/libressl:=
820 + net-misc/curl:=[curl_ssl_libressl]
821 + )
822 + )
823 + system-boost? ( =dev-libs/boost-1.72*[threads,context,python,${PYTHON_USEDEP}] )
824 + jemalloc? ( dev-libs/jemalloc:= )
825 + !jemalloc? ( >=dev-util/google-perftools-2.6.1:= )
826 + ${PYTHON_DEPS}
827 +"
828 +BDEPEND="
829 + amd64? ( dev-lang/yasm )
830 + x86? ( dev-lang/yasm )
831 + app-arch/cpio
832 + >=dev-util/cmake-3.5.0
833 + dev-python/cython[${PYTHON_USEDEP}]
834 + dev-python/sphinx
835 + dev-util/cunit
836 + dev-util/gperf
837 + dev-util/valgrind
838 + sys-apps/coreutils
839 + sys-apps/findutils
840 + sys-apps/grep
841 + sys-apps/sed
842 + sys-apps/which
843 + sys-devel/bc
844 + sys-devel/patch
845 + virtual/pkgconfig
846 + test? (
847 + dev-python/coverage[${PYTHON_USEDEP}]
848 + dev-python/virtualenv[${PYTHON_USEDEP}]
849 + dev-python/requests-mock[${PYTHON_USEDEP}]
850 + sys-apps/grep[pcre]
851 + sys-fs/btrfs-progs
852 + )
853 +"
854 +RDEPEND="${COMMON_DEPEND}
855 + net-misc/socat
856 + sys-apps/gptfdisk
857 + sys-block/parted
858 + sys-fs/cryptsetup
859 + sys-fs/lvm2[-device-mapper-only(-)]
860 + sys-fs/lsscsi
861 + virtual/awk
862 + dev-python/bcrypt[${PYTHON_USEDEP}]
863 + dev-python/cherrypy[${PYTHON_USEDEP}]
864 + dev-python/flask[${PYTHON_USEDEP}]
865 + dev-python/jinja[${PYTHON_USEDEP}]
866 + dev-python/pecan[${PYTHON_USEDEP}]
867 + dev-python/prettytable[${PYTHON_USEDEP}]
868 + dev-python/pyopenssl[${PYTHON_USEDEP}]
869 + dev-python/requests[${PYTHON_USEDEP}]
870 + dev-python/werkzeug[${PYTHON_USEDEP}]
871 + mgr? (
872 + dev-python/more-itertools[${PYTHON_USEDEP}]
873 + dev-python/pyjwt[${PYTHON_USEDEP}]
874 + dev-python/pyyaml[${PYTHON_USEDEP}]
875 + dev-python/routes[${PYTHON_USEDEP}]
876 + dev-python/six[${PYTHON_USEDEP}]
877 + )
878 +"
879 +REQUIRED_USE="
880 + ${PYTHON_REQUIRED_USE}
881 + mgr? ( cephfs )
882 + ?? ( jemalloc tcmalloc )
883 + rabbitmq? ( radosgw )
884 +"
885 +
886 +# the tests need root access
887 +RESTRICT="test? ( userpriv )"
888 +
889 +# distribution tarball does not include everything needed for tests
890 +RESTRICT+=" test"
891 +
892 +# false positives unless all USE flags are on
893 +CMAKE_WARN_UNUSED_CLI="no"
894 +
895 +PATCHES=(
896 + "${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch"
897 + "${FILESDIR}/ceph-14.2.0-cflags.patch"
898 + "${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch"
899 + "${FILESDIR}/ceph-13.2.0-cflags.patch"
900 + "${FILESDIR}/ceph-14.2.0-mgr-python-version.patch"
901 + "${FILESDIR}/ceph-14.2.5-no-virtualenvs.patch"
902 + "${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
903 + "${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch"
904 + "${FILESDIR}/ceph-14.2.0-link-crc32-statically.patch"
905 + "${FILESDIR}/ceph-14.2.0-cython-0.29.patch"
906 + "${FILESDIR}/ceph-14.2.3-dpdk-compile-fix-1.patch"
907 + "${FILESDIR}/ceph-14.2.4-python-executable.patch"
908 + "${FILESDIR}/ceph-14.2.4-undefined-behaviour.patch"
909 +)
910 +
911 +check-reqs_export_vars() {
912 + if use amd64; then
913 + CHECKREQS_DISK_BUILD="12G"
914 + CHECKREQS_DISK_USR="460M"
915 + else
916 + CHECKREQS_DISK_BUILD="1400M"
917 + CHECKREQS_DISK_USR="450M"
918 + fi
919 +
920 + export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR
921 +}
922 +
923 +pkg_pretend() {
924 + check-reqs_export_vars
925 + check-reqs_pkg_pretend
926 +}
927 +
928 +pkg_setup() {
929 + python_setup 'python3*'
930 + check-reqs_export_vars
931 + check-reqs_pkg_setup
932 +}
933 +
934 +src_prepare() {
935 + cmake-utils_src_prepare
936 +
937 + if use system-boost; then
938 + eapply "${FILESDIR}/ceph-14.2.8-boost-sonames.patch"
939 +
940 + find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \
941 + | xargs --null sed \
942 + -e 's|Boost::|Boost_|g' \
943 + -e 's|Boost_boost|boost_system|g' -i || die
944 + fi
945 +
946 + sed -i -r "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \
947 + src/bash_completion/CMakeLists.txt || die
948 +
949 + # remove tests that need root access
950 + rm src/test/cli/ceph-authtool/cap*.t || die
951 +}
952 +
953 +ceph_src_configure() {
954 + local flag
955 + local mycmakeargs=(
956 + -DWITH_BABELTRACE=$(usex babeltrace)
957 + -DWITH_CEPHFS=$(usex cephfs)
958 + -DWITH_CEPHFS_SHELL=$(if python_is_python3; then usex cephfs; else echo OFF; fi)
959 + -DWITH_DPDK=$(usex dpdk)
960 + -DWITH_DPDK=$(usex spdk)
961 + -DWITH_FUSE=$(usex fuse)
962 + -DWITH_LTTNG=$(usex lttng)
963 + -DWITH_GSSAPI=$(usex kerberos)
964 + -DWITH_GRAFANA=$(usex grafana)
965 + -DWITH_MGR=$(usex mgr)
966 + -DWITH_MGR_DASHBOARD_FRONTEND=NO
967 + -DWITH_NUMA=$(usex numa)
968 + -DWITH_OPENLDAP=$(usex ldap)
969 + -DMGR_PYTHON_VERSION=$(if python_is_python3; then echo 3; else echo 2; fi)
970 + -DWITH_PYTHON3=$(if python_is_python3; then echo "ON"; else echo "OFF"; fi)
971 + -DWITH_PYTHON2=$(if python_is_python3; then echo "OFF"; else echo "ON"; fi)
972 + -DWITH_RADOSGW=$(usex radosgw)
973 + -DWITH_RADOSGW_AMQP_ENDPOINT=$(usex rabbitmq)
974 + -DWITH_SSL=$(usex ssl)
975 + -DWITH_SYSTEMD=$(usex systemd)
976 + -DWITH_TESTS=$(usex test)
977 + -DWITH_XFS=$(usex xfs)
978 + -DWITH_ZFS=$(usex zfs)
979 + -DENABLE_SHARED='ON'
980 + -DALLOCATOR=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')")
981 + -DWITH_SYSTEM_BOOST=$(usex system-boost)
982 + -DBOOST_J=$(makeopts_jobs)
983 + -DWITH_RDMA=no
984 + -DWITH_TBB=no
985 + -DSYSTEMD_UNITDIR=$(systemd_get_systemunitdir)
986 + -DEPYTHON_VERSION="${EPYTHON#python}"
987 + -DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PN}-${PVR}"
988 + -DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
989 + #-Wno-dev
990 + )
991 + if use amd64 || use x86; then
992 + for flag in ${CPU_FLAGS_X86[@]}; do
993 + mycmakeargs+=("$(usex cpu_flags_x86_${flag} "-DHAVE_INTEL_${flag^^}=1")")
994 + done
995 + fi
996 +
997 + rm -f "${BUILD_DIR:-${S}}/CMakeCache.txt" \
998 + || die "failed to remove cmake cache"
999 +
1000 + cmake-utils_src_configure
1001 +
1002 + # bug #630232
1003 + sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \
1004 + "${BUILD_DIR:-${S}}"/include/acconfig.h \
1005 + || die "sed failed"
1006 +}
1007 +
1008 +src_configure() {
1009 + use custom-cflags || strip-flags
1010 + ceph_src_configure
1011 +}
1012 +
1013 +python_compile() {
1014 + local CMAKE_USE_DIR="${S}"
1015 + ceph_src_configure
1016 +
1017 + pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
1018 + emake VERBOSE=1 clean
1019 + emake VERBOSE=1 all
1020 +
1021 + # python modules are only compiled with "make install" so we need to do this to
1022 + # prevent doing a bunch of compilation in src_install
1023 + DESTDIR="${T}" emake VERBOSE=1 install
1024 + popd >/dev/null || die
1025 +}
1026 +
1027 +src_compile() {
1028 + cmake-utils_src_make VERBOSE=1 all
1029 +
1030 + # we have to do this here to prevent from building everything multiple times
1031 + python_copy_sources
1032 + python_foreach_impl python_compile
1033 +}
1034 +
1035 +src_test() {
1036 + make check || die "make check failed"
1037 +}
1038 +
1039 +python_install() {
1040 + local CMAKE_USE_DIR="${S}"
1041 + pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
1042 + DESTDIR="${ED}" emake VERBOSE=1 install
1043 + popd >/dev/null || die
1044 +
1045 + python_optimize
1046 +}
1047 +
1048 +src_install() {
1049 + cmake-utils_src_install
1050 + python_foreach_impl python_install
1051 +
1052 + find "${ED}" -name '*.la' -type f -delete || die
1053 +
1054 + exeinto /usr/$(get_libdir)/ceph
1055 + newexe "${BUILD_DIR}/bin/init-ceph" init-ceph
1056 +
1057 + insinto /etc/logrotate.d/
1058 + newins "${FILESDIR}"/ceph.logrotate-r2 ${PN}
1059 +
1060 + keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat
1061 +
1062 + fowners -R ceph:ceph /var/log/ceph
1063 +
1064 + newinitd "${FILESDIR}/rbdmap.initd" rbdmap
1065 + newinitd "${FILESDIR}/${PN}.initd-r12" ${PN}
1066 + newconfd "${FILESDIR}/${PN}.confd-r5" ${PN}
1067 +
1068 + insinto /etc/sysctl.d
1069 + newins "${FILESDIR}"/sysctld 90-${PN}.conf
1070 +
1071 + use tcmalloc && newenvd "${FILESDIR}"/envd-tcmalloc 99${PN}-tcmalloc
1072 +
1073 + # units aren't installed by the build system unless systemd is enabled
1074 + # so no point installing these with the USE flag disabled
1075 + if use systemd; then
1076 + systemd_install_serviced "${FILESDIR}/ceph-mds_at.service.conf" \
1077 + "ceph-mds@.service"
1078 +
1079 + systemd_install_serviced "${FILESDIR}/ceph-osd_at.service.conf" \
1080 + "ceph-osd@.service"
1081 + fi
1082 +
1083 + udev_dorules udev/*.rules
1084 +
1085 + readme.gentoo_create_doc
1086 +
1087 + python_setup 'python3*'
1088 +
1089 + # bug #630232
1090 + sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \
1091 + || die "sed failed"
1092 +
1093 + python_fix_shebang "${ED}"/usr/{,s}bin/
1094 +
1095 + # python_fix_shebang apparently is not idempotent
1096 + local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]'
1097 + grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \
1098 + | xargs --null --no-run-if-empty -- sed -i -r "s:${shebang_regex}:\1:" || die
1099 +
1100 + local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* )
1101 + dostrip -x "${rados_classes[@]#${ED}}"
1102 +}
1103 +
1104 +pkg_postinst() {
1105 + readme.gentoo_print_elog
1106 +}
1107
1108 diff --git a/sys-cluster/ceph/ceph-14.2.9-r1.ebuild b/sys-cluster/ceph/ceph-14.2.9-r1.ebuild
1109 new file mode 100644
1110 index 00000000000..fc084cb8497
1111 --- /dev/null
1112 +++ b/sys-cluster/ceph/ceph-14.2.9-r1.ebuild
1113 @@ -0,0 +1,368 @@
1114 +# Copyright 1999-2020 Gentoo Authors
1115 +# Distributed under the terms of the GNU General Public License v2
1116 +
1117 +EAPI=7
1118 +PYTHON_COMPAT=( python3_{6,7} )
1119 +CMAKE_MAKEFILE_GENERATOR=emake
1120 +
1121 +DISTUTILS_OPTIONAL=1
1122 +
1123 +inherit check-reqs bash-completion-r1 cmake-utils distutils-r1 flag-o-matic \
1124 + multiprocessing python-r1 udev readme.gentoo-r1 toolchain-funcs \
1125 + systemd
1126 +
1127 +if [[ ${PV} == *9999* ]]; then
1128 + inherit git-r3
1129 + EGIT_REPO_URI="https://github.com/ceph/ceph.git"
1130 + SRC_URI=""
1131 +else
1132 + SRC_URI="https://download.ceph.com/tarballs/${P}.tar.gz"
1133 + KEYWORDS="~amd64 ~ppc64"
1134 +fi
1135 +
1136 +DESCRIPTION="Ceph distributed filesystem"
1137 +HOMEPAGE="https://ceph.com/"
1138 +
1139 +LICENSE="LGPL-2.1 CC-BY-SA-3.0 GPL-2 GPL-2+ LGPL-2+ BSD Boost-1.0 MIT public-domain"
1140 +SLOT="0"
1141 +
1142 +CPU_FLAGS_X86=(sse{,2,3,4_1,4_2} ssse3)
1143 +
1144 +IUSE="babeltrace +cephfs custom-cflags dpdk fuse grafana jemalloc kerberos ldap"
1145 +IUSE+=" libressl lttng +mgr numa rabbitmq +radosgw +ssl spdk"
1146 +IUSE+=" system-boost systemd +tcmalloc test xfs zfs"
1147 +IUSE+=" $(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})"
1148 +
1149 +COMMON_DEPEND="
1150 + acct-group/ceph
1151 + acct-user/ceph
1152 + virtual/libudev:=
1153 + app-arch/bzip2:=
1154 + app-arch/lz4:=
1155 + app-arch/snappy:=
1156 + app-arch/zstd:=
1157 + app-shells/bash:0
1158 + app-misc/jq:=
1159 + dev-libs/crypto++:=
1160 + dev-libs/leveldb:=[snappy,tcmalloc(-)?]
1161 + dev-libs/libaio:=
1162 + dev-libs/libnl:3=
1163 + dev-libs/libxml2:=
1164 + dev-libs/nss:=
1165 + sys-auth/oath-toolkit:=
1166 + sys-apps/coreutils
1167 + sys-apps/grep
1168 + sys-apps/keyutils:=
1169 + sys-apps/util-linux:=
1170 + sys-apps/sed
1171 + sys-apps/util-linux
1172 + sys-libs/libcap-ng:=
1173 + sys-libs/ncurses:0=
1174 + sys-libs/zlib:=
1175 + babeltrace? ( dev-util/babeltrace )
1176 + ldap? ( net-nds/openldap:= )
1177 + lttng? ( dev-util/lttng-ust:= )
1178 + fuse? ( sys-fs/fuse:0= )
1179 + kerberos? ( virtual/krb5 )
1180 + rabbitmq? ( net-libs/rabbitmq-c:= )
1181 + ssl? (
1182 + !libressl? ( dev-libs/openssl:= )
1183 + libressl? ( dev-libs/libressl:= )
1184 + )
1185 + xfs? ( sys-fs/xfsprogs:= )
1186 + zfs? ( sys-fs/zfs:= )
1187 + radosgw? (
1188 + dev-libs/expat:=
1189 + !libressl? (
1190 + dev-libs/openssl:=
1191 + net-misc/curl:=[curl_ssl_openssl]
1192 + )
1193 + libressl? (
1194 + dev-libs/libressl:=
1195 + net-misc/curl:=[curl_ssl_libressl]
1196 + )
1197 + )
1198 + system-boost? ( =dev-libs/boost-1.72*[threads,context,python,${PYTHON_USEDEP}] )
1199 + jemalloc? ( dev-libs/jemalloc:= )
1200 + !jemalloc? ( >=dev-util/google-perftools-2.6.1:= )
1201 + ${PYTHON_DEPS}
1202 +"
1203 +BDEPEND="
1204 + amd64? ( dev-lang/yasm )
1205 + x86? ( dev-lang/yasm )
1206 + app-arch/cpio
1207 + >=dev-util/cmake-3.5.0
1208 + dev-python/cython[${PYTHON_USEDEP}]
1209 + dev-python/sphinx
1210 + dev-util/cunit
1211 + dev-util/gperf
1212 + dev-util/valgrind
1213 + sys-apps/coreutils
1214 + sys-apps/findutils
1215 + sys-apps/grep
1216 + sys-apps/sed
1217 + sys-apps/which
1218 + sys-devel/bc
1219 + sys-devel/patch
1220 + virtual/pkgconfig
1221 + test? (
1222 + dev-python/coverage[${PYTHON_USEDEP}]
1223 + dev-python/virtualenv[${PYTHON_USEDEP}]
1224 + dev-python/requests-mock[${PYTHON_USEDEP}]
1225 + sys-apps/grep[pcre]
1226 + sys-fs/btrfs-progs
1227 + )
1228 +"
1229 +RDEPEND="${COMMON_DEPEND}
1230 + net-misc/socat
1231 + sys-apps/gptfdisk
1232 + sys-block/parted
1233 + sys-fs/cryptsetup
1234 + sys-fs/lvm2[-device-mapper-only(-)]
1235 + sys-fs/lsscsi
1236 + virtual/awk
1237 + dev-python/bcrypt[${PYTHON_USEDEP}]
1238 + dev-python/cherrypy[${PYTHON_USEDEP}]
1239 + dev-python/flask[${PYTHON_USEDEP}]
1240 + dev-python/jinja[${PYTHON_USEDEP}]
1241 + dev-python/pecan[${PYTHON_USEDEP}]
1242 + dev-python/prettytable[${PYTHON_USEDEP}]
1243 + dev-python/pyopenssl[${PYTHON_USEDEP}]
1244 + dev-python/requests[${PYTHON_USEDEP}]
1245 + dev-python/werkzeug[${PYTHON_USEDEP}]
1246 + mgr? (
1247 + dev-python/more-itertools[${PYTHON_USEDEP}]
1248 + dev-python/pyjwt[${PYTHON_USEDEP}]
1249 + dev-python/pyyaml[${PYTHON_USEDEP}]
1250 + dev-python/routes[${PYTHON_USEDEP}]
1251 + dev-python/six[${PYTHON_USEDEP}]
1252 + )
1253 +"
1254 +REQUIRED_USE="
1255 + ${PYTHON_REQUIRED_USE}
1256 + mgr? ( cephfs )
1257 + ?? ( jemalloc tcmalloc )
1258 + rabbitmq? ( radosgw )
1259 +"
1260 +
1261 +# the tests need root access
1262 +RESTRICT="test? ( userpriv )"
1263 +
1264 +# distribution tarball does not include everything needed for tests
1265 +RESTRICT+=" test"
1266 +
1267 +# false positives unless all USE flags are on
1268 +CMAKE_WARN_UNUSED_CLI="no"
1269 +
1270 +PATCHES=(
1271 + "${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch"
1272 + "${FILESDIR}/ceph-14.2.0-cflags.patch"
1273 + "${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch"
1274 + "${FILESDIR}/ceph-13.2.0-cflags.patch"
1275 + "${FILESDIR}/ceph-14.2.0-mgr-python-version.patch"
1276 + "${FILESDIR}/ceph-14.2.5-no-virtualenvs.patch"
1277 + "${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
1278 + "${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch"
1279 + "${FILESDIR}/ceph-14.2.0-link-crc32-Wstatically.patch"
1280 + "${FILESDIR}/ceph-14.2.0-cython-0.29.patch"
1281 + "${FILESDIR}/ceph-14.2.3-dpdk-compile-fix-1.patch"
1282 + "${FILESDIR}/ceph-14.2.4-python-executable.patch"
1283 + "${FILESDIR}/ceph-14.2.4-undefined-behaviour.patch"
1284 +)
1285 +
1286 +check-reqs_export_vars() {
1287 + if use amd64; then
1288 + CHECKREQS_DISK_BUILD="12G"
1289 + CHECKREQS_DISK_USR="460M"
1290 + else
1291 + CHECKREQS_DISK_BUILD="1400M"
1292 + CHECKREQS_DISK_USR="450M"
1293 + fi
1294 +
1295 + export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR
1296 +}
1297 +
1298 +pkg_pretend() {
1299 + check-reqs_export_vars
1300 + check-reqs_pkg_pretend
1301 +}
1302 +
1303 +pkg_setup() {
1304 + python_setup 'python3*'
1305 + check-reqs_export_vars
1306 + check-reqs_pkg_setup
1307 +}
1308 +
1309 +src_prepare() {
1310 + cmake-utils_src_prepare
1311 +
1312 + if use system-boost; then
1313 + eapply "${FILESDIR}/ceph-14.2.8-boost-sonames.patch"
1314 +
1315 + find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \
1316 + | xargs --null sed \
1317 + -e 's|Boost::|Boost_|g' \
1318 + -e 's|Boost_boost|boost_system|g' -i || die
1319 + fi
1320 +
1321 + sed -i -r "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \
1322 + src/bash_completion/CMakeLists.txt || die
1323 +
1324 + # remove tests that need root access
1325 + rm src/test/cli/ceph-authtool/cap*.t || die
1326 +}
1327 +
1328 +ceph_src_configure() {
1329 + local flag
1330 + local mycmakeargs=(
1331 + -DWITH_BABELTRACE=$(usex babeltrace)
1332 + -DWITH_CEPHFS=$(usex cephfs)
1333 + -DWITH_CEPHFS_SHELL=$(if python_is_python3; then usex cephfs; else echo OFF; fi)
1334 + -DWITH_DPDK=$(usex dpdk)
1335 + -DWITH_DPDK=$(usex spdk)
1336 + -DWITH_FUSE=$(usex fuse)
1337 + -DWITH_LTTNG=$(usex lttng)
1338 + -DWITH_GSSAPI=$(usex kerberos)
1339 + -DWITH_GRAFANA=$(usex grafana)
1340 + -DWITH_MGR=$(usex mgr)
1341 + -DWITH_MGR_DASHBOARD_FRONTEND=NO
1342 + -DWITH_NUMA=$(usex numa)
1343 + -DWITH_OPENLDAP=$(usex ldap)
1344 + -DMGR_PYTHON_VERSION=$(if python_is_python3; then echo 3; else echo 2; fi)
1345 + -DWITH_PYTHON3=$(if python_is_python3; then echo "ON"; else echo "OFF"; fi)
1346 + -DWITH_PYTHON2=$(if python_is_python3; then echo "OFF"; else echo "ON"; fi)
1347 + -DWITH_RADOSGW=$(usex radosgw)
1348 + -DWITH_RADOSGW_AMQP_ENDPOINT=$(usex rabbitmq)
1349 + -DWITH_SSL=$(usex ssl)
1350 + -DWITH_SYSTEMD=$(usex systemd)
1351 + -DWITH_TESTS=$(usex test)
1352 + -DWITH_XFS=$(usex xfs)
1353 + -DWITH_ZFS=$(usex zfs)
1354 + -DENABLE_SHARED="ON"
1355 + -DALLOCATOR=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')")
1356 + -DWITH_SYSTEM_BOOST=$(usex system-boost)
1357 + -DBOOST_J=$(makeopts_jobs)
1358 + -DWITH_RDMA=no
1359 + -DWITH_TBB=no
1360 + -DSYSTEMD_UNITDIR=$(systemd_get_systemunitdir)
1361 + -DEPYTHON_VERSION="${EPYTHON#python}"
1362 + -DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PN}-${PVR}"
1363 + -DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
1364 + #-Wno-dev
1365 + )
1366 + if use amd64 || use x86; then
1367 + for flag in ${CPU_FLAGS_X86[@]}; do
1368 + mycmakeargs+=("$(usex cpu_flags_x86_${flag} "-DHAVE_INTEL_${flag^^}=1")")
1369 + done
1370 + fi
1371 +
1372 + rm -f "${BUILD_DIR:-${S}}/CMakeCache.txt" \
1373 + || die "failed to remove cmake cache"
1374 +
1375 + cmake-utils_src_configure
1376 +
1377 + # bug #630232
1378 + sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \
1379 + "${BUILD_DIR:-${S}}"/include/acconfig.h \
1380 + || die "sed failed"
1381 +}
1382 +
1383 +src_configure() {
1384 + use custom-cflags || strip-flags
1385 + ceph_src_configure
1386 +}
1387 +
1388 +python_compile() {
1389 + local CMAKE_USE_DIR="${S}"
1390 + ceph_src_configure
1391 +
1392 + pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
1393 + emake VERBOSE=1 clean
1394 + emake VERBOSE=1 all
1395 +
1396 + # python modules are only compiled with "make install" so we need to do this to
1397 + # prevent doing a bunch of compilation in src_install
1398 + DESTDIR="${T}" emake VERBOSE=1 install
1399 + popd >/dev/null || die
1400 +}
1401 +
1402 +src_compile() {
1403 + cmake-utils_src_make VERBOSE=1 all
1404 +
1405 + # we have to do this here to prevent from building everything multiple times
1406 + python_copy_sources
1407 + python_foreach_impl python_compile
1408 +}
1409 +
1410 +src_test() {
1411 + make check || die "make check failed"
1412 +}
1413 +
1414 +python_install() {
1415 + local CMAKE_USE_DIR="${S}"
1416 + pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
1417 + DESTDIR="${ED}" emake VERBOSE=1 install
1418 + popd >/dev/null || die
1419 +
1420 + python_optimize
1421 +}
1422 +
1423 +src_install() {
1424 + cmake-utils_src_install
1425 + python_foreach_impl python_install
1426 +
1427 + find "${ED}" -name '*.la' -type f -delete || die
1428 +
1429 + exeinto /usr/$(get_libdir)/ceph
1430 + newexe "${BUILD_DIR}/bin/init-ceph" init-ceph
1431 +
1432 + insinto /etc/logrotate.d/
1433 + newins "${FILESDIR}"/ceph.logrotate-r2 ${PN}
1434 +
1435 + keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat
1436 +
1437 + fowners -R ceph:ceph /var/log/ceph
1438 +
1439 + newinitd "${FILESDIR}/rbdmap.initd" rbdmap
1440 + newinitd "${FILESDIR}/${PN}.initd-r12" ${PN}
1441 + newconfd "${FILESDIR}/${PN}.confd-r5" ${PN}
1442 +
1443 + insinto /etc/sysctl.d
1444 + newins "${FILESDIR}"/sysctld 90-${PN}.conf
1445 +
1446 + use tcmalloc && newenvd "${FILESDIR}"/envd-tcmalloc 99${PN}-tcmalloc
1447 +
1448 + # units aren't installed by the build system unless systemd is enabled
1449 + # so no point installing these with the USE flag disabled
1450 + if use systemd; then
1451 + systemd_install_serviced "${FILESDIR}/ceph-mds_at.service.conf" \
1452 + "ceph-mds@.service"
1453 +
1454 + systemd_install_serviced "${FILESDIR}/ceph-osd_at.service.conf" \
1455 + "ceph-osd@.service"
1456 + fi
1457 +
1458 + udev_dorules udev/*.rules
1459 +
1460 + readme.gentoo_create_doc
1461 +
1462 + python_setup 'python3*'
1463 +
1464 + # bug #630232
1465 + sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \
1466 + || die "sed failed"
1467 +
1468 + python_fix_shebang "${ED}"/usr/{,s}bin/
1469 +
1470 + # python_fix_shebang apparently is not idempotent
1471 + local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]'
1472 + grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \
1473 + | xargs --null --no-run-if-empty -- sed -i -r "s:${shebang_regex}:\1:" || die
1474 +
1475 + local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* )
1476 + dostrip -x "${rados_classes[@]#${ED}}"
1477 +}
1478 +
1479 +pkg_postinst() {
1480 + readme.gentoo_print_elog
1481 +}
1482
1483 diff --git a/sys-cluster/ceph/ceph-15.2.1-r1.ebuild b/sys-cluster/ceph/ceph-15.2.1-r1.ebuild
1484 new file mode 100644
1485 index 00000000000..68a4aafed5c
1486 --- /dev/null
1487 +++ b/sys-cluster/ceph/ceph-15.2.1-r1.ebuild
1488 @@ -0,0 +1,389 @@
1489 +# Copyright 1999-2020 Gentoo Authors
1490 +# Distributed under the terms of the GNU General Public License v2
1491 +
1492 +EAPI=7
1493 +PYTHON_COMPAT=( python3_{6,7,8} )
1494 +CMAKE_MAKEFILE_GENERATOR=emake
1495 +
1496 +DISTUTILS_OPTIONAL=1
1497 +
1498 +inherit check-reqs bash-completion-r1 cmake-utils distutils-r1 flag-o-matic \
1499 + multiprocessing python-r1 udev readme.gentoo-r1 toolchain-funcs \
1500 + systemd
1501 +
1502 +if [[ ${PV} == *9999* ]]; then
1503 + inherit git-r3
1504 + EGIT_REPO_URI="https://github.com/ceph/ceph.git"
1505 + SRC_URI=""
1506 +else
1507 + SRC_URI="https://download.ceph.com/tarballs/${P}.tar.gz"
1508 + KEYWORDS="~amd64"
1509 +fi
1510 +
1511 +DESCRIPTION="Ceph distributed filesystem"
1512 +HOMEPAGE="https://ceph.com/"
1513 +
1514 +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"
1515 +SLOT="0"
1516 +
1517 +CPU_FLAGS_X86=(sse{,2,3,4_1,4_2} ssse3)
1518 +
1519 +IUSE="babeltrace +cephfs custom-cflags dpdk fuse grafana jemalloc kafka kerberos ldap
1520 + libressl lttng +mgr numa +openssl pmdk rabbitmq +radosgw rbd-rwl +ssl spdk
1521 + system-boost systemd +tcmalloc test uring xfs zfs"
1522 +IUSE+=" $(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})"
1523 +
1524 +COMMON_DEPEND="
1525 + acct-group/ceph
1526 + acct-user/ceph
1527 + virtual/libudev:=
1528 + app-arch/bzip2:=
1529 + app-arch/lz4:=
1530 + app-arch/snappy:=
1531 + app-arch/zstd:=
1532 + app-shells/bash:0
1533 + app-misc/jq:=
1534 + dev-libs/crypto++:=
1535 + dev-libs/leveldb:=[snappy,tcmalloc(-)?]
1536 + dev-libs/libaio:=
1537 + dev-libs/libfmt:=
1538 + dev-libs/libnl:3=
1539 + dev-libs/libxml2:=
1540 + dev-libs/xmlsec:=[!openssl?,!libressl?]
1541 + dev-cpp/yaml-cpp:=
1542 + dev-libs/nss:=
1543 + dev-libs/protobuf:=
1544 + net-dns/c-ares:=
1545 + net-libs/gnutls:=
1546 + sys-auth/oath-toolkit:=
1547 + sys-apps/coreutils
1548 + sys-apps/grep
1549 + sys-apps/hwloc:=
1550 + sys-apps/keyutils:=
1551 + sys-apps/util-linux:=
1552 + sys-apps/sed
1553 + sys-apps/util-linux
1554 + sys-libs/libcap-ng:=
1555 + sys-libs/ncurses:0=
1556 + sys-libs/zlib:=
1557 + sys-process/numactl:=
1558 + x11-libs/libpciaccess:=
1559 + babeltrace? ( dev-util/babeltrace )
1560 + fuse? ( sys-fs/fuse:0= )
1561 + jemalloc? ( dev-libs/jemalloc:= )
1562 + !jemalloc? ( >=dev-util/google-perftools-2.6.1:= )
1563 + kafka? ( dev-libs/librdkafka:= )
1564 + kerberos? ( virtual/krb5 )
1565 + ldap? ( net-nds/openldap:= )
1566 + lttng? ( dev-util/lttng-ust:= )
1567 + rabbitmq? ( net-libs/rabbitmq-c:= )
1568 + radosgw? (
1569 + dev-libs/expat:=
1570 + openssl? (
1571 + dev-libs/openssl:=
1572 + net-misc/curl:=[curl_ssl_openssl]
1573 + )
1574 + libressl? (
1575 + dev-libs/libressl:=
1576 + net-misc/curl:=[curl_ssl_libressl]
1577 + )
1578 + )
1579 + ssl? (
1580 + openssl? ( dev-libs/openssl:= )
1581 + libressl? ( dev-libs/libressl:= )
1582 + )
1583 + system-boost? ( =dev-libs/boost-1.72*[threads,context,python,${PYTHON_USEDEP}] )
1584 + uring? ( sys-libs/liburing:= )
1585 + xfs? ( sys-fs/xfsprogs:= )
1586 + zfs? ( sys-fs/zfs:= )
1587 + ${PYTHON_DEPS}
1588 +"
1589 +BDEPEND="
1590 + amd64? ( dev-lang/yasm )
1591 + x86? ( dev-lang/yasm )
1592 + app-arch/cpio
1593 + >=dev-util/cmake-3.5.0
1594 + dev-python/cython[${PYTHON_USEDEP}]
1595 + dev-python/sphinx
1596 + dev-util/cunit
1597 + dev-util/gperf
1598 + dev-util/ragel
1599 + dev-util/valgrind
1600 + sys-apps/coreutils
1601 + sys-apps/findutils
1602 + sys-apps/grep
1603 + sys-apps/sed
1604 + sys-apps/which
1605 + sys-devel/bc
1606 + sys-devel/patch
1607 + virtual/pkgconfig
1608 + test? (
1609 + dev-python/coverage[${PYTHON_USEDEP}]
1610 + dev-python/virtualenv[${PYTHON_USEDEP}]
1611 + dev-python/requests-mock[${PYTHON_USEDEP}]
1612 + sys-apps/grep[pcre]
1613 + sys-fs/btrfs-progs
1614 + )
1615 +"
1616 +RDEPEND="${COMMON_DEPEND}
1617 + app-admin/sudo
1618 + net-misc/socat
1619 + sys-apps/gptfdisk
1620 + sys-apps/nvme-cli
1621 + >=sys-apps/smartmontools-7.0
1622 + sys-block/parted
1623 + sys-fs/cryptsetup
1624 + sys-fs/lsscsi
1625 + sys-fs/lvm2[-device-mapper-only(-)]
1626 + virtual/awk
1627 + dev-python/bcrypt[${PYTHON_USEDEP}]
1628 + dev-python/cherrypy[${PYTHON_USEDEP}]
1629 + dev-python/python-dateutil[${PYTHON_USEDEP}]
1630 + dev-python/flask[${PYTHON_USEDEP}]
1631 + dev-python/jinja[${PYTHON_USEDEP}]
1632 + dev-python/pecan[${PYTHON_USEDEP}]
1633 + dev-python/prettytable[${PYTHON_USEDEP}]
1634 + dev-python/pyopenssl[${PYTHON_USEDEP}]
1635 + dev-python/requests[${PYTHON_USEDEP}]
1636 + dev-python/werkzeug[${PYTHON_USEDEP}]
1637 + mgr? (
1638 + dev-python/jsonpatch[${PYTHON_USEDEP}]
1639 + dev-python/more-itertools[${PYTHON_USEDEP}]
1640 + dev-python/numpy[${PYTHON_USEDEP}]
1641 + dev-python/pyjwt[${PYTHON_USEDEP}]
1642 + dev-python/pyyaml[${PYTHON_USEDEP}]
1643 + dev-python/routes[${PYTHON_USEDEP}]
1644 + sci-libs/scipy[${PYTHON_USEDEP}]
1645 + sci-libs/scikits_learn[${PYTHON_USEDEP}]
1646 + dev-python/six[${PYTHON_USEDEP}]
1647 + )
1648 +"
1649 +REQUIRED_USE="
1650 + ${PYTHON_REQUIRED_USE}
1651 + ^^ ( openssl libressl )
1652 + kafka? ( radosgw )
1653 + rabbitmq? ( radosgw )
1654 + mgr? ( cephfs )
1655 + ?? ( jemalloc tcmalloc )
1656 + rabbitmq? ( radosgw )
1657 +"
1658 +RESTRICT="!test? ( test )"
1659 +
1660 +# the tests need root access
1661 +RESTRICT="test? ( userpriv )"
1662 +
1663 +# distribution tarball does not include everything needed for tests
1664 +RESTRICT+=" test"
1665 +
1666 +# false positives unless all USE flags are on
1667 +CMAKE_WARN_UNUSED_CLI="no"
1668 +
1669 +PATCHES=(
1670 + "${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch"
1671 + "${FILESDIR}/ceph-14.2.0-cflags.patch"
1672 + "${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch"
1673 + "${FILESDIR}/ceph-13.2.0-cflags.patch"
1674 + "${FILESDIR}/ceph-15.2.0-no-virtualenvs.patch"
1675 + "${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
1676 + "${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch"
1677 + "${FILESDIR}/ceph-14.2.0-link-crc32-statically.patch"
1678 + "${FILESDIR}/ceph-14.2.0-cython-0.29.patch"
1679 + "${FILESDIR}/ceph-15.2.0-rocksdb-cmake.patch"
1680 +)
1681 +
1682 +check-reqs_export_vars() {
1683 + if use amd64; then
1684 + CHECKREQS_DISK_BUILD="12G"
1685 + CHECKREQS_DISK_USR="460M"
1686 + else
1687 + CHECKREQS_DISK_BUILD="1400M"
1688 + CHECKREQS_DISK_USR="450M"
1689 + fi
1690 +
1691 + export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR
1692 +}
1693 +
1694 +pkg_pretend() {
1695 + check-reqs_export_vars
1696 + check-reqs_pkg_pretend
1697 +}
1698 +
1699 +pkg_setup() {
1700 + python_setup 'python3*'
1701 + check-reqs_export_vars
1702 + check-reqs_pkg_setup
1703 +}
1704 +
1705 +src_prepare() {
1706 + cmake-utils_src_prepare
1707 +
1708 + if use system-boost; then
1709 + find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \
1710 + | xargs --null sed -r \
1711 + -e 's|Boost::|Boost_|g' \
1712 + -e 's|Boost_|boost_|g' \
1713 + -e 's|[Bb]oost_boost|boost_system|g' -i || die
1714 + fi
1715 +
1716 + sed -i -r "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \
1717 + src/bash_completion/CMakeLists.txt || die
1718 +
1719 + # remove tests that need root access
1720 + rm src/test/cli/ceph-authtool/cap*.t || die
1721 +}
1722 +
1723 +ceph_src_configure() {
1724 + local flag
1725 + local mycmakeargs=(
1726 + -DWITH_BABELTRACE=$(usex babeltrace)
1727 + -DWITH_BLUESTORE_PMEM=$(usex pmdk)
1728 + -DWITH_CEPHFS=$(usex cephfs)
1729 + -DWITH_CEPHFS_SHELL=$(usex cephfs)
1730 + -DWITH_DPDK=$(usex dpdk)
1731 + -DWITH_DPDK=$(usex spdk)
1732 + -DWITH_FUSE=$(usex fuse)
1733 + -DWITH_LTTNG=$(usex lttng)
1734 + -DWITH_GSSAPI=$(usex kerberos)
1735 + -DWITH_GRAFANA=$(usex grafana)
1736 + -DWITH_MGR=$(usex mgr)
1737 + -DWITH_MGR_DASHBOARD_FRONTEND=OFF
1738 + -DWITH_NUMA=$(usex numa)
1739 + -DWITH_OPENLDAP=$(usex ldap)
1740 + -DWITH_PYTHON3=3
1741 + -DWITH_RADOSGW=$(usex radosgw)
1742 + -DWITH_RADOSGW_AMQP_ENDPOINT=$(usex rabbitmq)
1743 + -DWITH_RADOSGW_KAFKA_ENDPOINT=$(usex kafka)
1744 + -DWITH_RBD_RWL=$(usex rbd-rwl)
1745 + -DWITH_SSL=$(usex ssl)
1746 + -DWITH_SYSTEMD=$(usex systemd)
1747 + -DWITH_TESTS=$(usex test)
1748 + -DWITH_LIBURING=$(usex uring)
1749 + -DWITH_XFS=$(usex xfs)
1750 + -DWITH_ZFS=$(usex zfs)
1751 + -DENABLE_SHARED="ON"
1752 + -DALLOCATOR=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')")
1753 + -DWITH_SYSTEM_BOOST=$(usex system-boost)
1754 + -DBOOST_J=$(makeopts_jobs)
1755 + -DWITH_RDMA=OFF
1756 + -DWITH_TBB=OFF
1757 + -DSYSTEMD_UNITDIR=$(systemd_get_systemunitdir)
1758 + -DEPYTHON_VERSION="${EPYTHON#python}"
1759 + -DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PN}-${PVR}"
1760 + -DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
1761 + )
1762 + if use amd64 || use x86; then
1763 + for flag in ${CPU_FLAGS_X86[@]}; do
1764 + mycmakeargs+=("$(usex cpu_flags_x86_${flag} "-DHAVE_INTEL_${flag^^}=1")")
1765 + done
1766 + fi
1767 +
1768 + rm -f "${BUILD_DIR:-${S}}/CMakeCache.txt" \
1769 + || die "failed to remove cmake cache"
1770 +
1771 + cmake-utils_src_configure
1772 +
1773 + # bug #630232
1774 + sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \
1775 + "${BUILD_DIR:-${S}}"/include/acconfig.h \
1776 + || die "sed failed"
1777 +}
1778 +
1779 +src_configure() {
1780 + use custom-cflags || strip-flags
1781 + ceph_src_configure
1782 +}
1783 +
1784 +python_compile() {
1785 + local CMAKE_USE_DIR="${S}"
1786 + ceph_src_configure
1787 +
1788 + pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
1789 + emake VERBOSE=1 clean
1790 + emake VERBOSE=1 all
1791 +
1792 + # python modules are only compiled with "make install" so we need to do this to
1793 + # prevent doing a bunch of compilation in src_install
1794 + DESTDIR="${T}" emake VERBOSE=1 install
1795 + popd >/dev/null || die
1796 +}
1797 +
1798 +src_compile() {
1799 + cmake-utils_src_make VERBOSE=1 all
1800 +
1801 + # we have to do this here to prevent from building everything multiple times
1802 + python_copy_sources
1803 + python_foreach_impl python_compile
1804 +}
1805 +
1806 +src_test() {
1807 + make check || die "make check failed"
1808 +}
1809 +
1810 +python_install() {
1811 + local CMAKE_USE_DIR="${S}"
1812 + pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
1813 + DESTDIR="${ED}" emake VERBOSE=1 install
1814 + popd >/dev/null || die
1815 +
1816 + python_optimize
1817 +}
1818 +
1819 +src_install() {
1820 + cmake-utils_src_install
1821 + python_foreach_impl python_install
1822 +
1823 + find "${ED}" -name '*.la' -type f -delete || die
1824 +
1825 + exeinto /usr/$(get_libdir)/ceph
1826 + newexe "${BUILD_DIR}/bin/init-ceph" init-ceph
1827 +
1828 + insinto /etc/logrotate.d/
1829 + newins "${FILESDIR}"/ceph.logrotate-r2 ${PN}
1830 +
1831 + keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat
1832 +
1833 + fowners -R ceph:ceph /var/log/ceph
1834 +
1835 + newinitd "${FILESDIR}/rbdmap.initd" rbdmap
1836 + newinitd "${FILESDIR}/${PN}.initd-r12" ${PN}
1837 + newconfd "${FILESDIR}/${PN}.confd-r5" ${PN}
1838 +
1839 + insinto /etc/sysctl.d
1840 + newins "${FILESDIR}"/sysctld 90-${PN}.conf
1841 +
1842 + use tcmalloc && newenvd "${FILESDIR}"/envd-tcmalloc 99${PN}-tcmalloc
1843 +
1844 + # units aren't installed by the build system unless systemd is enabled
1845 + # so no point installing these with the USE flag disabled
1846 + if use systemd; then
1847 + systemd_install_serviced "${FILESDIR}/ceph-mds_at.service.conf" \
1848 + "ceph-mds@.service"
1849 +
1850 + systemd_install_serviced "${FILESDIR}/ceph-osd_at.service.conf" \
1851 + "ceph-osd@.service"
1852 + fi
1853 +
1854 + udev_dorules udev/*.rules
1855 +
1856 + readme.gentoo_create_doc
1857 +
1858 + python_setup 'python3*'
1859 +
1860 + # bug #630232
1861 + sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \
1862 + || die "sed failed"
1863 +
1864 + python_fix_shebang "${ED}"/usr/{,s}bin/
1865 +
1866 + # python_fix_shebang apparently is not idempotent
1867 + local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]'
1868 + grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \
1869 + | xargs --null --no-run-if-empty -- sed -i -r "s:${shebang_regex}:\1:" || die
1870 +
1871 + local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* )
1872 + dostrip -x "${rados_classes[@]#${ED}}"
1873 +}
1874 +
1875 +pkg_postinst() {
1876 + readme.gentoo_print_elog
1877 +}