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

Add support for Fedora 39 #680

Merged
merged 9 commits into from
Jan 31, 2024
Merged

Add support for Fedora 39 #680

merged 9 commits into from
Jan 31, 2024

Conversation

apyrgio
Copy link
Contributor

@apyrgio apyrgio commented Jan 18, 2024

This PR adds long awaited support for Fedora 39. More specifically, it includes the following changes:

  • Specifies that the repo works with Python 3.12, which is a prerequisite for using PySide6
  • Allows building a Dangerzone RPM that depends on PySide6, only on Fedora 39+
  • Allows building an end-user environment on Fedora 39, that installs Dangerzone and downloads PySide6.
    • Extra care has been taken to make installation of PySide6 easy with a --download-pyside6 flag, but also allow the dev to provide a PySide6 RPM, if they have one handy.
  • Include Fedora 39 in our CI tests, changelog, and installation instructions
  • Add an extra CI job that builds a Dangerzone RPM, then installs it in a clean end-user environment, and performs some CLI/GUI smoke tests

Fixes #606

Copy link
Contributor

@deeplow deeplow left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a lot for the PR and all the research behind this.

This also partially solves #211. Just adding this here so we can keep track of this in that discussion.

Python3-PySide6-rpm suggestions:

dev_scripts/env.py Outdated Show resolved Hide resolved
pyproject.toml Show resolved Hide resolved
dev_scripts/env.py Outdated Show resolved Hide resolved
dev_scripts/env.py Outdated Show resolved Hide resolved
install/linux/dangerzone.spec Outdated Show resolved Hide resolved
RELEASE.md Outdated Show resolved Hide resolved
@apyrgio
Copy link
Contributor Author

apyrgio commented Jan 23, 2024

This also partially solves #211. Just adding this here so we can keep track of this in that discussion.

👍

https://github.com/freedomofpress/python3-pyside6-rpm/blob/main/.github/workflows/ci.yml#L20 maybe instead having CI test always on a specific version of PySide6 (we'll for sure forget to update it), then maybe we want it running on the latest PySide6 version or maybe fetching the version we're using in dangerzone with git clone... && poetry show pyside6 | grep -v. Might be overkill. I'm just concerned about forgetting to change this.

Right, we discussed about having an automated job in the python3-pyside6-rpm, that will send a PR immediately after a new PySide6 version gets released. I'd like that as well.

question: https://github.com/freedomofpress/python3-pyside6-rpm/blob/main/.github/workflows/ci.yml#L36C15-L36C41 uploading artifacts makes it available as a release?

They make them available as nightly artifacts to logged in GitHub users. You can check it out from the "Actions" tab.

Copy link
Contributor

@deeplow deeplow left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Fedora 39 ships with Python 3.12 by default, which Dangerzone previously
did not support due to limitations from the PySide6 package. Now that
the PySide6 package has been updated to 6.6.1, and the limitation has
lifted, we should to reflect this in pyproject.toml.
Update our RPM spec file to include PySide6 as a dependency, for Fedora
39 onward.
The env.py dev script does not return an exit code for failures, so we
add the necessary 'return' statements to do so.
Extend the env.py script to build an end-user, Fedora 39+ environment
with PySide6 installed, as a regular RPM package. Previously, this was
only possible for development environments with PySide6 downloaded from
PyPI.

As a way to simplify builds, the env.py script offers the option to
download the RPM package itself from FPF's RPM repo [1], if the package
has been uploaded.

[1]: https://packages.freedom.press/yum-tools-prod
Now that we can create a Dangerzone RPM that depends on PySide6, we can
officially support Fedora 39 as a platform. Add this platform in our CI
tests, as well as our install/release notes.

Fixes #606
Add some Fedora CI jobs that build RPMs, install them in an end-user
environment, and make a simple conversion and GUI import check. These
are basically smoke tests for Fedora, similar to the ones we have for
Debian.
Explain what's the process behind adding/removing Linux platforms, prior
to a release.
Explain what happens when we bump our `poetry.lock`, and a new
Pyside6 version. Also, have a step-by-step guide on how the maintainer
should create a new PySide6 RPM and update FPF's repo, so that
Dangerzone can be released.
@apyrgio apyrgio merged commit 3e10fd1 into main Jan 31, 2024
14 of 16 checks passed
@apyrgio
Copy link
Contributor Author

apyrgio commented Feb 8, 2024

Heads up for those who can't install Dangerzone in Fedora 39 yet: we plan to release Dangerzone 0.6.0 in the coming days, and with that an RPM for Fedora 39. You should then be able to install it in your system. In the meantime, note that you can build a Dangerzone RPM locally by following our build instructions.

@apyrgio apyrgio deleted the 606-pyside6 branch May 22, 2024 09:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add Fedora 39 support (released Oct 24th)
2 participants