23858073 Upgrade Python 2.7 line to 2.7.12
authorJohn Beck <John.Beck@Oracle.COM>
Thu, 21 Jul 2016 12:51:35 -0700
changeset 6445 0edecb568b2e
parent 6442 f900f128dbb9
child 6446 b54de573b4e9
23858073 Upgrade Python 2.7 line to 2.7.12
components/python/python27/Makefile
components/python/python27/patches/00-bits.patch
components/python/python27/patches/01-ext-stdio.patch
components/python/python27/patches/02-setup.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/12-studio-profile.patch
components/python/python27/patches/14-py_db.patch
components/python/python27/patches/16-ossaudiodev.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/23-doctest.patch
components/python/python27/patches/26-sslv2.patch
components/python/python27/patches/30-zipimport.patch
components/python/python27/patches/31-smtplib.patch
components/python/python27/python-27-tests.p5m
components/python/python27/python-27.p5m
--- a/components/python/python27/Makefile	Tue Jul 19 15:22:15 2016 +0200
+++ b/components/python/python27/Makefile	Thu Jul 21 12:51:35 2016 -0700
@@ -27,17 +27,17 @@
 PATH=/usr/bin:/usr/gnu/bin:/usr/sbin
 
 COMPONENT_NAME=		Python
-COMPONENT_VERSION=	2.7.11
+COMPONENT_VERSION=	2.7.12
 COMPONENT_PROJECT_URL=	http://python.org/
 COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.xz
 COMPONENT_ARCHIVE_HASH=	\
-    sha256:962b4c45af50124ea61f11a30deb4342fc0bc21126790fa1d7f6c79809413f46
+    sha256:d7837121dd5652a05fef807c361909d255d173280c4e1a4ded94d73d80a1f978
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)ftp/python/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
 COMPONENT_SIG_URL=	$(COMPONENT_ARCHIVE_URL).asc
 COMPONENT_BUGDB=	utility/python
 
-TPNO=			25977
+TPNO=			29996
 
 include $(WS_MAKE_RULES)/prep.mk
 include $(WS_MAKE_RULES)/configure.mk
