1{ lib
2, buildPythonPackage
3, fetchFromGitHub
4, isPyPy
5, python
6, pillow
7, pycairo
8, pkg-config
9, boost
10, cairo
11, harfbuzz
12, icu
13, libjpeg
14, libpng
15, libtiff
16, libwebp
17, mapnik
18, proj
19, zlib
20}:
21
22buildPythonPackage rec {
23 pname = "python-mapnik";
24 version = "unstable-2020-02-24";
25
26 src = fetchFromGitHub {
27 owner = "mapnik";
28 repo = "python-mapnik";
29 rev = "7da019cf9eb12af8f8aa88b7d75789dfcd1e901b";
30 sha256 = "0snn7q7w1ab90311q8wgd1z64kw1svm5w831q0xd6glqhah86qc8";
31 };
32
33 disabled = isPyPy;
34 doCheck = false; # doesn't find needed test data files
35 preBuild = ''
36 export BOOST_PYTHON_LIB="boost_python${"${lib.versions.major python.version}${lib.versions.minor python.version}"}"
37 export BOOST_THREAD_LIB="boost_thread"
38 export BOOST_SYSTEM_LIB="boost_system"
39 export PYCAIRO=true
40 '';
41
42 nativeBuildInputs = [
43 mapnik # for mapnik_config
44 pkg-config
45 ];
46
47 patches = [
48 ./find-pycairo-with-pkg-config.patch
49 ];
50
51 buildInputs = [
52 mapnik
53 boost
54 cairo
55 harfbuzz
56 icu
57 libjpeg
58 libpng
59 libtiff
60 libwebp
61 proj
62 zlib
63 ];
64
65 propagatedBuildInputs = [ pillow pycairo ];
66
67 pythonImportsCheck = [ "mapnik" ];
68
69 meta = with lib; {
70 description = "Python bindings for Mapnik";
71 maintainers = with maintainers; [ erictapen ];
72 homepage = "https://mapnik.org";
73 license = licenses.lgpl21;
74 };
75}