Ask Your Question
0

Cross-architecture deb package generation using bloom

asked 2019-04-11 16:10:35 -0500

femtogram gravatar image

Hi,

I've been building deb packages using bloom according to https://answers.ros.org/question/1738... and using the following commands:

bloom-generate rosdebian --os-name ubuntu --os-version xenial --ros-distro kinetic .
fakeroot debian/rules binary

I now want to create deb packages for arm processors, but my machine is using x86_64. How do I go about cross-compiling this?

Thanks!

edit retag flag offensive close merge delete

1 Answer

Sort by ยป oldest newest most voted
0

answered 2019-04-12 07:56:07 -0500

nuclearsandwich gravatar image

I don't think that Debian packages are intended to be cross-compiled. I can't actually find anything via a quick peek at the New Maintainer's Guide and Debian Policy Manual but I believe that binary debs for all architectures are compiled natively or in a native environment via emulation.

The ROS build farm uses Docker containers running native environments with static qemu binaries baked in to handle the emulation.

To build using those images:

Your host system needs qemu-user-static (or you need to add the binfmt entries by hand but I don't think it's worth the trouble)

If your target environment is one that we publish images for on https://hub.docker.com/u/osrf all you need to do is run a container for your desired environment and build your package within it. If you're targeting a different environment you will need to find or build your own custom root / container image. The scripts we use to generate ours are here: https://github.com/osrf/multiarch-doc...

edit flag offensive delete link more

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: 2019-04-11 16:10:35 -0500

Seen: 130 times

Last updated: Apr 12 '19