summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZachary Ware <zachary.ware@gmail.com>2016-09-09 17:59:49 -0700
committerZachary Ware <zachary.ware@gmail.com>2016-09-09 17:59:49 -0700
commitc4b53afce491142b80b228a21a05de5dcfd8d36f (patch)
tree4fd78ef4e4fcabc46bbff33825cf7ffba4c64e58
parentb44acebc7bdde44dc1f952a8fa498a155a35e509 (diff)
downloadcpython-git-c4b53afce491142b80b228a21a05de5dcfd8d36f.tar.gz
Issue #28046: Remove platform-specific directories from sys.path
-rw-r--r--.gitignore1
-rw-r--r--.hgignore1
-rw-r--r--Lib/sysconfig.py13
-rwxr-xr-xMac/BuildScript/build-installer.py3
-rw-r--r--Makefile.pre.in18
-rw-r--r--Misc/NEWS2
-rw-r--r--PC/getpathp.c4
-rw-r--r--Tools/msi/make_zip.py2
-rwxr-xr-xconfigure9
-rw-r--r--configure.ac8
10 files changed, 24 insertions, 37 deletions
diff --git a/.gitignore b/.gitignore
index 69f7ac0ecc..ed4ebfbbd9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -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
diff --git a/.hgignore b/.hgignore
index f5d1414c68..92896b7bc2 100644
--- 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$
diff --git a/Lib/sysconfig.py b/Lib/sysconfig.py
index 7b78440ed3..c2f28f5454 100644
--- a/Lib/sysconfig.py
+++ b/Lib/sysconfig.py
@@ -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)
diff --git a/Mac/BuildScript/build-installer.py b/Mac/BuildScript/build-installer.py
index b0d4444d89..ef93a6edfe 100755
--- a/Mac/BuildScript/build-installer.py
+++ b/Mac/BuildScript/build-installer.py
@@ -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')
diff --git a/Makefile.pre.in b/Makefile.pre.in
index 908ca52bb0..d7aea2625e 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -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]
diff --git a/Misc/NEWS b/Misc/NEWS
index a6979dcb74..3a0ff1ef36 100644
--- 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)
diff --git a/PC/getpathp.c b/PC/getpathp.c
index 4d71fe7ddf..5604d3dcaf 100644
--- a/PC/getpathp.c
+++ b/PC/getpathp.c
@@ -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
diff --git a/Tools/msi/make_zip.py b/Tools/msi/make_zip.py
index 6c43256662..4e17740616 100644
--- a/Tools/msi/make_zip.py
+++ b/Tools/msi/make_zip.py
@@ -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':
diff --git a/configure b/configure
index fae0791e6e..165104888a 100755
--- 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\\\""
diff --git a/configure.ac b/configure.ac
index b1af05e43c..328c6105e6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -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\\\""