beeware / beeware/briefcase

Create Linux Abstractions

Open
#1,626 5 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?

Unlike Windows and macOS, Linux offers a robust diversity of operation. The impact of differences among Linux distros is most pronounced for Linux System packaging. While all the distros mostly provide the same services, they all implement them differently. This includes how they self identify, package installers, package naming, filesystem layouts, etc.

These differences are currently handled in-line without much re-usability. For instance, providing the user with the command line to install a specific package; I would like to use that logic in Linux System packaging for error handling with X11 passthrough for Docker....but that isn't really possible currently.

### Describe the solution you'd like

Introduce abstractions for Linux implementations and their tools.

The Linux abstraction would provide a uniform interface to details each distro provides but each differently.

The Linux tool abstraction would encapsulate how a tool is represented in any Linux distro. For instance, the `pkg-config` tool on RHEL systems is in the `pkgconf-pkg-config` package while Arch provides it in the `pkgconf` package (although...and this may be even trickier...we install the `base-devel` "virtual" package to get it).

### Describe alternatives you've considered

Continue to piecemeal Linux's lovely embrace of diversity.

### Additional context

Criticism welcome since I would like to implement something that addresses this.

Contributor guide

Open the contributing guide

Research direction

Start by surveying the existing inline Linux distro and package-handling logic in the Linux system packaging and X11 passthrough paths. Identify the common distro identity, installer, package naming, and filesystem details that need a shared interface. Done means the abstractions support reuse across those contexts without relying on distro-specific inline logic.

Written by the indexing model from the issue text.

Assessment

Tech stack
linux, python
Domain
build-system, operating-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.