Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Add an Arch/Pacman backend for Linux #1064

Closed
freakboy3742 opened this issue Jan 28, 2023 · 1 comment
Closed

Add an Arch/Pacman backend for Linux #1064

freakboy3742 opened this issue Jan 28, 2023 · 1 comment
Labels
enhancement New features, or improvements to existing features. linux The issue relates Linux support.

Comments

@freakboy3742
Copy link
Member

What is the problem or limitation you are having?

While AppImage and Flatpak are formats that theoretically allow distribution-independent Linux "binaries" to be distributed, in practice they have proven to be problematic (e.g., #718, #919, #1029 and more).

An informal survey of preferences revealed that despite the need for root privileges, there is a significant portion of the user base that may prefer system packages for apps, rather than a user-space friendly packaging format.

Describe the solution you'd like

Briefcase should be able to generate a pacman-compatible .pkg.tar.zst file, for use on Arch-based Linux distributions

Describe alternatives you've considered

Do nothing, and rely on AppImage/Flatpak.

Additional context

  • As pacman packages are built from source at time of install, they should work across Arch-based distributions. This should be verified
  • As we are primarily working with Python code, Pacman packages should work across distribution versions (e.g., an Arch 2022-12-01 package should work with 2023-01-01), provided system packages are specified in ways that aren't version specific - e.g., specifying a libgtk-3 dependency should work on almost any version
  • Arch-based distributions all have Python3 interpreters in their default package repositories; however, that Python version will change between distribution versions. Briefcase generally guarantees that the python version used to build an app is the version used to run the app; however, we may need to (optionally) relax that requirement to apps to specify a generic "Python3" dependency, rather than a specific "3.10" dependency.
  • The manylinux specification should provide all the binary compatibility guarantees that are needed; as manylinux wheels have a very specific list of libraries they can link against, as long as the pacman package guarantees that subset, any installed wheel should (?) be binary compatible.

See also #1062, #1063

@freakboy3742
Copy link
Member Author

Fixed by #1143.

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
enhancement New features, or improvements to existing features. linux The issue relates Linux support.
Projects
None yet
Development

No branches or pull requests

1 participant