--- a/components/python/python27/patches/00-bits.patch	Tue Jul 19 15:22:15 2016 +0200
+++ b/components/python/python27/patches/00-bits.patch	Thu Jul 21 12:51:35 2016 -0700
@@ -13,7 +13,7 @@
  
  AC_REVISION($Revision$)
  AC_INIT(python, PYTHON_VERSION, http://bugs.python.org/)
-@@ -2143,12 +2143,6 @@
+@@ -2207,12 +2207,6 @@
  if test -z "$CCSHARED"
  then
  	case $ac_sys_system/$ac_sys_release in
--- a/components/python/python27/patches/01-ext-stdio.patch	Tue Jul 19 15:22:15 2016 +0200
+++ b/components/python/python27/patches/01-ext-stdio.patch	Thu Jul 21 12:51:35 2016 -0700
@@ -1,10 +1,10 @@
 This patch provides extended file stdio support.
 As it is Solaris-specific, it is not suitable for upstream.
 
---- Python-2.7.1/Modules/python.c.orig	Tue Jun 21 21:35:45 2011
-+++ Python-2.7.1/Modules/python.c	Tue Jun 21 21:39:29 2011
+--- Python-2.7.12/Modules/python.c.~1~	2016-06-25 14:49:31.000000000 -0700
++++ Python-2.7.12/Modules/python.c	2016-07-07 13:39:38.170867069 -0700
 @@ -6,6 +6,13 @@
- #include <floatingpoint.h>
+ #include <fenv.h>
  #endif
  
 +#if defined(sun) && defined(__SVR4) && !defined(_LP64)
@@ -17,9 +17,9 @@
  int
  main(int argc, char **argv)
  {
-@@ -20,5 +27,18 @@
- 	m = fpgetmask();
- 	fpsetmask(m & ~FP_X_OFL);
+@@ -17,5 +24,18 @@
+ #ifdef __FreeBSD__
+ 	fedisableexcept(FE_OVERFLOW);
  #endif
 +#ifdef USE_EXTENDED_FILE_STDIO
 +	/*
--- a/components/python/python27/patches/02-setup.patch	Tue Jul 19 15:22:15 2016 +0200
+++ b/components/python/python27/patches/02-setup.patch	Thu Jul 21 12:51:35 2016 -0700
@@ -1,8 +1,8 @@
 This patch modifies the setup script to support Solaris.
 As it is Solaris-specific, it is not suitable for upstream.
 
---- Python-2.7.9/setup.py.~1~	2014-12-10 08:00:01.000000000 -0800
-+++ Python-2.7.9/setup.py	2015-02-09 18:26:09.100336009 -0800
+--- Python-2.7.12/setup.py.~1~	2016-06-25 14:49:32.000000000 -0700
++++ Python-2.7.12/setup.py	2016-07-07 13:41:05.283500122 -0700
 @@ -6,6 +6,7 @@
  import sys, os, imp, re, optparse
  from glob import glob
@@ -11,7 +11,7 @@
  import sysconfig
  
  from distutils import log
-@@ -438,10 +439,13 @@
+@@ -454,10 +455,13 @@
              os.unlink(tmpfile)
  
      def detect_modules(self):
@@ -28,7 +28,7 @@
          if cross_compiling:
              self.add_gcc_paths()
          self.add_multiarch_paths()
-@@ -765,6 +769,13 @@
+@@ -785,6 +789,13 @@
                                                       ['/usr/lib/termcap'],
                                                       'termcap'):
                  readline_libs.append('termcap')
@@ -42,7 +42,7 @@
              exts.append( Extension('readline', ['readline.c'],
                                     library_dirs=['/usr/lib/termcap'],
                                     extra_link_args=readline_extra_link_args,
-@@ -786,7 +797,7 @@
+@@ -806,7 +817,7 @@
          # socket(2)
          exts.append( Extension('_socket', ['socketmodule.c', 'timemodule.c'],
                                 depends=['socketmodule.h'],
@@ -51,7 +51,7 @@
          # Detect SSL support for the socket module (via _ssl)
          search_for_ssl_incs_in = [
                                '/usr/local/ssl/include',
-@@ -1350,8 +1361,11 @@
+@@ -1370,8 +1381,11 @@
                  # _curses_panel.so must link with panelw.
                  panel_library = 'panelw'
              curses_libs = [curses_library]
@@ -65,7 +65,7 @@
              exts.append( Extension('_curses', ['_cursesmodule.c'],
                                     include_dirs = curses_incs,
                                     libraries = curses_libs) )
-@@ -1373,9 +1387,21 @@
+@@ -1393,9 +1407,21 @@
          # If the curses module is enabled, check for the panel module
          if (module_enabled(exts, '_curses') and
              self.compiler.find_library_file(lib_dirs, panel_library)):
@@ -88,7 +88,7 @@
          else:
              missing.append('_curses_panel')
  
-@@ -1587,9 +1613,14 @@
+@@ -1607,9 +1633,14 @@
                  sysconfig.get_config_var('POSIX_SEMAPHORES_NOT_ENABLED')):
                  multiprocessing_srcs.append('_multiprocessing/semaphore.c')
  
@@ -103,7 +103,7 @@
                                      include_dirs=["Modules/_multiprocessing"]))
          else:
              missing.append('_multiprocessing')
-@@ -2083,7 +2114,8 @@
+@@ -2103,7 +2134,8 @@
              # this option. If you want to compile ctypes with the Sun
              # compiler, please research a proper solution, instead of
              # finding some -z option for the Sun compiler.
--- a/components/python/python27/patches/04-solaris-64-bit.patch	Tue Jul 19 15:22:15 2016 +0200
+++ b/components/python/python27/patches/04-solaris-64-bit.patch	Thu Jul 21 12:51:35 2016 -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.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
-@@ -1292,6 +1292,57 @@
+--- Python-2.7.12/Python/import.c.~1~	2016-06-25 14:49:32.000000000 -0700
++++ Python-2.7.12/Python/import.c	2016-07-07 13:43:53.807164009 -0700
+@@ -1310,6 +1310,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)
-@@ -1306,11 +1357,10 @@
+@@ -1324,11 +1375,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;
  
-@@ -1517,15 +1567,17 @@
+@@ -1535,15 +1585,17 @@
                  }
              }
          }
@@ -125,7 +125,7 @@
  #if defined(PYOS_OS2) && defined(HAVE_DYNAMIC_LOADING)
              /* OS/2 limits DLLs to 8 character names (w/o
                 extension)
-@@ -1566,21 +1618,20 @@
+@@ -1584,21 +1636,20 @@
                      fp = NULL;
                  }
              }
--- a/components/python/python27/patches/05-dtrace.patch	Tue Jul 19 15:22:15 2016 +0200
+++ b/components/python/python27/patches/05-dtrace.patch	Thu Jul 21 12:51:35 2016 -0700
@@ -7,9 +7,9 @@
 Follow http://bugs.python.org/issue13405 for plans to get it
 integrated into the main tree.
 
---- Python-2.7.9/Makefile.pre.in.~1~	2014-12-10 07:59:50.000000000 -0800
-+++ Python-2.7.9/Makefile.pre.in	2014-12-11 09:17:26.137440092 -0800
-@@ -225,6 +225,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 @@
  # Used of signalmodule.o is not available
  SIGNAL_OBJS=	@SIGNAL_OBJS@
  
@@ -17,7 +17,7 @@
  
  ##########################################################################
  # Grammar
-@@ -358,6 +359,7 @@
+@@ -366,6 +367,7 @@
  		Python/formatter_unicode.o \
  		Python/formatter_string.o \
  		Python/$(DYNLOADFILE) \
@@ -25,7 +25,7 @@
  		$(LIBOBJS) \
  		$(MACHDEP_OBJS) \
  		$(THREADOBJ)
-@@ -707,6 +709,18 @@
+@@ -763,6 +765,18 @@
  Python/formatter_string.o: $(srcdir)/Python/formatter_string.c \
  				$(STRINGLIB_HEADERS)
  
@@ -56,7 +56,7 @@
      PyObject *f_localsplus[1];	/* locals+stack, dynamically sized */
 --- Python-2.7.6/Objects/frameobject.c.~1~	2013-11-09 23:36:41.000000000 -0800
 +++ Python-2.7.6/Objects/frameobject.c	2014-05-14 12:56:06.970076859 -0700
-@@ -738,6 +738,7 @@
+@@ -736,6 +736,7 @@
      f->f_tstate = tstate;
  
      f->f_lasti = -1;
@@ -421,7 +421,7 @@
 +#pragma D attributes Evolving/Evolving/Common provider python args
 --- 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
-@@ -620,7 +620,7 @@
+@@ -635,7 +635,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	Tue Jul 19 15:22:15 2016 +0200
+++ b/components/python/python27/patches/06-ucred.patch	Thu Jul 21 12:51:35 2016 -0700
@@ -396,7 +396,7 @@
 +}
 --- 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
-@@ -1563,6 +1563,13 @@
+@@ -1583,6 +1583,13 @@
          else:
              missing.append('dl')
  
--- a/components/python/python27/patches/07-dlpi.patch	Tue Jul 19 15:22:15 2016 +0200
+++ b/components/python/python27/patches/07-dlpi.patch	Thu Jul 21 12:51:35 2016 -0700
@@ -1211,7 +1211,7 @@
 +}
 --- 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
