python: update to 3.13#3082
Conversation
626b426 to
6b43f88
Compare
6b43f88 to
4879d33
Compare
|
Hey, how is development on this going, and is your version ready to build something? Because I tried using this version, as I really want to build my app using /home/user/Documents/python/sample_buildozer_py3.13/.buildozer/android/platform/build-arm64-v8a/build/other_builds/kivy/arm64-v8a__ndk_target_21/kivy/kivy/core/audio/audio_sdl2.c:12174:70: error: too few arguments to function call, expected 6, have 5
is_little, !is_unsigned);
^
/home/user/Documents/python/sample_buildozer_py3.13/.buildozer/android/platform/build-arm64-v8a/build/other_builds/python3/arm64-v8a__ndk_target_21/python3/Include/cpython/longobject.h:111:17: note: '_PyLong_AsByteArray' declared here
PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v,
^
/home/user/Documents/python/sample_buildozer_py3.13/.buildozer/android/platform/build-arm64-v8a/build/other_builds/kivy/arm64-v8a__ndk_target_21/kivy/kivy/core/audio/audio_sdl2.c:12370:70: error: too few arguments to function call, expected 6, have 5
is_little, !is_unsigned);
^
/home/user/Documents/python/sample_buildozer_py3.13/.buildozer/android/platform/build-arm64-v8a/build/other_builds/python3/arm64-v8a__ndk_target_21/python3/Include/cpython/longobject.h:111:17: note: '_PyLong_AsByteArray' declared here
PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v,
^
/home/user/Documents/python/sample_buildozer_py3.13/.buildozer/android/platform/build-arm64-v8a/build/other_builds/kivy/arm64-v8a__ndk_target_21/kivy/kivy/core/audio/audio_sdl2.c:12604:70: error: too few arguments to function call, expected 6, have 5
is_little, !is_unsigned);
^
/home/user/Documents/python/sample_buildozer_py3.13/.buildozer/android/platform/build-arm64-v8a/build/other_builds/python3/arm64-v8a__ndk_target_21/python3/Include/cpython/longobject.h:111:17: note: '_PyLong_AsByteArray' declared here
PyAPI_FUNC(int) _PyLong_AsByteArray(PyLongObject* v,
^
3 warnings and 4 errors generated.
error: command '/usr/bin/ccache' failed with exit code 1 |
|
I am bit inactive on github due to some other things going on. This PR works on my system, kivy latest recipe isn't ported yet. I will work on it this week. |
|
Wow, thanks for the quick response! The PR works, and I do get compilation working without kivy working (only in the recipe folder and not in requirements) but as soon as I add kivy to requirements it stops working. Sadly I have no idea how recipes work so I probably can't fix it myself. I'll still look at it. |
|
pip install python-for-android |
Sorry but I don’t seem to understand what you are suggesting/how this is relevant. |
b7c61ea to
178dc2a
Compare
|
@Tear4Pixelation Kivy recipe has been ported, you can test. |
|
@T-Dynamos Tysm, i will be on vacation for a week but after or while I will definitely test it. |
|
Hello, @T-Dynamos (sorry for the late reply). For some reason, my last response didn't post, but I got this error: But now, all of a sudden I am getting this error instead (after |
|
Update: So using the old pull directory as source dir (before the update of the kivy recipe, just before posting my initial error message) , I get the first error, but pulling again (using I just looked through the differences between the two directories locally, and honestly, I have no Idea what might make such a massive difference. |
|
now with this buildozer spec I get the first error again: # This .spec config file tells Buildozer an app's requirements for being built.
#
# It largely follows the syntax of an .ini file.
# See the end of the file for more details and warnings about common mistakes.
[app]
# (str) Title of your application
title = My Application
# (str) Package name
package.name = myapp
# (str) Package domain (needed for android/ios packaging)
package.domain = org.test.languageassistant
# (str) Source code where the main.py live
source.dir = .
# (list) Source files to include (leave empty to include all the files)
source.include_exts = py,png,jpg,kv,atlas
# (list) List of inclusions using pattern matching
#source.include_patterns = assets/*,images/*.png
# (list) Source files to exclude (leave empty to not exclude anything)
#source.exclude_exts = spec
# (list) List of directory to exclude (leave empty to not exclude anything)
#source.exclude_dirs = tests, bin, venv
# (list) List of exclusions using pattern matching
# Do not prefix with './'
#source.exclude_patterns = license,images/*/*.jpg
# (str) Application versioning (method 1)
version = 0.1
# (str) Application versioning (method 2)
# version.regex = __version__ = ['"](.*)['"]
# version.filename = %(source.dir)s/main.py
# (list) Application requirements
# comma separated e.g. requirements = sqlite3,kivy
requirements = python3, cython, openssl, kivy, pillow, annotated-types, anyio, asyncgui, asynckivy, buildozer, certifi, charset-normalizer, distro, docutils, exceptiongroup, filetype, h11, httpcore, httpx, idna, jiter, Kivy-Garden, kivymd2, openai, packaging, pexpect, pip, ptyprocess, pydantic, pydantic_core, Pygments, requests, sniffio, tqdm, typing_extensions, certifi, chardet, idna, requests, urllib3, kivy
# (str) Custom source folders for requirements
# Sets custom source for any requirements with recipes
# requirements.source.kivy = ../../kivy
# (str) Presplash of the application
#presplash.filename = %(source.dir)s/data/presplash.png
# (str) Icon of the application
#icon.filename = %(source.dir)s/data/icon.png
# (list) Supported orientations
# Valid options are: landscape, portrait, portrait-reverse or landscape-reverse
orientation = portrait
# (list) List of services to declare
# This is currently only relevant to Android services.
# Each service consists of a name (a valid Java class name, with the first letter capitalized)
# followed by a colon, followed by the name of the Python script (.py file) that should be
# launched. This is optionally followed by ":foreground" for foreground services or
# ":foreground:sticky" for sticky foreground services. The default is a background service.
# Bound services are not supported.
#services = NAME:ENTRYPOINT_TO_PY,NAME2:ENTRYPOINT2_TO_PY
#
# OSX Specific
#
#
# author = © Copyright Info
# Kivy version to use
osx.kivy_version = 2.2.0
#
# Android specific
#
# (bool) Indicate if the application should be fullscreen or not
fullscreen = 0
# [...] unchanged stuff
# (list) The Android archs to build for, choices: armeabi-v7a, arm64-v8a, x86, x86_64
# In past, was `android.arch` as we weren't supporting builds for multiple archs at the same time.
android.archs = arm64-v8a
# (int) overrides automatic versionCode computation (used in build.gradle)
# this is not the same as app version and should only be edited if you know what you're doing
# android.numeric_version = 1
# (bool) enables Android auto backup feature (Android API >=23)
android.allow_backup = True
# (str) XML file for custom backup rules (see official auto backup documentation)
# android.backup_rules =
# (str) If you need to insert variables into your AndroidManifest.xml file,
# you can do so with the manifestPlaceholders property.
# This property takes a map of key-value pairs. (via a string)
# Usage example : android.manifest_placeholders = [myCustomUrl:\"org.kivy.customurl\"]
# android.manifest_placeholders = [:]
# (bool) Skip byte compile for .py files
# android.no-byte-compile-python = False
# (str) The format used to package the app for release mode (aab or apk or aar).
# android.release_artifact = aab
# (str) The format used to package the app for debug mode (apk or aar).
# android.debug_artifact = apk
#
# Python for android (p4a) specific
#
# (str) python-for-android URL to use for checkout
p4a.url = https://github.com/T-Dynamos/python-for-android/
# (str) python-for-android fork to use in case if p4a.url is not specified, defaults to upstream (kivy)
p4a.fork = T-Dynamos
# (str) python-for-android branch to use, defaults to master
p4a.branch = prebuilt-artifacts
# (str) python-for-android specific commit to use, defaults to HEAD, must be within p4a.branch
#p4a.commit = HEAD
# (str) python-for-android git clone directory
#p4a.source_dir = ./p4a/ # ./python-for-android/
# (str) The directory in which python-for-android should look for your own build recipes (if any)
p4a.local_recipes = ./recipes/ # ./p4a/pythonforandroid/recipes/
# (str) Filename to the hook for p4a
#p4a.hook =
# (str) Bootstrap to use for android builds
# Run "buildozer android p4a -- bootstraps" for a list of valid values.
# p4a.bootstrap = sdl2
# (int) port number to specify an explicit --port= p4a argument (eg for bootstrap flask)
#p4a.port =
# Control passing the --use-setup-py vs --ignore-setup-py to p4a
# "in the future" --use-setup-py is going to be the default behaviour in p4a, right now it is not
# Setting this to false will pass --ignore-setup-py, true will pass --use-setup-py
# NOTE: this is general setuptools integration, having pyproject.toml is enough, no need to generate
# setup.py if you're using Poetry, but you need to add "toml" to source.include_exts.
#p4a.setup_py = false
# (str) extra command line arguments to pass when invoking pythonforandroid.toolchain
#p4a.extra_args =
#
# iOS specific
#
# (str) Path to a custom kivy-ios folder
#ios.kivy_ios_dir = ../kivy-ios
# Alternately, specify the URL and branch of a git checkout:
ios.kivy_ios_url = https://github.com/kivy/kivy-ios
ios.kivy_ios_branch = master
# Another platform dependency: ios-deploy
# Uncomment to use a custom checkout
#ios.ios_deploy_dir = ../ios_deploy
# Or specify URL and branch
ios.ios_deploy_url = https://github.com/phonegap/ios-deploy
ios.ios_deploy_branch = 1.12.2
# (bool) Whether or not to sign the code
ios.codesign.allowed = false
# (str) Name of the certificate to use for signing the debug version
# Get a list of available identities: buildozer ios list_identities
#ios.codesign.debug = "iPhone Developer: <lastname> <firstname> (<hexstring>)"
# (str) The development team to use for signing the debug version
#ios.codesign.development_team.debug = <hexstring>
# (str) Name of the certificate to use for signing the release version
#ios.codesign.release = %(ios.codesign.debug)s
# (str) The development team to use for signing the release version
#ios.codesign.development_team.release = <hexstring>
# (str) URL pointing to .ipa file to be installed
# This option should be defined along with `display_image_url` and `full_size_image_url` options.
#ios.manifest.app_url =
# (str) URL pointing to an icon (57x57px) to be displayed during download
# This option should be defined along with `app_url` and `full_size_image_url` options.
#ios.manifest.display_image_url =
# (str) URL pointing to a large icon (512x512px) to be used by iTunes
# This option should be defined along with `app_url` and `display_image_url` options.
#ios.manifest.full_size_image_url =
[buildozer]
# (int) Log level (0 = error only, 1 = info, 2 = debug (with command output))
log_level = 2
# (int) Display warning if buildozer is run as root (0 = False, 1 = True)
warn_on_root = 1
# (str) Path to build artifact storage, absolute or relative to spec file
# build_dir = ./.buildozer
# (str) Path to build output (i.e. .apk, .aab, .ipa) storage
# bin_dir = ./bin
#-----------------------------------------------------------------------------
# Notes about using this file:
#
# Buildozer uses a variant of Python's ConfigSpec to read this file.
# For the basic syntax, including interpolations, see
# https://docs.python.org/3/library/configparser.html#supported-ini-file-structure
#
# Warning: Comments cannot be used "inline" - i.e.
# [app]
# title = My Application # This is not a comment, it is part of the title.
#
# Warning: Indented text is treated as a multiline string - i.e.
# [app]
# title = My Application
# package.name = myapp # This is all part of the title.
#
# Buildozer's .spec files have some additional features:
#
# Buildozer supports lists - i.e.
# [app]
# source.include_exts = py,png,jpg
# # ^ This is a list.
#
# [app:source.include_exts]
# py
# png
# jpg
# # ^ This is an alternative syntax for a list.
#
# Buildozer's option names are case-sensitive, unlike most .ini files.
#
# Buildozer supports overriding options through environment variables.
# Name an environment variable as SECTION_OPTION to override a value in a .spec
# file.
#
# Buildozer support overriding options through profiles.
# For example, you want to deploy a demo version of your application without
# HD content. You could first change the title to add "(demo)" in the name
# and extend the excluded directories to remove the HD content.
#
# [app@demo]
# title = My Application (demo)
#
# [app:source.exclude_patterns@demo]
# images/hd/*
#
# Then, invoke the command line with the "demo" profile:
#
# buildozer --profile demo android debug
#
# Environment variable overrides have priority over profile overrides. |
|
Will reopen in parts as too many conflicts with develop. |
|
Is there some temporary fix for the openssl Blake issue #3020 |
Closes #3020
First step towards: https://github.com/orgs/kivy/discussions/38
#3013
Updating python to 3.13 removes distutils, so we can't run
setup.pydirectly so all recipes has to be ported toPyProjectRecipe.pythonforandroid.recipebuild.