User Tools

Site Tools


software:ros_forward_porting_packages

Forward-porting ROS packages

For example, suppose that you need the package teleop_twist_joy that was released for Kinetic, but not (yet) for Lunar. If you're lucky, then simply forward-porting the version released for Kinetic will work, until the package maintainers get around to making an official release for the new ROS distribution.

Of course, you can always clone the package source into your Catkin workspace and try compiling it. However, these instructions will be helpful if you prefer to keep your Catkin workspace clean and install the dependency as a Debian package, just like you would if it were officially released in the repository.

  1. Go to the Ubuntu ROS package repository and find your package (e.g. ros-kinetic-teleop-twist-joy.
  2. Download the original package source, e.g. ros-kinetic-teleop-twist-joy_0.1.2.orig.tar.gz (should the file ending in .orig.tar.gz). Extract the archive.
  3. Download the Debian build system rules and patches for building the package on Ubuntu, e.g. ros-kinetic-teleop-twist-joy_0.1.2-0xenial.debian.tar.xz. Extract the archive, and move the debian folder inside the previously extracted source.
  4. Open a shell and source the ROS setup script:
    source /opt/ros/lunar/setup.bash
  5. Go to the debian directory and substitute all occurences of kinetic with lunar:
    cd debian
    find -type f -exec sed -i 's/kinetic/lunar/g' {} +
    cd ..
  6. Build the .deb package:
    fakeroot debian/rules binary
  7. Install your newly built package:
    cd ..
    sudo dpkg -i ros-lunar-teleop-twist-joy*.deb

(This particular package will also require building and installing ros-lunar-joy, and the Ubuntu package joystick.)

Canonical scan matcher & Ubuntu 17.04 quirk

Extra step for the Canonical scan matcher (csm) package: before calling fakeroot debian/rules binary, disable compiler hardening:

export DEB_BUILD_MAINT_OPTIONS=hardening=-all

To verify, check that -fstack-protector-strong is not printed after running dpkg-buildflags.

software/ros_forward_porting_packages.txt · Last modified: 2017/07/14 16:35 by juraj