From 6cc1a938684db1dce5708ee3a5486e87fbcf4d24 Mon Sep 17 00:00:00 2001 From: Dmitry Marakasov Date: Wed, 1 Mar 2017 18:30:06 +0000 Subject: ClickHouse is an open-source column-oriented database management system that allows generating analytical data reports in real time. WWW: https://clickhouse.yandex/ PR: 216152 Submitted by: proler@gmail.com --- GIDs | 2 +- UIDs | 2 +- databases/Makefile | 1 + databases/clickhouse/Makefile | 76 ++++++++++++++++++++++++++++++++ databases/clickhouse/distinfo | 3 ++ databases/clickhouse/files/clickhouse.in | 62 ++++++++++++++++++++++++++ databases/clickhouse/pkg-descr | 4 ++ databases/clickhouse/pkg-plist | 14 ++++++ 8 files changed, 162 insertions(+), 2 deletions(-) create mode 100644 databases/clickhouse/Makefile create mode 100644 databases/clickhouse/distinfo create mode 100644 databases/clickhouse/files/clickhouse.in create mode 100644 databases/clickhouse/pkg-descr create mode 100644 databases/clickhouse/pkg-plist diff --git a/GIDs b/GIDs index 136e44173090..c1c7ca5c18ca 100644 --- a/GIDs +++ b/GIDs @@ -741,7 +741,7 @@ zetacoin:*:780: # free: 797 # free: 798 # free: 799 -# free: 800 +clickhouse:*:800: # free: 801 # free: 802 # free: 803 diff --git a/UIDs b/UIDs index 29618987caaa..03734fd842b1 100644 --- a/UIDs +++ b/UIDs @@ -746,7 +746,7 @@ zetacoin:*:780:780::0:0:ZetaCoin Daemon:/nonexistent:/usr/sbin/nologin # free: 797 # free: 798 # free: 799 -# free: 800 +clickhouse:*:800:800::0:0:ClickHouse Daemon:/var/db/clickhouse:/usr/sbin/nologin # free: 801 # free: 802 # free: 803 diff --git a/databases/Makefile b/databases/Makefile index 135031430631..eb4d918b43c7 100644 --- a/databases/Makefile +++ b/databases/Makefile @@ -33,6 +33,7 @@ SUBDIR += cdb SUBDIR += cego SUBDIR += cegobridge + SUBDIR += clickhouse SUBDIR += couchdb SUBDIR += courier-authlib-mysql SUBDIR += courier-authlib-pgsql diff --git a/databases/clickhouse/Makefile b/databases/clickhouse/Makefile new file mode 100644 index 000000000000..777097c18595 --- /dev/null +++ b/databases/clickhouse/Makefile @@ -0,0 +1,76 @@ +# Created by: proler@gmail.com +# $FreeBSD$ + +PORTNAME= clickhouse +PORTVERSION= 1.1.54165 +DISTVERSIONPREFIX= v +DISTVERSIONSUFFIX= -stable +CATEGORIES= databases + +MAINTAINER= proler@gmail.com +COMMENT= ClickHouse is an column-oriented database management system + +LICENSE= APACHE20 + +BUILD_DEPENDS= bash:shells/bash +LIB_DEPENDS= libsqlite3.so:databases/sqlite3 \ + libtcmalloc.so:devel/google-perftools \ + libodbc.so:databases/unixODBC \ + libltdl.so:devel/libltdl \ + libicudata.so:devel/icu \ + libboost_program_options.so:devel/boost-libs + +USE_GITHUB= yes +GH_ACCOUNT= yandex +GH_PROJECT= ClickHouse + +ONLY_FOR_ARCHS= amd64 +ONLY_FOR_ARCHS_REASON= "Only supported on amd64" + +USES= compiler:c++14-lang cmake iconv mysql ssl readline +USE_LDCONFIG= yes +CMAKE_ARGS= -DUSE_INTERNAL_GPERFTOOLS_LIBRARY=0 \ + -DUSE_INTERNAL_BOOST_LIBRARY=0 \ + -DUSE_INTERNAL_ZLIB_LIBRARY=0 \ + -DUSE_STATIC_LIBRARIES=0 \ + -DNO_WERROR=1 + +USE_RC_SUBR= ${PORTNAME} +USERS= clickhouse +GROUPS= clickhouse + +#temporary! use PORTVERSION after version match +SOVERSION= 1.1.54164 +PLIST_SUB= SOVERSION=${SOVERSION} + +.include + +.if ${OPSYS} == FreeBSD && ${OSVERSION} < 1100000 +BUILD_DEPENDS+= clang38:devel/llvm38 +CC= clang38 +CXX= clang++38 +.endif + +post-patch: + @${REINPLACE_CMD} -e 's|/var/lib/clickhouse|/var/db/clickhouse|' ${WRKSRC}/dbms/src/Server/config.xml + +post-install: + @${RM} ${STAGEDIR}${PREFIX}/bin/clickhouse-compressor + @${RM} ${STAGEDIR}${PREFIX}/bin/config-processor + @${RM} ${STAGEDIR}${PREFIX}/bin/corrector_utf8 + @${RM} ${STAGEDIR}${PREFIX}/lib/cmake/Poco/PocoConfig.cmake + @${RMDIR} ${STAGEDIR}${PREFIX}/lib/cmake/Poco + @${RMDIR} ${STAGEDIR}${PREFIX}/lib/cmake + + ${INSTALL_DATA} ${WRKSRC}/dbms/src/Client/config.xml \ + ${STAGEDIR}${PREFIX}/etc/clickhouse-client/config.xml.sample + ${INSTALL_DATA} ${WRKSRC}/dbms/src/Server/config.xml \ + ${STAGEDIR}${PREFIX}/etc/clickhouse-server/config.xml.sample + ${INSTALL_DATA} ${WRKSRC}/dbms/src/Server/users.xml \ + ${STAGEDIR}${PREFIX}/etc/clickhouse-server/users.xml.sample + + @${MKDIR} ${STAGEDIR}/var/db/clickhouse + @${MKDIR} ${STAGEDIR}/var/log/clickhouse + @${MKDIR} ${STAGEDIR}/var/run/clickhouse + +.include diff --git a/databases/clickhouse/distinfo b/databases/clickhouse/distinfo new file mode 100644 index 000000000000..c23e74a08c1d --- /dev/null +++ b/databases/clickhouse/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1488372403 +SHA256 (yandex-ClickHouse-v1.1.54165-stable_GH0.tar.gz) = 192dc82094e3350a5030a68a39ed08b484d48d05514ed6d6c16647f21520aeb5 +SIZE (yandex-ClickHouse-v1.1.54165-stable_GH0.tar.gz) = 13510381 diff --git a/databases/clickhouse/files/clickhouse.in b/databases/clickhouse/files/clickhouse.in new file mode 100644 index 000000000000..7fa89c7129d5 --- /dev/null +++ b/databases/clickhouse/files/clickhouse.in @@ -0,0 +1,62 @@ +#!/bin/sh + +# $FreeBSD$ +# +# PROVIDE: clickhouse +# REQUIRE: LOGIN +# KEYWORD: shutdown +# +# Add the following line to /etc/rc.conf[.local] to enable clickhouse server +# +# clickhouse_enable (bool): Set to "NO" by default +# Set it to "YES" to enable clickhouse server +# clickhouse_limits (bool): Set to "NO" by default. +# Set it to yes to run `limits -e -U clickhouse` +# just before clickhouse starts. +# clickhouse_config (str): Path to config file (required). +# (default: %%PREFIX%%/etc/clickhouse-server/config.xml) +# clickhouse_rundir (str): Path to directory holding a pidfile. +# (default: /var/run/clickhouse) +# clickhouse_user (str): User to run as +# (default: clickhouse) +# clickhouse_group (str): Group to run as +# (default: clickhouse) +# clickhouse_logdir (str): Path to log directory +# (default: /var/log/clickhouse) +# clickhouse_dbdir (str): Path to world database directory +# (default: /var/db/clickhouse) + +. /etc/rc.subr + +name=clickhouse +rcvar=clickhouse_enable + +load_rc_config ${name} + +: ${clickhouse_enable="NO"} +: ${clickhouse_limits="NO"} +: ${clickhouse_config="%%PREFIX%%/etc/clickhouse-server/config.xml"} +: ${clickhouse_rundir="/var/run/clickhouse"} +: ${clickhouse_user="clickhouse"} +: ${clickhouse_group="clickhouse"} +: ${clickhouse_logdir="/var/log/clickhouse"} +: ${clickhouse_dbdir="/var/db/clickhouse"} +: ${clickhouse_flags=""} +: ${clickhouse_args="--server --config-file ${clickhouse_config} ${clickhouse_flags}"} + +command=/usr/sbin/daemon +procname=/usr/local/bin/clickhouse +pidfile=${clickhouse_rundir}/clickhouse.pid +command_args="-c -f -p ${pidfile} ${procname} ${clickhouse_args}" +required_files=${clickhouse_config} +start_precmd=clickhouse_prestart + +clickhouse_prestart () { + if checkyesno clickhouse_limits; then + eval `/usr/bin/limits -e -U ${clickhouse_user}` 2>/dev/null + else + return 0 + fi +} + +run_rc_command "$1" diff --git a/databases/clickhouse/pkg-descr b/databases/clickhouse/pkg-descr new file mode 100644 index 000000000000..2e877073c2e2 --- /dev/null +++ b/databases/clickhouse/pkg-descr @@ -0,0 +1,4 @@ +ClickHouse is an open-source column-oriented database management +system that allows generating analytical data reports in real time. + +WWW: https://clickhouse.yandex/ diff --git a/databases/clickhouse/pkg-plist b/databases/clickhouse/pkg-plist new file mode 100644 index 000000000000..77ed067c76eb --- /dev/null +++ b/databases/clickhouse/pkg-plist @@ -0,0 +1,14 @@ +bin/clickhouse +bin/clickhouse-benchmark +bin/clickhouse-client +bin/clickhouse-local +bin/clickhouse-server +@sample etc/clickhouse-client/config.xml.sample +@sample etc/clickhouse-server/config.xml.sample +@sample etc/clickhouse-server/users.xml.sample +lib/libclickhouse.so +lib/libclickhouse.so.1 +lib/libclickhouse.so.%%SOVERSION%% +@dir(clickhouse,clickhouse,700) /var/db/clickhouse +@dir(clickhouse,clickhouse) /var/log/clickhouse +@dir(clickhouse,clickhouse) /var/run/clickhouse -- cgit v1.2.3