-@@ -1570,6 +1570,12 @@
+@@ -1590,6 +1590,12 @@
              exts.append( Extension('ucred', ['ucred.c'],
                                     libraries = ['tsol']) )
  
--- a/components/python/python27/patches/09-rbac.patch	Tue Jul 19 15:22:15 2016 +0200
+++ b/components/python/python27/patches/09-rbac.patch	Thu Jul 21 12:51:35 2016 -0700
@@ -1255,7 +1255,7 @@
 +};
 --- 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
-@@ -1576,6 +1576,22 @@
+@@ -1596,6 +1596,22 @@
              exts.append( Extension('dlpi', ['dlpimodule.c'],
                                     libraries = ['dlpi']) )
  
--- a/components/python/python27/patches/10-cflags.patch	Tue Jul 19 15:22:15 2016 +0200
+++ b/components/python/python27/patches/10-cflags.patch	Thu Jul 21 12:51:35 2016 -0700
@@ -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
-@@ -1089,7 +1089,7 @@
+@@ -1106,7 +1106,7 @@
  	;;
  
      *)
--- a/components/python/python27/patches/12-studio-profile.patch	Tue Jul 19 15:22:15 2016 +0200
+++ b/components/python/python27/patches/12-studio-profile.patch	Thu Jul 21 12:51:35 2016 -0700
@@ -4,26 +4,26 @@
 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.11rc1/Makefile.pre.in.~2~	2015-12-03 14:13:57.531760204 -0800
