msg264310 - (view) |
Author: Xavier de Gaye (xdegaye) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
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) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
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) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
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) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
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) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
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) * ![Python committer (Python committer)](https://cdn.statically.io/img/bugs.python.org/@@file/committer.png) |
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) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
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) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
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) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
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) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
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) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
Date: 2016-06-26 16:32 |
issue #22724: byte-compile fails for cross-builds
|
msg269718 - (view) |
Author: Xavier de Gaye (xdegaye) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
Date: 2016-07-02 15:00 |
issue #27442: expose Android API level in sys.implementation
|
msg270045 - (view) |
Author: Xavier de Gaye (xdegaye) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
Date: 2016-07-09 15:15 |
issue #27472: add the 'unix_shell' attribute to test.support
|
msg270942 - (view) |
Author: Xavier de Gaye (xdegaye) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
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) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
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) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
Date: 2016-07-26 16:05 |
issue #27627: clang fails to build ctypes on Android armv7
|
msg271516 - (view) |
Author: Xavier de Gaye (xdegaye) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
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 issue26852, issue26859 and issue27640, 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) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
Date: 2016-07-28 16:44 |
Roman, can you please enter a new issue for that problem.
|
msg271568 - (view) |
Author: Xavier de Gaye (xdegaye) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
Date: 2016-07-28 17:02 |
> Some dependent issues, like issue26852, issue26859 and issue27640, 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) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
Date: 2016-07-31 08:22 |
issue #27659: Check for the existence of crypt()
|
msg279496 - (view) |
Author: Xavier de Gaye (xdegaye) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
Date: 2016-10-26 09:40 |
issue #28538: _socket module cross-compilation error on android-24
|
msg279733 - (view) |
Author: Xavier de Gaye (xdegaye) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
Date: 2016-10-30 16:57 |
issue #28562: test_asyncio fails on Android upon calling getaddrinfo()
|
msg279983 - (view) |
Author: Xavier de Gaye (xdegaye) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
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) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
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) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
Date: 2016-11-19 07:53 |
issue #28740: Add sys.getandroidapilevel()
|
msg281367 - (view) |
Author: Xavier de Gaye (xdegaye) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
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) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
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) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
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) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
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) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
Date: 2016-12-21 20:27 |
issue #29040: building Android with android-ndk-r14
|
msg284743 - (view) |
Author: Xavier de Gaye (xdegaye) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
Date: 2017-01-05 12:55 |
issue #28833: cross compilation of third-party extension modules
|
msg284757 - (view) |
Author: Xavier de Gaye (xdegaye) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
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) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
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) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
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) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
Date: 2017-01-19 11:21 |
issue #28180: sys.getfilesystemencoding() should default to utf-8
|
msg307901 - (view) |
Author: Xavier de Gaye (xdegaye) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
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) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
Date: 2017-12-09 15:48 |
issue 22724 is fixed for Android.
|
msg307948 - (view) |
Author: Xavier de Gaye (xdegaye) * ![Python triager (Python triager)](https://cdn.statically.io/img/bugs.python.org/@@file/triager.png) |
Date: 2017-12-10 09:30 |
Remove depencies that are not specific to Android.
|