mapnik / python-mapnik

Python bindings for mapnik
GNU Lesser General Public License v2.1
157 stars 90 forks source link

Installation issue #239

Open multidimensionro opened 3 years ago

multidimensionro commented 3 years ago

Hello,

I am having some issues on a CENTOS 7 setup using mapnik 4.0.0 installed from source.

/opt/rh/devtoolset-7/root/usr/include/c++/7/bits/unique_ptr.h:51:28: note: declared here template<typename> class auto_ptr; ^~~~~~~~ src/mapnik_proj_transform.cpp: In static member function ‘static boost::python::tuple proj_transform_pickle_suite::getinitargs(const mapnik::proj_transform&)’: src/mapnik_proj_transform.cpp:51:44: error: ‘const class mapnik::proj_transform’ has no member named ‘source’ return boost::python::make_tuple(p.source(),p.dest()); ^~~~~~ src/mapnik_proj_transform.cpp:51:55: error: ‘const class mapnik::proj_transform’ has no member named ‘dest’ return boost::python::make_tuple(p.source(),p.dest()); ^~~~ src/mapnik_proj_transform.cpp: In function ‘mapnik::coord2d {anonymous}::forward_transform_c(mapnik::proj_transform&, const coord2d&)’: src/mapnik_proj_transform.cpp:65:27: error: ‘class mapnik::proj_transform’ has no member named ‘source’ << "from " << t.source().params() << " to: " << t.dest().params(); ^~~~~~ src/mapnik_proj_transform.cpp:65:61: error: ‘class mapnik::proj_transform’ has no member named ‘dest’ << "from " << t.source().params() << " to: " << t.dest().params(); ^~~~ src/mapnik_proj_transform.cpp: In function ‘mapnik::coord2d {anonymous}::backward_transform_c(mapnik::proj_transform&, const coord2d&)’: src/mapnik_proj_transform.cpp:79:28: error: ‘class mapnik::proj_transform’ has no member named ‘dest’ << "from " << t.dest().params() << " to: " << t.source().params(); ^~~~ src/mapnik_proj_transform.cpp:79:60: error: ‘class mapnik::proj_transform’ has no member named ‘source’ << "from " << t.dest().params() << " to: " << t.source().params(); ^~~~~~ src/mapnik_proj_transform.cpp: In function ‘mapnik::box2d<double> {anonymous}::forward_transform_env(mapnik::proj_transform&, const mapnik::box2d<double>&)’: src/mapnik_proj_transform.cpp:91:27: error: ‘class mapnik::proj_transform’ has no member named ‘source’ << "from " << t.source().params() << " to: " << t.dest().params(); ^~~~~~ src/mapnik_proj_transform.cpp:91:61: error: ‘class mapnik::proj_transform’ has no member named ‘dest’ << "from " << t.source().params() << " to: " << t.dest().params(); ^~~~ src/mapnik_proj_transform.cpp: In function ‘mapnik::box2d<double> {anonymous}::backward_transform_env(mapnik::proj_transform&, const mapnik::box2d<double>&)’: src/mapnik_proj_transform.cpp:103:28: error: ‘class mapnik::proj_transform’ has no member named ‘dest’ << "from " << t.dest().params() << " to: " << t.source().params(); ^~~~ src/mapnik_proj_transform.cpp:103:60: error: ‘class mapnik::proj_transform’ has no member named ‘source’ << "from " << t.dest().params() << " to: " << t.source().params(); ^~~~~~ src/mapnik_proj_transform.cpp: In function ‘mapnik::box2d<double> {anonymous}::forward_transform_env_p(mapnik::proj_transform&, const mapnik::box2d<double>&, unsigned int)’: src/mapnik_proj_transform.cpp:115:27: error: ‘class mapnik::proj_transform’ has no member named ‘source’ << "from " << t.source().params() << " to: " << t.dest().params(); ^~~~~~ src/mapnik_proj_transform.cpp:115:61: error: ‘class mapnik::proj_transform’ has no member named ‘dest’ << "from " << t.source().params() << " to: " << t.dest().params(); ^~~~ src/mapnik_proj_transform.cpp: In function ‘mapnik::box2d<double> {anonymous}::backward_transform_env_p(mapnik::proj_transform&, const mapnik::box2d<double>&, unsigned int)’: src/mapnik_proj_transform.cpp:127:28: error: ‘class mapnik::proj_transform’ has no member named ‘dest’ << "from " << t.dest().params() << " to: " << t.source().params(); ^~~~ src/mapnik_proj_transform.cpp:127:60: error: ‘class mapnik::proj_transform’ has no member named ‘source’ << "from " << t.dest().params() << " to: " << t.source().params(); ^~~~~~ error: command '/opt/rh/devtoolset-7/root/usr/bin/gcc' failed with exit status 1

