Merge pull request #238811 from NixOS/backport-237401-to-release-23.05

[Backport release-23.05] clickhouse: build on darwin
This commit is contained in:
Weijia Wang
2023-06-21 16:35:44 +03:00
committed by GitHub
4 changed files with 43 additions and 21 deletions

View File

@@ -1,6 +1,6 @@
{ lib, stdenv, darwin, fetchFromGitHub, openssl, sqlite }:
(if stdenv.isDarwin then darwin.apple_sdk_11_0.clang14Stdenv else stdenv).mkDerivation rec {
(if stdenv.isDarwin then darwin.apple_sdk_11_0.llvmPackages_14.stdenv else stdenv).mkDerivation rec {
pname = "signalbackup-tools";
version = "20230510";

View File

@@ -69,7 +69,18 @@ let
stdenvs = {
stdenv = mkStdenv stdenv;
} // builtins.listToAttrs (map
(v: { name = "clang${v}Stdenv"; value = mkStdenv pkgs."llvmPackages_${v}".stdenv; })
(v: {
name = "llvmPackages_${v}";
value = pkgs."llvmPackages_${v}" // {
stdenv = mkStdenv pkgs."llvmPackages_${v}".stdenv;
};
})
[ "12" "13" "14" "15" "16" ]
) // builtins.listToAttrs (map
(v: {
name = "clang${v}Stdenv";
value = mkStdenv pkgs."llvmPackages_${v}".stdenv;
})
[ "12" "13" "14" "15" "16" ]
);

View File

@@ -1,5 +1,5 @@
{ lib
, stdenv
, llvmPackages
, fetchFromGitHub
, cmake
, ninja
@@ -7,6 +7,8 @@
, perl
, yasm
, nixosTests
, darwin
, findutils
# currently for BLAKE3 hash function
, rustSupport ? true
@@ -17,7 +19,13 @@
, rustPlatform
}:
stdenv.mkDerivation rec {
let
inherit (llvmPackages) stdenv;
mkDerivation = (
if stdenv.isDarwin
then darwin.apple_sdk_11_0.llvmPackages_15.stdenv
else llvmPackages.stdenv).mkDerivation;
in mkDerivation rec {
pname = "clickhouse";
version = "23.3.3.52";
@@ -26,20 +34,16 @@ stdenv.mkDerivation rec {
repo = "ClickHouse";
rev = "v${version}-lts";
fetchSubmodules = true;
hash = "sha256-yeoL3HA1wRDg2+t3FtrM4wBtuu94Lpe4xxGxc09duQI=";
name = "clickhouse-${rev}.tar.gz";
hash = "sha256-fVwwMj0WbyCbe4WfpYMGVM6vXFgHsjg9MUZbNyd+a/w=";
postFetch = ''
# compress to not exceed the 4GB output limit
# try to make a deterministic tarball
tar -I 'gzip -n' \
--sort=name \
--mtime=1970-01-01 \
--owner=root --group=root \
--numeric-owner --mode=go=rX,u+rw,a-s \
--transform='s@^@source/@S' \
-cf temp -C "$out" .
rm -r "$out"
mv temp "$out"
# delete files that make the source too big
rm -rf $out/contrib/llvm-project/llvm/test
rm -rf $out/contrib/llvm-project/clang/test
rm -rf $out/contrib/croaring/benchmarks
# fix case insensitivity on macos https://github.com/NixOS/nixpkgs/issues/39308
rm -rf $out/contrib/sysroot/linux-*
rm -rf $out/contrib/liburing/man
'';
};
@@ -51,6 +55,10 @@ stdenv.mkDerivation rec {
perl
] ++ lib.optionals stdenv.isx86_64 [
yasm
] ++ lib.optionals stdenv.isDarwin [
llvmPackages.bintools
findutils
darwin.bootstrap_cmds
] ++ lib.optionals rustSupport [
rustc
cargo
@@ -110,6 +118,9 @@ stdenv.mkDerivation rec {
--replace 'git rev-parse --show-toplevel' '$src'
substituteInPlace utils/check-style/check-style \
--replace 'git rev-parse --show-toplevel' '$src'
'' + lib.optionalString stdenv.isDarwin ''
sed -i 's|gfind|find|' cmake/tools.cmake
sed -i 's|ggrep|grep|' cmake/tools.cmake
'' + lib.optionalString rustSupport ''
pushd contrib/corrosion/generator
@@ -129,7 +140,7 @@ stdenv.mkDerivation rec {
cmakeFlags = [
"-DENABLE_TESTS=OFF"
"-DENABLE_CCACHE=0"
"-DCOMPILER_CACHE=disabled"
"-DENABLE_EMBEDDED_COMPILER=ON"
"-DWERROR=OFF"
];
@@ -157,7 +168,7 @@ stdenv.mkDerivation rec {
maintainers = with maintainers; [ orivej ];
# 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 = lib.filter (x: (lib.systems.elaborate x).is64bit) (platforms.linux ++ platforms.darwin);
broken = stdenv.buildPlatform != stdenv.hostPlatform;
};
}

View File

@@ -25204,7 +25204,7 @@ with pkgs;
clamsmtp = callPackage ../servers/mail/clamsmtp { };
clickhouse = callPackage ../servers/clickhouse {
stdenv = llvmPackages_15.stdenv;
llvmPackages = llvmPackages_15;
};
clickhouse-cli = with python3Packages; toPythonApplication clickhouse-cli;
@@ -32011,7 +32011,7 @@ with pkgs;
ladspa-sdk = callPackage ../applications/audio/ladspa-sdk { };
ladybird = qt6Packages.callPackage ../applications/networking/browsers/ladybird {
stdenv = if stdenv.isDarwin then darwin.apple_sdk_11_0.clang14Stdenv else stdenv;
stdenv = if stdenv.isDarwin then darwin.apple_sdk_11_0.llvmPackages_14.stdenv else stdenv;
};
lazpaint = callPackage ../applications/graphics/lazpaint { };