In file included from wt-3.3.6/src/Wt/Render/CssParser.C:26: In file included from /usr/local/include/boost/spirit/include/qi.hpp:16: In file included from /usr/local/include/boost/spirit/home/qi.hpp:15: In file included from /usr/local/include/boost/spirit/home/qi/auto.hpp:15: In file included from /usr/local/include/boost/spirit/home/qi/auto/auto.hpp:13: In file included from /usr/local/include/boost/spirit/home/support/common_terminals.hpp:15: In file included from /usr/local/include/boost/spirit/home/support/terminal.hpp:18: In file included from /usr/local/include/boost/spirit/include/phoenix_function.hpp:11: In file included from /usr/local/include/boost/phoenix/function.hpp:11: In file included from /usr/local/include/boost/phoenix/function/function.hpp:58: In file included from /usr/local/include/boost/phoenix/function/detail/cpp03/function_operator.hpp:6: In file included from /usr/local/include/boost/phoenix/function/detail/cpp03/preprocessed/function_operator.hpp:12: /usr/local/include/boost/phoenix/function/detail/cpp03/preprocessed/function_operator_10.hpp:91:105: error: cannot initialize a parameter of type 'char *' with an lvalue of type 'char const[17]' return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4>::make(f, a0 , a1 , a2 , a3 , a4); ^~ wt-3.3.6/src/Wt/Render/CssParser.C:375:5: note: in instantiation of function template specialization 'boost::phoenix::function<ErrorReporting<std::__1::__wrap_iter<const char *> > >::operator()<boost::phoenix::actor<boost::spirit::argument<1> >, boost::phoenix::actor<boost::spirit::argument<2> >, boost::phoenix::actor<boost::spirit::argument<3> >, char [17], fs_error_tag>' requested here error_report(qi::_2, qi::_3, qi::_4, "styleSheetText()", fs_error_tag()) ^ wt-3.3.6/src/Wt/Render/CssParser.C:449:43: note: in instantiation of member function 'CssGrammer<std::__1::__wrap_iter<const char *> >::CssGrammer' requested here CssGrammer<std::string::const_iterator> cssGrammer; ^ /usr/local/include/boost/phoenix/core/expression.hpp:63:65: note: passing argument to parameter 'a' here static type make(typename call_traits<A>::param_type... a) ^ full build log: http://sprunge.us/NdAN
Thank you for reporting this. I won't be able to reproduce the error since all my FreeBSD boxes are using Boost 1.62.0 at the moment. And, as far as I know the official supported version of boost on FreeBSD is 1.62.0: https://www.freebsd.org/cgi/ports.cgi?query=boost&stype=name I'd say this bug should be reported to the upstream since the issue is not related to FreeBSD. From my inspection, it's happening due to Wt and Boost 1.63.0 incompatibility (probably on Clang). You can report this bug to the upstream here: http://redmine.webtoolkit.eu/projects/wt/issues Otherwise, please let me know and I open an issue on their bug-tracker.
Bug 215598 is unlikely to wait on just one leaf port ending up BROKEN. If you want to make sure the port still builds, please, inform upstream. I'll try to help but otherwise not really interested in registering on every third-party bugtracker. FreeBSD 9.3 i386 uses lang/gcc to build www/wt and still fails: http://sprunge.us/dUQG Or here's an excerpt from FreeBSD 12.0 forced to use lang/gcc6: [ 4%] Building CXX object src/CMakeFiles/wt.dir/Wt/Render/CssParser.o cd /usr/ports/www/wt/work/.build/src && /usr/local/bin/g++6 -DBOOST_SPIRIT_THREADSAFE -DGLEW_STATIC -DHAVE_GRAPHICSMAGICK -DHAVE_PANGO -DHAVE_PDF_IMAGE -DWT_BUILDING -DWT_WITH_OLD_INTERNALPATH_API -D_REENTRANT -Dwt_EXPORTS -I/usr/ports/www/wt/work/.build -I/usr/ports/www/wt/work/wt-3.3.6/src/web -I/usr/ports/www/wt/work/wt-3.3.6/src -I/usr/ports/www/wt/work/.build/src -I/usr/ports/www/wt/work/wt-3.3.6/src/Wt/Dbo/backend/amalgamation -I/usr/ports/www/wt/work/wt-3.3.6/src/3rdparty/glew-1.10.0/include -I/usr/local/include -I/usr/local/include/GraphicsMagick -I/usr/local/include/pango-1.0 -I/usr/local/include/freetype2 -I/usr/local/include/glib-2.0 -I/usr/local/lib/glib-2.0/include -O2 -pipe -fstack-protector -std=c++0x -O2 -pipe -fstack-protector -fPIC -o CMakeFiles/wt.dir/Wt/Render/CssParser.o -c /usr/ports/www/wt/work/wt-3.3.6/src/Wt/Render/CssParser.C In file included from /usr/local/include/boost/phoenix/function/detail/cpp03/preprocessed/function_operator.hpp:12:0, from /usr/local/include/boost/phoenix/function/detail/cpp03/function_operator.hpp:6, from /usr/local/include/boost/phoenix/function/function.hpp:58, from /usr/local/include/boost/phoenix/function.hpp:11, from /usr/local/include/boost/spirit/include/phoenix_function.hpp:11, from /usr/local/include/boost/spirit/home/support/terminal.hpp:18, from /usr/local/include/boost/spirit/home/support/common_terminals.hpp:15, from /usr/local/include/boost/spirit/home/qi/auto/auto.hpp:13, from /usr/local/include/boost/spirit/home/qi/auto.hpp:15, from /usr/local/include/boost/spirit/home/qi.hpp:15, from /usr/local/include/boost/spirit/include/qi.hpp:16, from /tmp/a/overlay/git-ports/www/wt/work/wt-3.3.6/src/Wt/Render/CssParser.C:26: /usr/local/include/boost/phoenix/function/detail/cpp03/preprocessed/function_operator_10.hpp: In instantiation of 'const typename boost::phoenix::detail::expression::function_eval<F, A0, A1, A2, A3, A4>::type boost::phoenix::function<F>::operator()(const A0&, const A1&, const A2&, const A3&, const A4&) const [with A0 = boost::phoenix::actor<boost::spirit::argument<1> >; A1 = boost::phoenix::actor<boost::spirit::argument<2> >; A2 = boost::phoenix::actor<boost::spirit::argument<3> >; A3 = char [17]; A4 = fs_error_tag; F = ErrorReporting<__gnu_cxx::__normal_iterator<const char*, std::__cxx11::basic_string<char> > >; typename boost::phoenix::detail::expression::function_eval<F, A0, A1, A2, A3, A4>::type = boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::phoenix::detail::tag::function_eval, boost::proto::argsns_::list6<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<ErrorReporting<__gnu_cxx::__normal_iterator<const char*, std::__cxx11::basic_string<char> > > >, 0l>, boost::phoenix::actor<boost::spirit::argument<1> >, boost::phoenix::actor<boost::spirit::argument<2> >, boost::phoenix::actor<boost::spirit::argument<3> >, boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<char*>, 0l>, boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<fs_error_tag>, 0l> >, 6l> >]': /tmp/a/overlay/git-ports/www/wt/work/wt-3.3.6/src/Wt/Render/CssParser.C:375:17: required from 'CssGrammer<Iterator>::CssGrammer() [with Iterator = __gnu_cxx::__normal_iterator<const char*, std::__cxx11::basic_string<char> >]' /tmp/a/overlay/git-ports/www/wt/work/wt-3.3.6/src/Wt/Render/CssParser.C:449:43: required from here /usr/local/include/boost/phoenix/function/detail/cpp03/preprocessed/function_operator_10.hpp:91:86: error: invalid conversion from 'const char*' to 'param_type {aka char*}' [-fpermissive] return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4>::make(f, a0 , a1 , a2 , a3 , a4); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/local/include/boost/phoenix/core/argument.hpp:14:0, from /usr/local/include/boost/phoenix/core.hpp:15, from /usr/local/include/boost/spirit/include/phoenix_core.hpp:11, from /usr/local/include/boost/spirit/home/support/make_component.hpp:15, from /usr/local/include/boost/spirit/home/support/meta_compiler.hpp:20, from /usr/local/include/boost/spirit/home/qi/meta_compiler.hpp:14, from /usr/local/include/boost/spirit/home/qi/action/action.hpp:14, from /usr/local/include/boost/spirit/home/qi/action.hpp:14, from /usr/local/include/boost/spirit/home/qi.hpp:14, from /usr/local/include/boost/spirit/include/qi.hpp:16, from /tmp/a/overlay/git-ports/www/wt/work/wt-3.3.6/src/Wt/Render/CssParser.C:26: /usr/local/include/boost/phoenix/core/expression.hpp:63:21: note: initializing argument 5 of 'static boost::phoenix::expr_ext<Actor, Tag, A>::type boost::phoenix::expr_ext<Actor, Tag, A>::make(typename boost::call_traits<A>::param_type ...) [with Actor = boost::phoenix::actor; Tag = boost::phoenix::detail::tag::function_eval; A = {ErrorReporting<__gnu_cxx::__normal_iterator<const char*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > >, boost::phoenix::actor<boost::spirit::argument<1> >, boost::phoenix::actor<boost::spirit::argument<2> >, boost::phoenix::actor<boost::spirit::argument<3> >, char*, fs_error_tag}; boost::phoenix::expr_ext<Actor, Tag, A>::type = boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::phoenix::detail::tag::function_eval, boost::proto::argsns_::list6<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<ErrorReporting<__gnu_cxx::__normal_iterator<const char*, std::__cxx11::basic_string<char> > > >, 0l>, boost::phoenix::actor<boost::spirit::argument<1> >, boost::phoenix::actor<boost::spirit::argument<2> >, boost::phoenix::actor<boost::spirit::argument<3> >, boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<char*>, 0l>, boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<fs_error_tag>, 0l> >, 6l> >]' static type make(typename call_traits<A>::param_type... a) ^~~~ In file included from /usr/local/include/boost/phoenix/function/detail/cpp03/preprocessed/function_operator.hpp:12:0, from /usr/local/include/boost/phoenix/function/detail/cpp03/function_operator.hpp:6, from /usr/local/include/boost/phoenix/function/function.hpp:58, from /usr/local/include/boost/phoenix/function.hpp:11, from /usr/local/include/boost/spirit/include/phoenix_function.hpp:11, from /usr/local/include/boost/spirit/home/support/terminal.hpp:18, from /usr/local/include/boost/spirit/home/support/common_terminals.hpp:15, from /usr/local/include/boost/spirit/home/qi/auto/auto.hpp:13, from /usr/local/include/boost/spirit/home/qi/auto.hpp:15, from /usr/local/include/boost/spirit/home/qi.hpp:15, from /usr/local/include/boost/spirit/include/qi.hpp:16, from /tmp/a/overlay/git-ports/www/wt/work/wt-3.3.6/src/Wt/Render/CssParser.C:26: /usr/local/include/boost/phoenix/function/detail/cpp03/preprocessed/function_operator_10.hpp: In instantiation of 'const typename boost::phoenix::detail::expression::function_eval<F, A0, A1, A2, A3, A4>::type boost::phoenix::function<F>::operator()(const A0&, const A1&, const A2&, const A3&, const A4&) const [with A0 = boost::phoenix::actor<boost::spirit::argument<1> >; A1 = boost::phoenix::actor<boost::spirit::argument<2> >; A2 = boost::phoenix::actor<boost::spirit::argument<3> >; A3 = char [17]; A4 = fs_error_tag; F = ErrorReporting<boost::spirit::classic::file_iterator<> >; typename boost::phoenix::detail::expression::function_eval<F, A0, A1, A2, A3, A4>::type = boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::phoenix::detail::tag::function_eval, boost::proto::argsns_::list6<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<ErrorReporting<boost::spirit::classic::file_iterator<> > >, 0l>, boost::phoenix::actor<boost::spirit::argument<1> >, boost::phoenix::actor<boost::spirit::argument<2> >, boost::phoenix::actor<boost::spirit::argument<3> >, boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<char*>, 0l>, boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<fs_error_tag>, 0l> >, 6l> >]': /tmp/a/overlay/git-ports/www/wt/work/wt-3.3.6/src/Wt/Render/CssParser.C:375:17: required from 'CssGrammer<Iterator>::CssGrammer() [with Iterator = boost::spirit::classic::file_iterator<>]' /tmp/a/overlay/git-ports/www/wt/work/wt-3.3.6/src/Wt/Render/CssParser.C:475:56: required from here /usr/local/include/boost/phoenix/function/detail/cpp03/preprocessed/function_operator_10.hpp:91:86: error: invalid conversion from 'const char*' to 'param_type {aka char*}' [-fpermissive] return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4>::make(f, a0 , a1 , a2 , a3 , a4); ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from /usr/local/include/boost/phoenix/core/argument.hpp:14:0, from /usr/local/include/boost/phoenix/core.hpp:15, from /usr/local/include/boost/spirit/include/phoenix_core.hpp:11, from /usr/local/include/boost/spirit/home/support/make_component.hpp:15, from /usr/local/include/boost/spirit/home/support/meta_compiler.hpp:20, from /usr/local/include/boost/spirit/home/qi/meta_compiler.hpp:14, from /usr/local/include/boost/spirit/home/qi/action/action.hpp:14, from /usr/local/include/boost/spirit/home/qi/action.hpp:14, from /usr/local/include/boost/spirit/home/qi.hpp:14, from /usr/local/include/boost/spirit/include/qi.hpp:16, from /tmp/a/overlay/git-ports/www/wt/work/wt-3.3.6/src/Wt/Render/CssParser.C:26: /usr/local/include/boost/phoenix/core/expression.hpp:63:21: note: initializing argument 5 of 'static boost::phoenix::expr_ext<Actor, Tag, A>::type boost::phoenix::expr_ext<Actor, Tag, A>::make(typename boost::call_traits<A>::param_type ...) [with Actor = boost::phoenix::actor; Tag = boost::phoenix::detail::tag::function_eval; A = {ErrorReporting<boost::spirit::classic::file_iterator<char, boost::spirit::classic::fileiter_impl::mmap_file_iterator<char> > >, boost::phoenix::actor<boost::spirit::argument<1> >, boost::phoenix::actor<boost::spirit::argument<2> >, boost::phoenix::actor<boost::spirit::argument<3> >, char*, fs_error_tag}; boost::phoenix::expr_ext<Actor, Tag, A>::type = boost::phoenix::actor<boost::proto::exprns_::basic_expr<boost::phoenix::detail::tag::function_eval, boost::proto::argsns_::list6<boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<ErrorReporting<boost::spirit::classic::file_iterator<> > >, 0l>, boost::phoenix::actor<boost::spirit::argument<1> >, boost::phoenix::actor<boost::spirit::argument<2> >, boost::phoenix::actor<boost::spirit::argument<3> >, boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<char*>, 0l>, boost::proto::exprns_::basic_expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<fs_error_tag>, 0l> >, 6l> >]' static type make(typename call_traits<A>::param_type... a) ^~~~
Created attachment 178318 [details] v0 Does this look correct?
OK, I turned off my ccache and rebuilt the port using your patch and it was built just fine. I rebuilt and ran one of my Wt projects against the newly-built port and everything seems fine in terms of functionality. So, I'll change the maintainer-feedback status to approved. I also opened a pull-request with your changes on the upstream GitHub repository: https://github.com/emweb/wt/pull/102
A commit references this bug: Author: jbeich Date: Sat Dec 31 16:06:29 UTC 2016 New revision: 430140 URL: https://svnweb.freebsd.org/changeset/ports/430140 Log: www/wt: unbreak with boost 1.63 In file included from wt-3.3.6/src/Wt/Render/CssParser.C:26: [...] /usr/local/include/boost/phoenix/function/detail/cpp03/preprocessed/function_operator_10.hpp:91:105: error: cannot initialize a parameter of type 'char *' with an lvalue of type 'char const[17]' return detail::expression::function_eval<F, A0 , A1 , A2 , A3 , A4>::make(f, a0 , a1 , a2 , a3 , a4); ^~ PR: 215599 Approved by: Mohammad S. Babaei (maintainer) Changes: head/www/wt/Makefile head/www/wt/files/patch-src_Wt_Render_CssParser.C