Project

General

Profile

Compiling Wt 4.0.2 on OpenBSD 6.2

Added by Timo Pallach over 6 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 about 6 years ago

If you're still stuck, I have done some OpenBSD patches for Wt 4.0.2

https://github.com/djireland/wt-4-openbsd-port

    (1-1/1)