Add GPL-3.0 LICENSE, port update checker from android-app-template
LICENSE: verbatim copy of android-app-template's (official SPDX text, not retyped) — GPL-3.0 as previously decided. Update checker: check_latest_release()/download_and_install()/ MessagePopup ported from the template, wired to a new "Check for Updates" button next to Settings. Requires certifi added to p4a-recipes/kivy's python_depends (HTTPS on Android needs an explicit CA bundle) and INTERNET/REQUEST_INSTALL_PACKAGES added to buildozer.spec. FORGEJO_TOKEN at the top of main.py ships blank — update checking is inert until it's set to a repo-scoped read-only token. download_and_install() is the standard p4a pattern but not yet verified on real hardware, same caveat as the template it came from. Dropped the previously-agreed config.json split (event list vs. data path) — decided it's not needed after all.
This commit is contained in:
parent
4a617469b8
commit
d7e5569dda
5 changed files with 499 additions and 40 deletions
|
|
@ -5,13 +5,26 @@
|
|||
# release ships an Android-tagged wheel that p4a's own install step
|
||||
# can't actually install.
|
||||
#
|
||||
# 'filetype' is kept — it's NOT part of that broken chain (zero deps of
|
||||
# its own, no requests/charset-normalizer involved) and it's a genuine
|
||||
# runtime dependency: kivy/core/image/__init__.py imports it directly
|
||||
# for image format sniffing, unlike the other five which are only for
|
||||
# kivy.network.UrlRequest (which this app never calls). Confirmed the
|
||||
# hard way — dropping it too caused a startup crash on-device:
|
||||
# ModuleNotFoundError: No module named 'filetype'
|
||||
# 'filetype' and 'certifi' are kept — neither is part of that broken
|
||||
# chain (both pure Python, zero deps of their own, no requests/
|
||||
# charset-normalizer involved):
|
||||
# - filetype: kivy/core/image/__init__.py imports it directly for
|
||||
# image format sniffing. Confirmed the hard way — dropping it too
|
||||
# caused a startup crash on-device: ModuleNotFoundError: No module
|
||||
# named 'filetype'.
|
||||
# - certifi: main.py's update checker needs it for HTTPS on Android
|
||||
# (see the comment on check_latest_release() in main.py) — the
|
||||
# desktop-facing v1 of this app never made a network call, so it
|
||||
# never needed this until the update checker was ported over.
|
||||
# The remaining three (chardet, idna, requests, urllib3 minus what's
|
||||
# listed above) are only for kivy.network.UrlRequest, which this app
|
||||
# still never calls — reminder: editing python_depends here alone isn't
|
||||
# enough for the change to take effect on an existing build. p4a caches
|
||||
# the built dist by name+recipe-list and won't re-derive python_depends
|
||||
# for a dist that already exists — delete
|
||||
# .buildozer/android/platform/build-<arch>/dists/<package.name> after
|
||||
# any python_depends change or the fix will silently not apply. See
|
||||
# CLAUDE.md for the full trace of that gotcha.
|
||||
from os.path import join
|
||||
import sys
|
||||
import packaging.version
|
||||
|
|
@ -48,7 +61,7 @@ class KivyRecipe(PyProjectRecipe):
|
|||
name = 'kivy'
|
||||
|
||||
depends = [('sdl2', 'sdl3'), 'pyjnius', 'setuptools', 'android']
|
||||
python_depends = ['filetype'] # upstream also had: 'certifi', 'chardet', 'idna', 'requests', 'urllib3' — unused, see buildozer.spec
|
||||
python_depends = ['filetype', 'certifi'] # upstream also had: 'chardet', 'idna', 'requests', 'urllib3' — unused, see buildozer.spec
|
||||
hostpython_prerequisites = ["cython>=0.29.1,<=3.0.12"]
|
||||
|
||||
# sdl-gl-swapwindow-nogil.patch is needed to avoid a deadlock.
|
||||
|
|
|
|||
Loading…
Reference in a new issue