From 12d4e7567c1c5d30d489e51f23e96f17783fe22d Mon Sep 17 00:00:00 2001 From: Bruce Toll <4109762+tollb@users.noreply.github.com> Date: Fri, 7 May 2021 18:15:36 -0400 Subject: python-mapnik: fix pycairo support Fully enable pycairo support by exporting PYCAIRO=true and using pkg-config to locate the pycairo library (with included patch). The patch restores the use of pkg-config to find pycairo. This code was present upstream, but commented out; it has been re-enabled and modified to support both pycairo and py3cairo (the python3 version of pycairo). --- .../python-modules/python-mapnik/default.nix | 6 ++++++ .../python-mapnik/find-pycairo-with-pkg-config.patch | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 pkgs/development/python-modules/python-mapnik/find-pycairo-with-pkg-config.patch (limited to 'pkgs/development/python-modules/python-mapnik') 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") + -- cgit 1.4.1