1 |
commit: 8de8aea99fb92f1cf48d1cb803ada4d4aaa520f6 |
2 |
Author: Thomas Deutschmann <whissi <AT> gentoo <DOT> org> |
3 |
AuthorDate: Wed May 26 20:55:09 2021 +0000 |
4 |
Commit: Thomas Deutschmann <whissi <AT> gentoo <DOT> org> |
5 |
CommitDate: Wed May 26 20:55:09 2021 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8de8aea9 |
7 |
|
8 |
sys-cluster/ceph: security cleanup |
9 |
|
10 |
Bug: https://bugs.gentoo.org/791253 |
11 |
Package-Manager: Portage-3.0.18, Repoman-3.0.3 |
12 |
Signed-off-by: Thomas Deutschmann <whissi <AT> gentoo.org> |
13 |
|
14 |
sys-cluster/ceph/Manifest | 5 - |
15 |
sys-cluster/ceph/ceph-14.2.19.ebuild | 394 ------------------------------ |
16 |
sys-cluster/ceph/ceph-14.2.20.ebuild | 394 ------------------------------ |
17 |
sys-cluster/ceph/ceph-15.2.11.ebuild | 405 ------------------------------- |
18 |
sys-cluster/ceph/ceph-16.2.1.ebuild | 448 ---------------------------------- |
19 |
sys-cluster/ceph/ceph-16.2.3.ebuild | 449 ----------------------------------- |
20 |
6 files changed, 2095 deletions(-) |
21 |
|
22 |
diff --git a/sys-cluster/ceph/Manifest b/sys-cluster/ceph/Manifest |
23 |
index fd9f8d6b434..1fc50693970 100644 |
24 |
--- a/sys-cluster/ceph/Manifest |
25 |
+++ b/sys-cluster/ceph/Manifest |
26 |
@@ -1,8 +1,3 @@ |
27 |
-DIST ceph-14.2.19.tar.gz 129290834 BLAKE2B d1de69afcdacd4507a4d1d230a9a4cbd75067f7efa67c01b9f7100d29bf91b7196a36df6514d307affc3194bd83f1e91b5c274b424d0cb1931c9457f6321dc36 SHA512 69e3adba292d003e364f3b7eb16878992a3f3015a1ad0b73a9bd9b4ccb2f2f46518833346d40e024b62274985d30b684e1927e533a34a1e357a1780812c231fa |
28 |
-DIST ceph-14.2.20.tar.gz 129271968 BLAKE2B 45abcd35d4c854fcd7920ce19ea8d4369e567a77e89afb63d470220a2c5854cf5cad410dfd8f52f40fec732bc7e18cc3cdb93ecd7e4542866da9fd8fee4f1d92 SHA512 e67baabaf611dc9a52fb0114a491f72666f87ec7dd4dbd63448581baebaa9cd1e70a4e90b2f2db06bf675b778858d1b057aa39986ac858de7f3894b24b07bf7e |
29 |
DIST ceph-14.2.21.tar.gz 129272778 BLAKE2B f82f452e0f0c40a95ea1bdb3654c2d322caa3edeeb05e41247e02a8ffe731c570d9e49aefa61c447a8b73620d4a9b9872335171f1e08fbd9a08eea930ccbfe76 SHA512 39b4a0624dcab2bafa50f51a42155fcf96dad74531a001d75009ad246a8ca80ce81ae538b34c0a1b773691c363626f1d0342f2439b711bd0dd16214592171884 |
30 |
-DIST ceph-15.2.11.tar.gz 149695132 BLAKE2B 2dcb335a289314aaf6f68fc44950459c978dfd60fc0c064479f3230957a755d6a9bc238b57d3ec354efdfa5483461bac1080dd0afd7e4e2cd0a20c9410ae1a10 SHA512 e1b0627b7e4212c63b2ea2eb612247fcc9235247e63accc1fe456643b192275eea538e095cc859dbdffd5e00fe1c315563940f258708c8584ac0d0ad0641276f |
31 |
DIST ceph-15.2.12.tar.gz 148509713 BLAKE2B 4962e7d574b38592a874a1b3fa8610bb2d0afc8713d995d67a790c025bb086cb619cbbaec76482ec096b4c55b9f1df383f5bd4806a231bc88e70ac3efbac24b5 SHA512 08266a2e9a7ca5a37e03f340873571fd012c630dd898a87241cd97c29760b2bf41fe64c8883e7b08e0f83c26245072cd26e69ecb1db02378d1ec38335ba1cd0f |
32 |
-DIST ceph-16.2.1.tar.gz 155832182 BLAKE2B 9331d74ada9fb37e59f60daa813cdfe4711000f916365818435580c11d3295db5a13f98c2d2493cccf84cb4c6896c5a8137e3fe9b7a32ff0bedc0b524a0744b1 SHA512 42e404aa41565485dc4c08b66efb3de719adee72cfc535586992e15ab4601bfbd909ef61abf412badbbfa7ef13bf91a7c0576fbbf3f9f687bc7b465b21a8c416 |
33 |
-DIST ceph-16.2.3.tar.gz 155866118 BLAKE2B 7b1766effaa7b72697fad06e43eb1a3f2450b64fe970857cefc1d05271611a50b8cf55c574163b3f43d4a42b35b0bc0236c9089ac88b149f9b4d7fd706887db9 SHA512 07bc2b386fb0607df3128c151ee41565afe28b5efe3d907972198fc7fff9cecbafd51570d1b2624d1f921b259f788f0c3d133fb31f11bf6650cb2552f72f8047 |
34 |
DIST ceph-16.2.4.tar.gz 155840423 BLAKE2B a803ffa61ac9fd6d42790d6d8e12aa8df843968627df0051475355f3ba0dc1272afa3d9e2716115ad769b2f322d7bd239d99b89e51610e89ce9efe39af4f01ae SHA512 8904e7fcabd50276e4e86735fd85dba96f417c194c219025146f994707def7abe372528b0f2e862e274b2f405d7b791bac86b6cbb8d57cecd6f44023a2ffb6f6 |
35 |
|
36 |
diff --git a/sys-cluster/ceph/ceph-14.2.19.ebuild b/sys-cluster/ceph/ceph-14.2.19.ebuild |
37 |
deleted file mode 100644 |
38 |
index dd17dadcdbb..00000000000 |
39 |
--- a/sys-cluster/ceph/ceph-14.2.19.ebuild |
40 |
+++ /dev/null |
41 |
@@ -1,394 +0,0 @@ |
42 |
-# Copyright 1999-2021 Gentoo Authors |
43 |
-# Distributed under the terms of the GNU General Public License v2 |
44 |
- |
45 |
-EAPI=7 |
46 |
-PYTHON_COMPAT=( python3_{7,8} ) |
47 |
-DISTUTILS_USE_SETUPTOOLS=rdepend |
48 |
-CMAKE_MAKEFILE_GENERATOR=emake |
49 |
- |
50 |
-DISTUTILS_OPTIONAL=1 |
51 |
- |
52 |
-inherit check-reqs bash-completion-r1 cmake distutils-r1 flag-o-matic \ |
53 |
- python-r1 udev readme.gentoo-r1 toolchain-funcs systemd tmpfiles |
54 |
- |
55 |
-if [[ ${PV} == *9999* ]]; then |
56 |
- inherit git-r3 |
57 |
- EGIT_REPO_URI="https://github.com/ceph/ceph.git" |
58 |
- SRC_URI="" |
59 |
-else |
60 |
- SRC_URI="https://download.ceph.com/tarballs/${P}.tar.gz" |
61 |
- KEYWORDS="amd64 ~ppc64" |
62 |
-fi |
63 |
- |
64 |
-DESCRIPTION="Ceph distributed filesystem" |
65 |
-HOMEPAGE="https://ceph.com/" |
66 |
- |
67 |
-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" |
68 |
-SLOT="0" |
69 |
- |
70 |
-CPU_FLAGS_X86=(sse{,2,3,4_1,4_2} ssse3) |
71 |
- |
72 |
-IUSE="babeltrace +cephfs custom-cflags diskprediction dpdk fuse grafana jemalloc |
73 |
- kafka kerberos ldap lttng +mgr numa rabbitmq +radosgw +ssl spdk system-boost |
74 |
- systemd +tcmalloc test xfs zfs" |
75 |
-IUSE+=" $(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})" |
76 |
- |
77 |
-DEPEND=" |
78 |
- acct-group/ceph |
79 |
- acct-user/ceph |
80 |
- virtual/libudev:= |
81 |
- app-arch/bzip2:= |
82 |
- app-arch/lz4:= |
83 |
- app-arch/snappy:= |
84 |
- app-arch/zstd:= |
85 |
- app-shells/bash:0 |
86 |
- app-misc/jq:= |
87 |
- dev-libs/crypto++:= |
88 |
- dev-libs/leveldb:=[snappy,tcmalloc(-)?] |
89 |
- dev-libs/libaio:= |
90 |
- dev-libs/libnl:3= |
91 |
- dev-libs/libxml2:= |
92 |
- <dev-libs/rocksdb-6.15:= |
93 |
- dev-libs/xmlsec:=[openssl] |
94 |
- dev-cpp/yaml-cpp:= |
95 |
- dev-libs/nss:= |
96 |
- dev-libs/protobuf:= |
97 |
- net-dns/c-ares:= |
98 |
- net-libs/gnutls:= |
99 |
- sys-auth/oath-toolkit:= |
100 |
- sys-apps/coreutils |
101 |
- sys-apps/grep |
102 |
- sys-apps/hwloc:= |
103 |
- sys-apps/keyutils:= |
104 |
- sys-apps/util-linux:= |
105 |
- sys-apps/sed |
106 |
- sys-apps/util-linux |
107 |
- sys-libs/libcap-ng:= |
108 |
- sys-libs/ncurses:0= |
109 |
- sys-libs/zlib:= |
110 |
- sys-process/numactl:= |
111 |
- x11-libs/libpciaccess:= |
112 |
- babeltrace? ( dev-util/babeltrace ) |
113 |
- fuse? ( sys-fs/fuse:0= ) |
114 |
- jemalloc? ( dev-libs/jemalloc:= ) |
115 |
- !jemalloc? ( >=dev-util/google-perftools-2.6.1:= ) |
116 |
- kafka? ( dev-libs/librdkafka:= ) |
117 |
- kerberos? ( virtual/krb5 ) |
118 |
- ldap? ( net-nds/openldap:= ) |
119 |
- lttng? ( dev-util/lttng-ust:= ) |
120 |
- rabbitmq? ( net-libs/rabbitmq-c:= ) |
121 |
- radosgw? ( |
122 |
- dev-libs/expat:= |
123 |
- dev-libs/openssl:= |
124 |
- net-misc/curl:=[curl_ssl_openssl] |
125 |
- ) |
126 |
- ssl? ( dev-libs/openssl:= ) |
127 |
- system-boost? ( dev-libs/boost[threads,context,python,${PYTHON_USEDEP}] ) |
128 |
- xfs? ( sys-fs/xfsprogs:= ) |
129 |
- zfs? ( sys-fs/zfs:= ) |
130 |
- ${PYTHON_DEPS} |
131 |
-" |
132 |
-BDEPEND=" |
133 |
- amd64? ( dev-lang/yasm ) |
134 |
- x86? ( dev-lang/yasm ) |
135 |
- app-arch/cpio |
136 |
- >=dev-util/cmake-3.5.0 |
137 |
- dev-python/cython[${PYTHON_USEDEP}] |
138 |
- dev-python/sphinx |
139 |
- dev-util/cunit |
140 |
- dev-util/gperf |
141 |
- dev-util/ragel |
142 |
- dev-util/valgrind |
143 |
- sys-apps/coreutils |
144 |
- sys-apps/findutils |
145 |
- sys-apps/grep |
146 |
- sys-apps/sed |
147 |
- sys-apps/which |
148 |
- sys-devel/bc |
149 |
- sys-devel/patch |
150 |
- virtual/pkgconfig |
151 |
- test? ( |
152 |
- dev-python/coverage[${PYTHON_USEDEP}] |
153 |
- dev-python/virtualenv[${PYTHON_USEDEP}] |
154 |
- dev-python/requests-mock[${PYTHON_USEDEP}] |
155 |
- sys-apps/grep[pcre] |
156 |
- sys-fs/btrfs-progs |
157 |
- ) |
158 |
-" |
159 |
-RDEPEND="${DEPEND} |
160 |
- app-admin/sudo |
161 |
- net-misc/socat |
162 |
- sys-apps/gptfdisk |
163 |
- >=sys-apps/smartmontools-7.0 |
164 |
- sys-block/parted |
165 |
- sys-fs/cryptsetup |
166 |
- sys-fs/lsscsi |
167 |
- sys-fs/lvm2[-device-mapper-only(-)] |
168 |
- virtual/awk |
169 |
- dev-python/bcrypt[${PYTHON_USEDEP}] |
170 |
- dev-python/cherrypy[${PYTHON_USEDEP}] |
171 |
- dev-python/flask[${PYTHON_USEDEP}] |
172 |
- dev-python/jinja[${PYTHON_USEDEP}] |
173 |
- dev-python/pecan[${PYTHON_USEDEP}] |
174 |
- dev-python/prettytable[${PYTHON_USEDEP}] |
175 |
- dev-python/pyopenssl[${PYTHON_USEDEP}] |
176 |
- dev-python/requests[${PYTHON_USEDEP}] |
177 |
- dev-python/werkzeug[${PYTHON_USEDEP}] |
178 |
- mgr? ( |
179 |
- dev-python/more-itertools[${PYTHON_USEDEP}] |
180 |
- dev-python/numpy[${PYTHON_USEDEP}] |
181 |
- <dev-python/pyjwt-2.0[${PYTHON_USEDEP}] |
182 |
- dev-python/pyyaml[${PYTHON_USEDEP}] |
183 |
- dev-python/routes[${PYTHON_USEDEP}] |
184 |
- diskprediction? ( |
185 |
- $(python_gen_cond_dep '<dev-python/scipy-1.4.0[${PYTHON_USEDEP}]' python3_{6,7}) |
186 |
- ) |
187 |
- sci-libs/scikit-learn[${PYTHON_USEDEP}] |
188 |
- dev-python/six[${PYTHON_USEDEP}] |
189 |
- ) |
190 |
-" |
191 |
-# diskprediction needs older scipy not compatible with py38 |
192 |
-# bug #724438 |
193 |
-REQUIRED_USE=" |
194 |
- ${PYTHON_REQUIRED_USE} |
195 |
- ?? ( jemalloc tcmalloc ) |
196 |
- diskprediction? ( mgr !python_targets_python3_8 ) |
197 |
- kafka? ( radosgw ) |
198 |
- mgr? ( cephfs ) |
199 |
- rabbitmq? ( radosgw ) |
200 |
-" |
201 |
-RESTRICT="!test? ( test )" |
202 |
- |
203 |
-# the tests need root access |
204 |
-RESTRICT="test? ( userpriv )" |
205 |
- |
206 |
-# distribution tarball does not include everything needed for tests |
207 |
-RESTRICT+=" test" |
208 |
- |
209 |
-# create a non-debug release |
210 |
-CMAKE_BUILD_TYPE=RelWithDebInfo |
211 |
- |
212 |
-# false positives unless all USE flags are on |
213 |
-CMAKE_WARN_UNUSED_CLI=no |
214 |
- |
215 |
-PATCHES=( |
216 |
- "${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch" |
217 |
- "${FILESDIR}/ceph-14.2.0-cflags.patch" |
218 |
- "${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch" |
219 |
- "${FILESDIR}/ceph-13.2.0-cflags.patch" |
220 |
- "${FILESDIR}/ceph-14.2.0-mgr-python-version.patch" |
221 |
- "${FILESDIR}/ceph-14.2.5-no-virtualenvs.patch" |
222 |
- "${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch" |
223 |
- "${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch" |
224 |
- "${FILESDIR}/ceph-14.2.0-link-crc32-statically.patch" |
225 |
- "${FILESDIR}/ceph-14.2.0-cython-0.29.patch" |
226 |
- "${FILESDIR}/ceph-14.2.3-dpdk-compile-fix-1.patch" |
227 |
- "${FILESDIR}/ceph-14.2.4-python-executable.patch" |
228 |
- "${FILESDIR}/ceph-14.2.4-undefined-behaviour.patch" |
229 |
- "${FILESDIR}/ceph-14.2.10-build-without-mgr.patch" |
230 |
- "${FILESDIR}/ceph-14.2.11-systemd-unit-fix.patch" |
231 |
- "${FILESDIR}/ceph-15.2.9-dont-compile-isal_compress-if-don-t-have-SSE4_1.patch" |
232 |
-) |
233 |
- |
234 |
-check-reqs_export_vars() { |
235 |
- CHECKREQS_DISK_BUILD="5200M" |
236 |
- CHECKREQS_DISK_USR="510M" |
237 |
- |
238 |
- export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR |
239 |
-} |
240 |
- |
241 |
-pkg_pretend() { |
242 |
- check-reqs_export_vars |
243 |
- check-reqs_pkg_pretend |
244 |
-} |
245 |
- |
246 |
-pkg_setup() { |
247 |
- python_setup |
248 |
- check-reqs_export_vars |
249 |
- check-reqs_pkg_setup |
250 |
-} |
251 |
- |
252 |
-src_prepare() { |
253 |
- cmake_src_prepare |
254 |
- |
255 |
- if use system-boost; then |
256 |
- find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \ |
257 |
- | xargs --null sed -r \ |
258 |
- -e 's|Boost::|boost_|g' \ |
259 |
- -e 's|Boost_|boost_|g' \ |
260 |
- -e 's|[Bb]oost_boost|boost_system|g' -i || die |
261 |
- fi |
262 |
- |
263 |
- sed -r -e "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \ |
264 |
- -i src/bash_completion/CMakeLists.txt || die |
265 |
- |
266 |
- sed -e "s:objdump -p:$(tc-getOBJDUMP) -p:" -i CMakeLists.txt || die |
267 |
- |
268 |
- if ! use diskprediction; then |
269 |
- rm -rf src/pybind/mgr/diskprediction_local || die |
270 |
- fi |
271 |
- |
272 |
- # remove tests that need root access |
273 |
- rm src/test/cli/ceph-authtool/cap*.t || die |
274 |
-} |
275 |
- |
276 |
-ceph_src_configure() { |
277 |
- local flag |
278 |
- local mycmakeargs=( |
279 |
- -DWITH_BABELTRACE=$(usex babeltrace) |
280 |
- -DWITH_CEPHFS=$(usex cephfs) |
281 |
- -DWITH_CEPHFS_SHELL=$(usex cephfs) |
282 |
- -DWITH_DPDK=$(usex dpdk) |
283 |
- -DWITH_SPDK=$(usex spdk) |
284 |
- -DWITH_FUSE=$(usex fuse) |
285 |
- -DWITH_LTTNG=$(usex lttng) |
286 |
- -DWITH_GSSAPI=$(usex kerberos) |
287 |
- -DWITH_GRAFANA=$(usex grafana) |
288 |
- -DWITH_MGR=$(usex mgr) |
289 |
- -DWITH_MGR_DASHBOARD_FRONTEND=OFF |
290 |
- -DWITH_NUMA=$(usex numa) |
291 |
- -DWITH_OPENLDAP=$(usex ldap) |
292 |
- -DWITH_PYTHON3=3 |
293 |
- -DWITH_RADOSGW=$(usex radosgw) |
294 |
- -DWITH_RADOSGW_AMQP_ENDPOINT=$(usex rabbitmq) |
295 |
- -DWITH_RADOSGW_KAFKA_ENDPOINT=$(usex kafka) |
296 |
- -DWITH_SSL=$(usex ssl) |
297 |
- -DWITH_SYSTEMD=$(usex systemd) |
298 |
- -DWITH_TESTS=$(usex test) |
299 |
- -DWITH_XFS=$(usex xfs) |
300 |
- -DWITH_ZFS=$(usex zfs) |
301 |
- -DENABLE_SHARED="ON" |
302 |
- -DALLOCATOR=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')") |
303 |
- -DWITH_SYSTEM_BOOST=$(usex system-boost) |
304 |
- -DBOOST_J=$(makeopts_jobs) |
305 |
- -DWITH_SYSTEM_ROCKSDB=ON |
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 |
- # needed for >=glibc-2.32 |
322 |
- has_version '>=sys-libs/glibc-2.32' && mycmakeargs+=(-DWITH_REENTRANT_STRSIGNAL:BOOL=ON) |
323 |
- |
324 |
- rm -f "${BUILD_DIR:-${S}}/CMakeCache.txt" \ |
325 |
- || die "failed to remove cmake cache" |
326 |
- |
327 |
- cmake_src_configure |
328 |
- |
329 |
- # bug #630232 |
330 |
- sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \ |
331 |
- "${BUILD_DIR:-${S}}"/include/acconfig.h \ |
332 |
- || die "sed failed" |
333 |
-} |
334 |
- |
335 |
-src_configure() { |
336 |
- use custom-cflags || strip-flags |
337 |
- ceph_src_configure |
338 |
-} |
339 |
- |
340 |
-python_compile() { |
341 |
- local CMAKE_USE_DIR="${S}" |
342 |
- ceph_src_configure |
343 |
- |
344 |
- pushd "${BUILD_DIR}/src/pybind" >/dev/null || die |
345 |
- emake VERBOSE=1 clean |
346 |
- emake VERBOSE=1 all |
347 |
- |
348 |
- # python modules are only compiled with "make install" so we need to do this to |
349 |
- # prevent doing a bunch of compilation in src_install |
350 |
- DESTDIR="${T}" emake VERBOSE=1 install |
351 |
- popd >/dev/null || die |
352 |
-} |
353 |
- |
354 |
-src_compile() { |
355 |
- cmake_build VERBOSE=1 all |
356 |
- |
357 |
- # we have to do this here to prevent from building everything multiple times |
358 |
- python_copy_sources |
359 |
- python_foreach_impl python_compile |
360 |
-} |
361 |
- |
362 |
-src_test() { |
363 |
- make check || die "make check failed" |
364 |
-} |
365 |
- |
366 |
-python_install() { |
367 |
- local CMAKE_USE_DIR="${S}" |
368 |
- pushd "${BUILD_DIR}/src/pybind" >/dev/null || die |
369 |
- DESTDIR="${ED}" emake VERBOSE=1 install |
370 |
- popd >/dev/null || die |
371 |
- |
372 |
- python_optimize |
373 |
-} |
374 |
- |
375 |
-src_install() { |
376 |
- cmake_src_install |
377 |
- python_foreach_impl python_install |
378 |
- |
379 |
- find "${ED}" -name '*.la' -type f -delete || die |
380 |
- |
381 |
- exeinto /usr/$(get_libdir)/ceph |
382 |
- newexe "${BUILD_DIR}/bin/init-ceph" init-ceph |
383 |
- |
384 |
- insinto /etc/logrotate.d/ |
385 |
- newins "${FILESDIR}"/ceph.logrotate-r2 ${PN} |
386 |
- |
387 |
- keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat |
388 |
- |
389 |
- fowners -R ceph:ceph /var/log/ceph |
390 |
- |
391 |
- newinitd "${FILESDIR}/rbdmap.initd" rbdmap |
392 |
- newinitd "${FILESDIR}/${PN}.initd-r12" ${PN} |
393 |
- newconfd "${FILESDIR}/${PN}.confd-r5" ${PN} |
394 |
- |
395 |
- insinto /etc/sysctl.d |
396 |
- newins "${FILESDIR}"/sysctld 90-${PN}.conf |
397 |
- |
398 |
- use tcmalloc && newenvd "${FILESDIR}"/envd-tcmalloc 99${PN}-tcmalloc |
399 |
- |
400 |
- # units aren't installed by the build system unless systemd is enabled |
401 |
- # so no point installing these with the USE flag disabled |
402 |
- if use systemd; then |
403 |
- systemd_install_serviced "${FILESDIR}/ceph-mds_at.service.conf" \ |
404 |
- "ceph-mds@.service" |
405 |
- |
406 |
- systemd_install_serviced "${FILESDIR}/ceph-osd_at.service.conf" \ |
407 |
- "ceph-osd@.service" |
408 |
- |
409 |
- fi |
410 |
- |
411 |
- udev_dorules udev/*.rules |
412 |
- newtmpfiles "${FILESDIR}"/ceph-tmpfilesd ${PN}.conf |
413 |
- |
414 |
- readme.gentoo_create_doc |
415 |
- |
416 |
- python_setup |
417 |
- |
418 |
- # bug #630232 |
419 |
- sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \ |
420 |
- || die "sed failed" |
421 |
- |
422 |
- python_fix_shebang "${ED}"/usr/{,s}bin/ |
423 |
- |
424 |
- # python_fix_shebang apparently is not idempotent |
425 |
- local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]' |
426 |
- grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \ |
427 |
- | xargs --null --no-run-if-empty -- sed -i -r "s:${shebang_regex}:\1:" || die |
428 |
- |
429 |
- local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* ) |
430 |
- dostrip -x "${rados_classes[@]#${ED}}" |
431 |
-} |
432 |
- |
433 |
-pkg_postinst() { |
434 |
- readme.gentoo_print_elog |
435 |
-} |
436 |
|
437 |
diff --git a/sys-cluster/ceph/ceph-14.2.20.ebuild b/sys-cluster/ceph/ceph-14.2.20.ebuild |
438 |
deleted file mode 100644 |
439 |
index 9b819976edd..00000000000 |
440 |
--- a/sys-cluster/ceph/ceph-14.2.20.ebuild |
441 |
+++ /dev/null |
442 |
@@ -1,394 +0,0 @@ |
443 |
-# Copyright 1999-2021 Gentoo Authors |
444 |
-# Distributed under the terms of the GNU General Public License v2 |
445 |
- |
446 |
-EAPI=7 |
447 |
-PYTHON_COMPAT=( python3_{7,8} ) |
448 |
-DISTUTILS_USE_SETUPTOOLS=rdepend |
449 |
-CMAKE_MAKEFILE_GENERATOR=emake |
450 |
- |
451 |
-DISTUTILS_OPTIONAL=1 |
452 |
- |
453 |
-inherit check-reqs bash-completion-r1 cmake distutils-r1 flag-o-matic \ |
454 |
- python-r1 udev readme.gentoo-r1 toolchain-funcs systemd tmpfiles |
455 |
- |
456 |
-if [[ ${PV} == *9999* ]]; then |
457 |
- inherit git-r3 |
458 |
- EGIT_REPO_URI="https://github.com/ceph/ceph.git" |
459 |
- SRC_URI="" |
460 |
-else |
461 |
- SRC_URI="https://download.ceph.com/tarballs/${P}.tar.gz" |
462 |
- KEYWORDS="~amd64 ~ppc64" |
463 |
-fi |
464 |
- |
465 |
-DESCRIPTION="Ceph distributed filesystem" |
466 |
-HOMEPAGE="https://ceph.com/" |
467 |
- |
468 |
-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" |
469 |
-SLOT="0" |
470 |
- |
471 |
-CPU_FLAGS_X86=(sse{,2,3,4_1,4_2} ssse3) |
472 |
- |
473 |
-IUSE="babeltrace +cephfs custom-cflags diskprediction dpdk fuse grafana jemalloc |
474 |
- kafka kerberos ldap lttng +mgr numa rabbitmq +radosgw +ssl spdk system-boost |
475 |
- systemd +tcmalloc test xfs zfs" |
476 |
-IUSE+=" $(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})" |
477 |
- |
478 |
-DEPEND=" |
479 |
- acct-group/ceph |
480 |
- acct-user/ceph |
481 |
- virtual/libudev:= |
482 |
- app-arch/bzip2:= |
483 |
- app-arch/lz4:= |
484 |
- app-arch/snappy:= |
485 |
- app-arch/zstd:= |
486 |
- app-shells/bash:0 |
487 |
- app-misc/jq:= |
488 |
- dev-libs/crypto++:= |
489 |
- dev-libs/leveldb:=[snappy,tcmalloc(-)?] |
490 |
- dev-libs/libaio:= |
491 |
- dev-libs/libnl:3= |
492 |
- dev-libs/libxml2:= |
493 |
- <dev-libs/rocksdb-6.15:= |
494 |
- dev-libs/xmlsec:=[openssl] |
495 |
- dev-cpp/yaml-cpp:= |
496 |
- dev-libs/nss:= |
497 |
- dev-libs/protobuf:= |
498 |
- net-dns/c-ares:= |
499 |
- net-libs/gnutls:= |
500 |
- sys-auth/oath-toolkit:= |
501 |
- sys-apps/coreutils |
502 |
- sys-apps/grep |
503 |
- sys-apps/hwloc:= |
504 |
- sys-apps/keyutils:= |
505 |
- sys-apps/util-linux:= |
506 |
- sys-apps/sed |
507 |
- sys-apps/util-linux |
508 |
- sys-libs/libcap-ng:= |
509 |
- sys-libs/ncurses:0= |
510 |
- sys-libs/zlib:= |
511 |
- sys-process/numactl:= |
512 |
- x11-libs/libpciaccess:= |
513 |
- babeltrace? ( dev-util/babeltrace ) |
514 |
- fuse? ( sys-fs/fuse:0= ) |
515 |
- jemalloc? ( dev-libs/jemalloc:= ) |
516 |
- !jemalloc? ( >=dev-util/google-perftools-2.6.1:= ) |
517 |
- kafka? ( dev-libs/librdkafka:= ) |
518 |
- kerberos? ( virtual/krb5 ) |
519 |
- ldap? ( net-nds/openldap:= ) |
520 |
- lttng? ( dev-util/lttng-ust:= ) |
521 |
- rabbitmq? ( net-libs/rabbitmq-c:= ) |
522 |
- radosgw? ( |
523 |
- dev-libs/expat:= |
524 |
- dev-libs/openssl:= |
525 |
- net-misc/curl:=[curl_ssl_openssl] |
526 |
- ) |
527 |
- ssl? ( dev-libs/openssl:= ) |
528 |
- system-boost? ( dev-libs/boost[threads,context,python,${PYTHON_USEDEP}] ) |
529 |
- xfs? ( sys-fs/xfsprogs:= ) |
530 |
- zfs? ( sys-fs/zfs:= ) |
531 |
- ${PYTHON_DEPS} |
532 |
-" |
533 |
-BDEPEND=" |
534 |
- amd64? ( dev-lang/yasm ) |
535 |
- x86? ( dev-lang/yasm ) |
536 |
- app-arch/cpio |
537 |
- >=dev-util/cmake-3.5.0 |
538 |
- dev-python/cython[${PYTHON_USEDEP}] |
539 |
- dev-python/sphinx |
540 |
- dev-util/cunit |
541 |
- dev-util/gperf |
542 |
- dev-util/ragel |
543 |
- dev-util/valgrind |
544 |
- sys-apps/coreutils |
545 |
- sys-apps/findutils |
546 |
- sys-apps/grep |
547 |
- sys-apps/sed |
548 |
- sys-apps/which |
549 |
- sys-devel/bc |
550 |
- sys-devel/patch |
551 |
- virtual/pkgconfig |
552 |
- test? ( |
553 |
- dev-python/coverage[${PYTHON_USEDEP}] |
554 |
- dev-python/virtualenv[${PYTHON_USEDEP}] |
555 |
- dev-python/requests-mock[${PYTHON_USEDEP}] |
556 |
- sys-apps/grep[pcre] |
557 |
- sys-fs/btrfs-progs |
558 |
- ) |
559 |
-" |
560 |
-RDEPEND="${DEPEND} |
561 |
- app-admin/sudo |
562 |
- net-misc/socat |
563 |
- sys-apps/gptfdisk |
564 |
- >=sys-apps/smartmontools-7.0 |
565 |
- sys-block/parted |
566 |
- sys-fs/cryptsetup |
567 |
- sys-fs/lsscsi |
568 |
- sys-fs/lvm2[-device-mapper-only(-)] |
569 |
- virtual/awk |
570 |
- dev-python/bcrypt[${PYTHON_USEDEP}] |
571 |
- dev-python/cherrypy[${PYTHON_USEDEP}] |
572 |
- dev-python/flask[${PYTHON_USEDEP}] |
573 |
- dev-python/jinja[${PYTHON_USEDEP}] |
574 |
- dev-python/pecan[${PYTHON_USEDEP}] |
575 |
- dev-python/prettytable[${PYTHON_USEDEP}] |
576 |
- dev-python/pyopenssl[${PYTHON_USEDEP}] |
577 |
- dev-python/requests[${PYTHON_USEDEP}] |
578 |
- dev-python/werkzeug[${PYTHON_USEDEP}] |
579 |
- mgr? ( |
580 |
- dev-python/more-itertools[${PYTHON_USEDEP}] |
581 |
- dev-python/numpy[${PYTHON_USEDEP}] |
582 |
- <dev-python/pyjwt-2.0[${PYTHON_USEDEP}] |
583 |
- dev-python/pyyaml[${PYTHON_USEDEP}] |
584 |
- dev-python/routes[${PYTHON_USEDEP}] |
585 |
- diskprediction? ( |
586 |
- $(python_gen_cond_dep '<dev-python/scipy-1.4.0[${PYTHON_USEDEP}]' python3_{6,7}) |
587 |
- ) |
588 |
- sci-libs/scikit-learn[${PYTHON_USEDEP}] |
589 |
- dev-python/six[${PYTHON_USEDEP}] |
590 |
- ) |
591 |
-" |
592 |
-# diskprediction needs older scipy not compatible with py38 |
593 |
-# bug #724438 |
594 |
-REQUIRED_USE=" |
595 |
- ${PYTHON_REQUIRED_USE} |
596 |
- ?? ( jemalloc tcmalloc ) |
597 |
- diskprediction? ( mgr !python_targets_python3_8 ) |
598 |
- kafka? ( radosgw ) |
599 |
- mgr? ( cephfs ) |
600 |
- rabbitmq? ( radosgw ) |
601 |
-" |
602 |
-RESTRICT="!test? ( test )" |
603 |
- |
604 |
-# the tests need root access |
605 |
-RESTRICT="test? ( userpriv )" |
606 |
- |
607 |
-# distribution tarball does not include everything needed for tests |
608 |
-RESTRICT+=" test" |
609 |
- |
610 |
-# create a non-debug release |
611 |
-CMAKE_BUILD_TYPE=RelWithDebInfo |
612 |
- |
613 |
-# false positives unless all USE flags are on |
614 |
-CMAKE_WARN_UNUSED_CLI=no |
615 |
- |
616 |
-PATCHES=( |
617 |
- "${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch" |
618 |
- "${FILESDIR}/ceph-14.2.0-cflags.patch" |
619 |
- "${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch" |
620 |
- "${FILESDIR}/ceph-13.2.0-cflags.patch" |
621 |
- "${FILESDIR}/ceph-14.2.0-mgr-python-version.patch" |
622 |
- "${FILESDIR}/ceph-14.2.5-no-virtualenvs.patch" |
623 |
- "${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch" |
624 |
- "${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch" |
625 |
- "${FILESDIR}/ceph-14.2.0-link-crc32-statically.patch" |
626 |
- "${FILESDIR}/ceph-14.2.0-cython-0.29.patch" |
627 |
- "${FILESDIR}/ceph-14.2.3-dpdk-compile-fix-1.patch" |
628 |
- "${FILESDIR}/ceph-14.2.4-python-executable.patch" |
629 |
- "${FILESDIR}/ceph-14.2.4-undefined-behaviour.patch" |
630 |
- "${FILESDIR}/ceph-14.2.10-build-without-mgr.patch" |
631 |
- "${FILESDIR}/ceph-14.2.11-systemd-unit-fix.patch" |
632 |
- "${FILESDIR}/ceph-15.2.9-dont-compile-isal_compress-if-don-t-have-SSE4_1.patch" |
633 |
-) |
634 |
- |
635 |
-check-reqs_export_vars() { |
636 |
- CHECKREQS_DISK_BUILD="5200M" |
637 |
- CHECKREQS_DISK_USR="510M" |
638 |
- |
639 |
- export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR |
640 |
-} |
641 |
- |
642 |
-pkg_pretend() { |
643 |
- check-reqs_export_vars |
644 |
- check-reqs_pkg_pretend |
645 |
-} |
646 |
- |
647 |
-pkg_setup() { |
648 |
- python_setup |
649 |
- check-reqs_export_vars |
650 |
- check-reqs_pkg_setup |
651 |
-} |
652 |
- |
653 |
-src_prepare() { |
654 |
- cmake_src_prepare |
655 |
- |
656 |
- if use system-boost; then |
657 |
- find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \ |
658 |
- | xargs --null sed -r \ |
659 |
- -e 's|Boost::|boost_|g' \ |
660 |
- -e 's|Boost_|boost_|g' \ |
661 |
- -e 's|[Bb]oost_boost|boost_system|g' -i || die |
662 |
- fi |
663 |
- |
664 |
- sed -r -e "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \ |
665 |
- -i src/bash_completion/CMakeLists.txt || die |
666 |
- |
667 |
- sed -e "s:objdump -p:$(tc-getOBJDUMP) -p:" -i CMakeLists.txt || die |
668 |
- |
669 |
- if ! use diskprediction; then |
670 |
- rm -rf src/pybind/mgr/diskprediction_local || die |
671 |
- fi |
672 |
- |
673 |
- # remove tests that need root access |
674 |
- rm src/test/cli/ceph-authtool/cap*.t || die |
675 |
-} |
676 |
- |
677 |
-ceph_src_configure() { |
678 |
- local flag |
679 |
- local mycmakeargs=( |
680 |
- -DWITH_BABELTRACE=$(usex babeltrace) |
681 |
- -DWITH_CEPHFS=$(usex cephfs) |
682 |
- -DWITH_CEPHFS_SHELL=$(usex cephfs) |
683 |
- -DWITH_DPDK=$(usex dpdk) |
684 |
- -DWITH_SPDK=$(usex spdk) |
685 |
- -DWITH_FUSE=$(usex fuse) |
686 |
- -DWITH_LTTNG=$(usex lttng) |
687 |
- -DWITH_GSSAPI=$(usex kerberos) |
688 |
- -DWITH_GRAFANA=$(usex grafana) |
689 |
- -DWITH_MGR=$(usex mgr) |
690 |
- -DWITH_MGR_DASHBOARD_FRONTEND=OFF |
691 |
- -DWITH_NUMA=$(usex numa) |
692 |
- -DWITH_OPENLDAP=$(usex ldap) |
693 |
- -DWITH_PYTHON3=3 |
694 |
- -DWITH_RADOSGW=$(usex radosgw) |
695 |
- -DWITH_RADOSGW_AMQP_ENDPOINT=$(usex rabbitmq) |
696 |
- -DWITH_RADOSGW_KAFKA_ENDPOINT=$(usex kafka) |
697 |
- -DWITH_SSL=$(usex ssl) |
698 |
- -DWITH_SYSTEMD=$(usex systemd) |
699 |
- -DWITH_TESTS=$(usex test) |
700 |
- -DWITH_XFS=$(usex xfs) |
701 |
- -DWITH_ZFS=$(usex zfs) |
702 |
- -DENABLE_SHARED="ON" |
703 |
- -DALLOCATOR=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')") |
704 |
- -DWITH_SYSTEM_BOOST=$(usex system-boost) |
705 |
- -DBOOST_J=$(makeopts_jobs) |
706 |
- -DWITH_SYSTEM_ROCKSDB=ON |
707 |
- -DWITH_RDMA=OFF |
708 |
- -DWITH_TBB=OFF |
709 |
- -DSYSTEMD_UNITDIR=$(systemd_get_systemunitdir) |
710 |
- -DCMAKE_INSTALL_SYSTEMD_SERVICEDIR=$(systemd_get_systemunitdir) |
711 |
- -DEPYTHON_VERSION="${EPYTHON#python}" |
712 |
- -DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PN}-${PVR}" |
713 |
- -DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc" |
714 |
- -Wno-dev |
715 |
- ) |
716 |
- if use amd64 || use x86; then |
717 |
- for flag in ${CPU_FLAGS_X86[@]}; do |
718 |
- mycmakeargs+=("$(usex cpu_flags_x86_${flag} "-DHAVE_INTEL_${flag^^}=1")") |
719 |
- done |
720 |
- fi |
721 |
- |
722 |
- # needed for >=glibc-2.32 |
723 |
- has_version '>=sys-libs/glibc-2.32' && mycmakeargs+=(-DWITH_REENTRANT_STRSIGNAL:BOOL=ON) |
724 |
- |
725 |
- rm -f "${BUILD_DIR:-${S}}/CMakeCache.txt" \ |
726 |
- || die "failed to remove cmake cache" |
727 |
- |
728 |
- cmake_src_configure |
729 |
- |
730 |
- # bug #630232 |
731 |
- sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \ |
732 |
- "${BUILD_DIR:-${S}}"/include/acconfig.h \ |
733 |
- || die "sed failed" |
734 |
-} |
735 |
- |
736 |
-src_configure() { |
737 |
- use custom-cflags || strip-flags |
738 |
- ceph_src_configure |
739 |
-} |
740 |
- |
741 |
-python_compile() { |
742 |
- local CMAKE_USE_DIR="${S}" |
743 |
- ceph_src_configure |
744 |
- |
745 |
- pushd "${BUILD_DIR}/src/pybind" >/dev/null || die |
746 |
- emake VERBOSE=1 clean |
747 |
- emake VERBOSE=1 all |
748 |
- |
749 |
- # python modules are only compiled with "make install" so we need to do this to |
750 |
- # prevent doing a bunch of compilation in src_install |
751 |
- DESTDIR="${T}" emake VERBOSE=1 install |
752 |
- popd >/dev/null || die |
753 |
-} |
754 |
- |
755 |
-src_compile() { |
756 |
- cmake_build VERBOSE=1 all |
757 |
- |
758 |
- # we have to do this here to prevent from building everything multiple times |
759 |
- python_copy_sources |
760 |
- python_foreach_impl python_compile |
761 |
-} |
762 |
- |
763 |
-src_test() { |
764 |
- make check || die "make check failed" |
765 |
-} |
766 |
- |
767 |
-python_install() { |
768 |
- local CMAKE_USE_DIR="${S}" |
769 |
- pushd "${BUILD_DIR}/src/pybind" >/dev/null || die |
770 |
- DESTDIR="${ED}" emake VERBOSE=1 install |
771 |
- popd >/dev/null || die |
772 |
- |
773 |
- python_optimize |
774 |
-} |
775 |
- |
776 |
-src_install() { |
777 |
- cmake_src_install |
778 |
- python_foreach_impl python_install |
779 |
- |
780 |
- find "${ED}" -name '*.la' -type f -delete || die |
781 |
- |
782 |
- exeinto /usr/$(get_libdir)/ceph |
783 |
- newexe "${BUILD_DIR}/bin/init-ceph" init-ceph |
784 |
- |
785 |
- insinto /etc/logrotate.d/ |
786 |
- newins "${FILESDIR}"/ceph.logrotate-r2 ${PN} |
787 |
- |
788 |
- keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat |
789 |
- |
790 |
- fowners -R ceph:ceph /var/log/ceph |
791 |
- |
792 |
- newinitd "${FILESDIR}/rbdmap.initd" rbdmap |
793 |
- newinitd "${FILESDIR}/${PN}.initd-r12" ${PN} |
794 |
- newconfd "${FILESDIR}/${PN}.confd-r5" ${PN} |
795 |
- |
796 |
- insinto /etc/sysctl.d |
797 |
- newins "${FILESDIR}"/sysctld 90-${PN}.conf |
798 |
- |
799 |
- use tcmalloc && newenvd "${FILESDIR}"/envd-tcmalloc 99${PN}-tcmalloc |
800 |
- |
801 |
- # units aren't installed by the build system unless systemd is enabled |
802 |
- # so no point installing these with the USE flag disabled |
803 |
- if use systemd; then |
804 |
- systemd_install_serviced "${FILESDIR}/ceph-mds_at.service.conf" \ |
805 |
- "ceph-mds@.service" |
806 |
- |
807 |
- systemd_install_serviced "${FILESDIR}/ceph-osd_at.service.conf" \ |
808 |
- "ceph-osd@.service" |
809 |
- |
810 |
- fi |
811 |
- |
812 |
- udev_dorules udev/*.rules |
813 |
- newtmpfiles "${FILESDIR}"/ceph-tmpfilesd ${PN}.conf |
814 |
- |
815 |
- readme.gentoo_create_doc |
816 |
- |
817 |
- python_setup |
818 |
- |
819 |
- # bug #630232 |
820 |
- sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \ |
821 |
- || die "sed failed" |
822 |
- |
823 |
- python_fix_shebang "${ED}"/usr/{,s}bin/ |
824 |
- |
825 |
- # python_fix_shebang apparently is not idempotent |
826 |
- local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]' |
827 |
- grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \ |
828 |
- | xargs --null --no-run-if-empty -- sed -i -r "s:${shebang_regex}:\1:" || die |
829 |
- |
830 |
- local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* ) |
831 |
- dostrip -x "${rados_classes[@]#${ED}}" |
832 |
-} |
833 |
- |
834 |
-pkg_postinst() { |
835 |
- readme.gentoo_print_elog |
836 |
-} |
837 |
|
838 |
diff --git a/sys-cluster/ceph/ceph-15.2.11.ebuild b/sys-cluster/ceph/ceph-15.2.11.ebuild |
839 |
deleted file mode 100644 |
840 |
index d90c82927bc..00000000000 |
841 |
--- a/sys-cluster/ceph/ceph-15.2.11.ebuild |
842 |
+++ /dev/null |
843 |
@@ -1,405 +0,0 @@ |
844 |
-# Copyright 1999-2021 Gentoo Authors |
845 |
-# Distributed under the terms of the GNU General Public License v2 |
846 |
- |
847 |
-EAPI=7 |
848 |
-PYTHON_COMPAT=( python3_{7..9} ) |
849 |
-DISTUTILS_USE_SETUPTOOLS=rdepend |
850 |
-CMAKE_MAKEFILE_GENERATOR=emake |
851 |
- |
852 |
-DISTUTILS_OPTIONAL=1 |
853 |
- |
854 |
-inherit check-reqs bash-completion-r1 cmake distutils-r1 flag-o-matic \ |
855 |
- python-r1 udev readme.gentoo-r1 toolchain-funcs systemd tmpfiles |
856 |
- |
857 |
-if [[ ${PV} == *9999* ]]; then |
858 |
- inherit git-r3 |
859 |
- EGIT_REPO_URI="https://github.com/ceph/ceph.git" |
860 |
- SRC_URI="" |
861 |
-else |
862 |
- SRC_URI="https://download.ceph.com/tarballs/${P}.tar.gz" |
863 |
- KEYWORDS="~amd64 ~arm64 ~ppc64" |
864 |
-fi |
865 |
- |
866 |
-DESCRIPTION="Ceph distributed filesystem" |
867 |
-HOMEPAGE="https://ceph.com/" |
868 |
- |
869 |
-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" |
870 |
-SLOT="0" |
871 |
- |
872 |
-CPU_FLAGS_X86=(sse{,2,3,4_1,4_2} ssse3) |
873 |
- |
874 |
-IUSE="babeltrace +cephfs custom-cflags diskprediction dpdk fuse grafana jemalloc |
875 |
- kafka kerberos ldap lttng +mgr numa pmdk rabbitmq +radosgw rbd-rwl +ssl spdk |
876 |
- system-boost systemd +tcmalloc test uring xfs zfs" |
877 |
-IUSE+=" $(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})" |
878 |
- |
879 |
-DEPEND=" |
880 |
- acct-group/ceph |
881 |
- acct-user/ceph |
882 |
- virtual/libudev:= |
883 |
- app-arch/bzip2:= |
884 |
- app-arch/lz4:= |
885 |
- app-arch/snappy:= |
886 |
- app-arch/zstd:= |
887 |
- app-shells/bash:0 |
888 |
- app-misc/jq:= |
889 |
- dev-libs/crypto++:= |
890 |
- dev-cpp/gflags:= |
891 |
- dev-libs/leveldb:=[snappy,tcmalloc(-)?] |
892 |
- dev-libs/libaio:= |
893 |
- dev-libs/libfmt:= |
894 |
- dev-libs/libnl:3= |
895 |
- dev-libs/libxml2:= |
896 |
- <dev-libs/rocksdb-6.15:= |
897 |
- dev-libs/xmlsec:=[openssl] |
898 |
- dev-cpp/yaml-cpp:= |
899 |
- dev-libs/nss:= |
900 |
- dev-libs/protobuf:= |
901 |
- net-dns/c-ares:= |
902 |
- net-libs/gnutls:= |
903 |
- sys-auth/oath-toolkit:= |
904 |
- sys-apps/coreutils |
905 |
- sys-apps/grep |
906 |
- sys-apps/hwloc:= |
907 |
- sys-apps/keyutils:= |
908 |
- sys-apps/util-linux:= |
909 |
- sys-apps/sed |
910 |
- sys-apps/util-linux |
911 |
- sys-libs/libcap-ng:= |
912 |
- sys-libs/ncurses:0= |
913 |
- sys-libs/zlib:= |
914 |
- sys-process/numactl:= |
915 |
- x11-libs/libpciaccess:= |
916 |
- babeltrace? ( dev-util/babeltrace ) |
917 |
- fuse? ( sys-fs/fuse:0= ) |
918 |
- jemalloc? ( dev-libs/jemalloc:= ) |
919 |
- !jemalloc? ( >=dev-util/google-perftools-2.6.1:= ) |
920 |
- kafka? ( dev-libs/librdkafka:= ) |
921 |
- kerberos? ( virtual/krb5 ) |
922 |
- ldap? ( net-nds/openldap:= ) |
923 |
- lttng? ( dev-util/lttng-ust:= ) |
924 |
- pmdk? ( dev-libs/pmdk:= ) |
925 |
- rabbitmq? ( net-libs/rabbitmq-c:= ) |
926 |
- radosgw? ( |
927 |
- dev-libs/expat:= |
928 |
- dev-libs/openssl:= |
929 |
- net-misc/curl:=[curl_ssl_openssl] |
930 |
- ) |
931 |
- rbd-rwl? ( dev-libs/pmdk:= ) |
932 |
- ssl? ( dev-libs/openssl:= ) |
933 |
- system-boost? ( >=dev-libs/boost-1.72[threads,context,python,${PYTHON_USEDEP}] ) |
934 |
- uring? ( sys-libs/liburing:= ) |
935 |
- xfs? ( sys-fs/xfsprogs:= ) |
936 |
- zfs? ( sys-fs/zfs:= ) |
937 |
- ${PYTHON_DEPS} |
938 |
-" |
939 |
-BDEPEND=" |
940 |
- amd64? ( dev-lang/yasm ) |
941 |
- x86? ( dev-lang/yasm ) |
942 |
- app-arch/cpio |
943 |
- >=dev-util/cmake-3.5.0 |
944 |
- dev-python/cython[${PYTHON_USEDEP}] |
945 |
- dev-python/sphinx |
946 |
- dev-util/cunit |
947 |
- dev-util/gperf |
948 |
- dev-util/ragel |
949 |
- dev-util/valgrind |
950 |
- sys-apps/coreutils |
951 |
- sys-apps/findutils |
952 |
- sys-apps/grep |
953 |
- sys-apps/sed |
954 |
- sys-apps/which |
955 |
- sys-devel/bc |
956 |
- sys-devel/patch |
957 |
- virtual/pkgconfig |
958 |
- test? ( |
959 |
- dev-python/coverage[${PYTHON_USEDEP}] |
960 |
- dev-python/virtualenv[${PYTHON_USEDEP}] |
961 |
- dev-python/requests-mock[${PYTHON_USEDEP}] |
962 |
- sys-apps/grep[pcre] |
963 |
- sys-fs/btrfs-progs |
964 |
- ) |
965 |
-" |
966 |
-RDEPEND="${DEPEND} |
967 |
- app-admin/sudo |
968 |
- net-misc/socat |
969 |
- sys-apps/gptfdisk |
970 |
- sys-apps/nvme-cli |
971 |
- >=sys-apps/smartmontools-7.0 |
972 |
- sys-block/parted |
973 |
- sys-fs/cryptsetup |
974 |
- sys-fs/lsscsi |
975 |
- sys-fs/lvm2[-device-mapper-only(-)] |
976 |
- virtual/awk |
977 |
- dev-python/bcrypt[${PYTHON_USEDEP}] |
978 |
- dev-python/cherrypy[${PYTHON_USEDEP}] |
979 |
- dev-python/python-dateutil[${PYTHON_USEDEP}] |
980 |
- dev-python/flask[${PYTHON_USEDEP}] |
981 |
- dev-python/jinja[${PYTHON_USEDEP}] |
982 |
- dev-python/pecan[${PYTHON_USEDEP}] |
983 |
- dev-python/prettytable[${PYTHON_USEDEP}] |
984 |
- dev-python/pyopenssl[${PYTHON_USEDEP}] |
985 |
- dev-python/requests[${PYTHON_USEDEP}] |
986 |
- dev-python/werkzeug[${PYTHON_USEDEP}] |
987 |
- mgr? ( |
988 |
- dev-python/jsonpatch[${PYTHON_USEDEP}] |
989 |
- dev-python/more-itertools[${PYTHON_USEDEP}] |
990 |
- dev-python/numpy[${PYTHON_USEDEP}] |
991 |
- dev-python/pyjwt[${PYTHON_USEDEP}] |
992 |
- dev-python/pyyaml[${PYTHON_USEDEP}] |
993 |
- dev-python/routes[${PYTHON_USEDEP}] |
994 |
- diskprediction? ( |
995 |
- $(python_gen_cond_dep '<dev-python/scipy-1.4.0[${PYTHON_USEDEP}]' python3_{6,7}) |
996 |
- ) |
997 |
- sci-libs/scikit-learn[${PYTHON_USEDEP}] |
998 |
- dev-python/six[${PYTHON_USEDEP}] |
999 |
- ) |
1000 |
-" |
1001 |
-# diskprediction needs older scipy not compatible with py38 |
1002 |
-# bug #724438 |
1003 |
-REQUIRED_USE=" |
1004 |
- ${PYTHON_REQUIRED_USE} |
1005 |
- ?? ( jemalloc tcmalloc ) |
1006 |
- diskprediction? ( mgr !python_targets_python3_8 ) |
1007 |
- kafka? ( radosgw ) |
1008 |
- mgr? ( cephfs ) |
1009 |
- rabbitmq? ( radosgw ) |
1010 |
-" |
1011 |
-RESTRICT="!test? ( test )" |
1012 |
- |
1013 |
-# the tests need root access |
1014 |
-RESTRICT="test? ( userpriv )" |
1015 |
- |
1016 |
-# distribution tarball does not include everything needed for tests |
1017 |
-RESTRICT+=" test" |
1018 |
- |
1019 |
-# create a non-debug release |
1020 |
-CMAKE_BUILD_TYPE=RelWithDebInfo |
1021 |
- |
1022 |
-# false positives unless all USE flags are on |
1023 |
-CMAKE_WARN_UNUSED_CLI=no |
1024 |
- |
1025 |
-PATCHES=( |
1026 |
- "${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch" |
1027 |
- "${FILESDIR}/ceph-14.2.0-cflags.patch" |
1028 |
- "${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch" |
1029 |
- "${FILESDIR}/ceph-13.2.0-cflags.patch" |
1030 |
- "${FILESDIR}/ceph-15.2.0-no-virtualenvs.patch" |
1031 |
- "${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch" |
1032 |
- "${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch" |
1033 |
- "${FILESDIR}/ceph-14.2.0-link-crc32-statically.patch" |
1034 |
- "${FILESDIR}/ceph-14.2.0-cython-0.29.patch" |
1035 |
- "${FILESDIR}/ceph-15.2.0-rocksdb-cmake.patch" |
1036 |
- "${FILESDIR}/ceph-15.2.2-systemd-unit.patch" |
1037 |
- "${FILESDIR}/ceph-15.2.3-spdk-compile.patch" |
1038 |
- "${FILESDIR}/ceph-15.2.4-system-uring.patch" |
1039 |
- "${FILESDIR}/ceph-15.2.5-missing-includes.patch" |
1040 |
- "${FILESDIR}/ceph-15.2.9-dont-compile-isal_compress-if-don-t-have-SSE4_1.patch" |
1041 |
-) |
1042 |
- |
1043 |
-check-reqs_export_vars() { |
1044 |
- CHECKREQS_DISK_BUILD="5400M" |
1045 |
- CHECKREQS_DISK_USR="510M" |
1046 |
- |
1047 |
- export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR |
1048 |
-} |
1049 |
- |
1050 |
-pkg_pretend() { |
1051 |
- check-reqs_export_vars |
1052 |
- check-reqs_pkg_pretend |
1053 |
-} |
1054 |
- |
1055 |
-pkg_setup() { |
1056 |
- python_setup |
1057 |
- check-reqs_export_vars |
1058 |
- check-reqs_pkg_setup |
1059 |
-} |
1060 |
- |
1061 |
-src_prepare() { |
1062 |
- cmake_src_prepare |
1063 |
- |
1064 |
- if use system-boost; then |
1065 |
- find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \ |
1066 |
- | xargs --null sed -r \ |
1067 |
- -e 's|Boost::|boost_|g' \ |
1068 |
- -e 's|Boost_|boost_|g' \ |
1069 |
- -e 's|[Bb]oost_boost|boost_system|g' -i || die |
1070 |
- fi |
1071 |
- |
1072 |
- sed -r -e "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \ |
1073 |
- -i src/bash_completion/CMakeLists.txt || die |
1074 |
- |
1075 |
- sed -e "s:objdump -p:$(tc-getOBJDUMP) -p:" -i CMakeLists.txt || die |
1076 |
- |
1077 |
- if ! use diskprediction; then |
1078 |
- rm -rf src/pybind/mgr/diskprediction_local || die |
1079 |
- fi |
1080 |
- |
1081 |
- # remove tests that need root access |
1082 |
- rm src/test/cli/ceph-authtool/cap*.t || die |
1083 |
-} |
1084 |
- |
1085 |
-ceph_src_configure() { |
1086 |
- local flag |
1087 |
- local mycmakeargs=( |
1088 |
- -DWITH_BABELTRACE=$(usex babeltrace) |
1089 |
- -DWITH_BLUESTORE_PMEM=$(usex pmdk) |
1090 |
- -DWITH_CEPHFS=$(usex cephfs) |
1091 |
- -DWITH_CEPHFS_SHELL=$(usex cephfs) |
1092 |
- -DWITH_DPDK=$(usex dpdk) |
1093 |
- -DWITH_SPDK=$(usex spdk) |
1094 |
- -DWITH_FUSE=$(usex fuse) |
1095 |
- -DWITH_LTTNG=$(usex lttng) |
1096 |
- -DWITH_GSSAPI=$(usex kerberos) |
1097 |
- -DWITH_GRAFANA=$(usex grafana) |
1098 |
- -DWITH_MGR=$(usex mgr) |
1099 |
- -DWITH_MGR_DASHBOARD_FRONTEND=OFF |
1100 |
- -DWITH_NUMA=$(usex numa) |
1101 |
- -DWITH_OPENLDAP=$(usex ldap) |
1102 |
- -DWITH_PYTHON3=3 |
1103 |
- -DWITH_RADOSGW=$(usex radosgw) |
1104 |
- -DWITH_RADOSGW_AMQP_ENDPOINT=$(usex rabbitmq) |
1105 |
- -DWITH_RADOSGW_KAFKA_ENDPOINT=$(usex kafka) |
1106 |
- -DWITH_RBD_RWL=$(usex rbd-rwl) |
1107 |
- -DWITH_SSL=$(usex ssl) |
1108 |
- -DWITH_SYSTEMD=$(usex systemd) |
1109 |
- -DWITH_TESTS=$(usex test) |
1110 |
- -DWITH_LIBURING=$(usex uring) |
1111 |
- -DWITH_XFS=$(usex xfs) |
1112 |
- -DWITH_ZFS=$(usex zfs) |
1113 |
- -DENABLE_SHARED="ON" |
1114 |
- -DALLOCATOR=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')") |
1115 |
- -DWITH_SYSTEM_PMDK=$(usex pmdk 'YES' "$(usex rbd-rwl)") |
1116 |
- -DWITH_SYSTEM_BOOST=$(usex system-boost) |
1117 |
- -DBOOST_J=$(makeopts_jobs) |
1118 |
- -DWITH_SYSTEM_ROCKSDB=ON |
1119 |
- -DWITH_RDMA=OFF |
1120 |
- -DWITH_TBB=OFF |
1121 |
- -DSYSTEMD_UNITDIR=$(systemd_get_systemunitdir) |
1122 |
- -DCMAKE_INSTALL_SYSTEMD_SERVICEDIR=$(systemd_get_systemunitdir) |
1123 |
- -DEPYTHON_VERSION="${EPYTHON#python}" |
1124 |
- -DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PN}-${PVR}" |
1125 |
- -DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc" |
1126 |
- -Wno-dev |
1127 |
- ) |
1128 |
- if use amd64 || use x86; then |
1129 |
- for flag in ${CPU_FLAGS_X86[@]}; do |
1130 |
- mycmakeargs+=("$(usex cpu_flags_x86_${flag} "-DHAVE_INTEL_${flag^^}=1")") |
1131 |
- done |
1132 |
- fi |
1133 |
- |
1134 |
- # needed for >=glibc-2.32 |
1135 |
- has_version '>=sys-libs/glibc-2.32' && mycmakeargs+=(-DWITH_REENTRANT_STRSIGNAL:BOOL=ON) |
1136 |
- |
1137 |
- rm -f "${BUILD_DIR:-${S}}/CMakeCache.txt" \ |
1138 |
- || die "failed to remove cmake cache" |
1139 |
- |
1140 |
- cmake_src_configure |
1141 |
- |
1142 |
- # bug #630232 |
1143 |
- sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \ |
1144 |
- "${BUILD_DIR:-${S}}"/include/acconfig.h \ |
1145 |
- || die "sed failed" |
1146 |
-} |
1147 |
- |
1148 |
-src_configure() { |
1149 |
- use custom-cflags || strip-flags |
1150 |
- ceph_src_configure |
1151 |
-} |
1152 |
- |
1153 |
-python_compile() { |
1154 |
- local CMAKE_USE_DIR="${S}" |
1155 |
- ceph_src_configure |
1156 |
- |
1157 |
- pushd "${BUILD_DIR}/src/pybind" >/dev/null || die |
1158 |
- emake VERBOSE=1 clean |
1159 |
- emake VERBOSE=1 all |
1160 |
- |
1161 |
- # python modules are only compiled with "make install" so we need to do this to |
1162 |
- # prevent doing a bunch of compilation in src_install |
1163 |
- DESTDIR="${T}" emake VERBOSE=1 install |
1164 |
- popd >/dev/null || die |
1165 |
-} |
1166 |
- |
1167 |
-src_compile() { |
1168 |
- cmake_build VERBOSE=1 all |
1169 |
- |
1170 |
- # we have to do this here to prevent from building everything multiple times |
1171 |
- python_copy_sources |
1172 |
- python_foreach_impl python_compile |
1173 |
-} |
1174 |
- |
1175 |
-src_test() { |
1176 |
- make check || die "make check failed" |
1177 |
-} |
1178 |
- |
1179 |
-python_install() { |
1180 |
- local CMAKE_USE_DIR="${S}" |
1181 |
- pushd "${BUILD_DIR}/src/pybind" >/dev/null || die |
1182 |
- DESTDIR="${ED}" emake VERBOSE=1 install |
1183 |
- popd >/dev/null || die |
1184 |
- |
1185 |
- python_optimize |
1186 |
-} |
1187 |
- |
1188 |
-src_install() { |
1189 |
- cmake_src_install |
1190 |
- python_foreach_impl python_install |
1191 |
- |
1192 |
- find "${ED}" -name '*.la' -type f -delete || die |
1193 |
- |
1194 |
- exeinto /usr/$(get_libdir)/ceph |
1195 |
- newexe "${BUILD_DIR}/bin/init-ceph" init-ceph |
1196 |
- |
1197 |
- insinto /etc/logrotate.d/ |
1198 |
- newins "${FILESDIR}"/ceph.logrotate-r2 ${PN} |
1199 |
- |
1200 |
- keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat |
1201 |
- |
1202 |
- fowners -R ceph:ceph /var/log/ceph |
1203 |
- |
1204 |
- newinitd "${FILESDIR}/rbdmap.initd-r1" rbdmap |
1205 |
- newinitd "${FILESDIR}/${PN}.initd-r12" ${PN} |
1206 |
- newconfd "${FILESDIR}/${PN}.confd-r5" ${PN} |
1207 |
- |
1208 |
- insinto /etc/sysctl.d |
1209 |
- newins "${FILESDIR}"/sysctld 90-${PN}.conf |
1210 |
- |
1211 |
- use tcmalloc && newenvd "${FILESDIR}"/envd-tcmalloc 99${PN}-tcmalloc |
1212 |
- |
1213 |
- # units aren't installed by the build system unless systemd is enabled |
1214 |
- # so no point installing these with the USE flag disabled |
1215 |
- if use systemd; then |
1216 |
- systemd_install_serviced "${FILESDIR}/ceph-mds_at.service.conf" \ |
1217 |
- "ceph-mds@.service" |
1218 |
- |
1219 |
- systemd_install_serviced "${FILESDIR}/ceph-osd_at.service.conf" \ |
1220 |
- "ceph-osd@.service" |
1221 |
- |
1222 |
- fi |
1223 |
- |
1224 |
- udev_dorules udev/*.rules |
1225 |
- newtmpfiles "${FILESDIR}"/ceph-tmpfilesd ${PN}.conf |
1226 |
- |
1227 |
- readme.gentoo_create_doc |
1228 |
- |
1229 |
- python_setup |
1230 |
- |
1231 |
- # bug #630232 |
1232 |
- sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \ |
1233 |
- || die "sed failed" |
1234 |
- |
1235 |
- python_fix_shebang "${ED}"/usr/{,s}bin/ |
1236 |
- |
1237 |
- # python_fix_shebang apparently is not idempotent |
1238 |
- local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]' |
1239 |
- grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \ |
1240 |
- | xargs --null --no-run-if-empty -- sed -i -r "s:${shebang_regex}:\1:" || die |
1241 |
- |
1242 |
- local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* ) |
1243 |
- dostrip -x "${rados_classes[@]#${ED}}" |
1244 |
-} |
1245 |
- |
1246 |
-pkg_postinst() { |
1247 |
- readme.gentoo_print_elog |
1248 |
-} |
1249 |
|
1250 |
diff --git a/sys-cluster/ceph/ceph-16.2.1.ebuild b/sys-cluster/ceph/ceph-16.2.1.ebuild |
1251 |
deleted file mode 100644 |
1252 |
index ba5408dd220..00000000000 |
1253 |
--- a/sys-cluster/ceph/ceph-16.2.1.ebuild |
1254 |
+++ /dev/null |
1255 |
@@ -1,448 +0,0 @@ |
1256 |
-# Copyright 1999-2021 Gentoo Authors |
1257 |
-# Distributed under the terms of the GNU General Public License v2 |
1258 |
- |
1259 |
-EAPI=7 |
1260 |
- |
1261 |
-PYTHON_COMPAT=( python3_{7..9} ) |
1262 |
-DISTUTILS_USE_SETUPTOOLS=rdepend |
1263 |
-DISTUTILS_OPTIONAL=1 |
1264 |
-LUA_COMPAT=( lua5-3 ) |
1265 |
- |
1266 |
-CMAKE_MAKEFILE_GENERATOR=emake |
1267 |
- |
1268 |
-inherit check-reqs bash-completion-r1 cmake distutils-r1 flag-o-matic \ |
1269 |
- lua-single python-r1 udev readme.gentoo-r1 toolchain-funcs \ |
1270 |
- systemd tmpfiles |
1271 |
- |
1272 |
-if [[ ${PV} == *9999* ]]; then |
1273 |
- inherit git-r3 |
1274 |
- EGIT_REPO_URI="https://github.com/ceph/ceph.git" |
1275 |
- SRC_URI="" |
1276 |
-else |
1277 |
- SRC_URI="https://download.ceph.com/tarballs/${P}.tar.gz" |
1278 |
- KEYWORDS="~amd64 ~arm64 ~ppc64" |
1279 |
-fi |
1280 |
- |
1281 |
-DESCRIPTION="Ceph distributed filesystem" |
1282 |
-HOMEPAGE="https://ceph.com/" |
1283 |
- |
1284 |
-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" |
1285 |
-SLOT="0" |
1286 |
- |
1287 |
-CPU_FLAGS_X86=(avx2 avx512f pclmul sse{,2,3,4_1,4_2} ssse3) |
1288 |
- |
1289 |
-IUSE="babeltrace +cephfs custom-cflags diskprediction dpdk fuse grafana |
1290 |
- jemalloc jaeger kafka kerberos ldap lttng +mgr numa pmdk rabbitmq |
1291 |
- +radosgw rbd-rwl rbd-ssd rgw-lua +ssl spdk +sqlite system-boost systemd |
1292 |
- +tcmalloc test uring xfs zbd zfs" |
1293 |
-IUSE+=" $(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})" |
1294 |
- |
1295 |
-DEPEND=" |
1296 |
- ${LUA_DEPS} |
1297 |
- acct-group/ceph |
1298 |
- acct-user/ceph |
1299 |
- virtual/libudev:= |
1300 |
- app-arch/bzip2:= |
1301 |
- app-arch/lz4:= |
1302 |
- app-arch/snappy:= |
1303 |
- app-arch/zstd:= |
1304 |
- app-shells/bash:0 |
1305 |
- app-misc/jq:= |
1306 |
- dev-libs/crypto++:= |
1307 |
- dev-cpp/gflags:= |
1308 |
- dev-libs/leveldb:=[snappy,tcmalloc(-)?] |
1309 |
- dev-libs/libaio:= |
1310 |
- dev-libs/libfmt:= |
1311 |
- dev-libs/libnl:3= |
1312 |
- dev-libs/libxml2:= |
1313 |
- dev-libs/libevent:= |
1314 |
- <dev-libs/rocksdb-6.15:= |
1315 |
- dev-libs/xmlsec:=[openssl] |
1316 |
- dev-cpp/yaml-cpp:= |
1317 |
- dev-libs/nss:= |
1318 |
- dev-libs/protobuf:= |
1319 |
- net-dns/c-ares:= |
1320 |
- net-libs/gnutls:= |
1321 |
- sys-auth/oath-toolkit:= |
1322 |
- sys-apps/coreutils |
1323 |
- sys-apps/grep |
1324 |
- sys-apps/hwloc:= |
1325 |
- sys-apps/keyutils:= |
1326 |
- sys-apps/util-linux:= |
1327 |
- sys-apps/sed |
1328 |
- sys-apps/util-linux |
1329 |
- sys-libs/libcap-ng:= |
1330 |
- sys-libs/ncurses:0= |
1331 |
- sys-libs/zlib:= |
1332 |
- sys-process/numactl:= |
1333 |
- x11-libs/libpciaccess:= |
1334 |
- babeltrace? ( dev-util/babeltrace ) |
1335 |
- fuse? ( sys-fs/fuse:0= ) |
1336 |
- jemalloc? ( dev-libs/jemalloc:= ) |
1337 |
- !jemalloc? ( >=dev-util/google-perftools-2.6.1:= ) |
1338 |
- jaeger? ( dev-cpp/nlohmann_json:= ) |
1339 |
- kafka? ( dev-libs/librdkafka:= ) |
1340 |
- kerberos? ( virtual/krb5 ) |
1341 |
- ldap? ( net-nds/openldap:= ) |
1342 |
- lttng? ( dev-util/lttng-ust:= ) |
1343 |
- pmdk? ( dev-libs/pmdk:= ) |
1344 |
- rabbitmq? ( net-libs/rabbitmq-c:= ) |
1345 |
- radosgw? ( |
1346 |
- dev-libs/icu:= |
1347 |
- dev-libs/expat:= |
1348 |
- dev-libs/openssl:= |
1349 |
- net-misc/curl:=[curl_ssl_openssl] |
1350 |
- ) |
1351 |
- rbd-rwl? ( dev-libs/pmdk:= ) |
1352 |
- ssl? ( dev-libs/openssl:= ) |
1353 |
- sqlite? ( dev-db/sqlite:= ) |
1354 |
- system-boost? ( >=dev-libs/boost-1.72[threads,context,python,${PYTHON_USEDEP}] ) |
1355 |
- uring? ( sys-libs/liburing:= ) |
1356 |
- xfs? ( sys-fs/xfsprogs:= ) |
1357 |
- zbd? ( sys-block/libzbd:= ) |
1358 |
- zfs? ( sys-fs/zfs:= ) |
1359 |
- ${PYTHON_DEPS} |
1360 |
-" |
1361 |
-BDEPEND=" |
1362 |
- amd64? ( dev-lang/nasm ) |
1363 |
- x86? ( dev-lang/yasm ) |
1364 |
- app-arch/cpio |
1365 |
- >=dev-util/cmake-3.5.0 |
1366 |
- dev-python/cython[${PYTHON_USEDEP}] |
1367 |
- dev-python/sphinx |
1368 |
- dev-util/cunit |
1369 |
- dev-util/gperf |
1370 |
- dev-util/ragel |
1371 |
- dev-util/valgrind |
1372 |
- sys-apps/coreutils |
1373 |
- sys-apps/findutils |
1374 |
- sys-apps/grep |
1375 |
- sys-apps/sed |
1376 |
- sys-apps/which |
1377 |
- sys-devel/bc |
1378 |
- sys-devel/patch |
1379 |
- virtual/pkgconfig |
1380 |
- jaeger? ( |
1381 |
- sys-devel/bison |
1382 |
- sys-devel/flex |
1383 |
- ) |
1384 |
- test? ( |
1385 |
- dev-python/coverage[${PYTHON_USEDEP}] |
1386 |
- dev-python/virtualenv[${PYTHON_USEDEP}] |
1387 |
- dev-python/requests-mock[${PYTHON_USEDEP}] |
1388 |
- sys-apps/grep[pcre] |
1389 |
- sys-fs/btrfs-progs |
1390 |
- ) |
1391 |
-" |
1392 |
-RDEPEND=" |
1393 |
- ${DEPEND} |
1394 |
- app-admin/sudo |
1395 |
- net-misc/socat |
1396 |
- sys-apps/gptfdisk |
1397 |
- sys-apps/nvme-cli |
1398 |
- >=sys-apps/smartmontools-7.0 |
1399 |
- sys-block/parted |
1400 |
- sys-fs/cryptsetup |
1401 |
- sys-fs/lsscsi |
1402 |
- sys-fs/lvm2[-device-mapper-only(-)] |
1403 |
- virtual/awk |
1404 |
- dev-python/bcrypt[${PYTHON_USEDEP}] |
1405 |
- dev-python/cherrypy[${PYTHON_USEDEP}] |
1406 |
- dev-python/python-dateutil[${PYTHON_USEDEP}] |
1407 |
- dev-python/flask[${PYTHON_USEDEP}] |
1408 |
- dev-python/jinja[${PYTHON_USEDEP}] |
1409 |
- dev-python/pecan[${PYTHON_USEDEP}] |
1410 |
- dev-python/prettytable[${PYTHON_USEDEP}] |
1411 |
- dev-python/pyopenssl[${PYTHON_USEDEP}] |
1412 |
- dev-python/requests[${PYTHON_USEDEP}] |
1413 |
- dev-python/werkzeug[${PYTHON_USEDEP}] |
1414 |
- mgr? ( |
1415 |
- dev-python/jsonpatch[${PYTHON_USEDEP}] |
1416 |
- dev-python/more-itertools[${PYTHON_USEDEP}] |
1417 |
- dev-python/numpy[${PYTHON_USEDEP}] |
1418 |
- dev-python/pyjwt[${PYTHON_USEDEP}] |
1419 |
- dev-python/pyyaml[${PYTHON_USEDEP}] |
1420 |
- dev-python/routes[${PYTHON_USEDEP}] |
1421 |
- diskprediction? ( |
1422 |
- >=dev-python/scipy-1.4.0[${PYTHON_USEDEP}] |
1423 |
- ) |
1424 |
- sci-libs/scikit-learn[${PYTHON_USEDEP}] |
1425 |
- dev-python/six[${PYTHON_USEDEP}] |
1426 |
- ) |
1427 |
-" |
1428 |
-# diskprediction needs older scipy not compatible with py38 |
1429 |
-# bug #724438 |
1430 |
-REQUIRED_USE=" |
1431 |
- ${PYTHON_REQUIRED_USE} |
1432 |
- ${LUA_REQUIRED_USE} |
1433 |
- ?? ( jemalloc tcmalloc ) |
1434 |
- jaeger? ( !system-boost ) |
1435 |
- diskprediction? ( mgr ) |
1436 |
- kafka? ( radosgw ) |
1437 |
- mgr? ( cephfs ) |
1438 |
- rabbitmq? ( radosgw ) |
1439 |
-" |
1440 |
-RESTRICT="!test? ( test )" |
1441 |
- |
1442 |
-# the tests need root access |
1443 |
-RESTRICT="test? ( userpriv )" |
1444 |
- |
1445 |
-# distribution tarball does not include everything needed for tests |
1446 |
-RESTRICT+=" test" |
1447 |
- |
1448 |
-# create a non-debug release |
1449 |
-CMAKE_BUILD_TYPE=RelWithDebInfo |
1450 |
- |
1451 |
-# false positives unless all USE flags are on |
1452 |
-CMAKE_WARN_UNUSED_CLI=no |
1453 |
- |
1454 |
-PATCHES=( |
1455 |
- "${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch" |
1456 |
- "${FILESDIR}/ceph-14.2.0-cflags.patch" |
1457 |
- "${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch" |
1458 |
- "${FILESDIR}/ceph-13.2.0-cflags.patch" |
1459 |
- "${FILESDIR}/ceph-16.2.0-no-virtualenvs.patch" |
1460 |
- "${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch" |
1461 |
- "${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch" |
1462 |
- "${FILESDIR}/ceph-14.2.0-link-crc32-statically.patch" |
1463 |
- "${FILESDIR}/ceph-14.2.0-cython-0.29.patch" |
1464 |
- "${FILESDIR}/ceph-16.2.0-rocksdb-cmake.patch" |
1465 |
- "${FILESDIR}/ceph-15.2.3-spdk-compile.patch" |
1466 |
- "${FILESDIR}/ceph-16.2.0-install-libblk.patch" |
1467 |
- "${FILESDIR}/ceph-16.2.0-spdk-tinfo.patch" |
1468 |
- "${FILESDIR}/ceph-16.2.0-jaeger-system-boost.patch" |
1469 |
- "${FILESDIR}/ceph-16.2.0-liburing.patch" |
1470 |
-) |
1471 |
- |
1472 |
-check-reqs_export_vars() { |
1473 |
- CHECKREQS_DISK_BUILD="6G" |
1474 |
- |
1475 |
- if use system-boost; then |
1476 |
- CHECKREQS_DISK_USR="350M" |
1477 |
- else |
1478 |
- CHECKREQS_DISK_USR="510M" |
1479 |
- fi |
1480 |
- |
1481 |
- export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR |
1482 |
-} |
1483 |
- |
1484 |
-pkg_pretend() { |
1485 |
- check-reqs_export_vars |
1486 |
- check-reqs_pkg_pretend |
1487 |
-} |
1488 |
- |
1489 |
-pkg_setup() { |
1490 |
- python_setup |
1491 |
- lua_setup |
1492 |
- check-reqs_export_vars |
1493 |
- check-reqs_pkg_setup |
1494 |
-} |
1495 |
- |
1496 |
-src_prepare() { |
1497 |
- cmake_src_prepare |
1498 |
- |
1499 |
- if use system-boost; then |
1500 |
- find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \ |
1501 |
- | xargs --null sed -r \ |
1502 |
- -e 's|Boost::|boost_|g' \ |
1503 |
- -e 's|Boost_|boost_|g' \ |
1504 |
- -e 's|[Bb]oost_boost|boost_system|g' -i || die |
1505 |
- fi |
1506 |
- |
1507 |
- sed -r -e "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \ |
1508 |
- -i src/bash_completion/CMakeLists.txt || die |
1509 |
- |
1510 |
- sed -e "s:objdump -p:$(tc-getOBJDUMP) -p:" -i CMakeLists.txt || die |
1511 |
- |
1512 |
- if ! use diskprediction; then |
1513 |
- rm -rf src/pybind/mgr/diskprediction_local || die |
1514 |
- fi |
1515 |
- |
1516 |
- # force lua version to use selected version |
1517 |
- local lua_version |
1518 |
- lua_version=$(ver_cut 1-2 $(lua_get_version)) |
1519 |
- sed -i "s:find_package(Lua [0-9][.][0-9] REQUIRED):find_package(Lua ${lua_version} EXACT REQUIRED):" src/CMakeLists.txt |
1520 |
- |
1521 |
- # remove tests that need root access |
1522 |
- rm src/test/cli/ceph-authtool/cap*.t || die |
1523 |
-} |
1524 |
- |
1525 |
-ceph_src_configure() { |
1526 |
- local flag |
1527 |
- local mycmakeargs=( |
1528 |
- -DWITH_BABELTRACE=$(usex babeltrace) |
1529 |
- -DWITH_BLUESTORE_PMEM=$(usex pmdk) |
1530 |
- -DWITH_CEPHFS=$(usex cephfs) |
1531 |
- -DWITH_CEPHFS_SHELL=$(usex cephfs) |
1532 |
- -DWITH_DPDK=$(usex dpdk) |
1533 |
- -DWITH_SPDK=$(usex spdk) |
1534 |
- -DWITH_FUSE=$(usex fuse) |
1535 |
- -DWITH_LTTNG=$(usex lttng) |
1536 |
- -DWITH_GSSAPI=$(usex kerberos) |
1537 |
- -DWITH_GRAFANA=$(usex grafana) |
1538 |
- -DWITH_MGR=$(usex mgr) |
1539 |
- -DWITH_MGR_DASHBOARD_FRONTEND=OFF |
1540 |
- -DWITH_NUMA=$(usex numa) |
1541 |
- -DWITH_OPENLDAP=$(usex ldap) |
1542 |
- -DWITH_PYTHON3=3 |
1543 |
- -DWITH_RADOSGW=$(usex radosgw) |
1544 |
- -DWITH_RADOSGW_AMQP_ENDPOINT=$(usex rabbitmq) |
1545 |
- -DWITH_RADOSGW_KAFKA_ENDPOINT=$(usex kafka) |
1546 |
- -DWITH_RADOSGW_LUA_PACKAGES=$(usex rgw-lua "$(usex radosgw)" "NO") |
1547 |
- -DWITH_RBD_RWL=$(usex rbd-rwl) |
1548 |
- -DWITH_RBD_SSD_CACHE=$(usex rbd-ssd) |
1549 |
- -DWITH_SSL=$(usex ssl) |
1550 |
- -DWITH_SYSTEMD=$(usex systemd) |
1551 |
- -DWITH_TESTS=$(usex test) |
1552 |
- -DWITH_LIBURING=$(usex uring) |
1553 |
- -DWITH_SYSTEM_LIBURING=$(usex uring) |
1554 |
- -DWITH_LIBCEPHSQLITE=$(usex sqlite) |
1555 |
- -DWITH_XFS=$(usex xfs) |
1556 |
- -DWITH_ZBD=$(usex zbd) |
1557 |
- -DWITH_ZFS=$(usex zfs) |
1558 |
- -DENABLE_SHARED="ON" |
1559 |
- -DALLOCATOR=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')") |
1560 |
- -DWITH_SYSTEM_PMDK=$(usex pmdk 'YES' "$(usex rbd-rwl)") |
1561 |
- -DWITH_SYSTEM_BOOST=$(usex system-boost) |
1562 |
- -DBOOST_J=$(makeopts_jobs) |
1563 |
- -DWITH_SYSTEM_ROCKSDB=ON |
1564 |
- -DWITH_RDMA=OFF |
1565 |
- -DWITH_TBB=OFF |
1566 |
- -DSYSTEMD_UNITDIR=$(systemd_get_systemunitdir) |
1567 |
- -DCMAKE_INSTALL_SYSTEMD_SERVICEDIR=$(systemd_get_systemunitdir) |
1568 |
- -DEPYTHON_VERSION="${EPYTHON#python}" |
1569 |
- -DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PN}-${PVR}" |
1570 |
- -DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc" |
1571 |
- -Wno-dev |
1572 |
- ) |
1573 |
- |
1574 |
- # this breaks when re-configuring for python impl |
1575 |
- [[ ${EBUILD_PHASE} == configure ]] && mycmakeargs+=(-DWITH_JAEGER=$(usex jaeger)) |
1576 |
- |
1577 |
- if use amd64 || use x86; then |
1578 |
- for flag in ${CPU_FLAGS_X86[@]}; do |
1579 |
- case "${flag}" in |
1580 |
- avx*) |
1581 |
- local var=${flag%f} |
1582 |
- mycmakeargs+=("$(usex cpu_flags_x86_${flag} "-DHAVE_NASM_X64_${var^^}=1")") |
1583 |
- ;; |
1584 |
- *) mycmakeargs+=("$(usex cpu_flags_x86_${flag} "-DHAVE_INTEL_${flag^^}=1")");; |
1585 |
- esac |
1586 |
- done |
1587 |
- fi |
1588 |
- |
1589 |
- # needed for >=glibc-2.32 |
1590 |
- has_version '>=sys-libs/glibc-2.32' && mycmakeargs+=(-DWITH_REENTRANT_STRSIGNAL:BOOL=ON) |
1591 |
- |
1592 |
- rm -f "${BUILD_DIR:-${S}}/CMakeCache.txt" \ |
1593 |
- || die "failed to remove cmake cache" |
1594 |
- |
1595 |
- cmake_src_configure |
1596 |
- |
1597 |
- # bug #630232 |
1598 |
- sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \ |
1599 |
- "${BUILD_DIR:-${S}}"/include/acconfig.h \ |
1600 |
- || die "sed failed" |
1601 |
-} |
1602 |
- |
1603 |
-src_configure() { |
1604 |
- use custom-cflags || strip-flags |
1605 |
- ceph_src_configure |
1606 |
-} |
1607 |
- |
1608 |
-python_compile() { |
1609 |
- local CMAKE_USE_DIR="${S}" |
1610 |
- ceph_src_configure |
1611 |
- |
1612 |
- pushd "${BUILD_DIR}/src/pybind" >/dev/null || die |
1613 |
- emake VERBOSE=1 clean |
1614 |
- emake VERBOSE=1 all |
1615 |
- |
1616 |
- # python modules are only compiled with "make install" so we need to do this to |
1617 |
- # prevent doing a bunch of compilation in src_install |
1618 |
- DESTDIR="${T}" emake VERBOSE=1 install |
1619 |
- popd >/dev/null || die |
1620 |
-} |
1621 |
- |
1622 |
-src_compile() { |
1623 |
- cmake_build VERBOSE=1 all |
1624 |
- |
1625 |
- # we have to do this here to prevent from building everything multiple times |
1626 |
- python_copy_sources |
1627 |
- python_foreach_impl python_compile |
1628 |
-} |
1629 |
- |
1630 |
-src_test() { |
1631 |
- make check || die "make check failed" |
1632 |
-} |
1633 |
- |
1634 |
-python_install() { |
1635 |
- local CMAKE_USE_DIR="${S}" |
1636 |
- pushd "${BUILD_DIR}/src/pybind" >/dev/null || die |
1637 |
- DESTDIR="${ED}" emake VERBOSE=1 install |
1638 |
- popd >/dev/null || die |
1639 |
- |
1640 |
- python_optimize |
1641 |
-} |
1642 |
- |
1643 |
-src_install() { |
1644 |
- cmake_src_install |
1645 |
- python_foreach_impl python_install |
1646 |
- |
1647 |
- find "${ED}" -name '*.la' -type f -delete || die |
1648 |
- |
1649 |
- exeinto /usr/$(get_libdir)/ceph |
1650 |
- newexe "${BUILD_DIR}/bin/init-ceph" init-ceph |
1651 |
- |
1652 |
- insinto /etc/logrotate.d/ |
1653 |
- newins "${FILESDIR}"/ceph.logrotate-r2 ${PN} |
1654 |
- |
1655 |
- keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat |
1656 |
- |
1657 |
- fowners -R ceph:ceph /var/log/ceph |
1658 |
- |
1659 |
- newinitd "${FILESDIR}/rbdmap.initd-r1" rbdmap |
1660 |
- newinitd "${FILESDIR}/${PN}.initd-r12" ${PN} |
1661 |
- newconfd "${FILESDIR}/${PN}.confd-r5" ${PN} |
1662 |
- |
1663 |
- insinto /etc/sysctl.d |
1664 |
- newins "${FILESDIR}"/sysctld 90-${PN}.conf |
1665 |
- |
1666 |
- use tcmalloc && newenvd "${FILESDIR}"/envd-tcmalloc 99${PN}-tcmalloc |
1667 |
- |
1668 |
- # units aren't installed by the build system unless systemd is enabled |
1669 |
- # so no point installing these with the USE flag disabled |
1670 |
- if use systemd; then |
1671 |
- systemd_install_serviced "${FILESDIR}/ceph-mds_at.service.conf" \ |
1672 |
- "ceph-mds@.service" |
1673 |
- |
1674 |
- systemd_install_serviced "${FILESDIR}/ceph-osd_at.service.conf" \ |
1675 |
- "ceph-osd@.service" |
1676 |
- |
1677 |
- fi |
1678 |
- |
1679 |
- udev_dorules udev/*.rules |
1680 |
- newtmpfiles "${FILESDIR}"/ceph-tmpfilesd ${PN}.conf |
1681 |
- |
1682 |
- readme.gentoo_create_doc |
1683 |
- |
1684 |
- python_setup |
1685 |
- |
1686 |
- # bug #630232 |
1687 |
- sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \ |
1688 |
- || die "sed failed" |
1689 |
- |
1690 |
- python_fix_shebang "${ED}"/usr/{,s}bin/ |
1691 |
- |
1692 |
- # python_fix_shebang apparently is not idempotent |
1693 |
- local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]' |
1694 |
- grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \ |
1695 |
- | xargs --null --no-run-if-empty -- sed -i -r "s:${shebang_regex}:\1:" || die |
1696 |
- |
1697 |
- local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* ) |
1698 |
- dostrip -x "${rados_classes[@]#${ED}}" |
1699 |
-} |
1700 |
- |
1701 |
-pkg_postinst() { |
1702 |
- readme.gentoo_print_elog |
1703 |
-} |
1704 |
|
1705 |
diff --git a/sys-cluster/ceph/ceph-16.2.3.ebuild b/sys-cluster/ceph/ceph-16.2.3.ebuild |
1706 |
deleted file mode 100644 |
1707 |
index 8775e532d15..00000000000 |
1708 |
--- a/sys-cluster/ceph/ceph-16.2.3.ebuild |
1709 |
+++ /dev/null |
1710 |
@@ -1,449 +0,0 @@ |
1711 |
-# Copyright 1999-2021 Gentoo Authors |
1712 |
-# Distributed under the terms of the GNU General Public License v2 |
1713 |
- |
1714 |
-EAPI=7 |
1715 |
- |
1716 |
-PYTHON_COMPAT=( python3_{7..9} ) |
1717 |
-DISTUTILS_USE_SETUPTOOLS=rdepend |
1718 |
-DISTUTILS_OPTIONAL=1 |
1719 |
-LUA_COMPAT=( lua5-3 ) |
1720 |
- |
1721 |
-CMAKE_MAKEFILE_GENERATOR=emake |
1722 |
- |
1723 |
-inherit check-reqs bash-completion-r1 cmake distutils-r1 flag-o-matic \ |
1724 |
- lua-single python-r1 udev readme.gentoo-r1 toolchain-funcs \ |
1725 |
- systemd tmpfiles |
1726 |
- |
1727 |
-if [[ ${PV} == *9999* ]]; then |
1728 |
- inherit git-r3 |
1729 |
- EGIT_REPO_URI="https://github.com/ceph/ceph.git" |
1730 |
- SRC_URI="" |
1731 |
-else |
1732 |
- SRC_URI="https://download.ceph.com/tarballs/${P}.tar.gz" |
1733 |
- KEYWORDS="~amd64 ~arm64 ~ppc64" |
1734 |
-fi |
1735 |
- |
1736 |
-DESCRIPTION="Ceph distributed filesystem" |
1737 |
-HOMEPAGE="https://ceph.com/" |
1738 |
- |
1739 |
-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" |
1740 |
-SLOT="0" |
1741 |
- |
1742 |
-CPU_FLAGS_X86=(avx2 avx512f pclmul sse{,2,3,4_1,4_2} ssse3) |
1743 |
- |
1744 |
-IUSE="babeltrace +cephfs custom-cflags diskprediction dpdk fuse grafana |
1745 |
- jemalloc jaeger kafka kerberos ldap lttng +mgr numa pmdk rabbitmq |
1746 |
- +radosgw rbd-rwl rbd-ssd rgw-lua +ssl spdk +sqlite system-boost systemd |
1747 |
- +tcmalloc test uring xfs zbd zfs" |
1748 |
-IUSE+=" $(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})" |
1749 |
- |
1750 |
-DEPEND=" |
1751 |
- ${LUA_DEPS} |
1752 |
- acct-group/ceph |
1753 |
- acct-user/ceph |
1754 |
- virtual/libudev:= |
1755 |
- app-arch/bzip2:= |
1756 |
- app-arch/lz4:= |
1757 |
- app-arch/snappy:= |
1758 |
- app-arch/zstd:= |
1759 |
- app-shells/bash:0 |
1760 |
- app-misc/jq:= |
1761 |
- dev-libs/crypto++:= |
1762 |
- dev-cpp/gflags:= |
1763 |
- dev-libs/leveldb:=[snappy,tcmalloc(-)?] |
1764 |
- dev-libs/libaio:= |
1765 |
- dev-libs/libfmt:= |
1766 |
- dev-libs/libnl:3= |
1767 |
- dev-libs/libxml2:= |
1768 |
- dev-libs/libevent:= |
1769 |
- <dev-libs/rocksdb-6.15:= |
1770 |
- dev-libs/xmlsec:=[openssl] |
1771 |
- dev-cpp/yaml-cpp:= |
1772 |
- dev-libs/nss:= |
1773 |
- dev-libs/protobuf:= |
1774 |
- net-dns/c-ares:= |
1775 |
- net-libs/gnutls:= |
1776 |
- sys-auth/oath-toolkit:= |
1777 |
- sys-apps/coreutils |
1778 |
- sys-apps/grep |
1779 |
- sys-apps/hwloc:= |
1780 |
- sys-apps/keyutils:= |
1781 |
- sys-apps/util-linux:= |
1782 |
- sys-apps/sed |
1783 |
- sys-apps/util-linux |
1784 |
- sys-libs/libcap-ng:= |
1785 |
- sys-libs/ncurses:0= |
1786 |
- sys-libs/zlib:= |
1787 |
- sys-process/numactl:= |
1788 |
- x11-libs/libpciaccess:= |
1789 |
- babeltrace? ( dev-util/babeltrace ) |
1790 |
- fuse? ( sys-fs/fuse:0= ) |
1791 |
- jemalloc? ( dev-libs/jemalloc:= ) |
1792 |
- !jemalloc? ( >=dev-util/google-perftools-2.6.1:= ) |
1793 |
- jaeger? ( dev-cpp/nlohmann_json:= ) |
1794 |
- kafka? ( dev-libs/librdkafka:= ) |
1795 |
- kerberos? ( virtual/krb5 ) |
1796 |
- ldap? ( net-nds/openldap:= ) |
1797 |
- lttng? ( dev-util/lttng-ust:= ) |
1798 |
- pmdk? ( dev-libs/pmdk:= ) |
1799 |
- rabbitmq? ( net-libs/rabbitmq-c:= ) |
1800 |
- radosgw? ( |
1801 |
- dev-libs/icu:= |
1802 |
- dev-libs/expat:= |
1803 |
- dev-libs/openssl:= |
1804 |
- net-misc/curl:=[curl_ssl_openssl] |
1805 |
- ) |
1806 |
- rbd-rwl? ( dev-libs/pmdk:= ) |
1807 |
- ssl? ( dev-libs/openssl:= ) |
1808 |
- sqlite? ( dev-db/sqlite:= ) |
1809 |
- system-boost? ( >=dev-libs/boost-1.72[threads,context,python,${PYTHON_USEDEP}] ) |
1810 |
- uring? ( sys-libs/liburing:= ) |
1811 |
- xfs? ( sys-fs/xfsprogs:= ) |
1812 |
- zbd? ( sys-block/libzbd:= ) |
1813 |
- zfs? ( sys-fs/zfs:= ) |
1814 |
- ${PYTHON_DEPS} |
1815 |
-" |
1816 |
-BDEPEND=" |
1817 |
- amd64? ( dev-lang/nasm ) |
1818 |
- x86? ( dev-lang/yasm ) |
1819 |
- app-arch/cpio |
1820 |
- >=dev-util/cmake-3.5.0 |
1821 |
- dev-python/cython[${PYTHON_USEDEP}] |
1822 |
- dev-python/sphinx |
1823 |
- dev-util/cunit |
1824 |
- dev-util/gperf |
1825 |
- dev-util/ragel |
1826 |
- dev-util/valgrind |
1827 |
- sys-apps/coreutils |
1828 |
- sys-apps/findutils |
1829 |
- sys-apps/grep |
1830 |
- sys-apps/sed |
1831 |
- sys-apps/which |
1832 |
- sys-devel/bc |
1833 |
- sys-devel/patch |
1834 |
- virtual/pkgconfig |
1835 |
- jaeger? ( |
1836 |
- sys-devel/bison |
1837 |
- sys-devel/flex |
1838 |
- ) |
1839 |
- test? ( |
1840 |
- dev-python/coverage[${PYTHON_USEDEP}] |
1841 |
- dev-python/virtualenv[${PYTHON_USEDEP}] |
1842 |
- dev-python/requests-mock[${PYTHON_USEDEP}] |
1843 |
- sys-apps/grep[pcre] |
1844 |
- sys-fs/btrfs-progs |
1845 |
- ) |
1846 |
-" |
1847 |
-RDEPEND=" |
1848 |
- ${DEPEND} |
1849 |
- app-admin/sudo |
1850 |
- net-misc/socat |
1851 |
- sys-apps/gptfdisk |
1852 |
- sys-apps/nvme-cli |
1853 |
- >=sys-apps/smartmontools-7.0 |
1854 |
- sys-block/parted |
1855 |
- sys-fs/cryptsetup |
1856 |
- sys-fs/lsscsi |
1857 |
- sys-fs/lvm2[-device-mapper-only(-)] |
1858 |
- virtual/awk |
1859 |
- dev-python/bcrypt[${PYTHON_USEDEP}] |
1860 |
- dev-python/cherrypy[${PYTHON_USEDEP}] |
1861 |
- dev-python/python-dateutil[${PYTHON_USEDEP}] |
1862 |
- dev-python/flask[${PYTHON_USEDEP}] |
1863 |
- dev-python/jinja[${PYTHON_USEDEP}] |
1864 |
- dev-python/pecan[${PYTHON_USEDEP}] |
1865 |
- dev-python/prettytable[${PYTHON_USEDEP}] |
1866 |
- dev-python/pyopenssl[${PYTHON_USEDEP}] |
1867 |
- dev-python/requests[${PYTHON_USEDEP}] |
1868 |
- dev-python/werkzeug[${PYTHON_USEDEP}] |
1869 |
- mgr? ( |
1870 |
- dev-python/jsonpatch[${PYTHON_USEDEP}] |
1871 |
- dev-python/more-itertools[${PYTHON_USEDEP}] |
1872 |
- dev-python/numpy[${PYTHON_USEDEP}] |
1873 |
- dev-python/pyjwt[${PYTHON_USEDEP}] |
1874 |
- dev-python/pyyaml[${PYTHON_USEDEP}] |
1875 |
- dev-python/routes[${PYTHON_USEDEP}] |
1876 |
- diskprediction? ( |
1877 |
- >=dev-python/scipy-1.4.0[${PYTHON_USEDEP}] |
1878 |
- ) |
1879 |
- sci-libs/scikit-learn[${PYTHON_USEDEP}] |
1880 |
- dev-python/six[${PYTHON_USEDEP}] |
1881 |
- ) |
1882 |
-" |
1883 |
-# diskprediction needs older scipy not compatible with py38 |
1884 |
-# bug #724438 |
1885 |
-REQUIRED_USE=" |
1886 |
- ${PYTHON_REQUIRED_USE} |
1887 |
- ${LUA_REQUIRED_USE} |
1888 |
- ?? ( jemalloc tcmalloc ) |
1889 |
- jaeger? ( !system-boost ) |
1890 |
- diskprediction? ( mgr ) |
1891 |
- kafka? ( radosgw ) |
1892 |
- mgr? ( cephfs ) |
1893 |
- rabbitmq? ( radosgw ) |
1894 |
-" |
1895 |
-RESTRICT="!test? ( test )" |
1896 |
- |
1897 |
-# the tests need root access |
1898 |
-RESTRICT="test? ( userpriv )" |
1899 |
- |
1900 |
-# distribution tarball does not include everything needed for tests |
1901 |
-RESTRICT+=" test" |
1902 |
- |
1903 |
-# create a non-debug release |
1904 |
-CMAKE_BUILD_TYPE=RelWithDebInfo |
1905 |
- |
1906 |
-# false positives unless all USE flags are on |
1907 |
-CMAKE_WARN_UNUSED_CLI=no |
1908 |
- |
1909 |
-PATCHES=( |
1910 |
- "${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch" |
1911 |
- "${FILESDIR}/ceph-14.2.0-cflags.patch" |
1912 |
- "${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch" |
1913 |
- "${FILESDIR}/ceph-16.2.2-cflags.patch" |
1914 |
- "${FILESDIR}/ceph-16.2.2-no-virtualenvs.patch" |
1915 |
- "${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch" |
1916 |
- "${FILESDIR}/ceph-14.2.0-dpdk-cflags.patch" |
1917 |
- "${FILESDIR}/ceph-14.2.0-link-crc32-statically.patch" |
1918 |
- "${FILESDIR}/ceph-14.2.0-cython-0.29.patch" |
1919 |
- "${FILESDIR}/ceph-16.2.0-rocksdb-cmake.patch" |
1920 |
- "${FILESDIR}/ceph-15.2.3-spdk-compile.patch" |
1921 |
- "${FILESDIR}/ceph-16.2.0-install-libblk.patch" |
1922 |
- "${FILESDIR}/ceph-16.2.0-spdk-tinfo.patch" |
1923 |
- "${FILESDIR}/ceph-16.2.0-jaeger-system-boost.patch" |
1924 |
- "${FILESDIR}/ceph-16.2.0-liburing.patch" |
1925 |
- "${FILESDIR}/ceph-16.2.2-system-zstd.patch" |
1926 |
-) |
1927 |
- |
1928 |
-check-reqs_export_vars() { |
1929 |
- CHECKREQS_DISK_BUILD="6G" |
1930 |
- |
1931 |
- if use system-boost; then |
1932 |
- CHECKREQS_DISK_USR="350M" |
1933 |
- else |
1934 |
- CHECKREQS_DISK_USR="510M" |
1935 |
- fi |
1936 |
- |
1937 |
- export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR |
1938 |
-} |
1939 |
- |
1940 |
-pkg_pretend() { |
1941 |
- check-reqs_export_vars |
1942 |
- check-reqs_pkg_pretend |
1943 |
-} |
1944 |
- |
1945 |
-pkg_setup() { |
1946 |
- python_setup |
1947 |
- lua_setup |
1948 |
- check-reqs_export_vars |
1949 |
- check-reqs_pkg_setup |
1950 |
-} |
1951 |
- |
1952 |
-src_prepare() { |
1953 |
- cmake_src_prepare |
1954 |
- |
1955 |
- if use system-boost; then |
1956 |
- find "${S}" -name '*.cmake' -or -name 'CMakeLists.txt' -print0 \ |
1957 |
- | xargs --null sed -r \ |
1958 |
- -e 's|Boost::|boost_|g' \ |
1959 |
- -e 's|Boost_|boost_|g' \ |
1960 |
- -e 's|[Bb]oost_boost|boost_system|g' -i || die |
1961 |
- fi |
1962 |
- |
1963 |
- sed -r -e "s:DESTINATION .+\\):DESTINATION $(get_bashcompdir)\\):" \ |
1964 |
- -i src/bash_completion/CMakeLists.txt || die |
1965 |
- |
1966 |
- sed -e "s:objdump -p:$(tc-getOBJDUMP) -p:" -i CMakeLists.txt || die |
1967 |
- |
1968 |
- if ! use diskprediction; then |
1969 |
- rm -rf src/pybind/mgr/diskprediction_local || die |
1970 |
- fi |
1971 |
- |
1972 |
- # force lua version to use selected version |
1973 |
- local lua_version |
1974 |
- lua_version=$(ver_cut 1-2 $(lua_get_version)) |
1975 |
- sed -i "s:find_package(Lua [0-9][.][0-9] REQUIRED):find_package(Lua ${lua_version} EXACT REQUIRED):" src/CMakeLists.txt |
1976 |
- |
1977 |
- # remove tests that need root access |
1978 |
- rm src/test/cli/ceph-authtool/cap*.t || die |
1979 |
-} |
1980 |
- |
1981 |
-ceph_src_configure() { |
1982 |
- local flag |
1983 |
- local mycmakeargs=( |
1984 |
- -DWITH_BABELTRACE=$(usex babeltrace) |
1985 |
- -DWITH_BLUESTORE_PMEM=$(usex pmdk) |
1986 |
- -DWITH_CEPHFS=$(usex cephfs) |
1987 |
- -DWITH_CEPHFS_SHELL=$(usex cephfs) |
1988 |
- -DWITH_DPDK=$(usex dpdk) |
1989 |
- -DWITH_SPDK=$(usex spdk) |
1990 |
- -DWITH_FUSE=$(usex fuse) |
1991 |
- -DWITH_LTTNG=$(usex lttng) |
1992 |
- -DWITH_GSSAPI=$(usex kerberos) |
1993 |
- -DWITH_GRAFANA=$(usex grafana) |
1994 |
- -DWITH_MGR=$(usex mgr) |
1995 |
- -DWITH_MGR_DASHBOARD_FRONTEND=OFF |
1996 |
- -DWITH_NUMA=$(usex numa) |
1997 |
- -DWITH_OPENLDAP=$(usex ldap) |
1998 |
- -DWITH_PYTHON3=3 |
1999 |
- -DWITH_RADOSGW=$(usex radosgw) |
2000 |
- -DWITH_RADOSGW_AMQP_ENDPOINT=$(usex rabbitmq) |
2001 |
- -DWITH_RADOSGW_KAFKA_ENDPOINT=$(usex kafka) |
2002 |
- -DWITH_RADOSGW_LUA_PACKAGES=$(usex rgw-lua "$(usex radosgw)" "NO") |
2003 |
- -DWITH_RBD_RWL=$(usex rbd-rwl) |
2004 |
- -DWITH_RBD_SSD_CACHE=$(usex rbd-ssd) |
2005 |
- -DWITH_SSL=$(usex ssl) |
2006 |
- -DWITH_SYSTEMD=$(usex systemd) |
2007 |
- -DWITH_TESTS=$(usex test) |
2008 |
- -DWITH_LIBURING=$(usex uring) |
2009 |
- -DWITH_SYSTEM_LIBURING=$(usex uring) |
2010 |
- -DWITH_LIBCEPHSQLITE=$(usex sqlite) |
2011 |
- -DWITH_XFS=$(usex xfs) |
2012 |
- -DWITH_ZBD=$(usex zbd) |
2013 |
- -DWITH_ZFS=$(usex zfs) |
2014 |
- -DENABLE_SHARED="ON" |
2015 |
- -DALLOCATOR=$(usex tcmalloc 'tcmalloc' "$(usex jemalloc 'jemalloc' 'libc')") |
2016 |
- -DWITH_SYSTEM_PMDK=$(usex pmdk 'YES' "$(usex rbd-rwl)") |
2017 |
- -DWITH_SYSTEM_BOOST=$(usex system-boost) |
2018 |
- -DBOOST_J=$(makeopts_jobs) |
2019 |
- -DWITH_SYSTEM_ROCKSDB=ON |
2020 |
- -DWITH_RDMA=OFF |
2021 |
- -DWITH_TBB=OFF |
2022 |
- -DSYSTEMD_UNITDIR=$(systemd_get_systemunitdir) |
2023 |
- -DCMAKE_INSTALL_SYSTEMD_SERVICEDIR=$(systemd_get_systemunitdir) |
2024 |
- -DEPYTHON_VERSION="${EPYTHON#python}" |
2025 |
- -DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${PN}-${PVR}" |
2026 |
- -DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc" |
2027 |
- -Wno-dev |
2028 |
- ) |
2029 |
- |
2030 |
- # this breaks when re-configuring for python impl |
2031 |
- [[ ${EBUILD_PHASE} == configure ]] && mycmakeargs+=(-DWITH_JAEGER=$(usex jaeger)) |
2032 |
- |
2033 |
- if use amd64 || use x86; then |
2034 |
- for flag in ${CPU_FLAGS_X86[@]}; do |
2035 |
- case "${flag}" in |
2036 |
- avx*) |
2037 |
- local var=${flag%f} |
2038 |
- mycmakeargs+=("$(usex cpu_flags_x86_${flag} "-DHAVE_NASM_X64_${var^^}=1")") |
2039 |
- ;; |
2040 |
- *) mycmakeargs+=("$(usex cpu_flags_x86_${flag} "-DHAVE_INTEL_${flag^^}=1")");; |
2041 |
- esac |
2042 |
- done |
2043 |
- fi |
2044 |
- |
2045 |
- # needed for >=glibc-2.32 |
2046 |
- has_version '>=sys-libs/glibc-2.32' && mycmakeargs+=(-DWITH_REENTRANT_STRSIGNAL:BOOL=ON) |
2047 |
- |
2048 |
- rm -f "${BUILD_DIR:-${S}}/CMakeCache.txt" \ |
2049 |
- || die "failed to remove cmake cache" |
2050 |
- |
2051 |
- cmake_src_configure |
2052 |
- |
2053 |
- # bug #630232 |
2054 |
- sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \ |
2055 |
- "${BUILD_DIR:-${S}}"/include/acconfig.h \ |
2056 |
- || die "sed failed" |
2057 |
-} |
2058 |
- |
2059 |
-src_configure() { |
2060 |
- use custom-cflags || strip-flags |
2061 |
- ceph_src_configure |
2062 |
-} |
2063 |
- |
2064 |
-python_compile() { |
2065 |
- local CMAKE_USE_DIR="${S}" |
2066 |
- ceph_src_configure |
2067 |
- |
2068 |
- pushd "${BUILD_DIR}/src/pybind" >/dev/null || die |
2069 |
- emake VERBOSE=1 clean |
2070 |
- emake VERBOSE=1 all |
2071 |
- |
2072 |
- # python modules are only compiled with "make install" so we need to do this to |
2073 |
- # prevent doing a bunch of compilation in src_install |
2074 |
- DESTDIR="${T}" emake VERBOSE=1 install |
2075 |
- popd >/dev/null || die |
2076 |
-} |
2077 |
- |
2078 |
-src_compile() { |
2079 |
- cmake_build VERBOSE=1 all |
2080 |
- |
2081 |
- # we have to do this here to prevent from building everything multiple times |
2082 |
- python_copy_sources |
2083 |
- python_foreach_impl python_compile |
2084 |
-} |
2085 |
- |
2086 |
-src_test() { |
2087 |
- make check || die "make check failed" |
2088 |
-} |
2089 |
- |
2090 |
-python_install() { |
2091 |
- local CMAKE_USE_DIR="${S}" |
2092 |
- pushd "${BUILD_DIR}/src/pybind" >/dev/null || die |
2093 |
- DESTDIR="${ED}" emake VERBOSE=1 install |
2094 |
- popd >/dev/null || die |
2095 |
- |
2096 |
- python_optimize |
2097 |
-} |
2098 |
- |
2099 |
-src_install() { |
2100 |
- cmake_src_install |
2101 |
- python_foreach_impl python_install |
2102 |
- |
2103 |
- find "${ED}" -name '*.la' -type f -delete || die |
2104 |
- |
2105 |
- exeinto /usr/$(get_libdir)/ceph |
2106 |
- newexe "${BUILD_DIR}/bin/init-ceph" init-ceph |
2107 |
- |
2108 |
- insinto /etc/logrotate.d/ |
2109 |
- newins "${FILESDIR}"/ceph.logrotate-r2 ${PN} |
2110 |
- |
2111 |
- keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat |
2112 |
- |
2113 |
- fowners -R ceph:ceph /var/log/ceph |
2114 |
- |
2115 |
- newinitd "${FILESDIR}/rbdmap.initd-r1" rbdmap |
2116 |
- newinitd "${FILESDIR}/${PN}.initd-r12" ${PN} |
2117 |
- newconfd "${FILESDIR}/${PN}.confd-r5" ${PN} |
2118 |
- |
2119 |
- insinto /etc/sysctl.d |
2120 |
- newins "${FILESDIR}"/sysctld 90-${PN}.conf |
2121 |
- |
2122 |
- use tcmalloc && newenvd "${FILESDIR}"/envd-tcmalloc 99${PN}-tcmalloc |
2123 |
- |
2124 |
- # units aren't installed by the build system unless systemd is enabled |
2125 |
- # so no point installing these with the USE flag disabled |
2126 |
- if use systemd; then |
2127 |
- systemd_install_serviced "${FILESDIR}/ceph-mds_at.service.conf" \ |
2128 |
- "ceph-mds@.service" |
2129 |
- |
2130 |
- systemd_install_serviced "${FILESDIR}/ceph-osd_at.service.conf" \ |
2131 |
- "ceph-osd@.service" |
2132 |
- |
2133 |
- fi |
2134 |
- |
2135 |
- udev_dorules udev/*.rules |
2136 |
- newtmpfiles "${FILESDIR}"/ceph-tmpfilesd ${PN}.conf |
2137 |
- |
2138 |
- readme.gentoo_create_doc |
2139 |
- |
2140 |
- python_setup |
2141 |
- |
2142 |
- # bug #630232 |
2143 |
- sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph{,-crash} \ |
2144 |
- || die "sed failed" |
2145 |
- |
2146 |
- python_fix_shebang "${ED}"/usr/{,s}bin/ |
2147 |
- |
2148 |
- # python_fix_shebang apparently is not idempotent |
2149 |
- local shebang_regex='(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]' |
2150 |
- grep -r -E -l --null "${shebang_regex}" "${ED}"/usr/{s,}bin/ \ |
2151 |
- | xargs --null --no-run-if-empty -- sed -i -r "s:${shebang_regex}:\1:" || die |
2152 |
- |
2153 |
- local -a rados_classes=( "${ED}/usr/$(get_libdir)/rados-classes"/* ) |
2154 |
- dostrip -x "${rados_classes[@]#${ED}}" |
2155 |
-} |
2156 |
- |
2157 |
-pkg_postinst() { |
2158 |
- readme.gentoo_print_elog |
2159 |
-} |