-+++ Python-2.7.11rc1/Makefile.pre.in	2015-12-03 14:13:57.632627371 -0800
-@@ -209,7 +209,7 @@
- TCLTK_LIBS=	@TCLTK_LIBS@
- 
+--- 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 @@
  # The task to run while instrument when building the profile-opt target
--PROFILE_TASK=-m test.regrtest --pgo
-+PROFILE_TASK=	$(srcdir)/Tools/pybench/pybench.py -n 2 --with-gc --with-syscheck
+ # 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.
+-PROFILE_TASK=-m test.regrtest --pgo -x test_asyncore test_gdb test_multiprocessing test_subprocess
++PROFILE_TASK= $(srcdir)/Tools/pybench/pybench.py -n 2 --with-gc --with-syscheck
  
- # === Definitions added by makesetup ===
- 
-@@ -447,22 +447,31 @@
+ # report files for gcov / lcov coverage report
+ COVERAGE_INFO=	$(abs_builddir)/coverage.info
+@@ -455,24 +455,33 @@
  	$(MAKE) profile-removal
  
  build_all_generate_profile:
--	$(MAKE) all CFLAGS="$(CFLAGS) $(PGO_PROF_GEN_FLAG)" LDFLAGS="$(LDFLAGS) $(PGO_PROF_GEN_FLAG)" LIBS="$(LIBS)"
+-	$(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)" \
-+	    CFLAGS="$(CFLAGS) -xprofile=collect:$(XPROFILE_DIR)" \
-+	    LDFLAGS="$(LDFLAGS) -xprofile=collect:$(XPROFILE_DIR)" \
-+	    BLDSHARED="$(BLDSHARED) -xprofile=collect:$(XPROFILE_DIR)"
++            CFLAGS="$(CFLAGS) -xprofile=collect:$(XPROFILE_DIR)" \
++            LDFLAGS="$(LDFLAGS) -xprofile=collect:$(XPROFILE_DIR)" \
++            BLDSHARED="$(BLDSHARED) -xprofile=collect:$(XPROFILE_DIR)"
  
  run_profile_task:
  	: # FIXME: can't run for a cross build
@@ -34,30 +34,33 @@
  	$(LLVM_PROF_MERGER)
  
  build_all_use_profile:
--	$(MAKE) all CFLAGS="$(CFLAGS) $(PGO_PROF_USE_FLAG)"
+-	$(MAKE) all CFLAGS="$(CFLAGS) $(PGO_PROF_USE_FLAG) @LTOFLAGS@" LDFLAGS="$(LDFLAGS) @LTOFLAGS@"
 +	$(MAKE) all CC="$(CC) -xprofile=use:$(XPROFILE_DIR)" \
-+	    CFLAGS="$(CFLAGS) -xprofile=use:$(XPROFILE_DIR)" \
-+	    LDFLAGS="$(LDFLAGS) -xprofile=use:$(XPROFILE_DIR)" \
-+	    BLDSHARED="$(BLDSHARED) -xprofile=use:$(XPROFILE_DIR)"
++            CFLAGS="$(CFLAGS) -xprofile=use:$(XPROFILE_DIR)" \
++            LDFLAGS="$(LDFLAGS) -xprofile=use:$(XPROFILE_DIR)" \
++            BLDSHARED="$(BLDSHARED) -xprofile=use:$(XPROFILE_DIR)"
  
+ # Compile and run with gcov
+ .PHONY=coverage coverage-lcov coverage-report
  coverage:
  	@echo "Building with support for coverage checking:"
- 	$(MAKE) clean
+ 	$(MAKE) clean profile-removal
 -	$(MAKE) all CFLAGS="$(CFLAGS) -O0 -pg -fprofile-arcs -ftest-coverage" LIBS="$(LIBS) -lgcov"
 +	$(MAKE) all CC="$(CC) -xprofile=tcov" \
-+	    CFLAGS="$(CFLAGS) -xO1 -xprofile=tcov" \
-+	    LDFLAGS="$(LDFLAGS) -xprofile=tcov" \
-+	    BLDSHARED="$(BLDSHARED) -xprofile=tcov"
++            CFLAGS="$(CFLAGS) -xO1 -xprofile=tcov" \
++            LDFLAGS="$(LDFLAGS) -xprofile=tcov" \
++            BLDSHARED="$(BLDSHARED) -xprofile=tcov"
  
