about summary refs log tree commit diff
path: root/pkgs/development/libraries/xgboost/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/libraries/xgboost/default.nix')
-rw-r--r--pkgs/development/libraries/xgboost/default.nix151
1 files changed, 0 insertions, 151 deletions
diff --git a/pkgs/development/libraries/xgboost/default.nix b/pkgs/development/libraries/xgboost/default.nix
deleted file mode 100644
index 2b96bede313d..000000000000
--- a/pkgs/development/libraries/xgboost/default.nix
+++ /dev/null
@@ -1,151 +0,0 @@
-{ config
-, stdenv
-, lib
-, fetchFromGitHub
-, fetchpatch
-, cmake
-, gtest
-, doCheck ? true
-, autoAddDriverRunpath
-, cudaSupport ? config.cudaSupport
-, ncclSupport ? false
-, rLibrary ? false
-, cudaPackages
-, llvmPackages
-, R
-, rPackages
-}@inputs:
-
-assert ncclSupport -> (cudaSupport && !cudaPackages.nccl.meta.unsupported);
-# Disable regular tests when building the R package
-# because 1) the R package runs its own tests and
-# 2) the R package creates a different binary shared
-# object that isn't compatible with the regular CLI
-# tests.
-assert rLibrary -> !doCheck;
-
-let
-  # This ensures xgboost gets the correct libstdc++ when
-  # built with cuda support. This may be removed once
-  # #226165 rewrites cudaStdenv
-  effectiveStdenv = if cudaSupport then cudaPackages.backendStdenv else inputs.stdenv;
-  # Ensures we don't use the stdenv value by accident.
-  stdenv = builtins.throw "Use effectiveStdenv instead of stdenv in xgboost derivation.";
-in
-
-effectiveStdenv.mkDerivation rec {
-  pnameBase = "xgboost";
-  # prefix with r when building the R library
-  # The R package build results in a special xgboost.so file
-  # that contains a subset of the .so file use for the CLI
-  # and python version. In general, the CRAN version from
-  # nixpkgs's r-modules should be used, but this non-standard
-  # build allows for enabling CUDA and NCCL support which aren't
-  # included in the CRAN release. Build with:
-  # nix-build -E "with (import $NIXPKGS{}); \
-  #   let \
-  #     xgb = xgboost.override{rLibrary = true; doCheck = false;}; \
-  #   in \
-  #   rWrapper.override{ packages = [ xgb ]; }"
-  pname = lib.optionalString rLibrary "r-" + pnameBase;
-  version = "2.0.3";
-
-  src = fetchFromGitHub {
-    owner = "dmlc";
-    repo = pnameBase;
-    rev = "v${version}";
-    fetchSubmodules = true;
-    hash = "sha256-LWco3A6zwdnAf8blU4qjW7PFEeZaTcJlVTwVrs7nwWM=";
-  };
-
-  patches = lib.optionals (cudaSupport && cudaPackages.cudaMajorMinorVersion == "12.4") [
-    (fetchpatch { # https://github.com/dmlc/xgboost/pull/10123
-      name = "Fix compilation with the ctk 12.4.";
-      url = "https://github.com/dmlc/xgboost/commit/c760f85db0bc7bd6379901fbfb67ceccc2b37700.patch";
-      hash = "sha256-iP9mll9pg8T2ztCR7dBPnLP17/x3ImJFrr5G3e2dqHo=";
-    })
-  ];
-
-  nativeBuildInputs = [ cmake ]
-    ++ lib.optionals effectiveStdenv.isDarwin [ llvmPackages.openmp ]
-    ++ lib.optionals cudaSupport [ autoAddDriverRunpath ]
-    ++ lib.optionals rLibrary [ R ];
-
-  buildInputs = [ gtest ] ++ lib.optional cudaSupport cudaPackages.cudatoolkit
-    ++ lib.optional ncclSupport cudaPackages.nccl;
-
-  propagatedBuildInputs = lib.optionals rLibrary [
-    rPackages.data_table
-    rPackages.jsonlite
-    rPackages.Matrix
-  ];
-
-  cmakeFlags = lib.optionals doCheck [ "-DGOOGLE_TEST=ON" ]
-    ++ lib.optionals cudaSupport [
-    "-DUSE_CUDA=ON"
-    # Their CMakeLists.txt does not respect CUDA_HOST_COMPILER, instead using the CXX compiler.
-    # https://github.com/dmlc/xgboost/blob/ccf43d4ba0a94e2f0a3cc5a526197539ae46f410/CMakeLists.txt#L145
-    "-DCMAKE_C_COMPILER=${effectiveStdenv.cc}/bin/gcc"
-    "-DCMAKE_CXX_COMPILER=${effectiveStdenv.cc}/bin/g++"
-  ] ++ lib.optionals ncclSupport [ "-DUSE_NCCL=ON" ]
-    ++ lib.optionals rLibrary [ "-DR_LIB=ON" ];
-
-  preConfigure = lib.optionals rLibrary ''
-    substituteInPlace cmake/RPackageInstall.cmake.in --replace "CMD INSTALL" "CMD INSTALL -l $out/library"
-    export R_LIBS_SITE="$R_LIBS_SITE''${R_LIBS_SITE:+:}$out/library"
-  '';
-
-  inherit doCheck;
-
-  # By default, cmake build will run ctests with all checks enabled
-  # If we're building with cuda, we run ctest manually so that we can skip the GPU tests
-  checkPhase = lib.optionalString cudaSupport ''
-    ctest --force-new-ctest-process ${
-      lib.optionalString cudaSupport "-E TestXGBoostLib"
-    }
-  '';
-
-  # Disable finicky tests from dmlc core that fail in Hydra. XGboost team
-  # confirmed xgboost itself does not use this part of the dmlc code.
-  GTEST_FILTER =
-    let
-      # Upstream Issue: https://github.com/xtensor-stack/xsimd/issues/456
-      filteredTests = lib.optionals effectiveStdenv.hostPlatform.isDarwin [
-        "ThreadGroup.TimerThread"
-        "ThreadGroup.TimerThreadSimple"
-      ];
-    in
-    "-${builtins.concatStringsSep ":" filteredTests}";
-
-  installPhase =
-    ''
-      runHook preInstall
-    ''
-    # the R library option builds a completely different binary xgboost.so instead of
-    # libxgboost.so, which isn't full featured for python and CLI
-    + lib.optionalString rLibrary ''
-      mkdir -p $out/library
-      export R_LIBS_SITE="$out/library:$R_LIBS_SITE''${R_LIBS_SITE:+:}"
-    '' + ''
-      cmake --install .
-      cp -r ../rabit/include/rabit $out/include
-      runHook postInstall
-    '';
-
-  postFixup = lib.optionalString rLibrary ''
-    if test -e $out/nix-support/propagated-build-inputs; then
-        ln -s $out/nix-support/propagated-build-inputs $out/nix-support/propagated-user-env-packages
-    fi
-  '';
-
-  meta = with lib; {
-    description =
-      "Scalable, Portable and Distributed Gradient Boosting (GBDT, GBRT or GBM) Library";
-    homepage = "https://github.com/dmlc/xgboost";
-    broken = cudaSupport && cudaPackages.cudaOlder "11.4";
-    license = licenses.asl20;
-    mainProgram = "xgboost";
-    platforms = platforms.unix;
-    maintainers = with maintainers; [ abbradar nviets ];
-  };
-}