Skip to content

Conversation

clayote
Copy link
Contributor

@clayote clayote commented Oct 20, 2025

Python 3.14 finally removes the distutils package, which breaks the way p4a byte-compiles all its recipes using setup.py install. This PR replaces all instances of setup.py install with pip install, but leaves all other uses of setup.py.

Two recipes, android and freetype, used distutils in other ways. I've replaced those uses with setuptools, too.

On Python 3.14, many recipes, notably `msgpack`, no longer byte-
compile with `setup.py install`, because the way that command
byte-compiles relies on `distutils`, which is gone.
@clayote clayote requested a review from T-Dynamos October 22, 2025 01:30
@clayote clayote changed the title Use pip install instead of setup.py install when building recipes Remove distutils Oct 22, 2025
@clayote
Copy link
Contributor Author

clayote commented Oct 22, 2025

I bumped the freetype versions just because I happened to be looking at them. If this isn't good practice, I'll put them back.

@T-Dynamos
Copy link
Contributor

@clayote Can we port freetype-py to PyProjectRecipe?

@clayote
Copy link
Contributor Author

clayote commented Oct 22, 2025

hmmm... sure, why not

I don't think this will require the version hack
`setuptools-scm` can't deal with the github hosted one, it seems.
@clayote
Copy link
Contributor Author

clayote commented Oct 23, 2025

The way I had to change the source url to get the newly PyProject based FreetypePy recipe to build suggests that I'll need to make similar changes to every other recipe. Well, it had to happen eventually.

@clayote
Copy link
Contributor Author

clayote commented Oct 23, 2025

The version of cffi that adds Python 3.14 support also drops Python 3.8 support.

I think that means p4a will need to pick one or the other, and I'd certainly favor Python 3.14.

T-Dynamos and others added 5 commits October 23, 2025 15:42
On Python 3.14, many recipes, notably `msgpack`, no longer byte-
compile with `setup.py install`, because the way that command
byte-compiles relies on `distutils`, which is gone.
It was actually using distutils every time, apparently?
@clayote clayote changed the title Remove distutils Update to Python 3.14, remove distutils Oct 23, 2025
@clayote clayote marked this pull request as draft October 23, 2025 02:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants