ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question

How to separate bloom-generate'd debian package into variants (release, -dev, -dbg)?

asked 2018-08-06 12:46:38 -0500

aurzenligl gravatar image

updated 2018-08-06 15:44:38 -0500

I'd like to separate binary debian packages I can produce with bloom-generate and debuild into variants:

  • release (only libraries and executables)
  • -dev (headers, symlinks)
  • -dbg (debugging symbols)

To give a more specific example - this is a toy workspace with 3 interdependent packages:

When using Ubuntu 16.04.4 LTS and ros-kinetic, I can produce debian binary packages with package_workspace.bash script (installing rosdep rules by install_rosdep_rules.bash first), but I don't know how to separate -dev and -dbg parts from these packages. I have:

  • ros-kinetic-arx_0.1.2-0xenial_amd64.deb
  • ros-kinetic-bar_1.2.4-0xenial_amd64.deb
  • ros-kinetic-foo_3.4.5-0xenial_amd64.deb

I aim for:

  • ros-kinetic-arx-dbg_0.1.2-0xenial_amd64.deb
  • ros-kinetic-arx-dev_0.1.2-0xenial_amd64.deb
  • ros-kinetic-arx_0.1.2-0xenial_amd64.deb
  • ros-kinetic-bar-dbg_1.2.4-0xenial_amd64.deb
  • ros-kinetic-bar-dev_1.2.4-0xenial_amd64.deb
  • ros-kinetic-bar_1.2.4-0xenial_amd64.deb
  • ros-kinetic-foo-dbg_3.4.5-0xenial_amd64.deb
  • ros-kinetic-foo-dev_3.4.5-0xenial_amd64.deb
  • ros-kinetic-foo_3.4.5-0xenial_amd64.deb

with correct dependencies among each other, so that all kinds of users:

  • interested only in running,
  • only in compiling/linking and
  • only in debugging

would be satisfied. How can I achieve that?

edit retag flag offensive close merge delete


Afaik this is not supported by Bloom at the moment. But as .debs are just archives, extracting and manual patching is probably possible.

gvdhoorn gravatar image gvdhoorn  ( 2018-08-06 14:10:31 -0500 )edit

1 Answer

Sort by ยป oldest newest most voted

answered 2018-08-08 02:40:49 -0500

tfoote gravatar image

The debian toolchain has recently been updated to automatically create the debug packages.

We've been working on making sure that the buildfarm supports them:

However splitting out the development files requires manually creating the control file to split the headers from the runtime dependencies is not something that is easily automated. For hand curated debian packages manually applying a heuristic is relavely easy but there are a lot of corner cases to consider before automating it.

edit flag offensive delete link more


Would I be able to reuse the automatic debian *-dbg package generation using just bloom-generate if I don't intend to use entire buildfarm solution? If so - is ubuntu xenial (ros-kinetic) new enough to be able to use this feature?

aurzenligl gravatar image aurzenligl  ( 2018-08-09 21:30:52 -0500 )edit

Yes, bloom is designed to generate standard gbp release repos that you can manually checkout and build debians from using gbp-buildpackage or dpkg-buildpackage on the right branch. If you dig into the buildfarm code you can find the exact invocation we use.

tfoote gravatar image tfoote  ( 2018-08-10 03:16:56 -0500 )edit

If so - is ubuntu xenial (ros-kinetic) new enough to be able to use this feature?

The dbgsym packages were first automatically produced for Debian Stretch and Ubuntu Artful/Bionic.

nuclearsandwich gravatar image nuclearsandwich  ( 2018-10-04 11:57:10 -0500 )edit

Question Tools

1 follower


Asked: 2018-08-06 12:46:38 -0500

Seen: 473 times

Last updated: Aug 08 '18