[packages/mapnik] - up to 3.0.9

baggins baggins at pld-linux.org
Mon Dec 14 00:36:05 CET 2015


commit eac0ac85e0592b26cfa69263583ce851095a5e7f
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Mon Dec 14 00:35:52 2015 +0100

    - up to 3.0.9

 mapnik-boost-megadiff.diff   | 1040 ------------------------------------------
 mapnik-boost_lib_names.patch |    6 +-
 mapnik-build.patch           |   11 -
 mapnik.spec                  |   20 +-
 python-install.patch         |   14 -
 5 files changed, 10 insertions(+), 1081 deletions(-)
---
diff --git a/mapnik.spec b/mapnik.spec
index 7a2c9dd..6d9e150 100644
--- a/mapnik.spec
+++ b/mapnik.spec
@@ -1,16 +1,13 @@
 #
 Summary:	Toolkit for developing GIS (Geographic Information Systems) applications
 Name:		mapnik
-Version:	2.2.0
-Release:	8
+Version:	3.0.9
+Release:	1
 License:	LGPL v2.1
 Group:		Applications
-Source0:	https://github.com/mapnik/mapnik/archive/v%{version}.tar.gz
-# Source0-md5:	b837931c7f1a4dc630d8550d3e635036
-Patch0:		%{name}-boost_lib_names.patch
-Patch1:		mapnik-boost-megadiff.diff
-Patch2:		%{name}-build.patch
-Patch3:		python-install.patch
+Source0:	https://github.com/mapnik/mapnik/archive/v%{version}/%{name}-%{version}.tar.gz
+# Source0-md5:	89907d70b84e45680ee31b27d464fa56
+Patch0:		mapnik-boost_lib_names.patch
 URL:		http://mapnik.org/
 BuildRequires:	boost-devel
 BuildRequires:	boost-python-devel
@@ -84,15 +81,12 @@ Statyczna biblioteka Mapnik.
 %prep
 %setup -q
 %patch0 -p1
-%patch1 -p1
-%patch2 -p1
-%patch3 -p1
 
 %build
 %scons \
 	PREFIX=%{_prefix} \
 	BOOST_TOOLKIT=gcc43 \
-	INPUT_PLUGINS='raster,rasterlite,sqlite,osm,gdal,shape,postgis,ogr,occi,csv,geojson' \
+	INPUT_PLUGINS='csv,gdal,geojson,ogr,pgraster,postgis,raster,shape,sqlite,topojson' \
 	SYSTEM_FONTS=%{_datadir}/fonts/TTF \
 	LIBDIR_SCHEMA=%{_lib} \
 	SVG2PNG=True
@@ -104,7 +98,7 @@ rm -rf $RPM_BUILD_ROOT
 	DESTDIR=$RPM_BUILD_ROOT \
 	PREFIX=%{_prefix} \
 	BOOST_TOOLKIT=gcc43 \
-	INPUT_PLUGINS='raster,rasterlite,sqlite,osm,gdal,shape,postgis,ogr,occi,csv,geojson' \
+	INPUT_PLUGINS='csv,gdal,geojson,ogr,pgraster,postgis,raster,shape,sqlite,topojson' \
 	SYSTEM_FONTS=%{_datadir}/fonts/TTF \
 	LIBDIR_SCHEMA=%{_lib} \
 	SVG2PNG=True
