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: Wed, 16 Sep 2020 23:52:52
Message-Id: 1600300362.24a68b5526b880b6afaf22cf56ef1fd8a7ff9c89.chutzpah@gentoo
1 commit: 24a68b5526b880b6afaf22cf56ef1fd8a7ff9c89
2 Author: Patrick McLean <patrick.mclean <AT> sony <DOT> com>
3 AuthorDate: Wed Sep 16 23:52:34 2020 +0000
4 Commit: Patrick McLean <chutzpah <AT> gentoo <DOT> org>
5 CommitDate: Wed Sep 16 23:52:42 2020 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=24a68b55
7
8 sys-cluster/ceph: Remove old
9
10 Copyright: Sony Interactive Entertainment Inc.
11 Package-Manager: Portage-3.0.7, Repoman-3.0.1
12 Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>
13
14 sys-cluster/ceph/Manifest | 2 -
15 sys-cluster/ceph/ceph-14.2.10-r3.ebuild | 396 --------------------------------
16 sys-cluster/ceph/ceph-14.2.9-r1.ebuild | 366 -----------------------------
17 3 files changed, 764 deletions(-)
18
19 diff --git a/sys-cluster/ceph/Manifest b/sys-cluster/ceph/Manifest
20 index 450e1c1f19b..0c0b72e38c5 100644
21 --- a/sys-cluster/ceph/Manifest
22 +++ b/sys-cluster/ceph/Manifest
23 @@ -1,6 +1,4 @@
24 DIST ceph-12.2.12.tar.gz 77467762 BLAKE2B a5224432121db9ef49c1e22771d847399df2f7881cd9c2e185eca12096efb79d21578659d248eb5bae678924983d57452d370e23ab7e78663764d7bea834a461 SHA512 e694c9a8c1f9836c08fb74b54423bdc16d4900252e34643c56cf1a615d4dacddfb13df06a6a9f68bb9d438f5f07069ed358f9fa4b5a362640a3046f9c7722dcc
25 -DIST ceph-14.2.10.tar.gz 129274835 BLAKE2B b3f14897db478418b982281bf367a0c497cdfa8991a73e277b5582663c159550f3eff5bdc78a506e267eae8d59c59b19b8a9294802cb532fd7dfa9f612ed0e53 SHA512 5ec95b933a360183f89404446c5e1912a81853dfb1134bb8868bc6675a0185420c2bf1eba72308014a008f617aeb8733d51eb8c8eea5d472c32514cf483f4ea6
26 DIST ceph-14.2.11.tar.gz 129327263 BLAKE2B fb04f3fde6642905dd21836c7472cf3b6cb484f69367ecf01b7d427c757e0fd1db4bd483bf9b0e485e1f8924a8e9201e8d47713a1de9281d5d96e45939bd1078 SHA512 765e8982d457cfd900acddc8f82c23824b32dc6d925d45e7693cba48c06fab798b6d57991dc9ad18a9ace9aff6fb2b917bd97f2d6435a7caceb03c9733e9602a
27 -DIST ceph-14.2.9.tar.gz 128419205 BLAKE2B bace7469d9066a3da7320a0eb894013fae5b7139c15679dddae7df28c593a1029956234a1ba0d3bbdf1639e3a975aa776c695efefb915113a16099c80d563675 SHA512 0a26372d0037c32fe1d24be880e272fcce5089b02adfb0e791e0406155f6e66c913fa43762028f49c1fa3f30c6c8d819c521dd11702a37cc7040dfd3097c068e
28 DIST ceph-15.2.4.tar.gz 148011928 BLAKE2B c0222725227cf922ed10bb19840b8cbfe0c0b8ae77a4f83f03a95c3fc198165740f7a1dee5e1983e9403634ce389c858e71ed3f2731202630e19961a5de0247a SHA512 94e9b4c87d9f27dbfc9961b853f2cf159d65b614bf50ac3dabad9d801a181c547550ab4bca1f48c7a6e11aa6188e5858b110a9023dc214a043ed5ba375b3dee2
29 DIST ceph-15.2.5.tar.gz 149219528 BLAKE2B 8f2cea9a258b7c530bff72a46d45fabf5364cf919f098c7d77857afa0dfdbcd7c290aa5a0d88cce1d99923588cc303d27c0b85179378ff1c394d9ce0f135a1b1 SHA512 55de068886c48293e92ef95cf8343ae44825fd2bf9c3fa7d47cda92907a47bae79e0af730cd34d0155b0777901d0fd6f9d1f30537c66c54c95098df7368fca2e
30
31 diff --git a/sys-cluster/ceph/ceph-14.2.10-r3.ebuild b/sys-cluster/ceph/ceph-14.2.10-r3.ebuild
32 deleted file mode 100644
33 index 9da1e1fe06c..00000000000
34 --- a/sys-cluster/ceph/ceph-14.2.10-r3.ebuild
35 +++ /dev/null
36 @@ -1,396 +0,0 @@
37 -# Copyright 1999-2020 Gentoo Authors
38 -# Distributed under the terms of the GNU General Public License v2
39 -
40 -EAPI=7
41 -PYTHON_COMPAT=( python3_{6,7,8} )
42 -CMAKE_MAKEFILE_GENERATOR=emake
43 -
44 -DISTUTILS_OPTIONAL=1
45 -
46 -inherit check-reqs bash-completion-r1 cmake distutils-r1 flag-o-matic \
47 - python-r1 udev readme.gentoo-r1 toolchain-funcs systemd tmpfiles
48 -
49 -if [[ ${PV} == *9999* ]]; then
50 - inherit git-r3
51 - EGIT_REPO_URI="https://github.com/ceph/ceph.git"
52 - SRC_URI=""
53 -else
54 - SRC_URI="https://download.ceph.com/tarballs/${P}.tar.gz"
55 - KEYWORDS="~amd64 ~ppc64"
56 -fi
57 -
58 -DESCRIPTION="Ceph distributed filesystem"
59 -HOMEPAGE="https://ceph.com/"
60 -
61 -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"
62 -SLOT="0"
63 -
64 -CPU_FLAGS_X86=(sse{,2,3,4_1,4_2} ssse3)
65 -
66 -IUSE="babeltrace +cephfs custom-cflags diskprediction dpdk fuse grafana jemalloc
67 - kafka kerberos ldap libressl lttng +mgr numa +openssl rabbitmq +radosgw +ssl
68 - spdk system-boost systemd +tcmalloc test xfs zfs"
69 -IUSE+=" $(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})"
70 -
71 -DEPEND="
72 - acct-group/ceph
73 - acct-user/ceph
74 - virtual/libudev:=
75 - app-arch/bzip2:=
76 - app-arch/lz4:=
77 - app-arch/snappy:=
78 - app-arch/zstd:=
79 - app-shells/bash:0
80 - app-misc/jq:=
81 - dev-libs/crypto++:=
82 - dev-libs/leveldb:=[snappy,tcmalloc(-)?]
83 - dev-libs/libaio:=
84 - dev-libs/libnl:3=
85 - dev-libs/libxml2:=
86 - dev-libs/xmlsec:=[!openssl?,!libressl?]
87 - dev-cpp/yaml-cpp:=
88 - dev-libs/nss:=
89 - dev-libs/protobuf:=
90 - net-dns/c-ares:=
91 - net-libs/gnutls:=
92 - sys-auth/oath-toolkit:=
93 - sys-apps/coreutils
94 - sys-apps/grep
95 - sys-apps/hwloc:=
96 - sys-apps/keyutils:=
97 - sys-apps/util-linux:=
98 - sys-apps/sed
99 - sys-apps/util-linux
100 - sys-libs/libcap-ng:=
101 - sys-libs/ncurses:0=
102 - sys-libs/zlib:=
103 - sys-process/numactl:=
104 - x11-libs/libpciaccess:=
105 - babeltrace? ( dev-util/babeltrace )
106 - fuse? ( sys-fs/fuse:0= )
107 - jemalloc? ( dev-libs/jemalloc:= )
108 - !jemalloc? ( >=dev-util/google-perftools-2.6.1:= )
109 - kafka? ( dev-libs/librdkafka:= )
110 - kerberos? ( virtual/krb5 )
111 - ldap? ( net-nds/openldap:= )
112 - lttng? ( dev-util/lttng-ust:= )
113 - rabbitmq? ( net-libs/rabbitmq-c:= )
114 - radosgw? (
115 - dev-libs/expat:=
116 - openssl? (
117 - dev-libs/openssl:=
118 - net-misc/curl:=[curl_ssl_openssl]
119 - )
120 - libressl? (
121 - dev-libs/libressl:=
122 - net-misc/curl:=[curl_ssl_libressl]
123 - )
124 - )
125 - ssl? (
126 - openssl? ( dev-libs/openssl:= )
127 - libressl? ( dev-libs/libressl:= )
128 - )
129 - system-boost? ( =dev-libs/boost-1.72*[threads,context,python,${PYTHON_USEDEP}] )
130 - xfs? ( sys-fs/xfsprogs:= )
131 - zfs? ( sys-fs/zfs:= )
132 - ${PYTHON_DEPS}
133 -"
134 -BDEPEND="
135 - amd64? ( dev-lang/yasm )
136 - x86? ( dev-lang/yasm )
137 - app-arch/cpio
138 - >=dev-util/cmake-3.5.0
139 - dev-python/cython[${PYTHON_USEDEP}]
140 - dev-python/sphinx
141 - dev-util/cunit
142 - dev-util/gperf
143 - dev-util/ragel
144 - dev-util/valgrind
145 - sys-apps/coreutils
146 - sys-apps/findutils
147 - sys-apps/grep
148 - sys-apps/sed
149 - sys-apps/which
150 - sys-devel/bc
151 - sys-devel/patch
152 - virtual/pkgconfig
153 - test? (
154 - dev-python/coverage[${PYTHON_USEDEP}]
155 - dev-python/virtualenv[${PYTHON_USEDEP}]
156 - dev-python/requests-mock[${PYTHON_USEDEP}]
157 - sys-apps/grep[pcre]
158 - sys-fs/btrfs-progs
159 - )
160 -"
161 -RDEPEND="${DEPEND}
162 - app-admin/sudo
163 - net-misc/socat
164 - sys-apps/gptfdisk
165 - >=sys-apps/smartmontools-7.0
166 - sys-block/parted
167 - sys-fs/cryptsetup
168 - sys-fs/lsscsi
169 - sys-fs/lvm2[-device-mapper-only(-)]
170 - virtual/awk
171 - dev-python/bcrypt[${PYTHON_USEDEP}]
172 - dev-python/cherrypy[${PYTHON_USEDEP}]
173 - dev-python/flask[${PYTHON_USEDEP}]
174 - dev-python/jinja[${PYTHON_USEDEP}]
175 - dev-python/pecan[${PYTHON_USEDEP}]
176 - dev-python/prettytable[${PYTHON_USEDEP}]
177 - dev-python/pyopenssl[${PYTHON_USEDEP}]
178 - dev-python/requests[${PYTHON_USEDEP}]
179 - dev-python/werkzeug[${PYTHON_USEDEP}]
180 - mgr? (
181 - dev-python/more-itertools[${PYTHON_USEDEP}]
182 - dev-python/numpy[${PYTHON_USEDEP}]
183 - dev-python/pyjwt[${PYTHON_USEDEP}]
184 - dev-python/pyyaml[${PYTHON_USEDEP}]
185 - dev-python/routes[${PYTHON_USEDEP}]
186 - diskprediction? (
187 - $(python_gen_cond_dep '<sci-libs/scipy-1.4.0[${PYTHON_USEDEP}]' python3_{6,7})
188 - )
189 - sci-libs/scikits_learn[${PYTHON_USEDEP}]
190 - dev-python/six[${PYTHON_USEDEP}]
191 - )
192 -"
193 -# diskprediction needs older scipy not compatible with py38
194 -# bug #724438
195 -REQUIRED_USE="
196 - ${PYTHON_REQUIRED_USE}
197 - ?? ( jemalloc tcmalloc )
198 - ^^ ( openssl libressl )
199 - diskprediction? ( mgr !python_targets_python3_8 )
200 - kafka? ( radosgw )
201 - mgr? ( cephfs )
202 - rabbitmq? ( radosgw )
203 -"
204 -RESTRICT="!test? ( test )"
205 -
206 -# the tests need root access
207 -RESTRICT="test? ( userpriv )"
208 -
209 -# distribution tarball does not include everything needed for tests
210 -RESTRICT+=" test"
211 -
212 -# create a non-debug release
213 -CMAKE_BUILD_TYPE=RelWithDebInfo
214 -
215 -# false positives unless all USE flags are on
216 -CMAKE_WARN_UNUSED_CLI=no
217 -
218 -PATCHES=(
219 - "${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch"
220 - "${FILESDIR}/ceph-14.2.0-cflags.patch"
221 - "${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch"
222 - "${FILESDIR}/ceph-13.2.0-cflags.patch"
223 - "${FILESDIR}/ceph-14.2.0-mgr-python-version.patch"
224 - "${FILESDIR}/ceph-14.2.5-no-virtualenvs.patch"
225 - "${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
226 - "${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch"
227 - "${FILESDIR}/ceph-14.2.0-link-crc32-statically.patch"
228 - "${FILESDIR}/ceph-14.2.0-cython-0.29.patch"
229 - "${FILESDIR}/ceph-14.2.3-dpdk-compile-fix-1.patch"
230 - "${FILESDIR}/ceph-14.2.4-python-executable.patch"
231 - "${FILESDIR}/ceph-14.2.4-undefined-behaviour.patch"
232 - "${FILESDIR}/ceph-14.2.10-missing-includes.patch"
233 - "${FILESDIR}/ceph-14.2.10-python-warnings.patch"
234 - "${FILESDIR}/ceph-14.2.10-build-without-mgr.patch"
235 -)
236 -
237 -check-reqs_export_vars() {
238 - CHECKREQS_DISK_BUILD="5200M"
239 - CHECKREQS_DISK_USR="510M"
240 -
241 - export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR
242 -}
243 -
244 -pkg_pretend() {
245 - check-reqs_export_vars
246 - check-reqs_pkg_pretend
247 -}
248 -
249 -pkg_setup() {
250 - python_setup
251 - check-reqs_export_vars
252 - check-reqs_pkg_setup
253 -}
254 -
255 -src_prepare() {
256 - cmake_src_prepare
257 -
258 - if use system-boost; then
259 - find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \
260 - | xargs --null sed -r \
261 - -e 's|Boost::|boost_|g' \
262 - -e 's|Boost_|boost_|g' \
263 - -e 's|[Bb]oost_boost|boost_system|g' -i || die
264 - fi
265 -
266 - sed -i -r "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \
267 - src/bash_completion/CMakeLists.txt || die
268 -
269 - if ! use diskprediction; then
270 - rm -rf src/pybind/mgr/diskprediction_local || die
271 - fi
272 -
273 - # remove tests that need root access
274 - rm src/test/cli/ceph-authtool/cap*.t || die
275 -}
276 -
277 -ceph_src_configure() {
278 - local flag
279 - local mycmakeargs=(
280 - -DWITH_BABELTRACE=$(usex babeltrace)
281 - -DWITH_CEPHFS=$(usex cephfs)
282 - -DWITH_CEPHFS_SHELL=$(usex cephfs)
283 - -DWITH_DPDK=$(usex dpdk)
284 - -DWITH_SPDK=$(usex spdk)
285 - -DWITH_FUSE=$(usex fuse)
286 - -DWITH_LTTNG=$(usex lttng)
287 - -DWITH_GSSAPI=$(usex kerberos)
288 - -DWITH_GRAFANA=$(usex grafana)
289 - -DWITH_MGR=$(usex mgr)
290 - -DWITH_MGR_DASHBOARD_FRONTEND=OFF
291 - -DWITH_NUMA=$(usex numa)
292 - -DWITH_OPENLDAP=$(usex ldap)
293 - -DWITH_PYTHON3=3
294 - -DWITH_RADOSGW=$(usex radosgw)
295 - -DWITH_RADOSGW_AMQP_ENDPOINT=$(usex rabbitmq)
296 - -DWITH_RADOSGW_KAFKA_ENDPOINT=$(usex kafka)
297 - -DWITH_SSL=$(usex ssl)
298 - -DWITH_SYSTEMD=$(usex systemd)
299 - -DWITH_TESTS=$(usex test)
300 - -DWITH_XFS=$(usex xfs)
301 - -DWITH_ZFS=$(usex zfs)
302 - -DENABLE_SHARED="ON"
303 - -DALLOCATOR=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')")
304 - -DWITH_SYSTEM_BOOST=$(usex system-boost)
305 - -DBOOST_J=$(makeopts_jobs)
306 - -DWITH_RDMA=OFF
307 - -DWITH_TBB=OFF
308 - -DSYSTEMD_UNITDIR=$(systemd_get_systemunitdir)
309 - -DCMAKE_INSTALL_SYSTEMD_SERVICEDIR=$(systemd_get_systemunitdir)
310 - -DEPYTHON_VERSION="${EPYTHON#python}"
311 - -DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PN}-${PVR}"
312 - -DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
313 - -Wno-dev
314 - )
315 - if use amd64 || use x86; then
316 - for flag in ${CPU_FLAGS_X86[@]}; do
317 - mycmakeargs+=("$(usex cpu_flags_x86_${flag} "-DHAVE_INTEL_${flag^^}=1")")
318 - done
319 - fi
320 -
321 - rm -f "${BUILD_DIR:-${S}}/CMakeCache.txt" \
322 - || die "failed to remove cmake cache"
323 -
324 - cmake_src_configure
325 -
326 - # bug #630232
327 - sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \
328 - "${BUILD_DIR:-${S}}"/include/acconfig.h \
329 - || die "sed failed"
330 -}
331 -
332 -src_configure() {
333 - use custom-cflags || strip-flags
334 - ceph_src_configure
335 -}
336 -
337 -python_compile() {
338 - local CMAKE_USE_DIR="${S}"
339 - ceph_src_configure
340 -
341 - pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
342 - emake VERBOSE=1 clean
343 - emake VERBOSE=1 all
344 -
345 - # python modules are only compiled with "make install" so we need to do this to
346 - # prevent doing a bunch of compilation in src_install
347 - DESTDIR="${T}" emake VERBOSE=1 install
348 - popd >/dev/null || die
349 -}
350 -
351 -src_compile() {
352 - cmake_build VERBOSE=1 all
353 -
354 - # we have to do this here to prevent from building everything multiple times
355 - python_copy_sources
356 - python_foreach_impl python_compile
357 -}
358 -
359 -src_test() {
360 - make check || die "make check failed"
361 -}
362 -
363 -python_install() {
364 - local CMAKE_USE_DIR="${S}"
365 - pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
366 - DESTDIR="${ED}" emake VERBOSE=1 install
367 - popd >/dev/null || die
368 -
369 - python_optimize
370 -}
371 -
372 -src_install() {
373 - cmake_src_install
374 - python_foreach_impl python_install
375 -
376 - find "${ED}" -name '*.la' -type f -delete || die
377 -
378 - exeinto /usr/$(get_libdir)/ceph
379 - newexe "${BUILD_DIR}/bin/init-ceph" init-ceph
380 -
381 - insinto /etc/logrotate.d/
382 - newins "${FILESDIR}"/ceph.logrotate-r2 ${PN}
383 -
384 - keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat
385 -
386 - fowners -R ceph:ceph /var/log/ceph
387 -
388 - newinitd "${FILESDIR}/rbdmap.initd" rbdmap
389 - newinitd "${FILESDIR}/${PN}.initd-r12" ${PN}
390 - newconfd "${FILESDIR}/${PN}.confd-r5" ${PN}
391 -
392 - insinto /etc/sysctl.d
393 - newins "${FILESDIR}"/sysctld 90-${PN}.conf
394 -
395 - use tcmalloc && newenvd "${FILESDIR}"/envd-tcmalloc 99${PN}-tcmalloc
396 -
397 - # units aren't installed by the build system unless systemd is enabled
398 - # so no point installing these with the USE flag disabled
399 - if use systemd; then
400 - systemd_install_serviced "${FILESDIR}/ceph-mds_at.service.conf" \
401 - "ceph-mds@.service"
402 -
403 - systemd_install_serviced "${FILESDIR}/ceph-osd_at.service.conf" \
404 - "ceph-osd@.service"
405 -
406 - fi
407 -
408 - udev_dorules udev/*.rules
409 - newtmpfiles "${FILESDIR}"/ceph-tmpfilesd ${PN}.conf
410 -
411 - readme.gentoo_create_doc
412 -
413 - python_setup
414 -
415 - # bug #630232
416 - sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \
417 - || die "sed failed"
418 -
419 - python_fix_shebang "${ED}"/usr/{,s}bin/
420 -
421 - # python_fix_shebang apparently is not idempotent
422 - local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]'
423 - grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \
424 - | xargs --null --no-run-if-empty -- sed -i -r "s:${shebang_regex}:\1:" || die
425 -
426 - local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* )
427 - dostrip -x "${rados_classes[@]#${ED}}"
428 -}
429 -
430 -pkg_postinst() {
431 - readme.gentoo_print_elog
432 -}
433
434 diff --git a/sys-cluster/ceph/ceph-14.2.9-r1.ebuild b/sys-cluster/ceph/ceph-14.2.9-r1.ebuild
435 deleted file mode 100644
436 index 8f788600013..00000000000
437 --- a/sys-cluster/ceph/ceph-14.2.9-r1.ebuild
438 +++ /dev/null
439 @@ -1,366 +0,0 @@
440 -# Copyright 1999-2020 Gentoo Authors
441 -# Distributed under the terms of the GNU General Public License v2
442 -
443 -EAPI=7
444 -PYTHON_COMPAT=( python3_{6,7} )
445 -CMAKE_MAKEFILE_GENERATOR=emake
446 -
447 -DISTUTILS_OPTIONAL=1
448 -
449 -inherit check-reqs bash-completion-r1 cmake-utils distutils-r1 flag-o-matic \
450 - multiprocessing python-r1 udev readme.gentoo-r1 toolchain-funcs \
451 - systemd
452 -
453 -if [[ ${PV} == *9999* ]]; then
454 - inherit git-r3
455 - EGIT_REPO_URI="https://github.com/ceph/ceph.git"
456 - SRC_URI=""
457 -else
458 - SRC_URI="https://download.ceph.com/tarballs/${P}.tar.gz"
459 - KEYWORDS="amd64 ~ppc64"
460 -fi
461 -
462 -DESCRIPTION="Ceph distributed filesystem"
463 -HOMEPAGE="https://ceph.com/"
464 -
465 -LICENSE="LGPL-2.1 CC-BY-SA-3.0 GPL-2 GPL-2+ LGPL-2+ BSD Boost-1.0 MIT public-domain"
466 -SLOT="0"
467 -
468 -CPU_FLAGS_X86=(sse{,2,3,4_1,4_2} ssse3)
469 -
470 -IUSE="babeltrace +cephfs custom-cflags dpdk fuse grafana jemalloc kerberos ldap"
471 -IUSE+=" libressl lttng +mgr numa rabbitmq +radosgw +ssl spdk"
472 -IUSE+=" system-boost systemd +tcmalloc test xfs zfs"
473 -IUSE+=" $(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})"
474 -
475 -COMMON_DEPEND="
476 - acct-group/ceph
477 - acct-user/ceph
478 - virtual/libudev:=
479 - app-arch/bzip2:=
480 - app-arch/lz4:=
481 - app-arch/snappy:=
482 - app-arch/zstd:=
483 - app-shells/bash:0
484 - app-misc/jq:=
485 - dev-libs/crypto++:=
486 - dev-libs/leveldb:=[snappy,tcmalloc(-)?]
487 - dev-libs/libaio:=
488 - dev-libs/libnl:3=
489 - dev-libs/libxml2:=
490 - dev-libs/nss:=
491 - sys-auth/oath-toolkit:=
492 - sys-apps/coreutils
493 - sys-apps/grep
494 - sys-apps/keyutils:=
495 - sys-apps/util-linux:=
496 - sys-apps/sed
497 - sys-apps/util-linux
498 - sys-libs/libcap-ng:=
499 - sys-libs/ncurses:0=
500 - sys-libs/zlib:=
501 - babeltrace? ( dev-util/babeltrace )
502 - ldap? ( net-nds/openldap:= )
503 - lttng? ( dev-util/lttng-ust:= )
504 - fuse? ( sys-fs/fuse:0= )
505 - kerberos? ( virtual/krb5 )
506 - rabbitmq? ( net-libs/rabbitmq-c:= )
507 - ssl? (
508 - !libressl? ( dev-libs/openssl:= )
509 - libressl? ( dev-libs/libressl:= )
510 - )
511 - xfs? ( sys-fs/xfsprogs:= )
512 - zfs? ( sys-fs/zfs:= )
513 - radosgw? (
514 - dev-libs/expat:=
515 - !libressl? (
516 - dev-libs/openssl:=
517 - net-misc/curl:=[curl_ssl_openssl]
518 - )
519 - libressl? (
520 - dev-libs/libressl:=
521 - net-misc/curl:=[curl_ssl_libressl]
522 - )
523 - )
524 - system-boost? ( =dev-libs/boost-1.72*[threads,context,python,${PYTHON_USEDEP}] )
525 - jemalloc? ( dev-libs/jemalloc:= )
526 - !jemalloc? ( >=dev-util/google-perftools-2.6.1:= )
527 - ${PYTHON_DEPS}
528 -"
529 -BDEPEND="
530 - amd64? ( dev-lang/yasm )
531 - x86? ( dev-lang/yasm )
532 - app-arch/cpio
533 - >=dev-util/cmake-3.5.0
534 - dev-python/cython[${PYTHON_USEDEP}]
535 - dev-python/sphinx
536 - dev-util/cunit
537 - dev-util/gperf
538 - dev-util/valgrind
539 - sys-apps/coreutils
540 - sys-apps/findutils
541 - sys-apps/grep
542 - sys-apps/sed
543 - sys-apps/which
544 - sys-devel/bc
545 - sys-devel/patch
546 - virtual/pkgconfig
547 - test? (
548 - dev-python/coverage[${PYTHON_USEDEP}]
549 - dev-python/virtualenv[${PYTHON_USEDEP}]
550 - dev-python/requests-mock[${PYTHON_USEDEP}]
551 - sys-apps/grep[pcre]
552 - sys-fs/btrfs-progs
553 - )
554 -"
555 -RDEPEND="${COMMON_DEPEND}
556 - net-misc/socat
557 - sys-apps/gptfdisk
558 - sys-block/parted
559 - sys-fs/cryptsetup
560 - sys-fs/lvm2[-device-mapper-only(-)]
561 - sys-fs/lsscsi
562 - virtual/awk
563 - dev-python/bcrypt[${PYTHON_USEDEP}]
564 - dev-python/cherrypy[${PYTHON_USEDEP}]
565 - dev-python/flask[${PYTHON_USEDEP}]
566 - dev-python/jinja[${PYTHON_USEDEP}]
567 - dev-python/pecan[${PYTHON_USEDEP}]
568 - dev-python/prettytable[${PYTHON_USEDEP}]
569 - dev-python/pyopenssl[${PYTHON_USEDEP}]
570 - dev-python/requests[${PYTHON_USEDEP}]
571 - dev-python/werkzeug[${PYTHON_USEDEP}]
572 - mgr? (
573 - dev-python/more-itertools[${PYTHON_USEDEP}]
574 - dev-python/pyjwt[${PYTHON_USEDEP}]
575 - dev-python/pyyaml[${PYTHON_USEDEP}]
576 - dev-python/routes[${PYTHON_USEDEP}]
577 - dev-python/six[${PYTHON_USEDEP}]
578 - )
579 -"
580 -REQUIRED_USE="
581 - ${PYTHON_REQUIRED_USE}
582 - mgr? ( cephfs )
583 - ?? ( jemalloc tcmalloc )
584 - rabbitmq? ( radosgw )
585 -"
586 -
587 -# the tests need root access
588 -RESTRICT="test? ( userpriv )"
589 -
590 -# distribution tarball does not include everything needed for tests
591 -RESTRICT+=" test"
592 -
593 -# false positives unless all USE flags are on
594 -CMAKE_WARN_UNUSED_CLI="no"
595 -
596 -PATCHES=(
597 - "${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch"
598 - "${FILESDIR}/ceph-14.2.0-cflags.patch"
599 - "${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch"
600 - "${FILESDIR}/ceph-13.2.0-cflags.patch"
601 - "${FILESDIR}/ceph-14.2.0-mgr-python-version.patch"
602 - "${FILESDIR}/ceph-14.2.5-no-virtualenvs.patch"
603 - "${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
604 - "${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch"
605 - "${FILESDIR}/ceph-14.2.0-link-crc32-statically.patch"
606 - "${FILESDIR}/ceph-14.2.0-cython-0.29.patch"
607 - "${FILESDIR}/ceph-14.2.3-dpdk-compile-fix-1.patch"
608 - "${FILESDIR}/ceph-14.2.4-python-executable.patch"
609 - "${FILESDIR}/ceph-14.2.4-undefined-behaviour.patch"
610 -)
611 -
612 -check-reqs_export_vars() {
613 - if use amd64; then
614 - CHECKREQS_DISK_BUILD="12G"
615 - CHECKREQS_DISK_USR="460M"
616 - else
617 - CHECKREQS_DISK_BUILD="1400M"
618 - CHECKREQS_DISK_USR="450M"
619 - fi
620 -
621 - export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR
622 -}
623 -
624 -pkg_pretend() {
625 - check-reqs_export_vars
626 - check-reqs_pkg_pretend
627 -}
628 -
629 -pkg_setup() {
630 - python_setup 'python3*'
631 - check-reqs_export_vars
632 - check-reqs_pkg_setup
633 -}
634 -
635 -src_prepare() {
636 - cmake-utils_src_prepare
637 -
638 - if use system-boost; then
639 - find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \
640 - | xargs --null sed \
641 - -e 's|Boost::|boost_|g' \
642 - -e 's|boost_boost|boost_system|g' -i || die
643 - fi
644 -
645 - sed -i -r "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \
646 - src/bash_completion/CMakeLists.txt || die
647 -
648 - # remove tests that need root access
649 - rm src/test/cli/ceph-authtool/cap*.t || die
650 -}
651 -
652 -ceph_src_configure() {
653 - local flag
654 - local mycmakeargs=(
655 - -DWITH_BABELTRACE=$(usex babeltrace)
656 - -DWITH_CEPHFS=$(usex cephfs)
657 - -DWITH_CEPHFS_SHELL=$(usex cephfs)
658 - -DWITH_DPDK=$(usex dpdk)
659 - -DWITH_DPDK=$(usex spdk)
660 - -DWITH_FUSE=$(usex fuse)
661 - -DWITH_LTTNG=$(usex lttng)
662 - -DWITH_GSSAPI=$(usex kerberos)
663 - -DWITH_GRAFANA=$(usex grafana)
664 - -DWITH_MGR=$(usex mgr)
665 - -DWITH_MGR_DASHBOARD_FRONTEND=NO
666 - -DWITH_NUMA=$(usex numa)
667 - -DWITH_OPENLDAP=$(usex ldap)
668 - -DMGR_PYTHON_VERSION=3
669 - -DWITH_PYTHON3=ON
670 - -DWITH_PYTHON2=OFF
671 - -DWITH_RADOSGW=$(usex radosgw)
672 - -DWITH_RADOSGW_AMQP_ENDPOINT=$(usex rabbitmq)
673 - -DWITH_SSL=$(usex ssl)
674 - -DWITH_SYSTEMD=$(usex systemd)
675 - -DWITH_TESTS=$(usex test)
676 - -DWITH_XFS=$(usex xfs)
677 - -DWITH_ZFS=$(usex zfs)
678 - -DENABLE_SHARED="ON"
679 - -DALLOCATOR=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')")
680 - -DWITH_SYSTEM_BOOST=$(usex system-boost)
681 - -DBOOST_J=$(makeopts_jobs)
682 - -DWITH_RDMA=no
683 - -DWITH_TBB=no
684 - -DSYSTEMD_UNITDIR=$(systemd_get_systemunitdir)
685 - -DEPYTHON_VERSION="${EPYTHON#python}"
686 - -DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PN}-${PVR}"
687 - -DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
688 - #-Wno-dev
689 - )
690 - if use amd64 || use x86; then
691 - for flag in ${CPU_FLAGS_X86[@]}; do
692 - mycmakeargs+=("$(usex cpu_flags_x86_${flag} "-DHAVE_INTEL_${flag^^}=1")")
693 - done
694 - fi
695 -
696 - rm -f "${BUILD_DIR:-${S}}/CMakeCache.txt" \
697 - || die "failed to remove cmake cache"
698 -
699 - cmake-utils_src_configure
700 -
701 - # bug #630232
702 - sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \
703 - "${BUILD_DIR:-${S}}"/include/acconfig.h \
704 - || die "sed failed"
705 -}
706 -
707 -src_configure() {
708 - use custom-cflags || strip-flags
709 - ceph_src_configure
710 -}
711 -
712 -python_compile() {
713 - local CMAKE_USE_DIR="${S}"
714 - ceph_src_configure
715 -
716 - pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
717 - emake VERBOSE=1 clean
718 - emake VERBOSE=1 all
719 -
720 - # python modules are only compiled with "make install" so we need to do this to
721 - # prevent doing a bunch of compilation in src_install
722 - DESTDIR="${T}" emake VERBOSE=1 install
723 - popd >/dev/null || die
724 -}
725 -
726 -src_compile() {
727 - cmake-utils_src_make VERBOSE=1 all
728 -
729 - # we have to do this here to prevent from building everything multiple times
730 - python_copy_sources
731 - python_foreach_impl python_compile
732 -}
733 -
734 -src_test() {
735 - make check || die "make check failed"
736 -}
737 -
738 -python_install() {
739 - local CMAKE_USE_DIR="${S}"
740 - pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
741 - DESTDIR="${ED}" emake VERBOSE=1 install
742 - popd >/dev/null || die
743 -
744 - python_optimize
745 -}
746 -
747 -src_install() {
748 - cmake-utils_src_install
749 - python_foreach_impl python_install
750 -
751 - find "${ED}" -name '*.la' -type f -delete || die
752 -
753 - exeinto /usr/$(get_libdir)/ceph
754 - newexe "${BUILD_DIR}/bin/init-ceph" init-ceph
755 -
756 - insinto /etc/logrotate.d/
757 - newins "${FILESDIR}"/ceph.logrotate-r2 ${PN}
758 -
759 - keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat
760 -
761 - fowners -R ceph:ceph /var/log/ceph
762 -
763 - newinitd "${FILESDIR}/rbdmap.initd" rbdmap
764 - newinitd "${FILESDIR}/${PN}.initd-r12" ${PN}
765 - newconfd "${FILESDIR}/${PN}.confd-r5" ${PN}
766 -
767 - insinto /etc/sysctl.d
768 - newins "${FILESDIR}"/sysctld 90-${PN}.conf
769 -
770 - use tcmalloc && newenvd "${FILESDIR}"/envd-tcmalloc 99${PN}-tcmalloc
771 -
772 - # units aren't installed by the build system unless systemd is enabled
773 - # so no point installing these with the USE flag disabled
774 - if use systemd; then
775 - systemd_install_serviced "${FILESDIR}/ceph-mds_at.service.conf" \
776 - "ceph-mds@.service"
777 -
778 - systemd_install_serviced "${FILESDIR}/ceph-osd_at.service.conf" \
779 - "ceph-osd@.service"
780 - fi
781 -
782 - udev_dorules udev/*.rules
783 -
784 - readme.gentoo_create_doc
785 -
786 - python_setup 'python3*'
787 -
788 - # bug #630232
789 - sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \
790 - || die "sed failed"
791 -
792 - python_fix_shebang "${ED}"/usr/{,s}bin/
793 -
794 - # python_fix_shebang apparently is not idempotent
795 - local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]'
796 - grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \
797 - | xargs --null --no-run-if-empty -- sed -i -r "s:${shebang_regex}:\1:" || die
798 -
799 - local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* )
800 - dostrip -x "${rados_classes[@]#${ED}}"
801 -}
802 -
803 -pkg_postinst() {
804 - readme.gentoo_print_elog
805 -}