[Python-Dev] Support of the Android platform (original) (raw)

Victor Stinner victor.stinner at gmail.com
Mon Dec 11 06:56:08 EST 2017


2017-12-10 15:19 GMT+01:00 Xavier de Gaye <xdegaye at gmail.com>:

Motivations ===========

* Android is ubiquitous. * This would be the first platform supported by Python that is cross-compiled, thanks to many contributors. * Although the Android operating system is linux, it is different from most linux platforms, for example it does not use GNU libc and runs SELinux in enforcing mode. Therefore supporting this platform would make Python more robust and also would allow testing it on arm 64-bit processors. * Python running on Android is also a handheld calculator, a successor of the slide rule and the HP 41.

I still don't understand what is "Android". What is the license of Android?

* The Python test suite succeeds when run on Android emulators using buildbot

Great achievement! Congrats! I know that it has been a long travel to reach this point! (Fix each invidivual test failure, fix many tiny things.)

* Given the cpu resources required to run the test suite on the arm emulators, it may be difficult to find a contributed buildbot worker. So it remains to find the hardware to run these buildbots.

Do you have the hardware to host such worker? Or are you looking for a host somewhere? Which kind of hardware are you looking for? CPU, memory, network bandwidth, etc.

API 24 * API 21 is the first version to provide usable support for wide characters and where SELinux is run in enforcing mode.

Some people are looking for API 19 support. Would it be doable, or would it require too many changes? I know that people are running heavily patched Python 2.7 and 3.5 on Android with API 19.

I'm not asking for a "full support" for API 19, but more if it would be possible to get a "best effort" level of support, like accept patches if someone writes them.

The following extension modules are disabled by adding them to the *disabled* section of Modules/Setup:

* uuid, Android has no uuid/uuid.h header. * grp some grp.h functions are not declared. * crypt, Android does not have crypt.h. * ctypes on x8664 where all long double tests fail (bpo-32202) and on arm64 (see bpo-32203).

That's a very short list, it's ok. It's not the most popular modules of the stdlib :-) ctypes would be nice to have, but it can be done later.

Victor



More information about the Python-Dev mailing list