Issue 26865: Meta-issue: support of the android platform (original) (raw)
Created on 2016-04-26 15:36 by xdegaye, last changed 2022-04-11 14:58 by admin.
Messages (41) | ||
---|---|---|
msg264310 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2016-04-26 15:36 |
This issue lists issues that may have to be fixed in the perspective of a future support of the android platform. build issue #26849: android does not support versioning in SONAME issue #26851: android compilation and link flags issue #26852: add a COMPILEALL_FLAGS Makefile variable curses, readline issue #26853: missing symbols in curses and readline modules on android ossaudiodev issue #26854: missing header on android for the ossaudiodev module platform issue #16353: add function to os module for getting path to default shell issue #26855: add platform.android_ver() for android pwd issue #26856: android does not have pwd.getpwall() socketmodule issue #26857: gethostbyname_r() is broken on android asyncio tests issue #26858: setting SO_REUSEPORT fails on android unittest issue #26859: unittest fails with "Start directory is not importable" posixmodule issue #26862: SYS_getdents64 does not need to be defined on android API 21 issue #26863: android lacks some declaration for the posix module | ||
msg264485 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2016-04-29 10:36 |
build issue #26884: cross-compilation of extension module links to the wrong python library This should be added to the meta-issue dependencies, I guess. | ||
msg264746 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2016-05-03 16:04 |
All the dependencies of this issue are tagged with Components:Cross-Build and a title starting with 'android'. Tests that fail on an android emulator running an x86 system image at API level 21: issue #26918: android: test_pipes fails issue #26919: android: test_cmd_line fails issue #26920: android: test_sys fails issue #26924: android: test_concurrent_futures fails issue #26925: android: test_multiprocessing_main_handling fails issue #26926: android: test_io fails issue #26927: android: test_mmap fails issue #26928: android: test_site fails issue #26929: android: test_strptime fails issue #26931: android: test_distutils fails issue #26932: android: test_posix fails issue #26933: android: test_posixpath fails issue #26934: android: test_faulthandler fails issue #26935: android: test_os fails issue #26936: android: test_socket fails issue #26937: android: test_tarfile fails Tests that fail on an android emulator running an armv7 system image (but not fail on x86) at API level 21: issue #26938: android: test_concurrent_futures hangs on armv7 issue #26939: android: test_functools hangs on armv7 issue #26940: android: test_importlib hangs on armv7 issue #26941: android: test_threading hangs on armv7 issue #26942: android: test_ctypes crashes on armv7 | ||
msg264791 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2016-05-04 08:03 |
Tests that fail on an android emulator running an x86 system image at API level 21: issue #26944: android: test_posix fails | ||
msg265610 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2016-05-15 10:12 |
issue #27027: add is_android in test.support to detect Android platform | ||
msg265963 - (view) | Author: Zachary Ware (zach.ware) * ![]() |
Date: 2016-05-20 21:04 |
Xavier: It's been long enough that I don't remember whether regular Users can adjust Dependencies, but since you didn't do it yourself I assume they can't. I've just given you the Developer role, so you can now :) | ||
msg265988 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2016-05-21 07:09 |
No, regular users can't adjust dependencies, but I can now. Thanks Zachary. | ||
msg266075 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2016-05-22 12:45 |
issue #22747: Interpreter fails in initialize on systems where HAVE_LANGINFO_H is undefined | ||
msg266085 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2016-05-22 15:58 |
issue #16255: subrocess.Popen needs /bin/sh but Android only has /system/bin/sh issue #16353: add function to os module for getting path to default shell | ||
msg269236 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2016-06-25 12:53 |
issue #23968: rename the platform directory from plat-$(MACHDEP) to plat-$(PLATFORM_TRIPLET) | ||
msg269296 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2016-06-26 16:32 |
issue #22724: byte-compile fails for cross-builds | ||
msg269718 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2016-07-02 15:00 |
issue #27442: expose Android API level in sys.implementation | ||
msg270045 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2016-07-09 15:15 |
issue #27472: add the 'unix_shell' attribute to test.support | ||
msg270942 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2016-07-21 17:03 |
Larry asked in msg 270937: > Is there a plan to make Android a supported platform in 3.6? This is the list of Android related issues that will modify the standard library and core Python when fixed: issue 16255: subrocess.Popen needs /bin/sh but Android only has /system/bin/sh [1] issue 26851: android compilation and link flags issue 22724: byte-compile fails for cross-builds issue 23968: rename the platform directory from plat-$(MACHDEP) to plat-$(PLATFORM_TRIPLET) issue 26919: android: test_cmd_line fails issue 26920: android: test_sys fails issue 26928: _bootlocale imports locale at startup on Android, causing test_site to fail issue 26937: android: test_tarfile fails issue 26934: android: test_faulthandler fails issue 26929: android: test_strptime fails [2] issue 26942: android: test_ctypes crashes on armv7 All the other issues listed here in this meta-issue are changes to the test suite (mostly skipping some tests). A buildbot must also be setup for the Android emulators and maybe also for an Android device. That means installing the Android sdk and ndk and a build system on the buildbot. [1] Issue 26851 is an enhancement. [2] The root cause in issue 26942 is unknown yet. | ||
msg271148 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2016-07-24 12:32 |
issue #27606: Android cross-built for armv5te with clang and '-mthumb' crashes with SIGSEGV or SIGILL | ||
msg271389 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2016-07-26 16:05 |
issue #27627: clang fails to build ctypes on Android armv7 | ||
msg271516 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2016-07-28 10:34 |
issue #27640: add the '--disable-test-suite' option to configure | ||
msg271522 - (view) | Author: Roman Evstifeev (Roman.Evstifeev) | Date: 2016-07-28 11:14 |
While not only android issue, there is a problem with dumbdbm module: it internally tries to do os.chmod() on a FAT-formatted sdcard and fails, because FAT does not support chmod. | ||
msg271547 - (view) | Author: (yan12125) * | Date: 2016-07-28 13:42 |
Some dependent issues, like , and , are for reducing the size of an installation. How about moving them to another meta-issue? First they are not critical for normal usages on Android. Second they are not limited to Android - other platforms may benefit as well. | ||
msg271567 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2016-07-28 16:44 |
Roman, can you please enter a new issue for that problem. | ||
msg271568 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2016-07-28 17:02 |
> Some dependent issues, like , and , are for reducing the size of an installation. How about moving them to another meta-issue? First they are not critical for normal usages on Android. Second they are not limited to Android - other platforms may benefit as well. Many issues that deal with failed tests are also not critical for normal usages on Android, but they must be fixed to run a buildbot and to support Android. Issue #22724 (byte-compile fails for cross-builds) is also not specific to Android. IMHO this meta-issue collects (1) the issues that must be fixed for the support of Android and (2) the issues that should possibly be fixed. The issues you are naming and issue 22724 are in the second category. | ||
msg271571 - (view) | Author: (yan12125) * | Date: 2016-07-28 17:25 |
Maybe the term "normal usages" is not accurate. I was trying to refer all possible Python usages on Android, and the test suite is a subset of them, so they should be fixed, too. I propose the aforementioned change (creating another meta-issue) because there are already many issues in this meta-issue, and I'm afraid new issues in the second category lead to complexity in tracking CPython's Android support. Currently things are still under control, so you can ignore my request until the number of issues goes crazy. | ||
msg271731 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2016-07-31 08:22 |
issue #27659: Check for the existence of crypt() | ||
msg279496 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2016-10-26 09:40 |
issue #28538: _socket module cross-compilation error on android-24 | ||
msg279733 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2016-10-30 16:57 |
issue #28562: test_asyncio fails on Android upon calling getaddrinfo() | ||
msg279983 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2016-11-03 09:59 |
issue #28596: on Android _bootlocale on startup relies on too many library modules | ||
msg280653 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2016-11-12 11:38 |
issue #28662: catch also PermissionError in tests when spawning a non existent program issue #28664: test_bz2 fails with BrokenPipeError when bunzip2 is missing issue #28668: instanciation of multiprocessing.Queue raises ImportError in test_logging | ||
msg281209 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2016-11-19 07:53 |
issue #28740: Add sys.getandroidapilevel() | ||
msg281367 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2016-11-21 15:40 |
New issues raised upon testing on the Android API 24 emulator: issue #28683: bind() on a unix socket raises PermissionError on Android for a non-root user issue #28684: [asyncio] bind() on a unix socket raises PermissionError on Android for a non-root user issue #28746: cannot set_inheritable() for a file descriptor on Android issue #28759: access to mkfifo, mknod and hard links is controled by SELinux MAC on Android issue #28762: configure links with lockf and F_LOCK is not declared in Android API 24 issue #28764: test_mailbox fails when run as a non-root user on Android API 24 | ||
msg282661 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2016-12-07 20:30 |
issue #20211: setup.py: do not add system header locations when cross compiling issue #28190: Detect curses headers correctly for cross-compiling | ||
msg283113 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2016-12-13 15:11 |
Removing from the dependencies some issues that have become out of scope. | ||
msg283477 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2016-12-17 09:06 |
issue #28996: wcscoll is broken on Android and test_locale fails issue #28997: test_readline.test_nonascii fails on Android | ||
msg283780 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2016-12-21 20:27 |
issue #29040: building Android with android-ndk-r14 | ||
msg284743 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2017-01-05 12:55 |
issue #28833: cross compilation of third-party extension modules | ||
msg284757 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2017-01-05 16:03 |
Removing issues from the dependencies list: issue #22747: Interpreter fails in initialize on systems where HAVE_LANGINFO_H is undefined This issue is fixed for Android. issue #26859: unittest fails with "Start directory is not importable" when trying to run sourceless tests This issue is out of scope. | ||
msg284854 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2017-01-06 21:30 |
issue #29176: /tmp does not exist on Android and is used by curses.window.putwin() issue #29177: skip tests of test_logging when bind() raises PermissionError (non-root user on Android) issue #29180: skip tests that raise PermissionError in test_os (non-root user on Android) issue #29181: skip tests that raise PermissionError in test_tarfile (non-root user on Android) issue #29184: skip tests of test_socketserver when bind() raises PermissionError (non-root user on Android) issue #29185: test_distutils fails on Android API level 24 | ||
msg285493 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2017-01-14 17:21 |
Current status: --------------- Available using the pyona build system [1]: * Cross compilation of Python for a given Android API level and architecture with android-ndk-r13b. * Cross compilation of third party extension modules (currently as a patch). * Interactive interpreter with curses and readline support, the Android adb (remote) shell is used to start the interpreter on the qemu emulator or a device connected with USB. * Remote debugging with gdb and support of the python-gdb module. * The adb shell is used to start a run of the test suite on the emulator or a device. To be defined for the support of the Android platform: * Support starting with which Python release ? sys.getandroidapilevel() has been defined in Python 3.7 by issue 28740, so unless this enhancement is backported to 3.6 the first release to support Android could be 3.7. * What is the supported Android API level(s) [2] ? Level 21 is the first to provide a reliable wide character support. Level 24 is the most recent api level currently supported by the NDK and is the first where the adb shell is run as the 'shell' user instead of as 'root' and as a consequence, where the test suite must now cope with Android SELinux non permitted operations (hard link, mkfifo, mknod, bind on a unix socket). * On which architecture(s) ? The x86 platform is useful for testing and debugging as it runs fast on the Android qemu emulator. AFAIK the armv7 platform is still one of the most widespread Android platforms [3] [4]. * Building with which NDK version ? The next android-ndk-r14 release is the first to provide "Unified headers", see issue #29040. * The buildbots run the test suite on the Android qemu emulator or on a device or both ? Test suite results on the Android qemu emulator: test_builtin is excluded in all the tests - test_asyncio is excluded on armv7-android-api-21. x86 platform (duration: about 27 minutes, to be compared with 26 minutes when the test suite is run natively on the same laptop). api 21: success api 24: success armv7 platform (duration: about 410 minutes. Without the latest released libffi-3.2.1 that does not build on armv7). api 21: success api 24: success Remaining issues: 1) Blocker issues: test_builtin: issue #13886: failure when test_readline is run before test_builtin. This problem is not specific to Android. test_asyncio: issue #26858: android: setting SO_REUSEPORT fails Failure only on armv7 at api 21. 2) Issues with a patch tested successfully on x86 and armv7 at Android api 21 and 24: Build: issue #28833: cross compilation of third-party extension modules. PermissionError raised at api 24: test_eintr test_genericpath test_pathlib test_posix test_shutil test_stat issue #28759: access to mkfifo, mknod and hard links is controled by SELinux MAC on Android test_os: issue #29180: skip tests that raise PermissionError in test_os (non-root user on Android) test_tarfile: issue #29181: skip tests that raise PermissionError in test_tarfile (non-root user on Android) test_socketserver: issue #29184: skip tests of test_socketserver when bind() raises PermissionError (non-root user on Android) test_distutils: issue #29185: test_distutils fails on Android api 24 test_asyncio: issue #28684: [asyncio] bind() on a unix socket raises PermissionError on Android for a non-root user. Miscellaneous: test_asyncio: issue #28562: test_asyncio fails on Android upon calling getaddrinfo(). test_readline: issue #28997: test_readline.test_nonascii fails on Android. test_curses: issue #29176: /tmp does not exist on Android and is used by curses.window.putwin() 3) Enhancement issues: issue #26855: android: add platform.android_ver(). issue #27659: Prohibit implicit C function declarations. issue #29040: building Android with android-ndk-r14. 4) Languishing issues: issue #22724: byte-compile fails for cross-builds. issue #27606: Android cross-built for armv5te with clang and '-mthumb' crashes with SIGSEGV or SIGILL. issue #26852: add the '--enable-sourceless-distribution' option to configure. issue #27640: add the '--disable-test-suite' option to configure. [1] https://bitbucket.org/xdegaye/pyona [2] Andoid versions: Android Version Released API Level Name Android 7.1 October 2016 25 Nougat Android 7.0 August 2016 24 Nougat Android 6.0 August 2015 23 Marshmallow Android 5.1 March 2015 22 Lollipop Android 5.0 November 2014 21 Lollipop Android 4.4W June 2014 20 Kitkat Watch Android 4.4 October 2013 19 Kitkat Android 4.3 July 2013 18 Jelly Bean Android 4.2-4.2.2 November 2012 17 Jelly Bean Android 4.1-4.1.1 June 2012 16 Jelly Bean Android 4.0.3-4.0.4 December 2011 15 Ice Cream Sandwich Android 4.0-4.0.2 October 2011 14 Ice Cream Sandwich Android 3.2 June 2011 13 Honeycomb Android 3.1.x May 2011 12 Honeycomb Android 3.0.x February 2011 11 Honeycomb Android 2.3.3-2.3.4 February 2011 10 Gingerbread Android 2.3-2.3.2 November 2010 9 Gingerbread Android 2.2.x June 2010 8 Froyo Android 2.1.x January 2010 7 Eclair Android 2.0.1 December 2009 6 Eclair Android 2.0 November 2009 5 Eclair Android 1.6 September 2009 4 Donut Android 1.5 May 2009 3 Cupcake Android 1.1 February 2009 2 Base Android 1.0 October 2008 1 Base [3] https://en.wikipedia.org/wiki/Comparison_of_smartphones [4] https://en.wikipedia.org/wiki/ARM_Cortex-A | ||
msg285772 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2017-01-19 11:21 |
issue #28180: sys.getfilesystemencoding() should default to utf-8 | ||
msg307901 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2017-12-09 15:38 |
issue #32031: Do not use the canonical path in pydoc test_mixed_case_module_names_are_lower_cased issue #32059: detect_modules() in setup.py must also search the sysroot paths issue #32126: [asyncio] test failure when the platform lacks a functional sem_open() issue #32138: android: test_faulthandler fails also on API 24 issue #32139: android: locale is modified by test_strftime issue #32205: test.pythoninfo prints the native sysconfig data when cross-compiling issue #32199: uuid.getnode() now returns the MAC address on Android issue #32246: test_regrtest alters the execution environment on Android issue #32210: Add platform.android_ver() to test.pythoninfo for Android platforms issue #32202: [ctypes] all long double tests fail on android-24-x86_64 issue #32203: [ctypes] test_struct_by_value fails on android-24-arm64 | ||
msg307902 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2017-12-09 15:48 |
issue 22724 is fixed for Android. | ||
msg307948 - (view) | Author: Xavier de Gaye (xdegaye) * ![]() |
Date: 2017-12-10 09:30 |
Remove depencies that are not specific to Android. |