Reviewed-by: Erik Bjorge <[email protected]>

> -----Original Message-----
> From: Daryl McDaniel [mailto:[email protected]]
> Sent: Sunday, January 3, 2016 4:07 PM
> To: [email protected]; Carsey, Jaben <[email protected]>; Bjorge, 
> Erik C
> <[email protected]>
> Subject: [PATCH] Python: Clean up and document how to escape the -# option.
> 
> 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