mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-11 04:05:40 +03:00
clickhouse: 24.3.7.30 -> 25.3.3.42
This commit is contained in:
parent
457438810c
commit
6dbec0e854
2 changed files with 24 additions and 111 deletions
|
@ -1,9 +1,8 @@
|
||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
llvmPackages,
|
stdenv,
|
||||||
llvmPackages_16,
|
llvmPackages_19,
|
||||||
fetchFromGitHub,
|
fetchFromGitHub,
|
||||||
fetchpatch,
|
|
||||||
cmake,
|
cmake,
|
||||||
ninja,
|
ninja,
|
||||||
python3,
|
python3,
|
||||||
|
@ -14,30 +13,23 @@
|
||||||
darwin,
|
darwin,
|
||||||
findutils,
|
findutils,
|
||||||
libiconv,
|
libiconv,
|
||||||
|
|
||||||
rustSupport ? true,
|
rustSupport ? true,
|
||||||
|
|
||||||
rustc,
|
rustc,
|
||||||
cargo,
|
cargo,
|
||||||
rustPlatform,
|
rustPlatform,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
let
|
llvmPackages_19.stdenv.mkDerivation (finalAttrs: {
|
||||||
inherit (llvmPackages) stdenv;
|
|
||||||
mkDerivation =
|
|
||||||
(if stdenv.hostPlatform.isDarwin then llvmPackages_16.stdenv else llvmPackages.stdenv).mkDerivation;
|
|
||||||
in
|
|
||||||
mkDerivation rec {
|
|
||||||
pname = "clickhouse";
|
pname = "clickhouse";
|
||||||
version = "24.3.7.30";
|
version = "25.3.3.42";
|
||||||
|
|
||||||
src = fetchFromGitHub rec {
|
src = fetchFromGitHub rec {
|
||||||
owner = "ClickHouse";
|
owner = "ClickHouse";
|
||||||
repo = "ClickHouse";
|
repo = "ClickHouse";
|
||||||
rev = "v${version}-lts";
|
tag = "v${finalAttrs.version}-lts";
|
||||||
fetchSubmodules = true;
|
fetchSubmodules = true;
|
||||||
name = "clickhouse-${rev}.tar.gz";
|
name = "clickhouse-${tag}.tar.gz";
|
||||||
hash = "sha256-xIqn1cRbuD3NpUC2c7ZzvC8EAmg+XOXCkp+g/HTdIc0=";
|
hash = "sha256-VYT6Rnq7LaV9fZc4LJ9YtbWQDgEARYok8MjVfg8itIg=";
|
||||||
postFetch = ''
|
postFetch = ''
|
||||||
# delete files that make the source too big
|
# delete files that make the source too big
|
||||||
rm -rf $out/contrib/llvm-project/llvm/test
|
rm -rf $out/contrib/llvm-project/llvm/test
|
||||||
|
@ -62,20 +54,6 @@ mkDerivation rec {
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [
|
|
||||||
# They updated the Cargo.toml without updating the Cargo.lock :/
|
|
||||||
(fetchpatch {
|
|
||||||
url = "https://github.com/ClickHouse/ClickHouse/commit/bccd33932b5fe17ced2dc2f27813da0b1c034afa.patch";
|
|
||||||
revert = true;
|
|
||||||
hash = "sha256-4idwr+G8WGuT/VILKtDIJIvbCvi6pZokJFze4dP6ExE=";
|
|
||||||
})
|
|
||||||
(fetchpatch {
|
|
||||||
url = "https://github.com/ClickHouse/ClickHouse/commit/b6bd5ecb199ef8a10e3008a4ea3d96087db8a8c1.patch";
|
|
||||||
revert = true;
|
|
||||||
hash = "sha256-nbb/GV2qWEZ+BEfT6/9//yZf4VWdhOdJCI3PLeh6o0M=";
|
|
||||||
})
|
|
||||||
];
|
|
||||||
|
|
||||||
strictDeps = true;
|
strictDeps = true;
|
||||||
nativeBuildInputs =
|
nativeBuildInputs =
|
||||||
[
|
[
|
||||||
|
@ -83,14 +61,14 @@ mkDerivation rec {
|
||||||
ninja
|
ninja
|
||||||
python3
|
python3
|
||||||
perl
|
perl
|
||||||
llvmPackages.lld
|
llvmPackages_19.lld
|
||||||
]
|
]
|
||||||
++ lib.optionals stdenv.hostPlatform.isx86_64 [
|
++ lib.optionals stdenv.hostPlatform.isx86_64 [
|
||||||
nasm
|
nasm
|
||||||
yasm
|
yasm
|
||||||
]
|
]
|
||||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||||
llvmPackages.bintools
|
llvmPackages_19.bintools
|
||||||
findutils
|
findutils
|
||||||
darwin.bootstrap_cmds
|
darwin.bootstrap_cmds
|
||||||
]
|
]
|
||||||
|
@ -102,101 +80,38 @@ mkDerivation rec {
|
||||||
|
|
||||||
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ];
|
buildInputs = lib.optionals stdenv.hostPlatform.isDarwin [ libiconv ];
|
||||||
|
|
||||||
# their vendored version is too old and missing this patch: https://github.com/corrosion-rs/corrosion/pull/205
|
|
||||||
corrosionSrc =
|
|
||||||
if rustSupport then
|
|
||||||
fetchFromGitHub {
|
|
||||||
owner = "corrosion-rs";
|
|
||||||
repo = "corrosion";
|
|
||||||
rev = "v0.3.5";
|
|
||||||
hash = "sha256-r/jrck4RiQynH1+Hx4GyIHpw/Kkr8dHe1+vTHg+fdRs=";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
null;
|
|
||||||
corrosionDeps =
|
|
||||||
if rustSupport then
|
|
||||||
rustPlatform.fetchCargoVendor {
|
|
||||||
src = corrosionSrc;
|
|
||||||
name = "corrosion-deps";
|
|
||||||
preBuild = "cd generator";
|
|
||||||
hash = "sha256-ok1QLobiGBccmbEEWQxHz3ivvuT6FrOgG6wLK4gIbgU=";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
null;
|
|
||||||
rustDeps =
|
|
||||||
if rustSupport then
|
|
||||||
rustPlatform.fetchCargoVendor {
|
|
||||||
inherit src;
|
|
||||||
name = "rust-deps";
|
|
||||||
preBuild = "cd rust";
|
|
||||||
hash = "sha256-nX5wBM8rVMbaf/IrPsqkdT2KQklQbBIGomeWSTjclR4=";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
null;
|
|
||||||
|
|
||||||
dontCargoSetupPostUnpack = true;
|
dontCargoSetupPostUnpack = true;
|
||||||
postUnpack = lib.optionalString rustSupport ''
|
|
||||||
pushd source
|
|
||||||
|
|
||||||
rm -rf contrib/corrosion
|
|
||||||
cp -r --no-preserve=mode $corrosionSrc contrib/corrosion
|
|
||||||
|
|
||||||
pushd contrib/corrosion/generator
|
|
||||||
cargoDeps="$corrosionDeps" cargoSetupPostUnpackHook
|
|
||||||
corrosionDepsCopy="$cargoDepsCopy"
|
|
||||||
popd
|
|
||||||
|
|
||||||
pushd rust
|
|
||||||
cargoDeps="$rustDeps" cargoSetupPostUnpackHook
|
|
||||||
rustDepsCopy="$cargoDepsCopy"
|
|
||||||
cat .cargo/config.toml >> .cargo/config.toml.in
|
|
||||||
cat .cargo/config.toml >> skim/.cargo/config.toml.in
|
|
||||||
rm .cargo/config.toml
|
|
||||||
popd
|
|
||||||
|
|
||||||
popd
|
|
||||||
'';
|
|
||||||
|
|
||||||
postPatch =
|
postPatch =
|
||||||
''
|
''
|
||||||
patchShebangs src/
|
patchShebangs src/
|
||||||
|
patchShebangs utils/
|
||||||
|
|
||||||
|
sed -i 's|/usr/bin/env perl|"${lib.getExe perl}"|' contrib/openssl-cmake/CMakeLists.txt
|
||||||
|
|
||||||
substituteInPlace src/Storages/System/StorageSystemLicenses.sh \
|
substituteInPlace src/Storages/System/StorageSystemLicenses.sh \
|
||||||
--replace 'git rev-parse --show-toplevel' '$src'
|
--replace-fail '$(git rev-parse --show-toplevel)' "$NIX_BUILD_TOP/$sourceRoot"
|
||||||
substituteInPlace utils/check-style/check-duplicate-includes.sh \
|
|
||||||
--replace 'git rev-parse --show-toplevel' '$src'
|
|
||||||
substituteInPlace utils/check-style/check-ungrouped-includes.sh \
|
substituteInPlace utils/check-style/check-ungrouped-includes.sh \
|
||||||
--replace 'git rev-parse --show-toplevel' '$src'
|
--replace-fail '$(git rev-parse --show-toplevel)' "$NIX_BUILD_TOP/$sourceRoot"
|
||||||
substituteInPlace utils/list-licenses/list-licenses.sh \
|
substituteInPlace utils/list-licenses/list-licenses.sh \
|
||||||
--replace 'git rev-parse --show-toplevel' '$src'
|
--replace-fail '$(git rev-parse --show-toplevel)' "$NIX_BUILD_TOP/$sourceRoot"
|
||||||
substituteInPlace utils/check-style/check-style \
|
|
||||||
--replace 'git rev-parse --show-toplevel' '$src'
|
|
||||||
''
|
''
|
||||||
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
|
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||||
sed -i 's|gfind|find|' cmake/tools.cmake
|
sed -i 's|gfind|find|' cmake/tools.cmake
|
||||||
sed -i 's|ggrep|grep|' cmake/tools.cmake
|
sed -i 's|ggrep|grep|' cmake/tools.cmake
|
||||||
''
|
|
||||||
+ lib.optionalString rustSupport ''
|
|
||||||
|
|
||||||
pushd contrib/corrosion/generator
|
|
||||||
cargoDepsCopy="$corrosionDepsCopy" cargoSetupPostPatchHook
|
|
||||||
popd
|
|
||||||
|
|
||||||
pushd rust
|
|
||||||
cargoDepsCopy="$rustDepsCopy" cargoSetupPostPatchHook
|
|
||||||
popd
|
|
||||||
|
|
||||||
cargoSetupPostPatchHook() { true; }
|
|
||||||
''
|
|
||||||
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
|
|
||||||
# Make sure Darwin invokes lld.ld64 not lld.
|
# Make sure Darwin invokes lld.ld64 not lld.
|
||||||
substituteInPlace cmake/tools.cmake \
|
substituteInPlace cmake/tools.cmake \
|
||||||
--replace '--ld-path=''${LLD_PATH}' '-fuse-ld=lld'
|
--replace '--ld-path=''${LLD_PATH}' '-fuse-ld=lld'
|
||||||
|
''
|
||||||
|
+ lib.optionalString rustSupport ''
|
||||||
|
cargoSetupPostPatchHook() { true; }
|
||||||
'';
|
'';
|
||||||
|
|
||||||
cmakeFlags =
|
cmakeFlags =
|
||||||
[
|
[
|
||||||
"-DENABLE_TESTS=OFF"
|
"-DENABLE_TESTS=OFF"
|
||||||
|
"-DENABLE_DELTA_KERNEL_RS=0"
|
||||||
"-DCOMPILER_CACHE=disabled"
|
"-DCOMPILER_CACHE=disabled"
|
||||||
"-DENABLE_EMBEDDED_COMPILER=ON"
|
"-DENABLE_EMBEDDED_COMPILER=ON"
|
||||||
]
|
]
|
||||||
|
@ -205,6 +120,7 @@ mkDerivation rec {
|
||||||
) "-DNO_ARMV81_OR_HIGHER=1";
|
) "-DNO_ARMV81_OR_HIGHER=1";
|
||||||
|
|
||||||
env = {
|
env = {
|
||||||
|
CARGO_HOME = "$PWD/../.cargo/";
|
||||||
NIX_CFLAGS_COMPILE =
|
NIX_CFLAGS_COMPILE =
|
||||||
# undefined reference to '__sync_val_compare_and_swap_16'
|
# undefined reference to '__sync_val_compare_and_swap_16'
|
||||||
lib.optionalString stdenv.hostPlatform.isx86_64 " -mcx16"
|
lib.optionalString stdenv.hostPlatform.isx86_64 " -mcx16"
|
||||||
|
@ -224,9 +140,9 @@ mkDerivation rec {
|
||||||
sed -i -e '\!<log>/var/log/clickhouse-server/clickhouse-server\.log</log>!d' \
|
sed -i -e '\!<log>/var/log/clickhouse-server/clickhouse-server\.log</log>!d' \
|
||||||
$out/etc/clickhouse-server/config.xml
|
$out/etc/clickhouse-server/config.xml
|
||||||
substituteInPlace $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>"
|
--replace-fail "<errorlog>/var/log/clickhouse-server/clickhouse-server.err.log</errorlog>" "<console>1</console>"
|
||||||
substituteInPlace $out/etc/clickhouse-server/config.xml \
|
substituteInPlace $out/etc/clickhouse-server/config.xml \
|
||||||
--replace "<level>trace</level>" "<level>warning</level>"
|
--replace-fail "<level>trace</level>" "<level>warning</level>"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
# Builds in 7+h with 2 cores, and ~20m with a big-parallel builder.
|
# Builds in 7+h with 2 cores, and ~20m with a big-parallel builder.
|
||||||
|
@ -241,10 +157,11 @@ mkDerivation rec {
|
||||||
maintainers = with maintainers; [
|
maintainers = with maintainers; [
|
||||||
orivej
|
orivej
|
||||||
mbalatsko
|
mbalatsko
|
||||||
|
thevar1able
|
||||||
];
|
];
|
||||||
|
|
||||||
# not supposed to work on 32-bit https://github.com/ClickHouse/ClickHouse/pull/23959#issuecomment-835343685
|
# not supposed to work on 32-bit https://github.com/ClickHouse/ClickHouse/pull/23959#issuecomment-835343685
|
||||||
platforms = lib.filter (x: (lib.systems.elaborate x).is64bit) (platforms.linux ++ platforms.darwin);
|
platforms = lib.filter (x: (lib.systems.elaborate x).is64bit) (platforms.linux ++ platforms.darwin);
|
||||||
broken = stdenv.buildPlatform != stdenv.hostPlatform;
|
broken = stdenv.buildPlatform != stdenv.hostPlatform;
|
||||||
};
|
};
|
||||||
}
|
})
|
|
@ -10278,10 +10278,6 @@ with pkgs;
|
||||||
autoreconfHook = buildPackages.autoreconfHook269;
|
autoreconfHook = buildPackages.autoreconfHook269;
|
||||||
};
|
};
|
||||||
|
|
||||||
clickhouse = callPackage ../servers/clickhouse {
|
|
||||||
llvmPackages = llvmPackages_16;
|
|
||||||
};
|
|
||||||
|
|
||||||
clickhouse-cli = with python3Packages; toPythonApplication clickhouse-cli;
|
clickhouse-cli = with python3Packages; toPythonApplication clickhouse-cli;
|
||||||
|
|
||||||
couchdb3 = callPackage ../servers/http/couchdb/3.nix { };
|
couchdb3 = callPackage ../servers/http/couchdb/3.nix { };
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue