diff --git a/pkgs/development/python-modules/python-mapnik/default.nix b/pkgs/development/python-modules/python-mapnik/default.nix index 36c297358e8..b1b0c70d860 100644 --- a/pkgs/development/python-modules/python-mapnik/default.nix +++ b/pkgs/development/python-modules/python-mapnik/default.nix @@ -35,10 +35,16 @@ in buildPythonPackage rec { export BOOST_PYTHON_LIB="boost_python${pythonVersion}" export BOOST_THREAD_LIB="boost_thread" export BOOST_SYSTEM_LIB="boost_system" + export PYCAIRO=true ''; nativeBuildInputs = [ mapnik # for mapnik_config + pkgs.pkgconfig + ]; + + patches = [ + ./find-pycairo-with-pkg-config.patch ]; buildInputs = [ diff --git a/pkgs/development/python-modules/python-mapnik/find-pycairo-with-pkg-config.patch b/pkgs/development/python-modules/python-mapnik/find-pycairo-with-pkg-config.patch new file mode 100644 index 00000000000..1f35af36ee8 --- /dev/null +++ b/pkgs/development/python-modules/python-mapnik/find-pycairo-with-pkg-config.patch @@ -0,0 +1,18 @@ +diff --git a/setup.py b/setup.py +index 82a31d733..1c876a553 100755 +--- a/setup.py ++++ b/setup.py +@@ -228,10 +228,9 @@ extra_comp_args = list(filter(lambda arg: arg != "-fvisibility=hidden", extra_co + if os.environ.get("PYCAIRO", "false") == "true": + try: + extra_comp_args.append('-DHAVE_PYCAIRO') +- print("-I%s/include/pycairo".format(sys.exec_prefix)) +- extra_comp_args.append("-I{0}/include/pycairo".format(sys.exec_prefix)) +- #extra_comp_args.extend(check_output(["pkg-config", '--cflags', 'pycairo']).strip().split(' ')) +- #linkflags.extend(check_output(["pkg-config", '--libs', 'pycairo']).strip().split(' ')) ++ pycairo_name = 'py3cairo' if PYTHON3 else 'pycairo' ++ extra_comp_args.extend(check_output(["pkg-config", '--cflags', pycairo_name]).strip().split(' ')) ++ linkflags.extend(check_output(["pkg-config", '--libs', pycairo_name]).strip().split(' ')) + except: + raise Exception("Failed to find compiler options for pycairo") +