Gentoo Archives: gentoo-commits

From: Mikle Kolyada <zlogene@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-db/clickhouse/, dev-db/clickhouse/files/
Date: Sun, 12 Jan 2020 18:03:26
Message-Id: 1578852169.1f5341d6d8e4687c9f43908cf3dcd1f5be9e5bbc.zlogene@gentoo
1 commit: 1f5341d6d8e4687c9f43908cf3dcd1f5be9e5bbc
2 Author: Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
3 AuthorDate: Sun Jan 12 18:02:49 2020 +0000
4 Commit: Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
5 CommitDate: Sun Jan 12 18:02:49 2020 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1f5341d6
7
8 Revert "dev-db/clickhouse: remove last-rited pkg"
9
10 This reverts commit 9d5b201c76a925aaf2bd56c57a116a20ff226806.
11
12 This got potentially new maintainer
13
14 Signed-off-by: Mikle Kolyada <zlogene <AT> gentoo.org>
15
16 dev-db/clickhouse/Manifest | 8 +
17 dev-db/clickhouse/clickhouse-18.10.3-r1.ebuild | 200 ++++++++++++++++++++
18 dev-db/clickhouse/clickhouse-18.12.17-r1.ebuild | 200 ++++++++++++++++++++
19 dev-db/clickhouse/clickhouse-18.6.0-r1.ebuild | 200 ++++++++++++++++++++
20 dev-db/clickhouse/clickhouse-19.13.1.11-r2.ebuild | 204 ++++++++++++++++++++
21 dev-db/clickhouse/clickhouse-19.13.1.11-r3.ebuild | 205 ++++++++++++++++++++
22 dev-db/clickhouse/clickhouse-19.15.2.2.ebuild | 207 +++++++++++++++++++++
23 dev-db/clickhouse/clickhouse-19.5.3.8-r1.ebuild | 203 ++++++++++++++++++++
24 dev-db/clickhouse/clickhouse-19.9.5.36-r1.ebuild | 203 ++++++++++++++++++++
25 dev-db/clickhouse/files/clickhouse-server.confd | 4 +
26 dev-db/clickhouse/files/clickhouse-server.initd | 16 ++
27 dev-db/clickhouse/files/clickhouse-server.initd-r1 | 23 +++
28 dev-db/clickhouse/files/clickhouse-server.service | 15 ++
29 dev-db/clickhouse/metadata.xml | 16 ++
30 14 files changed, 1704 insertions(+)
31
32 diff --git a/dev-db/clickhouse/Manifest b/dev-db/clickhouse/Manifest
33 new file mode 100644
34 index 00000000000..4c1396c38ae
35 --- /dev/null
36 +++ b/dev-db/clickhouse/Manifest
37 @@ -0,0 +1,8 @@
38 +DIST cctz-4f9776a.tar.gz 290009 BLAKE2B 532eb7d590f9814c05cc7fdd3c75efe0a6b3f81d85201b14163a9600dd858c4fbac592270d0afccd7d5eef0080d7e70e9d716023bdb60d55479585e2cd3d3f59 SHA512 ba0dfc404cc70f03ef2be29fa3b0c70ea881c92a92525ea4ba1b5bcfc9e45df1b62a5eec180f498293e64bdd5cb9b41f97361cbb7e8baf299dcfdcd1557ca205
39 +DIST clickhouse-18.10.3.tar.gz 6136661 BLAKE2B 5564bbe85f4ca43f18df702148af0e4e5b5a8826994d90f29beb3a37cdbeb36f9d3ec77d9c7bc6f843e7586e5441aeb0937548eb5eb61d27cecc5790d8c21a5b SHA512 c78386922388cf910a995b569724eb22fc41ab60e765a4d3644c4a48d8b9a67ef28b7e375186b2eb00c43b4f06e90783084f4ac4d3789f1b6e4251ee30e8833c
40 +DIST clickhouse-18.12.17.tar.gz 6495521 BLAKE2B 00dfb823b9e36923beb50a88bee88af3918bedc7b20079785699a42e36e52f32739f786bd78c5b350f58ae59251e3846da6202d04e24e9a750c92e16065cc395 SHA512 876c5fb6011c65b8ec201126678dad6f5de3430b7d320316ced5c6d22e8086ce337d20b73badbd053bf141097b8fe6cd94910ed607b4bbedb681cfa7921d1fb6
41 +DIST clickhouse-18.6.0.tar.gz 5852534 BLAKE2B 5634fd26907b21d4a35cff3ed816696205be4aff1cdd1acfe222e24214b1842eb18a4e499e888b0d92b78f5c3023c2962a385af2c0ea889055e473dfa0198bf5 SHA512 e8ea2d4457122513cad47b1cdb2a58dd2ffaec77a7a08bf82179aca12a369d39970520a995bb5db2e5ea4b0939da827b7d4b1f3929cf71c149c965438ebb3633
42 +DIST clickhouse-19.13.1.11.zip 11502726 BLAKE2B c2788702a2c27c995abc072a94f3945ed6f9039fe0c7840312a86987faf52d2f7801d531e89a02848fa8ee1319247c41de0f3ad0c0cb51c1df1dbcfca3bd3b0a SHA512 095a0e63eff6989ea1f70fac593069e1cdb6ea207a99d8cfd610c4eb8f3f7411a784d9f100c9fc899898e68dd88dd54bec3c136764793c8cae986d920a651f8c
43 +DIST clickhouse-19.15.2.2.zip 11425217 BLAKE2B 3a2288d771cd92dc283713a44df84df8c3c946ef92efd781d7619c8ffc0d7a3884f1a988c81f1703a7d373e78e413bdaea0fd100cebf7090be9bba16779209ff SHA512 029376b9d540c592d30a32457deb9e605d512fc448eb3dc6896b0ca48a5e92f390ef2dc3a4ea63ce19c264a8b2810ff952e95a6c7a8d4506f733ac6253c079d3
44 +DIST clickhouse-19.5.3.8.zip 11247905 BLAKE2B f72289f55bddf9b3ad2e16a4d1fc6e4f7681477e742eda3694c3c16975820c93affc01c70b194c5992226d79bee714f706c04402c62bd0ed3d1701a16fb22192 SHA512 f578abbd43c3ccf721e079ce2bafac22be0c5d619388be192c59a2053ae1cf1e7f0a025e0323f0f8f004f879990a88c0ca0cd4d135606de51c576619fe0172b8
45 +DIST clickhouse-19.9.5.36.zip 11708002 BLAKE2B 075f9b1556c5ee207a608047fa559cec7a0b1f044236e412189ae6dabe25aa04abf881726e4ffa17d4aad6937250c704f050935e61470994b57eaa1ac9ea07e4 SHA512 b0aa04a1c0f7c15316c83a2711f9b64f8235e664956f933530a9f2dc26fcb8b817adb8ca43c96db1cad498e06f4291ce13c0bb259726039c5caa52ae523fa4ab
46
47 diff --git a/dev-db/clickhouse/clickhouse-18.10.3-r1.ebuild b/dev-db/clickhouse/clickhouse-18.10.3-r1.ebuild
48 new file mode 100644
49 index 00000000000..9ac11b623af
50 --- /dev/null
51 +++ b/dev-db/clickhouse/clickhouse-18.10.3-r1.ebuild
52 @@ -0,0 +1,200 @@
53 +# Copyright 1999-2019 Gentoo Authors
54 +# Distributed under the terms of the GNU General Public License v2
55 +
56 +EAPI=6
57 +
58 +CMAKE_MAKEFILE_GENERATOR="ninja"
59 +
60 +inherit cmake-utils systemd toolchain-funcs user
61 +
62 +DESCRIPTION="An OSS column-oriented database management system for real-time data analysis"
63 +HOMEPAGE="https://clickhouse.yandex"
64 +LICENSE="Apache-2.0"
65 +
66 +MY_PN="ClickHouse"
67 +TYPE="stable"
68 +
69 +CCTZ_COMMIT="4f9776a"
70 +SRC_URI="https://github.com/yandex/${MY_PN}/archive/v${PV}-${TYPE}.tar.gz -> ${P}.tar.gz
71 + https://github.com/google/cctz/archive/${CCTZ_COMMIT}.tar.gz -> cctz-${CCTZ_COMMIT}.tar.gz
72 +"
73 +
74 +SLOT="0/${TYPE}"
75 +IUSE="+client cpu_flags_x86_sse4_2 +server debug doc kafka mongodb mysql static test tools zookeeper"
76 +RESTRICT="!test? ( test )"
77 +KEYWORDS="~amd64"
78 +
79 +REQUIRED_USE="
80 + server? ( cpu_flags_x86_sse4_2 )
81 + static? ( client server tools )
82 +"
83 +
84 +RDEPEND="
85 + dev-libs/re2:0=
86 + !static? (
87 + >=app-arch/lz4-1.8.0:=
88 + >=app-arch/zstd-1.3.4:=
89 + client? (
90 + sys-libs/ncurses:0=
91 + sys-libs/readline:0=
92 + )
93 +
94 + dev-libs/double-conversion
95 + dev-libs/capnproto
96 + dev-libs/libltdl:0
97 + sys-libs/libunwind:7
98 + sys-libs/zlib
99 + || (
100 + dev-db/unixODBC
101 + dev-libs/poco[odbc]
102 + )
103 + dev-libs/icu:=
104 + dev-libs/glib
105 + >=dev-libs/boost-1.65.0:=
106 + dev-libs/openssl:0=
107 + dev-libs/zookeeper-c
108 + kafka? ( dev-libs/librdkafka:= )
109 + mysql? ( dev-db/mysql-connector-c:= )
110 + )
111 +
112 + >=dev-libs/poco-1.9.0
113 + dev-libs/libpcre
114 +"
115 +
116 +DEPEND="${RDEPEND}
117 + doc? ( >=dev-python/mkdocs-1.0.1 )
118 + static? (
119 + >=app-arch/lz4-1.8.0[static-libs]
120 + >=app-arch/zstd-1.3.4[static-libs]
121 + client? (
122 + sys-libs/ncurses:0=[static-libs]
123 + sys-libs/readline:0=[static-libs]
124 + )
125 + dev-libs/capnproto[static-libs]
126 + dev-libs/libltdl[static-libs]
127 + sys-libs/libunwind:7[static-libs]
128 + sys-libs/zlib[static-libs]
129 + || (
130 + dev-db/unixODBC[static-libs]
131 + dev-libs/poco[odbc]
132 + )
133 + dev-libs/icu[static-libs]
134 + dev-libs/glib[static-libs]
135 + >=dev-libs/boost-1.65.0[static-libs]
136 + dev-libs/openssl[static-libs]
137 + dev-libs/zookeeper-c[static-libs]
138 + dev-db/mysql-connector-c[static-libs]
139 + kafka? ( dev-libs/librdkafka[static-libs] )
140 + )
141 +
142 + sys-libs/libtermcap-compat
143 + dev-util/patchelf
144 + >=sys-devel/lld-6.0.0
145 + || (
146 + >=sys-devel/gcc-7.0
147 + >=sys-devel/clang-6.0
148 + )
149 +"
150 +
151 +S="${WORKDIR}/${MY_PN}-${PV}-${TYPE}"
152 +
153 +_clang_fullversion() {
154 + local ver="$1"; shift
155 + set -- $($(tc-getCPP "$@") -E -P - <<<"__clang_major__ __clang_minor__ __clang_patchlevel__")
156 + eval echo "$ver"
157 +}
158 +
159 +clang-fullversion() {
160 + _clang_fullversion '$1.$2.$3' "$@"
161 +}
162 +
163 +clang-version() {
164 + _clang_fullversion '$1.$2' "$@"
165 +}
166 +
167 +clang-major-version() {
168 + _clang_fullversion '$1' "$@"
169 +}
170 +
171 +clang-minor-version() {
172 + _clang_fullversion '$2' "$@"
173 +}
174 +
175 +clang-micro-version() {
176 + _clang_fullversion '$3' "$@"
177 +}
178 +
179 +pkg_pretend() {
180 + if [[ $(tc-getCC) == clang ]]; then
181 + if [[ $(clang-major-version) -lt 6 ]]; then
182 + eerror "Compilation with clang older than 6.0 is not supported"
183 + die "Too old clang found"
184 + fi
185 + :
186 + elif [[ $(gcc-major-version) -lt 7 ]] && [[$(gcc-minor-version) -lt 2 ]]; then
187 + eerror "Compilation with gcc older than 7.2 is not supported"
188 + die "Too old gcc found"
189 + fi
190 +}
191 +
192 +src_unpack() {
193 + default_src_unpack
194 + [[ ${PV} == 9999 ]] && return 0
195 + cd "${S}/contrib" || die "failed to cd to contrib"
196 + mkdir -p cctz zookeeper zstd || die "failed to create directories"
197 + tar --strip-components=1 -C cctz -xf "${DISTDIR}/cctz-${CCTZ_COMMIT}.tar.gz" || die "failed to unpack cctz"
198 +}
199 +
200 +src_configure() {
201 + local mycmakeargs=(
202 + -DENABLE_POCO_MONGODB="$(usex mongodb)"
203 + -DENABLE_RDKAFKA="$(usex kafka)"
204 + -DENABLE_TESTS="$(usex test)"
205 + -DUSE_STATIC_LIBRARIES="$(usex static)"
206 + -DMAKE_STATIC_LIBRARIES="$(usex static)"
207 + -DUSE_MYSQL="$(usex mysql)"
208 + -DENABLE_CLICKHOUSE_SERVER="$(usex server)"
209 + -DENABLE_CLICKHOUSE_CLIENT="$(usex client)"
210 + -DENABLE_CLICKHOUSE_LOCAL="$(usex tools)"
211 + -DENABLE_CLICKHOUSE_BENCHMARK="$(usex tools)"
212 + -DENABLE_CLICKHOUSE_PERFORMANCE="$(usex tools)"
213 + -DENABLE_CLICKHOUSE_EXTRACT_FROM_CONFIG="$(usex tools)"
214 + -DENABLE_CLICKHOUSE_COMPRESSOR="$(usex tools)"
215 + -DENABLE_CLICKHOUSE_COPIER="$(usex tools)"
216 + -DENABLE_CLICKHOUSE_COPIER="$(usex tools)"
217 + -DENABLE_CLICKHOUSE_ALL=OFF
218 + -DUSE_INTERNAL_SSL_LIBRARY=False
219 + -DUSE_INTERNAL_CITYHASH_LIBRARY=ON # Clickhouse explicitly requires bundled patched cityhash
220 + -DUNBUNDLED=ON
221 + )
222 +
223 + cmake-utils_src_configure
224 +}
225 +
226 +src_install() {
227 + cmake-utils_src_install
228 +
229 + if ! use test; then
230 + rm -rf "${D}/usr/share/clickhouse-test" || die "failed to remove tests"
231 + fi
232 +
233 + if use doc; then
234 + pushd "${S}/docs/tools" || die "Failed to enter docs build directory"
235 + ./build.py || die "Failed to build docs"
236 + popd || die "Failed to exit docs build directory"
237 +
238 + dodoc -r "${S}/docs/build"
239 + fi
240 +
241 + if use server; then
242 + newinitd "${FILESDIR}"/clickhouse-server.initd clickhouse-server
243 + systemd_dounit "${FILESDIR}"/clickhouse-server.service
244 + fi
245 +}
246 +
247 +pkg_preinst() {
248 + if use server; then
249 + enewgroup clickhouse
250 + enewuser clickhouse -1 -1 /var/lib/clickhouse clickhouse
251 + fi
252 +}
253
254 diff --git a/dev-db/clickhouse/clickhouse-18.12.17-r1.ebuild b/dev-db/clickhouse/clickhouse-18.12.17-r1.ebuild
255 new file mode 100644
256 index 00000000000..8608b4a58fc
257 --- /dev/null
258 +++ b/dev-db/clickhouse/clickhouse-18.12.17-r1.ebuild
259 @@ -0,0 +1,200 @@
260 +# Copyright 1999-2019 Gentoo Authors
261 +# Distributed under the terms of the GNU General Public License v2
262 +
263 +EAPI=6
264 +
265 +CMAKE_MAKEFILE_GENERATOR="ninja"
266 +
267 +inherit cmake-utils systemd toolchain-funcs user
268 +
269 +DESCRIPTION="An OSS column-oriented database management system for real-time data analysis"
270 +HOMEPAGE="https://clickhouse.yandex"
271 +LICENSE="Apache-2.0"
272 +
273 +MY_PN="ClickHouse"
274 +TYPE="stable"
275 +
276 +CCTZ_COMMIT="4f9776a"
277 +SRC_URI="https://github.com/yandex/${MY_PN}/archive/v${PV}-${TYPE}.tar.gz -> ${P}.tar.gz
278 + https://github.com/google/cctz/archive/${CCTZ_COMMIT}.tar.gz -> cctz-${CCTZ_COMMIT}.tar.gz
279 +"
280 +
281 +SLOT="0/${TYPE}"
282 +IUSE="+client cpu_flags_x86_sse4_2 +server debug doc kafka mongodb mysql static test tools"
283 +RESTRICT="!test? ( test )"
284 +KEYWORDS="~amd64"
285 +
286 +REQUIRED_USE="
287 + server? ( cpu_flags_x86_sse4_2 )
288 + static? ( client server tools )
289 +"
290 +
291 +RDEPEND="
292 + dev-libs/re2:0=
293 + !static? (
294 + >=app-arch/lz4-1.8.0:=
295 + >=app-arch/zstd-1.3.4:=
296 + client? (
297 + sys-libs/ncurses:0=
298 + sys-libs/readline:0=
299 + )
300 +
301 + dev-libs/double-conversion
302 + dev-libs/capnproto
303 + dev-libs/libltdl:0
304 + sys-libs/libunwind:7
305 + sys-libs/zlib
306 + || (
307 + dev-db/unixODBC
308 + dev-libs/poco[odbc]
309 + )
310 + dev-libs/icu:=
311 + dev-libs/glib
312 + >=dev-libs/boost-1.65.0:=
313 + dev-libs/openssl:0=
314 + kafka? ( dev-libs/librdkafka:= )
315 + mysql? ( dev-db/mysql-connector-c:= )
316 + )
317 +
318 + >=dev-libs/poco-1.9.0
319 + dev-libs/libpcre
320 +"
321 +
322 +DEPEND="${RDEPEND}
323 + doc? ( >=dev-python/mkdocs-1.0.1 )
324 + static? (
325 + >=app-arch/lz4-1.8.0[static-libs]
326 + >=app-arch/zstd-1.3.4[static-libs]
327 + client? (
328 + sys-libs/ncurses:0=[static-libs]
329 + sys-libs/readline:0=[static-libs]
330 + )
331 + dev-libs/capnproto[static-libs]
332 + dev-libs/libltdl[static-libs]
333 + sys-libs/libunwind:7[static-libs]
334 + sys-libs/zlib[static-libs]
335 + || (
336 + dev-db/unixODBC[static-libs]
337 + dev-libs/poco[odbc]
338 + )
339 + dev-libs/icu[static-libs]
340 + dev-libs/glib[static-libs]
341 + >=dev-libs/boost-1.65.0[static-libs]
342 + dev-libs/openssl[static-libs]
343 + dev-db/mysql-connector-c[static-libs]
344 + kafka? ( dev-libs/librdkafka[static-libs] )
345 + )
346 +
347 + sys-libs/libtermcap-compat
348 + dev-util/patchelf
349 + >=sys-devel/lld-6.0.0
350 + || (
351 + >=sys-devel/gcc-7.0
352 + >=sys-devel/clang-6.0
353 + )
354 +"
355 +
356 +S="${WORKDIR}/${MY_PN}-${PV}-${TYPE}"
357 +
358 +_clang_fullversion() {
359 + local ver="$1"; shift
360 + set -- $($(tc-getCPP "$@") -E -P - <<<"__clang_major__ __clang_minor__ __clang_patchlevel__")
361 + eval echo "$ver"
362 +}
363 +
364 +clang-fullversion() {
365 + _clang_fullversion '$1.$2.$3' "$@"
366 +}
367 +
368 +clang-version() {
369 + _clang_fullversion '$1.$2' "$@"
370 +}
371 +
372 +clang-major-version() {
373 + _clang_fullversion '$1' "$@"
374 +}
375 +
376 +clang-minor-version() {
377 + _clang_fullversion '$2' "$@"
378 +}
379 +
380 +clang-micro-version() {
381 + _clang_fullversion '$3' "$@"
382 +}
383 +
384 +pkg_pretend() {
385 + if [[ $(tc-getCC) == clang ]]; then
386 + if [[ $(clang-major-version) -lt 6 ]]; then
387 + eerror "Compilation with clang older than 6.0 is not supported"
388 + die "Too old clang found"
389 + fi
390 + :
391 + elif [[ $(gcc-major-version) -lt 7 ]] && [[$(gcc-minor-version) -lt 2 ]]; then
392 + eerror "Compilation with gcc older than 7.2 is not supported"
393 + die "Too old gcc found"
394 + fi
395 +}
396 +
397 +src_unpack() {
398 + default_src_unpack
399 + [[ ${PV} == 9999 ]] && return 0
400 + cd "${S}/contrib" || die "failed to cd to contrib"
401 + mkdir -p cctz zstd || die "failed to create directories"
402 + tar --strip-components=1 -C cctz -xf "${DISTDIR}/cctz-${CCTZ_COMMIT}.tar.gz" || die "failed to unpack cctz"
403 +}
404 +
405 +src_configure() {
406 + local mycmakeargs=(
407 + -DENABLE_POCO_MONGODB="$(usex mongodb)"
408 + -DENABLE_RDKAFKA="$(usex kafka)"
409 + -DENABLE_TESTS="$(usex test)"
410 + -DUSE_STATIC_LIBRARIES="$(usex static)"
411 + -DMAKE_STATIC_LIBRARIES="$(usex static)"
412 + -DUSE_MYSQL="$(usex mysql)"
413 + -DENABLE_CLICKHOUSE_SERVER="$(usex server)"
414 + -DENABLE_CLICKHOUSE_CLIENT="$(usex client)"
415 + -DENABLE_CLICKHOUSE_LOCAL="$(usex tools)"
416 + -DENABLE_CLICKHOUSE_BENCHMARK="$(usex tools)"
417 + -DENABLE_CLICKHOUSE_PERFORMANCE="$(usex tools)"
418 + -DENABLE_CLICKHOUSE_EXTRACT_FROM_CONFIG="$(usex tools)"
419 + -DENABLE_CLICKHOUSE_COMPRESSOR="$(usex tools)"
420 + -DENABLE_CLICKHOUSE_COPIER="$(usex tools)"
421 + # As of now, clickhouse fails to build if odbc is disabled
422 + -DENABLE_ODBC=True
423 + -DENABLE_CLICKHOUSE_ODBC_BRIDGE=True
424 + -DENABLE_CLICKHOUSE_ALL=OFF
425 + -DUSE_INTERNAL_SSL_LIBRARY=False
426 + -DUSE_INTERNAL_CITYHASH_LIBRARY=ON # Clickhouse explicitly requires bundled patched cityhash
427 + -DUNBUNDLED=ON
428 + )
429 +
430 + cmake-utils_src_configure
431 +}
432 +
433 +src_install() {
434 + cmake-utils_src_install
435 +
436 + if ! use test; then
437 + rm -rf "${D}/usr/share/clickhouse-test" || die "failed to remove tests"
438 + fi
439 +
440 + if use doc; then
441 + pushd "${S}/docs/tools" || die "Failed to enter docs build directory"
442 + ./build.py || die "Failed to build docs"
443 + popd || die "Failed to exit docs build directory"
444 +
445 + dodoc -r "${S}/docs/build"
446 + fi
447 +
448 + if use server; then
449 + newinitd "${FILESDIR}"/clickhouse-server.initd clickhouse-server
450 + systemd_dounit "${FILESDIR}"/clickhouse-server.service
451 + fi
452 +}
453 +
454 +pkg_preinst() {
455 + if use server; then
456 + enewgroup clickhouse
457 + enewuser clickhouse -1 -1 /var/lib/clickhouse clickhouse
458 + fi
459 +}
460
461 diff --git a/dev-db/clickhouse/clickhouse-18.6.0-r1.ebuild b/dev-db/clickhouse/clickhouse-18.6.0-r1.ebuild
462 new file mode 100644
463 index 00000000000..c476203de69
464 --- /dev/null
465 +++ b/dev-db/clickhouse/clickhouse-18.6.0-r1.ebuild
466 @@ -0,0 +1,200 @@
467 +# Copyright 1999-2019 Gentoo Authors
468 +# Distributed under the terms of the GNU General Public License v2
469 +
470 +EAPI=6
471 +
472 +CMAKE_MAKEFILE_GENERATOR="ninja"
473 +
474 +inherit cmake-utils systemd toolchain-funcs user
475 +
476 +DESCRIPTION="An OSS column-oriented database management system for real-time data analysis"
477 +HOMEPAGE="https://clickhouse.yandex"
478 +LICENSE="Apache-2.0"
479 +
480 +MY_PN="ClickHouse"
481 +TYPE="stable"
482 +
483 +CCTZ_COMMIT="4f9776a"
484 +ZSTD_COMMIT="2555975"
485 +SRC_URI="https://github.com/yandex/${MY_PN}/archive/v${PV}-${TYPE}.tar.gz -> ${P}.tar.gz
486 + https://github.com/google/cctz/archive/${CCTZ_COMMIT}.tar.gz -> cctz-${CCTZ_COMMIT}.tar.gz
487 +"
488 +
489 +SLOT="0/${TYPE}"
490 +IUSE="+client cpu_flags_x86_sse4_2 +server debug doc kafka mongodb mysql static test tools zookeeper"
491 +RESTRICT="!test? ( test )"
492 +KEYWORDS="~amd64"
493 +
494 +REQUIRED_USE="
495 + server? ( cpu_flags_x86_sse4_2 )
496 + static? ( client server tools )
497 +"
498 +
499 +RDEPEND="
500 + dev-libs/re2:0=
501 + !static? (
502 + >=app-arch/lz4-1.8.0:=
503 + >=app-arch/zstd-1.3.4:=
504 + client? (
505 + sys-libs/ncurses:0=
506 + sys-libs/readline:0=
507 + )
508 +
509 + dev-libs/double-conversion
510 + dev-libs/capnproto
511 + dev-libs/libltdl:0
512 + sys-libs/libunwind:7
513 + sys-libs/zlib
514 + || (
515 + dev-db/unixODBC
516 + dev-libs/poco[odbc]
517 + )
518 + dev-libs/icu:=
519 + dev-libs/glib
520 + >=dev-libs/boost-1.65.0:=
521 + dev-libs/openssl:0=
522 + dev-libs/zookeeper-c
523 + kafka? ( dev-libs/librdkafka:= )
524 + mysql? ( dev-db/mysql-connector-c:= )
525 + )
526 +
527 + >=dev-libs/poco-1.9.0
528 + dev-libs/libpcre
529 +"
530 +
531 +DEPEND="${RDEPEND}
532 + doc? ( >=dev-python/mkdocs-0.17.3 )
533 + static? (
534 + >=app-arch/lz4-1.8.0[static-libs]
535 + >=app-arch/zstd-1.3.4[static-libs]
536 + client? (
537 + sys-libs/ncurses:0=[static-libs]
538 + sys-libs/readline:0=[static-libs]
539 + )
540 + dev-libs/capnproto[static-libs]
541 + dev-libs/libltdl[static-libs]
542 + sys-libs/libunwind:7[static-libs]
543 + sys-libs/zlib[static-libs]
544 + || (
545 + dev-db/unixODBC[static-libs]
546 + dev-libs/poco[odbc]
547 + )
548 + dev-libs/icu[static-libs]
549 + dev-libs/glib[static-libs]
550 + >=dev-libs/boost-1.65.0[static-libs]
551 + dev-libs/openssl[static-libs]
552 + dev-libs/zookeeper-c[static-libs]
553 + dev-db/mysql-connector-c[static-libs]
554 + kafka? ( dev-libs/librdkafka[static-libs] )
555 + )
556 +
557 + sys-libs/libtermcap-compat
558 + dev-util/patchelf
559 + >=sys-devel/lld-6.0.0
560 + || (
561 + >=sys-devel/gcc-7.0
562 + >=sys-devel/clang-6.0
563 + )
564 +"
565 +
566 +S="${WORKDIR}/${MY_PN}-${PV}-${TYPE}"
567 +
568 +_clang_fullversion() {
569 + local ver="$1"; shift
570 + set -- $($(tc-getCPP "$@") -E -P - <<<"__clang_major__ __clang_minor__ __clang_patchlevel__")
571 + eval echo "$ver"
572 +}
573 +
574 +clang-fullversion() {
575 + _clang_fullversion '$1.$2.$3' "$@"
576 +}
577 +
578 +clang-version() {
579 + _clang_fullversion '$1.$2' "$@"
580 +}
581 +
582 +clang-major-version() {
583 + _clang_fullversion '$1' "$@"
584 +}
585 +
586 +clang-minor-version() {
587 + _clang_fullversion '$2' "$@"
588 +}
589 +
590 +clang-micro-version() {
591 + _clang_fullversion '$3' "$@"
592 +}
593 +
594 +pkg_pretend() {
595 + if [[ $(tc-getCC) == clang ]]; then
596 + if [[ $(clang-major-version) -lt 6 ]]; then
597 + eerror "Compilation with clang older than 6.0 is not supported"
598 + die "Too old clang found"
599 + fi
600 + :
601 + elif [[ $(gcc-major-version) -lt 7 ]] && [[$(gcc-minor-version) -lt 2 ]]; then
602 + eerror "Compilation with gcc older than 7.2 is not supported"
603 + die "Too old gcc found"
604 + fi
605 +}
606 +
607 +src_unpack() {
608 + default_src_unpack
609 + [[ ${PV} == 9999 ]] && return 0
610 + cd "${S}/contrib" || die "failed to cd to contrib"
611 + mkdir -p cctz zookeeper zstd || die "failed to create directories"
612 + tar --strip-components=1 -C cctz -xf "${DISTDIR}/cctz-${CCTZ_COMMIT}.tar.gz" || die "failed to unpack cctz"
613 +}
614 +
615 +src_configure() {
616 + local mycmakeargs=(
617 + -DENABLE_POCO_MONGODB="$(usex mongodb)"
618 + -DENABLE_RDKAFKA="$(usex kafka)"
619 + -DENABLE_TESTS="$(usex test)"
620 + -DUSE_STATIC_LIBRARIES="$(usex static)"
621 + -DMAKE_STATIC_LIBRARIES="$(usex static)"
622 + -DUSE_MYSQL="$(usex mysql)"
623 + -DENABLE_CLICKHOUSE_SERVER="$(usex server)"
624 + -DENABLE_CLICKHOUSE_CLIENT="$(usex client)"
625 + -DENABLE_CLICKHOUSE_LOCAL="$(usex tools)"
626 + -DENABLE_CLICKHOUSE_BENCHMARK="$(usex tools)"
627 + -DENABLE_CLICKHOUSE_PERFORMANCE="$(usex tools)"
628 + -DENABLE_CLICKHOUSE_EXTRACT_FROM_CONFIG="$(usex tools)"
629 + -DENABLE_CLICKHOUSE_COMPRESSOR="$(usex tools)"
630 + -DENABLE_CLICKHOUSE_COPIER="$(usex tools)"
631 + -DENABLE_CLICKHOUSE_COPIER="$(usex tools)"
632 + -DENABLE_CLICKHOUSE_ALL=OFF
633 + -DUSE_INTERNAL_CITYHASH_LIBRARY=ON # Clickhouse explicitly requires bundled patched cityhash
634 + -DUNBUNDLED=ON
635 + )
636 +
637 + cmake-utils_src_configure
638 +}
639 +
640 +src_install() {
641 + cmake-utils_src_install
642 +
643 + if ! use test; then
644 + rm -rf "${D}/usr/share/clickhouse-test" || die "failed to remove tests"
645 + fi
646 +
647 + if use doc; then
648 + pushd "${S}/docs/tools" || die "Failed to enter docs build directory"
649 + ./build.py || die "Failed to build docs"
650 + popd || die "Failed to exit docs build directory"
651 +
652 + dodoc -r "${S}/docs/build"
653 + fi
654 +
655 + if use server; then
656 + newinitd "${FILESDIR}"/clickhouse-server.initd clickhouse-server
657 + systemd_dounit "${FILESDIR}"/clickhouse-server.service
658 + fi
659 +}
660 +
661 +pkg_preinst() {
662 + if use server; then
663 + enewgroup clickhouse
664 + enewuser clickhouse -1 -1 /var/lib/clickhouse clickhouse
665 + fi
666 +}
667
668 diff --git a/dev-db/clickhouse/clickhouse-19.13.1.11-r2.ebuild b/dev-db/clickhouse/clickhouse-19.13.1.11-r2.ebuild
669 new file mode 100644
670 index 00000000000..e4848a05976
671 --- /dev/null
672 +++ b/dev-db/clickhouse/clickhouse-19.13.1.11-r2.ebuild
673 @@ -0,0 +1,204 @@
674 +# Copyright 1999-2019 Gentoo Authors
675 +# Distributed under the terms of the GNU General Public License v2
676 +
677 +EAPI=6
678 +
679 +CMAKE_MAKEFILE_GENERATOR="ninja"
680 +
681 +inherit cmake-utils systemd toolchain-funcs user
682 +
683 +DESCRIPTION="An OSS column-oriented database management system for real-time data analysis"
684 +HOMEPAGE="https://clickhouse.yandex"
685 +LICENSE="Apache-2.0"
686 +
687 +MY_PN="ClickHouse"
688 +TYPE="stable"
689 +
690 +CCTZ_COMMIT="4f9776a"
691 +SRC_URI="https://github.com/yandex/${MY_PN}/archive/v${PV}-${TYPE}.zip -> ${P}.zip
692 + https://github.com/google/cctz/archive/${CCTZ_COMMIT}.tar.gz -> cctz-${CCTZ_COMMIT}.tar.gz
693 +"
694 +
695 +SLOT="0/${TYPE}"
696 +IUSE="+client cpu_flags_x86_sse4_2 +server debug doc kafka mongodb mysql static test tools"
697 +RESTRICT="!test? ( test )"
698 +KEYWORDS="~amd64"
699 +
700 +REQUIRED_USE="
701 + server? ( cpu_flags_x86_sse4_2 )
702 + static? ( client server tools )
703 +"
704 +
705 +RDEPEND="
706 + dev-libs/re2:0=
707 + !static? (
708 + >=app-arch/lz4-1.8.0:=
709 + >=app-arch/zstd-1.3.4:=
710 + client? (
711 + sys-libs/ncurses:0=
712 + sys-libs/readline:0=
713 + )
714 +
715 + dev-libs/double-conversion
716 + dev-libs/capnproto
717 + dev-libs/libltdl:0
718 + sys-libs/libunwind:7
719 + sys-libs/zlib
720 + dev-libs/poco[odbc]
721 + dev-libs/icu:=
722 + dev-libs/glib
723 + >=dev-libs/boost-1.65.0:=
724 + dev-libs/openssl:0=
725 + kafka? ( dev-libs/librdkafka:= )
726 + mysql? ( dev-db/mysql-connector-c:= )
727 + )
728 +
729 + >=dev-libs/poco-1.9.0
730 + dev-libs/libpcre
731 + dev-libs/jemalloc
732 + dev-libs/protobuf
733 +"
734 +
735 +DEPEND="${RDEPEND}
736 + doc? ( >=dev-python/mkdocs-1.0.1 )
737 + static? (
738 + >=app-arch/lz4-1.8.0[static-libs]
739 + >=app-arch/zstd-1.3.4[static-libs]
740 + client? (
741 + sys-libs/ncurses:0=[static-libs]
742 + sys-libs/readline:0=[static-libs]
743 + )
744 + dev-libs/capnproto[static-libs]
745 + dev-libs/libltdl[static-libs]
746 + sys-libs/libunwind:7[static-libs]
747 + sys-libs/zlib[static-libs]
748 + || (
749 + dev-db/unixODBC[static-libs]
750 + dev-libs/poco[odbc]
751 + )
752 + dev-libs/icu[static-libs]
753 + dev-libs/glib[static-libs]
754 + >=dev-libs/boost-1.65.0[static-libs]
755 + dev-libs/openssl[static-libs]
756 + dev-db/mysql-connector-c[static-libs]
757 + kafka? ( dev-libs/librdkafka[static-libs] )
758 + )
759 +
760 + sys-libs/libtermcap-compat
761 + dev-util/patchelf
762 + >=sys-devel/lld-6.0.0
763 + >=sys-devel/gcc-7.0
764 + >=sys-devel/clang-6.0
765 +"
766 +
767 +S="${WORKDIR}/${MY_PN}-${PV}-${TYPE}"
768 +
769 +_clang_fullversion() {
770 + local ver="$1"; shift
771 + set -- $($(tc-getCPP "$@") -E -P - <<<"__clang_major__ __clang_minor__ __clang_patchlevel__")
772 + eval echo "$ver"
773 +}
774 +
775 +clang-fullversion() {
776 + _clang_fullversion '$1.$2.$3' "$@"
777 +}
778 +
779 +clang-version() {
780 + _clang_fullversion '$1.$2' "$@"
781 +}
782 +
783 +clang-major-version() {
784 + _clang_fullversion '$1' "$@"
785 +}
786 +
787 +clang-minor-version() {
788 + _clang_fullversion '$2' "$@"
789 +}
790 +
791 +clang-micro-version() {
792 + _clang_fullversion '$3' "$@"
793 +}
794 +
795 +pkg_pretend() {
796 + if [[ $(tc-getCC) == clang ]]; then
797 + if [[ $(clang-major-version) -lt 6 ]]; then
798 + eerror "Compilation with clang older than 6.0 is not supported"
799 + die "Too old clang found"
800 + fi
801 + :
802 + elif [[ $(gcc-major-version) -lt 7 ]] && [[$(gcc-minor-version) -lt 2 ]]; then
803 + eerror "Compilation with gcc older than 7.2 is not supported"
804 + die "Too old gcc found"
805 + fi
806 +}
807 +
808 +src_unpack() {
809 + default_src_unpack
810 + [[ ${PV} == 9999 ]] && return 0
811 + cd "${S}/contrib" || die "failed to cd to contrib"
812 + mkdir -p cctz zstd || die "failed to create directories"
813 + tar --strip-components=1 -C cctz -xf "${DISTDIR}/cctz-${CCTZ_COMMIT}.tar.gz" || die "failed to unpack cctz"
814 +}
815 +
816 +src_prepare() {
817 + eapply_user
818 + cmake-utils_src_prepare
819 +}
820 +src_configure() {
821 + local mycmakeargs=(
822 + -DENABLE_POCO_MONGODB="$(usex mongodb)"
823 + -DENABLE_RDKAFKA="$(usex kafka)"
824 + -DENABLE_TESTS="$(usex test)"
825 + -DUSE_STATIC_LIBRARIES="$(usex static)"
826 + -DMAKE_STATIC_LIBRARIES="$(usex static)"
827 + -DUSE_MYSQL="$(usex mysql)"
828 + -DENABLE_CLICKHOUSE_SERVER="$(usex server)"
829 + -DENABLE_CLICKHOUSE_CLIENT="$(usex client)"
830 + -DENABLE_CLICKHOUSE_LOCAL="$(usex tools)"
831 + -DENABLE_CLICKHOUSE_BENCHMARK="$(usex tools)"
832 + -DENABLE_CLICKHOUSE_PERFORMANCE="$(usex tools)"
833 + -DENABLE_CLICKHOUSE_EXTRACT_FROM_CONFIG="$(usex tools)"
834 + -DENABLE_CLICKHOUSE_COMPRESSOR="$(usex tools)"
835 + -DENABLE_CLICKHOUSE_COPIER="$(usex tools)"
836 + # As of now, clickhouse fails to build if odbc is disabled
837 + -DENABLE_ODBC=True
838 + -DENABLE_CLICKHOUSE_ODBC_BRIDGE=True
839 + -DENABLE_CLICKHOUSE_ALL=OFF
840 + -DUSE_INTERNAL_SSL_LIBRARY=False
841 + -DUSE_INTERNAL_CITYHASH_LIBRARY=ON # Clickhouse explicitly requires bundled patched cityhash
842 + -DUNBUNDLED=ON
843 + )
844 +
845 + cmake-utils_src_configure
846 +}
847 +
848 +src_install() {
849 + cmake-utils_src_install
850 +
851 + if ! use test; then
852 + rm -rf "${D}/usr/share/clickhouse-test" || die "failed to remove tests"
853 + fi
854 +
855 + if use doc; then
856 + pushd "${S}/docs/tools" || die "Failed to enter docs build directory"
857 + ./build.py || die "Failed to build docs"
858 + popd || die "Failed to exit docs build directory"
859 +
860 + dodoc -r "${S}/docs/build"
861 + fi
862 +
863 + if use server; then
864 + newinitd "${FILESDIR}"/clickhouse-server.initd clickhouse-server
865 + systemd_dounit "${FILESDIR}"/clickhouse-server.service
866 + fi
867 +
868 + keepdir /var/log/clickhouse-server
869 + chown clickhouse:clickhouse "${D}"/var/log/clickhouse-server
870 +}
871 +
872 +pkg_preinst() {
873 + if use server; then
874 + enewgroup clickhouse
875 + enewuser clickhouse -1 -1 /var/lib/clickhouse clickhouse
876 + fi
877 +}
878
879 diff --git a/dev-db/clickhouse/clickhouse-19.13.1.11-r3.ebuild b/dev-db/clickhouse/clickhouse-19.13.1.11-r3.ebuild
880 new file mode 100644
881 index 00000000000..08e3db756d3
882 --- /dev/null
883 +++ b/dev-db/clickhouse/clickhouse-19.13.1.11-r3.ebuild
884 @@ -0,0 +1,205 @@
885 +# Copyright 1999-2019 Gentoo Authors
886 +# Distributed under the terms of the GNU General Public License v2
887 +
888 +EAPI=6
889 +
890 +CMAKE_MAKEFILE_GENERATOR="ninja"
891 +
892 +inherit cmake-utils systemd toolchain-funcs user
893 +
894 +DESCRIPTION="An OSS column-oriented database management system for real-time data analysis"
895 +HOMEPAGE="https://clickhouse.yandex"
896 +LICENSE="Apache-2.0"
897 +
898 +MY_PN="ClickHouse"
899 +TYPE="stable"
900 +
901 +CCTZ_COMMIT="4f9776a"
902 +SRC_URI="https://github.com/yandex/${MY_PN}/archive/v${PV}-${TYPE}.zip -> ${P}.zip
903 + https://github.com/google/cctz/archive/${CCTZ_COMMIT}.tar.gz -> cctz-${CCTZ_COMMIT}.tar.gz
904 +"
905 +
906 +SLOT="0/${TYPE}"
907 +IUSE="+client cpu_flags_x86_sse4_2 +server debug doc kafka mongodb mysql static test tools"
908 +RESTRICT="!test? ( test )"
909 +KEYWORDS="~amd64"
910 +
911 +REQUIRED_USE="
912 + server? ( cpu_flags_x86_sse4_2 )
913 + static? ( client server tools )
914 +"
915 +
916 +RDEPEND="
917 + dev-libs/re2:0=
918 + !static? (
919 + >=app-arch/lz4-1.8.0:=
920 + >=app-arch/zstd-1.3.4:=
921 + client? (
922 + sys-libs/ncurses:0=
923 + sys-libs/readline:0=
924 + )
925 +
926 + dev-libs/double-conversion
927 + dev-libs/capnproto
928 + dev-libs/libltdl:0
929 + sys-libs/libunwind:7
930 + sys-libs/zlib
931 + dev-libs/poco[odbc]
932 + dev-libs/icu:=
933 + dev-libs/glib
934 + >=dev-libs/boost-1.65.0:=
935 + dev-libs/openssl:0=
936 + kafka? ( dev-libs/librdkafka:= )
937 + mysql? ( dev-db/mysql-connector-c:= )
938 + )
939 +
940 + >=dev-libs/poco-1.9.0
941 + dev-libs/libpcre
942 + dev-libs/jemalloc
943 + dev-libs/protobuf
944 +"
945 +
946 +DEPEND="${RDEPEND}
947 + doc? ( >=dev-python/mkdocs-1.0.1 )
948 + static? (
949 + >=app-arch/lz4-1.8.0[static-libs]
950 + >=app-arch/zstd-1.3.4[static-libs]
951 + client? (
952 + sys-libs/ncurses:0=[static-libs]
953 + sys-libs/readline:0=[static-libs]
954 + )
955 + dev-libs/capnproto[static-libs]
956 + dev-libs/libltdl[static-libs]
957 + sys-libs/libunwind:7[static-libs]
958 + sys-libs/zlib[static-libs]
959 + || (
960 + dev-db/unixODBC[static-libs]
961 + dev-libs/poco[odbc]
962 + )
963 + dev-libs/icu[static-libs]
964 + dev-libs/glib[static-libs]
965 + >=dev-libs/boost-1.65.0[static-libs]
966 + dev-libs/openssl[static-libs]
967 + dev-db/mysql-connector-c[static-libs]
968 + kafka? ( dev-libs/librdkafka[static-libs] )
969 + )
970 + =dev-cpp/gtest-1.8*
971 + sys-libs/libtermcap-compat
972 + dev-util/patchelf
973 + >=sys-devel/lld-6.0.0
974 + >=sys-devel/gcc-7.0
975 + >=sys-devel/clang-6.0
976 +"
977 +
978 +S="${WORKDIR}/${MY_PN}-${PV}-${TYPE}"
979 +
980 +_clang_fullversion() {
981 + local ver="$1"; shift
982 + set -- $($(tc-getCPP "$@") -E -P - <<<"__clang_major__ __clang_minor__ __clang_patchlevel__")
983 + eval echo "$ver"
984 +}
985 +
986 +clang-fullversion() {
987 + _clang_fullversion '$1.$2.$3' "$@"
988 +}
989 +
990 +clang-version() {
991 + _clang_fullversion '$1.$2' "$@"
992 +}
993 +
994 +clang-major-version() {
995 + _clang_fullversion '$1' "$@"
996 +}
997 +
998 +clang-minor-version() {
999 + _clang_fullversion '$2' "$@"
1000 +}
1001 +
1002 +clang-micro-version() {
1003 + _clang_fullversion '$3' "$@"
1004 +}
1005 +
1006 +pkg_pretend() {
1007 + if [[ $(tc-getCC) == clang ]]; then
1008 + if [[ $(clang-major-version) -lt 6 ]]; then
1009 + eerror "Compilation with clang older than 6.0 is not supported"
1010 + die "Too old clang found"
1011 + fi
1012 + :
1013 + elif [[ $(gcc-major-version) -lt 7 ]] && [[$(gcc-minor-version) -lt 2 ]]; then
1014 + eerror "Compilation with gcc older than 7.2 is not supported"
1015 + die "Too old gcc found"
1016 + fi
1017 +}
1018 +
1019 +src_unpack() {
1020 + default_src_unpack
1021 + [[ ${PV} == 9999 ]] && return 0
1022 + cd "${S}/contrib" || die "failed to cd to contrib"
1023 + mkdir -p cctz zstd || die "failed to create directories"
1024 + tar --strip-components=1 -C cctz -xf "${DISTDIR}/cctz-${CCTZ_COMMIT}.tar.gz" || die "failed to unpack cctz"
1025 +}
1026 +
1027 +src_prepare() {
1028 + eapply_user
1029 + cmake-utils_src_prepare
1030 +}
1031 +src_configure() {
1032 + local mycmakeargs=(
1033 + -DENABLE_POCO_MONGODB="$(usex mongodb)"
1034 + -DENABLE_RDKAFKA="$(usex kafka)"
1035 + -DENABLE_TESTS="$(usex test)"
1036 + -DUSE_STATIC_LIBRARIES="$(usex static)"
1037 + -DMAKE_STATIC_LIBRARIES="$(usex static)"
1038 + -DUSE_MYSQL="$(usex mysql)"
1039 + -DENABLE_CLICKHOUSE_SERVER="$(usex server)"
1040 + -DENABLE_CLICKHOUSE_CLIENT="$(usex client)"
1041 + -DENABLE_CLICKHOUSE_LOCAL="$(usex tools)"
1042 + -DENABLE_CLICKHOUSE_BENCHMARK="$(usex tools)"
1043 + -DENABLE_CLICKHOUSE_PERFORMANCE="$(usex tools)"
1044 + -DENABLE_CLICKHOUSE_EXTRACT_FROM_CONFIG="$(usex tools)"
1045 + -DENABLE_CLICKHOUSE_COMPRESSOR="$(usex tools)"
1046 + -DENABLE_CLICKHOUSE_COPIER="$(usex tools)"
1047 + # As of now, clickhouse fails to build if odbc is disabled
1048 + -DENABLE_ODBC=True
1049 + -DENABLE_CLICKHOUSE_ODBC_BRIDGE=True
1050 + -DENABLE_CLICKHOUSE_ALL=OFF
1051 + -DUSE_INTERNAL_SSL_LIBRARY=False
1052 + -DUSE_INTERNAL_CITYHASH_LIBRARY=ON # Clickhouse explicitly requires bundled patched cityhash
1053 + -DUNBUNDLED=ON
1054 + )
1055 +
1056 + cmake-utils_src_configure
1057 +}
1058 +
1059 +src_install() {
1060 + cmake-utils_src_install
1061 +
1062 + if ! use test; then
1063 + rm -rf "${D}/usr/share/clickhouse-test" || die "failed to remove tests"
1064 + fi
1065 +
1066 + if use doc; then
1067 + pushd "${S}/docs/tools" || die "Failed to enter docs build directory"
1068 + ./build.py || die "Failed to build docs"
1069 + popd || die "Failed to exit docs build directory"
1070 +
1071 + dodoc -r "${S}/docs/build"
1072 + fi
1073 +
1074 + if use server; then
1075 + newinitd "${FILESDIR}"/clickhouse-server.initd-r1 clickhouse-server
1076 + newconfd "${FILESDIR}"/clickhouse-server.confd clickhouse-server
1077 + systemd_dounit "${FILESDIR}"/clickhouse-server.service
1078 + fi
1079 +
1080 + keepdir /var/log/clickhouse-server
1081 + chown clickhouse:clickhouse "${D}"/var/log/clickhouse-server
1082 +}
1083 +
1084 +pkg_preinst() {
1085 + if use server; then
1086 + enewgroup clickhouse
1087 + enewuser clickhouse -1 -1 /var/lib/clickhouse clickhouse
1088 + fi
1089 +}
1090
1091 diff --git a/dev-db/clickhouse/clickhouse-19.15.2.2.ebuild b/dev-db/clickhouse/clickhouse-19.15.2.2.ebuild
1092 new file mode 100644
1093 index 00000000000..dec501ea572
1094 --- /dev/null
1095 +++ b/dev-db/clickhouse/clickhouse-19.15.2.2.ebuild
1096 @@ -0,0 +1,207 @@
1097 +# Copyright 1999-2019 Gentoo Authors
1098 +# Distributed under the terms of the GNU General Public License v2
1099 +
1100 +EAPI=6
1101 +
1102 +CMAKE_MAKEFILE_GENERATOR="ninja"
1103 +
1104 +inherit cmake-utils systemd toolchain-funcs user
1105 +
1106 +DESCRIPTION="An OSS column-oriented database management system for real-time data analysis"
1107 +HOMEPAGE="https://clickhouse.yandex"
1108 +LICENSE="Apache-2.0"
1109 +
1110 +MY_PN="ClickHouse"
1111 +TYPE="stable"
1112 +
1113 +CCTZ_COMMIT="4f9776a"
1114 +SRC_URI="https://github.com/yandex/${MY_PN}/archive/v${PV}-${TYPE}.zip -> ${P}.zip
1115 + https://github.com/google/cctz/archive/${CCTZ_COMMIT}.tar.gz -> cctz-${CCTZ_COMMIT}.tar.gz
1116 +"
1117 +
1118 +SLOT="0/${TYPE}"
1119 +IUSE="+client cpu_flags_x86_sse4_2 +server debug doc kafka mongodb mysql static test tools"
1120 +RESTRICT="!test? ( test )"
1121 +KEYWORDS="~amd64"
1122 +
1123 +REQUIRED_USE="
1124 + server? ( cpu_flags_x86_sse4_2 )
1125 + static? ( client server tools )
1126 +"
1127 +
1128 +RDEPEND="
1129 + dev-libs/re2:0=
1130 + !static? (
1131 + >=app-arch/lz4-1.8.0:=
1132 + >=app-arch/zstd-1.3.4:=
1133 + client? (
1134 + sys-libs/ncurses:0=
1135 + sys-libs/readline:0=
1136 + )
1137 +
1138 + dev-libs/double-conversion
1139 + dev-libs/capnproto
1140 + dev-libs/libltdl:0
1141 + sys-libs/libunwind:7
1142 + sys-libs/zlib
1143 + dev-libs/poco[odbc]
1144 + dev-libs/icu:=
1145 + dev-libs/glib
1146 + >=dev-libs/boost-1.65.0:=
1147 + dev-libs/openssl:0=
1148 + kafka? ( dev-libs/librdkafka:= )
1149 + mysql? ( dev-db/mysql-connector-c:= )
1150 + )
1151 +
1152 + >=dev-libs/poco-1.9.0
1153 + dev-libs/libpcre
1154 + dev-libs/jemalloc
1155 + dev-libs/protobuf
1156 + dev-cpp/sparsehash
1157 +"
1158 +
1159 +DEPEND="${RDEPEND}
1160 + doc? ( >=dev-python/mkdocs-1.0.1 )
1161 + static? (
1162 + >=app-arch/lz4-1.8.0[static-libs]
1163 + >=app-arch/zstd-1.3.4[static-libs]
1164 + client? (
1165 + sys-libs/ncurses:0=[static-libs]
1166 + sys-libs/readline:0=[static-libs]
1167 + )
1168 + dev-libs/capnproto[static-libs]
1169 + dev-libs/libltdl[static-libs]
1170 + sys-libs/libunwind:7[static-libs]
1171 + sys-libs/zlib[static-libs]
1172 + || (
1173 + dev-db/unixODBC[static-libs]
1174 + dev-libs/poco[odbc]
1175 + )
1176 + dev-libs/icu[static-libs]
1177 + dev-libs/glib[static-libs]
1178 + >=dev-libs/boost-1.65.0[static-libs]
1179 + dev-libs/openssl[static-libs]
1180 + dev-db/mysql-connector-c[static-libs]
1181 + kafka? ( dev-libs/librdkafka[static-libs] )
1182 + )
1183 + =dev-cpp/gtest-1.8*
1184 + sys-libs/libtermcap-compat
1185 + dev-util/patchelf
1186 + >=sys-devel/lld-6.0.0
1187 + >=sys-devel/gcc-7.0
1188 + >=sys-devel/clang-6.0
1189 +"
1190 +
1191 +S="${WORKDIR}/${MY_PN}-${PV}-${TYPE}"
1192 +
1193 +_clang_fullversion() {
1194 + local ver="$1"; shift
1195 + set -- $($(tc-getCPP "$@") -E -P - <<<"__clang_major__ __clang_minor__ __clang_patchlevel__")
1196 + eval echo "$ver"
1197 +}
1198 +
1199 +clang-fullversion() {
1200 + _clang_fullversion '$1.$2.$3' "$@"
1201 +}
1202 +
1203 +clang-version() {
1204 + _clang_fullversion '$1.$2' "$@"
1205 +}
1206 +
1207 +clang-major-version() {
1208 + _clang_fullversion '$1' "$@"
1209 +}
1210 +
1211 +clang-minor-version() {
1212 + _clang_fullversion '$2' "$@"
1213 +}
1214 +
1215 +clang-micro-version() {
1216 + _clang_fullversion '$3' "$@"
1217 +}
1218 +
1219 +pkg_pretend() {
1220 + if [[ $(tc-getCC) == clang ]]; then
1221 + if [[ $(clang-major-version) -lt 6 ]]; then
1222 + eerror "Compilation with clang older than 6.0 is not supported"
1223 + die "Too old clang found"
1224 + fi
1225 + :
1226 + elif [[ $(gcc-major-version) -lt 7 ]] && [[$(gcc-minor-version) -lt 2 ]]; then
1227 + eerror "Compilation with gcc older than 7.2 is not supported"
1228 + die "Too old gcc found"
1229 + fi
1230 +}
1231 +
1232 +src_unpack() {
1233 + default_src_unpack
1234 + [[ ${PV} == 9999 ]] && return 0
1235 + cd "${S}/contrib" || die "failed to cd to contrib"
1236 + mkdir -p cctz zstd || die "failed to create directories"
1237 + tar --strip-components=1 -C cctz -xf "${DISTDIR}/cctz-${CCTZ_COMMIT}.tar.gz" || die "failed to unpack cctz"
1238 +}
1239 +
1240 +src_prepare() {
1241 + sed -i -e 's~add_subdirectory(contrib/libunwind-cmake)~~' cmake/find/unwind.cmake || die "Failed to succeed"
1242 + eapply_user
1243 + cmake-utils_src_prepare
1244 +}
1245 +src_configure() {
1246 + local mycmakeargs=(
1247 + -DENABLE_POCO_MONGODB="$(usex mongodb)"
1248 + -DENABLE_RDKAFKA="$(usex kafka)"
1249 + -DENABLE_TESTS="$(usex test)"
1250 + -DUSE_STATIC_LIBRARIES="$(usex static)"
1251 + -DMAKE_STATIC_LIBRARIES="$(usex static)"
1252 + -DUSE_MYSQL="$(usex mysql)"
1253 + -DENABLE_CLICKHOUSE_SERVER="$(usex server)"
1254 + -DENABLE_CLICKHOUSE_CLIENT="$(usex client)"
1255 + -DENABLE_CLICKHOUSE_LOCAL="$(usex tools)"
1256 + -DENABLE_CLICKHOUSE_BENCHMARK="$(usex tools)"
1257 + -DENABLE_CLICKHOUSE_PERFORMANCE="$(usex tools)"
1258 + -DENABLE_CLICKHOUSE_EXTRACT_FROM_CONFIG="$(usex tools)"
1259 + -DENABLE_CLICKHOUSE_COMPRESSOR="$(usex tools)"
1260 + -DENABLE_CLICKHOUSE_COPIER="$(usex tools)"
1261 + # As of now, clickhouse fails to build if odbc is disabled
1262 + -DENABLE_ODBC=True
1263 + -DENABLE_CLICKHOUSE_ODBC_BRIDGE=True
1264 + -DENABLE_CLICKHOUSE_ALL=OFF
1265 + -DUSE_INTERNAL_SSL_LIBRARY=False
1266 + -DUSE_INTERNAL_CITYHASH_LIBRARY=ON # Clickhouse explicitly requires bundled patched cityhash
1267 + -DUNBUNDLED=ON
1268 + )
1269 +
1270 + cmake-utils_src_configure
1271 +}
1272 +
1273 +src_install() {
1274 + cmake-utils_src_install
1275 +
1276 + if ! use test; then
1277 + rm -rf "${D}/usr/share/clickhouse-test" || die "failed to remove tests"
1278 + fi
1279 +
1280 + if use doc; then
1281 + pushd "${S}/docs/tools" || die "Failed to enter docs build directory"
1282 + ./build.py || die "Failed to build docs"
1283 + popd || die "Failed to exit docs build directory"
1284 +
1285 + dodoc -r "${S}/docs/build"
1286 + fi
1287 +
1288 + if use server; then
1289 + newinitd "${FILESDIR}"/clickhouse-server.initd-r1 clickhouse-server
1290 + newconfd "${FILESDIR}"/clickhouse-server.confd clickhouse-server
1291 + systemd_dounit "${FILESDIR}"/clickhouse-server.service
1292 + fi
1293 +
1294 + keepdir /var/log/clickhouse-server
1295 + chown clickhouse:clickhouse "${D}"/var/log/clickhouse-server
1296 +}
1297 +
1298 +pkg_preinst() {
1299 + if use server; then
1300 + enewgroup clickhouse
1301 + enewuser clickhouse -1 -1 /var/lib/clickhouse clickhouse
1302 + fi
1303 +}
1304
1305 diff --git a/dev-db/clickhouse/clickhouse-19.5.3.8-r1.ebuild b/dev-db/clickhouse/clickhouse-19.5.3.8-r1.ebuild
1306 new file mode 100644
1307 index 00000000000..92f6800a614
1308 --- /dev/null
1309 +++ b/dev-db/clickhouse/clickhouse-19.5.3.8-r1.ebuild
1310 @@ -0,0 +1,203 @@
1311 +# Copyright 1999-2019 Gentoo Authors
1312 +# Distributed under the terms of the GNU General Public License v2
1313 +
1314 +EAPI=6
1315 +
1316 +CMAKE_MAKEFILE_GENERATOR="ninja"
1317 +
1318 +inherit cmake-utils systemd toolchain-funcs user
1319 +
1320 +DESCRIPTION="An OSS column-oriented database management system for real-time data analysis"
1321 +HOMEPAGE="https://clickhouse.yandex"
1322 +LICENSE="Apache-2.0"
1323 +
1324 +MY_PN="ClickHouse"
1325 +TYPE="stable"
1326 +
1327 +CCTZ_COMMIT="4f9776a"
1328 +SRC_URI="https://github.com/yandex/${MY_PN}/archive/v${PV}-${TYPE}.zip -> ${P}.zip
1329 + https://github.com/google/cctz/archive/${CCTZ_COMMIT}.tar.gz -> cctz-${CCTZ_COMMIT}.tar.gz
1330 +"
1331 +
1332 +SLOT="0/${TYPE}"
1333 +IUSE="+client cpu_flags_x86_sse4_2 +server debug doc kafka mongodb mysql static test tools"
1334 +RESTRICT="!test? ( test )"
1335 +KEYWORDS="~amd64"
1336 +
1337 +REQUIRED_USE="
1338 + server? ( cpu_flags_x86_sse4_2 )
1339 + static? ( client server tools )
1340 +"
1341 +
1342 +RDEPEND="
1343 + dev-libs/re2:0=
1344 + !static? (
1345 + >=app-arch/lz4-1.8.0:=
1346 + >=app-arch/zstd-1.3.4:=
1347 + client? (
1348 + sys-libs/ncurses:0=
1349 + sys-libs/readline:0=
1350 + )
1351 +
1352 + dev-libs/double-conversion
1353 + dev-libs/capnproto
1354 + dev-libs/libltdl:0
1355 + sys-libs/libunwind:7
1356 + sys-libs/zlib
1357 + dev-libs/poco[odbc]
1358 + dev-libs/icu:=
1359 + dev-libs/glib
1360 + >=dev-libs/boost-1.65.0:=
1361 + dev-libs/openssl:0=
1362 + kafka? ( dev-libs/librdkafka:= )
1363 + mysql? ( dev-db/mysql-connector-c:= )
1364 + )
1365 +
1366 + >=dev-libs/poco-1.9.0
1367 + dev-libs/libpcre
1368 + dev-libs/jemalloc
1369 +"
1370 +
1371 +DEPEND="${RDEPEND}
1372 + doc? ( >=dev-python/mkdocs-1.0.1 )
1373 + static? (
1374 + >=app-arch/lz4-1.8.0[static-libs]
1375 + >=app-arch/zstd-1.3.4[static-libs]
1376 + client? (
1377 + sys-libs/ncurses:0=[static-libs]
1378 + sys-libs/readline:0=[static-libs]
1379 + )
1380 + dev-libs/capnproto[static-libs]
1381 + dev-libs/libltdl[static-libs]
1382 + sys-libs/libunwind:7[static-libs]
1383 + sys-libs/zlib[static-libs]
1384 + || (
1385 + dev-db/unixODBC[static-libs]
1386 + dev-libs/poco[odbc]
1387 + )
1388 + dev-libs/icu[static-libs]
1389 + dev-libs/glib[static-libs]
1390 + >=dev-libs/boost-1.65.0[static-libs]
1391 + dev-libs/openssl[static-libs]
1392 + dev-db/mysql-connector-c[static-libs]
1393 + kafka? ( dev-libs/librdkafka[static-libs] )
1394 + )
1395 +
1396 + sys-libs/libtermcap-compat
1397 + dev-util/patchelf
1398 + >=sys-devel/lld-6.0.0
1399 + >=sys-devel/gcc-7.0
1400 + >=sys-devel/clang-6.0
1401 +"
1402 +
1403 +S="${WORKDIR}/${MY_PN}-${PV}-${TYPE}"
1404 +
1405 +_clang_fullversion() {
1406 + local ver="$1"; shift
1407 + set -- $($(tc-getCPP "$@") -E -P - <<<"__clang_major__ __clang_minor__ __clang_patchlevel__")
1408 + eval echo "$ver"
1409 +}
1410 +
1411 +clang-fullversion() {
1412 + _clang_fullversion '$1.$2.$3' "$@"
1413 +}
1414 +
1415 +clang-version() {
1416 + _clang_fullversion '$1.$2' "$@"
1417 +}
1418 +
1419 +clang-major-version() {
1420 + _clang_fullversion '$1' "$@"
1421 +}
1422 +
1423 +clang-minor-version() {
1424 + _clang_fullversion '$2' "$@"
1425 +}
1426 +
1427 +clang-micro-version() {
1428 + _clang_fullversion '$3' "$@"
1429 +}
1430 +
1431 +pkg_pretend() {
1432 + if [[ $(tc-getCC) == clang ]]; then
1433 + if [[ $(clang-major-version) -lt 6 ]]; then
1434 + eerror "Compilation with clang older than 6.0 is not supported"
1435 + die "Too old clang found"
1436 + fi
1437 + :
1438 + elif [[ $(gcc-major-version) -lt 7 ]] && [[$(gcc-minor-version) -lt 2 ]]; then
1439 + eerror "Compilation with gcc older than 7.2 is not supported"
1440 + die "Too old gcc found"
1441 + fi
1442 +}
1443 +
1444 +src_unpack() {
1445 + default_src_unpack
1446 + [[ ${PV} == 9999 ]] && return 0
1447 + cd "${S}/contrib" || die "failed to cd to contrib"
1448 + mkdir -p cctz zstd || die "failed to create directories"
1449 + tar --strip-components=1 -C cctz -xf "${DISTDIR}/cctz-${CCTZ_COMMIT}.tar.gz" || die "failed to unpack cctz"
1450 +}
1451 +
1452 +src_prepare() {
1453 + eapply_user
1454 + cmake-utils_src_prepare
1455 +}
1456 +src_configure() {
1457 + local mycmakeargs=(
1458 + -DENABLE_POCO_MONGODB="$(usex mongodb)"
1459 + -DENABLE_RDKAFKA="$(usex kafka)"
1460 + -DENABLE_TESTS="$(usex test)"
1461 + -DUSE_STATIC_LIBRARIES="$(usex static)"
1462 + -DMAKE_STATIC_LIBRARIES="$(usex static)"
1463 + -DUSE_MYSQL="$(usex mysql)"
1464 + -DENABLE_CLICKHOUSE_SERVER="$(usex server)"
1465 + -DENABLE_CLICKHOUSE_CLIENT="$(usex client)"
1466 + -DENABLE_CLICKHOUSE_LOCAL="$(usex tools)"
1467 + -DENABLE_CLICKHOUSE_BENCHMARK="$(usex tools)"
1468 + -DENABLE_CLICKHOUSE_PERFORMANCE="$(usex tools)"
1469 + -DENABLE_CLICKHOUSE_EXTRACT_FROM_CONFIG="$(usex tools)"
1470 + -DENABLE_CLICKHOUSE_COMPRESSOR="$(usex tools)"
1471 + -DENABLE_CLICKHOUSE_COPIER="$(usex tools)"
1472 + # As of now, clickhouse fails to build if odbc is disabled
1473 + -DENABLE_ODBC=True
1474 + -DENABLE_CLICKHOUSE_ODBC_BRIDGE=True
1475 + -DENABLE_CLICKHOUSE_ALL=OFF
1476 + -DUSE_INTERNAL_SSL_LIBRARY=False
1477 + -DUSE_INTERNAL_CITYHASH_LIBRARY=ON # Clickhouse explicitly requires bundled patched cityhash
1478 + -DUNBUNDLED=ON
1479 + )
1480 +
1481 + cmake-utils_src_configure
1482 +}
1483 +
1484 +src_install() {
1485 + cmake-utils_src_install
1486 +
1487 + if ! use test; then
1488 + rm -rf "${D}/usr/share/clickhouse-test" || die "failed to remove tests"
1489 + fi
1490 +
1491 + if use doc; then
1492 + pushd "${S}/docs/tools" || die "Failed to enter docs build directory"
1493 + ./build.py || die "Failed to build docs"
1494 + popd || die "Failed to exit docs build directory"
1495 +
1496 + dodoc -r "${S}/docs/build"
1497 + fi
1498 +
1499 + if use server; then
1500 + newinitd "${FILESDIR}"/clickhouse-server.initd clickhouse-server
1501 + systemd_dounit "${FILESDIR}"/clickhouse-server.service
1502 + fi
1503 +
1504 + keepdir /var/log/clickhouse-server
1505 + chown clickhouse:clickhouse "${D}"/var/log/clickhouse-server
1506 +}
1507 +
1508 +pkg_preinst() {
1509 + if use server; then
1510 + enewgroup clickhouse
1511 + enewuser clickhouse -1 -1 /var/lib/clickhouse clickhouse
1512 + fi
1513 +}
1514
1515 diff --git a/dev-db/clickhouse/clickhouse-19.9.5.36-r1.ebuild b/dev-db/clickhouse/clickhouse-19.9.5.36-r1.ebuild
1516 new file mode 100644
1517 index 00000000000..92f6800a614
1518 --- /dev/null
1519 +++ b/dev-db/clickhouse/clickhouse-19.9.5.36-r1.ebuild
1520 @@ -0,0 +1,203 @@
1521 +# Copyright 1999-2019 Gentoo Authors
1522 +# Distributed under the terms of the GNU General Public License v2
1523 +
1524 +EAPI=6
1525 +
1526 +CMAKE_MAKEFILE_GENERATOR="ninja"
1527 +
1528 +inherit cmake-utils systemd toolchain-funcs user
1529 +
1530 +DESCRIPTION="An OSS column-oriented database management system for real-time data analysis"
1531 +HOMEPAGE="https://clickhouse.yandex"
1532 +LICENSE="Apache-2.0"
1533 +
1534 +MY_PN="ClickHouse"
1535 +TYPE="stable"
1536 +
1537 +CCTZ_COMMIT="4f9776a"
1538 +SRC_URI="https://github.com/yandex/${MY_PN}/archive/v${PV}-${TYPE}.zip -> ${P}.zip
1539 + https://github.com/google/cctz/archive/${CCTZ_COMMIT}.tar.gz -> cctz-${CCTZ_COMMIT}.tar.gz
1540 +"
1541 +
1542 +SLOT="0/${TYPE}"
1543 +IUSE="+client cpu_flags_x86_sse4_2 +server debug doc kafka mongodb mysql static test tools"
1544 +RESTRICT="!test? ( test )"
1545 +KEYWORDS="~amd64"
1546 +
1547 +REQUIRED_USE="
1548 + server? ( cpu_flags_x86_sse4_2 )
1549 + static? ( client server tools )
1550 +"
1551 +
1552 +RDEPEND="
1553 + dev-libs/re2:0=
1554 + !static? (
1555 + >=app-arch/lz4-1.8.0:=
1556 + >=app-arch/zstd-1.3.4:=
1557 + client? (
1558 + sys-libs/ncurses:0=
1559 + sys-libs/readline:0=
1560 + )
1561 +
1562 + dev-libs/double-conversion
1563 + dev-libs/capnproto
1564 + dev-libs/libltdl:0
1565 + sys-libs/libunwind:7
1566 + sys-libs/zlib
1567 + dev-libs/poco[odbc]
1568 + dev-libs/icu:=
1569 + dev-libs/glib
1570 + >=dev-libs/boost-1.65.0:=
1571 + dev-libs/openssl:0=
1572 + kafka? ( dev-libs/librdkafka:= )
1573 + mysql? ( dev-db/mysql-connector-c:= )
1574 + )
1575 +
1576 + >=dev-libs/poco-1.9.0
1577 + dev-libs/libpcre
1578 + dev-libs/jemalloc
1579 +"
1580 +
1581 +DEPEND="${RDEPEND}
1582 + doc? ( >=dev-python/mkdocs-1.0.1 )
1583 + static? (
1584 + >=app-arch/lz4-1.8.0[static-libs]
1585 + >=app-arch/zstd-1.3.4[static-libs]
1586 + client? (
1587 + sys-libs/ncurses:0=[static-libs]
1588 + sys-libs/readline:0=[static-libs]
1589 + )
1590 + dev-libs/capnproto[static-libs]
1591 + dev-libs/libltdl[static-libs]
1592 + sys-libs/libunwind:7[static-libs]
1593 + sys-libs/zlib[static-libs]
1594 + || (
1595 + dev-db/unixODBC[static-libs]
1596 + dev-libs/poco[odbc]
1597 + )
1598 + dev-libs/icu[static-libs]
1599 + dev-libs/glib[static-libs]
1600 + >=dev-libs/boost-1.65.0[static-libs]
1601 + dev-libs/openssl[static-libs]
1602 + dev-db/mysql-connector-c[static-libs]
1603 + kafka? ( dev-libs/librdkafka[static-libs] )
1604 + )
1605 +
1606 + sys-libs/libtermcap-compat
1607 + dev-util/patchelf
1608 + >=sys-devel/lld-6.0.0
1609 + >=sys-devel/gcc-7.0
1610 + >=sys-devel/clang-6.0
1611 +"
1612 +
1613 +S="${WORKDIR}/${MY_PN}-${PV}-${TYPE}"
1614 +
1615 +_clang_fullversion() {
1616 + local ver="$1"; shift
1617 + set -- $($(tc-getCPP "$@") -E -P - <<<"__clang_major__ __clang_minor__ __clang_patchlevel__")
1618 + eval echo "$ver"
1619 +}
1620 +
1621 +clang-fullversion() {
1622 + _clang_fullversion '$1.$2.$3' "$@"
1623 +}
1624 +
1625 +clang-version() {
1626 + _clang_fullversion '$1.$2' "$@"
1627 +}
1628 +
1629 +clang-major-version() {
1630 + _clang_fullversion '$1' "$@"
1631 +}
1632 +
1633 +clang-minor-version() {
1634 + _clang_fullversion '$2' "$@"
1635 +}
1636 +
1637 +clang-micro-version() {
1638 + _clang_fullversion '$3' "$@"
1639 +}
1640 +
1641 +pkg_pretend() {
1642 + if [[ $(tc-getCC) == clang ]]; then
1643 + if [[ $(clang-major-version) -lt 6 ]]; then
1644 + eerror "Compilation with clang older than 6.0 is not supported"
1645 + die "Too old clang found"
1646 + fi
1647 + :
1648 + elif [[ $(gcc-major-version) -lt 7 ]] && [[$(gcc-minor-version) -lt 2 ]]; then
1649 + eerror "Compilation with gcc older than 7.2 is not supported"
1650 + die "Too old gcc found"
1651 + fi
1652 +}
1653 +
1654 +src_unpack() {
1655 + default_src_unpack
1656 + [[ ${PV} == 9999 ]] && return 0
1657 + cd "${S}/contrib" || die "failed to cd to contrib"
1658 + mkdir -p cctz zstd || die "failed to create directories"
1659 + tar --strip-components=1 -C cctz -xf "${DISTDIR}/cctz-${CCTZ_COMMIT}.tar.gz" || die "failed to unpack cctz"
1660 +}
1661 +
1662 +src_prepare() {
1663 + eapply_user
1664 + cmake-utils_src_prepare
1665 +}
1666 +src_configure() {
1667 + local mycmakeargs=(
1668 + -DENABLE_POCO_MONGODB="$(usex mongodb)"
1669 + -DENABLE_RDKAFKA="$(usex kafka)"
1670 + -DENABLE_TESTS="$(usex test)"
1671 + -DUSE_STATIC_LIBRARIES="$(usex static)"
1672 + -DMAKE_STATIC_LIBRARIES="$(usex static)"
1673 + -DUSE_MYSQL="$(usex mysql)"
1674 + -DENABLE_CLICKHOUSE_SERVER="$(usex server)"
1675 + -DENABLE_CLICKHOUSE_CLIENT="$(usex client)"
1676 + -DENABLE_CLICKHOUSE_LOCAL="$(usex tools)"
1677 + -DENABLE_CLICKHOUSE_BENCHMARK="$(usex tools)"
1678 + -DENABLE_CLICKHOUSE_PERFORMANCE="$(usex tools)"
1679 + -DENABLE_CLICKHOUSE_EXTRACT_FROM_CONFIG="$(usex tools)"
1680 + -DENABLE_CLICKHOUSE_COMPRESSOR="$(usex tools)"
1681 + -DENABLE_CLICKHOUSE_COPIER="$(usex tools)"
1682 + # As of now, clickhouse fails to build if odbc is disabled
1683 + -DENABLE_ODBC=True
1684 + -DENABLE_CLICKHOUSE_ODBC_BRIDGE=True
1685 + -DENABLE_CLICKHOUSE_ALL=OFF
1686 + -DUSE_INTERNAL_SSL_LIBRARY=False
1687 + -DUSE_INTERNAL_CITYHASH_LIBRARY=ON # Clickhouse explicitly requires bundled patched cityhash
1688 + -DUNBUNDLED=ON
1689 + )
1690 +
1691 + cmake-utils_src_configure
1692 +}
1693 +
1694 +src_install() {
1695 + cmake-utils_src_install
1696 +
1697 + if ! use test; then
1698 + rm -rf "${D}/usr/share/clickhouse-test" || die "failed to remove tests"
1699 + fi
1700 +
1701 + if use doc; then
1702 + pushd "${S}/docs/tools" || die "Failed to enter docs build directory"
1703 + ./build.py || die "Failed to build docs"
1704 + popd || die "Failed to exit docs build directory"
1705 +
1706 + dodoc -r "${S}/docs/build"
1707 + fi
1708 +
1709 + if use server; then
1710 + newinitd "${FILESDIR}"/clickhouse-server.initd clickhouse-server
1711 + systemd_dounit "${FILESDIR}"/clickhouse-server.service
1712 + fi
1713 +
1714 + keepdir /var/log/clickhouse-server
1715 + chown clickhouse:clickhouse "${D}"/var/log/clickhouse-server
1716 +}
1717 +
1718 +pkg_preinst() {
1719 + if use server; then
1720 + enewgroup clickhouse
1721 + enewuser clickhouse -1 -1 /var/lib/clickhouse clickhouse
1722 + fi
1723 +}
1724
1725 diff --git a/dev-db/clickhouse/files/clickhouse-server.confd b/dev-db/clickhouse/files/clickhouse-server.confd
1726 new file mode 100644
1727 index 00000000000..0e7344672b4
1728 --- /dev/null
1729 +++ b/dev-db/clickhouse/files/clickhouse-server.confd
1730 @@ -0,0 +1,4 @@
1731 +user="clickhouse"
1732 +group="clickhouse"
1733 +logdir="/var/log/clickhouse-server"
1734 +
1735
1736 diff --git a/dev-db/clickhouse/files/clickhouse-server.initd b/dev-db/clickhouse/files/clickhouse-server.initd
1737 new file mode 100644
1738 index 00000000000..5e787c0c1fa
1739 --- /dev/null
1740 +++ b/dev-db/clickhouse/files/clickhouse-server.initd
1741 @@ -0,0 +1,16 @@
1742 +#!/sbin/openrc-run
1743 +# Copyright 1999-2018 Gentoo Foundation
1744 +# Distributed under the terms of the GNU General Public License v2
1745 +
1746 +pidfile="/run/clickhouse-server.pid"
1747 +command_background=1
1748 +command="/usr/bin/clickhouse-server"
1749 +start_stop_daemon_args="--user clickhouse --group clickhouse \
1750 + --chdir /etc/clickhouse-server \
1751 + -1 /var/log/clickhouse-server/stdout.log \
1752 + -2 /var/log/clickhouse-server/stderr.log"
1753 +
1754 +depend() {
1755 + need net
1756 + after mongodb
1757 +}
1758
1759 diff --git a/dev-db/clickhouse/files/clickhouse-server.initd-r1 b/dev-db/clickhouse/files/clickhouse-server.initd-r1
1760 new file mode 100644
1761 index 00000000000..efc11f5e54c
1762 --- /dev/null
1763 +++ b/dev-db/clickhouse/files/clickhouse-server.initd-r1
1764 @@ -0,0 +1,23 @@
1765 +#!/sbin/openrc-run
1766 +# Copyright 1999-2019 Gentoo Authors
1767 +# Distributed under the terms of the GNU General Public License v2
1768 +
1769 +user="clickhouse"
1770 +group="clickhouse"
1771 +logdir="/var/log/clickhouse-server"
1772 +pidfile="/run/clickhouse-server.pid"
1773 +command_background=1
1774 +command="/usr/bin/clickhouse-server"
1775 +start_stop_daemon_args="--user ${user} --group ${group} \
1776 + --chdir /etc/clickhouse-server \
1777 + -1 ${logdir}/stdout.log \
1778 + -2 ${logdir}/stderr.log"
1779 +
1780 +depend() {
1781 + need net
1782 + after mongodb
1783 +}
1784 +
1785 +start_pre() {
1786 + checkpath -m 0755 -o "${user}:${group}" -d "${logdir}"
1787 +}
1788
1789 diff --git a/dev-db/clickhouse/files/clickhouse-server.service b/dev-db/clickhouse/files/clickhouse-server.service
1790 new file mode 100644
1791 index 00000000000..64d2cbacf6e
1792 --- /dev/null
1793 +++ b/dev-db/clickhouse/files/clickhouse-server.service
1794 @@ -0,0 +1,15 @@
1795 +[Unit]
1796 +Description=ClickHouse Server (analytic DBMS for big data)
1797 +
1798 +[Service]
1799 +Type=simple
1800 +User=clickhouse
1801 +Group=clickhouse
1802 +Restart=always
1803 +RestartSec=30
1804 +ExecStart=/usr/bin/clickhouse-server --config=/etc/clickhouse-server/config.xml
1805 +LimitCORE=infinity
1806 +LimitNOFILE=500000
1807 +
1808 +[Install]
1809 +WantedBy=multi-user.target
1810
1811 diff --git a/dev-db/clickhouse/metadata.xml b/dev-db/clickhouse/metadata.xml
1812 new file mode 100644
1813 index 00000000000..bb224e97f7c
1814 --- /dev/null
1815 +++ b/dev-db/clickhouse/metadata.xml
1816 @@ -0,0 +1,16 @@
1817 +<?xml version="1.0" encoding="UTF-8"?>
1818 +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
1819 +<pkgmetadata>
1820 + <!-- maintainer-needed -->
1821 + <upstream>
1822 + <remote-id type="github">yandex/Clickhouse</remote-id>
1823 + </upstream>
1824 + <use>
1825 + <flag name="client">Build CLI client.</flag>
1826 + <flag name="server">Build server.</flag>
1827 + <flag name="kafka">Enables support for kafka consumer.</flag>
1828 + <flag name="mongodb">Enabled support for MongoDB-based dictionaries</flag>
1829 + <flag name="tools">Build various tools, like benchmark, copier, etc.</flag>
1830 + <flag name="zookeeper">Enable support for clustering (based on Zookeeper).</flag>
1831 + </use>
1832 +</pkgmetadata>