Closed peci1 closed 8 years ago
My bad, rviz doesn't depend on yaml-cpp 0.3, but on yaml-cpp 0.5.1... however, the rationale remain the same - once you introduce a library in a different than the system-installed version, it should be named differently.
Based on this, it might be better not to rename to yaml-cpp0.5
, but to yaml-cpp-catkin
or something like that.
Another option would be detecting if there is a system-installed yaml-cpp >= 0.5 library, and if there is, using that one. I've tried to achieve something like that a while ago, but I didn't succeed.
@peci1 thanks for looking into this! I never had this rviz issue before and since I pulled the last version of yaml_cpp_catkin I do have it now. The patch does not seem to solve it for me. I'll check if it is still working on the previous version of yaml_cpp_catkin.
@peci1 the patch actually worked for me (I forgot to clean the build and devel folders). Thanks! I propose we stay on tradr-project:fix_yaml_cpp_conflict for now until this is resolved.
@ZacharyTaylor @hitimo you did the latest changes. Whos maintaining this package?
I just merged a pull request when the old yaml-cpp link died. I don't know who is actually responsible for the package
This works on Ubuntu 16.04 with ROS Kinetic. It seems that nobody is maintaining it anymore. Any volunteers (I don't think I am experienced enough yet)?
@dymczykm as discussed we did not test this extensively but if it works out on your side I'm happy that it helped! :-)
This fixes the issue where (for example) rviz on indigo depends on yaml-cpp 0.3, and some other package uses yaml_cpp_catkin to get yaml-cpp 0.5. Both of these libraries have the same name of the shared object file,
libyaml-cpp.so
, so only one version of yaml-cpp can be in the system at one time. An example of the problem caused to rviz can be seen here: https://github.com/ros-visualization/rviz/issues/1000 .This PR renames the shared object file to
libyaml-cpp0.5.so
, which is no longer conflicting with the older one.I'd bet just using a different library name should not break existing code, if it depends just on
yaml_cpp_catkin
(orYAML_CPP_CATKIN_EXPORTED_TARGETS
) and not directly onyaml-cpp
target. In the latter case, alltarget_link_libraries(... yaml-cpp)
need to be rewritten totarget_link_libraries(... yaml-cpp0.5)
.All projects depending on this package need to be rebuilt, and especially the devel directory to be deleted (or at least devel/lib/libyaml-cpp.so* ). Maybe also build/yaml_cpp_catkin (not sure about this one).
@rdube and @gawela might be interested in testing if it doesn't break their code.
I'm not quite sure if this is the right way to go, but I think it definitely needs to be solved in some way, so that this package doesn't break rviz.