[edk2-devel] [edk2-libc Patch v3 2/5] AppPkg/Applications/Python: to remove document references to py2.7.2

Jayaprakash, N n.jayaprakash at intel.com
Sat Oct 30 13:52:30 UTC 2021


REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3589

This commit is to remove references to the py 2.7.2 UEFI port
in all documents from edk2-libc repo. This python interpreter
is no more supported on UEFI shell due to availability of
py 3.6.8 on UEFI.

Cc: Rebecca Cran <rebecca at nuviainc.com>
Cc: Michael D Kinney <michael.d.kinney at intel.com>
Signed-off-by: Jayaprakash N <n.jayaprakash at intel.com>
---
 AppPkg/Applications/Python/PythonReadMe.txt | 237 --------------------
 AppPkg/ReadMe.txt                           |  22 +-
 Readme.md                                   |   3 +-
 3 files changed, 11 insertions(+), 251 deletions(-)
 delete mode 100644 AppPkg/Applications/Python/PythonReadMe.txt

diff --git a/AppPkg/Applications/Python/PythonReadMe.txt b/AppPkg/Applications/Python/PythonReadMe.txt
deleted file mode 100644
index c8cd503..0000000
--- a/AppPkg/Applications/Python/PythonReadMe.txt
+++ /dev/null
@@ -1,237 +0,0 @@
-                                EDK II Python
-                                   ReadMe
-                                Version 2.7.2
-                                Release 1.02
-                                18 Jan. 2013
-
-
-1. OVERVIEW
-===========
-This document is devoted to general information on building and setup of the
-Python environment for UEFI 2.3, the invocation of the interpreter, and things
-that make working with Python easier.
-
-It is assumed that you already have either UDK2010 or a current snapshot of
-the EDK II sources from www.tianocore.org, and that you can successfully build
-packages within that distribution.
-
-2. Release Notes
-================
-  1)  All C extension modules must be statically linked (built in)
-  2)  The site and os modules must exist as discrete files in ...\lib\python.27
-  3)  User-specific configurations are not supported.
-  4)  Environment variables are not supported.
-
-3. Getting and Building Python
-======================================================
-  3.1 Getting Python
-  ==================
-  For development ease, a subset of the Python 2.7.2 distribution has been
-  included in the AppPkg source tree.  If a full distribution is desired, the
-  Python-2.7.2 directory can be removed or renamed and the full source code
-  downloaded from http://www.python.org/ftp/python/2.7.2/.
-
-  A.  Within your EDK II development tree, extract the Python distribution into
-    AppPkg/Applications/Python.  This should create the
-    AppPkg/Applications/Python/Python-2.7.2 directory.
-
-  B.  Copy the files from PyMod-2.7.2 into the corresponding directories within
-    the Python-2.7.2 tree.  This will overwrite existing files with files
-    modified for UEFI usage.
-
-  3.2 Building Python
-  ===================
-  A.  Edit Efi/config.c to enable the built-in modules you need.
-        Mandatory Built-in Modules:
-        edk2      errno       imp         marshal
-
-      Additional built-in modules which are required to use the help()
-      functionality provided by PyDoc, are:
-        _codecs     _collections    _functools    _random
-        _sre        _struct         _weakref      binascii
-        cStringIO   gc              itertools     math
-        operator    time
-
-  B.  Edit AppPkg/AppPkg.dsc to enable (uncomment) the PythonCore.inf line
-    within the [Components] section.
-
-  C.  Build AppPkg, which includes Python, using the standard "build" command:
-    For example, to build Python for an X64 CPU architecture:
-                    build -a X64 -p AppPkg\AppPkg.dsc
-
-4. Python-related paths and files
-=================================
-Python depends upon the existence of several directories and files on the
-target system.
-
-  \EFI                              Root of the UEFI system area.
-   |- \Tools                        Location of the Python.efi executable.
-   |- \Boot                         UEFI specified Boot directory.
-   |- \StdLib                       Root of the Standard Libraries sub-tree.
-       |- \etc                      Configuration files used by libraries.
-       |- \tmp                      Temporary files created by tmpfile(), etc.
-       |- \lib                      Root of the libraries tree.
-           |- \python.27            Directory containing the Python library
-               |                    modules.
-               |- \lib-dynload      Dynamically loadable Python extensions.
-               |- \site-packages    Site-specific packages and modules.
-
-
-5. Installing Python
-====================
-These directories, on the target system, are populated from the development
-system as follows:
-
-  * \Efi\Tools receives a copy of Build/AppPkg/DEBUG_VS2005/X64/Python.efi.
-                                               ^^^^^ ^^^^^^^^^^
-    Modify the host path to match the your build type and compiler.
-
-  * The \Efi\StdLib\etc directory is populated from the StdLib/Efi/StdLib/etc
-    source directory.
-
-  * Directory \Efi\StdLib\lib\python.27 is populated with packages and modules
-    from the AppPkg/Applications/Python/Python-2.7.2/Lib directory.
-    The recommended minimum set of modules (.py, .pyc, and/or .pyo):
-        os      stat      ntpath      warnings      traceback
-        site    types     copy_reg    linecache     genericpath
-
-  * Python C Extension Modules built as dynamically loadable extensions go into
-    the \Efi\StdLib\lib\python.27\lib-dynload directory.  This functionality is
-    not yet implemented.
-
-
-6. Example: Enabling socket support
-===================================
-  1.  enable {"_socket", init_socket}, in Efi\config.c
-  2.  enable Python-2.7.2/Modules/socketmodule.c in PythonCore.inf.
-  3.  copy socket.py over to /Efi/StdLib/lib/python.27 on your target system.
-  4.  Make sure dependent modules are present(.py) or built in(.c):
-        functools, types, os, sys, warnings, cStringIO, StringIO, errno
-
-  5.  build -a X64 -p AppPkg\AppPkg.dsc
-  6.  copy Build\AppPkg\DEBUG_VS2005\X64\Python.efi to \Efi\Tools on your
-      target system. Replace "DEBUG_VS2005\X64", in the source path, with
-      values appropriate for your tool chain and processor architecture.
-
-
-7. Running Python
-=================
-  Python must currently be run from an EFI FAT-32 partition, or volume, under
-  the UEFI Shell.  At the Shell prompt enter the desired volume name, followed
-  by a colon ':', then press Enter.  Python can then be executed by typing its
-  name, followed by any desired options and arguments.
-
-  EXAMPLE:
-      2.0 Shell> fs0:
-      2.0 FS0:\> python
-      Python 2.7.2 (default, Oct 13 2015, 16:21:53) [C] on uefi
-      Type "help", "copyright", "credits" or "license" for more information.
-      >>> exit()
-      2.0 FS0:\>
-
-  NOTE:
-      Python, as distributed, sends its interactive prompts to stderr.  If
-      STDERR isn't enabled in UEFI Setup so that it's output goes to the
-      console, it may appear that Python hangs on startup.  If this happens,
-      one may be able to rectify the condition by typing "exit()" followed
-      by <enter> to exit out of Python.  Then, type "exit" at the Shell prompt
-      which should enter Setup where you can use the Boot Maintenance
-      Manager to modify your Console settings.
-
-  NOTE:
-      Some platforms don't include the Setup utility, or don't allow STDERR to
-      be modified.  In these cases, Python may be started with the '-#' option
-      which will cause stderr to be the same as stdout and should allow
-      Python to be used interactively on those platforms.
-
-      Depending upon the version of Shell you are using, it may be necessary
-      to escape the '#' character so that the Shell doesn't interpret it as
-      the start of a comment.  The escape character is '^'.
-      Example:
-          python -^# -V
-
-8. Supported C Modules
-======================
-    Module Name               C File(s)
-  ===============       =============================================
-  _ast                  Python/Python-ast.c
-  _bisect               Modules/_bisectmodule.c
-  _codecs               Modules/_codecsmodule.c
-  _codecs_cn            Modules/cjkcodecs/_codecs_cn.c
-  _codecs_hk            Modules/cjkcodecs/_codecs_hk.c
-  _codecs_iso2022       Modules/cjkcodecs/_codecs_iso2022.c
-  _codecs_jp            Modules/cjkcodecs/_codecs_jp
-  _codecs_kr            Modules/cjkcodecs/_codecs_kr
-  _codecs_tw            Modules/cjkcodecs/_codecs_tw
-  _collections          Modules/_collectionsmodule.c
-  _csv                  Modules/_csv.c
-  _functools            Modules/_functoolsmodule.c
-  _heapq                Modules/_heapqmodule.c
-  _io                   Modules/_io/_iomodule.c       Modules/_io/*
-  _json                 Modules/_json.c
-  _md5                  Modules/md5module.c           Modules/md5.c
-  _multibytecodec       Modules/cjkcodecs/_multibytecodec.c
-  _random               Modules/_randommodule.c
-  _sha                  Modules/shamodule.c
-  _sha256               Modules/sha256module.c
-  _sha512               Modules/sha512module.c
-  _socket               Modules/socketmodule.c
-  _sre                  Modules/_sre.c
-  _struct               Modules/_struct.c
-  _symtable             Modules/symtablemodule.c
-  _weakref              Modules/_weakref.c
-  array                 Modules/arraymodule.c
-  binascii              Modules/binascii.c
-  cmath                 Modules/cmathmodule.c
-  cPickle               Modules/cPickle.c
-  cStringIO             Modules/cStringIO.c
-  datetime              Modules/datetimemodule.c
-  edk2                  Modules/Efi/edk2module.c
-  errno                 Modules/errnomodule.c
-  future_builtins       Modules/future_builtins.c
-  gc                    Modules/gcmodule.c
-  imp                   Python/import.c
-  itertools             Modules/itertoolsmodule.c
-  marshal               Python/marshal.c
-  math                  Modules/mathmodule.c          Modules/_math.c
-  operator              Modules/operator.c
-  parser                Modules/parsermodule.c
-  select                Modules/selectmodule.c
-  signal                Modules/signalmodule.c
-  strop                 Modules/stropmodule.c
-  time                  Modules/timemodule.c
-  xxsubtype             Modules/xxsubtype.c
-  zipimport             Modules/zipimport.c
-  zlib                  Modules/zlibmodule.c          Modules/zlib/*
-
-
-9. Tested Python Library Modules
-================================
-This is a partial list of the packages and modules of the Python Standard
-Library that have been tested or used in some manner.
-
-  encodings               genericpath.py            sha.py
-  importlib               getopt.py                 SimpleHTTPServer.py
-  json                    hashlib.py                site.py
-  pydoc_data              heapq.py                  socket.py
-  xml                     HTMLParser.py             SocketServer.py
-  abc.py                  inspect.py                sre.py
-  argparse.py             io.py                     sre_compile.py
-  ast.py                  keyword.py                sre_constants.py
-  atexit.py               linecache.py              sre_parse.py
-  BaseHTTPServer.py       locale.py                 stat.py
-  binhex.py               md5.py                    string.py
-  bisect.py               modulefinder.py           StringIO.py
-  calendar.py             ntpath.py                 struct.py
-  cmd.py                  numbers.py                textwrap.py
-  codecs.py               optparse.py               token.py
-  collections.py          os.py                     tokenize.py
-  copy.py                 platform.py               traceback.py
-  copy_reg.py             posixpath.py              types.py
-  csv.py                  pydoc.py                  warnings.py
-  dummy_thread.py         random.py                 weakref.py
-  fileinput.py            re.py                     xmllib.py
-  formatter.py            repr.py                   zipfile.py
-  functools.py            runpy.py                  expat
-
-# # #
diff --git a/AppPkg/ReadMe.txt b/AppPkg/ReadMe.txt
index cee6493..4a2aee4 100644
--- a/AppPkg/ReadMe.txt
+++ b/AppPkg/ReadMe.txt
@@ -1,8 +1,8 @@
                                      EADK
                   EDK II Standard Libraries and Applications
                                     ReadMe
-                                 Version 1.02
-                                 21 Dec. 2012
+                                 Version 1.03
+                                 18 Oct. 2021
 
 
 OVERVIEW
@@ -43,9 +43,9 @@ The EADK is comprised of three packages:
       Main     This application is functionally identical to Hello, except that
                it uses the Standard C Library to provide a main() entry point.
 
-      Python   A port of the Python-2.7.2 interpreter for UEFI.  Building this
+      Python   A port of the Python-3.6.8 interpreter for UEFI.  Building this
                application is disabled by default.
-               See the PythonReadMe.txt file, in the Python directory,
+               See the Py368ReadMe.txt file, in the Python\Python-3.6.8 directory,
                for information on configuring and building Python.
 
       Lua      A port of the Lua-5.2.3 interpreter for UEFI.  This
@@ -169,14 +169,12 @@ There are some boiler-plate declarations and definitions that need to be
 included in your application's INF and DSC build files.  These are described
 in the CONFIGURATION section, below.
 
-A subset of the Python 2.7.2 distribution is included as part of AppPkg.  If desired,
-the full Python 2.7.2 distribution may be downloaded from python.org and used instead.
-Delete or rename the existing Python-2.7.2 directory then extract the downloaded
-Python-2.7.2.tgz file into the AppPkg\Applications\Python directory.  This will produce a
-Python-2.7.2 directory containing the full Python distribution.  Python files that had to be
-modified for EDK II are in the AppPkg\Applications\Python\PyMod-2.7.2 directory.  These
-files need to be copied into the corresponding directories within the extracted Python-2.7.2
-directory before Python can be built.
+A full distribution of the Python 3.6.8 has been included as part of AppPkg.  But only
+a subset of the features have been enabled for UEFI use case. Python files that had to be
+modified for EDK II are in the AppPkg\Applications\Python\Python-3.6.8\PyMod-3.6.8 directory.
+These files need to be copied into the corresponding directories within the Python-3.6.8
+directory before Python can be built. This can be achieved by running the srcprep.py available 
+under AppPkg\Applications\Python\Python-3.6.8.
 
 
 BUILDING
diff --git a/Readme.md b/Readme.md
index 0012cd5..f0e9501 100644
--- a/Readme.md
+++ b/Readme.md
@@ -21,8 +21,7 @@ git filter-branch -f --index-filter "git rm --ignore-unmatch --cached -qr -- . &
 The majority of the content in the EDK II open source project uses a
 [BSD-2-Clause Plus Patent License](License.txt).  The EDK II open source project
 contains the following components that are covered by additional licenses:
-* [AppPkg/Applications/Python/Python-2.7.2/Tools/pybench](AppPkg/Applications/Python/Python-2.7.2/Tools/pybench/LICENSE)
-* [AppPkg/Applications/Python/Python-2.7.2](AppPkg/Applications/Python/Python-2.7.2/LICENSE)
+
 * [AppPkg/Applications/Python/Python-2.7.10](AppPkg/Applications/Python/Python-2.7.10/LICENSE)
 * [AppPkg/Applications/Python/Python-3.6.8](AppPkg/Applications/Python/Python-3.6.8/LICENSE)
 
-- 
2.32.0.windows.2



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#82956): https://edk2.groups.io/g/devel/message/82956
Mute This Topic: https://groups.io/mt/86699007/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-





More information about the edk2-devel-archive mailing list