Gentoo Archives: gentoo-commits

From: Vladimir Smirnov <civil@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-db/clickhouse/
Date: Sun, 23 Sep 2018 14:08:37
Message-Id: 1537711705.b33e5526ee0b061a0d66e3ded531bba8b03fa262.civil@gentoo
1 commit: b33e5526ee0b061a0d66e3ded531bba8b03fa262
2 Author: Vladimir Smirnov <civil <AT> gentoo <DOT> org>
3 AuthorDate: Sun Sep 23 14:07:12 2018 +0000
4 Commit: Vladimir Smirnov <civil <AT> gentoo <DOT> org>
5 CommitDate: Sun Sep 23 14:08:25 2018 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b33e5526
7
8 dev-db/clickhouse: version bump to 18.12.17
9
10 Package-Manager: Portage-2.3.49, Repoman-2.3.10
11
12 dev-db/clickhouse/Manifest | 1 +
13 dev-db/clickhouse/clickhouse-18.12.17.ebuild | 200 +++++++++++++++++++++++++++
14 2 files changed, 201 insertions(+)
15
16 diff --git a/dev-db/clickhouse/Manifest b/dev-db/clickhouse/Manifest
17 index ec4cb8144ab..88d7b942244 100644
18 --- a/dev-db/clickhouse/Manifest
19 +++ b/dev-db/clickhouse/Manifest
20 @@ -1,3 +1,4 @@
21 DIST cctz-4f9776a.tar.gz 290009 BLAKE2B 532eb7d590f9814c05cc7fdd3c75efe0a6b3f81d85201b14163a9600dd858c4fbac592270d0afccd7d5eef0080d7e70e9d716023bdb60d55479585e2cd3d3f59 SHA512 ba0dfc404cc70f03ef2be29fa3b0c70ea881c92a92525ea4ba1b5bcfc9e45df1b62a5eec180f498293e64bdd5cb9b41f97361cbb7e8baf299dcfdcd1557ca205
22 DIST clickhouse-18.10.3.tar.gz 6136661 BLAKE2B 5564bbe85f4ca43f18df702148af0e4e5b5a8826994d90f29beb3a37cdbeb36f9d3ec77d9c7bc6f843e7586e5441aeb0937548eb5eb61d27cecc5790d8c21a5b SHA512 c78386922388cf910a995b569724eb22fc41ab60e765a4d3644c4a48d8b9a67ef28b7e375186b2eb00c43b4f06e90783084f4ac4d3789f1b6e4251ee30e8833c
23 +DIST clickhouse-18.12.17.tar.gz 6495521 BLAKE2B 00dfb823b9e36923beb50a88bee88af3918bedc7b20079785699a42e36e52f32739f786bd78c5b350f58ae59251e3846da6202d04e24e9a750c92e16065cc395 SHA512 876c5fb6011c65b8ec201126678dad6f5de3430b7d320316ced5c6d22e8086ce337d20b73badbd053bf141097b8fe6cd94910ed607b4bbedb681cfa7921d1fb6
24 DIST clickhouse-18.6.0.tar.gz 5852534 BLAKE2B 5634fd26907b21d4a35cff3ed816696205be4aff1cdd1acfe222e24214b1842eb18a4e499e888b0d92b78f5c3023c2962a385af2c0ea889055e473dfa0198bf5 SHA512 e8ea2d4457122513cad47b1cdb2a58dd2ffaec77a7a08bf82179aca12a369d39970520a995bb5db2e5ea4b0939da827b7d4b1f3929cf71c149c965438ebb3633
25
26 diff --git a/dev-db/clickhouse/clickhouse-18.12.17.ebuild b/dev-db/clickhouse/clickhouse-18.12.17.ebuild
27 new file mode 100644
28 index 00000000000..40f986b3e90
29 --- /dev/null
30 +++ b/dev-db/clickhouse/clickhouse-18.12.17.ebuild
31 @@ -0,0 +1,200 @@
32 +# Copyright 1999-2018 Gentoo Foundation
33 +# Distributed under the terms of the GNU General Public License v2
34 +
35 +EAPI=6
36 +
37 +CMAKE_MAKEFILE_GENERATOR="ninja"
38 +
39 +inherit cmake-utils systemd toolchain-funcs user
40 +
41 +DESCRIPTION="An OSS column-oriented database management system for real-time data analysis"
42 +HOMEPAGE="https://clickhouse.yandex"
43 +LICENSE="Apache-2.0"
44 +
45 +MY_PN="ClickHouse"
46 +TYPE="stable"
47 +
48 +CCTZ_COMMIT="4f9776a"
49 +SRC_URI="https://github.com/yandex/${MY_PN}/archive/v${PV}-${TYPE}.tar.gz -> ${P}.tar.gz
50 + https://github.com/google/cctz/archive/${CCTZ_COMMIT}.tar.gz -> cctz-${CCTZ_COMMIT}.tar.gz
51 +"
52 +
53 +SLOT="0/${TYPE}"
54 +IUSE="+client cpu_flags_x86_sse4_2 +server debug doc kafka mongodb mysql static test tools"
55 +KEYWORDS="~amd64"
56 +
57 +REQUIRED_USE="
58 + server? ( cpu_flags_x86_sse4_2 )
59 + static? ( client server tools )
60 +"
61 +
62 +RDEPEND="
63 + dev-libs/re2:0=
64 + !static? (
65 + >=app-arch/lz4-1.8.0:=
66 + >=app-arch/zstd-1.3.4:=
67 + client? (
68 + sys-libs/ncurses:0=
69 + sys-libs/readline:0=
70 + )
71 +
72 + dev-libs/double-conversion
73 + dev-libs/capnproto
74 + dev-libs/libltdl:0
75 + sys-libs/libunwind:7
76 + sys-libs/zlib
77 + || (
78 + dev-db/unixODBC
79 + dev-libs/poco[odbc]
80 + )
81 + dev-libs/icu:=
82 + dev-libs/glib
83 + >=dev-libs/boost-1.65.0:=
84 + dev-libs/openssl:0=
85 + kafka? ( dev-libs/librdkafka:= )
86 + mysql? ( virtual/libmysqlclient )
87 + )
88 +
89 + >=dev-libs/poco-1.9.0
90 + dev-libs/libpcre
91 +"
92 +
93 +DEPEND="${RDEPEND}
94 + doc? ( >=dev-python/mkdocs-1.0.1 )
95 + static? (
96 + >=app-arch/lz4-1.8.0[static-libs]
97 + >=app-arch/zstd-1.3.4[static-libs]
98 + client? (
99 + sys-libs/ncurses:0=[static-libs]
100 + sys-libs/readline:0=[static-libs]
101 + )
102 + dev-libs/double-conversion[static-libs]
103 + dev-libs/capnproto[static-libs]
104 + dev-libs/libltdl[static-libs]
105 + sys-libs/libunwind:7[static-libs]
106 + sys-libs/zlib[static-libs]
107 + || (
108 + dev-db/unixODBC[static-libs]
109 + dev-libs/poco[odbc]
110 + )
111 + dev-libs/icu[static-libs]
112 + dev-libs/glib[static-libs]
113 + >=dev-libs/boost-1.65.0[static-libs]
114 + dev-libs/openssl[static-libs]
115 + virtual/libmysqlclient[static-libs]
116 + kafka? ( dev-libs/librdkafka[static-libs] )
117 + )
118 +
119 + sys-libs/libtermcap-compat
120 + dev-util/patchelf
121 + >=sys-devel/lld-6.0.0
122 + || (
123 + >=sys-devel/gcc-7.0
124 + >=sys-devel/clang-6.0
125 + )
126 +"
127 +
128 +S="${WORKDIR}/${MY_PN}-${PV}-${TYPE}"
129 +
130 +_clang_fullversion() {
131 + local ver="$1"; shift
132 + set -- $($(tc-getCPP "$@") -E -P - <<<"__clang_major__ __clang_minor__ __clang_patchlevel__")
133 + eval echo "$ver"
134 +}
135 +
136 +clang-fullversion() {
137 + _clang_fullversion '$1.$2.$3' "$@"
138 +}
139 +
140 +clang-version() {
141 + _clang_fullversion '$1.$2' "$@"
142 +}
143 +
144 +clang-major-version() {
145 + _clang_fullversion '$1' "$@"
146 +}
147 +
148 +clang-minor-version() {
149 + _clang_fullversion '$2' "$@"
150 +}
151 +
152 +clang-micro-version() {
153 + _clang_fullversion '$3' "$@"
154 +}
155 +
156 +pkg_pretend() {
157 + if [[ $(tc-getCC) == clang ]]; then
158 + if [[ $(clang-major-version) -lt 6 ]]; then
159 + eerror "Compilation with clang older than 6.0 is not supported"
160 + die "Too old clang found"
161 + fi
162 + :
163 + elif [[ $(gcc-major-version) -lt 7 ]] && [[$(gcc-minor-version) -lt 2 ]]; then
164 + eerror "Compilation with gcc older than 7.2 is not supported"
165 + die "Too old gcc found"
166 + fi
167 +}
168 +
169 +src_unpack() {
170 + default_src_unpack
171 + [[ ${PV} == 9999 ]] && return 0
172 + cd "${S}/contrib" || die "failed to cd to contrib"
173 + mkdir -p cctz zstd || die "failed to create directories"
174 + tar --strip-components=1 -C cctz -xf "${DISTDIR}/cctz-${CCTZ_COMMIT}.tar.gz" || die "failed to unpack cctz"
175 +}
176 +
177 +src_configure() {
178 + local mycmakeargs=(
179 + -DENABLE_POCO_MONGODB="$(usex mongodb)"
180 + -DENABLE_RDKAFKA="$(usex kafka)"
181 + -DENABLE_TESTS="$(usex test)"
182 + -DUSE_STATIC_LIBRARIES="$(usex static)"
183 + -DMAKE_STATIC_LIBRARIES="$(usex static)"
184 + -DUSE_MYSQL="$(usex mysql)"
185 + -DENABLE_CLICKHOUSE_SERVER="$(usex server)"
186 + -DENABLE_CLICKHOUSE_CLIENT="$(usex client)"
187 + -DENABLE_CLICKHOUSE_LOCAL="$(usex tools)"
188 + -DENABLE_CLICKHOUSE_BENCHMARK="$(usex tools)"
189 + -DENABLE_CLICKHOUSE_PERFORMANCE="$(usex tools)"
190 + -DENABLE_CLICKHOUSE_EXTRACT_FROM_CONFIG="$(usex tools)"
191 + -DENABLE_CLICKHOUSE_COMPRESSOR="$(usex tools)"
192 + -DENABLE_CLICKHOUSE_COPIER="$(usex tools)"
193 + # As of now, clickhouse fails to build if odbc is disabled
194 + -DENABLE_ODBC=True
195 + -DENABLE_CLICKHOUSE_ODBC_BRIDGE=True
196 + -DENABLE_CLICKHOUSE_ALL=OFF
197 + -DUSE_INTERNAL_SSL_LIBRARY=False
198 + -DUSE_INTERNAL_CITYHASH_LIBRARY=ON # Clickhouse explicitly requires bundled patched cityhash
199 + -DUNBUNDLED=ON
200 + )
201 +
202 + cmake-utils_src_configure
203 +}
204 +
205 +src_install() {
206 + cmake-utils_src_install
207 +
208 + if ! use test; then
209 + rm -rf "${D}/usr/share/clickhouse-test" || die "failed to remove tests"
210 + fi
211 +
212 + if use doc; then
213 + pushd "${S}/docs/tools" || die "Failed to enter docs build directory"
214 + ./build.py || die "Failed to build docs"
215 + popd || die "Failed to exit docs build directory"
216 +
217 + dodoc -r "${S}/docs/build"
218 + fi
219 +
220 + if use server; then
221 + newinitd "${FILESDIR}"/clickhouse-server.initd clickhouse-server
222 + systemd_dounit "${FILESDIR}"/clickhouse-server.service
223 + fi
224 +}
225 +
226 +pkg_preinst() {
227 + if use server; then
228 + enewgroup clickhouse
229 + enewuser clickhouse -1 -1 /var/lib/clickhouse clickhouse
230 + fi
231 +}