Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

Make the base image for Linux AppImage builds configurable #947

Closed
freakboy3742 opened this issue Oct 30, 2022 · 2 comments
Closed

Make the base image for Linux AppImage builds configurable #947

freakboy3742 opened this issue Oct 30, 2022 · 2 comments
Labels
enhancement New features, or improvements to existing features. linux The issue relates Linux support.

Comments

@freakboy3742
Copy link
Member

Linux AppImage builds currently use an Ubuntu 18.04 base image. This has already been changed from Ubuntu 16.04 (which was the default when Briefcase 0.3.0 was released); at some point in the future, it is inevitable that we'll need to change this base image again.

There have already been bugs reported (e.g., #945) that would be easier to avoid if the base image was Ubuntu 20.04, Ubuntu 22.04, or something else.

Describe the solution you'd like

It should be possible, as an end-user, to specify which base image you wish to use; e.g.,

base_image = "ubuntu:22.04"

This would effectively be a proxy for replacing the template and support_package URLs to a different pair. This would also necessitate the publication of an updated template that recognised different base images, and support packages for all supported base images.

Describe alternatives you've considered

  1. Status quo. Make a policy decision with Briefcase 0.3.X to switch to a new base (probably Ubuntu 20.04 or 22.04), update the template and support package, and make those the new defaults for AppImage.
  2. Don't change anything in briefcase; publish an alternate template and support_package so that people can opt into 20.04 or 22.04 as a base image, but retain the default as 18.04; and modify the briefcase-template to be explicit about the template/template_branch/support_package for AppImage projects. This way, we encourage users to be explicit about their base image, and don't require an additional setting (which would have ambiguities if you specified both template/support_package and base_image)

Additional context

The use of Ubuntu base images is somewhat arbitrary, and mildly in conflict with Python packaging. If/when we make this change, it may also make sense to adopt manylinux as a base - that way, the base image being specified would match the binary compatibility tags used by Python binary packages. This would be much easier to explain than the current situation of establishing whether Ubuntu 18.04 is compatible with manylinux2_28.

Making this switch has it's own complications; we've investigated this option in the past, and gave up for reasons related to GUI libraries packaging.

@freakboy3742 freakboy3742 added enhancement New features, or improvements to existing features. up-for-grabs linux The issue relates Linux support. labels Oct 30, 2022
@rmartin16
Copy link
Member

manylinux usage ref: https://mayeut.github.io/manylinux-timeline/

@freakboy3742
Copy link
Member Author

This was implemented in #1132, released in Briefcase 0.3.14

Sign up for free to join this conversation on GitHub. Already have an account? Sign in 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

2 participants