21162830 update Python 2.7 line to version 2.7.10
authorJohn Beck <John.Beck@Oracle.COM>
Fri, 24 Jul 2015 09:56:22 -0700
changeset 4698 4e27e549b58d
parent 4697 2be298b79293
child 4699 e05387dee068
21162830 update Python 2.7 line to version 2.7.10
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/06-ucred.patch
components/python/python27/patches/07-dlpi.patch
components/python/python27/patches/09-rbac.patch
components/python/python27/patches/10-cflags.patch
components/python/python27/patches/11-closerange.patch
components/python/python27/patches/16-ossaudiodev.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/23-doctest.patch
components/python/python27/patches/25-test__locale.patch
components/python/python27/python-27-tests.p5m
components/python/python27/python-27.p5m
components/python/python27/python27.license
components/python/python27/test/results-32.master
components/python/python27/test/results-64.master
--- a/components/python/python27/Makefile	Wed Jul 22 05:12:12 2015 -0700
+++ b/components/python/python27/Makefile	Fri Jul 24 09:56:22 2015 -0700
@@ -26,17 +26,17 @@
 PATH=/usr/bin:/usr/gnu/bin:/usr/sbin
 
 COMPONENT_NAME=		Python
-COMPONENT_VERSION=	2.7.9
+COMPONENT_VERSION=	2.7.10
 COMPONENT_PROJECT_URL=	http://python.org/
 COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.xz
 COMPONENT_ARCHIVE_HASH=	\
-    sha256:90d27e14ea7e03570026850e2e50ba71ad20b7eb31035aada1cf3def8f8d4916
+    sha256:1cd3730781b91caf0fa1c4d472dc29274186480161a150294c42ce9b5c5effc0
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)ftp/python/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
 COMPONENT_SIG_URL=	$(COMPONENT_ARCHIVE_URL).asc
 COMPONENT_BUGDB=	utility/python
 
-TPNO=			20750
+TPNO=			22891
 
 include $(WS_MAKE_RULES)/prep.mk
 include $(WS_MAKE_RULES)/configure.mk
--- a/components/python/python27/patches/00-bits.patch	Wed Jul 22 05:12:12 2015 -0700
+++ b/components/python/python27/patches/00-bits.patch	Fri Jul 24 09:56:22 2015 -0700
@@ -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.9/configure.ac.~1~	2014-12-10 08:00:00.000000000 -0800
-+++ Python-2.7.9/configure.ac	2014-12-11 09:13:54.706541603 -0800
+--- 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
 @@ -5,7 +5,7 @@
  # Set VERSION so we only need to edit in one place (i.e., here)
  m4_define(PYTHON_VERSION, 2.7)
