Ask Your Question
1

How to build ROS `.deb` packages by myself?

asked 2020-07-02 14:46:42 -0500

yaobin gravatar image

Hi,

In my project, we are currently using ROS Melodic (apt install from the official Ubuntu Package Server) on Ubuntu 18.04. By default, Melodic was built for Python 2. However,

  • We have migrated from Python 2 to 3 since the official support for Python 2 has ended.
  • We haven't decided to migrate our product to Ubuntu 20.04 (Focal Fossa) which ROS Noetic is targeted at.

Therefore, I'm helping the team to bring Python 3 to ROS on Ubuntu 18.04. I'm following the "Transitioning to Python 3" to build the Melodic source on 18.04. In addition, because my team has built our internal Debian package server, I'm thinking about publishing the ROS packages I'm building as .deb packages so other developers can simply apt install from our package server, without having to build by themselves.

I've learned that ROS build farm can publish .deb packages so I guess the Debian files (e.g., changelog, control, rules) may be available somewhere that I can directly reuse. Could someone tell me where they are or how they are currently generated?

But I'm also open to other solutions. The main goal I want to achieve is to "have a ROS distribution with full Python 3 support that can be installed on Ubuntu 18.04", so I'm also thinking about other possibilities:

  1. Install Noetic on 18.04 using the official Ubuntu Package Server. I tried but this failed (surely) because Noetic requires many other packages that are built for 20.04 but not 18.04.
  2. Backport Noetic onto 18.04. But I think I still want to figure out how to publish them as .deb packages on our internal package server.

Thanks!

edit retag flag offensive close merge delete

Comments

What about using a docker image of noetic? you should be able to work with noetic in ubuntu 18.04

Solrac3589 gravatar image Solrac3589  ( 2020-07-03 01:04:19 -0500 )edit

@Solrac3589: That sounds like an appealing idea. Thanks! I'll give a try when possible. But, if possible, I still hope to learn where all the Debian materials are stored.

yaobin gravatar image yaobin  ( 2020-07-06 09:52:19 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted
1

answered 2020-07-10 13:50:25 -0500

sloretz gravatar image

Could someone tell me where they are or how they are currently generated?

They're located in the debian folder in tags on the release repos. These tags are generated by a tool called bloom. Here's an example for the 1.4.1 release of ros-melodic-viz: https://github.com/ros-gbp/metapackag...

But I'm also open to other solutions. The main goal I want to achieve is to "have a ROS distribution with full Python 3 support that can be installed on Ubuntu 18.04", so I'm also thinking about other possibilities:

I think you could run your own instances of the ROS buildfarm: https://github.com/ros-infrastructure... with a caveat that there are many pieces to it. One piece is maintianing a distribution.yaml with the release platform being bionic and releases for all of your dependencies that have been forked.

Backport Noetic onto 18.04. But I think I still want to figure out how to publish them as .deb packages on our internal package server.

There were a lot of changes in Noetic to get things working smoothly in Python 3, so I would expect a lot of backporting. That said the Arch linux users have used Melodicfor a while with Python 3, so you may find useful info there: https://wiki.archlinux.org/index.php/ROS .

edit flag offensive delete link more

Comments

Thank you for all the information!

yaobin gravatar image yaobin  ( 2020-07-12 14:52:18 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

2 followers

Stats

Asked: 2020-07-02 14:46:42 -0500

Seen: 166 times

Last updated: Jul 10 '20