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