nixpkgs/pkgs/development/python-modules/xgboost/default.nix
Maximilian Bosch 88a35d8bb5
pythonPackages.xgboost: fix build
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.
2018-07-19 13:32:25 +02:00

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
'';
}