[ros-users] Managing software packages containing upstream libraries and ROS wrappers

Stéphane Magnenat stephane.magnenat at mavt.ethz.ch
Mon Mar 19 17:41:05 UTC 2012

Hi all,

As maintainer of software packages that include one or more libraries 
and a ROS wrapper [1], I have been a bit dissatisfied with the existing 
proposals to wrap third-party libraries, because they all require the 
libraries to be available as tarballs. While I understand the rationale 
for stable and released external libraries; it is really a problem in 
the research context when these libraries are moving quickly, and one 
still want to provide an up-to-date ROS wrapper for use by colleagues, 
students, and the community.

I therefore propose a new way to handle these, on which I would like 
your opinion. It applies to the context of git-based repositories, but 
the same idea would be valid for svn. The idea is to use "git submodule" 
to fetch a specific revision of the libraries' source code into a 
upstream_src/ directory in wrapper packages, and then to use a simple 
Makefile to build them. I did it in ethzal_mapping for libnabo and 
libpointmatcher [2] and it works fine. Compared to alternative methods, 
it skips the step of building tarballs while still referencing the 
version of the libraries inside the wrapper packages.

What do you think?

Kind regards,


[1] for instance modular_cloud_matcher, which depends on libnabo and 
[2] https://github.com/ethz-asl/ros-mapping

Dr Stéphane Magnenat

More information about the ros-users mailing list