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