Compiling Wt 4.0.2 on OpenBSD 6.2
Added by Timo Pallach about 7 years ago
Hello,
I am trying to build Wt on OpenBSD 6.2.
On a clean OpenBSD 6.2 installation I run the following commands:
cd ~
export PKG_PATH='http://ftp.eu.openbsd.org/pub/OpenBSD/6.2/packages/amd64/'
pkg_add cmake boost gmake fcgi
ftp https://github.com/emweb/wt/archive/4.0.2.tar.gz
tar xzf 4.0.2.tar.gz
cd wt-4.0.2
sed -i 's/# include <wordexp.h>/\/\/# include <wordexp.h>/g' src/Wt/Date/tz.cpp
mkdir build
cd build
cmake ..
gmake
I get the following error messages:
[ 59%] Building CXX object src/CMakeFiles/wt.dir/Wt/Core/observing_ptr.cpp.o
[ 59%] Building CXX object src/CMakeFiles/wt.dir/Wt/Date/tz.cpp.o
[ 59%] Building CXX object src/CMakeFiles/wt.dir/Wt/Json/Array.C.o
[ 60%] Building CXX object src/CMakeFiles/wt.dir/Wt/Json/Object.C.o
[ 60%] Building CXX object src/CMakeFiles/wt.dir/Wt/Json/Parser.C.o
In file included from /root/wt-4.0.2/src/Wt/Json/Parser.C:23:
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:14:
In file included from /usr/local/include/boost/spirit/home/qi/action.hpp:14:
In file included from /usr/local/include/boost/spirit/home/qi/action/action.hpp:21:
/usr/local/include/boost/spirit/home/support/action_dispatch.hpp:162:13: error: no matching function for call to object of type 'const (lambda at /root/wt-4.0.2/src/Wt/Json/Parser.C:95:30)'
f(attr, context, pass);
^
/usr/local/include/boost/spirit/home/qi/action/action.hpp:69:21: note: in instantiation of function template specialization 'boost::spirit::traits::action_dispatch<boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false>
>::operator()<(lambda at /root/wt-4.0.2/src/Wt/Json/Parser.C:95:30), boost::spirit::unused_type, boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type &, boost::fusion::nil_>, boost::fusion::vector0<void> > >' requested here
if (traits::action_dispatch<Subject>()(f, attr, context))
^
/usr/local/include/boost/spirit/home/qi/detail/fail_function.hpp:45:31: note: in instantiation of function template specialization 'boost::spirit::qi::action<boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false>,
(lambda at /root/wt-4.0.2/src/Wt/Json/Parser.C:95:30)>::parse<std::__1::__wrap_iter<const char *>, boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type &, boost::fusion::nil_>, boost::fusion::vector0<void> >,
boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> >, const boost::spirit::unused_type>' requested here
return !component.parse(first, last, context, skipper, unused);
^
/usr/local/include/boost/fusion/algorithm/query/detail/any.hpp:40:16: note: in instantiation of function template specialization 'boost::spirit::qi::detail::fail_function<std::__1::__wrap_iter<const char *>,
boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type &, boost::fusion::nil_>, boost::fusion::vector0<void> >, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::space,
boost::spirit::char_encoding::standard> > >::operator()<boost::spirit::qi::action<boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false>, (lambda at /root/wt-4.0.2/src/Wt/Json/Parser.C:95:30)> >' requested here
return f(x) ||
^
/usr/local/include/boost/fusion/algorithm/query/detail/any.hpp:53:24: note: in instantiation of function template specialization 'boost::fusion::detail::linear_any<boost::fusion::cons_iterator<const
boost::fusion::cons<boost::spirit::qi::action<boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false>, (lambda at /root/wt-4.0.2/src/Wt/Json/Parser.C:95:30)>,
boost::fusion::cons<boost::spirit::qi::optional<boost::spirit::qi::list<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::__1::__wrap_iter<const char *>, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,
boost::proto::argsns_::term<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> >, 0>, boost::spirit::unused_type, boost::spirit::unused_type, boost::spirit::unused_type> >,
boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false> > >, boost::fusion::cons<boost::spirit::qi::action<boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false>,
(lambda at /root/wt-4.0.2/src/Wt/Json/Parser.C:102:28)>, boost::fusion::nil_> > > >, boost::fusion::cons_iterator<const boost::fusion::nil_>, boost::spirit::qi::detail::fail_function<std::__1::__wrap_iter<const char *>,
boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type &, boost::fusion::nil_>, boost::fusion::vector0<void> >, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::space,
boost::spirit::char_encoding::standard> > > >' requested here
return detail::linear_any(
^
/usr/local/include/boost/fusion/algorithm/query/any.hpp:32:24: note: in instantiation of function template specialization
'boost::fusion::detail::any<boost::fusion::cons<boost::spirit::qi::action<boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false>, (lambda at /root/wt-4.0.2/src/Wt/Json/Parser.C:95:30)>,
boost::fusion::cons<boost::spirit::qi::optional<boost::spirit::qi::list<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::__1::__wrap_iter<const char *>, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,
boost::proto::argsns_::term<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> >, 0>, boost::spirit::unused_type, boost::spirit::unused_type, boost::spirit::unused_type> >,
boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false> > >, boost::fusion::cons<boost::spirit::qi::action<boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false>,
(lambda at /root/wt-4.0.2/src/Wt/Json/Parser.C:102:28)>, boost::fusion::nil_> > >, boost::spirit::qi::detail::fail_function<std::__1::__wrap_iter<const char *>, boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type &,
boost::fusion::nil_>, boost::fusion::vector0<void> >, boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> > >, boost::fusion::forward_traversal_tag>' requested here
return detail::any(seq, f, typename traits::category_of<Sequence>::type());
^
/usr/local/include/boost/spirit/home/support/algorithm/any_if.hpp:214:24: note: (skipping 10 contexts in backtrace; use -ftemplate-backtrace-limit=0 to see all)
return fusion::any(seq, f);
^
/usr/local/include/boost/spirit/home/qi/nonterminal/rule.hpp:183:19: note: in instantiation of function template specialization 'boost::function<bool (std::__1::__wrap_iter<const char *> &, const std::__1::__wrap_iter<const char *> &,
boost::spirit::context<boost::fusion::cons<boost::spirit::unused_type &, boost::fusion::nil_>, boost::fusion::vector0<void> > &, const boost::spirit::qi::char_class<boost::spirit::tag::char_code<boost::spirit::tag::space,
boost::spirit::char_encoding::standard> >
&)>::operator=<boost::spirit::qi::detail::parser_binder<boost::spirit::qi::sequence<boost::fusion::cons<boost::spirit::qi::action<boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false>,
(lambda at /root/wt-4.0.2/src/Wt/Json/Parser.C:95:30)>, boost::fusion::cons<boost::spirit::qi::optional<boost::spirit::qi::list<boost::spirit::qi::reference<const boost::spirit::qi::rule<std::__1::__wrap_iter<const char *>,
boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> >, 0>, boost::spirit::unused_type,
boost::spirit::unused_type, boost::spirit::unused_type> >, boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false> > >,
boost::fusion::cons<boost::spirit::qi::action<boost::spirit::qi::literal_char<boost::spirit::char_encoding::standard, true, false>, (lambda at /root/wt-4.0.2/src/Wt/Json/Parser.C:102:28)>, boost::fusion::nil_> > > >, mpl_::bool_<false> > >'
requested here
lhs.f = detail::bind_parser<Auto>(
^
/usr/local/include/boost/spirit/home/qi/nonterminal/rule.hpp:221:13: note: in instantiation of function template specialization 'boost::spirit::qi::rule<std::__1::__wrap_iter<const char *>,
boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> >, 0>, 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_right, boost::proto::argsns_::list2<const
boost::proto::exprns_::expr<boost::proto::tagns_::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript,
boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::lit, boost::fusion::vector1<char> > >, 0> &,
boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const (lambda at /root/wt-4.0.2/src/Wt/Json/Parser.C:95:30) &>, 0> >, 2> &, const boost::proto::exprns_::expr<boost::proto::tagns_::tag::negate,
boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::modulus, boost::proto::argsns_::list2<boost::spirit::qi::rule<std::__1::__wrap_iter<const char *>,
boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> >, 0>, boost::spirit::unused_type,
boost::spirit::unused_type, boost::spirit::unused_type> &, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const char &>, 0> >, 2> &>, 1> &>, 2> &, const
boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::lit,
boost::fusion::vector1<char> > >, 0> &, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const (lambda at /root/wt-4.0.2/src/Wt/Json/Parser.C:102:28) &>, 0> >, 2> &>, 2> >' requested here
define<mpl::false_>(*this, expr, traits::matches<qi::domain, Expr>());
^
/root/wt-4.0.2/src/Wt/Json/Parser.C:108:7: note: in instantiation of function template specialization 'boost::spirit::qi::rule<std::__1::__wrap_iter<const char *>, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,
boost::proto::argsns_::term<boost::spirit::tag::char_code<boost::spirit::tag::space, boost::spirit::char_encoding::standard> >, 0>, boost::spirit::unused_type, boost::spirit::unused_type,
boost::spirit::unused_type>::operator=<boost::proto::exprns_::expr<boost::proto::tagns_::tag::shift_right, boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::shift_right,
boost::proto::argsns_::list2<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,
boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::lit, boost::fusion::vector1<char> > >, 0> &, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const
(lambda at /root/wt-4.0.2/src/Wt/Json/Parser.C:95:30) &>, 0> >, 2> &, const boost::proto::exprns_::expr<boost::proto::tagns_::tag::negate, boost::proto::argsns_::list1<const boost::proto::exprns_::expr<boost::proto::tagns_::tag::modulus,
boost::proto::argsns_::list2<boost::spirit::qi::rule<std::__1::__wrap_iter<const char *>, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<boost::spirit::tag::char_code<boost::spirit::tag::space,
boost::spirit::char_encoding::standard> >, 0>, boost::spirit::unused_type, boost::spirit::unused_type, boost::spirit::unused_type> &, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const char &>,
0> >, 2> &>, 1> &>, 2> &, const boost::proto::exprns_::expr<boost::proto::tagns_::tag::subscript, boost::proto::argsns_::list2<boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal,
boost::proto::argsns_::term<boost::spirit::terminal_ex<boost::spirit::tag::lit, boost::fusion::vector1<char> > >, 0> &, boost::proto::exprns_::expr<boost::proto::tagns_::tag::terminal, boost::proto::argsns_::term<const
(lambda at /root/wt-4.0.2/src/Wt/Json/Parser.C:102:28) &>, 0> >, 2> &>, 2> >' requested here
= lit('{')[startObject]
^
/root/wt-4.0.2/src/Wt/Json/Parser.C:67:5: note: in instantiation of member function 'Wt::Json::json_grammar<std::__1::__wrap_iter<const char *> >::create' requested here
create();
^
/root/wt-4.0.2/src/Wt/Json/Parser.C:281:47: note: in instantiation of member function 'Wt::Json::json_grammar<std::__1::__wrap_iter<const char *> >::json_grammar' requested here
json_grammar<std::string::const_iterator> g(result);
^
/root/wt-4.0.2/src/Wt/Json/Parser.C:95:30: note: candidate function not viable: requires 0 arguments, but 3 were provided
const auto startObject = [this](){
^
...
...
...
...
...
...
...
/root/wt-4.0.2/src/Wt/Json/Parser.C:221:33: note: candidate function not viable: requires single argument 'code', but 3 arguments were provided
const auto addUnicodeChar = [this](unsigned long code)
^
13 errors generated.
gmake[2]: *** [src/CMakeFiles/wt.dir/build.make:6443: src/CMakeFiles/wt.dir/Wt/Json/Parser.C.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:171: src/CMakeFiles/wt.dir/all] Error 2
gmake: *** [Makefile:130: all] Error 2
I have no knowledge about boost and wt!
Does anybody have an idea how to fix it?
Thank you very much for your help,
Timo.
Replies (1)
RE: Compiling Wt 4.0.2 on OpenBSD 6.2 - Added by david ireland over 6 years ago
If you're still stuck, I have done some OpenBSD patches for Wt 4.0.2