1{ stdenv
2, buildPythonPackage
3, fetchFromGitHub
4, pytestCheckHook
5, glib
6, vips
7, cffi
8, pkgconfig # from pythonPackages
9, pkg-config # from pkgs
10, lib }:
11
12buildPythonPackage rec {
13 pname = "pyvips";
14 version = "2.2.1";
15
16 src = fetchFromGitHub {
17 owner = "libvips";
18 repo = "pyvips";
19 rev = "v${version}";
20 sha256 = "sha256-9S7h3bkm+QP78cpemYS7l3c8t+wXsJ5MUAP2T50R/Mc=";
21 };
22
23 nativeBuildInputs = [ pkgconfig pkg-config ];
24
25 buildInputs = [ glib vips ];
26
27 propagatedBuildInputs = [ cffi ];
28
29 checkInputs = [ pytestCheckHook ];
30
31 postPatch = ''
32 substituteInPlace pyvips/__init__.py \
33 --replace 'libvips.so.42' '${lib.getLib vips}/lib/libvips${stdenv.hostPlatform.extensions.sharedLibrary}' \
34 --replace 'libvips.42.dylib' '${lib.getLib vips}/lib/libvips${stdenv.hostPlatform.extensions.sharedLibrary}' \
35 --replace 'libgobject-2.0.so.0' '${glib.out}/lib/libgobject-2.0${stdenv.hostPlatform.extensions.sharedLibrary}' \
36 --replace 'libgobject-2.0.dylib' '${glib.out}/lib/libgobject-2.0${stdenv.hostPlatform.extensions.sharedLibrary}' \
37 '';
38
39 pythonImportsCheck = [ "pyvips" ];
40
41 meta = with lib; {
42 description = "A python wrapper for libvips";
43 homepage = "https://github.com/libvips/pyvips";
44 license = licenses.mit;
45 maintainers = with maintainers; [ ccellado anthonyroussel ];
46 };
47}