--- a/components/python/python27/Makefile Fri Dec 09 17:25:56 2016 +0100
+++ b/components/python/python27/Makefile Tue Dec 20 13:25:44 2016 -0800
@@ -27,17 +27,17 @@
PATH=/usr/bin:/usr/gnu/bin:/usr/sbin
COMPONENT_NAME= Python
-COMPONENT_VERSION= 2.7.12
-COMPONENT_PROJECT_URL= http://python.org/
+COMPONENT_VERSION= 2.7.13
+COMPONENT_PROJECT_URL= https://python.org/
COMPONENT_SRC= $(COMPONENT_NAME)-$(COMPONENT_VERSION)
COMPONENT_ARCHIVE= $(COMPONENT_SRC).tar.xz
COMPONENT_ARCHIVE_HASH= \
- sha256:d7837121dd5652a05fef807c361909d255d173280c4e1a4ded94d73d80a1f978
+ sha256:35d543986882f78261f97787fd3e06274bfa6df29fac9b4a94f73930ff98f731
COMPONENT_ARCHIVE_URL= $(COMPONENT_PROJECT_URL)ftp/python/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
COMPONENT_SIG_URL= $(COMPONENT_ARCHIVE_URL).asc
COMPONENT_BUGDB= utility/python
-TPNO= 29996
+TPNO= 33100
include $(WS_MAKE_RULES)/prep.mk
include $(WS_MAKE_RULES)/configure.mk
--- a/components/python/python27/patches/00-bits.patch Fri Dec 09 17:25:56 2016 +0100
+++ b/components/python/python27/patches/00-bits.patch Tue Dec 20 13:25:44 2016 -0800
@@ -2,8 +2,8 @@
# This patch makes the pyconfig.h header file 32/64 bit friendly.
# As it is Solaris-specific, it is not suitable for upstream.
#
---- Python-2.7.10/configure.ac.~1~ 2015-05-10 10:17:06 -0800
-+++ Python-2.7.10/configure.ac 2015-05-18 14:25:00 -0800
+--- Python-2.7.13/configure.ac.~1~ 2016-12-17 12:05:07.000000000 +0000
++++ Python-2.7.13/configure.ac 2016-12-19 08:14:37.701742813 +0000
@@ -5,7 +5,7 @@
# Set VERSION so we only need to edit in one place (i.e., here)
m4_define(PYTHON_VERSION, 2.7)
@@ -12,8 +12,8 @@
+AC_PREREQ(2.68)
AC_REVISION($Revision$)
- AC_INIT(python, PYTHON_VERSION, http://bugs.python.org/)
-@@ -2207,12 +2207,6 @@
+ AC_INIT(python, PYTHON_VERSION, https://bugs.python.org/)
+@@ -2273,12 +2273,6 @@
if test -z "$CCSHARED"
then
case $ac_sys_system/$ac_sys_release in
--- a/components/python/python27/patches/04-solaris-64-bit.patch Fri Dec 09 17:25:56 2016 +0100
+++ b/components/python/python27/patches/04-solaris-64-bit.patch Tue Dec 20 13:25:44 2016 -0800
@@ -5,7 +5,7 @@
--- Python-2.7.6/Lib/distutils/command/build_ext.py.~1~ 2013-11-09 23:36:40.000000000 -0800
+++ Python-2.7.6/Lib/distutils/command/build_ext.py 2014-05-14 12:47:04.342901439 -0700
-@@ -636,6 +636,10 @@
+@@ -637,6 +637,10 @@
filename = self.get_ext_filename(ext_name)
filename = os.path.split(filename)[-1]
@@ -16,7 +16,7 @@
if not self.inplace:
# no further work needed
# returning :
-@@ -676,7 +680,14 @@
+@@ -677,7 +681,14 @@
so_ext = get_config_var('SO')
if os.name == 'nt' and self.debug:
return os.path.join(*ext_path) + '_d' + so_ext
--- a/components/python/python27/patches/05-dtrace.patch Fri Dec 09 17:25:56 2016 +0100
+++ b/components/python/python27/patches/05-dtrace.patch Tue Dec 20 13:25:44 2016 -0800
@@ -9,7 +9,7 @@
--- Python-2.7.12/Makefile.pre.in.~1~ 2016-06-25 14:49:31.000000000 -0700
+++ Python-2.7.12/Makefile.pre.in 2016-07-07 13:45:26.859336399 -0700
-@@ -233,6 +233,7 @@
+@@ -232,6 +232,7 @@
# Used of signalmodule.o is not available
SIGNAL_OBJS= @SIGNAL_OBJS@
@@ -17,7 +17,7 @@
##########################################################################
# Grammar
-@@ -366,6 +367,7 @@
+@@ -365,6 +366,7 @@
Python/formatter_unicode.o \
Python/formatter_string.o \
Python/$(DYNLOADFILE) \
@@ -25,7 +25,7 @@
$(LIBOBJS) \
$(MACHDEP_OBJS) \
$(THREADOBJ)
-@@ -763,6 +765,18 @@
+@@ -751,6 +753,18 @@
Python/formatter_string.o: $(srcdir)/Python/formatter_string.c \
$(STRINGLIB_HEADERS)
@@ -231,7 +231,7 @@
co = f->f_code;
names = co->co_names;
consts = co->co_consts;
-@@ -2981,6 +3115,9 @@
+@@ -2983,6 +3117,9 @@
PyObject **sp;
PCALL(PCALL_ALL);
sp = stack_pointer;
@@ -241,7 +241,7 @@
#ifdef WITH_TSC
x = call_function(&sp, oparg, &intr0, &intr1);
#else
-@@ -3022,6 +3159,9 @@
+@@ -3024,6 +3161,9 @@
} else
Py_INCREF(func);
sp = stack_pointer;
@@ -251,7 +251,7 @@
READ_TIMESTAMP(intr0);
x = ext_do_call(func, &sp, flags, na, nk);
READ_TIMESTAMP(intr1);
-@@ -3331,6 +3471,10 @@
+@@ -3333,6 +3473,10 @@
/* pop frame */
exit_eval_frame:
--- a/components/python/python27/patches/10-cflags.patch Fri Dec 09 17:25:56 2016 +0100
+++ b/components/python/python27/patches/10-cflags.patch Tue Dec 20 13:25:44 2016 -0800
@@ -2,7 +2,7 @@
--- Python-2.7.10/configure.ac.~2~ 2015-05-10 10:17:06 -0800
+++ Python-2.7.10/configure.ac 2015-05-18 14:42:30 -0800
-@@ -1106,7 +1106,7 @@
+@@ -1095,7 +1095,7 @@
;;
*)
--- a/components/python/python27/patches/11-closerange.patch Fri Dec 09 17:25:56 2016 +0100
+++ b/components/python/python27/patches/11-closerange.patch Tue Dec 20 13:25:44 2016 -0800
@@ -3,7 +3,7 @@
--- Python-2.7.10/Modules/posixmodule.c.~1~ 2015-05-10 10:17:06 -0700
+++ Python-2.7.10/Modules/posixmodule.c 2015-05-18 14:43:36 -0700
-@@ -6661,16 +6661,34 @@
+@@ -6642,16 +6642,34 @@
"closerange(fd_low, fd_high)\n\n\
Closes all file descriptors in [fd_low, fd_high), ignoring errors.");
--- a/components/python/python27/patches/12-studio-profile.patch Fri Dec 09 17:25:56 2016 +0100
+++ b/components/python/python27/patches/12-studio-profile.patch Tue Dec 20 13:25:44 2016 -0800
@@ -4,9 +4,9 @@
that the profiling options be used at all steps of the build -- not just
compilation. As it is Solaris-specific, it is not suitable for upstream.
---- Python-2.7.12/Makefile.pre.in.~2~ 2016-07-07 13:54:04.997344705 -0700
-+++ Python-2.7.12/Makefile.pre.in 2016-07-07 14:06:13.325835947 -0700
-@@ -212,7 +212,7 @@
+--- Python-2.7.13/Makefile.pre.in.~2~ 2016-12-19 08:31:05.720179529 +0000
++++ Python-2.7.13/Makefile.pre.in 2016-12-19 08:31:05.804725502 +0000
+@@ -211,7 +211,7 @@
# The task to run while instrument when building the profile-opt target
# We exclude unittests with -x that take a rediculious amount of time to
# run in the instrumented training build or do not provide much value.
@@ -15,12 +15,12 @@
# report files for gcov / lcov coverage report
COVERAGE_INFO= $(abs_builddir)/coverage.info
-@@ -455,24 +455,33 @@
+@@ -454,24 +454,33 @@
$(MAKE) profile-removal
build_all_generate_profile:
-- $(MAKE) all CFLAGS="$(CFLAGS) $(PGO_PROF_GEN_FLAG) @LTOFLAGS@" LDFLAGS="$(LDFLAGS) $(PGO_PROF_GEN_FLAG) @LTOFLAGS@" LIBS="$(LIBS)"
-+ $(MAKE) all CC="$(CC) -xprofile=collect:$(XPROFILE_DIR)" \
+- $(MAKE) @DEF_MAKE_RULE@ CFLAGS="$(CFLAGS) $(PGO_PROF_GEN_FLAG) @LTOFLAGS@" LDFLAGS="$(LDFLAGS) $(PGO_PROF_GEN_FLAG) @LTOFLAGS@" LIBS="$(LIBS)"
++ $(MAKE) @DEF_MAKE_RULE@ CC="$(CC) -xprofile=collect:$(XPROFILE_DIR)" \
+ CFLAGS="$(CFLAGS) -xprofile=collect:$(XPROFILE_DIR)" \
+ LDFLAGS="$(LDFLAGS) -xprofile=collect:$(XPROFILE_DIR)" \
+ BLDSHARED="$(BLDSHARED) -xprofile=collect:$(XPROFILE_DIR)"
@@ -34,8 +34,8 @@
$(LLVM_PROF_MERGER)
build_all_use_profile:
-- $(MAKE) all CFLAGS="$(CFLAGS) $(PGO_PROF_USE_FLAG) @LTOFLAGS@" LDFLAGS="$(LDFLAGS) @LTOFLAGS@"
-+ $(MAKE) all CC="$(CC) -xprofile=use:$(XPROFILE_DIR)" \
+- $(MAKE) @DEF_MAKE_RULE@ CFLAGS="$(CFLAGS) $(PGO_PROF_USE_FLAG) @LTOFLAGS@" LDFLAGS="$(LDFLAGS) @LTOFLAGS@"
++ $(MAKE) @DEF_MAKE_RULE@ CC="$(CC) -xprofile=use:$(XPROFILE_DIR)" \
+ CFLAGS="$(CFLAGS) -xprofile=use:$(XPROFILE_DIR)" \
+ LDFLAGS="$(LDFLAGS) -xprofile=use:$(XPROFILE_DIR)" \
+ BLDSHARED="$(BLDSHARED) -xprofile=use:$(XPROFILE_DIR)"
@@ -45,16 +45,16 @@
coverage:
@echo "Building with support for coverage checking:"
$(MAKE) clean profile-removal
-- $(MAKE) all CFLAGS="$(CFLAGS) -O0 -pg -fprofile-arcs -ftest-coverage" LIBS="$(LIBS) -lgcov"
-+ $(MAKE) all CC="$(CC) -xprofile=tcov" \
+- $(MAKE) @DEF_MAKE_RULE@ CFLAGS="$(CFLAGS) -O0 -pg -fprofile-arcs -ftest-coverage" LIBS="$(LIBS) -lgcov"
++ $(MAKE) @DEF_MAKE_RULE@ CC="$(CC) -xprofile=tcov" \
+ CFLAGS="$(CFLAGS) -xO1 -xprofile=tcov" \
+ LDFLAGS="$(LDFLAGS) -xprofile=tcov" \
+ BLDSHARED="$(BLDSHARED) -xprofile=tcov"
coverage-lcov:
@echo "Creating Coverage HTML report with LCOV:"
-@@ -1422,9 +1431,7 @@
- -rm -rf build
+@@ -1410,9 +1419,7 @@
+ -find build -type f -a ! -name '*.gc??' -exec rm -f {} ';'
profile-removal:
- find . -name '*.gc??' -exec rm -f {} ';'
--- a/components/python/python27/patches/14-py_db.patch Fri Dec 09 17:25:56 2016 +0100
+++ b/components/python/python27/patches/14-py_db.patch Tue Dec 20 13:25:44 2016 -0800
@@ -3,16 +3,16 @@
--- Python-2.7.12/Makefile.pre.in.~3~ 2016-07-07 14:07:55.545052752 -0700
+++ Python-2.7.12/Makefile.pre.in 2016-07-07 14:07:55.569639679 -0700
-@@ -432,7 +432,7 @@
+@@ -431,7 +431,7 @@
# Default target
- all: build_all
+ all: @DEF_MAKE_ALL_RULE@
-build_all: $(BUILDPYTHON) oldsharedmods sharedmods gdbhooks
+build_all: $(BUILDPYTHON) oldsharedmods sharedmods gdbhooks build-py_db
# Compile a binary with profile guided optimization.
profile-opt:
-@@ -877,6 +877,15 @@
+@@ -865,6 +865,15 @@
$(LIBRARY_OBJS) $(MODOBJS) Modules/python.o: $(PYTHON_HEADERS)
@@ -28,7 +28,7 @@
######################################################################
-@@ -941,7 +950,7 @@
+@@ -929,7 +938,7 @@
$(TESTPYTHON) $(TESTPROG) $(MEMTESTOPTS)
# Install everything
--- a/components/python/python27/patches/15-get_wch.patch Fri Dec 09 17:25:56 2016 +0100
+++ b/components/python/python27/patches/15-get_wch.patch Tue Dec 20 13:25:44 2016 -0800
@@ -42,7 +42,7 @@
PyCursesWindow_GetKey(PyCursesWindowObject *self, PyObject *args)
{
int x, y;
-@@ -1572,6 +1603,7 @@
+@@ -1588,6 +1619,7 @@
{"getbegyx", (PyCFunction)PyCursesWindow_getbegyx, METH_NOARGS},
{"getbkgd", (PyCFunction)PyCursesWindow_GetBkgd, METH_NOARGS},
{"getch", (PyCFunction)PyCursesWindow_GetCh, METH_VARARGS},
--- a/components/python/python27/patches/18-osconf-long.patch Fri Dec 09 17:25:56 2016 +0100
+++ b/components/python/python27/patches/18-osconf-long.patch Tue Dec 20 13:25:44 2016 -0800
@@ -3,7 +3,7 @@
--- Python-2.7.10/Modules/posixmodule.c.~2~ 2015-05-10 10:17:06 -0700
+++ Python-2.7.10/Modules/posixmodule.c 2015-05-18 14:47:21 -0700
-@@ -8555,7 +8555,7 @@
+@@ -8538,7 +8538,7 @@
int name;
if (PyArg_ParseTuple(args, "O&:sysconf", conv_sysconf_confname, &name)) {
--- a/components/python/python27/patches/20-bsddb-harmful.patch Fri Dec 09 17:25:56 2016 +0100
+++ b/components/python/python27/patches/20-bsddb-harmful.patch Tue Dec 20 13:25:44 2016 -0800
@@ -5,7 +5,7 @@
--- Python-2.7.9/Makefile.pre.in.~4~ 2014-12-11 09:33:27.006970089 -0800
+++ Python-2.7.9/Makefile.pre.in 2014-12-11 09:33:27.077073582 -0800
-@@ -1094,7 +1094,7 @@
+@@ -1082,7 +1082,7 @@
ensurepip ensurepip/_bundled \
json json/tests \
sqlite3 sqlite3/test \
--- a/components/python/python27/patches/21-disable-sslv3.patch Fri Dec 09 17:25:56 2016 +0100
+++ b/components/python/python27/patches/21-disable-sslv3.patch Tue Dec 20 13:25:44 2016 -0800
@@ -3,7 +3,7 @@
--- Python-2.7.10/Lib/test/test_ssl.py.~1~ 2015-05-10 10:17:04 -0800
+++ Python-2.7.10/Lib/test/test_ssl.py 2015-05-18 14:53:04 -0800
-@@ -2290,7 +2290,7 @@
+@@ -2315,7 +2315,7 @@
sys.stdout.write("\n")
if hasattr(ssl, 'PROTOCOL_SSLv2'):
try:
--- a/components/python/python27/patches/22-default-lib-path.patch Fri Dec 09 17:25:56 2016 +0100
+++ b/components/python/python27/patches/22-default-lib-path.patch Tue Dec 20 13:25:44 2016 -0800
@@ -1,28 +1,44 @@
This patch was developed in-house. It has been submitted upstream:
http://bugs.python.org/issue23287
---- Python-2.7.12/Lib/ctypes/util.py.~1~ 2016-06-25 14:49:30.000000000 -0700
-+++ Python-2.7.12/Lib/ctypes/util.py 2016-07-07 14:25:48.212744320 -0700
-@@ -176,23 +176,11 @@
+--- Python-2.7.13/Lib/ctypes/util.py.~1~ 2016-12-17 12:05:05.000000000 +0000
++++ Python-2.7.13/Lib/ctypes/util.py 2016-12-19 08:44:16.426321564 +0000
+@@ -188,39 +188,15 @@
elif sys.platform == "sunos5":
- def _findLib_crle(name, is64):
- if not os.path.exists('/usr/bin/crle'):
- return None
--
+ def _findLib_path(name, is64):
+
+ env = dict(os.environ)
+ env['LC_ALL'] = 'C'
+
if is64:
-- cmd = 'env LC_ALL=C /usr/bin/crle -64 2>/dev/null'
+- args = ('/usr/bin/crle', '-64')
+ paths = "/lib/64:/usr/lib/64"
else:
-- cmd = 'env LC_ALL=C /usr/bin/crle 2>/dev/null'
+- args = ('/usr/bin/crle',)
-
- paths = None
-- for line in os.popen(cmd).readlines():
-- line = line.strip()
-- if line.startswith('Default Library Path (ELF):'):
-- paths = line.split()[4]
+- null = open(os.devnull, 'wb')
+- try:
+- with null:
+- proc = subprocess.Popen(args,
+- stdout=subprocess.PIPE,
+- stderr=null,
+- env=env)
+- except OSError: # E.g. bad executable
+- return None
+- try:
+- for line in proc.stdout:
+- line = line.strip()
+- if line.startswith(b'Default Library Path (ELF):'):
+- paths = line.split()[4]
+- finally:
+- proc.stdout.close()
+- proc.wait()
-
- if not paths:
- return None
@@ -30,7 +46,7 @@
for dir in paths.split(":"):
libfile = os.path.join(dir, "lib%s.so" % name)
-@@ -202,7 +190,7 @@
+@@ -230,7 +206,7 @@
return None
def find_library(name, is64 = False):
--- a/components/python/python27/patches/26-sslv2.patch Fri Dec 09 17:25:56 2016 +0100
+++ b/components/python/python27/patches/26-sslv2.patch Tue Dec 20 13:25:44 2016 -0800
@@ -1,8 +1,8 @@
This patch comes from in-house, to deal with SSLv2 no longer being supported.
As it is Solaris-specific, it will not be passed upstream.
---- Python-2.7.10/Lib/test/test_ssl.py.orig 2015-07-24 14:34:42.067600359 -0700
-+++ Python-2.7.10/Lib/test/test_ssl.py 2015-08-03 11:48:02.934532909 -0700
+--- Python-2.7.13/Lib/test/test_ssl.py.~2~ 2016-12-19 08:44:58.900357184 +0000
++++ Python-2.7.13/Lib/test/test_ssl.py 2016-12-19 08:44:58.942536627 +0000
@@ -25,6 +25,9 @@
ssl = support.import_module("ssl")
@@ -11,5 +11,5 @@
+ delattr(ssl, 'PROTOCOL_SSLv2')
+ PROTOCOLS.remove(0)
HOST = support.HOST
-
- def data_file(*name):
+ IS_LIBRESSL = ssl.OPENSSL_VERSION.startswith('LibreSSL')
+ IS_OPENSSL_1_1 = not IS_LIBRESSL and ssl.OPENSSL_VERSION_INFO >= (1, 1, 0)
--- a/components/python/python27/patches/30-expat.patch Fri Dec 09 17:25:56 2016 +0100
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-This patch comes from upstream:
-
-http://bugs.python.org/issue27369
-
---- a/Lib/test/test_pyexpat.py
-+++ b/Lib/test/test_pyexpat.py
-@@ -610,11 +610,9 @@ class MalformedInputText(unittest.TestCa
- def test2(self):
- xml = "<?xml version\xc2\x85='1.0'?>\r\n"
- parser = expat.ParserCreate()
-- try:
-+ err_pattern = r'XML declaration not well-formed: line 1, column \d+'
-+ with self.assertRaisesRegexp(expat.ExpatError, err_pattern):
- parser.Parse(xml, True)
-- self.fail()
-- except expat.ExpatError as e:
-- self.assertEqual(str(e), 'XML declaration not well-formed: line 1, column 14')
-
- class ForeignDTDTests(unittest.TestCase):
- """
--- a/components/python/python27/python-27-tests.p5m Fri Dec 09 17:25:56 2016 +0100
+++ b/components/python/python27/python-27-tests.p5m Tue Dec 20 13:25:44 2016 -0800
@@ -305,6 +305,7 @@
file path=usr/lib/python2.7/test/Sine-1000Hz-300ms.aif
file path=usr/lib/python2.7/test/__init__.py
file path=usr/lib/python2.7/test/_mock_backport.py
+file path=usr/lib/python2.7/test/allsans.pem
file path=usr/lib/python2.7/test/audiodata/pluck-pcm16.aiff
file path=usr/lib/python2.7/test/audiodata/pluck-pcm16.au
file path=usr/lib/python2.7/test/audiodata/pluck-pcm16.wav
@@ -341,7 +342,6 @@
file path=usr/lib/python2.7/test/capath/99d0fa06.0
file path=usr/lib/python2.7/test/capath/ce7b8643.0
file path=usr/lib/python2.7/test/cfgparser.1
-file path=usr/lib/python2.7/test/check_soundcard.vbs
file path=usr/lib/python2.7/test/cjkencodings/big5-utf8.txt
file path=usr/lib/python2.7/test/cjkencodings/big5.txt
file path=usr/lib/python2.7/test/cjkencodings/big5hkscs-utf8.txt
@@ -588,6 +588,7 @@
file path=usr/lib/python2.7/test/ssl_key.passwd.pem
file path=usr/lib/python2.7/test/ssl_key.pem
file path=usr/lib/python2.7/test/ssl_servers.py
+file path=usr/lib/python2.7/test/ssltests.py
file path=usr/lib/python2.7/test/string_tests.py
file path=usr/lib/python2.7/test/subprocessdata/sigchild_ignore.py
file path=usr/lib/python2.7/test/symlink_support.py
--- a/components/python/python27/python-27.p5m Fri Dec 09 17:25:56 2016 +0100
+++ b/components/python/python27/python-27.p5m Tue Dec 20 13:25:44 2016 -0800
@@ -493,8 +493,8 @@
file path=usr/lib/python2.7/encodings/zlib_codec.py
file path=usr/lib/python2.7/ensurepip/__init__.py
file path=usr/lib/python2.7/ensurepip/__main__.py
-file path=usr/lib/python2.7/ensurepip/_bundled/pip-8.1.1-py2.py3-none-any.whl
-file path=usr/lib/python2.7/ensurepip/_bundled/setuptools-20.10.1-py2.py3-none-any.whl
+file path=usr/lib/python2.7/ensurepip/_bundled/pip-9.0.1-py2.py3-none-any.whl
+file path=usr/lib/python2.7/ensurepip/_bundled/setuptools-28.8.0-py2.py3-none-any.whl
file path=usr/lib/python2.7/ensurepip/_uninstall.py
file path=usr/lib/python2.7/filecmp.py
file path=usr/lib/python2.7/fileinput.py
@@ -771,7 +771,6 @@
file path=usr/lib/python2.7/lib2to3/fixes/fix_asserts.py
file path=usr/lib/python2.7/lib2to3/fixes/fix_basestring.py
file path=usr/lib/python2.7/lib2to3/fixes/fix_buffer.py
-file path=usr/lib/python2.7/lib2to3/fixes/fix_callable.py
file path=usr/lib/python2.7/lib2to3/fixes/fix_dict.py
file path=usr/lib/python2.7/lib2to3/fixes/fix_except.py
file path=usr/lib/python2.7/lib2to3/fixes/fix_exec.py
--- a/components/python/python27/python27.license Fri Dec 09 17:25:56 2016 +0100
+++ b/components/python/python27/python27.license Tue Dec 20 13:25:44 2016 -0800
@@ -17,8 +17,9 @@
distribute, and otherwise use Python alone or in any derivative version,
provided, however, that PSF's License Agreement and PSF's notice of copyright,
i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-2011, 2012, 2013, 2014, 2015 Python Software Foundation; All Rights Reserved"
-are retained in Python alone or in any derivative version prepared by Licensee.
+2011, 2012, 2013, 2014, 2015, 2016 Python Software Foundation; All Rights
+Reserved" are retained in Python alone or in any derivative version prepared by
+Licensee.
3. In the event Licensee prepares a derivative work that is based on
or incorporates Python or any part thereof, and wants to make