According to Nixpkgs manual[1] and NixOS 23.11 Release Note[2], the
`sourceRoot` attribute passed to `stdenv.mkDerivation` should be
specified as `"${src.name}"` or `"${src.name}/subdir"` when `src` is
produced using `fetchgit`-based fetchers.
`sourceRoot = "source"` or `sourceRoot = "source/subdir"` is based on
the assumption that the `name` attribute of these pre-unpacked fetchers
are always `"source"`, which is not the case. Expecting constant `name`
also makes the source FODs prone to irrelevent hashes during version
bumps.
[1]: https://nixos.org/manual/nixpkgs/unstable/#var-stdenv-sourceRoot
[2]: https://nixos.org/manual/nixos/stable/release-notes#sec-release-23.11
51 lines
803 B
Nix
51 lines
803 B
Nix
{ lib
|
|
, buildPythonPackage
|
|
, catboost
|
|
, python
|
|
, graphviz
|
|
, matplotlib
|
|
, numpy
|
|
, pandas
|
|
, plotly
|
|
, scipy
|
|
, setuptools
|
|
, six
|
|
, wheel
|
|
}:
|
|
|
|
buildPythonPackage rec {
|
|
inherit (catboost) pname version src meta;
|
|
format = "pyproject";
|
|
|
|
sourceRoot = "${src.name}/catboost/python-package";
|
|
|
|
nativeBuildInputs = [
|
|
setuptools
|
|
wheel
|
|
];
|
|
|
|
propagatedBuildInputs = [
|
|
graphviz
|
|
matplotlib
|
|
numpy
|
|
pandas
|
|
plotly
|
|
scipy
|
|
six
|
|
];
|
|
|
|
buildPhase = ''
|
|
runHook preBuild
|
|
|
|
# these arguments must set after bdist_wheel
|
|
${python.pythonOnBuildForHost.interpreter} setup.py bdist_wheel --no-widget --prebuilt-extensions-build-root-dir=${lib.getDev catboost}
|
|
|
|
runHook postBuild
|
|
'';
|
|
|
|
# setup a test is difficult
|
|
doCheck = false;
|
|
|
|
pythonImportsCheck = [ "catboost" ];
|
|
}
|