Linux / System / Add Support for Targeting Arbitrary Machine Architectures
- Dominant language
- Python
- Stars
- 3.3k
- Forks
- 549
- Avg merge
- 1d 4h
- Merged PRs (30d)
- 40
Description
### What is the problem or limitation you are having?
Building a linux system package is currently limited to the architecture of the machine building the package. So, an `x86_64` machine can only build packages for `x86_64`. A likely desired scenario is building for `aarch64/arm64` on `x86_64`.
ref: https://github.com/beeware/briefcase/pull/1106#issuecomment-1457435428
### Describe the solution you'd like
The linux system package build process already supports targeting arbitrary distros with Docker; we should extend this to support arbitrary architectures via the `buildx` Docker builder.
https://docs.docker.com/build/building/multi-platform/
### Describe alternatives you've considered
`buildx` uses QEMU to emulate other arches; so, a VM for the desired arch can be manually created and used to build an app.
### Additional context
_No response_
Contributor guide
Research direction
Start with Briefcase's Linux system package build process and review the linked Docker multi-platform build documentation, especially Docker buildx. Done means the process can target an architecture such as aarch64/arm64 from an x86_64 machine, while retaining the existing arbitrary-distro support.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, python
- Domain
- build-system, devops, operating-systems
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100