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