I am using boost169

mapnik-config -v 4.0.0

Please advise.

gerion0 commented 3 years ago

The error is a little difficult to parse. However, I think that I can confirm it. I get this error currently:

x86_64-pc-linux-gnu-g++ -O2 -pipe -fomit-frame-pointer -march=native -fPIC -I/usr/include/python3.8 -c src/mapnik_proj_transform.cpp -o /var/tmp/portage/dev-python/python-mapnik-9999/work/python-mapnik-9999-python3_8/temp.linux-x86_64-3.8/src/mapnik_proj_transform.o -I/usr/include -I/usr/include/mapnik/agg -I/usr/include/mapnik/deps -I/usr/include -I/usr/include/freetype2 -I/usr/include/libxml2 -I/usr/include/cairo -I/usr/lib64/libffi/include -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/pixman-1 -I/usr/include/uuid -I/usr/include/libpng16 -DACCEPT_USE_OF_DEPRECATED_PROJ_API_H=1 -DMAPNIK_MEMORY_MAPPED_FILE -DMAPNIK_HAS_DLCFN -DBIGINT -DBOOST_REGEX_HAS_ICU -DHAVE_JPEG -DMAPNIK_USE_PROJ -DMAPNIK_PROJ_VERSION=70201 -DHAVE_PNG -DHAVE_WEBP -DHAVE_TIFF -DLINUX -DMAPNIK_THREADSAFE -DBOOST_SPIRIT_NO_PREDEFINED_TERMINALS=1 -DBOOST_PHOENIX_NO_PREDEFINED_TERMINALS=1 -DBOOST_SPIRIT_USE_PHOENIX_V3=1 -DNDEBUG -DHAVE_CAIRO -DGRID_RENDERER -DHAVE_LIBXML2 -std=c++14 -DU_USING_ICU_NAMESPACE=0 -fvisibility-inlines-hidden -pthread -ftemplate-depth-300 -O2 -pipe -fomit-frame-pointer -march=native -DHAVE_PYCAIRO -I/usr/include/pycairo
In file included from /usr/include/boost/smart_ptr/detail/sp_thread_sleep.hpp:22,
                 from /usr/include/boost/smart_ptr/detail/yield_k.hpp:23,
                 from /usr/include/boost/smart_ptr/detail/spinlock_gcc_atomic.hpp:14,
                 from /usr/include/boost/smart_ptr/detail/spinlock.hpp:42,
                 from /usr/include/boost/smart_ptr/detail/spinlock_pool.hpp:25,
                 from /usr/include/boost/smart_ptr/shared_ptr.hpp:29,
                 from /usr/include/boost/shared_ptr.hpp:17,
                 from /usr/include/boost/python/converter/shared_ptr_to_python.hpp:12,
                 from /usr/include/boost/python/converter/arg_to_python.hpp:15,
                 from /usr/include/boost/python/call.hpp:15,
                 from /usr/include/boost/python/object_core.hpp:14,
                 from /usr/include/boost/python/args.hpp:22,
                 from /usr/include/boost/python.hpp:11,
                 from src/mapnik_proj_transform.cpp:28:
