906ed044aa
Fixes the following security issues: - bpo-37463: ssl.match_hostname() no longer accepts IPv4 addresses with additional text after the address and only quad-dotted notation without trailing whitespaces. Some inet_aton() implementations ignore whitespace and all data after whitespace, e.g. ‘127.0.0.1 whatever’. - bpo-35907: CVE-2019-9948: Avoid file reading by disallowing local-file:// and local_file:// URL schemes in URLopener().open() and URLopener().retrieve() of urllib.request. - bpo-30458: Address CVE-2019-9740 by disallowing URL paths with embedded whitespace or control characters through into the underlying http client request. Such potentially malicious header injection URLs now cause an http.client.InvalidURL exception to be raised. - bpo-33529: Prevent fold function used in email header encoding from entering infinite loop when there are too many non-ASCII characters in a header. - bpo-35755: shutil.which() now uses os.confstr("CS_PATH") if available and if the PATH environment variable is not set. Remove also the current directory from posixpath.defpath. On Unix, shutil.which() and the subprocess module no longer search the executable in the current directory if the PATH environment variable is not set. Also remove the following upstreamed patches: - 0033-bpo-36742-Fixes-handling-of-pre-normalization-charac.patch - 0034-bpo-36742-Corrects-fix-to-handle-decomposition-in-us.patch Signed-off-by: Adam Duskett <Aduskett@gmail.com> [Peter: mention security fixes] Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
100 lines
3.1 KiB
Diff
100 lines
3.1 KiB
Diff
From 18a754e930e03d143d9392e49174cc370b334cdd Mon Sep 17 00:00:00 2001
|
|
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
|
Date: Wed, 22 Feb 2017 17:07:56 -0800
|
|
Subject: [PATCH] Add an option to disable pydoc
|
|
|
|
It removes 0.5 MB of data from the target plus the pydoc script
|
|
itself.
|
|
|
|
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
|
Signed-off-by: Samuel Martin <s.martin49@gmail.com>
|
|
[ Andrey Smirnov: ported to Python 3.6 ]
|
|
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
|
|
---
|
|
Makefile.pre.in | 8 +++++++-
|
|
configure.ac | 6 ++++++
|
|
setup.py | 9 +++++++--
|
|
3 files changed, 20 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/Makefile.pre.in b/Makefile.pre.in
|
|
index 4110fff4ac..badb2af35d 100644
|
|
--- a/Makefile.pre.in
|
|
+++ b/Makefile.pre.in
|
|
@@ -1231,7 +1231,9 @@ bininstall: altbininstall
|
|
-rm -f $(DESTDIR)$(BINDIR)/idle3
|
|
(cd $(DESTDIR)$(BINDIR); $(LN) -s idle$(VERSION) idle3)
|
|
-rm -f $(DESTDIR)$(BINDIR)/pydoc3
|
|
+ifeq (@PYDOC@,yes)
|
|
(cd $(DESTDIR)$(BINDIR); $(LN) -s pydoc$(VERSION) pydoc3)
|
|
+endif
|
|
-rm -f $(DESTDIR)$(BINDIR)/2to3
|
|
(cd $(DESTDIR)$(BINDIR); $(LN) -s 2to3-$(VERSION) 2to3)
|
|
-rm -f $(DESTDIR)$(BINDIR)/pyvenv
|
|
@@ -1279,7 +1281,7 @@ LIBSUBDIRS= tkinter site-packages \
|
|
multiprocessing multiprocessing/dummy \
|
|
unittest \
|
|
venv venv/scripts venv/scripts/common venv/scripts/posix \
|
|
- curses pydoc_data
|
|
+ curses
|
|
|
|
TESTSUBDIRS= tkinter/test tkinter/test/test_tkinter \
|
|
tkinter/test/test_ttk test \
|
|
@@ -1354,6 +1356,10 @@ ifeq (@TEST_MODULES@,yes)
|
|
LIBSUBDIRS += $(TESTSUBDIRS)
|
|
endif
|
|
|
|
+ifeq (@PYDOC@,yes)
|
|
+LIBSUBDIRS += pydoc_data
|
|
+endif
|
|
+
|
|
libinstall: build_all $(srcdir)/Modules/xxmodule.c
|
|
@for i in $(SCRIPTDIR) $(LIBDEST); \
|
|
do \
|
|
diff --git a/configure.ac b/configure.ac
|
|
index f924937fe1..1621fa1611 100644
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -3226,6 +3226,12 @@ if test "$posix_threads" = "yes"; then
|
|
AC_CHECK_FUNCS(pthread_getcpuclockid)
|
|
fi
|
|
|
|
+AC_SUBST(PYDOC)
|
|
+
|
|
+AC_ARG_ENABLE(pydoc,
|
|
+ AS_HELP_STRING([--disable-pydoc], [disable pydoc]),
|
|
+ [ PYDOC="${enableval}" ], [ PYDOC=yes ])
|
|
+
|
|
AC_SUBST(TEST_MODULES)
|
|
|
|
AC_ARG_ENABLE(test-modules,
|
|
diff --git a/setup.py b/setup.py
|
|
index 29bfd174d2..94dd337fef 100644
|
|
--- a/setup.py
|
|
+++ b/setup.py
|
|
@@ -2376,6 +2376,12 @@ def main():
|
|
# turn off warnings when deprecated modules are imported
|
|
import warnings
|
|
warnings.filterwarnings("ignore",category=DeprecationWarning)
|
|
+
|
|
+ scripts = ['Tools/scripts/idle3', 'Tools/scripts/2to3',
|
|
+ 'Lib/smtpd.py']
|
|
+ if not '--disable-pydoc' in sysconfig.get_config_var("CONFIG_ARGS"):
|
|
+ scripts += [ 'Tools/scripts/pydoc3' ]
|
|
+
|
|
setup(# PyPI Metadata (PEP 301)
|
|
name = "Python",
|
|
version = sys.version.split()[0],
|
|
@@ -2400,8 +2406,7 @@ def main():
|
|
# If you change the scripts installed here, you also need to
|
|
# check the PyBuildScripts command above, and change the links
|
|
# created by the bininstall target in Makefile.pre.in
|
|
- scripts = ["Tools/scripts/pydoc3", "Tools/scripts/idle3",
|
|
- "Tools/scripts/2to3", "Tools/scripts/pyvenv"]
|
|
+ scripts = scripts
|
|
)
|
|
|
|
# --install-platlib
|
|
--
|
|
2.13.5
|
|
|