forked from mirrors/nixpkgs
python3Packages.mahotas: fix freeimage support
use a much stronger binding to our specific freeimage that works reliably on linux. previously it didn't and the tests covering freeimage support were just being skipped as they assumed it to be disabled. once the binding works it reveals slight breakage in the tests themselves, fixed with an upstream patch. this breakage was already revealing itsef on darwin as the freeimage binding was "working" there.
This commit is contained in:
parent
61a8fae2cb
commit
c81cf6a242
|
@ -1,4 +1,15 @@
|
|||
{ buildPythonPackage, fetchFromGitHub, pillow, scipy, numpy, pytestCheckHook, imread, freeimage, lib, stdenv }:
|
||||
{ buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, pillow
|
||||
, scipy
|
||||
, numpy
|
||||
, pytestCheckHook
|
||||
, imread
|
||||
, freeimage
|
||||
, lib
|
||||
, stdenv
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "mahotas";
|
||||
|
@ -11,11 +22,22 @@ buildPythonPackage rec {
|
|||
sha256 = "1n19yha1cqyx7hnlici1wkl7n68dh0vbpsyydfhign2c0w9jvg42";
|
||||
};
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "fix-freeimage-tests.patch";
|
||||
url = "https://github.com/luispedro/mahotas/commit/08cc4aa0cbd5dbd4c37580d52b822810c03b2c69.patch";
|
||||
sha256 = "0389sz7fyl8h42phw8sn4pxl4wc3brcrj9d05yga21gzil9bfi23";
|
||||
excludes = [ "ChangeLog" ];
|
||||
})
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [ numpy imread pillow scipy freeimage ];
|
||||
checkInputs = [ pytestCheckHook ];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace mahotas/io/freeimage.py --replace "/opt/local/lib" "${freeimage}/lib"
|
||||
substituteInPlace mahotas/io/freeimage.py \
|
||||
--replace "ctypes.util.find_library('freeimage')" 'True' \
|
||||
--replace 'ctypes.CDLL(libname)' 'np.ctypeslib.load_library("libfreeimage", "${freeimage}/lib")'
|
||||
'';
|
||||
|
||||
# tests must be run in the build directory
|
||||
|
@ -31,6 +53,11 @@ buildPythonPackage rec {
|
|||
"test_haralick3d"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"mahotas"
|
||||
"mahotas.freeimage"
|
||||
];
|
||||
|
||||
disabled = stdenv.isi686; # Failing tests
|
||||
|
||||
meta = with lib; {
|
||||
|
|
Loading…
Reference in a new issue