From d13769fd8e4a22bc302c37e428ea25959b8ceba9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Domen=20Ko=C5=BEar?= Date: Mon, 12 Jun 2023 18:39:12 +0100 Subject: [PATCH] clickhouse: build on darwin --- pkgs/servers/clickhouse/default.nix | 45 ++++++++++++++++++----------- pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 29 insertions(+), 18 deletions(-) diff --git a/pkgs/servers/clickhouse/default.nix b/pkgs/servers/clickhouse/default.nix index 92955d9d8e91..12d2b3228304 100644 --- a/pkgs/servers/clickhouse/default.nix +++ b/pkgs/servers/clickhouse/default.nix @@ -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; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 77742af33997..2640a996a6bf 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -25483,7 +25483,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;