nixpkgs/pkgs/servers/clickhouse/default.nix
Orivej Desh e4e695548c clickhouse: link to libLLVM rather than to individual LLVM libs
The clickhouse program links to LLVM and to the clickhouse library, that also
links to LLVM. When the library is shared but LLVM is static, LLVM gets linked
into the program twice (once via the library and once directly), which causes
this error when running clickhouse:

     : CommandLine Error: Option 'x86-use-base-pointer' registered more than once!
     LLVM ERROR: inconsistency in registered CommandLine options

A common LLVM installation provides static component libraries and a shared
libLLVM. Linking to libLLVM when libclickhouse is shared solves this issue.

Upstream pull request: https://github.com/yandex/ClickHouse/pull/3989
2019-01-06 16:59:47 +00:00

61 lines
1.8 KiB
Nix

{ stdenv, fetchFromGitHub, fetchpatch, cmake, libtool
, boost, capnproto, cctz, clang-unwrapped, double-conversion, gperftools, icu
, libcpuid, libxml2, lld, llvm, lz4 , mysql, openssl, poco, re2, rdkafka
, readline, sparsehash, unixODBC, zstd, ninja, jemalloc
}:
stdenv.mkDerivation rec {
name = "clickhouse-${version}";
version = "18.16.1";
src = fetchFromGitHub {
owner = "yandex";
repo = "ClickHouse";
rev = "v${version}-stable";
sha256 = "02slllcan7w3ln4c9yvxc8w0h2vszd7n0wshbn4bra2hb6mrzyp8";
};
nativeBuildInputs = [ cmake libtool ninja ];
buildInputs = [
boost capnproto cctz clang-unwrapped double-conversion gperftools icu
libcpuid libxml2 lld llvm lz4 mysql.connector-c openssl poco re2 rdkafka
readline sparsehash unixODBC zstd jemalloc
];
cmakeFlags = [
"-DENABLE_TESTS=OFF"
"-DUNBUNDLED=ON"
"-DUSE_STATIC_LIBRARIES=OFF"
"-DUSE_INTERNAL_SSL_LIBRARY=False"
];
patches = [
(fetchpatch {
url = "https://github.com/yandex/ClickHouse/commit/afbcdf2f00a04e747c5279414cf4691f29bb5cc2.patch";
sha256 = "17y891q0dp179w3jv32h74pbfwyzgnz4dxxwv73vzdwvys4i8c8z";
})
];
postPatch = ''
patchShebangs copy_headers.sh
'';
postInstall = ''
rm -rf $out/share/clickhouse-test
sed -i -e '\!<log>/var/log/clickhouse-server/clickhouse-server\.log</log>!d' \
$out/etc/clickhouse-server/config.xml
substituteInPlace $out/etc/clickhouse-server/config.xml \
--replace "<errorlog>/var/log/clickhouse-server/clickhouse-server.err.log</errorlog>" "<console>1</console>"
'';
hardeningDisable = [ "format" ];
meta = with stdenv.lib; {
homepage = https://clickhouse.yandex/;
description = "Column-oriented database management system";
license = licenses.asl20;
maintainers = with maintainers; [ orivej ];
platforms = platforms.linux;
};
}