/usr/include/boost/bind.hpp:36:1: note: #pragma message: The practice of declaring the Bind placeholders (_1, _2, ...) in the global namespace is deprecated. Please use <boost/bind/bind.hpp> + using namespace boost::placeholders, or define BOOST_BIND_GLOBAL_PLACEHOLDERS to retain the current behavior.
   36 | BOOST_PRAGMA_MESSAGE(
      | ^~~~~~~~~~~~~~~~~~~~
src/mapnik_proj_transform.cpp: In static member function ‘static boost::python::tuple proj_transform_pickle_suite::getinitargs(const mapnik::proj_transform&)’:
src/mapnik_proj_transform.cpp:51:44: error: ‘const class mapnik::proj_transform’ has no member named ‘source’
   51 |         return boost::python::make_tuple(p.source(),p.dest());
      |                                            ^~~~~~
src/mapnik_proj_transform.cpp:51:55: error: ‘const class mapnik::proj_transform’ has no member named ‘dest’
   51 |         return boost::python::make_tuple(p.source(),p.dest());
      |                                                       ^~~~
src/mapnik_proj_transform.cpp: In function ‘mapnik::coord2d {anonymous}::forward_transform_c(mapnik::proj_transform&, const coord2d&)’:
src/mapnik_proj_transform.cpp:65:27: error: ‘class mapnik::proj_transform’ has no member named ‘source’
   65 |           << "from " << t.source().params() << " to: " << t.dest().params();
      |                           ^~~~~~
src/mapnik_proj_transform.cpp:65:61: error: ‘class mapnik::proj_transform’ has no member named ‘dest’
   65 |           << "from " << t.source().params() << " to: " << t.dest().params();
      |                                                             ^~~~
src/mapnik_proj_transform.cpp: In function ‘mapnik::coord2d {anonymous}::backward_transform_c(mapnik::proj_transform&, const coord2d&)’:
src/mapnik_proj_transform.cpp:79:28: error: ‘class mapnik::proj_transform’ has no member named ‘dest’
   79 |           << "from " <<  t.dest().params() << " to: " << t.source().params();
      |                            ^~~~
src/mapnik_proj_transform.cpp:79:60: error: ‘class mapnik::proj_transform’ has no member named ‘source’
   79 |           << "from " <<  t.dest().params() << " to: " << t.source().params();
      |                                                            ^~~~~~
src/mapnik_proj_transform.cpp: In function ‘mapnik::box2d<double> {anonymous}::forward_transform_env(mapnik::proj_transform&, const mapnik::box2d<double>&)’:
src/mapnik_proj_transform.cpp:91:27: error: ‘class mapnik::proj_transform’ has no member named ‘source’
   91 |           << "from " << t.source().params() << " to: " << t.dest().params();
      |                           ^~~~~~
src/mapnik_proj_transform.cpp:91:61: error: ‘class mapnik::proj_transform’ has no member named ‘dest’
   91 |           << "from " << t.source().params() << " to: " << t.dest().params();
      |                                                             ^~~~
src/mapnik_proj_transform.cpp: In function ‘mapnik::box2d<double> {anonymous}::backward_transform_env(mapnik::proj_transform&, const mapnik::box2d<double>&)’:
src/mapnik_proj_transform.cpp:103:28: error: ‘class mapnik::proj_transform’ has no member named ‘dest’
  103 |           << "from " <<  t.dest().params() << " to: " << t.source().params();
      |                            ^~~~
src/mapnik_proj_transform.cpp:103:60: error: ‘class mapnik::proj_transform’ has no member named ‘source’
  103 |           << "from " <<  t.dest().params() << " to: " << t.source().params();
      |                                                            ^~~~~~
src/mapnik_proj_transform.cpp: In function ‘mapnik::box2d<double> {anonymous}::forward_transform_env_p(mapnik::proj_transform&, const mapnik::box2d<double>&, unsigned int)’:
src/mapnik_proj_transform.cpp:115:27: error: ‘class mapnik::proj_transform’ has no member named ‘source’
  115 |           << "from " << t.source().params() << " to: " << t.dest().params();
      |                           ^~~~~~
src/mapnik_proj_transform.cpp:115:61: error: ‘class mapnik::proj_transform’ has no member named ‘dest’
  115 |           << "from " << t.source().params() << " to: " << t.dest().params();
      |                                                             ^~~~
src/mapnik_proj_transform.cpp: In function ‘mapnik::box2d<double> {anonymous}::backward_transform_env_p(mapnik::proj_transform&, const mapnik::box2d<double>&, unsigned int)’:
src/mapnik_proj_transform.cpp:127:28: error: ‘class mapnik::proj_transform’ has no member named ‘dest’
  127 |           << "from " <<  t.dest().params() << " to: " << t.source().params();
      |                            ^~~~
src/mapnik_proj_transform.cpp:127:60: error: ‘class mapnik::proj_transform’ has no member named ‘source’
  127 |           << "from " <<  t.dest().params() << " to: " << t.source().params();
      |                                                            ^~~~~~
manthey commented 3 years ago

This is almost certainly cause by this change in mapnik: https://github.com/mapnik/mapnik/commit/db9829d702fb7d2a2ce9ee06fcb56fbaad499ba2#diff-3817884b302c98d6b02df071fa796efda25b53389fcedf28f6b7c200a7ed5efdL455-L463

craigds commented 2 years ago

^ our fork works around this change, but at the expense of making ProjTransform objects unpickleable.