Building ros hydro from source on Ubuntu 14.04
I upgraded a Ubuntu 13.10 system that had Hydro built from source to Ubuntu 14.04, and encountered the following issues:
rosdep
$ rosdep install --from-paths src --ignore-src --rosdistro hydro -y
ERROR: the following packages/stacks could not have their rosdep keys resolved
to system dependencies:
roslaunch: No definition of [python-paramiko] for OS version [trusty]
qt_dotgraph: No definition of [python-pydot] for OS version [trusty]
rosgraph: No definition of [python-mock] for OS version [trusty]
rosdoc_lite: No definition of [python-sphinx] for OS version [trusty]
opencv2: No definition of [python-support] for OS version [trusty]
rqt_plot: No definition of [python-qt-bindings-qwt5] for OS version [trusty]
ps3joy: No definition of [python-bluez] for OS version [trusty]
wiimote: No definition of [python-cwiid] for OS version [trusty]
rqt_top: No definition of [python-psutil] for OS version [trusty]
roswtf: No definition of [python-paramiko] for OS version [trusty]
rqt_pose_view: No definition of [python-qt-bindings-gl] for OS version [trusty]
python_orocos_kdl: No definition of [python-sip] for OS version [trusty]
rviz: No definition of [libogre-dev] for OS version [trusty]
I think because all the dependencies were still lying around and installed from when rosdep worked fully in 13.10, I was able to skip over this.
Gazebo
It was (obvious in retrospect) necessary to rebuild gazebo, which I had built from source earlier, not doing this produced an error saying protobuf header files needed to be regenerated with protoc
catkin_make
I attempted to run the catkin_make command after that in the same workspace as had been used when the system was 13.10, but encountered difficulties with libqhull, libyaml-cpp, and libprotobuf- I think they all had version upticks for 14.04 which move the .so symlink to /usr/lib/x86_64-linux-gnu/ from /usr/lib, but the old .so.x.y libs were still there in /usr/lib.
Errors produced were of the sort:
/include/gazebo-2.2/gazebo/msgs/axis.pb.h:19:2: error: #error regenerate this file with a newer version of protoc.
#error regenerate this file with a newer version of protoc.
...
undefined reference to `YAML::Node::Node()'
Maybe I should have run a catkin_make clean or similar but I ended up just starting over in a new catkin workspace, which built fine.
I haven't tested the built result much, and I'm pretty sure the build process would fail on a fresh 14.04 install due to the rosdep issue at the top here, but I'll try that eventually unless someone else documents it first.
Ogre
/usr/include/CEGUI/RendererModules/Ogre/CEGUIOgreRenderer.h:57:7: error: using typedef-name ‘Ogre::TexturePtr’ after ‘class’
class TexturePtr;
This has the workaround: http://cegui.org.uk/forum/viewtopic.p... in /usr/include/CEGUI/RendererModules/Ogre/CEGUIOgreRenderer.h replace
class TexturePtr
with
class Texture;
template<typename T> class SharedPtr;
typedef SharedPtr<Texture> TexturePtr;