Files
nixpkgs/pkgs/development/python-modules/python-mapnik/default.nix
Guillaume Girol 33afbf39f6 treewide: switch to nativeCheckInputs
checkInputs used to be added to nativeBuildInputs. Now we have
nativeCheckInputs to do that instead. Doing this treewide change allows
to keep hashes identical to before the introduction of
nativeCheckInputs.
2023-01-21 12:00:00 +00:00

142 lines
3.1 KiB
Nix

{ lib
, buildPythonPackage
, fetchFromGitHub
, fetchpatch
, substituteAll
, isPyPy
, python
, pillow
, pycairo
, pkg-config
, boost
, cairo
, harfbuzz
, icu
, libjpeg
, libpng
, libtiff
, libwebp
, mapnik
, proj
, zlib
, libxml2
, sqlite
, nose
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "python-mapnik";
version = "unstable-2020-09-08";
src = fetchFromGitHub {
owner = "mapnik";
repo = "python-mapnik";
rev = "a2c2a86eec954b42d7f00093da03807d0834b1b4";
hash = "sha256-GwDdrutJOHtW7pIWiUAiu1xucmRvp7YFYB3YSCrDsrY=";
# Only needed for test data
fetchSubmodules = true;
};
patches = [
# https://github.com/mapnik/python-mapnik/issues/239
(fetchpatch {
url = "https://github.com/koordinates/python-mapnik/commit/318b1edac16f48a7f21902c192c1dd86f6210a44.patch";
sha256 = "sha256-cfU8ZqPPGCqoHEyGvJ8Xy/bGpbN2vSDct6A3N5+I8xM=";
})
./find-pycairo-with-pkg-config.patch
# python-mapnik seems to depend on having the mapnik src directory
# structure available at build time. We just hardcode the paths.
(substituteAll {
src = ./find-libmapnik.patch;
libmapnik = "${mapnik}/lib";
})
];
nativeBuildInputs = [
mapnik # for mapnik_config
pkg-config
];
buildInputs = [
mapnik
boost
cairo
harfbuzz
icu
libjpeg
libpng
libtiff
libwebp
proj
zlib
libxml2
sqlite
];
propagatedBuildInputs = [ pillow pycairo ];
configureFlags = [
"XMLPARSER=libxml2"
];
disabled = isPyPy;
preBuild = ''
export BOOST_PYTHON_LIB="boost_python${"${lib.versions.major python.version}${lib.versions.minor python.version}"}"
export BOOST_THREAD_LIB="boost_thread"
export BOOST_SYSTEM_LIB="boost_system"
export PYCAIRO=true
export XMLPARSER=libxml2
'';
nativeCheckInputs = [
nose
pytestCheckHook
];
preCheck = ''
# import from $out
rm -r mapnik
'';
# https://github.com/mapnik/python-mapnik/issues/255
disabledTests = [
"test_adding_datasource_to_layer"
"test_compare_map"
"test_dataraster_coloring"
"test_dataraster_query_point"
"test_good_files"
"test_layer_init"
"test_load_save_map"
"test_loading_fontset_from_map"
"test_normalizing_definition"
"test_pdf_printing"
"test_proj_antimeridian_bbox"
"test_proj_transform_between_init_and_literal"
"test_pycairo_pdf_surface1"
"test_pycairo_svg_surface1"
"test_query_tolerance"
"test_raster_warping"
"test_raster_warping_does_not_overclip_source"
"test_render_points"
"test_render_with_scale_factor"
"test_style_level_image_filter"
"test_that_coordinates_do_not_overflow_and_polygon_is_rendered_csv"
"test_that_coordinates_do_not_overflow_and_polygon_is_rendered_memory"
"test_transparency_levels"
"test_visual_zoom_all_rendering1"
"test_visual_zoom_all_rendering2"
"test_wgs84_inverse_forward"
];
pythonImportsCheck = [ "mapnik" ];
meta = with lib; {
description = "Python bindings for Mapnik";
maintainers = with maintainers; [ erictapen ];
homepage = "https://mapnik.org";
license = licenses.lgpl21Plus;
};
}