Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

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-docker-image-generation