commit:     968eada1c14455fce0029e184d401e120002a010
Author:     Patrick Lauer <patrick <AT> gentoo <DOT> org>
AuthorDate: Thu Aug 15 17:20:02 2019 +0000
Commit:     罗百科 <patrick <AT> gentoo <DOT> org>
CommitDate: Thu Aug 15 17:20:20 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=968eada1

dev-db/clickhouse: Improve init script, fix dependencies

Package-Manager: Portage-2.3.71, Repoman-2.3.17
Signed-off-by: Patrick Lauer <patrick <AT> gentoo.org>

 dev-db/clickhouse/clickhouse-19.13.1.11-r1.ebuild  | 205 +++++++++++++++++++++
 dev-db/clickhouse/files/clickhouse-server.confd    |   4 +
 dev-db/clickhouse/files/clickhouse-server.initd-r1 |  23 +++
 3 files changed, 232 insertions(+)

diff --git a/dev-db/clickhouse/clickhouse-19.13.1.11-r1.ebuild 
b/dev-db/clickhouse/clickhouse-19.13.1.11-r1.ebuild
new file mode 100644
index 00000000000..a2fbc773fa7
--- /dev/null
+++ b/dev-db/clickhouse/clickhouse-19.13.1.11-r1.ebuild
@@ -0,0 +1,205 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+CMAKE_MAKEFILE_GENERATOR="ninja"
+
+inherit cmake-utils systemd toolchain-funcs user
+
+DESCRIPTION="An OSS column-oriented database management system for real-time 
data analysis"
+HOMEPAGE="https://clickhouse.yandex";
+LICENSE="Apache-2.0"
+
+MY_PN="ClickHouse"
+TYPE="stable"
+
+CCTZ_COMMIT="4f9776a"
+SRC_URI="https://github.com/yandex/${MY_PN}/archive/v${PV}-${TYPE}.zip -> 
${P}.zip
+       https://github.com/google/cctz/archive/${CCTZ_COMMIT}.tar.gz -> 
cctz-${CCTZ_COMMIT}.tar.gz
+"
+
+SLOT="0/${TYPE}"
+IUSE="+client cpu_flags_x86_sse4_2 +server debug doc kafka mongodb mysql 
static test tools"
+KEYWORDS="~amd64"
+
+REQUIRED_USE="
+       server? ( cpu_flags_x86_sse4_2 )
+       static? ( client server tools )
+"
+
+RDEPEND="
+       dev-libs/re2:0=
+       !static? (
+               >=app-arch/lz4-1.8.0:=
+               >=app-arch/zstd-1.3.4:=
+               client? (
+                       sys-libs/ncurses:0=
+                       sys-libs/readline:0=
+               )
+
+               dev-libs/double-conversion
+               dev-libs/capnproto
+               dev-libs/libltdl:0
+               sys-libs/libunwind:7
+               sys-libs/zlib
+               dev-libs/poco[odbc]
+               dev-libs/icu:=
+               dev-libs/glib
+               >=dev-libs/boost-1.65.0:=
+               dev-libs/openssl:0=
+               kafka? ( dev-libs/librdkafka:= )
+               mysql? ( virtual/libmysqlclient )
+       )
+
+       >=dev-libs/poco-1.9.0
+       dev-libs/libpcre
+       dev-libs/jemalloc
+       dev-libs/protobuf
+"
+
+DEPEND="${RDEPEND}
+       doc? ( >=dev-python/mkdocs-1.0.1 )
+       static? (
+               >=app-arch/lz4-1.8.0[static-libs]
+               >=app-arch/zstd-1.3.4[static-libs]
+               client? (
+                       sys-libs/ncurses:0=[static-libs]
+                       sys-libs/readline:0=[static-libs]
+               )
+               dev-libs/double-conversion[static-libs]
+               dev-libs/capnproto[static-libs]
+               dev-libs/libltdl[static-libs]
+               sys-libs/libunwind:7[static-libs]
+               sys-libs/zlib[static-libs]
+               || (
+                       dev-db/unixODBC[static-libs]
+                       dev-libs/poco[odbc]
+               )
+               dev-libs/icu[static-libs]
+               dev-libs/glib[static-libs]
+               >=dev-libs/boost-1.65.0[static-libs]
+               dev-libs/openssl[static-libs]
+               virtual/libmysqlclient[static-libs]
+               kafka? ( dev-libs/librdkafka[static-libs] )
+       )
+       =dev-cpp/gtest-1.8*
+       sys-libs/libtermcap-compat
+       dev-util/patchelf
+       >=sys-devel/lld-6.0.0
+       >=sys-devel/gcc-7.0
+       >=sys-devel/clang-6.0
+"
+
+S="${WORKDIR}/${MY_PN}-${PV}-${TYPE}"
+
+_clang_fullversion() {
+       local ver="$1"; shift
+       set -- $($(tc-getCPP "$@") -E -P - <<<"__clang_major__ __clang_minor__ 
__clang_patchlevel__")
+       eval echo "$ver"
+}
+
+clang-fullversion() {
+       _clang_fullversion '$1.$2.$3' "$@"
+}
+
+clang-version() {
+       _clang_fullversion '$1.$2' "$@"
+}
+
+clang-major-version() {
+       _clang_fullversion '$1' "$@"
+}
+
+clang-minor-version() {
+       _clang_fullversion '$2' "$@"
+}
+
+clang-micro-version() {
+       _clang_fullversion '$3' "$@"
+}
+
+pkg_pretend() {
+       if [[ $(tc-getCC) == clang ]]; then
+               if [[ $(clang-major-version) -lt 6 ]]; then
+                       eerror "Compilation with clang older than 6.0 is not 
supported"
+                       die "Too old clang found"
+               fi
+               :
+       elif [[ $(gcc-major-version) -lt 7 ]] && [[$(gcc-minor-version) -lt 2 
]]; then
+               eerror "Compilation with gcc older than 7.2 is not supported"
+               die "Too old gcc found"
+       fi
+}
+
+src_unpack() {
+       default_src_unpack
+       [[ ${PV} == 9999 ]] && return 0
+       cd "${S}/contrib" || die "failed to cd to contrib"
+       mkdir -p cctz zstd || die "failed to create directories"
+       tar --strip-components=1 -C cctz -xf 
"${DISTDIR}/cctz-${CCTZ_COMMIT}.tar.gz" || die "failed to unpack cctz"
+}
+
+src_prepare() {
+       eapply_user
+       cmake-utils_src_prepare
+}
+src_configure() {
+       local mycmakeargs=(
+               -DENABLE_POCO_MONGODB="$(usex mongodb)"
+               -DENABLE_RDKAFKA="$(usex kafka)"
+               -DENABLE_TESTS="$(usex test)"
+               -DUSE_STATIC_LIBRARIES="$(usex static)"
+               -DMAKE_STATIC_LIBRARIES="$(usex static)"
+               -DUSE_MYSQL="$(usex mysql)"
+               -DENABLE_CLICKHOUSE_SERVER="$(usex server)"
+               -DENABLE_CLICKHOUSE_CLIENT="$(usex client)"
+               -DENABLE_CLICKHOUSE_LOCAL="$(usex tools)"
+               -DENABLE_CLICKHOUSE_BENCHMARK="$(usex tools)"
+               -DENABLE_CLICKHOUSE_PERFORMANCE="$(usex tools)"
+               -DENABLE_CLICKHOUSE_EXTRACT_FROM_CONFIG="$(usex tools)"
+               -DENABLE_CLICKHOUSE_COMPRESSOR="$(usex tools)"
+               -DENABLE_CLICKHOUSE_COPIER="$(usex tools)"
+               # As of now, clickhouse fails to build if odbc is disabled
+               -DENABLE_ODBC=True
+               -DENABLE_CLICKHOUSE_ODBC_BRIDGE=True
+               -DENABLE_CLICKHOUSE_ALL=OFF
+               -DUSE_INTERNAL_SSL_LIBRARY=False
+               -DUSE_INTERNAL_CITYHASH_LIBRARY=ON # Clickhouse explicitly 
requires bundled patched cityhash
+               -DUNBUNDLED=ON
+       )
+
+       cmake-utils_src_configure
+}
+
+src_install() {
+       cmake-utils_src_install
+
+       if ! use test; then
+               rm -rf "${D}/usr/share/clickhouse-test" || die "failed to 
remove tests"
+       fi
+
+       if use doc; then
+               pushd "${S}/docs/tools" || die "Failed to enter docs build 
directory"
+               ./build.py || die "Failed to build docs"
+               popd || die "Failed to exit docs build directory"
+
+               dodoc -r "${S}/docs/build"
+       fi
+
+       if use server; then
+               newinitd "${FILESDIR}"/clickhouse-server.initd-r1 
clickhouse-server
+               newconfd "${FILESDIR}"/clickhouse-server.confd clickhouse-server
+               systemd_dounit "${FILESDIR}"/clickhouse-server.service
+       fi
+
+       keepdir /var/log/clickhouse-server
+       chown clickhouse:clickhouse "${D}"/var/log/clickhouse-server
+}
+
+pkg_preinst() {
+       if use server; then
+               enewgroup clickhouse
+               enewuser clickhouse -1 -1 /var/lib/clickhouse clickhouse
+       fi
+}

diff --git a/dev-db/clickhouse/files/clickhouse-server.confd 
b/dev-db/clickhouse/files/clickhouse-server.confd
new file mode 100644
index 00000000000..0e7344672b4
--- /dev/null
+++ b/dev-db/clickhouse/files/clickhouse-server.confd
@@ -0,0 +1,4 @@
+user="clickhouse"
+group="clickhouse"
+logdir="/var/log/clickhouse-server"
+

diff --git a/dev-db/clickhouse/files/clickhouse-server.initd-r1 
b/dev-db/clickhouse/files/clickhouse-server.initd-r1
new file mode 100644
index 00000000000..efc11f5e54c
--- /dev/null
+++ b/dev-db/clickhouse/files/clickhouse-server.initd-r1
@@ -0,0 +1,23 @@
+#!/sbin/openrc-run
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+user="clickhouse"
+group="clickhouse"
+logdir="/var/log/clickhouse-server"
+pidfile="/run/clickhouse-server.pid"
+command_background=1
+command="/usr/bin/clickhouse-server"
+start_stop_daemon_args="--user ${user} --group ${group} \
+       --chdir /etc/clickhouse-server \
+       -1 ${logdir}/stdout.log \
+       -2 ${logdir}/stderr.log"
+
+depend() {
+       need net
+       after mongodb
+}
+
+start_pre() {
+    checkpath -m 0755 -o "${user}:${group}" -d "${logdir}"
+}

Reply via email to