Tue 27 August 2013

On building a ROS Groovy Software collection for Fedora

Posted by ankur in Tech (305 words, approximately a 2 minute read)

ROS currently has two stable versions: Fuerte and Groovy; with another one coming out: Hydro. All of them are designed to run in parallel. Having all three of them available in Fedora is difficult, since they packages will conflict. It therefore makes sense to keep only one version of ROS available in the main Fedora repositories.

The first issue we ran into was getting a list of packages to build for ROS, and what order to they should be built in. Some hacking on bloom has made this simpler. I've documented what needs to be done in this git commit message. Now, I have a directory of template files that I need to complete and build RPMs off.

Recently, I looked up SCL (Software collections) which are designed to permit the parallel install of software on a system. I've recently started working on making a ROS-Groovy SCL. Here's what the spec for the metadata rpm looks like.

Once the rpm has been built, using rpmbuild -ba --define 'scl ros-groovy', it must be placed in a temporary repository and a new configuration file created so that the other packages of the SCL can be built in mock. I've just finished building the first package according to the build sequence: catkin (rpm, srpm, spec).

Even though the templates fill up some parts of the spec, a lot of work still needs to be done to complete them. It's going to take time, but I hope to be able to do them all one by one. The fun part is that scl packages can be easily converted to Fedora repository packages. This way, we can maintain multiple SCLs for ROS versions, and choose one of them as the official Fedora supported version when we get to that.

If you're interested in helping out, get in touch with me!