Bug 237016 - graphics/mapnik: fails to build with boost 1.70
Summary: graphics/mapnik: fails to build with boost 1.70
Status: Closed Overcome By Events
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: freebsd-ports-bugs mailing list
URL:
Keywords: needs-patch, regression
Depends on:
Blocks: 235956
  Show dependency treegraph
 
Reported: 2019-04-04 14:47 UTC by Jan Beich
Modified: 2020-01-10 20:48 UTC (History)
5 users (show)

See Also:
bugzilla: maintainer-feedback? (littlesavage)


Attachments
master (pre-4.0) snapshot (25.47 KB, patch)
2019-12-13 18:04 UTC, Jan Beich
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Jan Beich freebsd_committer 2019-04-04 14:47:34 UTC
While preparing for Boost upgrade this port failed to build. Can you help to avoid marking it as BROKEN?

$ fetch -qo- 'https://reviews.freebsd.org/D19303?download=true' |
  patch -Efsp0 -d /usr/ports
$ make all deinstall install clean -C/usr/ports/devel/boost-jam
$ make all deinstall install clean -C/usr/ports/devel/boost-libs
$ make -C/usr/ports/graphics/mapnik
[...]
In file included from src/json/mapnik_json_generator_grammar.cpp:25:
In file included from include/mapnik/json/geometry_generator_grammar_impl.hpp:24:
In file included from include/mapnik/json/geometry_generator_grammar.hpp:34:
In file included from /usr/local/include/boost/spirit/include/karma.hpp:16:
In file included from /usr/local/include/boost/spirit/home/karma.hpp:13:
In file included from /usr/local/include/boost/spirit/home/karma/char.hpp:13:
In file included from /usr/local/include/boost/spirit/home/karma/char/char.hpp:23:
In file included from /usr/local/include/boost/spirit/home/karma/char/char_generator.hpp:17:
In file included from /usr/local/include/boost/spirit/home/karma/detail/extract_from.hpp:16:
In file included from /usr/local/include/boost/spirit/home/karma/detail/attributes.hpp:12:
/usr/local/include/boost/spirit/home/support/attributes.hpp:963:9: error: static_assert failed due to requirement '!is_reference<const feature_impl &>::value' "Transformed cannot be a reference type"
        BOOST_STATIC_ASSERT_MSG(!is_reference<Transformed>::value,
        ^                       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/local/include/boost/static_assert.hpp:31:45: note: expanded from macro 'BOOST_STATIC_ASSERT_MSG'
#     define BOOST_STATIC_ASSERT_MSG( ... ) static_assert(__VA_ARGS__)
                                            ^             ~~~~~~~~~~~
/usr/local/include/boost/spirit/home/karma/nonterminal/rule.hpp:293:26: note: in instantiation of template class 'boost::spirit::traits::transform_attribute<const boost::fusion::cons<const mapnik::feature_impl &, boost::fusion::nil_>, const mapnik::feature_impl &, boost::spirit::karma::domain, void>' requested here
                typename transform::type attr_ = transform::pre(attr);
                         ^
/usr/local/include/boost/spirit/home/karma/reference.hpp:56:30: note: in instantiation of function template specialization 'boost::spirit::karma::rule<std::__1::back_insert_iterator<std::__1::basic_string<char> >, const mapnik::feature_impl &(), boost::spirit::unused_type, boost::spirit::unused_type, boost::spirit::unused_type>::generate<boost::spirit::context<boost::fusion::cons<const mapnik::feature_impl &, boost::fusion::nil_>, boost::fusion::vector<> >, boost::spirit::unused_type, boost::fusion::cons<const mapnik::feature_impl &, boost::fusion::nil_> >' requested here
            return ref.get().generate(sink, context, delim, context.attributes);
                             ^
/usr/local/include/boost/spirit/home/karma/detail/fail_function.hpp:46:31: note: in instantiation of function template specialization 'boost::spirit::karma::reference<const boost::spirit::karma::rule<std::__1::back_insert_iterator<std::__1::basic_string<char> >, const mapnik::feature_impl &(), boost::spirit::unused_type, boost::spirit::unused_type, boost::spirit::unused_type> >::generate<boost::spirit::karma::detail::output_iterator<std::__1::back_insert_iterator<std::__1::basic_string<char> >, mpl_::int_<15>, boost::spirit::unused_type>, boost::spirit::context<boost::fusion::cons<const mapnik::feature_impl &, boost::fusion::nil_>, boost::fusion::vector<> >, boost::spirit::unused_type>' requested here
            return !component.generate(sink, ctx, delim, unused);
                              ^
/usr/local/include/boost/fusion/algorithm/query/detail/any.hpp:40:16: note: in instantiation of function template specialization 'boost::spirit::karma::detail::fail_function<boost::spirit::karma::detail::output_iterator<std::__1::back_insert_iterator<std::__1::basic_string<char> >, mpl_::int_<15>, boost::spirit::unused_type>, boost::spirit::context<boost::fusion::cons<const mapnik::feature_impl &, boost::fusion::nil_>, boost::fusion::vector<> >, boost::spirit::unused_type>::operator()<boost::spirit::karma::reference<const boost::spirit::karma::rule<std::__1::back_insert_iterator<std::__1::basic_string<char> >, const mapnik::feature_impl &(), boost::spirit::unused_type, boost::spirit::unused_type, boost::spirit::unused_type> > >' requested here
        return f(x) ||
               ^
/usr/local/include/boost/fusion/algorithm/query/detail/any.hpp:41:21: note: in instantiation of function template specialization 'boost::fusion::detail::linear_any<boost::fusion::cons_iterator<const boost::fusion::cons<boost::spirit::karma::reference<const boost::spirit::karma::rule<std::__1::back_insert_iterator<std::__1::basic_string<char> >, const mapnik::feature_impl &(), boost::spirit::unused_type, boost::spirit::unused_type, boost::spirit::unused_type> >, boost::fusion::cons<boost::spirit::karma::literal_char<boost::spirit::char_encoding::standard, boost::spirit::unused_type, true>, boost::fusion::nil_> > >, boost::fusion::cons_iterator<const boost::fusion::nil_>, boost::spirit::karma::detail::fail_function<boost::spirit::karma::detail::output_iterator<std::__1::back_insert_iterator<std::__1::basic_string<char> >, mpl_::int_<15>, boost::spirit::unused_type>, boost::spirit::context<boost::fusion::cons<const mapnik::feature_impl &, boost::fusion::nil_>, boost::fusion::vector<> >, boost::spirit::unused_type> >' requested here
            detail::linear_any(
                    ^
/usr/local/include/boost/fusion/algorithm/query/detail/any.hpp:41:21: note: (skipping 12 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
/usr/local/include/boost/function/function_template.hpp:1068:5: note: in instantiation of function template specialization 'boost::function3<bool, boost::spirit::karma::detail::output_iterator<std::__1::back_insert_iterator<std::__1::basic_string<char> >, mpl_::int_<15>, boost::spirit::unused_type> &, boost::spirit::context<boost::fusion::cons<const mapnik::feature_impl &, boost::fusion::nil_>, boost::fusion::vector<> > &, const boost::spirit::unused_type &>::function3<boost::spirit::karma::detail::generator_binder<boost::spirit::karma::sequence<boost::fusion::cons<boost::spirit::karma::literal_string<char const (&)[24], boost::spirit::unused_type, boost::spirit::unused_type, true>, boost::fusion::cons<boost::spirit::karma::action<boost::spirit::karma::any_uint_generator<unsigned int, boost::spirit::unused_type, boost::spirit::unused_type, 10>, boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::assign, boost::proto::argsns_::list2<boost::phoenix::actor<boost::spirit::argument<0> >, boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::phoenix::detail::tag::function_eval, boost::proto::argsns_::list2<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<mapnik::json::get_id<mapnik::feature_impl> >, 0>, boost::phoenix::actor<boost::spirit::attribute<0> > >, 2> > >, 2> > >, boost::fusion::cons<boost::spirit::karma::literal_string<char const (&)[13], boost::spirit::unused_type, boost::spirit::unused_type, true>, boost::fusion::cons<boost::spirit::karma::reference<const boost::spirit::karma::rule<std::__1::back_insert_iterator<std::__1::basic_string<char> >, const mapnik::geometry::geometry<double> &(), boost::spirit::unused_type, boost::spirit::unused_type, boost::spirit::unused_type> >, boost::fusion::cons<boost::spirit::karma::literal_string<char const (&)[15], boost::spirit::unused_type, boost::spirit::unused_type, true>, boost::fusion::cons<boost::spirit::karma::reference<const boost::spirit::karma::rule<std::__1::back_insert_iterator<std::__1::basic_string<char> >, const mapnik::feature_impl &(), boost::spirit::unused_type, boost::spirit::unused_type, boost::spirit::unused_type> >, boost::fusion::cons<boost::spirit::karma::literal_char<boost::spirit::char_encoding::standard, boost::spirit::unused_type, true>, boost::fusion::nil_> > > > > > > >, mpl_::bool_<false> > >' requested here
    base_type(f)
    ^
/usr/local/include/boost/function/function_template.hpp:1121:5: note: in instantiation of function template specialization 'boost::function<bool (boost::spirit::karma::detail::output_iterator<std::__1::back_insert_iterator<std::__1::basic_string<char> >, mpl_::int_<15>, boost::spirit::unused_type> &, boost::spirit::context<boost::fusion::cons<const mapnik::feature_impl &, boost::fusion::nil_>, boost::fusion::vector<> > &, const boost::spirit::unused_type &)>::function<boost::spirit::karma::detail::generator_binder<boost::spirit::karma::sequence<boost::fusion::cons<boost::spirit::karma::literal_string<char const (&)[24], boost::spirit::unused_type, boost::spirit::unused_type, true>, boost::fusion::cons<boost::spirit::karma::action<boost::spirit::karma::any_uint_generator<unsigned int, boost::spirit::unused_type, boost::spirit::unused_type, 10>, boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::assign, boost::proto::argsns_::list2<boost::phoenix::actor<boost::spirit::argument<0> >, boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::phoenix::detail::tag::function_eval, boost::proto::argsns_::list2<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<mapnik::json::get_id<mapnik::feature_impl> >, 0>, boost::phoenix::actor<boost::spirit::attribute<0> > >, 2> > >, 2> > >, boost::fusion::cons<boost::spirit::karma::literal_string<char const (&)[13], boost::spirit::unused_type, boost::spirit::unused_type, true>, boost::fusion::cons<boost::spirit::karma::reference<const boost::spirit::karma::rule<std::__1::back_insert_iterator<std::__1::basic_string<char> >, const mapnik::geometry::geometry<double> &(), boost::spirit::unused_type, boost::spirit::unused_type, boost::spirit::unused_type> >, boost::fusion::cons<boost::spirit::karma::literal_string<char const (&)[15], boost::spirit::unused_type, boost::spirit::unused_type, true>, boost::fusion::cons<boost::spirit::karma::reference<const boost::spirit::karma::rule<std::__1::back_insert_iterator<std::__1::basic_string<char> >, const mapnik::feature_impl &(), boost::spirit::unused_type, boost::spirit::unused_type, boost::spirit::unused_type> >, boost::fusion::cons<boost::spirit::karma::literal_char<boost::spirit::char_encoding::standard, boost::spirit::unused_type, true>, boost::fusion::nil_> > > > > > > >, mpl_::bool_<false> > >' requested here
    self_type(f).swap(*this);
    ^
/usr/local/include/boost/spirit/home/karma/nonterminal/rule.hpp:192:19: note: in instantiation of function template specialization 'boost::function<bool (boost::spirit::karma::detail::output_iterator<std::__1::back_insert_iterator<std::__1::basic_string<char> >, mpl_::int_<15>, boost::spirit::unused_type> &, boost::spirit::context<boost::fusion::cons<const mapnik::feature_impl &, boost::fusion::nil_>, boost::fusion::vector<> > &, const boost::spirit::unused_type &)>::operator=<boost::spirit::karma::detail::generator_binder<boost::spirit::karma::sequence<boost::fusion::cons<boost::spirit::karma::literal_string<char const (&)[24], boost::spirit::unused_type, boost::spirit::unused_type, true>, boost::fusion::cons<boost::spirit::karma::action<boost::spirit::karma::any_uint_generator<unsigned int, boost::spirit::unused_type, boost::spirit::unused_type, 10>, boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::assign, boost::proto::argsns_::list2<boost::phoenix::actor<boost::spirit::argument<0> >, boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::phoenix::detail::tag::function_eval, boost::proto::argsns_::list2<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<mapnik::json::get_id<mapnik::feature_impl> >, 0>, boost::phoenix::actor<boost::spirit::attribute<0> > >, 2> > >, 2> > >, boost::fusion::cons<boost::spirit::karma::literal_string<char const (&)[13], boost::spirit::unused_type, boost::spirit::unused_type, true>, boost::fusion::cons<boost::spirit::karma::reference<const boost::spirit::karma::rule<std::__1::back_insert_iterator<std::__1::basic_string<char> >, const mapnik::geometry::geometry<double> &(), boost::spirit::unused_type, boost::spirit::unused_type, boost::spirit::unused_type> >, boost::fusion::cons<boost::spirit::karma::literal_string<char const (&)[15], boost::spirit::unused_type, boost::spirit::unused_type, true>, boost::fusion::cons<boost::spirit::karma::reference<const boost::spirit::karma::rule<std::__1::back_insert_iterator<std::__1::basic_string<char> >, const mapnik::feature_impl &(), boost::spirit::unused_type, boost::spirit::unused_type, boost::spirit::unused_type> >, boost::fusion::cons<boost::spirit::karma::literal_char<boost::spirit::char_encoding::standard, boost::spirit::unused_type, true>, boost::fusion::nil_> > > > > > > >, mpl_::bool_<false> > >' requested here
            lhs.f = detail::bind_generator<Auto>(
                  ^
/usr/local/include/boost/spirit/home/karma/nonterminal/rule.hpp:230:13: note: in instantiation of function template specialization 'boost::spirit::karma::rule<std::__1::back_insert_iterator<std::__1::basic_string<char> >, const mapnik::feature_impl &(), boost::spirit::unused_type, boost::spirit::unused_type, boost::spirit::unused_type>::define<mpl_::bool_<false>, boost::proto::exprns_::expr<boost::proto::tagns_::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::lit, boost::fusion::vector<char const (&)[24]> > >, 0> &, const boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<boost::spirit::terminal<boost::spirit::tag::uint_> &, const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::assign, boost::proto::argsns_::list2<boost::phoenix::actor<boost::spirit::argument<0> >, boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::phoenix::detail::tag::function_eval, boost::proto::argsns_::list2<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<mapnik::json::get_id<mapnik::feature_impl> >, 0>, boost::phoenix::actor<boost::spirit::attribute<0> > >, 2> > >, 2> > &>, 2> &>, 2> &, const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::lit, boost::fusion::vector<char const (&)[13]> > >, 0> &>, 2> &, mapnik::json::geometry_generator_grammar<sink_type, mapnik::geometry::geometry<double> > &>, 2> &, const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::lit, boost::fusion::vector<char const (&)[15]> > >, 0> &>, 2> &, mapnik::json::properties_generator_grammar<sink_type, mapnik::feature_impl> &>, 2> &, const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::lit, boost::fusion::vector<char> > >, 0> &>, 2> >' requested here
            define<mpl::false_>(*this, expr, traits::matches<karma::domain, Expr>());
            ^
include/mapnik/json/feature_generator_grammar_impl.hpp:41:13: note: in instantiation of function template specialization 'boost::spirit::karma::rule<std::__1::back_insert_iterator<std::__1::basic_string<char> >, const mapnik::feature_impl &(), boost::spirit::unused_type, boost::spirit::unused_type, boost::spirit::unused_type>::operator=<boost::proto::exprns_::expr<boost::proto::tagns_::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::shift_left, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::lit, boost::fusion::vector<char const (&)[24]> > >, 0> &, const boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<boost::spirit::terminal<boost::spirit::tag::uint_> &, const boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::assign, boost::proto::argsns_::list2<boost::phoenix::actor<boost::spirit::argument<0> >, boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::phoenix::detail::tag::function_eval, boost::proto::argsns_::list2<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<mapnik::json::get_id<mapnik::feature_impl> >, 0>, boost::phoenix::actor<boost::spirit::attribute<0> > >, 2> > >, 2> > &>, 2> &>, 2> &, const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::lit, boost::fusion::vector<char const (&)[13]> > >, 0> &>, 2> &, mapnik::json::geometry_generator_grammar<sink_type, mapnik::geometry::geometry<double> > &>, 2> &, const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::lit, boost::fusion::vector<char const (&)[15]> > >, 0> &>, 2> &, mapnik::json::properties_generator_grammar<sink_type, mapnik::feature_impl> &>, 2> &, const boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::lit, boost::fusion::vector<char> > >, 0> &>, 2> >' requested here
    feature = lit("{\"type\":\"Feature\",\"id\":")
            ^
Comment 1 Jan Beich freebsd_committer 2019-04-12 09:44:16 UTC
The port has been marked BROKEN in ports r498698.
Comment 2 Pokemon999 2019-06-17 07:19:14 UTC
MARKED AS SPAM
Comment 4 Walter Schwarzenfeld freebsd_triage 2019-09-20 17:58:46 UTC
There are a lot of newer versions:

https://github.com/mapnik/mapnik/releases
Comment 5 Ting-Wei Lan 2019-09-21 03:31:51 UTC
(In reply to Walter Schwarzenfeld from comment #4)
As far as I know, mapnik 3.0.22 still doesn't work with boost ≥ 1.70.
Comment 6 Ting-Wei Lan 2019-10-21 16:46:57 UTC
Now it failed even earlier than before. Mapnik doesn't work with scons 3.1.1. Downgrading scons to 3.0.1 fixes the problem, but it still doesn't build with boost 1.71. https://github.com/mapnik/mapnik/issues/4081

===>  Building for mapnik-3.0.9_29
scons: Reading SConscript files ...

Welcome to Mapnik...

Configuring build environment...
Configuring on FreeBSD in *release mode*...
Checking for freetype-config... yes
Checking for dlfcn.h support ... yes
Checking if compiler (c++) supports -std=c++11 flag... (cached) yes
Checking for C library z... yes
Checking for C++ library icuuc... yes
Checking for ICU version >= 4.2... found: icu 65.1
(cached) Checking for C++ library harfbuzz... yes
Checking for HarfBuzz version >= 0.9.34... found: HarfBuzz 2.6.2
Checking for HarfBuzz with freetype support
(cached) yes
Searching for boost libs and headers... (cached)
Found boost libs: /usr/local/lib
Found boost headers: /usr/local/include
Checking for C++ header file boost/version.hpp... yes
Checking for Boost version >= 1.47... yes
Found boost lib version... 1_71
KeyError: 'BOOST_APPEND':
  File "/tmp/wrkdirs/usr/ports/graphics/mapnik/work/mapnik-v3.0.9/SConstruct", line 1435:
    if not conf.CheckLibWithHeader('boost_%s%s' % (libinfo[0],env['BOOST_APPEND']), libinfo[1], 'C++'):
  File "/usr/local/lib/scons/SCons/Environment.py", line 410:
    return self._dict[key]
Comment 7 commit-hook freebsd_committer 2019-10-24 00:49:04 UTC
A commit references this bug:

Author: jbeich
Date: Thu Oct 24 00:48:34 UTC 2019
New revision: 515312
URL: https://svnweb.freebsd.org/changeset/ports/515312

Log:
  devel/boost-libs: backport spirit regression fix

  PR:		237016
  Suggested by:	mapnik upstream
  MFH:		2019Q4

Changes:
  head/devel/boost-libs/Makefile
  head/devel/boost-libs/files/patch-boost_spirit_home_x3_nonterminal_detail_rule.hpp
Comment 8 Jan Beich freebsd_committer 2019-10-24 01:31:02 UTC
https://github.com/mapnik/mapnik/pull/4094 is Boost fix. Hopefully, bug 241449 won't regress it more.
Comment 9 Jan Beich freebsd_committer 2019-12-12 15:05:40 UTC
portmgr@ scheduled the port for removal in ports r519652.
Comment 10 Jan Beich freebsd_committer 2019-12-13 18:04:39 UTC
Created attachment 209914 [details]
master (pre-4.0) snapshot

Upstream fixed all Boost issues but not SCons. Patch and build log provided but I haven't tested runtime (don't use this port). If someone can improve upon it or backport Boost fixes to the current version (or v3.0.x snapshot) before the scheduled removal that would be nice.

https://github.com/mapnik/mapnik/files/3962045/mapnik-3.0.12.1078.log
Comment 11 Rene Ladan freebsd_committer 2020-01-10 20:48:23 UTC
Expired port removed.