Bug 215599 - www/wt: fails to build with boost 1.63
Summary: www/wt: fails to build with boost 1.63
Status: Closed FIXED
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: patch
Depends on:
Blocks: 215598
  Show dependency treegraph
 
Reported: 2016-12-27 07:55 UTC by Jan Beich
Modified: 2016-12-31 16:08 UTC (History)
1 user (show)

See Also:
info: maintainer-feedback+


Attachments
v0 (1.80 KB, patch)
2016-12-27 11: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 2016-12-27 07:55:14 UTC
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
Comment 1 Mohammad S. Babaei 2016-12-27 08:45:47 UTC
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.
Comment 2 Jan Beich freebsd_committer 2016-12-27 10:03:19 UTC
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)
                     ^~~~
Comment 3 Jan Beich freebsd_committer 2016-12-27 11:04:20 UTC
Created attachment 178318 [details]
v0

Does this look correct?
Comment 4 Mohammad S. Babaei 2016-12-27 14:54:17 UTC
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
Comment 5 commit-hook freebsd_committer 2016-12-31 16:07:35 UTC
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