Automated packaging for multiple platforms: Successes and lessons learned while packaging ROS
11-09, 17:00–17:20 (UTC), Room I

We have developed a system which will automatically generate packages for deb based packaging systems such as Debian and Ubuntu, RPM based packaging systems such as Fedora and RHEL, as well as source based packaging/distribution systems such as Gentoo or OpenEmbedded. This talk will delve into how and why we’ve done it. We will cover lessons learned over the course of more than ten years of experience and then discuss where we’re going next and what tools and approaches we’ve developed that others may find useful.


The ROS project has been generating packages for several platforms for over 10 years. The toolchain continues to grow and evolve. We currently have support for Debian, Ubuntu, Fedora, RHEL, OpenEmbedded, Gentoo, as well as are working on Conda, there are other community based efforts ongoing. We have targeted amd64, i386, armhf, arm64 architectures.

We’ve operated 17 distributions with which target between 3 and 5 platforms officially. The 5 currently active distributions contain 6241 packages of which 3057 are unique by package name. 1132 people have contributed to our release repository including dependency data and there are 687 unique maintainer emails in our publicly listed source packages. And all these packages are downloaded many millions of times per month.

There’s many moving parts and many different communities to bring together to make all this happen regularly. Our needs and goals are sometimes at odds with upstream policies but we still have found ways to work together. This talk will be an overview of where we’re coming from with our needs and requirements, followed by how we’re achieving that. We’ll talk about existing tools and processes that we’re following from existing projects, and then also about how we’ve chosen to diverge and why we chose to do so as well. And provide a quick overview of the various tools that we’ve developed, focusing on those that are potentially reusable outside the ROS context.

Steven! is a software developer and Linux system administrator who has been steadfastly running Linux through his computer science and mathematics education, web development career, and now as a Software Engineer leading the computer infrastructure team at Open Robotics. Steven!'s experience with Linux began on Slackware 9, where package management was a feature conspicuously absent from the installed system.

This speaker also appears in:

Tully Foote is the Community and Business Development Manager at Open Robotics. He started his career working on autonomous cars for the DARPA Grand Challenges. From there he worked on ROS at Willow Garage and later Open Robotics in many different roles including active development of the ROS buildfarm. He has worked on a large variety of systems for indoor, outdoor, marine, aviation, and space. Two creations he’s known for are the tf transform library and the TurtleBot.