1# FIXME: make gdk-pixbuf dependency optional 2{ stdenv 3, buildPythonPackage 4, pythonOlder 5, fetchPypi 6, lib 7, substituteAll 8, makeFontsConf 9, freefont_ttf 10, pikepdf 11, pytestCheckHook 12, cairo 13, cffi 14, flit-core 15, numpy 16, withXcffib ? false 17, xcffib 18, glib 19, gdk-pixbuf 20}: 21 22buildPythonPackage rec { 23 pname = "cairocffi"; 24 version = "1.6.1"; 25 format = "pyproject"; 26 27 disabled = pythonOlder "3.7"; 28 29 src = fetchPypi { 30 inherit pname version; 31 hash = "sha256-eOa75HNXZAxFPQvpKfpJzQXM4uEobz0qHKnL2n79uLc="; 32 }; 33 34 patches = [ 35 # OSError: dlopen() failed to load a library: gdk-pixbuf-2.0 / gdk-pixbuf-2.0-0 36 (substituteAll { 37 src = ./dlopen-paths.patch; 38 ext = stdenv.hostPlatform.extensions.sharedLibrary; 39 cairo = cairo.out; 40 glib = glib.out; 41 gdk_pixbuf = gdk-pixbuf.out; 42 }) 43 ./fix_test_scaled_font.patch 44 ]; 45 46 nativeBuildInputs = [ 47 flit-core 48 ]; 49 50 propagatedBuildInputs = [ cairo cffi ] 51 ++ lib.optional withXcffib xcffib; 52 53 nativeCheckInputs = [ 54 numpy 55 pikepdf 56 pytestCheckHook 57 ]; 58 59 pythonImportsCheck = [ 60 "cairocffi" 61 ]; 62 63 meta = with lib; { 64 changelog = "https://github.com/Kozea/cairocffi/blob/v${version}/NEWS.rst"; 65 homepage = "https://github.com/SimonSapin/cairocffi"; 66 license = licenses.bsd3; 67 maintainers = with maintainers; [ ]; 68 description = "cffi-based cairo bindings for Python"; 69 }; 70}