- 
- # Build the interpreter
-@@ -1362,8 +1371,7 @@
+ coverage-lcov:
+ 	@echo "Creating Coverage HTML report with LCOV:"
+@@ -1422,9 +1431,7 @@
  	-rm -rf build
  
  profile-removal:
 -	find . -name '*.gc??' -exec rm -f {} ';'
 -	find . -name '*.profclang?' -exec rm -f {} ';'
-+	find . -name '.profile' -exec rm -rf {} ';'
+-	find . -name '*.dyn' -exec rm -f {} ';'
++	find . -name '.profile' -exec rm -f {} ';'
  
  clobber: clean profile-removal
  	-rm -f $(BUILDPYTHON) $(PGEN) $(LIBRARY) $(LDLIBRARY) $(DLLLIBRARY) \
--- a/components/python/python27/patches/14-py_db.patch	Tue Jul 19 15:22:15 2016 +0200
+++ b/components/python/python27/patches/14-py_db.patch	Thu Jul 21 12:51:35 2016 -0700
@@ -1,9 +1,9 @@
 This patch adds Python debugger support.  It may be contributed upstream at
 some point, but the suitability (or lack thereof) has not yet been determined.
 
---- Python-2.7.11rc1/Makefile.pre.in.~3~	2015-12-03 14:15:04.499799986 -0800
-+++ Python-2.7.11rc1/Makefile.pre.in	2015-12-03 14:15:04.524821613 -0800
-@@ -424,7 +424,7 @@
+--- 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 @@
  
  # Default target
  all:		build_all
@@ -12,7 +12,7 @@
  
  # Compile a binary with profile guided optimization.
  profile-opt:
-@@ -821,6 +821,15 @@
+@@ -877,6 +877,15 @@
  
  $(LIBRARY_OBJS) $(MODOBJS) Modules/python.o: $(PYTHON_HEADERS)
  
@@ -28,7 +28,7 @@
  
  ######################################################################
  
-@@ -885,7 +894,7 @@
+@@ -941,7 +950,7 @@
  		$(TESTPYTHON) $(TESTPROG) $(MEMTESTOPTS)
  
  # Install everything
--- a/components/python/python27/patches/16-ossaudiodev.patch	Tue Jul 19 15:22:15 2016 +0200
+++ b/components/python/python27/patches/16-ossaudiodev.patch	Thu Jul 21 12:51:35 2016 -0700
@@ -49,7 +49,7 @@
  }
 --- 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
-@@ -1664,8 +1664,8 @@
+@@ -1684,8 +1684,8 @@
          else:
              missing.append('linuxaudiodev')
  
--- a/components/python/python27/patches/20-bsddb-harmful.patch	Tue Jul 19 15:22:15 2016 +0200
+++ b/components/python/python27/patches/20-bsddb-harmful.patch	Thu Jul 21 12:51:35 2016 -0700
@@ -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
-@@ -1034,7 +1034,7 @@
+@@ -1094,7 +1094,7 @@
  		ensurepip ensurepip/_bundled \
  		json json/tests \
  		sqlite3 sqlite3/test \
@@ -16,7 +16,7 @@
  		ctypes ctypes/test ctypes/macholib \
 --- 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
-@@ -1073,7 +1073,8 @@
+@@ -1093,7 +1093,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	Tue Jul 19 15:22:15 2016 +0200
+++ b/components/python/python27/patches/21-disable-sslv3.patch	Thu Jul 21 12:51:35 2016 -0700
@@ -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
-@@ -2222,7 +2219,7 @@
+@@ -2290,7 +2290,7 @@
                  sys.stdout.write("\n")
              if hasattr(ssl, 'PROTOCOL_SSLv2'):
                  try:
--- a/components/python/python27/patches/22-default-lib-path.patch	Tue Jul 19 15:22:15 2016 +0200
+++ b/components/python/python27/patches/22-default-lib-path.patch	Thu Jul 21 12:51:35 2016 -0700
@@ -1,9 +1,9 @@
 This patch was developed in-house.  It has been submitted upstream:
 http://bugs.python.org/issue23287
 
---- Python-2.7.9/Lib/ctypes/util.py.~1~	2014-12-10 07:59:34.000000000 -0800
-+++ Python-2.7.9/Lib/ctypes/util.py	2015-01-20 15:22:03.139588641 -0800
-@@ -182,22 +182,11 @@
+--- 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 @@
  
      elif sys.platform == "sunos5":
  
