Gentoo Archives: gentoo-commits

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