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

Linux/AppImage: Install meson and ninja from PyPI #555

Merged
merged 1 commit into from
Sep 11, 2024

Conversation

guihkx
Copy link
Contributor

@guihkx guihkx commented Sep 11, 2024

This fixes the broken "Linux (AppImage)" CI job.

Some systems (e.g. Ubuntu 22.04, which we use to make the AppImage), have ancient versions of meson and ninja, which is not good when we have dependencies like PyGObject 3.47+ (and more recently, one of its transitive dependencies, pycairo 1.27+) requiring a fairly recent version of meson to be able to be built.

So, instead of relying on whatever meson/ninja version the current system provides us with to make the AppImage, this change will simply install up-to-date, official wheels of meson/ninja directly from PyPI.

This also allows us to finally unpin PyGObject's version.

Copy link
Owner

@DevilXD DevilXD left a comment

Choose a reason for hiding this comment

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

Yeah, I've been searching online for a solution to this, but without knowledge about Linux, I wouldn't even know what meson is. Thank you for taking care of this =)

requirements.txt Outdated Show resolved Hide resolved
Some systems (e.g. Ubuntu 22.04, which we use to make the AppImage),
have ancient versions of meson and ninja, which is not good when we
have dependencies like PyGObject 3.47+ (and more recently, one of its
transitive dependencies, pycairo 1.27+) requiring a fairly recent
version of meson to be able to be built.

So, instead of relying on whatever meson/ninja version the current
system provides us with to make the AppImage, this change will simply
install up-to-date, official wheels of meson/ninja directly from PyPI.

This also allows us to finally unpin PyGObject's version.
@guihkx
Copy link
Contributor Author

guihkx commented Sep 11, 2024

Yeah, I first tried to pin pycairo to <1.27.0, but it didn't work because apparently we can't pin versions of transitive dependencies using just requirements.txt.

Then, I learned you could actually install meson/ninja directly from PyPI, which honestly blew my mind... 🤯

@DevilXD DevilXD merged commit 49e8db9 into DevilXD:master Sep 11, 2024
4 checks passed
@DevilXD DevilXD added the Fix This fixes an existing issue or error label Sep 11, 2024
@guihkx guihkx deleted the pycairo-bs branch September 11, 2024 09:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Fix This fixes an existing issue or error
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants