[edk2] Official port of Python on EDK2

Thiebaud Weksteen tweek at google.com
Wed Nov 1 02:07:26 PDT 2017


Hi,

UEFI has become the standard for firmware (BIOS) interface. Intel has
provided an open source implementation under the name EDK2 (part of
the TianoCore initiative) [1] for some time. This implementation has
evolved significantly and now provides the functionalities of a small
OS with a standard library similar to POSIX.

In 2011, a port of Python 2.7.1 was added to the EDK2 repository [2].
This port then evolved to 2.7.2 which is still defined as the
reference port [3]. In 2015, another port was added of Python 2.7.10
in parallel of 2.7.2 [4]. Since then, both implementations have
diverged from upstream and know vulnerabilities have not been fixed.

I would like to bring support for edk2 in the official Python
repository to remediate this situation, that is officially support
edk2 as a platform. Technically, there would be three main aspects for
the on-boarding work:

1) Fix headers and source to resolve definition conflicts, similarly
to ABS definition in [5];
2) Add the edk2module.c [6] to handle platform-specific
functionalities, similarly to the posixmodule.c;
3) Add the build configuration file [7] and necessary modifications
within Python to handle the edk2 toolchain;

This work would target the master branch (that is Python 3). I would
be interested in hearing your thoughts on this idea.

Thanks,
Thiebaud

[1] https://github.com/tianocore/edk2
[2] https://github.com/tianocore/edk2/commit/006fecd5a177b4b7b6b36fab6690bf2b2fa11829
[3] https://github.com/tianocore/edk2/blob/master/AppPkg/Applications/Python/PythonReadMe.txt
[4] https://github.com/tianocore/edk2/commit/c8042e10763bca064df257547d04ae3dfcdfaf91
[5] https://gist.github.com/tweksteen/ed516ca7ab7dfa8d18428f59d9c22a3e
[6] https://github.com/tianocore/edk2/blob/master/AppPkg/Applications/Python/Efi/edk2module.c
[7] https://github.com/tianocore/edk2/blob/master/AppPkg/Applications/Python/PythonCore.inf


More information about the edk2-devel mailing list