@@ -18,6 +18,7 @@
              else:
 -                cmd = 'env LC_ALL=C /usr/bin/crle 2>/dev/null'
 -
+-            paths = None
 -            for line in os.popen(cmd).readlines():
 -                line = line.strip()
 -                if line.startswith('Default Library Path (ELF):'):
@@ -29,7 +30,7 @@
  
              for dir in paths.split(":"):
                  libfile = os.path.join(dir, "lib%s.so" % name)
-@@ -207,7 +196,7 @@
+@@ -202,7 +190,7 @@
              return None
  
          def find_library(name, is64 = False):
--- a/components/python/python27/patches/23-doctest.patch	Tue Jul 19 15:22:15 2016 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-This patch was developed in-house and has been submitted upstream:
-http://bugs.python.org/issue23584
-
---- 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
-@@ -2582,7 +2582,7 @@
-     >>> fn = tempfile.mktemp()
-     >>> 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)
- 
-@@ -2591,7 +2591,7 @@
-     >>> fn = tempfile.mktemp()
-     >>> 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)
-     >>> os.remove(fn)
- 
--- a/components/python/python27/patches/26-sslv2.patch	Tue Jul 19 15:22:15 2016 +0200
+++ b/components/python/python27/patches/26-sslv2.patch	Thu Jul 21 12:51:35 2016 -0700
@@ -3,7 +3,7 @@
 
 --- 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
-@@ -24,6 +24,9 @@
+@@ -25,6 +25,9 @@
  ssl = support.import_module("ssl")
  
  PROTOCOLS = sorted(ssl._PROTOCOL_NAMES)
