diff options
author | Vladimir Smirnov <civil@gentoo.org> | 2018-06-15 21:57:59 +0200 |
---|---|---|
committer | Vladimir Smirnov <civil@gentoo.org> | 2018-06-15 21:57:59 +0200 |
commit | c105170169000ba2c94774ad8ca7328588ce1d6c (patch) | |
tree | ea313566724d98947932325c510457862658e760 /dev-db/clickhouse | |
parent | dev-libs/poco: Bump to 1.9.0 (diff) | |
download | gentoo-c105170169000ba2c94774ad8ca7328588ce1d6c.tar.gz gentoo-c105170169000ba2c94774ad8ca7328588ce1d6c.tar.bz2 gentoo-c105170169000ba2c94774ad8ca7328588ce1d6c.zip |
dev-db/clickhouse: initial import
Package-Manager: Portage-2.3.40, Repoman-2.3.9
Diffstat (limited to 'dev-db/clickhouse')
-rw-r--r-- | dev-db/clickhouse/Manifest | 5 | ||||
-rw-r--r-- | dev-db/clickhouse/clickhouse-1.1.54385.ebuild | 196 | ||||
-rw-r--r-- | dev-db/clickhouse/files/clickhouse-concatenate-python3.patch | 38 | ||||
-rw-r--r-- | dev-db/clickhouse/files/clickhouse-server.initd | 17 | ||||
-rw-r--r-- | dev-db/clickhouse/files/clickhouse-server.service | 15 | ||||
-rw-r--r-- | dev-db/clickhouse/metadata.xml | 19 |
6 files changed, 290 insertions, 0 deletions
diff --git a/dev-db/clickhouse/Manifest b/dev-db/clickhouse/Manifest new file mode 100644 index 000000000000..a964c44a4cbc --- /dev/null +++ b/dev-db/clickhouse/Manifest @@ -0,0 +1,5 @@ +DIST cctz-4f9776a.tar.gz 290009 BLAKE2B 532eb7d590f9814c05cc7fdd3c75efe0a6b3f81d85201b14163a9600dd858c4fbac592270d0afccd7d5eef0080d7e70e9d716023bdb60d55479585e2cd3d3f59 SHA512 ba0dfc404cc70f03ef2be29fa3b0c70ea881c92a92525ea4ba1b5bcfc9e45df1b62a5eec180f498293e64bdd5cb9b41f97361cbb7e8baf299dcfdcd1557ca205 +DIST clickhouse-1.1.54385.tar.gz 5833821 BLAKE2B 48441aa28dd03c0b3282fe577849902ba29eded5dc90fe83159fdce3be1f93a6e48e48049e62febc2272f9b7ca1c143c1021900daaae9e5b43eab229418becff SHA512 eb3c02e6a094221374eca70b6cf6020414f31cbb196a521214d3c31b4266f5f251d431460025d9e644c83d61a3aa7ac2c266c9fa14db312ce42aa0cc8fc20d7c +DIST librdkafka-c3d50eb.tar.gz 1869491 BLAKE2B 6b4a1695226d9328033c9cb7db8cd4f80db92b38abce2639db2ebac4511146d0343967d4d6342ed13f13eab07d4b32bc72acd02d5bdec1a5e1da3e2be02e2b2d SHA512 47fd12a2a9c14c986f331abf0df12c782e5f803c2bce86a9eab17977d444230ce4c5e8921e112127b1c51b40fc914e14e20269d65058ecf53991d09997ae172b +DIST lz4-c10863b.tar.gz 223026 BLAKE2B c5cccac2f9e86f8bc7986cc283bfb969445e0edf35f78dbd880f56c191c172c6c314353e66a056acb461cfb657441662e23daa755c6e3071ff4ac328f79ab7a8 SHA512 97c460ceb48ebbf8832459f2315e08e62832a861d055c5fc78848091feb5c25f175d91e364d14633ca66353d9bd64de5161dfbe6bc1aeb526c5cb62ceab9c63c +DIST zstd-2555975.tar.gz 2062067 BLAKE2B cfd4eb221a94b1c6bd4f8950ee6e1511f9b773f61a68ada33781c5fed3f3f664820135b074810721cbdfad524aff6d54c2f017aa6b3ec9efcdf09c29aec90219 SHA512 7320149560095a348f0c98f22ed4a8247c32a2e66ef3098039a4d5520b4cb8893ff799e51fb45716594c5ed609752eee6454faa3ddfbb4cab3a46330544eaa19 diff --git a/dev-db/clickhouse/clickhouse-1.1.54385.ebuild b/dev-db/clickhouse/clickhouse-1.1.54385.ebuild new file mode 100644 index 000000000000..6c6aa9984313 --- /dev/null +++ b/dev-db/clickhouse/clickhouse-1.1.54385.ebuild @@ -0,0 +1,196 @@ +# Copyright 1999-2018 Gentoo Foundation +# 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" +LIBRDKAFKA_COMMIT="c3d50eb" +LZ4_COMMIT="c10863b" +ZSTD_COMMIT="2555975" +SRC_URI="https://github.com/yandex/${MY_PN}/archive/v${PV}-${TYPE}.tar.gz -> ${P}.tar.gz + https://github.com/google/cctz/archive/${CCTZ_COMMIT}.tar.gz -> cctz-${CCTZ_COMMIT}.tar.gz + https://github.com/edenhill/librdkafka/archive/${LIBRDKAFKA_COMMIT}.tar.gz -> librdkafka-${LIBRDKAFKA_COMMIT}.tar.gz + https://github.com/lz4/lz4/archive/${LZ4_COMMIT}.tar.gz -> lz4-${LZ4_COMMIT}.tar.gz + https://github.com/facebook/zstd/archive/${ZSTD_COMMIT}.tar.gz -> zstd-${ZSTD_COMMIT}.tar.gz +" + +SLOT="0/${TYPE}" +IUSE="+client cpu_flags_x86_sse4_2 +server debug doc kafka mongodb mysql static test tools zookeeper" +KEYWORDS="~amd64" + +REQUIRED_USE=" + server? ( cpu_flags_x86_sse4_2 ) + static? ( client server tools ) +" + +RDEPEND=" + client? ( + sys-libs/ncurses:0 + sys-libs/readline:0 + ) + + !static? ( + dev-libs/double-conversion + dev-libs/capnproto + dev-libs/libltdl:0 + sys-libs/zlib + || ( + dev-db/unixODBC + dev-libs/poco[odbc] + ) + dev-libs/icu:= + dev-libs/glib + dev-libs/boost:= + dev-libs/openssl:0= + dev-libs/zookeeper-c + mysql? ( virtual/libmysqlclient ) + ) + + >=dev-libs/poco-1.9.0 + dev-libs/libpcre +" + +DEPEND="${RDEPEND} + doc? ( >=dev-python/mkdocs-0.17.3 ) + static? ( + dev-libs/double-conversion[static-libs] + dev-libs/capnproto[static-libs] + dev-libs/libltdl[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[static-libs] + dev-libs/openssl[static-libs] + dev-libs/zookeeper-c[static-libs] + virtual/libmysqlclient[static-libs] + ) + + sys-libs/libtermcap-compat + dev-util/patchelf + || ( + >=sys-devel/gcc-7.0 + >=sys-devel/clang-6.0 + ) +" + +PATCHES=( ${FILESDIR}/clickhouse-concatenate-python3.patch ) +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 librdkafka lz4 zookeeper zstd || die "failed to create directories" + tar --strip-components=1 -C cctz -xf "${DISTDIR}/cctz-${CCTZ_COMMIT}.tar.gz" || die "failed to unpack cctz" + tar --strip-components=1 -C librdkafka -xf "${DISTDIR}/librdkafka-${LIBRDKAFKA_COMMIT}.tar.gz" || die "failed to unpack librdkafka" + tar --strip-components=1 -C lz4 -xf "${DISTDIR}/lz4-${LZ4_COMMIT}.tar.gz" || die "failed to unpack lz4" + tar --strip-components=1 -C zstd -xf "${DISTDIR}/zstd-${ZSTD_COMMIT}.tar.gz" || die "failed to unpack zstd" +} + +src_configure() { + local mycmakeargs=( + -DENABLE_POCO_MONGODB="$(usex mongodb)" + -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_TOOLS="$(usex tools)" + -DENABLE_CLICKHOUSE_COPIER="$(usex tools)" + -DENABLE_CLICKHOUSE_ALL=OFF + -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 + echo "Entering docs" + pushd "${S}/docs" || die "Failed to enter docs build directory" + pwd + echo "Executing build.sh" + bash -x ./build.sh || die "Failed to build docs" + popd || die "Failed to exit docs build directory" + echo "Installing docs" + + dodoc -r "${S}/docs/build/docs" + fi + + if use server; then + newinitd "${FILESDIR}"/clickhouse-server.initd clickhouse-server + systemd_dounit "${FILESDIR}"/clickhouse-server.service + fi +} + +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-concatenate-python3.patch b/dev-db/clickhouse/files/clickhouse-concatenate-python3.patch new file mode 100644 index 000000000000..155ec758a74c --- /dev/null +++ b/dev-db/clickhouse/files/clickhouse-concatenate-python3.patch @@ -0,0 +1,38 @@ +--- ClickHouse-1.1.54381-stable/docs/concatenate.py.bak 2018-05-20 20:30:45.958356001 +0200 ++++ ClickHouse-1.1.54381-stable/docs/concatenate.py 2018-05-20 20:45:29.442341203 +0200 +@@ -20,12 +20,12 @@ + import os + + if len(sys.argv) < 2: +- print "Usage: concatenate.py language_dir" +- print "Example: concatenate.py ru" ++ print("Usage: concatenate.py language_dir") ++ print("Example: concatenate.py ru") + sys.exit(1) + + if not os.path.exists(sys.argv[1]): +- print "Pass language_dir correctly. For example, 'ru'." ++ print("Pass language_dir correctly. For example, 'ru'.") + sys.exit(2) + + # Configuration +@@ -43,8 +43,8 @@ + path = (l[l.index(':') + 1:]).strip(" '\n") + files_to_concatenate.append(path) + +-print str(len(files_to_concatenate)) + " files will be concatenated into single md-file.\nFiles:" +-print files_to_concatenate ++print(str(len(files_to_concatenate)) + " files will be concatenated into single md-file.\nFiles:") ++print(files_to_concatenate) + + # 2. Concatenate all of the files in the list + +@@ -68,7 +68,7 @@ + if sharp_pos > -1: + return '[' + text + '](' + link[sharp_pos:] + ')' + else: +- print 'ERROR: Link [' + text + '](' + link + ') in file ' + path + ' has no anchor. Please provide it.' ++ print('ERROR: Link [' + text + '](' + link + ') in file ' + path + ' has no anchor. Please provide it.') + # return '['+text+'](#'+link.replace('/','-')+')' + + for l in file: diff --git a/dev-db/clickhouse/files/clickhouse-server.initd b/dev-db/clickhouse/files/clickhouse-server.initd new file mode 100644 index 000000000000..57c91cd2389c --- /dev/null +++ b/dev-db/clickhouse/files/clickhouse-server.initd @@ -0,0 +1,17 @@ +#!/sbin/openrc-run +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +pidfile="/run/clickhouse-server.pid" +command_background=1 +command="/usr/bin/clickhouse-server" +start_stop_daemon_args="--user clickhouse --group clickhouse \ + --chdir /etc/clickhouse-server \ + -1 /var/log/clickhouse-server/stdout.log \ + -2 /var/log/clickhouse-server/stderr.log" + +depend() { + need net + after mongodb +} diff --git a/dev-db/clickhouse/files/clickhouse-server.service b/dev-db/clickhouse/files/clickhouse-server.service new file mode 100644 index 000000000000..64d2cbacf6ec --- /dev/null +++ b/dev-db/clickhouse/files/clickhouse-server.service @@ -0,0 +1,15 @@ +[Unit] +Description=ClickHouse Server (analytic DBMS for big data) + +[Service] +Type=simple +User=clickhouse +Group=clickhouse +Restart=always +RestartSec=30 +ExecStart=/usr/bin/clickhouse-server --config=/etc/clickhouse-server/config.xml +LimitCORE=infinity +LimitNOFILE=500000 + +[Install] +WantedBy=multi-user.target diff --git a/dev-db/clickhouse/metadata.xml b/dev-db/clickhouse/metadata.xml new file mode 100644 index 000000000000..0583e43c96a1 --- /dev/null +++ b/dev-db/clickhouse/metadata.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>civil@gentoo.org</email> + <name>Vladimir Smirnov</name> + </maintainer> + <upstream> + <remote-id type="github">yandex/Clickhouse</remote-id> + </upstream> + <use> + <flag name="client">Build CLI client.</flag> + <flag name="server">Build server.</flag> + <flag name="kafka">Enables support for kafka consumer.</flag> + <flag name="mongodb">Enabled support for MongoDB-based dictionaries</flag> + <flag name="tools">Build various tools, like benchmark, copier, etc.</flag> + <flag name="zookeeper">Enable support for clustering (based on Zookeeper).</flag> + </use> +</pkgmetadata> |