[OE-core] [PATCH] python3: Use _sysconfigdata.py to initialize distutils.sysconfig

Gary Thomas gary at mlbassoc.com
Wed Apr 12 13:51:35 UTC 2017


On 2017-04-12 14:51, Bruce Ashfield wrote:
>
>
> On Wed, Apr 12, 2017 at 1:15 AM, Li Zhou <li.zhou at windriver.com <mailto:li.zhou at windriver.com>> wrote:
>
>     Porting patch from
>     <https://github.com/python/cpython/commit/409482251b06fe75c4ee56e85ffbb4b23d934159
>     <https://github.com/python/cpython/commit/409482251b06fe75c4ee56e85ffbb4b23d934159>>
>     to use _sysconfigdata.py to initialize distutils.sysconfig.
>
>
>
> But what does this actually do ?  I'm sure it is obvious to the python hackers, but to me,
> this short log just describes what the patch does, not what problem it solves and why this
> is a good thing.

Also, doesn't this also apply to python-2.7.x (maybe with some massaging)?  Whatever problem
this is solving surely exists on that code line as well.

>     Signed-off-by: Li Zhou <li.zhou at windriver.com <mailto:li.zhou at windriver.com>>
>     ---
>      ...-Use-_sysconfigdata.py-to-initialize-dist.patch | 66 ++++++++++++++++++++++
>      meta/recipes-devtools/python/python3_3.5.2.bb <http://python3_3.5.2.bb>      |  1 +
>      2 files changed, 67 insertions(+)
>      create mode 100644 meta/recipes-devtools/python/python3/0001-Issue-21272-Use-_sysconfigdata.py-to-initialize-dist.patch
>
>     diff --git a/meta/recipes-devtools/python/python3/0001-Issue-21272-Use-_sysconfigdata.py-to-initialize-dist.patch
>     b/meta/recipes-devtools/python/python3/0001-Issue-21272-Use-_sysconfigdata.py-to-initialize-dist.patch
>     new file mode 100644
>     index 0000000..d1c92e9
>     --- /dev/null
>     +++ b/meta/recipes-devtools/python/python3/0001-Issue-21272-Use-_sysconfigdata.py-to-initialize-dist.patch
>     @@ -0,0 +1,66 @@
>     +From bcddbf40c7f1b80336268cdddacc17369fb0ccea Mon Sep 17 00:00:00 2001
>     +From: Libin Dang <libin.dang at windriver.com <mailto:libin.dang at windriver.com>>
>     +Date: Tue, 11 Apr 2017 14:12:15 +0800
>     +Subject: [PATCH] Issue #21272: Use _sysconfigdata.py to initialize
>     + distutils.sysconfig
>     +
>     +Backport upstream commit
>     +https://github.com/python/cpython/commit/409482251b06fe75c4ee56e85ffbb4b23d934159
>     <https://github.com/python/cpython/commit/409482251b06fe75c4ee56e85ffbb4b23d934159>
>     +
>     +Upstream-Status: Backport
>     +
>     +Signed-off-by: Li Zhou <li.zhou at windriver.com <mailto:li.zhou at windriver.com>>
>     +---
>     + Lib/distutils/sysconfig.py | 35 ++++-------------------------------
>     + 1 file changed, 4 insertions(+), 31 deletions(-)
>     +
>     +diff --git a/Lib/distutils/sysconfig.py b/Lib/distutils/sysconfig.py
>     +index 6d5cfd0..9925d24 100644
>     +--- a/Lib/distutils/sysconfig.py
>     ++++ b/Lib/distutils/sysconfig.py
>     +@@ -424,38 +424,11 @@ _config_vars = None
>     +
>     + def _init_posix():
>     +     """Initialize the module as appropriate for POSIX systems."""
>     +-    g = {}
>     +-    # load the installed Makefile:
>     +-    try:
>     +-        filename = get_makefile_filename()
>     +-        parse_makefile(filename, g)
>     +-    except OSError as msg:
>     +-        my_msg = "invalid Python installation: unable to open %s" % filename
>     +-        if hasattr(msg, "strerror"):
>     +-            my_msg = my_msg + " (%s)" % msg.strerror
>     +-
>     +-        raise DistutilsPlatformError(my_msg)
>     +-
>     +-    # load the installed pyconfig.h:
>     +-    try:
>     +-        filename = get_config_h_filename()
>     +-        with open(filename) as file:
>     +-            parse_config_h(file, g)
>     +-    except OSError as msg:
>     +-        my_msg = "invalid Python installation: unable to open %s" % filename
>     +-        if hasattr(msg, "strerror"):
>     +-            my_msg = my_msg + " (%s)" % msg.strerror
>     +-
>     +-        raise DistutilsPlatformError(my_msg)
>     +-
>     +-    # On AIX, there are wrong paths to the linker scripts in the Makefile
>     +-    # -- these paths are relative to the Python source, but when installed
>     +-    # the scripts are in another directory.
>     +-    if python_build:
>     +-        g['LDSHARED'] = g['BLDSHARED']
>     +-
>     ++    # _sysconfigdata is generated at build time, see the sysconfig module
>     ++    from _sysconfigdata import build_time_vars
>     +     global _config_vars
>     +-    _config_vars = g
>     ++    _config_vars = {}
>     ++    _config_vars.update(build_time_vars)
>     +
>     +
>     + def _init_nt():
>     +--
>     +1.8.3.1
>     +
>     diff --git a/meta/recipes-devtools/python/python3_3.5.2.bb <http://python3_3.5.2.bb>
>     b/meta/recipes-devtools/python/python3_3.5.2.bb <http://python3_3.5.2.bb>
>     index ca8dfe3..a413da7 100644
>     --- a/meta/recipes-devtools/python/python3_3.5.2.bb <http://python3_3.5.2.bb>
>     +++ b/meta/recipes-devtools/python/python3_3.5.2.bb <http://python3_3.5.2.bb>
>     @@ -37,6 +37,7 @@ SRC_URI += "\
>                  file://configure.ac-fix-LIBPL.patch \
>                  file://python3-fix-CVE-2016-1000110.patch \
>                  file://upstream-random-fixes.patch \
>     +            file://0001-Issue-21272-Use-_sysconfigdata.py-to-initialize-dist.patch \
>                 "
>      SRC_URI[md5sum] = "8906efbacfcdc7c3c9198aeefafd159e"
>      SRC_URI[sha256sum] = "0010f56100b9b74259ebcd5d4b295a32324b58b517403a10d1a2aa7cb22bca40"
>     --
>     1.9.1
>
>     --
>     _______________________________________________
>     Openembedded-core mailing list
>     Openembedded-core at lists.openembedded.org <mailto:Openembedded-core at lists.openembedded.org>
>     http://lists.openembedded.org/mailman/listinfo/openembedded-core
>     <http://lists.openembedded.org/mailman/listinfo/openembedded-core>
>
>
>
>
> --
> "Thou shalt not follow the NULL pointer, for chaos and madness await thee at its end"
>
>


-- 
------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
------------------------------------------------------------



More information about the Openembedded-core mailing list