[Python-Dev] Support of the Android platform

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 x86_64 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