ros-melodic-arch / ros-melodic-ompl

ros-melodic-omplAUR package
0 stars 0 forks source link

Unable to build #2

Closed jwhendy closed 4 years ago

jwhendy commented 5 years ago

I updated this, as I'm not sure if it's boost related or not. I updated the source to ompl upstream and to python3, but I still can't build it.

Beginning of build (looks fine):

==> Starting build()...
-- Building Release
-- Checking for module 'libspot'
--   Package 'libspot', required by 'virtual:world', not found
-- Could NOT find SPOT (missing: SPOT_LIBRARIES SPOT_INCLUDE_DIRS) 
-- Could NOT find castxml (missing: CASTXML) 
-- The following features have been enabled:

 * OMPL_BUILD_TESTS, Whether to build the unit tests.
 * OMPL_BUILD_DEMOS, Whether to build the OMPL demo programs.

-- The following OPTIONAL packages have been found:

 * Threads, <https://en.wikipedia.org/wiki/POSIX_Threads>
   Pthreads is sometimes needed, depending on OS / compiler.
 * flann (required version >= 1.8.3), <https://github.com/mariusmuja/flann>
   If detetected, FLANN can be used for nearest neighbor queries by OMPL.
 * PkgConfig, <https://www.freedesktop.org/wiki/Software/pkg-config/>
   Used to find (compilation flags for) dependencies.
 * Python, <http://python.org>
   Used for python bindings.
 * boost_python (required version == 1.71.0)
 * boost_unit_test_framework (required version == 1.71.0)
 * Doxygen, <http://doxygen.org>
   Used to create the OMPL documentation (i.e., http://ompl.kavrakilab.org).

-- The following REQUIRED packages have been found:

 * boost_serialization (required version == 1.71.0)
 * boost_filesystem (required version == 1.71.0)
 * boost_system (required version == 1.71.0)
 * boost_program_options (required version == 1.71.0)
 * Eigen3, <http://eigen.tuxfamily.org>
   A linear algebra library used throughout OMPL.
 * boost_headers (required version == 1.71.0)
 * Boost (required version >= 1.54), <http://boost.org>
   Used throughout OMPL for data serialization, graphs, etc.

-- The following features have been disabled:

 * OMPL_VERSIONED_INSTALL, Whether to install header files in
   <prefix>/include/ompl-X.Y/ompl, where X and Y are the major and minor
   version numbers
 * OMPL_BUILD_PYBINDINGS, Whether to build the Python bindings.
 * OMPL_BUILD_PYTESTS, Whether to build/run the python binding unit tests.

-- The following OPTIONAL packages have not been found:

 * pypy, <http://pypy.org>
   Used to speed up the generation of python bindings.
 * MORSE, <https://www.openrobots.org/wiki/morse>
   OMPL includes a plugin for the MORSE Robot Simulation engine.
 * OpenDE, <http://ode.org>
   The Open Dynamics Engine can be used as a "black box" for kinodynamic planning.
 * Triangle, <http://www.cs.cmu.edu/~quake/triangle.html>
   Used to create triangular decompositions of polygonal 2D environments.
 * spot, <http://spot.lrde.epita.fr>
   Used for constructing finite automata from LTL formulae.
 * boost_python-py37 (required version == 1.71.0)
 * castxml, <https://github.com/CastXML/CastXML>
   Used to generate Python bindings.

-- The following Python modules were found:

 * pyplusplus pygccxml

-- Configuring done
-- Generating done

I see no obvious errors in the output. There's also a lot of output so it's hard to tell warnings from errors. Here's the tail end of my output before the failure which I don't think is the actual reason, but still pasting just in case.

In file included from /usr/include/eigen3/Eigen/Core:469,
                 from /home/jwhendy/installed/build/ros-melodic-aur/ros-melodic-ompl/src/ompl-1.4.2-Source/src/ompl/base/ProjectionEvaluator.h:49,
                 from /home/jwhendy/installed/build/ros-melodic-aur/ros-melodic-ompl/src/ompl-1.4.2-Source/src/ompl/base/StateSpace.h:43,
                 from /home/jwhendy/installed/build/ros-melodic-aur/ros-melodic-ompl/src/ompl-1.4.2-Source/src/ompl/base/SpaceInformation.h:43,
                 from /home/jwhendy/installed/build/ros-melodic-aur/ros-melodic-ompl/src/ompl-1.4.2-Source/src/ompl/base/Planner.h:40,
                 from /home/jwhendy/installed/build/ros-melodic-aur/ros-melodic-ompl/src/ompl-1.4.2-Source/src/ompl/geometric/SimpleSetup.h:40,
                 from /home/jwhendy/installed/build/ros-melodic-aur/ros-melodic-ompl/src/ompl-1.4.2-Source/demos/constraint/ConstrainedPlanningCommon.h:46,
                 from /home/jwhendy/installed/build/ros-melodic-aur/ros-melodic-ompl/src/ompl-1.4.2-Source/demos/constraint/ConstrainedPlanningImplicitChain.cpp:37:
/usr/include/eigen3/Eigen/src/Core/MapBase.h:288:14: note: because ‘Eigen::Map<Eigen::Matrix<double, -1, 1>, 0, Eigen::Stride<0, 0> >’ has user-provided ‘Derived& Eigen::MapBase<Derived, 1>::operator=(const Eigen::MapBase<Derived, 1>&) [with Derived = Eigen::Map<Eigen::Matrix<double, -1, 1>, 0, Eigen::Stride<0, 0> >]’
  288 |     Derived& operator=(const MapBase& other)
      |              ^~~~~~~~
[ 99%] Linking CXX executable ../bin/demo_ConstrainedPlanningKinematicChain
[ 99%] Built target demo_ConstrainedPlanningKinematicChain
[ 99%] Linking CXX executable ../bin/demo_ConstrainedPlanningTorus
[ 99%] Built target demo_ConstrainedPlanningTorus
[ 99%] Linking CXX executable ../bin/demo_ConstrainedPlanningImplicitChain
[ 99%] Built target demo_ConstrainedPlanningImplicitChain
make: *** [Makefile:163: all] Error 2
jwhendy commented 5 years ago

Is there a definitive way to find all the packages that rely on boost? pacman -Qi boost is not sufficient as a ton of ros packages get built on others which depend on boost as a makedepends. I'm finding this maddening, as the errors will say some package can't find it, but rebuilding that package isn't sufficient as it appears it doesn't check it's dependency links or something?

It's not clear how I figure out all packages now pointing to a nonexistent boost 1.69 .so file... any suggestions?

jwhendy commented 5 years ago

Updated post and changed the title. I'm unable to build.

jwhendy commented 5 years ago

Seems like actual errors here:

In file included from /home/jwhendy/installed/build/ros-melodic-aur/ros-melodic-ompl/src/ompl-release-upstream-1.4.2/demos/PlannerData.cpp:45:
/usr/include/boost/graph/astar_search.hpp: In instantiation of ‘void boost::astar_search(const VertexListGraph&, typename boost::graph_traits<Graph>::vertex_descriptor, AStarHeuristic, const boost::bgl_named_params<P, T, R>&) [with VertexListGraph = boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<vertex_type_t, ompl::base::PlannerDataVertex*, boost::property<boost::vertex_index_t, unsigned int> >, boost::property<edge_type_t, ompl::base::PlannerDataEdge*, boost::property<boost::edge_weight_t, ompl::base::Cost> > >; AStarHeuristic = readPlannerData()::<lambda(ompl::base::PlannerData::Graph::Vertex)>; P = ompl::base::Cost; T = boost::distance_zero_t; R = boost::bgl_named_params<ompl::base::Cost, boost::distance_inf_t, boost::bgl_named_params<readPlannerData()::<lambda(ompl::base::Cost, ompl::base::Cost)>, boost::distance_combine_t, boost::bgl_named_params<readPlannerData()::<lambda(ompl::base::Cost, ompl::base::Cost)>, boost::distance_compare_t, boost::bgl_named_params<boost::vector_property_map<long unsigned int>, boost::vertex_predecessor_t, boost::no_property> > > >; typename boost::graph_traits<Graph>::vertex_descriptor = long unsigned int]’:
/home/jwhendy/installed/build/ros-melodic-aur/ros-melodic-ompl/src/ompl-release-upstream-1.4.2/demos/PlannerData.cpp:179:46:   required from here
/usr/include/boost/graph/astar_search.hpp:449:13: error: invalid initialization of reference of type ‘boost::parameter::binding<boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::distance_zero, const ompl::base::Cost>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::distance_inf, const ompl::base::Cost>, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::distance_combine, const readPlannerData()::<lambda(ompl::base::Cost, ompl::base::Cost)> >, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::distance_compare, const readPlannerData()::<lambda(ompl::base::Cost, ompl::base::Cost)> >, boost::parameter::aux::arg_list<boost::parameter::aux::tagged_argument<boost::graph::keywords::tag::predecessor_map, const boost::vector_property_map<long unsigned int> >, boost::parameter::aux::empty_arg_list, std::integral_constant<bool, true> >, std::integral_constant<bool, true> >, std::integral_constant<bool, true> >, std::integral_constant<bool, true> >, std::integral_constant<bool, true> >, boost::graph::keywords::tag::visitor, boost::dummy_property_map&>::type’ {aka ‘boost::dummy_property_map&’} from expression of type ‘boost::astar_visitor<>’
  449 |     >::type vis = arg_pack[_visitor | default_visitor];
      |             ^~~
/usr/include/boost/graph/astar_search.hpp: At global scope:
/usr/include/boost/graph/astar_search.hpp:353:3: error: ‘void boost::astar_search(const VertexListGraph&, typename boost::graph_traits<Graph>::vertex_descriptor, AStarHeuristic, AStarVisitor, PredecessorMap, CostMap, DistanceMap, WeightMap, VertexIndexMap, ColorMap, CompareFunction, CombineFunction, CostInf, CostZero) [with VertexListGraph = boost::adjacency_list<boost::vecS, boost::vecS, boost::bidirectionalS, boost::property<vertex_type_t, ompl::base::PlannerDataVertex*, boost::property<boost::vertex_index_t, unsigned int> >, boost::property<edge_type_t, ompl::base::PlannerDataEdge*, boost::property<boost::edge_weight_t, ompl::base::Cost> > >; AStarHeuristic = readPlannerData()::<lambda(ompl::base::PlannerData::Graph::Vertex)>; AStarVisitor = boost::dummy_property_map; PredecessorMap = boost::vector_property_map<long unsigned int>; CostMap = boost::shared_array_property_map<ompl::base::Cost, boost::vec_adj_list_vertex_id_map<boost::property<vertex_type_t, ompl::base::PlannerDataVertex*, boost::property<boost::vertex_index_t, unsigned int> >, long unsigned int> >; DistanceMap = boost::shared_array_property_map<ompl::base::Cost, boost::vec_adj_list_vertex_id_map<boost::property<vertex_type_t, ompl::base::PlannerDataVertex*, boost::property<boost::vertex_index_t, unsigned int> >, long unsigned int> >; WeightMap = boost::adj_list_edge_property_map<boost::bidirectional_tag, ompl::base::Cost, const ompl::base::Cost&, long unsigned int, const boost::property<edge_type_t, ompl::base::PlannerDataEdge*, boost::property<boost::edge_weight_t, ompl::base::Cost> >, boost::edge_weight_t>; VertexIndexMap = boost::vec_adj_list_vertex_id_map<boost::property<vertex_type_t, ompl::base::PlannerDataVertex*, boost::property<boost::vertex_index_t, unsigned int> >, long unsigned int>; ColorMap = boost::shared_array_property_map<boost::default_color_type, boost::vec_adj_list_vertex_id_map<boost::property<vertex_type_t, ompl::base::PlannerDataVertex*, boost::property<boost::vertex_index_t, unsigned int> >, long unsigned int> >; CompareFunction = readPlannerData()::<lambda(ompl::base::Cost, ompl::base::Cost)>; CombineFunction = readPlannerData()::<lambda(ompl::base::Cost, ompl::base::Cost)>; CostInf = ompl::base::Cost; CostZero = ompl::base::Cost; typename boost::graph_traits<Graph>::vertex_descriptor = long unsigned int]’, declared using local type ‘readPlannerData()::<lambda(ompl::base::PlannerData::Graph::Vertex)>’, is used but never defined [-fpermissive]
  353 |   astar_search
      |   ^~~~~~~~~~~~

Something related to astar_search??

jwhendy commented 5 years ago

Making a git version built from here worked. It also worked to clone that and build in my catkin_ws directly and just make a fake package that provided ros-melodic-ompl. With that the rest of ros-melodic-moveit built for me.

I noticed that at the repo linked above, the latest release is still 1.4.1 vs. being 1.4.2 in other places. I'm not sure if that means anything related to version causing my issue or not.

jwhendy commented 5 years ago

Notes from continued troubleshooting:

I'm now suspecting it's something between 1.4.1 and present that fixes this. Likely it's also post-1.4.2, but the github site doesn't have that and the commit messages/hashes don't seem to correlate. I'm working my way through commits to figure out where it starts working.

jwhendy commented 5 years ago

Duh. Of course it would be related to boost-1.71. I traced things to this commit. I made an upstream request for a release including this fix, and in the meantime I'll try a patch with that change.

jwhendy commented 5 years ago

I think #3 will address all of this if anyone can reproduce. We can close once upstream releases.

acxz commented 5 years ago

Relevant PR merged adding patched label

acxz commented 4 years ago

Gonna remove patched label, since this is a package that ROS does not even ship.

acxz commented 4 years ago

Closing this issue, in lieu of that.