note: some files have two versions in them, e.g.:
```
assert CffiRecipe._version == "1.15.1"
class CffiRecipePinned(util.InheritedRecipeMixin, CffiRecipe):
version = "1.17.1"
```
The assert is left there as I think it might be useful to get a failure if we rebase p4a
and the upstream recipe version changes. There might be substantial changes in the upstream
recipe that we need to adapt to. In the happy case, if we rebase p4a, we just have to manually
update these asserts to the new versions at that time.
python-for-android local recipes
These folders are recipes (build scripts) for most of our direct and transitive dependencies for the Android app. python-for-android has recipes built-in for many packages but it also allows users to specify their "local" recipes. Local recipes have precedence over the built-in recipes.
The local recipes we have here are mostly just used to pin down specific versions and hashes for reproducibility. The hashes are updated manually.