0
$\begingroup$

Rosanswers logo

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:

https://github.com/aurzenligl/study/tree/master/ros-distro

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?


Originally posted by aurzenligl on ROS Answers with karma: 3 on 2018-08-06

Post score: 0


Original comments

Comment by gvdhoorn on 2018-08-06:
Afaik this is not supported by Bloom at the moment. But as .debs are just archives, extracting and manual patching is probably possible.

$\endgroup$

1 Answer 1

0
$\begingroup$

Rosanswers logo

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: https://github.com/ros-infrastructure/ros_buildfarm/pull/545 https://github.com/ros-infrastructure/buildfarm_deployment/issues/186 https://github.com/ros-infrastructure/bloom/pull/32

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.


Originally posted by tfoote with karma: 58457 on 2018-08-08

This answer was ACCEPTED on the original site

Post score: 0


Original comments

Comment by aurzenligl on 2018-08-09:
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?

Comment by tfoote on 2018-08-10:
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.

Comment by nuclearsandwich on 2018-10-04:\

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.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.