beeware / beeware/briefcase

Linux / System / Add Support for Targeting Arbitrary Machine Architectures

Open
#1,128 0 comments 0 reactions 0 assignees View on GitHub
enhancement linux
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.