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