88a35d8bb5
The setup.py of `python-package` contains some path resolution magic to find `libxgboost.so` which is needed for the python API. Unfortunately the code is incompatible with Nix as it isn't compatible with the store-based structure for each package and tries to express the location of the shared object with relative paths. The detection in `setup.py` and `xgboost/libpath.py` has been either removed entirely or patched to link to the proper store path of the `libxgboost` build input. See https://hydra.nixos.org/build/77702715 for further reference.
30 lines
489 B
Nix
30 lines
489 B
Nix
{ stdenv
|
|
, buildPythonPackage
|
|
, nose
|
|
, scipy
|
|
, xgboost
|
|
, substituteAll
|
|
}:
|
|
|
|
buildPythonPackage rec {
|
|
pname = "xgboost";
|
|
inherit (xgboost) version src meta;
|
|
|
|
patches = [
|
|
(substituteAll {
|
|
src = ./lib-path-for-python.patch;
|
|
libpath = "${xgboost}/lib";
|
|
})
|
|
];
|
|
|
|
postPatch = "cd python-package";
|
|
|
|
propagatedBuildInputs = [ scipy ];
|
|
buildInputs = [ xgboost ];
|
|
checkInputs = [ nose ];
|
|
|
|
checkPhase = ''
|
|
ln -sf ../demo .
|
|
nosetests ../tests/python
|
|
'';
|
|
}
|