freebsd-ports/databases/clickhouse/Makefile
Muhammad Moinur Rahman ea12db8c2a databases/clickhouse: Fix build with llvm15
Approved by:	portmgr (blanket)
2023-06-10 19:14:07 +02:00

280 lines
14 KiB
Makefile

PORTNAME= clickhouse
PORTVERSION= 22.1.3.7
DISTVERSIONPREFIX= v
DISTVERSIONSUFFIX=-stable
CATEGORIES= databases
MAINTAINER= ports@FreeBSD.org
COMMENT= Fast open-source OLAP database management system
WWW= https://clickhouse.tech/
LICENSE= APACHE20
ONLY_FOR_ARCHS= aarch64 amd64
ONLY_FOR_ARCHS_REASON= only supported on aarch64 and amd64
BUILD_DEPENDS= bash:shells/bash
RUN_DEPENDS= bash:shells/bash
USES= cmake cpe localbase perl5 python shebangfix
USE_PERL5= build
CPE_VENDOR= yandex
USE_GITHUB= yes
GH_ACCOUNT= yandex
GH_PROJECT= ClickHouse
GH_TUPLE= \
ClickHouse-Extras:AMQP-CPP:1a6c51f:ClickHouse_Extras_AMQP_CPP/contrib/AMQP-CPP \
ClickHouse-Extras:NuRaft:c2043aa:ClickHouse_Extras_NuRaft/contrib/NuRaft \
ClickHouse-Extras:abseil-cpp:2151058:ClickHouse_Extras_abseil_cpp/contrib/abseil-cpp \
ClickHouse-Extras:arrow:1d9cc51:ClickHouse_Extras_arrow/contrib/arrow \
ClickHouse-Extras:avro:e43c46e:ClickHouse_Extras_avro/contrib/avro \
ClickHouse-Extras:aws-sdk-cpp:00b0360:ClickHouse_Extras_aws_sdk_cpp/contrib/aws \
ClickHouse-Extras:aws-c-common:736a82d:ClickHouse_Extras_aws_c_common/contrib/aws-c-common \
ClickHouse-Extras:aws-c-event-stream:3bc3366:ClickHouse_Extras_aws_c_event_stream/contrib/aws-c-event-stream \
ClickHouse-Extras:aws-checksums:519d6d9:ClickHouse_Extras_aws_checksums/contrib/aws-checksums \
ClickHouse-Extras:azure-sdk-for-cpp:ac4b763:ClickHouse_Extras_azure_sdk_for_cpp/contrib/azure \
ClickHouse-Extras:Turbo-Base64:9499e0c:ClickHouse_Extras_Turbo_Base64/contrib/base64 \
ClickHouse-Extras:boost:c0807e8:ClickHouse_Extras_boost/contrib/boost \
ClickHouse-Extras:boringssl:c1e01a4:ClickHouse_Extras_boringssl/contrib/boringssl \
google:brotli:63be8a9:google_brotli/contrib/brotli \
ClickHouse-Extras:bzip2:bf905ea:ClickHouse_Extras_bzip2/contrib/bzip2 \
capnproto:capnproto:c8189ec:capnproto_capnproto/contrib/capnproto \
ClickHouse-Extras:cpp-driver:f4a31e9:ClickHouse_Extras_cpp_driver/contrib/cassandra \
ClickHouse-Extras:cctz:9edd086:ClickHouse_Extras_cctz/contrib/cctz \
mfontanini:cppkafka:5a119f6:mfontanini_cppkafka/contrib/cppkafka \
RoaringBitmap:CRoaring:2c867e9:RoaringBitmap_CRoaring/contrib/croaring \
curl:curl:3b8bbbb:curl_curl/contrib/curl \
ClickHouse-Extras:cyrus-sasl:e6466ed:ClickHouse_Extras_cyrus_sasl/contrib/cyrus-sasl \
apache:datasketches-cpp:7d73d76:apache_datasketches/contrib/datasketches-cpp \
google:double-conversion:cf2f0f3:google_double_conversion/contrib/double-conversion \
ClickHouse-Extras:dragonbox:923705a:ClickHouse_Extras_dragonbox/contrib/dragonbox \
fastfloat:fast_float:7eae925:fastfloat_fast_float/contrib/fast_float \
ClickHouse-Extras:fastops:1460583:ClickHouse_Extras_fastops/contrib/fastops \
google:flatbuffers:eb3f827:google_flatbuffers/contrib/flatbuffers \
fmtlib:fmt:c108ee1:fmtlib_fmt/contrib/fmtlib \
google:googletest:e7e5917:google_googletest/contrib/googletest \
ClickHouse-Extras:grpc:7eac189:ClickHouse_Extras_grpc/contrib/grpc \
ClickHouse-Extras:h3:c7f46cf:ClickHouse_Extras_h3/contrib/h3 \
ClickHouse-Extras:hive-metastore:809a77d:ClickHouse_Extras_hive_metastore/contrib/hive-metastore \
ClickHouse-Extras:hyperscan:e9f08df:ClickHouse_Extras_hyperscan/contrib/hyperscan \
unicode-org:icu:faa2f9f:unicode_org_icu/contrib/icu \
ClickHouse-Extras:icudata:f020820:ClickHouse_Extras_icudata/contrib/icudata \
ClickHouse-Extras:jemalloc:a140480:ClickHouse_Extras_jemalloc/contrib/jemalloc \
ClickHouse-Extras:krb5:5149dea:ClickHouse_Extras_krb5/contrib/krb5 \
ClickHouse-Extras:lemmagen-c:59537bd:ClickHouse_Extras_lemmagen_c/contrib/lemmagen-c \
ClickHouse-Extras:libcpuid:8db3b8d:ClickHouse_Extras_libcpuid/contrib/libcpuid \
ClickHouse-Extras:libcxx:61e6029:ClickHouse_Extras_libcxx/contrib/libcxx \
ClickHouse-Extras:libcxxabi:df8f1e7:ClickHouse_Extras_libcxxabi/contrib/libcxxabi \
ClickHouse-Extras:libgsasl:383ee28:ClickHouse_Extras_libgsasl/contrib/libgsasl \
ClickHouse-Extras:libhdfs3:9194af4:ClickHouse_Extras_libhdfs3/contrib/libhdfs3 \
ClickHouse-Extras:libpq:e071ea5:ClickHouse_Extras_libpq/contrib/libpq \
jtv:libpqxx:63e20f9:jtv_libpqxx/contrib/libpqxx \
google:libprotobuf-mutator:ffd86a3:google_libprotobuf_mutator/contrib/libprotobuf-mutator \
ClickHouse-Extras:librdkafka:b8554f1:ClickHouse_Extras_librdkafka/contrib/librdkafka \
ClickHouse-Extras:libstemmer_c:c753054:ClickHouse_Extras_libstemmer_c/contrib/libstemmer_c \
ClickHouse-Extras:libunwind:c4ea984:ClickHouse_Extras_libunwind/contrib/libunwind \
ClickHouse-Extras:libuv:95081e7:ClickHouse_Extras_libuv/contrib/libuv \
GNOME:libxml2:18890f4:GNOME_libxml2/contrib/libxml2 \
ClickHouse-Extras:llvm:20607e6:ClickHouse_Extras_llvm/contrib/llvm \
lz4:lz4:f39b79f:lz4_lz4/contrib/lz4 \
Neargye:magic_enum:38f86e4:Neargye_magic_enum/contrib/magic_enum \
ClickHouse-Extras:mariadb-connector-c:5f4034a:ClickHouse_Extras_mariadb_connector_c/contrib/mariadb-connector-c \
danlark1:miniselect:be0af6b:danlark1_miniselect/contrib/miniselect \
msgpack:msgpack-c:4668426:msgpack_msgpack_c/contrib/msgpack-c \
nanodbc:nanodbc:df52a12:contrib/nanodbc \
ClickHouse-Extras:openldap:0208811:ClickHouse_Extras_openldap/contrib/openldap \
ClickHouse-Extras:orc:0a936f6:ClickHouse_Extras/contrib/orc \
ClickHouse-Extras:poco:520a90e:ClickHouse_Extras_poco/contrib/poco \
ClickHouse-Extras:protobuf:6bb7019:ClickHouse_Extras_protobuf/contrib/protobuf \
ClickHouse-Extras:rapidjson:c4ef90c:ClickHouse_Extras_rapidjson/contrib/rapidjson \
google:re2:13ebb37:google_re2/contrib/re2 \
ClickHouse-Extras:replxx:f019cba:ClickHouse_Extras_replxx/contrib/replxx \
ClickHouse-Extras:rocksdb:e7c2b2f:ClickHouse_Extras_rocksdb/contrib/rocksdb \
ClickHouse-Extras:s2geometry:471fe9d:ClickHouse_Extras_s2geometry/contrib/s2geometry \
ClickHouse-Extras:sentry-native:f431047:ClickHouse_Extras_sentry_native/contrib/sentry-native \
ClickHouse-Extras:simdjson:8df32ce:ClickHouse_Extras_simdjson/contrib/simdjson \
ClickHouse-Extras:snappy:fb057ed:ClickHouse_Extras_snappy/contrib/snappy \
sparsehash:sparsehash-c11:cf0bffa:sparsehash_sparsehash_c11/contrib/sparsehash-c11 \
azadkuh:sqlite-amalgamation:9818baa:azadkuh_sqlite_amalgamation/contrib/sqlite-amalgamation \
ClickHouse-Extras:sysroot:bbcac83:ClickHouse_Extras_sysroot/contrib/sysroot \
apache:thrift:010ccf0:apache_thrift/contrib/thrift \
ClickHouse-Extras:UnixODBC:b0ad30f:ClickHouse_Extras_UnixODBC/contrib/unixodbc \
ClickHouse-Extras:wordnet-blast:1d16ac2:ClickHouse_Extras_wordnet_blast/contrib/wordnet-blast \
xz-mirror:xz:869b9d1:xz_mirror_xz/contrib/xz \
ClickHouse-Extras:yaml-cpp:0c86ada:ClickHouse_Extras_yaml_cpp/contrib/yaml-cpp \
ClickHouse-Extras:zlib-ng:bffad6f:ClickHouse_Extras_zlib_ng/contrib/zlib-ng \
facebook:zstd:a488ba1:facebook_zstd/contrib/zstd
USE_RC_SUBR= ${PORTNAME}
SHEBANG_FILES= src/Storages/System/StorageSystemLicenses.sh \
tests/clickhouse-test tests/config/install.sh \
tests/queries/0_stateless/00960_live_view_watch_events_live.py \
tests/queries/0_stateless/00962_live_view_periodic_refresh.py \
tests/queries/0_stateless/00962_live_view_periodic_refresh_and_timeout.py \
tests/queries/0_stateless/00962_live_view_periodic_refresh_dictionary.py \
tests/queries/0_stateless/00962_temporary_live_view_watch_live.py \
tests/queries/0_stateless/00963_temporary_live_view_watch_live_timeout.py.disabled \
tests/queries/0_stateless/00964_live_view_watch_events_heartbeat.py \
tests/queries/0_stateless/00965_live_view_watch_heartbeat.py \
tests/queries/0_stateless/00966_live_view_watch_events_http.py \
tests/queries/0_stateless/00967_live_view_watch_http.py \
tests/queries/0_stateless/00970_live_view_watch_events_http_heartbeat.py \
tests/queries/0_stateless/00971_live_view_watch_http_heartbeat.py \
tests/queries/0_stateless/00979_live_view_watch_continuous_aggregates.py \
tests/queries/0_stateless/00979_live_view_watch_live.py \
tests/queries/0_stateless/00979_live_view_watch_live_moving_avg.py.disabled \
tests/queries/0_stateless/00979_live_view_watch_live_with_subquery.py \
tests/queries/0_stateless/00991_live_view_watch_http.python \
tests/queries/0_stateless/01176_mysql_client_interactive.expect \
tests/queries/0_stateless/01179_insert_values_semicolon.expect \
tests/queries/0_stateless/01180_client_syntax_errors.expect \
tests/queries/0_stateless/01246_insert_into_watch_live_view.py \
tests/queries/0_stateless/01293_client_interactive_vertical_multiline.expect \
tests/queries/0_stateless/01293_client_interactive_vertical_singleline.expect \
tests/queries/0_stateless/01300_client_save_history_when_terminated_long.expect \
tests/queries/0_stateless/01370_client_autocomplete_word_break_characters.expect \
tests/queries/0_stateless/01520_client_print_query_id.expect \
tests/queries/0_stateless/01526_client_start_and_exit.expect-not-a-test-case \
tests/queries/0_stateless/01565_reconnect_after_client_error.expect \
tests/queries/0_stateless/01599_multiline_input_and_singleline_comments.sh \
tests/queries/0_stateless/01610_client_spawn_editor.sh \
tests/queries/0_stateless/helpers/00900_parquet_create_table_columns.py \
tests/queries/0_stateless/helpers/client.py \
tests/queries/0_stateless/helpers/httpclient.py \
tests/queries/0_stateless/helpers/httpexpect.py \
tests/queries/0_stateless/helpers/protobuf_length_delimited_encoder.py \
tests/queries/0_stateless/helpers/pure_http_client.py \
tests/queries/0_stateless/helpers/shell.py \
tests/queries/0_stateless/helpers/uexpect.py \
tests/queries/0_stateless/01910_client_replxx_container_overflow_long.expect \
tests/queries/0_stateless/02132_client_history_navigation.expect \
tests/queries/0_stateless/01933_client_replxx_convert_history.expect \
tests/queries/0_stateless/01945_show_debug_warning.expect \
tests/queries/0_stateless/01059_window_view_event_hop_watch_strict_asc.py \
tests/queries/0_stateless/01070_window_view_watch_events.py \
tests/queries/0_stateless/02116_interactive_hello.expect \
tests/queries/0_stateless/01755_client_highlight_multi_line_comment_regression.expect \
tests/queries/0_stateless/02112_delayed_clickhouse_client_with_queries_file.expect \
tests/queries/0_stateless/02112_delayed_clickhouse_local_with_queries_file.expect \
tests/queries/0_stateless/02010_lc_native.python \
tests/queries/0_stateless/02105_backslash_letter_commands.expect \
tests/queries/0_stateless/01069_window_view_proc_tumble_watch.py \
tests/queries/0_stateless/01062_window_view_event_hop_watch_asc.py \
tests/queries/0_stateless/01921_test_progress_bar.py \
tests/queries/0_stateless/02112_delayed_clickhouse_local.expect \
tests/queries/0_stateless/02049_clickhouse_local_merge_tree.expect \
tests/queries/0_stateless/01056_window_view_proc_hop_watch.py \
tests/queries/0_stateless/01065_window_view_event_hop_watch_bounded.py \
tests/queries/0_stateless/02003_memory_limit_in_client.expect \
tests/queries/0_stateless/02047_client_exception.expect \
tests/queries/0_stateless/02164_clickhouse_local_interactive_exception.expect \
utils/check-style/check-duplicate-includes.sh \
utils/check-style/check-ungrouped-includes.sh \
utils/check-style/format.sh utils/check-style/shellcheck-run.sh \
utils/ci/build-clang-from-sources.sh \
utils/ci/build-debian-packages.sh \
utils/ci/build-gcc-from-sources.sh \
utils/ci/build-normal.sh \
utils/ci/check-docker.sh \
utils/ci/check-syntax.sh \
utils/ci/check-tzdata-updates.sh \
utils/ci/create-sources-tarball.sh \
utils/ci/get-sources.sh \
utils/ci/install-compiler-from-packages.sh \
utils/ci/install-compiler-from-sources.sh \
utils/ci/install-libraries.sh \
utils/ci/install-os-packages.sh \
utils/ci/prepare-docker-image-ubuntu.sh \
utils/ci/prepare-toolchain.sh \
utils/ci/prepare-vagrant-image-freebsd.sh \
utils/ci/run-clickhouse-from-binaries.sh \
utils/ci/run-with-docker.sh \
utils/ci/run-with-vagrant.sh \
utils/clickhouse-docker utils/compressor/test.sh \
utils/durability-test/durability-test.sh \
utils/durability-test/install.sh \
utils/list-licenses/list-licenses.sh \
utils/list-versions/list-versions.sh
SHEBANG_LANG= expect
expect_OLD_CMD= /usr/bin/expect
expect_CMD= ${LOCALBASE}/bin/expect
CMAKE_ARGS= -DCMAKE_CXX_STANDARD=20 \
-DENABLE_EMBEDDED_COMPILER=OFF \
-DENABLE_THINLTO=OFF \
-DENABLE_PARQUET=OFF \
-DENABLE_UTILS=ON \
-DNO_WERROR=1
.if defined(WITH_DEBUG)
CMAKE_BUILD_TYPE=Debug
.else
CMAKE_BUILD_TYPE=RelWithDebInfo
.endif
USERS= clickhouse
GROUPS= clickhouse
# The version stamp of libclickhouse.so doesn't always match ${PORTVERSION}
PLIST_SUB= SOVERSION=${SOVERSION}
OPTIONS_DEFINE= TEST
TEST_RUN_DEPENDS+= expect>0:lang/expect
TEST_CMAKE_BOOL= ENABLE_TESTS
.include <bsd.port.options.mk>
.if ${OSVERSION} < 1400000
CC= clang13
CXX= clang++13
USES+= llvm:max=13,build
.else
CC= clang
CXX= clang++
CFLAGS+= -Wno-error=int-conversion
.endif
.if ${OPSYS} == FreeBSD
SUB_LIST+= LEGACY_LIMITS="@comment " \
MODERN_LIMITS=""
.else
SUB_LIST+= LEGACY_LIMITS="" \
MODERN_LIMITS="@comment "
.endif
SOVERSION= ${PORTVERSION}
.include <bsd.port.pre.mk>
post-patch:
@${REINPLACE_CMD} -e 's|/var/lib/clickhouse|/var/db/clickhouse|;s|/var/log/clickhouse-server|/var/log/clickhouse|;s|/etc/clickhouse-server|${PREFIX}/etc/clickhouse-server|' ${WRKSRC}/programs/server/config.xml
cd ${WRKSRC}/contrib/openldap-cmake && ${LN} -s freebsd_x86_64 freebsd_aarch64
post-install:
@${RM} ${STAGEDIR}${PREFIX}/bin/config-processor
@${RM} ${STAGEDIR}${PREFIX}/bin/corrector_utf8
@${RM} -r ${STAGEDIR}${PREFIX}/include/gtest
@${RM} ${STAGEDIR}${PREFIX}/lib/libgtest*
@${RM} ${STAGEDIR}${PREFIX}/lib/libcxx.a
@${RM} ${STAGEDIR}${PREFIX}/lib/libcxxabi.a
@${RM} ${STAGEDIR}${PREFIX}/lib/libunwind.a
${MV} ${STAGEDIR}${PREFIX}/etc/clickhouse-client/config.xml \
${STAGEDIR}${PREFIX}/etc/clickhouse-client/config.xml.sample
${MV} ${STAGEDIR}${PREFIX}/etc/clickhouse-server/config.xml \
${STAGEDIR}${PREFIX}/etc/clickhouse-server/config.xml.sample
${MV} ${STAGEDIR}${PREFIX}/etc/clickhouse-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
do-test-TEST-on:
cd ${WRKSRC} && ctest -j4 -V
.include <bsd.port.post.mk>