]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Issue #28046: Remove platform-specific directories from sys.path
authorZachary Ware <zachary.ware@gmail.com>
Sat, 10 Sep 2016 00:59:49 +0000 (17:59 -0700)
committerZachary Ware <zachary.ware@gmail.com>
Sat, 10 Sep 2016 00:59:49 +0000 (17:59 -0700)
.gitignore
.hgignore
Lib/sysconfig.py
Mac/BuildScript/build-installer.py
Makefile.pre.in
Misc/NEWS
PC/getpathp.c
Tools/msi/make_zip.py
configure
configure.ac

index 69f7ac0ecc0f0d114e451785c0bea63740cf9d61..ed4ebfbbd9de74ed329b9f39dfe658937ecaee94 100644 (file)
@@ -21,7 +21,6 @@ Doc/venv/
 Lib/distutils/command/*.pdb
 Lib/lib2to3/*.pickle
 Lib/test/data/*
-Lib/plat-mac/errors.rsrc.df.rsrc
 Makefile
 Makefile.pre
 Misc/python.pc
index f5d1414c68c65b083b7ca3cb3febfd0b6b2c3b04..92896b7bc21c152ca0c66d04b096f06508134cd4 100644 (file)
--- a/.hgignore
+++ b/.hgignore
@@ -26,7 +26,6 @@ python-config$
 python-config.py$
 reflog.txt$
 tags$
-Lib/plat-mac/errors.rsrc.df.rsrc
 Misc/python.pc
 Misc/python-config.sh$
 Modules/Setup$
index 7b78440ed3f2e99507c9e142a6316b674a62b7ce..c2f28f54544896a6f9779ee6019ac9aea72919b8 100644 (file)
@@ -341,6 +341,15 @@ def get_makefile_filename():
         config_dir_name += '-%s' % sys.implementation._multiarch
     return os.path.join(get_path('stdlib'), config_dir_name, 'Makefile')
 
+
+def _get_sysconfigdata_name():
+    return '_sysconfigdata_{abi}_{platform}_{multiarch}'.format(
+        abi=sys.abiflags,
+        platform=sys.platform,
+        multiarch=getattr(sys.implementation, '_multiarch', ''),
+    )
+
+
 def _generate_posix_vars():
     """Generate the Python module containing build-time variables."""
     import pprint
@@ -381,7 +390,7 @@ def _generate_posix_vars():
     # _sysconfigdata module manually and populate it with the build vars.
     # This is more than sufficient for ensuring the subsequent call to
     # get_platform() succeeds.
-    name = '_sysconfigdata_' + sys.abiflags
+    name = _get_sysconfigdata_name()
     if 'darwin' in sys.platform:
         import types
         module = types.ModuleType(name)
@@ -407,7 +416,7 @@ def _generate_posix_vars():
 def _init_posix(vars):
     """Initialize the module as appropriate for POSIX systems."""
     # _sysconfigdata is generated at build time, see _generate_posix_vars()
-    name = '_sysconfigdata_' + sys.abiflags
+    name = _get_sysconfigdata_name()
     _temp = __import__(name, globals(), locals(), ['build_time_vars'], 0)
     build_time_vars = _temp.build_time_vars
     vars.update(build_time_vars)
index b0d4444d8989f2b9308be1274e376f06d10a2d33..ef93a6edfed01b3fe157727a6261eb0fac9bae88 100755 (executable)
@@ -1292,7 +1292,8 @@ def buildPython():
 
     import pprint
     if getVersionMajorMinor() >= (3, 6):
-        path = os.path.join(path_to_lib, 'plat-darwin', '_sysconfigdata_m.py')
+        # XXX this is extra-fragile
+        path = os.path.join(path_to_lib, '_sysconfigdata_m_darwin_darwin.py')
     else:
         path = os.path.join(path_to_lib, '_sysconfigdata.py')
     fp = open(path, 'r')
index 908ca52bb00065071b0b4e0f49b85b9b2416cdee..d7aea2625e679997e16abd1682ff2cdcf146d1b7 100644 (file)
@@ -1178,8 +1178,6 @@ maninstall:       altmaninstall
        (cd $(DESTDIR)$(MANDIR)/man1; $(LN) -s python$(VERSION).1 python3.1)
 
 # Install the library
-PLATDIR=       @PLATDIR@
-MACHDEPS=      $(PLATDIR)
 XMLLIBSUBDIRS=  xml xml/dom xml/etree xml/parsers xml/sax
 LIBSUBDIRS=    tkinter tkinter/test tkinter/test/test_tkinter \
                tkinter/test/test_ttk site-packages test \
@@ -1238,8 +1236,8 @@ LIBSUBDIRS=       tkinter tkinter/test tkinter/test/test_tkinter \
                multiprocessing multiprocessing/dummy \
                unittest unittest/test unittest/test/testmock \
                venv venv/scripts venv/scripts/posix \
-               curses pydoc_data $(MACHDEPS)
-libinstall:    build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
+               curses pydoc_data
+libinstall:    build_all $(srcdir)/Modules/xxmodule.c
        @for i in $(SCRIPTDIR) $(LIBDEST); \
        do \
                if test ! -d $(DESTDIR)$$i; then \
@@ -1294,10 +1292,10 @@ libinstall:     build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
                        esac; \
                done; \
        done
-       $(INSTALL_DATA) `cat pybuilddir.txt`/_sysconfigdata_$(ABIFLAGS).py \
-               $(DESTDIR)$(LIBDEST)/$(PLATDIR); \
+       $(INSTALL_DATA) `cat pybuilddir.txt`/_sysconfigdata_$(ABIFLAGS)_$(MACHDEP)_$(MULTIARCH).py \
+               $(DESTDIR)$(LIBDEST); \
        echo $(INSTALL_DATA) `cat pybuilddir.txt`/_sysconfigdata_$(ABIFLAGS).py \
-               $(LIBDEST)/$(PLATDIR)
+               $(LIBDEST)
        $(INSTALL_DATA) $(srcdir)/LICENSE $(DESTDIR)$(LIBDEST)/LICENSE.txt
        if test -d $(DESTDIR)$(LIBDEST)/distutils/tests; then \
                $(INSTALL_DATA) $(srcdir)/Modules/xxmodule.c \
@@ -1335,9 +1333,6 @@ libinstall:       build_all $(srcdir)/Lib/$(PLATDIR) $(srcdir)/Modules/xxmodule.c
        -PYTHONPATH=$(DESTDIR)$(LIBDEST) $(RUNSHARED) \
                $(PYTHON_FOR_BUILD) -m lib2to3.pgen2.driver $(DESTDIR)$(LIBDEST)/lib2to3/PatternGrammar.txt
 
-$(srcdir)/Lib/$(PLATDIR):
-       mkdir $(srcdir)/Lib/$(PLATDIR)
-
 python-config: $(srcdir)/Misc/python-config.in Misc/python-config.sh
        # Substitution happens here, as the completely-expanded BINDIR
        # is not available in configure
@@ -1614,9 +1609,6 @@ clobber: clean profile-removal
        -rm -rf build platform
        -rm -rf $(PYTHONFRAMEWORKDIR)
        -rm -f python-config.py python-config
-       if [ -n "$(MULTIARCH)" ]; then \
-         rm -rf $(srcdir)/Lib/$(PLATDIR); \
-       fi
 
 # Make things extra clean, before making a distribution:
 # remove all generated files, even Makefile[.pre]
index a6979dcb74344f409b405500de9fb9ebad9edb64..3a0ff1ef3621f415e27c48e25dd838051f2cc0fb 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,8 @@ What's New in Python 3.6.0 beta 1
 Core and Builtins
 -----------------
 
+- Issue #28046: Remove platform-specific directories from sys.path.
+
 - Issue #25758: Prevents zipimport from unnecessarily encoding a filename
   (patch by Eryk Sun)
 
index 4d71fe7ddfc20354c8294886a24657bb3d75e7d6..5604d3dcafbba93b00145f208cbf4ecf8fbcd5ad 100644 (file)
@@ -26,7 +26,7 @@
      is set, we believe it.  Otherwise, we use the path of our host .EXE's
      to try and locate on of our "landmarks" and deduce our home.
      - If we DO have a Python Home: The relevant sub-directories (Lib,
-       plat-win, etc) are based on the Python Home
+       DLLs, etc) are based on the Python Home
      - If we DO NOT have a Python Home, the core Python Path is
        loaded from the registry.  This is the main PythonPath key,
        and both HKLM and HKCU are combined to form the path)
@@ -34,7 +34,7 @@
    * Iff - we can not locate the Python Home, have not had a PYTHONPATH
      specified, and can't locate any Registry entries (ie, we have _nothing_
      we can assume is a good path), a default path with relative entries is
-     used (eg. .\Lib;.\plat-win, etc)
+     used (eg. .\Lib;.\DLLs, etc)
 
 
    If a sys.path file exists adjacent to python.exe, it must contain a
index 6c43256662c895a5cc323d3489a9213eb991d447..4e17740616221212f7c47b28856265a0791b9cdb 100644 (file)
@@ -67,8 +67,6 @@ def include_in_lib(p):
     if p.is_dir():
         if name in EXCLUDE_FROM_LIBRARY:
             return False
-        if name.startswith('plat-'):
-            return False
         if name == 'test' and p.parts[-2].lower() == 'lib':
             return False
         if name in {'test', 'tests'} and p.parts[-3].lower() == 'lib':
index fae0791e6e48abaa4a60362ca77ab4aecb4edd39..165104888aeed5941a4615e507859d04ea040cb0 100755 (executable)
--- a/configure
+++ b/configure
@@ -712,7 +712,6 @@ EGREP
 NO_AS_NEEDED
 MULTIARCH_CPPFLAGS
 PLATFORM_TRIPLET
-PLATDIR
 MULTIARCH
 ac_ct_CXX
 MAINCC
@@ -2929,7 +2928,7 @@ $as_echo_n "checking for python interpreter for cross build... " >&6; }
        fi
         { $as_echo "$as_me:${as_lineno-$LINENO}: result: $interp" >&5
 $as_echo "$interp" >&6; }
-       PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib:$(srcdir)/Lib/$(PLATDIR) '$interp
+       PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib '$interp
     fi
     # Used to comment out stuff for rebuilding generated files
     GENERATED_COMMENT='#'
@@ -5361,12 +5360,6 @@ if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then
 elif test x$PLATFORM_TRIPLET != x && test x$MULTIARCH = x; then
   MULTIARCH=$PLATFORM_TRIPLET
 fi
-if test x$PLATFORM_TRIPLET = x; then
-  PLATDIR=plat-$MACHDEP
-else
-  PLATDIR=plat-$PLATFORM_TRIPLET
-fi
-
 
 if test x$MULTIARCH != x; then
   MULTIARCH_CPPFLAGS="-DMULTIARCH=\\\"$MULTIARCH\\\""
index b1af05e43c77b4d71315bc76f63232edda09d591..328c6105e659a2471a500642fc04cc7c3a00b19f 100644 (file)
@@ -78,7 +78,7 @@ if test "$cross_compiling" = yes; then
            AC_MSG_ERROR([python$PACKAGE_VERSION interpreter not found])
        fi
         AC_MSG_RESULT($interp)
-       PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib:$(srcdir)/Lib/$(PLATDIR) '$interp
+       PYTHON_FOR_BUILD='_PYTHON_PROJECT_BASE=$(abs_builddir) _PYTHON_HOST_PLATFORM=$(_PYTHON_HOST_PLATFORM) PYTHONPATH=$(shell test -f pybuilddir.txt && echo $(abs_builddir)/`cat pybuilddir.txt`:)$(srcdir)/Lib '$interp
     fi
     # Used to comment out stuff for rebuilding generated files
     GENERATED_COMMENT='#'
@@ -910,12 +910,6 @@ if test x$PLATFORM_TRIPLET != x && test x$MULTIARCH != x; then
 elif test x$PLATFORM_TRIPLET != x && test x$MULTIARCH = x; then
   MULTIARCH=$PLATFORM_TRIPLET
 fi
-if test x$PLATFORM_TRIPLET = x; then
-  PLATDIR=plat-$MACHDEP
-else
-  PLATDIR=plat-$PLATFORM_TRIPLET
-fi
-AC_SUBST(PLATDIR)
 AC_SUBST(PLATFORM_TRIPLET)
 if test x$MULTIARCH != x; then
   MULTIARCH_CPPFLAGS="-DMULTIARCH=\\\"$MULTIARCH\\\""