Gentoo Archives: gentoo-commits

From: Patrick McLean <chutzpah@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-cluster/ceph/, sys-cluster/ceph/files/
Date: Fri, 12 Apr 2019 02:05:58
Message-Id: 1555034746.0314f5faf754730e1569a7d85691af43b67a24eb.chutzpah@gentoo
1 commit: 0314f5faf754730e1569a7d85691af43b67a24eb
2 Author: Patrick McLean <patrick.mclean <AT> sony <DOT> com>
3 AuthorDate: Fri Apr 12 02:05:23 2019 +0000
4 Commit: Patrick McLean <chutzpah <AT> gentoo <DOT> org>
5 CommitDate: Fri Apr 12 02:05:46 2019 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0314f5fa
7
8 sys-cluster/ceph: Version bump to 12.2.12
9
10 Copyright: Sony Interactive Entertainment Inc.
11 Package-Manager: Portage-2.3.62, Repoman-2.3.12
12 Signed-off-by: Patrick McLean <chutzpah <AT> gentoo.org>
13
14 sys-cluster/ceph/Manifest | 1 +
15 sys-cluster/ceph/ceph-12.2.12.ebuild | 319 +++++++++++++++++++++
16 .../ceph-12.2.12-civetweb-openssl-1.1.1.patch | 10 +
17 .../ceph-12.2.12-dont-use-bad-namespace.patch | 13 +
18 .../ceph/files/ceph-12.2.12-qa-warning.patch | 13 +
19 5 files changed, 356 insertions(+)
20
21 diff --git a/sys-cluster/ceph/Manifest b/sys-cluster/ceph/Manifest
22 index 84c0ec570bc..9cd012986cb 100644
23 --- a/sys-cluster/ceph/Manifest
24 +++ b/sys-cluster/ceph/Manifest
25 @@ -1,6 +1,7 @@
26 DIST ceph-10.2.10.tar.gz 14573701 BLAKE2B 78c68deb8537cae8394b4d35569983431e938eff42b01f448dea68016b33ca5770c83d1e1d382bfd6c8164d5259e821779c6515f8c8fb4d5d52ee90b7df43180 SHA512 883d1b8340aaefc7a1eee4bbfb5b1d1cc15bffed8f35fb1e8fb86b1208a4d0d16753eb6c688ea0e661c4877d3d148b2b6c2b41620c4e8a61e47c69f46f98e537
27 DIST ceph-10.2.3.tar.gz 11596171 BLAKE2B c24c879649f0d42f58cfb1d03701797bc685d83c157031156d13308c731412a4a0149b658193722b358ebf0c4f9760d9664668cd797b69d207e81dc572f49700 SHA512 9de1e6851fc343d2c52c72cec3f7887d998d5b588f1251ee3a1fda14427badfa10408e6691fb03a374a10f4ec9844868423fee70fbbe2c0d962af98481412f19
28 DIST ceph-12.2.11.tar.gz 79009034 BLAKE2B d8b1c188fe39603e90511eb436100ba14c0a9c4d9531f1a4ca52e78449462aacd274b80f8d0549918979fcb1ca4632ae0eaade1ae311a730fbe6657be044fc35 SHA512 14f46cc6f38d7d894cc657a040b428309632e5c163109a8a4a79a346ba2901a37d79966a0bc09148810c22b89375d9a4cb3b23f16364685b094c518bfafe9bef
29 +DIST ceph-12.2.12.tar.gz 77467762 BLAKE2B a5224432121db9ef49c1e22771d847399df2f7881cd9c2e185eca12096efb79d21578659d248eb5bae678924983d57452d370e23ab7e78663764d7bea834a461 SHA512 e694c9a8c1f9836c08fb74b54423bdc16d4900252e34643c56cf1a615d4dacddfb13df06a6a9f68bb9d438f5f07069ed358f9fa4b5a362640a3046f9c7722dcc
30 DIST ceph-12.2.8.tar.gz 77243685 BLAKE2B 37c34396a0c276b8d79735e14934ac70da024822c2a060061531c234e03e5d41aad6c41dc64b05c2ce47f03287d0cae9ef9bed67e4a0861b6380c8ce1de4ea69 SHA512 91c5c11aaeef701b3e31c9f8a1192b6b79fd34f3b96c61595c65173c98bfce0009c5b7c9b29764f5e4d4b1f5ac2ca7109fed5ae598c176aba717a34a132fabac
31 DIST ceph-13.2.4.tar.gz 90910119 BLAKE2B eb395f435552d91789869bd92fee2a8b2fef155205f13b118bd01be4ff78a8e1dde682425a24311822bb819ec8cf41a9d45245ffa3cb7a921d3269f6658bf920 SHA512 5055979067234ad7fd2774007d524ef4643d968bf7ce42fc8c3f8e469fd84cbd7afc163cd6ddda53584bd5677fdea2fecf8194a378d49724504f639b9f688ff7
32 DIST ceph-13.2.5.tar.gz 91006057 BLAKE2B 68551e2f54d78aff7b0e9ec3c62e6a3394dd7c23e80924a5b400cd9666a05a42e5f22445deee4040f1b78201c6a6660b283109878d4c92d845821bff831c8a5e SHA512 6daea524523f829e725609328ea71f416b2c3a9530fa8956720a7bc69dc08e55a169654f500704579dc9ba693f04eedd7e04614c0850e9ab1169cd45f19039f8
33
34 diff --git a/sys-cluster/ceph/ceph-12.2.12.ebuild b/sys-cluster/ceph/ceph-12.2.12.ebuild
35 new file mode 100644
36 index 00000000000..002e685d77b
37 --- /dev/null
38 +++ b/sys-cluster/ceph/ceph-12.2.12.ebuild
39 @@ -0,0 +1,319 @@
40 +# Copyright 1999-2019 Gentoo Authors
41 +# Distributed under the terms of the GNU General Public License v2
42 +
43 +EAPI=7
44 +PYTHON_COMPAT=( python{2_7,3_{4,5,6}} )
45 +DISTUTILS_OPTIONAL=1
46 +
47 +inherit check-reqs cmake-utils distutils-r1 flag-o-matic multiprocessing \
48 + python-r1 udev user readme.gentoo-r1 systemd
49 +
50 +if [[ ${PV} == *9999* ]]; then
51 + inherit git-r3
52 + EGIT_REPO_URI="https://github.com/ceph/ceph.git"
53 + SRC_URI=""
54 +else
55 + SRC_URI="https://download.ceph.com/tarballs/${P}.tar.gz"
56 + KEYWORDS="~amd64 ~x86"
57 +fi
58 +
59 +DESCRIPTION="Ceph distributed filesystem"
60 +HOMEPAGE="https://ceph.com/"
61 +
62 +LICENSE="LGPL-2.1 CC-BY-SA-3.0 GPL-2 BSD Boost-1.0 MIT"
63 +SLOT="0"
64 +
65 +CPU_FLAGS_X86=(sse{,2,3,4_1,4_2} ssse3)
66 +
67 +IUSE="babeltrace cephfs fuse jemalloc ldap lttng +mgr nss +radosgw +ssl"
68 +IUSE+=" static-libs +system-boost systemd +tcmalloc test xfs zfs"
69 +IUSE+=" $(printf "cpu_flags_x86_%s\n" ${CPU_FLAGS_X86[@]})"
70 +
71 +# unbundling code commented out pending bugs 584056 and 584058
72 +#>=dev-libs/jerasure-2.0.0-r1
73 +#>=dev-libs/gf-complete-2.0.0
74 +COMMON_DEPEND="
75 + virtual/libudev:=
76 + app-arch/bzip2:=[static-libs?]
77 + app-arch/lz4:=[static-libs?]
78 + app-arch/snappy:=[static-libs?]
79 + app-arch/zstd:=[static-libs?]
80 + app-misc/jq:=[static-libs?]
81 + <dev-libs/crypto++-7.0:=[static-libs?]
82 + dev-libs/leveldb:=[snappy,static-libs?,tcmalloc?]
83 + dev-libs/libaio:=[static-libs?]
84 + dev-libs/libxml2:=[static-libs?]
85 + sys-apps/keyutils:=[static-libs?]
86 + sys-apps/util-linux:=[static-libs?]
87 + sys-libs/zlib:=[static-libs?]
88 + babeltrace? ( dev-util/babeltrace )
89 + ldap? ( net-nds/openldap:=[static-libs?] )
90 + lttng? ( dev-util/lttng-ust:= )
91 + nss? ( dev-libs/nss:= )
92 + fuse? ( sys-fs/fuse:0=[static-libs?] )
93 + xfs? ( sys-fs/xfsprogs:=[static-libs?] )
94 + zfs? ( sys-fs/zfs:=[static-libs?] )
95 + ssl? (
96 + <dev-libs/openssl-1.1:=[static-libs?]
97 + !dev-libs/openssl:1.0.0
98 + )
99 + radosgw? (
100 + dev-libs/expat:=[static-libs?]
101 + <dev-libs/openssl-1.1:=[static-libs?]
102 + net-misc/curl:=[curl_ssl_openssl,static-libs?]
103 + )
104 + system-boost? (
105 + =dev-libs/boost-1.66*:=[threads,context,python,static-libs?,${PYTHON_USEDEP}]
106 + )
107 + jemalloc? ( dev-libs/jemalloc:=[static-libs?] )
108 + !jemalloc? ( >=dev-util/google-perftools-2.4:=[static-libs?] )
109 + ${PYTHON_DEPS}
110 + "
111 +DEPEND="${COMMON_DEPEND}
112 + app-arch/cpio
113 + amd64? ( dev-lang/yasm )
114 + x86? ( dev-lang/yasm )
115 + dev-python/cython[${PYTHON_USEDEP}]
116 + dev-python/sphinx
117 + dev-util/gperf
118 + dev-util/valgrind
119 + sys-apps/which
120 + sys-devel/bc
121 + virtual/pkgconfig
122 + test? (
123 + dev-python/tox[${PYTHON_USEDEP}]
124 + dev-python/virtualenv[${PYTHON_USEDEP}]
125 + sys-apps/grep[pcre]
126 + sys-fs/btrfs-progs
127 + )"
128 +RDEPEND="${COMMON_DEPEND}
129 + net-misc/socat
130 + sys-apps/gptfdisk
131 + sys-block/parted
132 + sys-fs/e2fsprogs
133 + sys-fs/cryptsetup
134 + sys-fs/lvm2
135 + !<sys-apps/openrc-0.26.3
136 + dev-python/cherrypy[${PYTHON_USEDEP}]
137 + dev-python/flask[${PYTHON_USEDEP}]
138 + dev-python/jinja[${PYTHON_USEDEP}]
139 + dev-python/pecan[${PYTHON_USEDEP}]
140 + dev-python/prettytable[${PYTHON_USEDEP}]
141 + dev-python/pyopenssl[${PYTHON_USEDEP}]
142 + dev-python/requests[${PYTHON_USEDEP}]
143 + dev-python/werkzeug[${PYTHON_USEDEP}]
144 + "
145 +REQUIRED_USE="
146 + $(python_gen_useflags 'python2*')
147 + ${PYTHON_REQUIRED_USE}
148 + ?? ( ssl nss )
149 + ?? ( jemalloc tcmalloc )
150 + "
151 +
152 +RESTRICT="test? ( userpriv )"
153 +
154 +# distribution tarball does not include everything needed for tests
155 +RESTRICT+=" test"
156 +
157 +# false positives unless all USE flags are on
158 +CMAKE_WARN_UNUSED_CLI="no"
159 +
160 +# ninja does not work at all
161 +CMAKE_MAKEFILE_GENERATOR="emake"
162 +
163 +STRIP_MASK="/usr/lib*/rados-classes/*"
164 +
165 +UNBUNDLE_LIBS=(
166 + src/erasure-code/jerasure/jerasure
167 + src/erasure-code/jerasure/gf-complete
168 +)
169 +
170 +PATCHES=(
171 + "${FILESDIR}/ceph-12.2.0-use-provided-cpu-flag-values.patch"
172 + "${FILESDIR}/ceph-12.2.0-cflags.patch"
173 + "${FILESDIR}/ceph-12.2.1-systemd-unitdir.patch"
174 + "${FILESDIR}/ceph-12.2.4-boost-build-none-options.patch"
175 + "${FILESDIR}/ceph-12.2.4-cflags.patch"
176 + "${FILESDIR}/ceph-12.2.4-rocksdb-cflags.patch"
177 + "${FILESDIR}/ceph-12.2.5-no-werror.patch"
178 + "${FILESDIR}/ceph-13.2.2-dont-install-sysvinit-script.patch"
179 + "${FILESDIR}/ceph-12.2.11-fix-min-call.patch"
180 + "${FILESDIR}/ceph-12.2.12-dont-use-bad-namespace.patch"
181 + "${FILESDIR}/ceph-12.2.12-civetweb-openssl-1.1.1.patch"
182 + "${FILESDIR}/ceph-12.2.12-qa-warning.patch"
183 +)
184 +
185 +check-reqs_export_vars() {
186 + if use amd64; then
187 + CHECKREQS_DISK_BUILD="12G"
188 + CHECKREQS_DISK_USR="460M"
189 + else
190 + CHECKREQS_DISK_BUILD="1400M"
191 + CHECKREQS_DISK_USR="450M"
192 + fi
193 +
194 + export CHECKREQS_DISK_BUILD CHECKREQS_DISK_USR
195 +}
196 +
197 +user_setup() {
198 + enewgroup ceph ${CEPH_GID}
199 + enewuser ceph "${CEPH_UID:--1}" -1 /var/lib/ceph ceph
200 +}
201 +
202 +pkg_pretend() {
203 + check-reqs_export_vars
204 + check-reqs_pkg_pretend
205 +}
206 +
207 +pkg_setup() {
208 + python_setup 'python2*'
209 + check-reqs_export_vars
210 + check-reqs_pkg_setup
211 + user_setup
212 +}
213 +
214 +src_prepare() {
215 + cmake-utils_src_prepare
216 +
217 + if use system-boost; then
218 + eapply "${FILESDIR}/ceph-12.2.11-boost-sonames.patch"
219 + fi
220 +
221 + # remove tests that need root access
222 + rm src/test/cli/ceph-authtool/cap*.t
223 +
224 + #rm -rf "${UNBUNDLE_LIBS[@]}"
225 +}
226 +
227 +ceph_src_configure() {
228 + local flag
229 + local mycmakeargs=(
230 + -DCMAKE_INSTALL_SYSCONFDIR="${EPREFIX}/etc"
231 + -DCMAKE_INSTALL_DOCDIR="${EPREFIX}/usr/share/doc/${P}"
232 + -DWITH_BABELTRACE=$(usex babeltrace)
233 + -DWITH_CEPHFS=$(usex cephfs)
234 + -DWITH_FUSE=$(usex fuse)
235 + -DWITH_LTTNG=$(usex lttng)
236 + -DWITH_MGR=$(usex mgr)
237 + -DWITH_NSS=$(usex nss)
238 + -DWITH_OPENLDAP=$(usex ldap)
239 + -DWITH_RADOSGW=$(usex radosgw)
240 + -DWITH_SSL=$(usex ssl)
241 + -DWITH_SYSTEMD=$(usex systemd)
242 + -DWITH_TESTS=$(usex test)
243 + -DWITH_XFS=$(usex xfs)
244 + -DWITH_ZFS=$(usex zfs)
245 + -DENABLE_SHARED=$(usex static-libs '' 'yes' 'no')
246 + -DALLOCATOR=$(usex tcmalloc 'tcmalloc' '' "$(usex jemalloc 'jemalloc' '' 'libc' '')" '')
247 + -DWITH_SYSTEM_BOOST=$(usex system-boost)
248 + -DBOOST_J=$(makeopts_jobs)
249 + -DWITH_RDMA=no
250 + -DSYSTEMD_UNITDIR=$(systemd_get_systemunitdir)
251 + -DEPYTHON_VERSION="${EPYTHON#python}"
252 + )
253 + if use amd64 || use x86; then
254 + for flag in ${CPU_FLAGS_X86[@]}; do
255 + mycmakeargs+=("$(usex cpu_flags_x86_${flag} "-DHAVE_INTEL_${flag^^}=1")")
256 + done
257 + fi
258 +
259 + rm -f "${BUILD_DIR:-${S}}/CMakeCache.txt"
260 + cmake-utils_src_configure
261 +
262 + # bug #630232
263 + sed -i "s:\"${T//:\\:}/${EPYTHON}/bin/python\":\"${PYTHON}\":" \
264 + "${BUILD_DIR:--${S}}"/include/acconfig.h \
265 + || die "sed failed"
266 +}
267 +
268 +src_configure() {
269 + ceph_src_configure
270 +}
271 +
272 +python_compile() {
273 + local CMAKE_USE_DIR="${S}"
274 +
275 + ceph_src_configure
276 + pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
277 + emake VERBOSE=1 all
278 +
279 + # python modules are only compiled with "make install" so we need to do this to
280 + # prevent doing a bunch of compilation in src_install
281 + DESTDIR="${T}" emake VERBOSE=1 install
282 + popd >/dev/null || die
283 +}
284 +
285 +src_compile() {
286 + cmake-utils_src_make all
287 +
288 + # we have to do this here to prevent from building everything multiple times
289 + python_copy_sources
290 + python_foreach_impl python_compile
291 +}
292 +
293 +src_test() {
294 + make check || die "make check failed"
295 +}
296 +
297 +python_install() {
298 + local CMAKE_USE_DIR="${S}"
299 + pushd "${BUILD_DIR}/src/pybind" >/dev/null || die
300 + DESTDIR="${D}" emake install
301 + popd >/dev/null || die
302 +}
303 +
304 +src_install() {
305 + cmake-utils_src_install
306 + python_foreach_impl python_install
307 +
308 + find "${D}" -name '*.la' -delete || die
309 +
310 + exeinto /usr/$(get_libdir)/ceph
311 + newexe "${BUILD_DIR}/bin/init-ceph" ceph_init.sh
312 +
313 + insinto /etc/logrotate.d/
314 + newins "${FILESDIR}"/ceph.logrotate-r2 ${PN}
315 +
316 + keepdir /var/lib/${PN}{,/tmp} /var/log/${PN}/stat
317 +
318 + fowners -R ceph:ceph /var/lib/ceph /var/log/ceph
319 +
320 + newinitd "${FILESDIR}/rbdmap.initd" rbdmap
321 + newinitd "${FILESDIR}/${PN}.initd-r11" ${PN}
322 + newconfd "${FILESDIR}/${PN}.confd-r5" ${PN}
323 +
324 + insinto /etc/sysctl.d
325 + newins "${FILESDIR}"/sysctld 90-${PN}.conf
326 +
327 + use tcmalloc && newenvd "${FILESDIR}"/envd-tcmalloc 99${PN}-tcmalloc
328 +
329 + # units aren't installed by the build system unless systemd is enabled
330 + # so no point installing these with the USE flag disabled
331 + if use systemd; then
332 + systemd_install_serviced "${FILESDIR}/ceph-mds_at.service.conf" \
333 + "ceph-mds@.service"
334 +
335 + systemd_install_serviced "${FILESDIR}/ceph-osd_at.service.conf" \
336 + "ceph-osd@.service"
337 + fi
338 +
339 + udev_dorules udev/*.rules
340 +
341 + readme.gentoo_create_doc
342 +
343 + python_setup 'python2*'
344 +
345 + # bug #630232
346 + sed -i -r "s:${T//:/\\:}/${EPYTHON}:/usr:" "${ED}"/usr/bin/ceph \
347 + || die "sed failed"
348 +
349 + python_fix_shebang "${ED}"/usr/{,s}bin/
350 +
351 + # python_fix_shebang apparently is not idempotent
352 + sed -i -r 's:(/usr/lib/python-exec/python[0-9]\.[0-9]/python)[0-9]\.[0-9]:\1:' \
353 + "${ED}"/usr/{sbin/ceph-disk,bin/ceph-detect-init} || die "sed failed"
354 +}
355 +
356 +pkg_postinst() {
357 + readme.gentoo_print_elog
358 +}
359
360 diff --git a/sys-cluster/ceph/files/ceph-12.2.12-civetweb-openssl-1.1.1.patch b/sys-cluster/ceph/files/ceph-12.2.12-civetweb-openssl-1.1.1.patch
361 new file mode 100644
362 index 00000000000..a21bcc9325d
363 --- /dev/null
364 +++ b/sys-cluster/ceph/files/ceph-12.2.12-civetweb-openssl-1.1.1.patch
365 @@ -0,0 +1,10 @@
366 +--- a/src/civetweb/src/civetweb.c 2017-11-02 10:58:06.000000000 -0700
367 ++++ b/src/civetweb/src/civetweb.c 2019-04-11 17:23:30.736346783 -0700
368 +@@ -851,6 +851,7 @@
369 + #include <openssl/crypto.h>
370 + #include <openssl/x509.h>
371 + #include <openssl/pem.h>
372 ++#include <openssl/engine.h>
373 + #else
374 + /* SSL loaded dynamically from DLL.
375 + * I put the prototypes here to be independent from OpenSSL source
376
377 diff --git a/sys-cluster/ceph/files/ceph-12.2.12-dont-use-bad-namespace.patch b/sys-cluster/ceph/files/ceph-12.2.12-dont-use-bad-namespace.patch
378 new file mode 100644
379 index 00000000000..9a23e1ee60a
380 --- /dev/null
381 +++ b/sys-cluster/ceph/files/ceph-12.2.12-dont-use-bad-namespace.patch
382 @@ -0,0 +1,13 @@
383 +diff --git a/src/rgw/rgw_crypt.cc b/src/rgw/rgw_crypt.cc
384 +index cf4e38995e..7a4089fca9 100644
385 +--- a/src/rgw/rgw_crypt.cc
386 ++++ b/src/rgw/rgw_crypt.cc
387 +@@ -31,7 +31,7 @@ using namespace CryptoPP;
388 + #define dout_subsys ceph_subsys_rgw
389 +
390 + using namespace rgw;
391 +-using ceph::crypto::PK11_ImportSymKey_FIPS;
392 ++//using ceph::crypto::PK11_ImportSymKey_FIPS;
393 +
394 + /**
395 + * Encryption in CTR mode. offset is used as IV for each block.
396
397 diff --git a/sys-cluster/ceph/files/ceph-12.2.12-qa-warning.patch b/sys-cluster/ceph/files/ceph-12.2.12-qa-warning.patch
398 new file mode 100644
399 index 00000000000..1b63d6e21ba
400 --- /dev/null
401 +++ b/sys-cluster/ceph/files/ceph-12.2.12-qa-warning.patch
402 @@ -0,0 +1,13 @@
403 +diff --git a/src/common/blkdev.cc b/src/common/blkdev.cc
404 +index d95a397a84..d2cbf4b7b9 100644
405 +--- a/src/common/blkdev.cc
406 ++++ b/src/common/blkdev.cc
407 +@@ -225,7 +225,7 @@ int get_device_by_uuid(uuid_d dev_uuid, const char* label, char* partition,
408 + rc = get_block_device_base(partition, basename,
409 + sizeof(basename));
410 + if (rc >= 0) {
411 +- strncpy(device, basename, sizeof(basename));
412 ++ strncpy(device, basename, sizeof(device));
413 + rc = 0;
414 + } else {
415 + rc = -ENODEV;