@@ -13,7 +13,7 @@
  
  AC_REVISION($Revision$)
  AC_INIT(python, PYTHON_VERSION, http://bugs.python.org/)
[email protected]@ -2095,12 +2095,6 @@
[email protected]@ -2098,12 +2098,6 @@
  if test -z "$CCSHARED"
  then
  	case $ac_sys_system/$ac_sys_release in
--- a/components/python/python27/patches/04-solaris-64-bit.patch	Wed Jul 22 05:12:12 2015 -0700
+++ b/components/python/python27/patches/04-solaris-64-bit.patch	Fri Jul 24 09:56:22 2015 -0700
@@ -32,9 +32,9 @@
  
      def get_export_symbols (self, ext):
          """Return the list of symbols that a shared extension has to
---- Python-2.7.6/Python/import.c.~1~	2013-11-09 23:36:41.000000000 -0800
-+++ Python-2.7.6/Python/import.c	2014-05-14 12:53:34.233016586 -0700
[email protected]@ -1288,6 +1288,57 @@
+--- Python-2.7.10/Python/import.c.~1~	2015-05-10 10:17:01 -0800
++++ Python-2.7.10/Python/import.c	2015-05-18 14:28:34 -0700
[email protected]@ -1292,6 +1292,57 @@
  static int find_init_module(char *); /* Forward */
  static struct filedescr importhookdescr = {"", "", IMP_HOOK};
  
@@ -92,7 +92,7 @@
  static struct filedescr *
  find_module(char *fullname, char *subname, PyObject *path, char *buf,
              size_t buflen, FILE **p_fp, PyObject **p_loader)
[email protected]@ -1302,11 +1353,10 @@
[email protected]@ -1306,11 +1357,10 @@
      static struct filedescr fd_builtin = {"", "", C_BUILTIN};
      static struct filedescr fd_package = {"", "", PKG_DIRECTORY};
      char *name;
@@ -105,7 +105,7 @@
      if (p_loader != NULL)
          *p_loader = NULL;
  
[email protected]@ -1513,15 +1563,17 @@
[email protected]@ -1517,15 +1567,17 @@
                  }
              }
          }
@@ -125,7 +125,7 @@
  #if defined(PYOS_OS2) && defined(HAVE_DYNAMIC_LOADING)
              /* OS/2 limits DLLs to 8 character names (w/o
                 extension)
[email protected]@ -1562,21 +1614,20 @@
[email protected]@ -1566,21 +1618,20 @@
                      fp = NULL;
                  }
              }
--- a/components/python/python27/patches/05-dtrace.patch	Wed Jul 22 05:12:12 2015 -0700
+++ b/components/python/python27/patches/05-dtrace.patch	Fri Jul 24 09:56:22 2015 -0700
@@ -64,8 +64,8 @@
      f->f_lineno = code->co_firstlineno;
      f->f_iblock = 0;
  
---- Python-2.7.9/Python/ceval.c.~1~	2014-12-10 07:59:58.000000000 -0800
-+++ Python-2.7.9/Python/ceval.c	2014-12-11 09:19:01.398584575 -0800
+--- Python-2.7.10/Python/ceval.c.~1~	2015-05-10 10:17:06 -0800
++++ Python-2.7.10/Python/ceval.c	2015-05-18 14:31:31 -0800
 @@ -19,6 +19,11 @@
  
  #include <ctype.h>
@@ -78,7 +78,7 @@
  #ifndef WITH_TSC
  
  #define READ_TIMESTAMP(var)
[email protected]@ -672,6 +677,55 @@
[email protected]@ -674,6 +679,55 @@
                        NULL);
  }
  
@@ -134,7 +134,7 @@
  
  /* Interpreter main loop */
  
[email protected]@ -683,9 +737,84 @@
[email protected]@ -685,9 +739,84 @@
      return PyEval_EvalFrameEx(f, 0);
  }
  
@@ -219,7 +219,7 @@
  #ifdef DXPAIRS
      int lastopcode = 0;
  #endif
[email protected]@ -910,6 +1039,11 @@
[email protected]@ -912,6 +1041,11 @@
          }
      }
  
@@ -231,7 +231,7 @@
      co = f->f_code;
      names = co->co_names;
      consts = co->co_consts;
[email protected]@ -2673,6 +2807,9 @@
[email protected]@ -2675,6 +2809,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]@ -2714,6 +2851,9 @@
[email protected]@ -2716,6 +2853,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]@ -3014,6 +3154,10 @@
[email protected]@ -3016,6 +3156,10 @@
  
      /* pop frame */
  exit_eval_frame:
@@ -419,9 +419,9 @@
 +#pragma D attributes Private/Private/Common provider python function
 +#pragma D attributes Evolving/Evolving/Common provider python name
 +#pragma D attributes Evolving/Evolving/Common provider python args
---- Python-2.7.9/Lib/test/test_sys.py.~1~	2014-12-10 07:59:47.000000000 -0800
-+++ Python-2.7.9/Lib/test/test_sys.py	2014-12-11 09:20:26.361157717 -0800
[email protected]@ -619,7 +619,7 @@
+--- Python-2.7.10/Lib/test/test_sys.py.~1~	2015-05-10 10:17:04 -0800
++++ Python-2.7.10/Lib/test/test_sys.py	2015-05-18 14:35:06 -0800
[email protected]@ -620,7 +620,7 @@
          nfrees = len(x.f_code.co_freevars)
          extras = x.f_code.co_stacksize + x.f_code.co_nlocals +\
                   ncells + nfrees - 1
--- a/components/python/python27/patches/06-ucred.patch	Wed Jul 22 05:12:12 2015 -0700
+++ b/components/python/python27/patches/06-ucred.patch	Fri Jul 24 09:56:22 2015 -0700
@@ -394,9 +394,9 @@
 +
 +	PyModule_AddObject(m, "ucred", (PyObject *)&pyucred_type);
 +}
---- Python-2.7.9/setup.py.~2~	2014-12-11 09:21:22.692567515 -0800
-+++ Python-2.7.9/setup.py	2014-12-11 09:21:22.772123046 -0800
[email protected]@ -1544,6 +1544,13 @@
+--- Python-2.7.10/setup.py.~2~	2015-05-10 10:17:06 -0800
++++ Python-2.7.10/setup.py	2015-05-18 14:37:00 -0800
[email protected]@ -1563,6 +1563,13 @@
          else:
              missing.append('dl')
  
--- a/components/python/python27/patches/07-dlpi.patch	Wed Jul 22 05:12:12 2015 -0700
+++ b/components/python/python27/patches/07-dlpi.patch	Fri Jul 24 09:56:22 2015 -0700
@@ -1209,9 +1209,9 @@
 +	PyModule_AddIntConstant(mod, "IDLE", DL_IDLE);
 +	PyModule_AddIntConstant(mod, "SYSERR", DL_SYSERR);
 +}
---- Python-2.7.9/setup.py.~3~	2014-12-11 09:22:38.862438509 -0800
-+++ Python-2.7.9/setup.py	2014-12-11 09:22:38.882370033 -0800
[email protected]@ -1551,6 +1551,12 @@
+--- Python-2.7.10/setup.py.~3~	2015-05-10 10:17:06 -0800
++++ Python-2.7.10/setup.py	2015-05-18 14:39:38 -0800
[email protected]@ -1570,6 +1570,12 @@
              exts.append( Extension('ucred', ['ucred.c'],
                                     libraries = ['tsol']) )
  
--- a/components/python/python27/patches/09-rbac.patch	Wed Jul 22 05:12:12 2015 -0700
+++ b/components/python/python27/patches/09-rbac.patch	Fri Jul 24 09:56:22 2015 -0700
@@ -1253,9 +1253,9 @@
 +	0,                         /* tp_alloc */
 +	Userattr_new,                 /* tp_new */
 +};
---- Python-2.7.9/setup.py.~4~	2014-12-11 09:23:44.034373292 -0800
-+++ Python-2.7.9/setup.py	2014-12-11 09:23:44.069264725 -0800
[email protected]@ -1557,6 +1557,22 @@
+--- Python-2.7.10/setup.py.~4~	2015-05-10 10:17:06 -0800
++++ Python-2.7.10/setup.py	2015-05-18 14:40:44 -0800
[email protected]@ -1576,6 +1576,22 @@
              exts.append( Extension('dlpi', ['dlpimodule.c'],
                                     libraries = ['dlpi']) )
  
--- a/components/python/python27/patches/10-cflags.patch	Wed Jul 22 05:12:12 2015 -0700
+++ b/components/python/python27/patches/10-cflags.patch	Fri Jul 24 09:56:22 2015 -0700
@@ -1,8 +1,8 @@
 This patch is Solaris-specific and thus not suitable for upstream.
 
---- Python-2.7.9/configure.ac.~2~	2014-12-11 09:25:29.893198436 -0800
-+++ Python-2.7.9/configure.ac	2014-12-11 09:25:30.062473872 -0800
[email protected]@ -1086,7 +1086,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]@ -1089,7 +1089,7 @@
  	;;
  
      *)
--- a/components/python/python27/patches/11-closerange.patch	Wed Jul 22 05:12:12 2015 -0700
+++ b/components/python/python27/patches/11-closerange.patch	Fri Jul 24 09:56:22 2015 -0700
@@ -1,9 +1,9 @@
 This patch uses fdwalk(3c) to close file descriptors; as that function is not
 widely implemented, this is unsuitable for upstream.
 
---- Python-2.7.7/Modules/posixmodule.c.~1~	2014-05-31 11:58:40.000000000 -0700
-+++ Python-2.7.7/Modules/posixmodule.c	2014-06-02 10:49:30.052826955 -0700
[email protected]@ -6607,16 +6607,34 @@
+--- 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 @@
  "closerange(fd_low, fd_high)\n\n\
  Closes all file descriptors in [fd_low, fd_high), ignoring errors.");
  
--- a/components/python/python27/patches/16-ossaudiodev.patch	Wed Jul 22 05:12:12 2015 -0700
+++ b/components/python/python27/patches/16-ossaudiodev.patch	Fri Jul 24 09:56:22 2015 -0700
@@ -47,9 +47,9 @@
      _EXPORT_INT(m, SNDCTL_TMR_TIMEBASE);
 +#endif
  }
---- Python-2.7.9/setup.py.~5~	2014-12-11 09:31:54.006321120 -0800
-+++ Python-2.7.9/setup.py	2014-12-11 09:31:54.147262938 -0800
[email protected]@ -1640,8 +1640,8 @@
+--- Python-2.7.10/setup.py.~5~	2015-05-10 10:17:06 -0800
++++ Python-2.7.10/setup.py	2015-05-18 14:45:24 -0800
[email protected]@ -1659,8 +1659,8 @@
          else:
              missing.append('linuxaudiodev')
  
--- a/components/python/python27/patches/18-osconf-long.patch	Wed Jul 22 05:12:12 2015 -0700
+++ b/components/python/python27/patches/18-osconf-long.patch	Fri Jul 24 09:56:22 2015 -0700
@@ -1,9 +1,9 @@
 # http://bugs.python.org/issue17964 was fixed in 3.4 but not back-ported so we
 # need this patch for 2.7 .
 
---- Python-2.7.7/Modules/posixmodule.c.~2~	2014-06-02 11:01:10.919544709 -0700
-+++ Python-2.7.7/Modules/posixmodule.c	2014-06-02 11:01:11.009553336 -0700
[email protected]@ -8499,7 +8499,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 @@
      int name;
  
      if (PyArg_ParseTuple(args, "O&:sysconf", conv_sysconf_confname, &name)) {
--- a/components/python/python27/patches/20-bsddb-harmful.patch	Wed Jul 22 05:12:12 2015 -0700
+++ b/components/python/python27/patches/20-bsddb-harmful.patch	Fri Jul 24 09:56:22 2015 -0700
@@ -14,9 +14,9 @@
  		lib2to3 lib2to3/fixes lib2to3/pgen2 lib2to3/tests \
  		lib2to3/tests/data lib2to3/tests/data/fixers lib2to3/tests/data/fixers/myfixes \
  		ctypes ctypes/test ctypes/macholib \
---- Python-2.7.9/setup.py.~6~	2014-12-11 09:35:14.246397752 -0800
-+++ Python-2.7.9/setup.py	2014-12-11 09:35:14.274861676 -0800
[email protected]@ -1069,7 +1069,8 @@
+--- Python-2.7.10/setup.py.~6~	2015-05-10 10:17:06 -0800
++++ Python-2.7.10/setup.py	2015-05-18 14:48:34 -0800
[email protected]@ -1073,7 +1073,8 @@
                                      db_dirs_to_check + lib_dirs, dblib )
                      if dblib_file:
                          dblib_dir = [ os.path.abspath(os.path.dirname(dblib_file)) ]
--- a/components/python/python27/patches/21-disable-sslv3.patch	Wed Jul 22 05:12:12 2015 -0700
+++ b/components/python/python27/patches/21-disable-sslv3.patch	Fri Jul 24 09:56:22 2015 -0700
@@ -1,9 +1,9 @@
 This patch comes from in-house.  It has not yet been submitted upstream,
 but submission is planned.
 
---- Python-2.7.9/Modules/_ssl.c.~1~	2014-12-10 07:59:53.000000000 -0800
-+++ Python-2.7.9/Modules/_ssl.c	2015-01-08 12:46:53.321182041 -0800
[email protected]@ -2042,6 +2042,8 @@
+--- Python-2.7.10/Modules/_ssl.c.~1~	2015-05-10 10:17:05 -0800
++++ Python-2.7.10/Modules/_ssl.c	2015-05-18 14:51:53 -0800
[email protected]@ -2050,6 +2050,8 @@
      options = SSL_OP_ALL & ~SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS;
      if (proto_version != PY_SSL_VERSION_SSL2)
          options |= SSL_OP_NO_SSLv2;
@@ -12,9 +12,9 @@
      SSL_CTX_set_options(self->ctx, options);
  
  #ifndef OPENSSL_NO_ECDH
---- Python-2.7.9/Lib/test/test_ssl.py.~1~	2014-12-10 07:59:47.000000000 -0800
-+++ Python-2.7.9/Lib/test/test_ssl.py	2015-01-08 17:41:04.734623805 -0800
[email protected]@ -713,10 +713,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]@ -714,10 +714,7 @@
      @skip_if_broken_ubuntu_ssl
      def test_options(self):
          ctx = ssl.SSLContext(ssl.PROTOCOL_TLSv1)
@@ -26,7 +26,7 @@
          self.assertEqual(ssl.OP_ALL | ssl.OP_NO_SSLv2 | ssl.OP_NO_SSLv3,
                           ctx.options)
          if can_clear_options():
[email protected]@ -2212,7 +2209,7 @@
[email protected]@ -2222,7 +2219,7 @@
                  sys.stdout.write("\n")
              if hasattr(ssl, 'PROTOCOL_SSLv2'):
                  try:
@@ -35,7 +35,7 @@
                  except socket.error as x:
                      # this fails on some older versions of OpenSSL (0.9.7l, for instance)
                      if support.verbose:
[email protected]@ -2220,17 +2217,17 @@
[email protected]@ -2230,17 +2227,17 @@
                              " SSL2 client to SSL23 server test unexpectedly failed:\n %s\n"
                              % str(x))
              if hasattr(ssl, 'PROTOCOL_SSLv3'):
@@ -56,7 +56,7 @@
              try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_SSLv23, True, ssl.CERT_REQUIRED)
              try_protocol_combo(ssl.PROTOCOL_SSLv23, ssl.PROTOCOL_TLSv1, 'TLSv1', ssl.CERT_REQUIRED)
  
[email protected]@ -2262,7 +2259,8 @@
[email protected]@ -2272,7 +2269,8 @@
              try_protocol_combo(ssl.PROTOCOL_SSLv3, ssl.PROTOCOL_TLSv1, False)
              if no_sslv2_implies_sslv3_hello():
                  # No SSLv2 => client will use an SSLv3 hello on recent OpenSSLs
--- a/components/python/python27/patches/23-doctest.patch	Wed Jul 22 05:12:12 2015 -0700
+++ b/components/python/python27/patches/23-doctest.patch	Fri Jul 24 09:56:22 2015 -0700
@@ -1,21 +1,21 @@
 This patch was developed in-house and has been submitted upstream:
 http://bugs.python.org/issue23584
 
---- Python-2.7.9/Lib/test/test_doctest.py.~1~	2015-02-27 13:14:35.000000000 -0800
-+++ Python-2.7.9/Lib/test/test_doctest.py	2015-03-04 08:19:15.863620533 -0800
[email protected]@ -2581,7 +2581,7 @@
-     >>> import tempfile, os
+--- Python-2.7.10rc1/Lib/test/test_doctest.py.~1~	2015-05-18 14:53:39.203980905 -0700
++++ Python-2.7.10rc1/Lib/test/test_doctest.py	2015-05-18 14:56:30.278638705 -0700
[email protected]@ -2582,7 +2582,7 @@
      >>> fn = tempfile.mktemp()
-     >>> open(fn, 'w').write('Test:\r\n\r\n  >>> x = 1 + 1\r\n\r\nDone.\r\n')
+     >>> with open(fn, 'wb') as f:
+     ...     f.write('Test:\r\n\r\n  >>> x = 1 + 1\r\n\r\nDone.\r\n')
 -    >>> doctest.testfile(fn, False)
 +    >>> doctest.testfile(fn, False, verbose=False)
      TestResults(failed=0, attempted=1)
      >>> os.remove(fn)
  
[email protected]@ -2589,7 +2589,7 @@
- 
[email protected]@ -2591,7 +2591,7 @@
      >>> fn = tempfile.mktemp()
-     >>> open(fn, 'w').write('Test:\n\n  >>> x = 1 + 1\n\nDone.\n')
+     >>> with open(fn, 'wb') as f:
+     ...     f.write('Test:\n\n  >>> x = 1 + 1\n\nDone.\n')
 -    >>> doctest.testfile(fn, False)
 +    >>> doctest.testfile(fn, False, verbose=False)
      TestResults(failed=0, attempted=1)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/python/python27/patches/25-test__locale.patch	Fri Jul 24 09:56:22 2015 -0700
@@ -0,0 +1,24 @@
+This patch comes from upstream: http://bugs.python.org/issue24299
+
+--- Python-2.7.10/Lib/test/test__locale.py	Tue May 26 01:35:54 2015 -0700
++++ Python-2.7.10/Lib/test/test__locale.py	Wed May 27 21:23:02 2015 +0300
[email protected]@ -23,7 +23,8 @@ candidate_locales = ['es_UY', 'fr_FR', '
+     'de_DE', 'sr_YU', 'br_FR', 'nl_BE', 'sv_FI', 'pl_PL', 'fr_CA', 'fo_FO',
+     'bs_BA', 'fr_LU', 'kl_GL', 'fa_IR', 'de_BE', 'sv_SE', 'it_CH', 'uk_UA',
+     'eu_ES', 'vi_VN', 'af_ZA', 'nb_NO', 'en_DK', 'tg_TJ', 'ps_AF.UTF-8', 'en_US',
+-    'es_ES.ISO8859-1', 'fr_FR.ISO8859-15', 'ru_RU.KOI8-R', 'ko_KR.eucKR']
++    'fr_FR.ISO8859-1', 'fr_FR.UTF-8', '[email protected]',
++    'ru_RU.KOI8-R', 'ko_KR.eucKR']
+ 
+ # Workaround for MSVC6(debug) crash bug
+ if "MSC v.1200" in sys.version:
[email protected]@ -37,8 +38,8 @@ if "MSC v.1200" in sys.version:
+ # value is not known, use '' .
+ known_numerics = {
+     'en_US': ('.', ','),
+-    'fr_FR' : (',', ' '),
+     'de_DE' : (',', '.'),
++    'fr_FR.UTF-8' : (',', ' '),
+     'ps_AF.UTF-8' : ('\xd9\xab', '\xd9\xac'),
+ }
+ 
--- a/components/python/python27/python-27-tests.p5m	Wed Jul 22 05:12:12 2015 -0700
+++ b/components/python/python27/python-27-tests.p5m	Fri Jul 24 09:56:22 2015 -0700
@@ -221,7 +221,6 @@
 file path=usr/lib/python2.7/idlelib/idle_test/test_textview.py
 file path=usr/lib/python2.7/idlelib/idle_test/test_warning.py
 file path=usr/lib/python2.7/idlelib/idle_test/test_widgetredir.py
-file path=usr/lib/python2.7/idlelib/testcode.py
 file path=usr/lib/python2.7/json/tests/__init__.py
 file path=usr/lib/python2.7/json/tests/test_check_circular.py
 file path=usr/lib/python2.7/json/tests/test_decode.py
@@ -516,7 +515,7 @@
 file path=usr/lib/python2.7/test/decimaltestdata/tointegral.decTest
 file path=usr/lib/python2.7/test/decimaltestdata/tointegralx.decTest
 file path=usr/lib/python2.7/test/decimaltestdata/xor.decTest
-file path=usr/lib/python2.7/test/dh512.pem
+file path=usr/lib/python2.7/test/dh1024.pem
 file path=usr/lib/python2.7/test/dlpitest.py
 file path=usr/lib/python2.7/test/doctest_aliases.py
 file path=usr/lib/python2.7/test/double_const.py
@@ -943,6 +942,7 @@
 file path=usr/lib/python2.7/test/test_threading_local.py
 file path=usr/lib/python2.7/test/test_threadsignals.py
 file path=usr/lib/python2.7/test/test_time.py
+file path=usr/lib/python2.7/test/test_timeit.py
 file path=usr/lib/python2.7/test/test_timeout.py
 file path=usr/lib/python2.7/test/test_tk.py
 file path=usr/lib/python2.7/test/test_tokenize.py
@@ -1021,5 +1021,20 @@
 file path=usr/lib/python2.7/test/xmltestdata/test.xml.out
 file path=usr/lib/python2.7/test/xmltests.py
 file path=usr/lib/python2.7/test/zipdir.zip
+file path=usr/lib/python2.7/unittest/test/__init__.py
+file path=usr/lib/python2.7/unittest/test/dummy.py
+file path=usr/lib/python2.7/unittest/test/support.py
+file path=usr/lib/python2.7/unittest/test/test_assertions.py
+file path=usr/lib/python2.7/unittest/test/test_break.py
+file path=usr/lib/python2.7/unittest/test/test_case.py
+file path=usr/lib/python2.7/unittest/test/test_discovery.py
+file path=usr/lib/python2.7/unittest/test/test_functiontestcase.py
+file path=usr/lib/python2.7/unittest/test/test_loader.py
+file path=usr/lib/python2.7/unittest/test/test_program.py
+file path=usr/lib/python2.7/unittest/test/test_result.py
+file path=usr/lib/python2.7/unittest/test/test_runner.py
+file path=usr/lib/python2.7/unittest/test/test_setups.py
+file path=usr/lib/python2.7/unittest/test/test_skipping.py
+file path=usr/lib/python2.7/unittest/test/test_suite.py
 #
 license python27.license license=PSFv2
--- a/components/python/python27/python-27.p5m	Wed Jul 22 05:12:12 2015 -0700
+++ b/components/python/python27/python-27.p5m	Fri Jul 24 09:56:22 2015 -0700
@@ -492,8 +492,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-1.5.6-py2.py3-none-any.whl
-file path=usr/lib/python2.7/ensurepip/_bundled/setuptools-7.0-py2.py3-none-any.whl
+file path=usr/lib/python2.7/ensurepip/_bundled/pip-6.1.1-py2.py3-none-any.whl
+file path=usr/lib/python2.7/ensurepip/_bundled/setuptools-15.2-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
@@ -975,21 +975,6 @@
 file path=usr/lib/python2.7/unittest/runner.py
 file path=usr/lib/python2.7/unittest/signals.py
 file path=usr/lib/python2.7/unittest/suite.py
-file path=usr/lib/python2.7/unittest/test/__init__.py
-file path=usr/lib/python2.7/unittest/test/dummy.py
-file path=usr/lib/python2.7/unittest/test/support.py
-file path=usr/lib/python2.7/unittest/test/test_assertions.py
-file path=usr/lib/python2.7/unittest/test/test_break.py
-file path=usr/lib/python2.7/unittest/test/test_case.py
-file path=usr/lib/python2.7/unittest/test/test_discovery.py
-file path=usr/lib/python2.7/unittest/test/test_functiontestcase.py
-file path=usr/lib/python2.7/unittest/test/test_loader.py
-file path=usr/lib/python2.7/unittest/test/test_program.py
-file path=usr/lib/python2.7/unittest/test/test_result.py
-file path=usr/lib/python2.7/unittest/test/test_runner.py
-file path=usr/lib/python2.7/unittest/test/test_setups.py
-file path=usr/lib/python2.7/unittest/test/test_skipping.py
-file path=usr/lib/python2.7/unittest/test/test_suite.py
 file path=usr/lib/python2.7/unittest/util.py
 file path=usr/lib/python2.7/urllib.py
 file path=usr/lib/python2.7/urllib2.py
--- a/components/python/python27/python27.license	Wed Jul 22 05:12:12 2015 -0700
+++ b/components/python/python27/python27.license	Fri Jul 24 09:56:22 2015 -0700
@@ -17,8 +17,8 @@
 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 Python Software Foundation; All Rights Reserved" are retained
-in Python alone or in any derivative version prepared by Licensee.
+2011, 2012, 2013, 2014, 2015 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
--- a/components/python/python27/test/results-32.master	Wed Jul 22 05:12:12 2015 -0700
+++ b/components/python/python27/test/results-32.master	Fri Jul 24 09:56:22 2015 -0700
@@ -1,4 +1,4 @@
-358 tests OK.
+359 tests OK.
 3 tests failed:
     test_ctypes test_multiprocessing test_re
 39 tests skipped:
@@ -15,7 +15,7 @@
     test_bsddb3 test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp
     test_codecmaps_kr test_codecmaps_tw test_gdb test_ossaudiodev
     test_sunaudiodev
-358 tests OK.
+359 tests OK.
 3 tests failed:
     test_ctypes test_multiprocessing test_re
 39 tests skipped:
--- a/components/python/python27/test/results-64.master	Wed Jul 22 05:12:12 2015 -0700
+++ b/components/python/python27/test/results-64.master	Fri Jul 24 09:56:22 2015 -0700
@@ -1,4 +1,4 @@
-356 tests OK.
+357 tests OK.
 3 tests failed:
     test_ctypes test_distutils test_re
 41 tests skipped:
@@ -16,7 +16,7 @@
     test_bsddb3 test_codecmaps_cn test_codecmaps_hk test_codecmaps_jp
     test_codecmaps_kr test_codecmaps_tw test_dl test_gdb
     test_ossaudiodev test_sunaudiodev
-356 tests OK.
+357 tests OK.
 3 tests failed:
     test_ctypes test_distutils test_re
 41 tests skipped: