25293039 Upgrade Python 2.7 line to 2.7.13
authorJohn Beck <John.Beck@Oracle.COM>
Tue, 20 Dec 2016 13:25:44 -0800
changeset 7516 09c933391a1b
parent 7513 0a979060f73b
child 7517 42ae3923b8fe
25293039 Upgrade Python 2.7 line to 2.7.13
components/python/python27/Makefile
components/python/python27/patches/00-bits.patch
components/python/python27/patches/04-solaris-64-bit.patch
components/python/python27/patches/05-dtrace.patch
components/python/python27/patches/10-cflags.patch
components/python/python27/patches/11-closerange.patch
components/python/python27/patches/12-studio-profile.patch
components/python/python27/patches/14-py_db.patch
components/python/python27/patches/15-get_wch.patch
components/python/python27/patches/18-osconf-long.patch
components/python/python27/patches/20-bsddb-harmful.patch
components/python/python27/patches/21-disable-sslv3.patch
components/python/python27/patches/22-default-lib-path.patch
components/python/python27/patches/26-sslv2.patch
components/python/python27/patches/30-expat.patch
components/python/python27/python-27-tests.p5m
components/python/python27/python-27.p5m
components/python/python27/python27.license
--- 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/)
[email protected]@ -2207,12 +2207,6 @@
+ AC_INIT(python, PYTHON_VERSION, https://bugs.python.org/)
[email protected]@ -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
[email protected]@ -636,6 +636,10 @@
[email protected]@ -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 :
[email protected]@ -676,7 +680,14 @@
[email protected]@ -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
[email protected]@ -233,6 +233,7 @@
[email protected]@ -232,6 +232,7 @@
  # Used of signalmodule.o is not available
  SIGNAL_OBJS=	@[email protected]
  
@@ -17,7 +17,7 @@
  
  ##########################################################################
  # Grammar
[email protected]@ -366,6 +367,7 @@
[email protected]@ -365,6 +366,7 @@
  		Python/formatter_unicode.o \
  		Python/formatter_string.o \
  		Python/$(DYNLOADFILE) \
@@ -25,7 +25,7 @@
  		$(LIBOBJS) \
  		$(MACHDEP_OBJS) \
  		$(THREADOBJ)
[email protected]@ -763,6 +765,18 @@
[email protected]@ -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;
[email protected]@ -2981,6 +3115,9 @@
[email protected]@ -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
[email protected]@ -3022,6 +3159,9 @@
[email protected]@ -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);
[email protected]@ -3331,6 +3471,10 @@
[email protected]@ -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
[email protected]@ -1106,7 +1106,7 @@
[email protected]@ -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
[email protected]@ -6661,16 +6661,34 @@
[email protected]@ -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
[email protected]@ -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
[email protected]@ -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
[email protected]@ -455,24 +455,33 @@
[email protected]@ -454,24 +454,33 @@
  	$(MAKE) profile-removal
  
  build_all_generate_profile:
--	$(MAKE) all CFLAGS="$(CFLAGS) $(PGO_PROF_GEN_FLAG) @[email protected]" LDFLAGS="$(LDFLAGS) $(PGO_PROF_GEN_FLAG) @[email protected]" LIBS="$(LIBS)"
-+	$(MAKE) all CC="$(CC) -xprofile=collect:$(XPROFILE_DIR)" \
+-	$(MAKE) @[email protected] CFLAGS="$(CFLAGS) $(PGO_PROF_GEN_FLAG) @[email protected]" LDFLAGS="$(LDFLAGS) $(PGO_PROF_GEN_FLAG) @[email protected]" LIBS="$(LIBS)"
++	$(MAKE) @[email protected] 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) @[email protected]" LDFLAGS="$(LDFLAGS) @[email protected]"
-+	$(MAKE) all CC="$(CC) -xprofile=use:$(XPROFILE_DIR)" \
+-	$(MAKE) @[email protected] CFLAGS="$(CFLAGS) $(PGO_PROF_USE_FLAG) @[email protected]" LDFLAGS="$(LDFLAGS) @[email protected]"
++	$(MAKE) @[email protected] 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) @[email protected] CFLAGS="$(CFLAGS) -O0 -pg -fprofile-arcs -ftest-coverage" LIBS="$(LIBS) -lgcov"
++	$(MAKE) @[email protected] 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:"
[email protected]@ -1422,9 +1431,7 @@
- 	-rm -rf build
[email protected]@ -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
[email protected]@ -432,7 +432,7 @@
[email protected]@ -431,7 +431,7 @@
  
  # Default target
- all:		build_all
+ all:		@[email protected]
 -build_all:	$(BUILDPYTHON) oldsharedmods sharedmods gdbhooks
 +build_all:	$(BUILDPYTHON) oldsharedmods sharedmods gdbhooks build-py_db
  
  # Compile a binary with profile guided optimization.
  profile-opt:
[email protected]@ -877,6 +877,15 @@
[email protected]@ -865,6 +865,15 @@
  
  $(LIBRARY_OBJS) $(MODOBJS) Modules/python.o: $(PYTHON_HEADERS)
  
@@ -28,7 +28,7 @@
  
  ######################################################################
  
[email protected]@ -941,7 +950,7 @@
[email protected]@ -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;
[email protected]@ -1572,6 +1603,7 @@
[email protected]@ -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
[email protected]@ -8555,7 +8555,7 @@
[email protected]@ -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
[email protected]@ -1094,7 +1094,7 @@
[email protected]@ -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
[email protected]@ -2290,7 +2290,7 @@
[email protected]@ -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
[email protected]@ -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
[email protected]@ -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)
[email protected]@ -202,7 +190,7 @@
[email protected]@ -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
[email protected]@ -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