AppPkg/.../Python: Clean up and document how to escape the -# option.

Depending upon the version of Shell you are using, it may be necessary
to escape the '#' character, when using the "-#" command-line option, so that
the Shell doesn't interpret it as the start of a comment.
The escape character is '^'.
Example:
    python -^# -V

* General updating.
* Re-format so that no line is longer than 80 char.
* Add note about escaping the "-#" command-line option.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Daryl McDaniel <[email protected]>

---
diff U3 a/AppPkg/Applications/Python/PythonReadMe.txt 
b/AppPkg/Applications/Python/PythonReadMe.txt
--- a/AppPkg/Applications/Python/PythonReadMe.txt Fri Oct 25 12:09:26 2013
+++ b/AppPkg/Applications/Python/PythonReadMe.txt Sun Jan 03 15:43:26 2016
@@ -1,7 +1,8 @@
                                 EDK II Python
-                                    ReadMe
-                                 Release 1.02
-                                 18 Jan. 2013
+                                   ReadMe
+                                Version 2.7.2
+                                Release 1.02
+                                18 Jan. 2013


 1. OVERVIEW
@@ -25,10 +26,10 @@
 ======================================================
   3.1 Getting Python
   ==================
-  Currently only version 2.7.2 of the CPython distribution is supported.  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/.
+  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
@@ -70,7 +71,8 @@
        |- \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.
+           |- \python.27            Directory containing the Python library
+               |                    modules.
                |- \lib-dynload      Dynamically loadable Python extensions.
                |- \site-packages    Site-specific packages and modules.

@@ -81,7 +83,7 @@
 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
@@ -94,8 +96,8 @@
         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.
+    the \Efi\StdLib\lib\python.27\lib-dynload directory.  This functionality is
+    not yet implemented.


 6. Example: Enabling socket support
@@ -107,11 +109,48 @@
         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.
-                                ^^^^ Modify as needed
+  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

-
-7. Supported C Modules
+8. Supported C Modules
 ======================
     Module Name               C File(s)
   ===============       =============================================
@@ -166,7 +205,7 @@
   zlib                  Modules/zlibmodule.c          Modules/zlib/*


-8. Tested Python Library Modules
+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.
diff U3 a/AppPkg/Applications/Python/Python-2.7.10/Py2710ReadMe.txt 
b/AppPkg/Applications/Python/Python-2.7.10/Py2710ReadMe.txt
--- a/AppPkg/Applications/Python/Python-2.7.10/Py2710ReadMe.txt Tue Dec 22 
15:54:07 2015
+++ b/AppPkg/Applications/Python/Python-2.7.10/Py2710ReadMe.txt Sun Jan 03 
15:43:26 2016
@@ -49,14 +49,14 @@

   3.2 Building Python
   ===================
-  B.  From the AppPkg/Applications/Python/Python-2.7.10 directory, execute the
+  A.  From the AppPkg/Applications/Python/Python-2.7.10 directory, execute the
     srcprep.bat (srcprep.sh) script to copy the header files from within the
     PyMod-2.7.10 sub-tree into their corresponding directories within the
     distribution.  This step only needs to be performed prior to the first
     build of Python, or if one of the header files within the PyMod tree has 
been
     modified.

-  A.  Edit PyMod-2.7.10\Modules\config.c to enable the built-in modules you 
need.
+  B.  Edit PyMod-2.7.10\Modules\config.c to enable the built-in modules you 
need.
     By default, it is configured for the minimally required set of modules.
       Mandatory Built-in Modules:
         edk2      errno       imp         marshal
@@ -68,10 +68,10 @@
         cStringIO   gc              itertools     math
         operator    time

-  B.  Edit AppPkg/AppPkg.dsc to enable (uncomment) the Python2710.inf line
+  C.  Edit AppPkg/AppPkg.dsc to enable (uncomment) the Python2710.inf line
     within the [Components] section.

-  C.  Build AppPkg using the standard "build" command:
+  D.  Build AppPkg using the standard "build" command:
     For example, to build Python for an X64 CPU architecture:
                     build -a X64 -p AppPkg\AppPkg.dsc

@@ -87,7 +87,8 @@
        |- \etc                      Configuration files used by libraries.
        |- \tmp                      Temporary files created by tmpfile(), etc.
        |- \lib                      Root of the libraries tree.
-           |- \python27.10          Directory containing the Python library 
modules.
+           |- \python27.10          Directory containing the Python library
+               |                    modules.
                |- \lib-dynload      Dynamically loadable Python extensions.
                |- \site-packages    Site-specific packages and modules.

@@ -100,8 +101,8 @@
 These directories, on the target system, are populated from the development
 system as follows:

-  * \Efi\Tools receives a copy of Build/AppPkg/DEBUG_VS2015/X64/Python.efi.
-                                               ^^^^^^^^^^^^
+  * \Efi\Tools receives a copy of Build/AppPkg/DEBUG_VS2015/X64/Python2710.efi.
+                                               ^^^^^^^^^^^^^^^^
     Modify the host path to match your build type and compiler.

   * The \Efi\StdLib\etc directory is populated from the StdLib/Efi/StdLib/etc
@@ -131,8 +132,9 @@
   2.  enable LibraryClasses BsdSocketLib and EfiSocketLib in PythonCore.inf.
   3.  Build Python2710
           build -a X64 -p AppPkg\AppPkg.dsc
-  6.  copy Build\AppPkg\DEBUG_VS2005\X64\Python2710.efi to \Efi\Tools on your 
target system.
-                        ^^^^^^^^^^^^ Modify as needed
+  6.  copy Build\AppPkg\DEBUG_VS2005\X64\Python2710.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
 =================
@@ -151,17 +153,24 @@

   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.
+      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
 ======================
--
Daryl McDaniel


_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to