--- a/components/python/python27/patches/30-zipimport.patch	Tue Jul 19 15:22:15 2016 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-This patch comes from upstream:
-
-https://bugs.python.org/issue26171
-
---- a/Modules/zipimport.c
-+++ b/Modules/zipimport.c
-@@ -895,6 +895,11 @@ get_data(char *archive, PyObject *toc_en
-         PyMarshal_ReadShortFromFile(fp);        /* local header size */
-     file_offset += l;           /* Start of file data */
- 
-+    if (data_size > LONG_MAX - 1) {
-+        fclose(fp);
-+        PyErr_NoMemory();
-+        return NULL;
-+    }
-     raw_data = PyString_FromStringAndSize((char *)NULL, compress == 0 ?
-                                           data_size : data_size + 1);
-     if (raw_data == NULL) {
--- a/components/python/python27/patches/31-smtplib.patch	Tue Jul 19 15:22:15 2016 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-This patch comes from upstream:
-
-https://hg.python.org/cpython/rev/d590114c2394
-
---- a/Lib/smtplib.py	Sun Nov 08 01:03:52 2015 -0500
-+++ b/Lib/smtplib.py	Sat Jun 11 13:18:56 2016 -0700
-@@ -656,6 +656,11 @@
-             self.ehlo_resp = None
-             self.esmtp_features = {}
-             self.does_esmtp = 0
-+        else:
-+            # RFC 3207:
-+            # 501 Syntax error (no parameters allowed)
-+            # 454 TLS not available due to temporary reason
-+            raise SMTPResponseException(resp, reply)
-         return (resp, reply)
- 
-     def sendmail(self, from_addr, to_addrs, msg, mail_options=[],
--- a/components/python/python27/python-27-tests.p5m	Tue Jul 19 15:22:15 2016 +0200
+++ b/components/python/python27/python-27-tests.p5m	Thu Jul 21 12:51:35 2016 -0700
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 # python doesn't generate .pyc version of these test files.
@@ -208,8 +208,10 @@
 file path=usr/lib/python2.7/idlelib/idle_test/test_config_name.py
 file path=usr/lib/python2.7/idlelib/idle_test/test_configdialog.py
 file path=usr/lib/python2.7/idlelib/idle_test/test_delegator.py
+file path=usr/lib/python2.7/idlelib/idle_test/test_editmenu.py
 file path=usr/lib/python2.7/idlelib/idle_test/test_formatparagraph.py
 file path=usr/lib/python2.7/idlelib/idle_test/test_grep.py
+file path=usr/lib/python2.7/idlelib/idle_test/test_helpabout.py
 file path=usr/lib/python2.7/idlelib/idle_test/test_hyperparser.py
 file path=usr/lib/python2.7/idlelib/idle_test/test_idlehistory.py
 file path=usr/lib/python2.7/idlelib/idle_test/test_io.py
@@ -332,11 +334,12 @@
 file path=usr/lib/python2.7/test/badsyntax_future8.py
 file path=usr/lib/python2.7/test/badsyntax_future9.py
 file path=usr/lib/python2.7/test/badsyntax_nocaret.py
-file path=usr/lib/python2.7/test/buffer_tests.py
+file path=usr/lib/python2.7/test/capath/0e4015b9.0
 file path=usr/lib/python2.7/test/capath/4e1295a3.0
 file path=usr/lib/python2.7/test/capath/5ed36f99.0
 file path=usr/lib/python2.7/test/capath/6e88d7b8.0
 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
@@ -526,7 +529,6 @@
 file path=usr/lib/python2.7/test/formatfloat_testcases.txt
 file path=usr/lib/python2.7/test/gdb_sample.py
 file path=usr/lib/python2.7/test/greyrgb.uue
-file path=usr/lib/python2.7/test/https_svn_python_org_root.pem
 file path=usr/lib/python2.7/test/ieee754.txt
 file path=usr/lib/python2.7/test/imghdrdata/python.bmp
 file path=usr/lib/python2.7/test/imghdrdata/python.gif
@@ -657,7 +659,6 @@
 file path=usr/lib/python2.7/test/test_codecmaps_tw.py
 file path=usr/lib/python2.7/test/test_codecs.py
 file path=usr/lib/python2.7/test/test_codeop.py
-file path=usr/lib/python2.7/test/test_coding.py
 file path=usr/lib/python2.7/test/test_coercion.py
 file path=usr/lib/python2.7/test/test_collections.py
 file path=usr/lib/python2.7/test/test_colorsys.py
@@ -834,15 +835,14 @@
 file path=usr/lib/python2.7/test/test_openpty.py
 file path=usr/lib/python2.7/test/test_operator.py
 file path=usr/lib/python2.7/test/test_optparse.py
+file path=usr/lib/python2.7/test/test_ordered_dict.py
 file path=usr/lib/python2.7/test/test_os.py
 file path=usr/lib/python2.7/test/test_ossaudiodev.py
 file path=usr/lib/python2.7/test/test_parser.py
 file path=usr/lib/python2.7/test/test_pdb.py
 file path=usr/lib/python2.7/test/test_peepholer.py
 file path=usr/lib/python2.7/test/test_pep247.py
-file path=usr/lib/python2.7/test/test_pep263.py
 file path=usr/lib/python2.7/test/test_pep277.py
-file path=usr/lib/python2.7/test/test_pep292.py
 file path=usr/lib/python2.7/test/test_pep352.py
 file path=usr/lib/python2.7/test/test_pickle.py
 file path=usr/lib/python2.7/test/test_pickletools.py
@@ -904,6 +904,7 @@
 file path=usr/lib/python2.7/test/test_socketserver.py
 file path=usr/lib/python2.7/test/test_softspace.py
 file path=usr/lib/python2.7/test/test_sort.py
+file path=usr/lib/python2.7/test/test_source_encoding.py
 file path=usr/lib/python2.7/test/test_spwd.py
 file path=usr/lib/python2.7/test/test_sqlite.py
 file path=usr/lib/python2.7/test/test_ssl.py
@@ -953,6 +954,7 @@
 file path=usr/lib/python2.7/test/test_ttk_guionly.py
 file path=usr/lib/python2.7/test/test_ttk_textonly.py
 file path=usr/lib/python2.7/test/test_tuple.py
+file path=usr/lib/python2.7/test/test_turtle.py
 file path=usr/lib/python2.7/test/test_typechecks.py
 file path=usr/lib/python2.7/test/test_types.py
 file path=usr/lib/python2.7/test/test_ucn.py
--- a/components/python/python27/python-27.p5m	Tue Jul 19 15:22:15 2016 +0200
+++ b/components/python/python27/python-27.p5m	Thu Jul 21 12:51:35 2016 -0700
@@ -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-7.1.2-py2.py3-none-any.whl
-file path=usr/lib/python2.7/ensurepip/_bundled/setuptools-18.2-py2.py3-none-any.whl
+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/_uninstall.py
 file path=usr/lib/python2.7/filecmp.py
 file path=usr/lib/python2.7/fileinput.py