Yueh-Shun Li 91b3db1309 treewide: fix sourceRoot for fetchgit-based src
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
2024-03-09 07:53:25 +08:00

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" ];
}