diff --git a/buildozer.spec.arm.ci b/buildozer.spec.arm.ci index e349beb..717c650 100644 --- a/buildozer.spec.arm.ci +++ b/buildozer.spec.arm.ci @@ -39,7 +39,7 @@ version.filename = %(source.dir)s/main.py # (list) Application requirements # comma seperated e.g. requirements = sqlite3,kivy -requirements = python3crystax, openssl, sqlite3, hostpython3crystax, android, distro==1.4.0, pyjnius, certifi==2021.5.30, appdirs==1.4.3, docopt==0.6.2, base58==1.0.0, colorama==0.3.7, ecdsa==0.13.3, jsonschema==2.6.0, pbkdf2==1.3, pyyaml, protobuf==3.6.1, keyring==10.4.0, defusedxml, aioupnp==0.0.17, asn1crypto, mock, netifaces, cryptography, aiohttp==3.6.0, multidict==4.5.2, idna, yarl==1.3.0, chardet==3.0.4, async_timeout==3.0.1, coincurve, msgpack==0.6.1, six, attrs==18.2.0, pylru, hachoir, prometheus_client==0.8.0, "git+https://github.com/lbryio/lbry-sdk@v0.102.0#egg=lbry" +requirements = python3crystax, openssl, sqlite3, hostpython3crystax, android, distro==1.4.0, pyjnius, certifi==2021.5.30, appdirs==1.4.3, docopt==0.6.2, base58==1.0.0, colorama==0.3.7, ecdsa==0.13.3, jsonschema==2.6.0, pbkdf2==1.3, pyyaml, protobuf==3.6.1, keyring==10.4.0, defusedxml, aioupnp==0.0.17, asn1crypto, mock, cryptography, aiohttp==3.6.0, multidict==4.5.2, idna, yarl==1.3.0, chardet==3.0.4, async_timeout==3.0.1, coincurve, msgpack==0.6.1, six, attrs==18.2.0, pylru, hachoir, prometheus_client==0.8.0, "git+https://github.com/lbryio/lbry-sdk@v0.102.0#egg=lbry" # (str) Custom source folders for requirements # Sets custom source for any requirements with recipes diff --git a/buildozer.spec.arm64.ci b/buildozer.spec.arm64.ci index 1d201fc..849adaf 100644 --- a/buildozer.spec.arm64.ci +++ b/buildozer.spec.arm64.ci @@ -39,7 +39,7 @@ version.filename = %(source.dir)s/main.py # (list) Application requirements # comma seperated e.g. requirements = sqlite3,kivy -requirements = python3crystax, openssl, sqlite3, hostpython3crystax, android, distro==1.4.0, pyjnius, certifi==2021.5.30, appdirs==1.4.3, docopt==0.6.2, base58==1.0.0, colorama==0.3.7, ecdsa==0.13.3, jsonschema==2.6.0, pbkdf2==1.3, pyyaml, protobuf==3.6.1, keyring==10.4.0, defusedxml, aioupnp==0.0.17, asn1crypto, mock, netifaces, cryptography, aiohttp==3.6.0, multidict==4.5.2, idna, yarl==1.3.0, chardet==3.0.4, async_timeout==3.0.1, coincurve, msgpack==0.6.1, six, attrs==18.2.0, pylru, hachoir, prometheus_client==0.8.0, "git+https://github.com/lbryio/lbry-sdk@v0.102.0#egg=lbry" +requirements = python3crystax, openssl, sqlite3, hostpython3crystax, android, distro==1.4.0, pyjnius, certifi==2021.5.30, appdirs==1.4.3, docopt==0.6.2, base58==1.0.0, colorama==0.3.7, ecdsa==0.13.3, jsonschema==2.6.0, pbkdf2==1.3, pyyaml, protobuf==3.6.1, keyring==10.4.0, defusedxml, aioupnp==0.0.17, asn1crypto, mock, cryptography, aiohttp==3.6.0, multidict==4.5.2, idna, yarl==1.3.0, chardet==3.0.4, async_timeout==3.0.1, coincurve, msgpack==0.6.1, six, attrs==18.2.0, pylru, hachoir, prometheus_client==0.8.0, "git+https://github.com/lbryio/lbry-sdk@v0.102.0#egg=lbry" # (str) Custom source folders for requirements # Sets custom source for any requirements with recipes diff --git a/buildozer.spec.sample b/buildozer.spec.sample index 190abca..f69720d 100644 --- a/buildozer.spec.sample +++ b/buildozer.spec.sample @@ -39,7 +39,7 @@ version.filename = %(source.dir)s/main.py # (list) Application requirements # comma seperated e.g. requirements = sqlite3,kivy -requirements = python3crystax, openssl, sqlite3, hostpython3crystax, android, distro==1.4.0, pyjnius, certifi==2021.5.30, appdirs==1.4.3, docopt==0.6.2, base58==1.0.0, colorama==0.3.7, ecdsa==0.13.3, jsonschema==2.6.0, pbkdf2==1.3, pyyaml, protobuf==3.6.1, keyring==10.4.0, defusedxml, aioupnp==0.0.17, asn1crypto, mock, netifaces, cryptography, aiohttp==3.6.0, multidict==4.5.2, idna, yarl==1.3.0, chardet==3.0.4, async_timeout==3.0.1, coincurve, msgpack==0.6.1, six, attrs==18.2.0, pylru, hachoir, prometheus_client==0.8.0, "git+https://github.com/lbryio/lbry-sdk@v0.102.0#egg=lbry" +requirements = python3crystax, openssl, sqlite3, hostpython3crystax, android, distro==1.4.0, pyjnius, certifi==2021.5.30, appdirs==1.4.3, docopt==0.6.2, base58==1.0.0, colorama==0.3.7, ecdsa==0.13.3, jsonschema==2.6.0, pbkdf2==1.3, pyyaml, protobuf==3.6.1, keyring==10.4.0, defusedxml, aioupnp==0.0.17, asn1crypto, mock, cryptography, aiohttp==3.6.0, multidict==4.5.2, idna, yarl==1.3.0, chardet==3.0.4, async_timeout==3.0.1, coincurve, msgpack==0.6.1, six, attrs==18.2.0, pylru, hachoir, prometheus_client==0.8.0, "git+https://github.com/lbryio/lbry-sdk@v0.102.0#egg=lbry" # (str) Custom source folders for requirements # Sets custom source for any requirements with recipes diff --git a/buildozer.spec.vagrant b/buildozer.spec.vagrant index b46a123..232557e 100644 --- a/buildozer.spec.vagrant +++ b/buildozer.spec.vagrant @@ -39,7 +39,7 @@ version.filename = %(source.dir)s/main.py # (list) Application requirements # comma seperated e.g. requirements = sqlite3,kivy -requirements = python3crystax, openssl, sqlite3, hostpython3crystax, android, distro==1.4.0, pyjnius, certifi==2021.5.30, appdirs==1.4.3, docopt==0.6.2, base58==1.0.0, colorama==0.3.7, ecdsa==0.13.3, jsonschema==2.6.0, pbkdf2==1.3, pyyaml, protobuf==3.6.1, keyring==10.4.0, defusedxml, git+https://github.com/lbryio/aioupnp.git@ab7ef0048bbce6404e463d20e8a15046ea6941f0#egg=aioupnp, asn1crypto, mock, netifaces, cryptography, aiohttp==3.6.0, multidict==4.5.2, idna, yarl==1.3.0, chardet==3.0.4, async_timeout==3.0.1, coincurve, msgpack==0.6.1, six, attrs==18.2.0, pylru, hachoir, prometheus_client==0.7.1, "git+https://github.com/lbryio/lbry-sdk@v0.102.0#egg=lbry" +requirements = python3crystax, openssl, sqlite3, hostpython3crystax, android, distro==1.4.0, pyjnius, certifi==2021.5.30, appdirs==1.4.3, docopt==0.6.2, base58==1.0.0, colorama==0.3.7, ecdsa==0.13.3, jsonschema==2.6.0, pbkdf2==1.3, pyyaml, protobuf==3.6.1, keyring==10.4.0, defusedxml, git+https://github.com/lbryio/aioupnp.git@ab7ef0048bbce6404e463d20e8a15046ea6941f0#egg=aioupnp, asn1crypto, mock, cryptography, aiohttp==3.6.0, multidict==4.5.2, idna, yarl==1.3.0, chardet==3.0.4, async_timeout==3.0.1, coincurve, msgpack==0.6.1, six, attrs==18.2.0, pylru, hachoir, prometheus_client==0.7.1, "git+https://github.com/lbryio/lbry-sdk@v0.102.0#egg=lbry" # (str) Custom source folders for requirements # Sets custom source for any requirements with recipes diff --git a/p4a/pythonforandroid/archs.py b/p4a/pythonforandroid/archs.py index 09ebba4..d5fb894 100644 --- a/p4a/pythonforandroid/archs.py +++ b/p4a/pythonforandroid/archs.py @@ -83,7 +83,7 @@ class Arch(object): env['CFLAGS'] += ' -isysroot {} '.format(sysroot) env['CFLAGS'] += '-I' + join(self.ctx.get_python_install_dir(), 'include/python{}'.format( - self.ctx.python_recipe.version[0:3]) + self.ctx.python_recipe.version) ) env['LDFLAGS'] += '--sysroot={} '.format(self.ctx.ndk_platform) @@ -157,7 +157,7 @@ class Arch(object): if self.ctx.python_recipe and self.ctx.python_recipe.from_crystax: # For crystax python, we can't use the host python headers: env["CFLAGS"] += ' -I{}/sources/python/{}/include/python/'.\ - format(self.ctx.ndk_dir, self.ctx.python_recipe.version[0:3]) + format(self.ctx.ndk_dir, self.ctx.python_recipe.version) env['STRIP'] = '{}-strip --strip-unneeded'.format(command_prefix) env['MAKE'] = 'make -j5' env['READELF'] = '{}-readelf'.format(command_prefix) diff --git a/recipes/cffi/__init__.py b/recipes/cffi/__init__.py index cc4dc05..6b67c59 100644 --- a/recipes/cffi/__init__.py +++ b/recipes/cffi/__init__.py @@ -5,7 +5,7 @@ from pythonforandroid.recipe import CompiledComponentsPythonRecipe class CffiRecipe(CompiledComponentsPythonRecipe): name = 'cffi' - version = '1.13.2' + version = '1.14.1' url = 'https://pypi.python.org/packages/source/c/cffi/cffi-{version}.tar.gz' depends = [('python2', 'python3crystax'), 'setuptools', 'pycparser', 'libffi'] @@ -45,7 +45,7 @@ class CffiRecipe(CompiledComponentsPythonRecipe): ]) if self.ctx.ndk == 'crystax': # only keeps major.minor (discards patch) - python_version = self.ctx.python_recipe.version[0:3] + python_version = self.ctx.python_recipe.version ndk_dir_python = os.path.join(self.ctx.ndk_dir, 'sources/python/', python_version) env['LDFLAGS'] += ' -L{}'.format(os.path.join(ndk_dir_python, 'libs', arch.arch)) env['LDFLAGS'] += ' -lpython{}'.format(python_version) diff --git a/recipes/coincurve/__init__.py b/recipes/coincurve/__init__.py index 5be9557..f240a77 100644 --- a/recipes/coincurve/__init__.py +++ b/recipes/coincurve/__init__.py @@ -21,7 +21,7 @@ class CoincurveRecipe(CompiledComponentsPythonRecipe): env['LDFLAGS'] += ' -L{}'.format(os.path.join(libsecp256k1_dir, '.libs')) env['CFLAGS'] += ' -I' + os.path.join(libsecp256k1_dir, 'include') # only keeps major.minor (discards patch) - python_version = self.ctx.python_recipe.version[0:3] + python_version = self.ctx.python_recipe.version # required additional library and path for Crystax if self.ctx.ndk == 'crystax': ndk_dir_python = os.path.join(self.ctx.ndk_dir, 'sources/python/', python_version) diff --git a/recipes/cryptography/__init__.py b/recipes/cryptography/__init__.py index 148a121..4e8f504 100644 --- a/recipes/cryptography/__init__.py +++ b/recipes/cryptography/__init__.py @@ -23,7 +23,7 @@ class CryptographyRecipe(CompiledComponentsPythonRecipe): if self.ctx.ndk == 'crystax': # only keeps major.minor (discards patch) - python_version = self.ctx.python_recipe.version[0:3] + python_version = self.ctx.python_recipe.version ndk_dir_python = os.path.join(self.ctx.ndk_dir, 'sources/python/', python_version) env['LDFLAGS'] += ' -L{}'.format(os.path.join(ndk_dir_python, 'libs', arch.arch)) env['LDFLAGS'] += ' -lpython{}'.format(python_version) diff --git a/recipes/idna/__init__.py b/recipes/idna/__init__.py deleted file mode 100644 index a79c0f6..0000000 --- a/recipes/idna/__init__.py +++ /dev/null @@ -1,14 +0,0 @@ -from pythonforandroid.recipe import PythonRecipe - - -class IdnaRecipe(PythonRecipe): - name = 'idna' - version = '2.6' - url = 'https://github.com/kjd/idna/archive/v{version}.tar.gz' - - depends = [('python2', 'python3crystax'), 'setuptools'] - - call_hostpython_via_targetpython = False - - -recipe = IdnaRecipe() \ No newline at end of file diff --git a/recipes/netifaces/__init__.py b/recipes/netifaces/__init__.py deleted file mode 100644 index 50634d8..0000000 --- a/recipes/netifaces/__init__.py +++ /dev/null @@ -1,33 +0,0 @@ - -import glob -from pythonforandroid.recipe import CompiledComponentsPythonRecipe, Recipe -from os.path import join -import os -import sh - - -class NetifacesRecipe(CompiledComponentsPythonRecipe): - version = '0.10.7' - url = 'https://files.pythonhosted.org/packages/81/39/4e9a026265ba944ddf1fea176dbb29e0fe50c43717ba4fcf3646d099fe38/netifaces-{version}.tar.gz' - depends = [('python2', 'python3crystax'), 'setuptools'] - call_hostpython_via_targetpython = False - patches = ['socket-ioctls.patch'] - - def get_recipe_env(self, arch): - env = super(NetifacesRecipe, self).get_recipe_env(arch) - - env['LDSHARED'] = env['CC'] + ' -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions' - - if self.ctx.ndk == 'crystax': - # only keeps major.minor (discards patch) - python_version = self.ctx.python_recipe.version[0:3] - ndk_dir_python = os.path.join(self.ctx.ndk_dir, 'sources/python/', python_version) - env['LDFLAGS'] += ' -L{}'.format(os.path.join(ndk_dir_python, 'libs', arch.arch)) - env['LDFLAGS'] += ' -lpython{}'.format(python_version) - # until `pythonforandroid/archs.py` gets merged upstream: - # https://github.com/kivy/python-for-android/pull/1250/files#diff-569e13021e33ced8b54385f55b49cbe6 - env['CFLAGS'] += ' -I{}/include/python/'.format(ndk_dir_python) - - return env - -recipe = NetifacesRecipe() diff --git a/recipes/netifaces/socket-ioctls.patch b/recipes/netifaces/socket-ioctls.patch deleted file mode 100644 index 4e6da70..0000000 --- a/recipes/netifaces/socket-ioctls.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- a/netifaces.c 2018-09-25 21:26:48.238476102 +0100 -+++ b/netifaces.c 2018-09-25 21:55:14.201995669 +0100 -@@ -22,6 +22,10 @@ - obj = Py_InitModule3((name), (methods), (doc)); - #endif - -+#ifndef HAVE_SOCKET_IOCTLS -+#define HAVE_SOCKET_IOCTLS 1 -+#endif -+ - #ifndef WIN32 - - # include -@@ -178,12 +182,12 @@ - # include - # endif /* HAVE_GETIFADDRS */ - --# if !HAVE_GETIFADDRS && (!HAVE_SOCKET_IOCTLS || !HAVE_SIOCGIFCONF) -+//# if !HAVE_GETIFADDRS && (!HAVE_SOCKET_IOCTLS || !HAVE_SIOCGIFCONF) - /* If the platform doesn't define, what we need, barf. If you're seeing this, - it means you need to write suitable code to retrieve interface information - on your system. */ --# error You need to add code for your platform. --# endif -+//# error You need to add code for your platform. -+//# endif - - #else /* defined(WIN32) */ - diff --git a/recipes/python3crystax/__init__.py b/recipes/python3crystax/__init__.py index 6eb63f6..a3f3f2e 100644 --- a/recipes/python3crystax/__init__.py +++ b/recipes/python3crystax/__init__.py @@ -34,7 +34,8 @@ LATEST_FULL_VERSION = { '3.5': '3.5.1', '3.6': '3.6.6', '3.7': '3.7.1', - '3.9': '3.9.6' + '3.9': '3.9.6', + '3.10': '3.10.0' } def realpath(fname): @@ -62,7 +63,7 @@ def realpath(fname): return os.sep.join(abs_path) class Python3Recipe(TargetPythonRecipe): - version = '3.9' + version = '3.10' url = '' name = 'python3crystax' @@ -72,9 +73,12 @@ class Python3Recipe(TargetPythonRecipe): from_crystax = True def download_if_necessary(self): - if 'openssl' in self.ctx.recipe_build_order or self.version in ('3.6', '3.7', '3.9'): + if 'openssl' in self.ctx.recipe_build_order or self.version in ('3.6', '3.7', '3.9', '3.10'): full_version = LATEST_FULL_VERSION[self.version] - Python3Recipe.url = 'https://www.python.org/ftp/python/{0}.{1}.{2}/Python-{0}.{1}.{2}.tgz'.format(*full_version.split('.')) + version_suffix = 'rc1' + version_params = full_version.split('.') + version_params.append(version_suffix) + Python3Recipe.url = 'https://www.python.org/ftp/python/{0}.{1}.{2}/Python-{0}.{1}.{2}{3}.tgz'.format(*version_params) super(Python3Recipe, self).download_if_necessary() def get_dir_name(self): @@ -169,29 +173,39 @@ class Python3Recipe(TargetPythonRecipe): def prebuild_arch(self, arch): super(Python3Recipe, self).prebuild_arch(arch) - if self.version in ('3.6', '3.7', '3.9'): - Python3Recipe.patches = [ - 'patch/patch_python3.6.patch', - 'patch/remove_android_api_check.patch', - 'patch/selectors.patch' - ] - - if self.version in ('3.9'): - Python3Recipe.patches = [ - 'patch/remove_android_api_check.patch', - 'patch/patch_python3.9.patch', - 'patch/platlibdir.patch', - 'patch/strdup.patch', + if self.version in ('3.6', '3.7', '3.9', '3.10'): + patches = ['remove_android_api_check{}'.format('_3.10' if self.version == '3.10' else '')] + if self.version in ('3.6', '3.7'): + patches += [ + 'patch_python3.6', + 'selectors' + ] + + if self.version in ('3.9', '3.10'): + if self.version == '3.9': + patches += ['strdup'] + + if self.version == '3.10': + patches += ['py3.10.0_posixmodule'] + + patches += [ + 'patch_python3.9', + 'platlibdir', # from https://github.com/kivy/python-for-android/blob/develop/pythonforandroid/recipes/python3/__init__.py#L63 - 'patch/pyconfig_detection.patch', - 'patch/reproducible-buildinfo.diff', - 'patch/py3.8.1.patch' + 'pyconfig_detection', + 'reproducible-buildinfo', + 'py3.8.1' ] if sh.which('lld') is not None: - Python3Recipe.patches += ['patch/py3.8.1_fix_cortex_a8.patch'] - + patches += ['py3.8.1_fix_cortex_a8'] + + + Python3Recipe.patches = [] + for patch_name in patches: + Python3Recipe.patches.append('patch/{}.patch'.format(patch_name)) + build_dir = self.get_build_dir(arch.arch) # copy bundled libffi to _ctypes diff --git a/recipes/python3crystax/android.mk.3.9 b/recipes/python3crystax/android.mk.3.10 similarity index 93% rename from recipes/python3crystax/android.mk.3.9 rename to recipes/python3crystax/android.mk.3.10 index c915ae9..e9101c4 100644 --- a/recipes/python3crystax/android.mk.3.9 +++ b/recipes/python3crystax/android.mk.3.10 @@ -25,7 +25,6 @@ LOCAL_SRC_FILES := config.c \ $(MY_PYTHON_SRC_ROOT)/Python/getopt.c \ $(MY_PYTHON_SRC_ROOT)/Python/getplatform.c \ $(MY_PYTHON_SRC_ROOT)/Python/getversion.c \ - $(MY_PYTHON_SRC_ROOT)/Python/graminit.c \ $(MY_PYTHON_SRC_ROOT)/Python/hamt.c \ $(MY_PYTHON_SRC_ROOT)/Python/hashtable.c \ $(MY_PYTHON_SRC_ROOT)/Python/import.c \ @@ -36,7 +35,6 @@ LOCAL_SRC_FILES := config.c \ $(MY_PYTHON_SRC_ROOT)/Python/mysnprintf.c \ $(MY_PYTHON_SRC_ROOT)/Python/mystrtoul.c \ $(MY_PYTHON_SRC_ROOT)/Python/pathconfig.c \ - $(MY_PYTHON_SRC_ROOT)/Python/peephole.c \ $(MY_PYTHON_SRC_ROOT)/Python/preconfig.c \ $(MY_PYTHON_SRC_ROOT)/Python/pyarena.c \ $(MY_PYTHON_SRC_ROOT)/Python/pyctype.c \ @@ -51,27 +49,21 @@ LOCAL_SRC_FILES := config.c \ $(MY_PYTHON_SRC_ROOT)/Python/Python-ast.c \ $(MY_PYTHON_SRC_ROOT)/Python/pythonrun.c \ $(MY_PYTHON_SRC_ROOT)/Python/pytime.c \ - $(MY_PYTHON_SRC_ROOT)/Python/strdup.c \ $(MY_PYTHON_SRC_ROOT)/Python/structmember.c \ + $(MY_PYTHON_SRC_ROOT)/Python/suggestions.c \ $(MY_PYTHON_SRC_ROOT)/Python/symtable.c \ $(MY_PYTHON_SRC_ROOT)/Python/sysmodule.c \ $(MY_PYTHON_SRC_ROOT)/Python/thread.c \ $(MY_PYTHON_SRC_ROOT)/Python/traceback.c \ $(MY_PYTHON_SRC_ROOT)/Python/_warnings.c \ \ - $(MY_PYTHON_SRC_ROOT)/Parser/acceler.c \ - $(MY_PYTHON_SRC_ROOT)/Parser/grammar1.c \ - $(MY_PYTHON_SRC_ROOT)/Parser/listnode.c \ $(MY_PYTHON_SRC_ROOT)/Parser/myreadline.c \ - $(MY_PYTHON_SRC_ROOT)/Parser/node.c \ $(MY_PYTHON_SRC_ROOT)/Parser/parser.c \ - $(MY_PYTHON_SRC_ROOT)/Parser/parsetok.c \ + $(MY_PYTHON_SRC_ROOT)/Parser/peg_api.c \ + $(MY_PYTHON_SRC_ROOT)/Parser/pegen.c \ + $(MY_PYTHON_SRC_ROOT)/Parser/string_parser.c \ $(MY_PYTHON_SRC_ROOT)/Parser/token.c \ $(MY_PYTHON_SRC_ROOT)/Parser/tokenizer.c \ - $(MY_PYTHON_SRC_ROOT)/Parser/pegen/parse.c \ - $(MY_PYTHON_SRC_ROOT)/Parser/pegen/parse_string.c \ - $(MY_PYTHON_SRC_ROOT)/Parser/pegen/peg_api.c \ - $(MY_PYTHON_SRC_ROOT)/Parser/pegen/pegen.c \ \ $(MY_PYTHON_SRC_ROOT)/Objects/abstract.c \ $(MY_PYTHON_SRC_ROOT)/Objects/accu.c \ @@ -115,6 +107,7 @@ LOCAL_SRC_FILES := config.c \ $(MY_PYTHON_SRC_ROOT)/Objects/typeobject.c \ $(MY_PYTHON_SRC_ROOT)/Objects/unicodectype.c \ $(MY_PYTHON_SRC_ROOT)/Objects/unicodeobject.c \ + $(MY_PYTHON_SRC_ROOT)/Objects/unionobject.c \ $(MY_PYTHON_SRC_ROOT)/Objects/weakrefobject.c \ \ $(MY_PYTHON_SRC_ROOT)/Modules/_abc.c \ @@ -150,7 +143,6 @@ LOCAL_SRC_FILES := config.c \ $(MY_PYTHON_SRC_ROOT)/Modules/_opcode.c \ $(MY_PYTHON_SRC_ROOT)/Modules/_operator.c \ $(MY_PYTHON_SRC_ROOT)/Modules/ossaudiodev.c \ - $(MY_PYTHON_SRC_ROOT)/Modules/parsermodule.c \ $(MY_PYTHON_SRC_ROOT)/Modules/posixmodule.c \ $(MY_PYTHON_SRC_ROOT)/Modules/_posixsubprocess.c \ $(MY_PYTHON_SRC_ROOT)/Modules/pwdmodule.c \ @@ -178,6 +170,7 @@ LOCAL_SRC_FILES := config.c \ $(MY_PYTHON_SRC_ROOT)/Modules/unicodedata.c \ $(MY_PYTHON_SRC_ROOT)/Modules/_weakref.c \ $(MY_PYTHON_SRC_ROOT)/Modules/xxlimited.c \ + $(MY_PYTHON_SRC_ROOT)/Modules/xxlimited_35.c \ $(MY_PYTHON_SRC_ROOT)/Modules/xxmodule.c \ $(MY_PYTHON_SRC_ROOT)/Modules/xxsubtype.c \ $(MY_PYTHON_SRC_ROOT)/Modules/zlibmodule.c \ diff --git a/recipes/python3crystax/config.c.3.9 b/recipes/python3crystax/config.c.3.10 similarity index 98% rename from recipes/python3crystax/config.c.3.9 rename to recipes/python3crystax/config.c.3.10 index 382b5b0..3764f77 100644 --- a/recipes/python3crystax/config.c.3.9 +++ b/recipes/python3crystax/config.c.3.10 @@ -35,7 +35,6 @@ extern PyObject* PyInit__symtable(void); extern PyObject* PyInit_mmap(void); extern PyObject* PyInit__csv(void); extern PyObject* PyInit__sre(void); -extern PyObject* PyInit_parser(void); extern PyObject* PyInit__struct(void); extern PyObject* PyInit__datetime(void); extern PyObject* PyInit__functools(void); @@ -96,7 +95,6 @@ struct _inittab _PyImport_Inittab[] = { {"mmap", PyInit_mmap}, {"_csv", PyInit__csv}, {"_sre", PyInit__sre}, - {"parser", PyInit_parser}, {"_struct", PyInit__struct}, {"_datetime", PyInit__datetime}, {"_functools", PyInit__functools}, diff --git a/recipes/python3crystax/interpreter.c.3.9 b/recipes/python3crystax/interpreter.c.3.10 similarity index 99% rename from recipes/python3crystax/interpreter.c.3.9 rename to recipes/python3crystax/interpreter.c.3.10 index c914e97..5358a62 100644 --- a/recipes/python3crystax/interpreter.c.3.9 +++ b/recipes/python3crystax/interpreter.c.3.10 @@ -9,7 +9,7 @@ #define PYTHON3_STDLIB_REL_PATH "stdlib.zip" #define PYTHON3_MODULES_REL_PATH "modules" -#define PYTHON3_DLL_REL_PATH "libpython3.9.so" +#define PYTHON3_DLL_REL_PATH "libpython3.10.so" #define SYS_PATH_BUFFER_SIZE (2*(PATH_MAX + 1)) diff --git a/recipes/python3crystax/patch/py3.10.0_posixmodule.patch b/recipes/python3crystax/patch/py3.10.0_posixmodule.patch new file mode 100644 index 0000000..32037ee --- /dev/null +++ b/recipes/python3crystax/patch/py3.10.0_posixmodule.patch @@ -0,0 +1,12 @@ +--- a/Modules/posixmodule.c 2021-08-02 20:53:59.000000000 +0100 ++++ b/Modules/posixmodule.c 2021-08-21 12:06:16.897465398 +0100 +@@ -15384,6 +15384,9 @@ + #ifdef HAVE_EVENTFD + if (PyModule_AddIntMacro(m, EFD_CLOEXEC)) return -1; + if (PyModule_AddIntMacro(m, EFD_NONBLOCK)) return -1; ++# ifndef EFD_SEMAPHORE ++# define EFD_SEMAPHORE (1 << 0) ++# endif + if (PyModule_AddIntMacro(m, EFD_SEMAPHORE)) return -1; + #endif + diff --git a/recipes/python3crystax/patch/remove_android_api_check_3.10.patch b/recipes/python3crystax/patch/remove_android_api_check_3.10.patch new file mode 100644 index 0000000..60b1dc9 --- /dev/null +++ b/recipes/python3crystax/patch/remove_android_api_check_3.10.patch @@ -0,0 +1,36 @@ +--- a/configure 2021-08-02 20:53:59.000000000 +0100 ++++ b/configure 2021-08-21 11:13:50.508648380 +0100 +@@ -6241,33 +6241,6 @@ + #endif + EOF + +-if $CPP $CPPFLAGS conftest.c >conftest.out 2>/dev/null; then +- ANDROID_API_LEVEL=`sed -n -e '/__ANDROID_API__/d' -e 's/^android_api = //p' conftest.out` +- _arm_arch=`sed -n -e '/__ARM_ARCH/d' -e 's/^arm_arch = //p' conftest.out` +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ANDROID_API_LEVEL" >&5 +-printf "%s\n" "$ANDROID_API_LEVEL" >&6; } +- if test -z "$ANDROID_API_LEVEL"; then +- echo 'Fatal: you must define __ANDROID_API__' +- exit 1 +- fi +- +-printf "%s\n" "#define ANDROID_API_LEVEL $ANDROID_API_LEVEL" >>confdefs.h +- +- +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the Android arm ABI" >&5 +-printf %s "checking for the Android arm ABI... " >&6; } +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $_arm_arch" >&5 +-printf "%s\n" "$_arm_arch" >&6; } +- if test "$_arm_arch" = 7; then +- BASECFLAGS="${BASECFLAGS} -mfloat-abi=softfp -mfpu=vfpv3-d16" +- LDFLAGS="${LDFLAGS} -march=armv7-a -Wl,--fix-cortex-a8" +- fi +-else +- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not Android" >&5 +-printf "%s\n" "not Android" >&6; } +-fi +-rm -f conftest.c conftest.out +- + # Check for unsupported systems + case $ac_sys_system/$ac_sys_release in + atheos*|Linux*/1*) diff --git a/recipes/python3crystax/patch/reproducible-buildinfo.diff b/recipes/python3crystax/patch/reproducible-buildinfo.patch similarity index 100% rename from recipes/python3crystax/patch/reproducible-buildinfo.diff rename to recipes/python3crystax/patch/reproducible-buildinfo.patch diff --git a/recipes/six/__init__.py b/recipes/six/__init__.py deleted file mode 100644 index 0166450..0000000 --- a/recipes/six/__init__.py +++ /dev/null @@ -1,10 +0,0 @@ - -from pythonforandroid.recipe import PythonRecipe - - -class SixRecipe(PythonRecipe): - version = '1.9.0' - url = 'https://pypi.python.org/packages/source/s/six/six-{version}.tar.gz' - depends = [('python2', 'python3crystax')] - -recipe = SixRecipe() diff --git a/scripts/build-target-python.sh b/scripts/build-target-python.sh index 409d34c..344533b 100755 --- a/scripts/build-target-python.sh +++ b/scripts/build-target-python.sh @@ -648,6 +648,7 @@ build_python_for_abi () echo 'include $(CLEAR_VARS)' echo 'LOCAL_MODULE := _queue' echo "MY_PYTHON_SRC_ROOT := $PYTHON_SRCDIR" + echo 'LOCAL_CFLAGS := -DPy_BUILD_CORE' echo 'LOCAL_SRC_FILES := \' echo ' $(MY_PYTHON_SRC_ROOT)/Modules/_queuemodule.c' echo 'LOCAL_C_INCLUDES := $(MY_PYTHON_SRC_ROOT)/Include/internal' @@ -950,6 +951,7 @@ build_python_for_abi () echo 'include $(CLEAR_VARS)' echo 'LOCAL_MODULE := unicodedata' echo "MY_PYTHON_SRC_ROOT := $PYTHON_SRCDIR" + echo 'LOCAL_C_INCLUDES := $(MY_PYTHON_SRC_ROOT)/Include/internal' echo 'LOCAL_SRC_FILES := \' echo ' $(MY_PYTHON_SRC_ROOT)/Modules/unicodedata.c' echo 'LOCAL_STATIC_LIBRARIES := python_shared'