Bug#951253: FTBFS with Boost 1.71
On 2/21/20 8:49 AM, Sebastiaan Couwenberg wrote: > On 2/13/20 1:50 PM, Giovanni Mascellani wrote: >> Il 13/02/20 12:11, Bas Couwenberg ha scritto: >>> Mapnik releases have become much more infrequent, there is not much >>> demand for releases from Mapbox which uses development snapshots. >> >> Right. Actually, artemp mentions in the upstream issue that he's >> planning to release 3.0.23 asap, but I don't really know when this will >> happen. > > The mapnik 3.0.23 release happened, and it builds successfully with the > boost1.71 (1.71.0-6) packages from unstable when using boost-defaults > from experimental. Not sure if it also works correctly at runtime. > > Once I've completed test rebuilds of the rdeps I'll move it to unstable. Unfortunately python-mapnik FTBFS with mapnik 3.0.23, so I'll keep mapnik in experimental for a bit to give upstream time to fix python-mapnik. https://github.com/mapnik/python-mapnik/issues/223 Kind Regards, Bas -- GPG Key ID: 4096R/6750F10AE88D4AF1 Fingerprint: 8182 DE41 7056 408D 6146 50D1 6750 F10A E88D 4AF1
Bug#951253: FTBFS with Boost 1.71
Hi, Il 13/02/20 13:56, Bas Couwenberg ha scritto: >> Er, no actual reason. This setup works for me and nobody ever asked me >> to upload to experimental. I can do that anyway, if that's better for >> you. > > Yes, please. Done. Giovanni. -- Giovanni Mascellani Postdoc researcher - Université Libre de Bruxelles
Bug#951253: FTBFS with Boost 1.71
On 2020-02-13 13:50, Giovanni Mascellani wrote: Il 13/02/20 12:11, Bas Couwenberg ha scritto: deb https://people.debian.org/~gio/reprepro gio main Why isn't the new boost-defaults (also) in experimental? Er, no actual reason. This setup works for me and nobody ever asked me to upload to experimental. I can do that anyway, if that's better for you. Yes, please. Myself and others already have chroots with experimental available for these kinds of rebuild tests, no needs to create one with your repo for boost-defaults. Kind Regards, Bas
Bug#951253: FTBFS with Boost 1.71
Hi, Il 13/02/20 12:11, Bas Couwenberg ha scritto: >> deb https://people.debian.org/~gio/reprepro gio main > > Why isn't the new boost-defaults (also) in experimental? Er, no actual reason. This setup works for me and nobody ever asked me to upload to experimental. I can do that anyway, if that's better for you. > Thanks for looking into the upstream fix. > > It seems Gentoo people already reported the issue for Boost 1.70: > > https://github.com/mapnik/mapnik/issues/4098 > > Which contains the comment: > > " > Boost Spirit 1.71 has a small bug which is fixed on 1.72 > " > > Can't we transition to 1.72 in Debian as well, or cherry-pick the spirit > fix? I won't start working on any newer Boost version until 1.71 is made default. However there is still a lot of time for bullseye, so I'd say it's quite probable that we will have Boost >= 1.72 in bullseye. In this case I think it is reasonable to temporarily make mapnik depend on Boost 1.67 and fix it once 1.72+ is in. At the same time I don't have any problem in backporting the fix Boost.Spirit needs (if it's a reasonable patch), except that I don't quite understand which one it is. > Mapnik releases have become much more infrequent, there is not much > demand for releases from Mapbox which uses development snapshots. Right. Actually, artemp mentions in the upstream issue that he's planning to release 3.0.23 asap, but I don't really know when this will happen. And, still, we would need to fix Boost 1.71. I asked for pointers on the upstream issue. > If we can't get mapnik to work with the default boost in bullseye, we'll > just not ship it and its rdeps. Hopefully this extreme solution won't be required. :-) Thanks, Giovanni. -- Giovanni Mascellani Postdoc researcher - Université Libre de Bruxelles
Bug#951253: FTBFS with Boost 1.71
Control: tags -1 upstream Control: forwarded -1 https://github.com/mapnik/mapnik/issues/4098 On 2020-02-13 11:08, Giovanni Mascellani wrote: your package fails to build with boost1.71. You can find a build log attached. If you want to attempt the build yourself, an updated version of boost-defaults which brings in boost1.71 dependencies can be found adding this line to your sources.list file: deb https://people.debian.org/~gio/reprepro gio main Why isn't the new boost-defaults (also) in experimental? Apparently something changed in Boost.Spirit, and it doesn't like any more the way mapnik uses it. Unfortunately it is not easy for me, without knowing the code, understand how to prepare a patch for this. Apparently upstream has fixed compatibility with Boost 1.71 in master, but that patch is not released yet and it doesn't apply to the tree currently in Debian. Thanks for looking into the upstream fix. It seems Gentoo people already reported the issue for Boost 1.70: https://github.com/mapnik/mapnik/issues/4098 Which contains the comment: " Boost Spirit 1.71 has a small bug which is fixed on 1.72 " Can't we transition to 1.72 in Debian as well, or cherry-pick the spirit fix? I think the easiest solution would be to just package the next upstream version as soon as it is released. Do you have an idea on when this might happen? In the meantime, once Boost 1.71 is promoted to default, you can update your dependencies to explicitly use Boost 1.67, which will not be removed immediately from unstable (unless, of course, you want to write a patch for mapnik, but to me that seems a waste of time). Mapnik releases have become much more infrequent, there is not much demand for releases from Mapbox which uses development snapshots. Based on the discussion in the upstream issue, we're likely able to cherry-pick the upstream commit to have 3.0.x build with boost1.72, but likely not with 1.71. However, the plan is to not release Boost 1.67 with bullseye, so I hope that upstream will release before Debian will. Do you think this is a viable plan? If we can't get mapnik to work with the default boost in bullseye, we'll just not ship it and its rdeps. While Mapnik is important to the OpenStreetMap project, I won't let it block progress in Debian. Kind Regards, Bas
Bug#951253: FTBFS with Boost 1.71
Package: mapnik Version: 3.0.22+ds1-1 Severity: wishlist User: team+bo...@tracker.debian.org Usertags: boost1.71 Dear Maintainer, your package fails to build with boost1.71. You can find a build log attached. If you want to attempt the build yourself, an updated version of boost-defaults which brings in boost1.71 dependencies can be found adding this line to your sources.list file: deb https://people.debian.org/~gio/reprepro gio main This bug has severity whishlist for the moment, but it will raised to RC as soon as version 1.71 of Boost is promoted to default. The error is: > In file included from /usr/include/boost/type_traits/is_convertible.hpp:20, > from /usr/include/boost/proto/matches.hpp:38, > from /usr/include/boost/phoenix/core/domain.hpp:12, > from /usr/include/boost/phoenix/core/actor.hpp:18, > from /usr/include/boost/phoenix/core.hpp:12, > from /usr/include/boost/spirit/include/phoenix_core.hpp:11, > from /usr/include/boost/spirit/home/support/terminal.hpp:17, > from > /usr/include/boost/spirit/home/support/common_terminals.hpp:15, > from /usr/include/boost/spirit/home/karma/char/char.hpp:14, > from /usr/include/boost/spirit/home/karma/char.hpp:13, > from /usr/include/boost/spirit/home/karma.hpp:13, > from /usr/include/boost/spirit/include/karma.hpp:16, > from include/mapnik/json/geometry_generator_grammar.hpp:33, > from src/json/mapnik_geometry_to_geojson.cpp:25: > /usr/include/boost/spirit/home/support/attributes.hpp: In instantiation of > ‘struct boost::spirit::traits::transform_attribute mapnik::geometry::geometry, const > mapnik::geometry::geometry&, boost::spirit::karma::domain, void>’: > /usr/include/boost/spirit/home/karma/nonterminal/rule.hpp:293:42: required > from ‘bool boost::spirit::karma::rule T4>::generate(boost::spirit::karma::rule T4>::output_iterator&, Context&, const Delimiter&, const Attribute&) const > [with Context = boost::spirit::context mapnik::geometry::geometry&, boost::fusion::nil_>, > boost::spirit::locals<> >; Delimiter = boost::spirit::unused_type; Attribute > = mapnik::geometry::geometry; OutputIterator = > std::back_insert_iterator >; T1 = const > mapnik::geometry::geometry&(); T2 = boost::spirit::unused_type; T3 = > boost::spirit::unused_type; T4 = boost::spirit::unused_type; > boost::spirit::karma::rule::output_iterator = > boost::spirit::karma::detail::output_iterator > >, mpl_::int_<15>, boost::spirit::unused_type>]’ > /usr/include/boost/spirit/home/karma/reference.hpp:46:65: required from > ‘bool boost::spirit::karma::reference::generate(OutputIterator&, > Context&, const Delimiter&, const Attribute&) const [with OutputIterator = > boost::spirit::karma::detail::output_iterator > >, mpl_::int_<15>, boost::spirit::unused_type>; Context = > boost::spirit::context mapnik::geometry::geometry&, boost::fusion::nil_>, > boost::spirit::locals<> >; Delimiter = boost::spirit::unused_type; Attribute > = mapnik::geometry::geometry; Subject = const > boost::spirit::karma::rule > >, const mapnik::geometry::geometry&(), boost::spirit::unused_type, > boost::spirit::unused_type, boost::spirit::unused_type>]’ > /usr/include/boost/spirit/home/karma/generate.hpp:69:81: required from > ‘bool > boost::spirit::karma::generate(boost::spirit::karma::detail::output_iterator Derived>&, const Expr&, const Attr&) [with OutputIterator = > std::back_insert_iterator >; Properties = > mpl_::int_<15>; Expr = > mapnik::json::geometry_generator_grammar > >, mapnik::geometry::geometry >; Attr = > mapnik::geometry::geometry]’ > /usr/include/boost/spirit/home/karma/generate.hpp:91:31: required from > ‘bool boost::spirit::karma::generate(OutputIterator&, const Expr&, const > Attr&) [with OutputIterator = > std::back_insert_iterator >; Expr = > mapnik::json::geometry_generator_grammar > >, mapnik::geometry::geometry >; Attr = > mapnik::geometry::geometry]’ > src/json/mapnik_geometry_to_geojson.cpp:34:62: required from here > /usr/include/boost/spirit/home/support/attributes.hpp:963:9: error: static > assertion failed: Transformed cannot be a reference type > 963 | BOOST_STATIC_ASSERT_MSG(!is_reference::value, > | ^~~ Apparently something changed in Boost.Spirit, and it doesn't like any more the way mapnik uses it. Unfortunately it is not easy for me, without knowing the code, understand how to prepare a patch for this. Apparently upstream has fixed compatibility with Boost 1.71 in master, but that patch is not released yet and it doesn't apply to the tree currently in Debian. I think the easiest solution would be to just package the next upstream version as soon as it is released. Do you have an idea on when this might happen? In the meantime, once Boost 1.71 is promoted to