python3Packages.vowpalwabbit: fix build
- Drop the Boost patch. The patch does not apply anymore and the new CMake infrastructure picks up boost. - Distable setuptools reStructuredText check. This check fails, but is (as far as I understand) an upstream bug. - Clean up derivation a bit.
This commit is contained in:
parent
2c7ba2060d
commit
0688cba0cd
@ -1,5 +1,17 @@
|
|||||||
{ stdenv, lib, buildPythonPackage, fetchPypi, python, zlib, clang
|
{ stdenv
|
||||||
, ncurses, pytest, docutils, pygments, numpy, scipy, scikitlearn }:
|
, lib
|
||||||
|
, fetchPypi
|
||||||
|
, buildPythonPackage
|
||||||
|
, cmake
|
||||||
|
, python
|
||||||
|
, zlib
|
||||||
|
, ncurses
|
||||||
|
, pytest
|
||||||
|
, docutils
|
||||||
|
, pygments
|
||||||
|
, numpy
|
||||||
|
, scipy
|
||||||
|
, scikitlearn }:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "vowpalwabbit";
|
pname = "vowpalwabbit";
|
||||||
@ -10,21 +22,27 @@ buildPythonPackage rec {
|
|||||||
sha256 = "bd4c7e49a6ddaa1afedf97b22b822c7322328d686d45151b47a5127fc409c2af";
|
sha256 = "bd4c7e49a6ddaa1afedf97b22b822c7322328d686d45151b47a5127fc409c2af";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Should be fixed in next Python release after 8.5.0:
|
nativeBuildInputs = [
|
||||||
# https://github.com/JohnLangford/vowpal_wabbit/pull/1533
|
cmake
|
||||||
patches = [
|
|
||||||
./vowpal-wabbit-find-boost.diff
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# vw tries to write some explicit things to home
|
buildInputs = [
|
||||||
# python installed: The directory '/homeless-shelter/.cache/pip/http'
|
docutils
|
||||||
preInstall = ''
|
ncurses
|
||||||
export HOME=$PWD
|
pygments
|
||||||
'';
|
python.pkgs.boost
|
||||||
|
zlib.dev
|
||||||
|
];
|
||||||
|
|
||||||
nativeBuildInputs = [ clang ];
|
propagatedBuildInputs = [
|
||||||
buildInputs = [ python.pkgs.boost zlib.dev ncurses pytest docutils pygments ];
|
numpy
|
||||||
propagatedBuildInputs = [ numpy scipy scikitlearn ];
|
scikitlearn
|
||||||
|
scipy
|
||||||
|
];
|
||||||
|
|
||||||
|
# Python build script uses CMake, but we don't want CMake to do the
|
||||||
|
# configuration.
|
||||||
|
dontUseCmakeConfigure = true;
|
||||||
|
|
||||||
# Python ctypes.find_library uses DYLD_LIBRARY_PATH.
|
# Python ctypes.find_library uses DYLD_LIBRARY_PATH.
|
||||||
preConfigure = lib.optionalString stdenv.isDarwin ''
|
preConfigure = lib.optionalString stdenv.isDarwin ''
|
||||||
@ -34,12 +52,12 @@ buildPythonPackage rec {
|
|||||||
checkPhase = ''
|
checkPhase = ''
|
||||||
# check-manifest requires a git clone, not a tarball
|
# check-manifest requires a git clone, not a tarball
|
||||||
# check-manifest --ignore "Makefile,PACKAGE.rst,*.cc,tox.ini,tests*,examples*,src*"
|
# check-manifest --ignore "Makefile,PACKAGE.rst,*.cc,tox.ini,tests*,examples*,src*"
|
||||||
${python.interpreter} setup.py check -mrs
|
${python.interpreter} setup.py check -ms
|
||||||
'';
|
'';
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Vowpal Wabbit is a fast machine learning library for online learning, and this is the python wrapper for the project.";
|
description = "Vowpal Wabbit is a fast machine learning library for online learning, and this is the python wrapper for the project.";
|
||||||
homepage = https://github.com/JohnLangford/vowpal_wabbit;
|
homepage = "https://github.com/JohnLangford/vowpal_wabbit";
|
||||||
license = licenses.bsd3;
|
license = licenses.bsd3;
|
||||||
broken = stdenv.isAarch64;
|
broken = stdenv.isAarch64;
|
||||||
maintainers = with maintainers; [ teh ];
|
maintainers = with maintainers; [ teh ];
|
||||||
|
@ -1,34 +0,0 @@
|
|||||||
--- vowpalwabbit-8.5.0.orig/setup.py 2018-09-03 20:32:39.000000000 +0200
|
|
||||||
+++ vowpalwabbit-8.5.0/setup.py 2018-09-03 20:34:09.000000000 +0200
|
|
||||||
@@ -23,18 +23,11 @@
|
|
||||||
|
|
||||||
def find_boost():
|
|
||||||
"""Find correct boost-python library information """
|
|
||||||
- if system == 'Linux':
|
|
||||||
+ if system == 'Linux' or system == 'Darwin':
|
|
||||||
# use version suffix if present
|
|
||||||
- boost_lib = 'boost_python-py{v[0]}{v[1]}'.format(v=sys.version_info)
|
|
||||||
- if sys.version_info.major == 3:
|
|
||||||
- for candidate in ['-py36', '-py35', '-py34', '3']:
|
|
||||||
- boost_lib = 'boost_python{}'.format(candidate)
|
|
||||||
- if find_library(boost_lib):
|
|
||||||
- exit
|
|
||||||
+ boost_lib = 'boost_python{v[0]}{v[1]}'.format(v=sys.version_info)
|
|
||||||
if not find_library(boost_lib):
|
|
||||||
boost_lib = "boost_python"
|
|
||||||
- elif system == 'Darwin':
|
|
||||||
- boost_lib = 'boost_python-mt' if sys.version_info[0] == 2 else 'boost_python3-mt'
|
|
||||||
elif system == 'Cygwin':
|
|
||||||
boost_lib = 'boost_python-mt' if sys.version_info[0] == 2 else 'boost_python3-mt'
|
|
||||||
else:
|
|
||||||
--- vowpalwabbit-8.5.0.orig/src/Makefile 2018-09-03 20:32:40.000000000 +0200
|
|
||||||
+++ vowpalwabbit-8.5.0/src/Makefile 2018-09-03 21:42:30.000000000 +0200
|
|
||||||
@@ -37,7 +37,7 @@
|
|
||||||
NPROCS:=$(shell grep -c ^processor /proc/cpuinfo)
|
|
||||||
endif
|
|
||||||
ifeq ($(UNAME), Darwin)
|
|
||||||
- LIBS = -lboost_program_options-mt -lboost_serialization-mt -l pthread -l z
|
|
||||||
+ LIBS = -lboost_program_options -lboost_serialization -l pthread -l z
|
|
||||||
# On Macs, the location isn't always clear
|
|
||||||
# brew uses /usr/local
|
|
||||||
# but /opt/local seems to be preferred by some users
|
|
Loading…
Reference in New Issue
Block a user