diff --git a/mapnik-boost-megadiff.diff b/mapnik-boost-megadiff.diff
deleted file mode 100644
index 3064c19..0000000
--- a/mapnik-boost-megadiff.diff
+++ /dev/null
@@ -1,1040 +0,0 @@
-diff --git a/SConstruct b/SConstruct
-index 4bd700e..6aefc58 100644
---- a/SConstruct
-+++ b/SConstruct
-@@ -1431,7 +1431,7 @@ if not preconfigured:
-                 env["CAIRO_ALL_LIBS"] = ['cairo']
-                 if env['RUNTIME_LINK'] == 'static':
-                     env["CAIRO_ALL_LIBS"].extend(
--                        ['pixman-1','expat','fontconfig','iconv']
-+                        ['pixman-1','expat','iconv']
-                     )
-                 # todo - run actual checkLib?
-                 env['HAS_CAIRO'] = True
-diff --git a/include/mapnik/css_color_grammar.hpp b/include/mapnik/css_color_grammar.hpp
-index a15f0fa..e20bdb2 100644
---- a/include/mapnik/css_color_grammar.hpp
-+++ b/include/mapnik/css_color_grammar.hpp
-@@ -125,7 +125,11 @@ struct alpha_conv_impl
- 
- struct hsl_conv_impl
- {
-+#ifdef BOOST_SPIRIT_USE_PHOENIX_V3
-+    template<typename T>
-+#else
-     template<typename T0,typename T1, typename T2, typename T3>
-+#endif
-     struct result
-     {
-         typedef void type;
-@@ -413,7 +417,11 @@ struct alpha_conv_impl
- 
- struct hsl_conv_impl
- {
-+#ifdef BOOST_SPIRIT_USE_PHOENIX_V3
-+    template<typename T>
-+#else
-     template<typename T0,typename T1, typename T2, typename T3>
-+#endif
-     struct result
-     {
-         typedef void type;
-diff --git a/include/mapnik/expression_grammar.hpp b/include/mapnik/expression_grammar.hpp
-index ed4a430..0b48924 100644
---- a/include/mapnik/expression_grammar.hpp
-+++ b/include/mapnik/expression_grammar.hpp
-@@ -65,7 +65,11 @@ struct unicode_impl
- 
- struct regex_match_impl
- {
-+#ifdef BOOST_SPIRIT_USE_PHOENIX_V3
-+    template <typename T>
-+#else
-     template <typename T0, typename T1>
-+#endif
-     struct result
-     {
-         typedef expr_node type;
-@@ -82,7 +86,11 @@ struct regex_match_impl
- 
- struct regex_replace_impl
- {
--    template <typename T0, typename T1, typename T2>
-+#ifdef BOOST_SPIRIT_USE_PHOENIX_V3
-+    template <typename T>
-+#else
-+    template <typename T0, typename T1>
-+#endif
-     struct result
-     {
-         typedef expr_node type;
-diff --git a/include/mapnik/expression_grammar_impl.hpp b/include/mapnik/expression_grammar_impl.hpp
-index 5ca2c5e..2255d48 100644
---- a/include/mapnik/expression_grammar_impl.hpp
-+++ b/include/mapnik/expression_grammar_impl.hpp
-@@ -145,7 +145,7 @@ expression_grammar<Iterator>::expression_grammar(mapnik::transcoder const& tr)
-     multiplicative_expr = unary_expr [_val = _1]
-         >> *(     '*' >> unary_expr [_val *= _1]
-                   | '/' >> unary_expr [_val /= _1]
--                  | '%' >> unary_expr [_val %= _1]
-+                  | '%' >> unary_expr [_val %= construct<mapnik::expr_node>(_1)] //needed by clang++ with -std=c++11
-                   |  regex_match_expr[_val = regex_match_(_val, _1)]
-                   |  regex_replace_expr(_val) [_val = _1]
-             )
-diff --git a/include/mapnik/json/feature_grammar.hpp b/include/mapnik/json/feature_grammar.hpp
-index a117b53..6a4a087 100644
---- a/include/mapnik/json/feature_grammar.hpp
-+++ b/include/mapnik/json/feature_grammar.hpp
-@@ -66,6 +66,30 @@ class attribute_value_visitor
-     mapnik::transcoder const& tr_;
- };
- 
-+#ifdef BOOST_SPIRIT_USE_PHOENIX_V3
-+struct put_property
-+{
-+    typedef void result_type;
-+    explicit put_property(mapnik::transcoder const& tr)
-+        : tr_(tr) {}
-+    template <typename T0,typename T1, typename T2>
-+    result_type operator() (T0 & feature, T1 const& key, T2 const& val) const
-+    {
-+        feature.put_new(key, boost::apply_visitor(attribute_value_visitor(tr_),val));
-+    }
-+    mapnik::transcoder const& tr_;
-+};
-+
-+struct extract_geometry
-+{
-+    typedef  boost::ptr_vector<mapnik::geometry_type>& result_type;
-+    template <typename T>
-+    result_type operator() (T & feature) const
-+    {
-+        return feature.paths();
-+    }
-+};
-+#else
- struct put_property
- {
-     template <typename T0,typename T1, typename T2>
-@@ -100,6 +124,7 @@ struct extract_geometry
-         return feature.paths();
-     }
- };
-+#endif
- 
- template <typename Iterator, typename FeatureType>
- struct feature_grammar :
-diff --git a/include/mapnik/json/geometry_generator_grammar.hpp b/include/mapnik/json/geometry_generator_grammar.hpp
-index 47974c2..2c21bab 100644
---- a/include/mapnik/json/geometry_generator_grammar.hpp
-+++ b/include/mapnik/json/geometry_generator_grammar.hpp
-@@ -38,11 +38,8 @@
- #include <boost/spirit/include/phoenix_fusion.hpp>
- #include <boost/spirit/include/phoenix_function.hpp>
- #include <boost/spirit/include/phoenix_statement.hpp>
--#include <boost/fusion/include/boost_tuple.hpp>
--#include <boost/math/special_functions/trunc.hpp> // trunc to avoid needing C++11
--
--
--//#define BOOST_SPIRIT_USE_PHOENIX_V3 1
-+#include <boost/fusion/adapted/boost_tuple.hpp>
-+#include <boost/math/special_functions/trunc.hpp> // for vc++ and android whose c++11 libs lack std::trunct
- 
- namespace boost { namespace spirit { namespace traits {
- 
-@@ -61,6 +58,68 @@ namespace phoenix = boost::phoenix;
- 
- namespace {
- 
-+#ifdef BOOST_SPIRIT_USE_PHOENIX_V3
-+struct get_type
-+{
-+    typedef int result_type;
-+    result_type operator() (geometry_type const& geom) const
-+    {
-+        return static_cast<int>(geom.type());
-+    }
-+};
-+
-+struct get_first
-+{
-+    typedef geometry_type::value_type const result_type;
-+    result_type operator() (geometry_type const& geom) const
-+    {
-+        geometry_type::value_type coord;
-+        boost::get<0>(coord) = geom.vertex(0,&boost::get<1>(coord),&boost::get<2>(coord));
-+        return coord;
-+    }
-+};
-+
-+struct multi_geometry_type
-+{
-+    typedef boost::tuple<unsigned,bool>  result_type;
-+    result_type operator() (geometry_container const& geom) const
-+    {
-+        unsigned type = 0u;
-+        bool collection = false;
-+
-+        geometry_container::const_iterator itr = geom.begin();
-+        geometry_container::const_iterator end = geom.end();
-+
-+        for ( ; itr != end; ++itr)
-+        {
-+            if (type != 0u && itr->type() != type)
-+            {
-+                collection = true;
-+                break;
-+            }
-+            type = itr->type();
-+        }
-+        if (geom.size() > 1) type +=3;
-+        return boost::tuple<unsigned,bool>(type, collection);
-+    }
-+};
-+
-+struct not_empty
-+{
-+    typedef bool result_type;
-+    result_type operator() (geometry_container const& cont) const
-+    {
-+        geometry_container::const_iterator itr = cont.begin();
-+        geometry_container::const_iterator end = cont.end();
-+        for ( ; itr != end; ++itr)
-+        {
-+            if (itr->size() > 0) return true;
-+        }
-+        return false;
-+    }
-+};
-+
-+#else
- struct get_type
- {
-     template <typename T>
-@@ -100,7 +159,7 @@ struct multi_geometry_type
- 
-         for ( ; itr != end; ++itr)
-         {
--            if (type != 0u && itr->type() != type)
-+            if (type != 0u && static_cast<unsigned>(itr->type()) != type)
-             {
-                 collection = true;
-                 break;
-@@ -113,6 +172,28 @@ struct multi_geometry_type
- };
- 
- 
-+struct not_empty
-+{
-+    template <typename T>
-+    struct result { typedef bool type; };
-+
-+    bool operator() (geometry_container const& cont) const
-+    {
-+        geometry_container::const_iterator itr = cont.begin();
-+        geometry_container::const_iterator end = cont.end();
-+
-+        for (; itr!=end; ++itr)
-+        {
-+            if (itr->size() > 0) return true;
-+        }
-+        return false;
-+    }
-+};
-+
-+
-+#endif
-+
-+
- template <typename T>
- struct json_coordinate_policy : karma::real_policies<T>
- {
-@@ -123,7 +204,7 @@ struct json_coordinate_policy : karma::real_policies<T>
-     {
-         if (n == 0.0) return 0;
-         using namespace boost::spirit;
--        return static_cast<unsigned>(15 - boost::math::trunc(log10(traits::get_absolute_value(n))));
-+        return static_cast<unsigned>(14 - boost::math::trunc(log10(traits::get_absolute_value(n))));
-     }
- 
-     template <typename OutputIterator>
-@@ -135,7 +216,7 @@ struct json_coordinate_policy : karma::real_policies<T>
- 
-     template <typename OutputIterator>
-     static bool fraction_part(OutputIterator& sink, T n
--                       , unsigned adjprec, unsigned precision)
-+                              , unsigned adjprec, unsigned precision)
-     {
-         if (n == 0) return true;
-         return base_type::fraction_part(sink, n, adjprec, precision);
-@@ -153,6 +234,7 @@ struct geometry_generator_grammar :
-         : geometry_generator_grammar::base_type(coordinates)
-     {
-         using boost::spirit::karma::uint_;
-+        using boost::spirit::bool_;
-         using boost::spirit::karma::_val;
-         using boost::spirit::karma::_1;
-         using boost::spirit::karma::lit;
-@@ -182,15 +264,15 @@ struct geometry_generator_grammar :
-         point_coord = &uint_
-             << lit('[')
-             << coord_type << lit(',') << coord_type
--            << lit("]")
-+            << lit(']')
-             ;
- 
-         polygon_coord %= ( &uint_(mapnik::SEG_MOVETO) << eps[_r1 += 1]
--                           << karma::string[ if_ (_r1 > 1) [_1 = "],["]
--                                      .else_[_1 = '[' ]] | &uint_ << lit(','))
--            << lit('[') << coord_type
--            << lit(',')
--            << coord_type << lit(']')
-+                           << karma::string[ if_ (_r1 > 1u) [_1 = "],["]
-+                                             .else_[_1 = '[' ]]
-+                           |
-+                           &uint_(mapnik::SEG_LINETO)
-+                           << lit(',')) << lit('[') << coord_type << lit(',') << coord_type << lit(']')
-             ;
- 
-         coords2 %= *polygon_coord(_a)
-@@ -205,7 +287,6 @@ struct geometry_generator_grammar :
-     karma::rule<OutputIterator, geometry_type const& ()> point;
-     karma::rule<OutputIterator, geometry_type const& ()> linestring;
-     karma::rule<OutputIterator, geometry_type const& ()> polygon;
--
-     karma::rule<OutputIterator, geometry_type const& ()> coords;
-     karma::rule<OutputIterator, karma::locals<unsigned>, geometry_type const& ()> coords2;
-     karma::rule<OutputIterator, geometry_type::value_type ()> point_coord;
-@@ -235,6 +316,7 @@ struct multi_geometry_generator_grammar :
-         using boost::spirit::karma::_1;
-         using boost::spirit::karma::_a;
-         using boost::spirit::karma::_r1;
-+        using boost::spirit::bool_;
- 
-         geometry_types.add
-             (mapnik::Point,"\"Point\"")
-@@ -245,7 +327,7 @@ struct multi_geometry_generator_grammar :
-             (mapnik::Polygon + 3,"\"MultiPolygon\"")
-             ;
- 
--        start %= ( eps(phoenix::at_c<1>(_a))[_a = _multi_type(_val)]
-+        start %= ( eps(phoenix::at_c<1>(_a))[_a = multi_type_(_val)]
-                    << lit("{\"type\":\"GeometryCollection\",\"geometries\":[")
-                    << geometry_collection << lit("]}")
-                    |
-@@ -255,13 +337,13 @@ struct multi_geometry_generator_grammar :
-         geometry_collection = -(geometry2 % lit(','))
-             ;
- 
--        geometry = (lit("{\"type\":")
--                    << geometry_types[_1 = phoenix::at_c<0>(_a)][_a = _multi_type(_val)]
--                    << lit(",\"coordinates\":")
--                    << karma::string[ if_ (phoenix::at_c<0>(_a) > 3) [_1 = '[']]
--                    << coordinates
--                    << karma::string[ if_ (phoenix::at_c<0>(_a) > 3) [_1 = ']']]
--                    << lit('}')) | lit("null")
-+        geometry = ( &bool_(true)[_1 = not_empty_(_val)] << lit("{\"type\":")
-+                     << geometry_types[_1 = phoenix::at_c<0>(_a)][_a = multi_type_(_val)]
-+                     << lit(",\"coordinates\":")
-+                     << karma::string[ phoenix::if_ (phoenix::at_c<0>(_a) > 3u) [_1 = '['].else_[_1 = ""]]
-+                     << coordinates
-+                     << karma::string[ phoenix::if_ (phoenix::at_c<0>(_a) > 3u) [_1 = ']'].else_[_1 = ""]]
-+                     << lit('}')) | lit("null")
-             ;
- 
-         geometry2 = lit("{\"type\":")
-@@ -287,8 +369,9 @@ struct multi_geometry_generator_grammar :
-     karma::rule<OutputIterator, geometry_container const&()> coordinates;
-     geometry_generator_grammar<OutputIterator>  path;
-     // phoenix
--    phoenix::function<multi_geometry_type> _multi_type;
-+    phoenix::function<multi_geometry_type> multi_type_;
-     phoenix::function<get_type > type_;
-+    phoenix::function<not_empty> not_empty_;
-     // symbols table
-     karma::symbols<unsigned, char const*> geometry_types;
- };
-diff --git a/include/mapnik/json/geometry_grammar.hpp b/include/mapnik/json/geometry_grammar.hpp
-index 9600b41..157d0e6 100644
---- a/include/mapnik/json/geometry_grammar.hpp
-+++ b/include/mapnik/json/geometry_grammar.hpp
-@@ -37,6 +37,58 @@ namespace qi = boost::spirit::qi;
- namespace standard_wide =  boost::spirit::standard_wide;
- using standard_wide::space_type;
- 
-+#ifdef BOOST_SPIRIT_USE_PHOENIX_V3
-+struct push_vertex
-+{
-+    typedef void result_type;
-+
-+    template <typename T0,typename T1, typename T2, typename T3>
-+    result_type operator() (T0 c, T1 path, T2 x, T3 y) const
-+    {
-+        BOOST_ASSERT( path!=0 );
-+        path->push_vertex(x,y,c);
-+    }
-+};
-+
-+struct close_path
-+{
-+    typedef void result_type;
-+
-+    template <typename T>
-+    result_type operator() (T path) const
-+    {
-+        BOOST_ASSERT( path!=0 );
-+        if (path->size() > 2u) // to form a polygon ring we need at least 3 vertices
-+        {
-+            path->close_path();
-+        }
-+    }
-+};
-+
-+struct cleanup
-+{
-+    typedef void result_type;
-+    template <typename T0>
-+    void operator() (T0 & path) const
-+    {
-+        if (path) delete path, path=0;
-+    }
-+};
-+
-+struct where_message
-+{
-+    typedef std::string result_type;
-+
-+    template <typename Iterator>
-+    std::string operator() (Iterator first, Iterator last, std::size_t size) const
-+    {
-+        std::string str(first, last);
-+        if (str.length() > size)
-+            return str.substr(0, size) + "..." ;
-+        return str;
-+    }
-+};
-+#else
- struct push_vertex
- {
-     template <typename T0,typename T1, typename T2, typename T3>
-@@ -65,8 +117,11 @@ struct close_path
-     void operator() (T path) const
-     {
-         BOOST_ASSERT( path!=0 );
--        path->close_path();
--    }
-+        if (path->size() > 2u) // to form a polygon ring we need at least 3 vertices
-+        {
-+            path->close_path();
-+        }
-+   }
- };
- 
- struct cleanup
-@@ -101,12 +156,13 @@ struct where_message
-         return str;
-     }
- };
-+#endif
- 
- 
- template <typename Iterator>
- struct geometry_grammar :
-         qi::grammar<Iterator,qi::locals<int>, void(boost::ptr_vector<mapnik::geometry_type>& )
--                   , space_type>
-+        , space_type>
- {
-     geometry_grammar();
-     qi::rule<Iterator, qi::locals<int>, void(boost::ptr_vector<mapnik::geometry_type>& ),space_type> geometry;
-diff --git a/include/mapnik/svg/svg_path_commands.hpp b/include/mapnik/svg/svg_path_commands.hpp
-index e45b5b1..ba631ed 100644
---- a/include/mapnik/svg/svg_path_commands.hpp
-+++ b/include/mapnik/svg/svg_path_commands.hpp
-@@ -45,7 +45,12 @@ inline double deg2rad(double deg)
- template <typename PathType>
- struct move_to
- {
-+
-+#ifdef BOOST_SPIRIT_USE_PHOENIX_V3
-+    template <typename T0>
-+#else
-     template <typename T0, typename T1>
-+#endif
-     struct result
-     {
-         typedef void type;
-@@ -66,7 +71,11 @@ struct move_to
- template <typename PathType>
- struct hline_to
- {
-+#ifdef BOOST_SPIRIT_USE_PHOENIX_V3
-+    template <typename T0>
-+#else
-     template <typename T0, typename T1>
-+#endif
-     struct result
-     {
-         typedef void type;
-@@ -88,7 +97,11 @@ struct hline_to
- template <typename PathType>
- struct vline_to
- {
-+#ifdef BOOST_SPIRIT_USE_PHOENIX_V3
-+    template <typename T0>
-+#else
-     template <typename T0, typename T1>
-+#endif
-     struct result
-     {
-         typedef void type;
-@@ -109,7 +122,11 @@ struct vline_to
- template <typename PathType>
- struct line_to
- {
-+#ifdef BOOST_SPIRIT_USE_PHOENIX_V3
-+    template <typename T0>
-+#else
-     template <typename T0, typename T1>
-+#endif
-     struct result
-     {
-         typedef void type;
-@@ -131,7 +148,11 @@ struct line_to
- template <typename PathType>
- struct curve4
- {
-+#ifdef BOOST_SPIRIT_USE_PHOENIX_V3
-+    template <typename T0>
-+#else
-     template <typename T0, typename T1, typename T2, typename T3>
-+#endif
-     struct result
-     {
-         typedef void type;
-@@ -156,7 +177,11 @@ struct curve4
- template <typename PathType>
- struct curve4_smooth
- {
-+#ifdef BOOST_SPIRIT_USE_PHOENIX_V3
-+    template <typename T0>
-+#else
-     template <typename T0, typename T1, typename T2>
-+#endif
-     struct result
-     {
-         typedef void type;
-@@ -178,7 +203,11 @@ struct curve4_smooth
- template <typename PathType>
- struct curve3
- {
-+#ifdef BOOST_SPIRIT_USE_PHOENIX_V3
-+    template <typename T0>
-+#else
-     template <typename T0, typename T1, typename T2>
-+#endif
-     struct result
-     {
-         typedef void type;
-@@ -201,7 +230,11 @@ struct curve3
- template <typename PathType>
- struct curve3_smooth
- {
-+#ifdef BOOST_SPIRIT_USE_PHOENIX_V3
-+    template <typename T0>
-+#else
-     template <typename T0, typename T1>
-+#endif
-     struct result
-     {
-         typedef void type;
-@@ -223,7 +256,11 @@ struct curve3_smooth
- template <typename PathType>
- struct arc_to
- {
-+#ifdef BOOST_SPIRIT_USE_PHOENIX_V3
-+    template <typename T0>
-+#else
-     template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5>
-+#endif
-     struct result
-     {
-         typedef void type;
-diff --git a/include/mapnik/svg/svg_transform_grammar.hpp b/include/mapnik/svg/svg_transform_grammar.hpp
-index 087bab3..a63884b 100644
---- a/include/mapnik/svg/svg_transform_grammar.hpp
-+++ b/include/mapnik/svg/svg_transform_grammar.hpp
-@@ -50,7 +50,11 @@ namespace mapnik { namespace svg {
-     template <typename TransformType>
-     struct process_matrix
-     {
-+#ifdef BOOST_SPIRIT_USE_PHOENIX_V3
-+        template <typename T0>
-+#else
-         template <typename T0, typename T1, typename T2, typename T3, typename T4, typename T5>
-+#endif
-         struct result
-         {
-             typedef void type;
-@@ -70,7 +74,11 @@ namespace mapnik { namespace svg {
-     template <typename TransformType>
-     struct process_rotate
-     {
-+#ifdef BOOST_SPIRIT_USE_PHOENIX_V3
-+        template <typename T0>
-+#else
-         template <typename T0, typename T1, typename T2>
-+#endif
-         struct result
-         {
-             typedef void type;
-@@ -101,7 +109,11 @@ namespace mapnik { namespace svg {
-     template <typename TransformType>
-     struct process_translate
-     {
-+#ifdef BOOST_SPIRIT_USE_PHOENIX_V3
-+        template <typename T0>
-+#else
-         template <typename T0, typename T1>
-+#endif
-         struct result
-         {
-             typedef void type;
-@@ -123,7 +135,11 @@ namespace mapnik { namespace svg {
-     template <typename TransformType>
-     struct process_scale
-     {
-+#ifdef BOOST_SPIRIT_USE_PHOENIX_V3
-+        template <typename T0>
-+#else
-         template <typename T0, typename T1>
-+#endif
-         struct result
-         {
-             typedef void type;
-@@ -146,7 +162,11 @@ namespace mapnik { namespace svg {
-     template <typename TransformType>
-     struct process_skew
-     {
-+#ifdef BOOST_SPIRIT_USE_PHOENIX_V3
-+        template <typename T0>
-+#else
-         template <typename T0, typename T1>
-+#endif
-         struct result
-         {
-             typedef void type;
-diff --git a/include/mapnik/util/geometry_svg_generator.hpp b/include/mapnik/util/geometry_svg_generator.hpp
-index 0705210..210a376 100644
---- a/include/mapnik/util/geometry_svg_generator.hpp
-+++ b/include/mapnik/util/geometry_svg_generator.hpp
-@@ -23,6 +23,7 @@
- #ifndef MAPNIK_GEOMETRY_SVG_GENERATOR_HPP
- #define MAPNIK_GEOMETRY_SVG_GENERATOR_HPP
- 
-+
- // mapnik
- #include <mapnik/global.hpp>
- #include <mapnik/geometry.hpp> // for container stuff
-@@ -41,13 +42,11 @@
- #include <boost/fusion/include/boost_tuple.hpp>
- #include <boost/type_traits/remove_pointer.hpp>
- 
--//#define BOOST_SPIRIT_USE_PHOENIX_V3 1
- 
--/*!
-- * adapted to conform to the concepts
-- * required by Karma to be recognized as a container of
-- * attributes for output generation.
-- */
-+// adapted to conform to the concepts
-+// required by Karma to be recognized as a container of
-+// attributes for output generation.
-+
- namespace boost { namespace spirit { namespace traits {
- 
- // TODO - this needs to be made generic to any path type
-@@ -76,7 +75,7 @@ template <>
- struct end_container<path_type const>
- {
-     static mapnik::util::path_iterator<path_type>
--    call (path_type const& g)
-+    call (path_type const& /*g*/)
-     {
-         return mapnik::util::path_iterator<path_type>();
-     }
-@@ -92,6 +91,31 @@ namespace mapnik { namespace util {
- 
-     namespace svg_detail {
- 
-+#ifdef BOOST_SPIRIT_USE_PHOENIX_V3
-+    template <typename Geometry>
-+    struct get_type
-+    {
-+        typedef int result_type;
-+        result_type operator() (Geometry const& geom) const
-+        {
-+            return static_cast<int>(geom.type());
-+        }
-+    };
-+
-+    template <typename T>
-+    struct get_first
-+    {
-+        typedef T geometry_type;
-+        typedef typename geometry_type::value_type const result_type;
-+        result_type operator() (geometry_type const& geom) const
-+        {
-+            typename geometry_type::value_type coord;
-+            geom.rewind(0);
-+            boost::get<0>(coord) = geom.vertex(&boost::get<1>(coord),&boost::get<2>(coord));
-+            return coord;
-+        }
-+    };
-+#else
-     template <typename Geometry>
-     struct get_type
-     {
-@@ -112,7 +136,7 @@ namespace mapnik { namespace util {
-         template <typename U>
-         struct result { typedef typename geometry_type::value_type const type; };
- 
--        typename geometry_type::value_type const operator() (geometry_type const& geom) const
-+        typename geometry_type::value_type operator() (geometry_type const& geom) const
-         {
-             typename geometry_type::value_type coord;
-             geom.rewind(0);
-@@ -121,12 +145,13 @@ namespace mapnik { namespace util {
-         }
-     };
- 
-+#endif
-     template <typename T>
-     struct coordinate_policy : karma::real_policies<T>
-     {
-         typedef boost::spirit::karma::real_policies<T> base_type;
-         static int floatfield(T n) { return base_type::fmtflags::fixed; }
--        static unsigned precision(T n) { return 6u ;}
-+        static unsigned precision(T n) { return 4u ;}
-     };
-     }
- 
-@@ -161,15 +186,15 @@ namespace mapnik { namespace util {
-                 ;
- 
-             linestring = &uint_(mapnik::LineString)[_1 = _type(_val)]
--                << svg_path << lit('\"')
-+                << lit("d=\"") << svg_path << lit("\"")
-                 ;
- 
-             polygon = &uint_(mapnik::Polygon)[_1 = _type(_val)]
--                << svg_path << lit('\"')
-+                << lit("d=\"") << svg_path << lit("\"")
-                 ;
- 
--            svg_path %= ((&uint_(mapnik::SEG_MOVETO) << lit("d=\"") << lit('M')
--                          | &uint_(mapnik::SEG_LINETO) [_a +=1] << karma::string [if_(_a == 1) [_1 = "L" ] ])
-+            svg_path %= ((&uint_(mapnik::SEG_MOVETO) << lit('M')
-+                          | &uint_(mapnik::SEG_LINETO) [_a +=1] << karma::string [if_(_a == 1u) [_1 = "L" ].else_[_1 =""]])
-                          << lit(' ') << coordinate << lit(' ') << coordinate) % lit(' ')
-                 ;
- 
-diff --git a/include/mapnik/util/geometry_wkt_generator.hpp b/include/mapnik/util/geometry_wkt_generator.hpp
-index 79f9fe1..ee6e2d1 100644
---- a/include/mapnik/util/geometry_wkt_generator.hpp
-+++ b/include/mapnik/util/geometry_wkt_generator.hpp
-@@ -40,7 +40,6 @@
- #include <boost/type_traits/remove_pointer.hpp>
- 
- #include <boost/math/special_functions/trunc.hpp> // trunc to avoid needing C++11
--//#define BOOST_SPIRIT_USE_PHOENIX_V3 1
- 
- namespace boost { namespace spirit { namespace traits {
- 
-@@ -205,8 +204,7 @@ template <typename OutputIterator, typename GeometryContainer>
- struct wkt_multi_generator :
-         karma::grammar<OutputIterator, karma::locals< boost::tuple<unsigned,bool> >, GeometryContainer const& ()>
- {
--    typedef GeometryContainer geometry_contaner;
--    typedef boost::remove_pointer<typename geometry_container::value_type>::type geometry_type;
-+    typedef typename boost::remove_pointer<typename GeometryContainer::value_type>::type geometry_type;
- 
-     wkt_multi_generator();
-     // rules
-diff --git a/include/mapnik/wkt/wkt_grammar.hpp b/include/mapnik/wkt/wkt_grammar.hpp
-index e7e986f..ff233d6 100644
---- a/include/mapnik/wkt/wkt_grammar.hpp
-+++ b/include/mapnik/wkt/wkt_grammar.hpp
-@@ -40,12 +40,15 @@
- namespace mapnik { namespace wkt {
- 
-     using namespace boost::spirit;
--    using namespace boost::fusion;
-     using namespace boost::phoenix;
- 
-     struct push_vertex
-     {
-+#ifdef BOOST_SPIRIT_USE_PHOENIX_V3
-+        template <typename T>
-+#else
-         template <typename T0,typename T1, typename T2, typename T3>
-+#endif
-         struct result
-         {
-             typedef void type;
-diff --git a/src/json/feature_collection_parser.cpp b/src/json/feature_collection_parser.cpp
-index 0e1ce12..e4f65d8 100644
---- a/src/json/feature_collection_parser.cpp
-+++ b/src/json/feature_collection_parser.cpp
-@@ -23,8 +23,10 @@
- // TODO https://github.com/mapnik/mapnik/issues/1658
- #include <boost/version.hpp>
- #if BOOST_VERSION >= 105200
-+#ifndef BOOST_SPIRIT_USE_PHOENIX_V3
- #define BOOST_SPIRIT_USE_PHOENIX_V3
- #endif
-+#endif
- 
- // mapnik
- #include <mapnik/json/feature_collection_parser.hpp>
-diff --git a/plugins/input/geojson/geojson_datasource.cpp b/plugins/input/geojson/geojson_datasource.cpp
-index dd5e167..7072a27 100644
---- a/plugins/input/geojson/geojson_datasource.cpp
-+++ b/plugins/input/geojson/geojson_datasource.cpp
-@@ -32,10 +32,6 @@
- #include <boost/algorithm/string.hpp>
- #include <boost/spirit/include/support_multi_pass.hpp>
- #include <boost/foreach.hpp>
--#include <boost/geometry/geometries/box.hpp>
--#include <boost/geometry/geometries/geometries.hpp>
--#include <boost/geometry.hpp>
--#include <boost/geometry/extensions/index/rtree/rtree.hpp>
- 
- // mapnik
- #include <mapnik/unicode.hpp>
-@@ -101,7 +97,11 @@ geojson_datasource::geojson_datasource(parameters const& params)
-     extent_(),
-     tr_(new mapnik::transcoder(*params.get<std::string>("encoding","utf-8"))),
-     features_(),
-+#if BOOST_VERSION >= 105600
-+    tree_()
-+#else
-     tree_(16,1)
-+#endif
- {
-     if (file_.empty()) throw mapnik::datasource_exception("GeoJSON Plugin: missing <file> parameter");
- 
-@@ -139,9 +139,9 @@ geojson_datasource::geojson_datasource(parameters const& params)
- 
-     bool first = true;
-     std::size_t count=0;
--    BOOST_FOREACH (mapnik::feature_ptr f, features_)
-+    BOOST_FOREACH (mapnik::feature_ptr const& f, features_)
-     {
--        mapnik::box2d<double> const& box = f->envelope();
-+        mapnik::box2d<double> box = f->envelope();
-         if (first)
-         {
-             extent_ = box;
-@@ -158,7 +158,11 @@ geojson_datasource::geojson_datasource(parameters const& params)
-         {
-             extent_.expand_to_include(box);
-         }
--        tree_.insert(box_type(point_type(box.minx(),box.miny()),point_type(box.maxx(),box.maxy())), count++);
-+#if BOOST_VERSION >= 105600
-+        tree_.insert(std::make_pair(box_type(point_type(box.minx(),box.miny()),point_type(box.maxx(),box.maxy())),count++));
-+#else
-+        tree_.insert(box_type(point_type(box.minx(),box.miny()),point_type(box.maxx(),box.maxy())),count++);
-+#endif
-     }
- }
- 
-@@ -213,7 +217,11 @@ mapnik::featureset_ptr geojson_datasource::features(mapnik::query const& q) cons
-     if (extent_.intersects(b))
-     {
-         box_type box(point_type(b.minx(),b.miny()),point_type(b.maxx(),b.maxy()));
-+#if BOOST_VERSION >= 105600
-+        tree_.query(boost::geometry::index::intersects(box),std::back_inserter(index_array_));
-+#else
-         index_array_ = tree_.find(box);
-+#endif
-         return boost::make_shared<geojson_featureset>(features_, index_array_.begin(), index_array_.end());
-     }
-     // otherwise return an empty featureset pointer
-diff --git a/plugins/input/geojson/geojson_datasource.hpp b/plugins/input/geojson/geojson_datasource.hpp
-index 7cad44b..c02827b 100644
---- a/plugins/input/geojson/geojson_datasource.hpp
-+++ b/plugins/input/geojson/geojson_datasource.hpp
-@@ -36,11 +36,16 @@
- // boost
- #include <boost/optional.hpp>
- #include <boost/shared_ptr.hpp>
--#include <boost/geometry/geometries/box.hpp>
- #include <boost/geometry/geometries/point_xy.hpp>
--#include <boost/geometry/algorithms/area.hpp>
-+#include <boost/geometry/geometries/box.hpp>
- #include <boost/geometry/geometries/geometries.hpp>
-+#include <boost/geometry.hpp>
-+#include <boost/version.hpp>
-+#if BOOST_VERSION >= 105600
-+#include <boost/geometry/index/rtree.hpp>
-+#else
- #include <boost/geometry/extensions/index/rtree/rtree.hpp>
-+#endif
- 
- // stl
- #include <vector>
-@@ -53,7 +58,14 @@ class geojson_datasource : public mapnik::datasource
- public:
-     typedef boost::geometry::model::d2::point_xy<double> point_type;
-     typedef boost::geometry::model::box<point_type> box_type;
-+#if BOOST_VERSION >= 105600
-+    typedef std::pair<box_type,std::size_t> item_type;
-+    typedef boost::geometry::index::linear<16,1> linear_type;
-+    typedef boost::geometry::index::rtree<item_type,linear_type> spatial_index_type;
-+#else
-+    typedef std::size_t item_type;
-     typedef boost::geometry::index::rtree<box_type,std::size_t> spatial_index_type;
-+#endif
-     
-     // constructor
-     geojson_datasource(mapnik::parameters const& params);
-@@ -74,7 +86,7 @@ class geojson_datasource : public mapnik::datasource
-     boost::shared_ptr<mapnik::transcoder> tr_;
-     std::vector<mapnik::feature_ptr> features_;
-     spatial_index_type tree_;
--    mutable std::deque<std::size_t> index_array_;
-+    mutable std::deque<item_type> index_array_;
- };
- 
- 
-diff --git a/plugins/input/geojson/geojson_featureset.cpp b/plugins/input/geojson/geojson_featureset.cpp
-index f6d45a9..93233ec 100644
---- a/plugins/input/geojson/geojson_featureset.cpp
-+++ b/plugins/input/geojson/geojson_featureset.cpp
-@@ -30,8 +30,8 @@
- #include "geojson_featureset.hpp"
- 
- geojson_featureset::geojson_featureset(std::vector<mapnik::feature_ptr> const& features, 
--                                       std::deque<std::size_t>::const_iterator index_itr,
--                                       std::deque<std::size_t>::const_iterator index_end)
-+                                       array_type::const_iterator index_itr,
-+                                       array_type::const_iterator index_end)
-     : features_(features),
-       index_itr_(index_itr),
-       index_end_(index_end) {}
-@@ -42,7 +42,12 @@ mapnik::feature_ptr geojson_featureset::next()
- {
-     if (index_itr_ != index_end_)
-     {
--        std::size_t index = *index_itr_++;        
-+#if BOOST_VERSION >= 105600
-+        geojson_datasource::item_type const& item = *index_itr_++;
-+        std::size_t index = item.second;
-+#else
-+        std::size_t const& index = *index_itr_++;
-+#endif
-         if ( index < features_.size())
-         {
-             return features_.at(index);
-diff --git a/plugins/input/geojson/geojson_featureset.hpp b/plugins/input/geojson/geojson_featureset.hpp
-index f8b37d6..fd68e7d 100644
---- a/plugins/input/geojson/geojson_featureset.hpp
-+++ b/plugins/input/geojson/geojson_featureset.hpp
-@@ -11,17 +11,18 @@
- class geojson_featureset : public mapnik::Featureset
- {
- public:
-+    typedef std::deque<geojson_datasource::item_type> array_type;
-     geojson_featureset(std::vector<mapnik::feature_ptr> const& features,
--                       std::deque<std::size_t>::const_iterator index_itr,
--                       std::deque<std::size_t>::const_iterator index_end);
-+                       array_type::const_iterator index_itr,
-+                       array_type::const_iterator index_end);
-     virtual ~geojson_featureset();
-     mapnik::feature_ptr next();
- 
- private:
-     mapnik::box2d<double> box_;
-     std::vector<mapnik::feature_ptr> const& features_;
--    std::deque<std::size_t>::const_iterator index_itr_;
--    std::deque<std::size_t>::const_iterator index_end_;
-+    array_type::const_iterator index_itr_;
-+    array_type::const_iterator index_end_;
- };
- 
- #endif // GEOJSON_FEATURESET_HPP
-diff --git a/src/save_map.cpp b/src/save_map.cpp
-index edfa029..bee0cc8 100644
---- a/src/save_map.cpp
-+++ b/src/save_map.cpp
-@@ -42,6 +42,7 @@
- // boost
- #include <boost/algorithm/string.hpp>
- #include <boost/optional.hpp>
-+#include <boost/version.hpp>
- #include <boost/property_tree/ptree.hpp>
- #include <boost/property_tree/xml_parser.hpp>
- 
-@@ -869,7 +870,11 @@ void save_map(Map const & map, std::string const& filename, bool explicit_defaul
- {
-     ptree pt;
-     serialize_map(pt,map,explicit_defaults);
-+#if BOOST_VERSION >= 105600
-+    write_xml(filename,pt,std::locale(),boost::property_tree::xml_writer_make_settings<ptree::key_type>(' ',4));
-+#else
-     write_xml(filename,pt,std::locale(),boost::property_tree::xml_writer_make_settings(' ',4));
-+#endif
- }
- 
- std::string save_map_to_string(Map const & map, bool explicit_defaults)
-@@ -877,7 +882,11 @@ std::string save_map_to_string(Map const & map, bool explicit_defaults)
-     ptree pt;
-     serialize_map(pt,map,explicit_defaults);
-     std::ostringstream ss;
-+#if BOOST_VERSION >= 105600
-+    write_xml(ss,pt,boost::property_tree::xml_writer_make_settings<ptree::key_type>(' ',4));
-+#else
-     write_xml(ss,pt,boost::property_tree::xml_writer_make_settings(' ',4));
-+#endif
-     return ss.str();
- }
- 
-diff --git a/SConstruct b/SConstruct
-index de9ea89..4bd700e 100644
---- a/SConstruct
-+++ b/SConstruct
-@@ -1623,6 +1623,15 @@ if not preconfigured:
-         debug_defines = ['-DDEBUG', '-DMAPNIK_DEBUG']
-         ndebug_defines = ['-DNDEBUG']
- 
-+        boost_version_from_header = int(env['BOOST_LIB_VERSION_FROM_HEADER'].split('_')[1])
-+        if boost_version_from_header > 53 or 'c++11' in env['CUSTOM_CXXFLAGS']:
-+            env.Append(CPPDEFINES = '-DBOOST_SPIRIT_USE_PHOENIX_V3=1')
-+            #  - workaround boost gil channel_algorithm.hpp narrowing error
-+            # TODO - remove when building against >= 1.55
-+            # https://github.com/mapnik/mapnik/issues/1970
-+            if 'clang++' in env['CXX']:
-+                env.Append(CXXFLAGS = '-Wno-c++11-narrowing')
-+
-         # Enable logging in debug mode (always) and release mode (when specified)
-         if env['DEFAULT_LOG_SEVERITY']:
-             if env['DEFAULT_LOG_SEVERITY'] not in severities:
-diff --git a/include/mapnik/marker.hpp b/include/mapnik/marker.hpp
-index 568f565..9c8c0e4 100644
---- a/include/mapnik/marker.hpp
-+++ b/include/mapnik/marker.hpp
-@@ -124,12 +124,12 @@ class marker: private mapnik::noncopyable
- 
-     inline bool is_bitmap() const
-     {
--        return bitmap_data_;
-+        return bitmap_data_ ? true : false;
-     }
- 
-     inline bool is_vector() const
-     {
--        return vector_data_;
-+        return vector_data_ ? true : false;
-     }
- 
-     boost::optional<mapnik::image_ptr> get_bitmap_data() const
diff --git a/mapnik-boost_lib_names.patch b/mapnik-boost_lib_names.patch
index 4b68668..87258cf 100644
--- a/mapnik-boost_lib_names.patch
+++ b/mapnik-boost_lib_names.patch
@@ -1,6 +1,6 @@
---- mapnik-0.7.1/SConstruct~	2010-03-22 18:40:47.000000000 +0200
-+++ mapnik-0.7.1/SConstruct	2010-04-06 15:26:44.282392752 +0300
-@@ -561,10 +561,6 @@
+--- mapnik-3.0.9/SConstruct~	2015-11-26 11:13:12.000000000 +0100
++++ mapnik-3.0.9/SConstruct	2015-12-14 00:16:09.848114888 +0100
+@@ -755,10 +755,6 @@
          # which goes <toolset>-<threading>-<abi>-<version>. See:
          #  http://www.boost.org/doc/libs/1_35_0/more/getting_started/unix-variants.html#library-naming
          append_params = ['']
diff --git a/mapnik-build.patch b/mapnik-build.patch
deleted file mode 100644
index dcf278d..0000000
--- a/mapnik-build.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- mapnik-2.2.0/src/build.py~	2013-06-04 03:28:47.000000000 +0200
-+++ mapnik-2.2.0/src/build.py	2014-11-10 11:37:08.355377411 +0100
-@@ -59,6 +59,8 @@
- # clear out and re-set libs for this env
- lib_env['LIBS'] = ['freetype','z',env['ICU_LIB_NAME'],filesystem,system,regex]
- 
-+lib_env['LIBS'].append('dl')
-+
- if env['PROJ']:
-    lib_env['LIBS'].append('proj')
- 
diff --git a/python-install.patch b/python-install.patch
deleted file mode 100644
index a0c9cab..0000000
--- a/python-install.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- mapnik-2.2.0/SConstruct~	2015-12-06 00:40:11.000000000 +0100
-+++ mapnik-2.2.0/SConstruct	2015-12-06 01:18:15.465765196 +0100
-@@ -1502,9 +1502,9 @@
- 
-             # Note: we use the plat_specific argument here to make sure to respect the arch-specific site-packages location
-             if py3:
--                site_packages = '''%s -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(plat_specific=True))"''' % env['PYTHON']
-+                site_packages = '''%s -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(plat_specific=True,prefix=\'/usr\'))"''' % env['PYTHON']
-             else:
--                site_packages = '''%s -c "from distutils.sysconfig import get_python_lib; print get_python_lib(plat_specific=True)"''' % env['PYTHON']
-+                site_packages = '''%s -c "from distutils.sysconfig import get_python_lib; print get_python_lib(plat_specific=True,prefix=\'/usr\')"''' % env['PYTHON']
-             env['PYTHON_SITE_PACKAGES'] = call(site_packages)
-         else:
-             env['PYTHON_SYS_PREFIX'] = os.popen('''%s -c "import sys; print sys.prefix"''' % env['PYTHON']).read().strip()
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/mapnik.git/commitdiff/eac0ac85e0592b26cfa69263583ce851095a5e7f




More information about the pld-cvs-commit mailing list