25429083 Upgrade Python 3.5 line to 3.5.3
authorJohn Beck <John.Beck@Oracle.COM>
Mon, 06 Feb 2017 13:54:36 -0800
changeset 7648 20e09cf3cfaa
parent 7647 3a107326b5f8
child 7649 69d7508f0d66
25429083 Upgrade Python 3.5 line to 3.5.3
components/python/python35/Makefile
components/python/python35/patches/00-dtrace.patch
components/python/python35/patches/01-bits.patch
components/python/python35/patches/03-setup.patch
components/python/python35/patches/05-studio-profile.patch
components/python/python35/patches/07-ucred.patch
components/python/python35/patches/08-dlpi.patch
components/python/python35/patches/10-rbac.patch
components/python/python35/patches/11-closerange.patch
components/python/python35/patches/12-py_db.patch
components/python/python35/patches/14-ossaudiodev.patch
components/python/python35/patches/19-SOABI.patch
components/python/python35/patches/21-default-lib-path.patch
components/python/python35/patches/22-disable-test_gdb.patch
components/python/python35/patches/26-getrandom.patch
components/python/python35/patches/31-expat.patch
components/python/python35/python-35.p5m
components/python/python35/python35.license
components/python/python35/test/results-64.master
--- a/components/python/python35/Makefile	Mon Feb 06 13:55:35 2017 -0800
+++ b/components/python/python35/Makefile	Mon Feb 06 13:54:36 2017 -0800
@@ -20,22 +20,22 @@
 #
 
 #
-# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2011, 2017, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		Python
-COMPONENT_VERSION=	3.5.2
-COMPONENT_PROJECT_URL=	http://python.org/
+COMPONENT_VERSION=	3.5.3
+COMPONENT_PROJECT_URL=	https://python.org/
 COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.xz
 COMPONENT_ARCHIVE_HASH=	\
-    sha256:0010f56100b9b74259ebcd5d4b295a32324b58b517403a10d1a2aa7cb22bca40
+    sha256:eefe2ad6575855423ab630f5b51a8ef6e5556f774584c06beab4926f930ddbb0
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)ftp/python/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
 COMPONENT_SIG_URL=	$(COMPONENT_ARCHIVE_URL).asc
 COMPONENT_BUGDB=	utility/python
 
-TPNO=			29999
+TPNO=			33493
 
 include $(WS_MAKE_RULES)/prep.mk
 include $(WS_MAKE_RULES)/configure.mk
--- a/components/python/python35/patches/00-dtrace.patch	Mon Feb 06 13:55:35 2017 -0800
+++ b/components/python/python35/patches/00-dtrace.patch	Mon Feb 06 13:54:36 2017 -0800
@@ -1013,7 +1013,7 @@
 +
 --- Python-3.5.2/Lib/test/test_sys.py.~1~	2016-06-25 14:38:37.000000000 -0700
 +++ Python-3.5.2/Lib/test/test_sys.py	2016-07-07 15:09:04.689495337 -0700
-@@ -882,6 +882,7 @@
+@@ -883,6 +883,7 @@
          self.assertEqual(sys.getsizeof(True, -1), size('') + self.longdigit)
  
      def test_objecttypes(self):
@@ -1021,7 +1021,7 @@
          # check all types defined in Objects/
          calcsize = struct.calcsize
          size = test.support.calcobjsize
-@@ -911,13 +912,17 @@
+@@ -912,13 +913,17 @@
              return inner
          check(get_cell().__closure__[0], size('P'))
          # code
@@ -1042,9 +1042,9 @@
          # complex
          check(complex(0,1), size('2d'))
          # method_descriptor (descriptor object)
---- Python-3.5.2/Makefile.pre.in.~1~	2016-06-25 14:38:37.000000000 -0700
-+++ Python-3.5.2/Makefile.pre.in	2016-07-07 15:10:50.572816003 -0700
-@@ -57,6 +57,13 @@
+--- Python-3.5.3/Makefile.pre.in.~1~	2017-01-16 23:57:52.000000000 +0000
++++ Python-3.5.3/Makefile.pre.in	2017-01-17 10:56:57.057084254 +0000
+@@ -58,6 +58,13 @@
  # Use this to make a link between python$(VERSION) and python in $(BINDIR)
  LN=		@LN@
  
@@ -1058,7 +1058,7 @@
  # Portable install script (configure doesn't always guess right)
  INSTALL=	@INSTALL@
  INSTALL_PROGRAM=@INSTALL_PROGRAM@
-@@ -618,7 +625,7 @@
+@@ -619,7 +626,7 @@
  	$(AR) $(ARFLAGS) $@ $(MODOBJS)
  	$(RANLIB) $@
  
@@ -1067,7 +1067,7 @@
  	if test $(INSTSONAME) != $(LDLIBRARY); then \
  		$(BLDSHARED) -Wl,-h$(INSTSONAME) -o $(INSTSONAME) $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST); \
  		$(LN) -f $(INSTSONAME) $@; \
-@@ -629,9 +636,8 @@
+@@ -630,9 +637,8 @@
  libpython3.so:	libpython$(LDVERSION).so
  	$(BLDSHARED) $(NO_AS_NEEDED) -o $@ -Wl,-h$@ $^
  
@@ -1079,7 +1079,7 @@
  
  libpython$(VERSION).sl: $(LIBRARY_OBJS)
  	$(LDSHARED) -o $@ $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST)
-@@ -740,12 +746,18 @@
+@@ -737,12 +743,18 @@
  		$(MODULE_OBJS) \
  		$(SIGNAL_OBJS) \
  		$(MODOBJS) \
@@ -1098,9 +1098,9 @@
  
  Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile
  	$(CC) -c $(PY_CORE_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \
-@@ -890,6 +902,46 @@
+@@ -876,6 +888,46 @@
  Objects/typeslots.inc: $(srcdir)/Include/typeslots.h $(srcdir)/Objects/typeslots.py
- 	$(PYTHON) $(srcdir)/Objects/typeslots.py < $(srcdir)/Include/typeslots.h > Objects/typeslots.inc
+ 	$(PYTHON_FOR_GEN) $(srcdir)/Objects/typeslots.py < $(srcdir)/Include/typeslots.h Objects/typeslots.inc
  
 +$(srcdir)/Include/pydtrace.h: $(srcdir)/Include/pydtrace.d
 +	if test "$(DTRACE)" != "" ; then \
@@ -1145,7 +1145,7 @@
  ############################################################################
  # Header files
  
-@@ -1608,6 +1660,11 @@
+@@ -1595,6 +1647,11 @@
  	find build -name '*.py[co]' -exec rm -f {} ';' || true
  	-rm -f pybuilddir.txt
  	-rm -f Lib/lib2to3/*Grammar*.pickle
@@ -1155,9 +1155,9 @@
 +	rm -f Modules/gcmodule.o.ts_dtrace
 +	rm -f Objects/typeobject.o.ts_dtrace
  	-rm -f Programs/_testembed Programs/_freeze_importlib
- 	-rm -rf build
+ 	-find build -type f -a ! -name '*.gc??' -exec rm -f {} ';'
  
-@@ -1642,6 +1699,11 @@
+@@ -1633,6 +1690,11 @@
  				     -o -name '*.orig' -o -name '*.rej' \
  				     -o -name '*.bak' ')' \
  				     -exec rm -f {} ';'
@@ -1299,7 +1299,7 @@
   */
 --- Python-3.4.0/Objects/codeobject.c
 +++ Python-3.4.0/Objects/codeobject.c
-@@ -152,6 +152,37 @@
+@@ -192,6 +192,37 @@
      co->co_lnotab = lnotab;
      co->co_zombieframe = NULL;
      co->co_weakreflist = NULL;
@@ -1480,8 +1480,8 @@
      PyTypeObject *type, *base;
      destructor basedealloc;
      PyThreadState *tstate = PyThreadState_GET();
---- Python-3.5.2/Python/ceval.c.~1~	2016-06-25 14:38:38.000000000 -0700
-+++ Python-3.5.2/Python/ceval.c	2016-07-08 06:34:15.786356054 -0700
+--- Python-3.5.3/Python/ceval.c.~1~	2017-01-16 23:57:53.000000000 +0000
++++ Python-3.5.3/Python/ceval.c	2017-01-17 10:59:03.372507015 +0000
 @@ -20,6 +20,13 @@
  
  #include <ctype.h>
@@ -1619,7 +1619,7 @@
          switch (opcode) {
  
          /* BEWARE!
-@@ -3625,6 +3700,10 @@
+@@ -3640,6 +3715,10 @@
  
      /* pop frame */
  exit_eval_frame:
@@ -1630,7 +1630,7 @@
      Py_LeaveRecursiveCall();
      f->f_executing = 0;
      tstate->frame = f->f_back;
-@@ -4375,6 +4454,57 @@
+@@ -4390,6 +4469,57 @@
      return result;
  }
  
@@ -1688,7 +1688,7 @@
  PyObject *
  _PyEval_CallTracing(PyObject *func, PyObject *args)
  {
-@@ -4392,6 +4522,51 @@
+@@ -4407,6 +4537,51 @@
      return result;
  }
  
@@ -1740,8 +1740,8 @@
  /* See Objects/lnotab_notes.txt for a description of how tracing works. */
  static int
  maybe_call_line_trace(Py_tracefunc func, PyObject *obj,
---- Python-3.5.2/configure.~1~	2016-06-25 14:38:39.000000000 -0700
-+++ Python-3.5.2/configure	2016-07-08 06:36:50.661156099 -0700
+--- Python-3.5.3/configure.~1~	2017-01-16 23:57:54.000000000 +0000
++++ Python-3.5.3/configure	2017-01-17 11:00:12.674898964 +0000
 @@ -642,6 +642,11 @@
  MACHDEP_OBJS
  DYNLOADFILE
@@ -1754,7 +1754,7 @@
  THREADOBJ
  LDLAST
  USE_THREAD_MODULE
-@@ -828,6 +833,7 @@
+@@ -835,6 +840,7 @@
  with_tsc
  with_pymalloc
  with_valgrind
@@ -1762,7 +1762,7 @@
  with_fpectl
  with_libm
  with_libc
-@@ -1519,6 +1525,7 @@
+@@ -1540,6 +1546,7 @@
    --with(out)-tsc         enable/disable timestamp counter profile
    --with(out)-pymalloc    disable/enable specialized mallocs
    --with-valgrind         Enable Valgrind support
@@ -1770,7 +1770,7 @@
    --with-fpectl           enable SIGFPE catching
    --with-libm=STRING      math library
    --with-libc=STRING      C library
-@@ -11074,6 +11081,174 @@
+@@ -11181,6 +11188,174 @@
      OPT="-DDYNAMIC_ANNOTATIONS_ENABLED=1 $OPT"
  fi
  
@@ -1947,7 +1947,7 @@
  DLINCLDIR=.
 --- Python-3.5.2/configure.ac.~1~	2016-06-25 14:38:39.000000000 -0700
 +++ Python-3.5.2/configure.ac	2016-07-08 06:38:36.346837325 -0700
-@@ -3211,6 +3211,62 @@
+@@ -3277,6 +3277,62 @@
      OPT="-DDYNAMIC_ANNOTATIONS_ENABLED=1 $OPT"
  fi
  
@@ -2024,7 +2024,7 @@
     Dyld is necessary to support frameworks. */
 --- Python-3.5.2/setup.py.~1~	2016-06-25 14:38:39.000000000 -0700
 +++ Python-3.5.2/setup.py	2016-07-08 06:41:09.939900823 -0700
-@@ -690,6 +690,9 @@
+@@ -689,6 +689,9 @@
          # syslog daemon interface
          exts.append( Extension('syslog', ['syslogmodule.c']) )
  
--- a/components/python/python35/patches/01-bits.patch	Mon Feb 06 13:55:35 2017 -0800
+++ b/components/python/python35/patches/01-bits.patch	Mon Feb 06 13:54:36 2017 -0800
@@ -2,8 +2,8 @@
 # This patch addresses problems with the configure script.
 # As it is Solaris-specific, it is not suitable for upstream.
 #
---- Python-3.5.2/configure.ac.~2~	2016-07-08 06:42:00.483719423 -0700
-+++ Python-3.5.2/configure.ac	2016-07-08 06:42:00.499219410 -0700
+--- Python-3.5.3/configure.ac.~2~	2017-01-17 11:04:15.667800963 +0000
++++ Python-3.5.3/configure.ac	2017-01-17 11:04:15.683724846 +0000
 @@ -5,7 +5,7 @@
  # Set VERSION so we only need to edit in one place (i.e., here)
  m4_define(PYTHON_VERSION, 3.5)
@@ -11,9 +11,9 @@
 -AC_PREREQ(2.65)
 +AC_PREREQ(2.68)
  
- AC_INIT(python, PYTHON_VERSION, http://bugs.python.org/)
+ AC_INIT(python, PYTHON_VERSION, https://bugs.python.org/)
  
-@@ -2427,12 +2427,6 @@
+@@ -2496,12 +2496,6 @@
  if test -z "$CCSHARED"
  then
  	case $ac_sys_system/$ac_sys_release in
--- a/components/python/python35/patches/03-setup.patch	Mon Feb 06 13:55:35 2017 -0800
+++ b/components/python/python35/patches/03-setup.patch	Mon Feb 06 13:54:36 2017 -0800
@@ -1,9 +1,9 @@
 This patch modifies the setup script to support Solaris.
 As it is Solaris-specific, it is not suitable for upstream.
 
---- Python-3.5.2/setup.py.~2~	2016-07-08 06:42:55.956132475 -0700
-+++ Python-3.5.2/setup.py	2016-07-08 06:42:55.983129138 -0700
-@@ -488,12 +488,15 @@
+--- Python-3.5.3/setup.py.~2~	2017-01-17 11:05:22.740312434 +0000
++++ Python-3.5.3/setup.py	2017-01-17 11:05:22.765910178 +0000
+@@ -487,12 +487,15 @@
              return ['m']
  
      def detect_modules(self):
@@ -24,7 +24,7 @@
          # only change this for cross builds for 3.3, issues on Mageia
          if cross_compiling:
              self.add_gcc_paths()
-@@ -786,6 +789,13 @@
+@@ -785,6 +788,13 @@
                                                       ['/usr/lib/termcap'],
                                                       'termcap'):
                  readline_libs.append('termcap')
@@ -38,7 +38,7 @@
              exts.append( Extension('readline', ['readline.c'],
                                     library_dirs=['/usr/lib/termcap'],
                                     extra_link_args=readline_extra_link_args,
-@@ -809,7 +819,8 @@
+@@ -808,7 +818,8 @@
  
          # socket(2)
          exts.append( Extension('_socket', ['socketmodule.c'],
@@ -48,7 +48,7 @@
          # Detect SSL support for the socket module (via _ssl)
          search_for_ssl_incs_in = [
                                '/usr/local/ssl/include',
-@@ -1345,6 +1356,10 @@
+@@ -1344,6 +1355,10 @@
              curses_defines.append(('_XOPEN_SOURCE_EXTENDED', '1'))
  
          if curses_library.startswith('ncurses'):
@@ -59,7 +59,7 @@
              curses_libs = [curses_library]
              exts.append( Extension('_curses', ['_cursesmodule.c'],
                                     include_dirs=curses_includes,
-@@ -1369,10 +1384,32 @@
+@@ -1368,10 +1383,32 @@
          # 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)):
@@ -93,7 +93,7 @@
          else:
              missing.append('_curses_panel')
  
-@@ -1969,7 +2006,7 @@
+@@ -1968,7 +2005,7 @@
              # 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/python35/patches/05-studio-profile.patch	Mon Feb 06 13:55:35 2017 -0800
+++ b/components/python/python35/patches/05-studio-profile.patch	Mon Feb 06 13:54:36 2017 -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-3.5.2/Makefile.pre.in.~2~	2016-07-08 06:44:25.728534993 -0700
-+++ Python-3.5.2/Makefile.pre.in	2016-07-08 06:53:21.459625807 -0700
-@@ -241,7 +241,7 @@
+--- Python-3.5.3/Makefile.pre.in.~2~	2017-01-17 11:10:49.856824159 +0000
++++ Python-3.5.3/Makefile.pre.in	2017-01-17 11:10:49.919768587 +0000
+@@ -242,7 +242,7 @@
  # The task to run while instrumented 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
-@@ -512,24 +512,33 @@
+@@ -513,24 +513,33 @@
  	$(MAKE) profile-removal
  
  build_all_generate_profile:
--	$(MAKE) all CFLAGS_NODIST="$(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_NODIST="$(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_NODIST="$(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_NODIST="$(CFLAGS) $(PGO_PROF_USE_FLAG) @LTOFLAGS@" LDFLAGS="$(LDFLAGS) @LTOFLAGS@"
-+	$(MAKE) all CC="$(CC) -xprofile=use:$(XPROFILE_DIR)" \
+-	$(MAKE) @DEF_MAKE_RULE@ CFLAGS_NODIST="$(CFLAGS) $(PGO_PROF_USE_FLAG) @LTOFLAGS@" LDFLAGS="$(LDFLAGS) @LTOFLAGS@"
++	$(MAKE) @DEF_MAKE_RULE@ CC="$(CC) -xprofile=use:$(XPROFILE_DIR)" \
 +	    CFLAGS_NODIST="$(CFLAGS) -xprofile=use:$(XPROFILE_DIR)" \
 +	    LDFLAGS="$(LDFLAGS) -xprofile=use:$(XPROFILE_DIR)" \
 +	    BLDSHARED="$(BLDSHARED) -xprofile=use:$(XPROFILE_DIR)"
@@ -45,15 +45,15 @@
  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:"
-@@ -605,13 +614,9 @@
+@@ -606,13 +615,9 @@
  # -s, --silent or --quiet is always the first char.
  # Under BSD make, MAKEFLAGS might be " -s -v x=y".
  sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o
@@ -68,8 +68,8 @@
  
  # Build static library
  # avoid long command lines, same as LIBRARY_OBJS
-@@ -1669,9 +1674,7 @@
- 	-rm -rf build
+@@ -1656,9 +1661,7 @@
+ 	-find build -type f -a ! -name '*.gc??' -exec rm -f {} ';'
  
  profile-removal:
 -	find . -name '*.gc??' -exec rm -f {} ';'
--- a/components/python/python35/patches/07-ucred.patch	Mon Feb 06 13:55:35 2017 -0800
+++ b/components/python/python35/patches/07-ucred.patch	Mon Feb 06 13:54:36 2017 -0800
@@ -412,7 +412,7 @@
 +}
 --- Python-3.5.2/setup.py.~3~	2016-07-08 06:54:05.078859457 -0700
 +++ Python-3.5.2/setup.py	2016-07-08 06:54:05.130776372 -0700
-@@ -1565,6 +1565,13 @@
+@@ -1564,6 +1564,13 @@
          # Stefan Krah's _decimal module
          exts.append(self._decimal_ext())
  
--- a/components/python/python35/patches/08-dlpi.patch	Mon Feb 06 13:55:35 2017 -0800
+++ b/components/python/python35/patches/08-dlpi.patch	Mon Feb 06 13:54:36 2017 -0800
@@ -1225,7 +1225,7 @@
 +}
 --- Python-3.5.2/setup.py.~4~	2016-07-08 06:55:41.015494673 -0700
 +++ Python-3.5.2/setup.py	2016-07-08 06:55:41.034639922 -0700
-@@ -1572,6 +1572,12 @@
+@@ -1571,6 +1571,12 @@
              exts.append( Extension('ucred', ['ucred.c'],
                                     libraries = ['tsol']) )
  
--- a/components/python/python35/patches/10-rbac.patch	Mon Feb 06 13:55:35 2017 -0800
+++ b/components/python/python35/patches/10-rbac.patch	Mon Feb 06 13:54:36 2017 -0800
@@ -1285,7 +1285,7 @@
 +};
 --- Python-3.5.2/setup.py.~5~	2016-07-08 06:56:45.280312010 -0700
 +++ Python-3.5.2/setup.py	2016-07-08 06:56:45.314844079 -0700
-@@ -1578,6 +1578,22 @@
+@@ -1577,6 +1577,22 @@
              exts.append( Extension('dlpi', ['dlpimodule.c'],
                                     libraries = ['dlpi']) )
  
--- a/components/python/python35/patches/11-closerange.patch	Mon Feb 06 13:55:35 2017 -0800
+++ b/components/python/python35/patches/11-closerange.patch	Mon Feb 06 13:54:36 2017 -0800
@@ -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-3.5.2/Modules/posixmodule.c.~1~	2016-06-25 14:38:38.000000000 -0700
-+++ Python-3.5.2/Modules/posixmodule.c	2016-07-08 06:58:01.808943682 -0700
-@@ -7779,6 +7779,19 @@
+--- Python-3.5.3/Modules/posixmodule.c.~1~	2017-01-16 23:57:53.000000000 +0000
++++ Python-3.5.3/Modules/posixmodule.c	2017-01-17 11:14:01.793616905 +0000
+@@ -7806,6 +7806,19 @@
      Py_RETURN_NONE;
  }
  
@@ -23,8 +23,8 @@
  
  /*[clinic input]
  os.closerange
-@@ -7795,11 +7808,13 @@
- /*[clinic end generated code: output=70e6adb95220ba96 input=5855a3d053ebd4ec]*/
+@@ -7822,11 +7835,13 @@
+ /*[clinic end generated code: output=0ce5c20fcda681c2 input=5855a3d053ebd4ec]*/
  {
      int i;
 +    int lohi[2];
--- a/components/python/python35/patches/12-py_db.patch	Mon Feb 06 13:55:35 2017 -0800
+++ b/components/python/python35/patches/12-py_db.patch	Mon Feb 06 13:54:36 2017 -0800
@@ -1,18 +1,18 @@
 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-3.5.2/Makefile.pre.in.~3~	2016-07-08 06:59:11.325607242 -0700
-+++ Python-3.5.2/Makefile.pre.in	2016-07-08 06:59:11.467802979 -0700
-@@ -489,7 +489,7 @@
+--- Python-3.5.3/Makefile.pre.in.~3~	2017-01-17 11:17:33.079376903 +0000
++++ Python-3.5.3/Makefile.pre.in	2017-01-17 11:17:33.175322774 +0000
+@@ -490,7 +490,7 @@
  
  # Default target
- all:		build_all
+ all:		@DEF_MAKE_ALL_RULE@
 -build_all:	$(BUILDPYTHON) oldsharedmods sharedmods gdbhooks Programs/_testembed python-config
 +build_all:	$(BUILDPYTHON) oldsharedmods sharedmods gdbhooks Programs/_testembed python-config build-py_db
  
  # Compile a binary with profile guided optimization.
  profile-opt:
-@@ -707,6 +707,15 @@
+@@ -708,6 +708,15 @@
  	@mv config.c Modules
  	@echo "The Makefile was updated, you may need to re-run make."
  
@@ -28,7 +28,7 @@
  
  Modules/Setup: $(srcdir)/Modules/Setup.dist
  	@if test -f Modules/Setup; then \
-@@ -1099,7 +1108,7 @@
+@@ -1085,7 +1094,7 @@
  		$(TESTRUNNER) $(QUICKTESTOPTS)
  
  
--- a/components/python/python35/patches/14-ossaudiodev.patch	Mon Feb 06 13:55:35 2017 -0800
+++ b/components/python/python35/patches/14-ossaudiodev.patch	Mon Feb 06 13:54:36 2017 -0800
@@ -4,7 +4,7 @@
 
 --- Python-3.5.2/setup.py.~6~	2016-07-08 07:00:12.092542253 -0700
 +++ Python-3.5.2/setup.py	2016-07-08 07:00:12.150840947 -0700
-@@ -1649,7 +1649,7 @@
+@@ -1648,7 +1648,7 @@
          # End multiprocessing
  
          # Platform-specific libraries
@@ -13,9 +13,9 @@
              exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) )
          else:
              missing.append('ossaudiodev')
---- Python-3.4.0/Modules/ossaudiodev.c.~1~	2014-03-16 19:31:31.000000000 -0700
-+++ Python-3.4.0/Modules/ossaudiodev.c	2014-03-17 13:48:16.395254733 -0700
-@@ -1211,6 +1211,7 @@
+--- Python-3.5.3/Modules/ossaudiodev.c.~1~	2017-01-16 23:57:53.000000000 +0000
++++ Python-3.5.3/Modules/ossaudiodev.c	2017-01-17 11:19:22.935301990 +0000
+@@ -1214,6 +1214,7 @@
      _EXPORT_INT(m, SOUND_MIXER_MONITOR);
  #endif
  
@@ -23,7 +23,7 @@
      /* Expose all the ioctl numbers for masochists who like to do this
         stuff directly. */
      _EXPORT_INT(m, SNDCTL_COPR_HALT);
-@@ -1223,6 +1224,7 @@
+@@ -1226,6 +1227,7 @@
      _EXPORT_INT(m, SNDCTL_COPR_SENDMSG);
      _EXPORT_INT(m, SNDCTL_COPR_WCODE);
      _EXPORT_INT(m, SNDCTL_COPR_WDATA);
@@ -31,7 +31,7 @@
  #ifdef SNDCTL_DSP_BIND_CHANNEL
      _EXPORT_INT(m, SNDCTL_DSP_BIND_CHANNEL);
  #endif
-@@ -1244,8 +1246,12 @@
+@@ -1247,8 +1249,12 @@
      _EXPORT_INT(m, SNDCTL_DSP_GETSPDIF);
  #endif
      _EXPORT_INT(m, SNDCTL_DSP_GETTRIGGER);
@@ -44,7 +44,7 @@
      _EXPORT_INT(m, SNDCTL_DSP_NONBLOCK);
      _EXPORT_INT(m, SNDCTL_DSP_POST);
  #ifdef SNDCTL_DSP_PROFILE
-@@ -1265,6 +1271,7 @@
+@@ -1268,6 +1274,7 @@
      _EXPORT_INT(m, SNDCTL_DSP_STEREO);
      _EXPORT_INT(m, SNDCTL_DSP_SUBDIVIDE);
      _EXPORT_INT(m, SNDCTL_DSP_SYNC);
@@ -52,7 +52,7 @@
      _EXPORT_INT(m, SNDCTL_FM_4OP_ENABLE);
      _EXPORT_INT(m, SNDCTL_FM_LOAD_INSTR);
      _EXPORT_INT(m, SNDCTL_MIDI_INFO);
-@@ -1306,5 +1313,6 @@
+@@ -1309,5 +1316,6 @@
      _EXPORT_INT(m, SNDCTL_TMR_STOP);
      _EXPORT_INT(m, SNDCTL_TMR_TEMPO);
      _EXPORT_INT(m, SNDCTL_TMR_TIMEBASE);
--- a/components/python/python35/patches/19-SOABI.patch	Mon Feb 06 13:55:35 2017 -0800
+++ b/components/python/python35/patches/19-SOABI.patch	Mon Feb 06 13:54:36 2017 -0800
@@ -3,7 +3,7 @@
 
 --- Python-3.5.2/configure.ac.~3~	2016-07-08 07:01:17.881588483 -0700
 +++ Python-3.5.2/configure.ac	2016-07-08 07:01:18.127834605 -0700
-@@ -4494,7 +4494,7 @@
+@@ -4562,7 +4562,7 @@
  
  AC_SUBST(EXT_SUFFIX)
  case $ac_sys_system in
--- a/components/python/python35/patches/21-default-lib-path.patch	Mon Feb 06 13:55:35 2017 -0800
+++ b/components/python/python35/patches/21-default-lib-path.patch	Mon Feb 06 13:54:36 2017 -0800
@@ -1,29 +1,39 @@
 This patch was developed in-house.  It has been submitted upstream:
 http://bugs.python.org/issue23287
 
---- Python-3.5.2/Lib/ctypes/util.py.~1~	2016-06-25 14:38:35.000000000 -0700
-+++ Python-3.5.2/Lib/ctypes/util.py	2016-07-08 07:06:45.026306406 -0700
-@@ -175,24 +175,11 @@
+--- Python-3.5.3/Lib/ctypes/util.py.~1~	2016-12-17 12:05:05.000000000 +0000
++++ Python-3.5.3/Lib/ctypes/util.py	2016-12-19 08:44:16.426321564 +0000
+@@ -214,34 +214,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
--            with contextlib.closing(os.popen(cmd)) as f:
--                for line in f.readlines():
+-            try:
+-                proc = subprocess.Popen(args,
+-                                        stdout=subprocess.PIPE,
+-                                        stderr=subprocess.DEVNULL,
+-                                        env=env)
+-            except OSError:  # E.g. bad executable
+-                return None
+-            with proc:
+-                for line in proc.stdout:
 -                    line = line.strip()
--                    if line.startswith('Default Library Path (ELF):'):
--                        paths = line.split()[4]
+-                    if line.startswith(b'Default Library Path (ELF):'):
+-                        paths = os.fsdecode(line).split()[4]
 -
 -            if not paths:
 -                return None
@@ -31,7 +41,7 @@
  
              for dir in paths.split(":"):
                  libfile = os.path.join(dir, "lib%s.so" % name)
-@@ -202,7 +189,7 @@
+@@ -251,7 +227,7 @@
              return None
  
          def find_library(name, is64 = False):
--- a/components/python/python35/patches/22-disable-test_gdb.patch	Mon Feb 06 13:55:35 2017 -0800
+++ b/components/python/python35/patches/22-disable-test_gdb.patch	Mon Feb 06 13:54:36 2017 -0800
@@ -4,7 +4,7 @@
 
 --- Python-3.5.1rc1/Lib/test/test_gdb.py.~1~	2015-12-04 08:05:05.566320671 -0800
 +++ Python-3.5.1rc1/Lib/test/test_gdb.py	2015-12-04 08:09:12.755287204 -0800
-@@ -49,6 +49,8 @@
+@@ -50,6 +50,8 @@
                              "embedding. Saw %s.%s:\n%s"
                              % (gdb_major_version, gdb_minor_version,
                                 gdb_version))
--- a/components/python/python35/patches/26-getrandom.patch	Mon Feb 06 13:55:35 2017 -0800
+++ b/components/python/python35/patches/26-getrandom.patch	Mon Feb 06 13:54:36 2017 -0800
@@ -2,14 +2,14 @@
 in getrandom(2).  That bug was fixed in S12, and in an 11.3 SRU, but not in
 time for 11.3 GA, so this patch is still needed for FOSS Evaluation builds.
 
---- Python-3.5.2/Python/random.c.~1~	2016-06-25 14:38:38.000000000 -0700
-+++ Python-3.5.2/Python/random.c	2016-07-08 07:09:56.389742049 -0700
-@@ -171,7 +171,7 @@
- #endif
- 
-         if (n < 0) {
--            if (errno == ENOSYS) {
-+            if (errno == ENOSYS || errno == EINVAL) {
+--- Python-3.5.3/Python/random.c.~1~	2017-01-17 11:31:43.712295534 +0000
++++ Python-3.5.3/Python/random.c	2017-01-17 11:34:15.498815511 +0000
+@@ -185,7 +185,7 @@
+             /* ENOSYS: getrandom() syscall not supported by the kernel (but
+              * maybe supported by the host which built Python). EPERM:
+              * getrandom() syscall blocked by SECCOMP or something else. */
+-            if (errno == ENOSYS || errno == EPERM) {
++            if (errno == ENOSYS || errno == EINVAL || errno == EPERM) {
                  getrandom_works = 0;
                  return 0;
              }
--- a/components/python/python35/patches/31-expat.patch	Mon Feb 06 13:55:35 2017 -0800
+++ /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
-@@ -656,11 +656,9 @@ class MalformedInputTest(unittest.TestCa
-         # \xc2\x85 is UTF-8 encoded U+0085 (NEXT LINE)
-         xml = b"<?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.assertRaisesRegex(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 ErrorMessageTest(unittest.TestCase):
-     def test_codes(self):
--- a/components/python/python35/python-35.p5m	Mon Feb 06 13:55:35 2017 -0800
+++ b/components/python/python35/python-35.p5m	Mon Feb 06 13:54:36 2017 -0800
@@ -18,7 +18,9 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
+
+#
+# Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved.
 #
 # Bootstrap: pkgdepend doesn't like python 3.5 yet;
 # remove this block once it is installed on build machines.
@@ -606,8 +608,8 @@
 file path=usr/lib/python3.5/encodings/zlib_codec.py
 file path=usr/lib/python3.5/ensurepip/__init__.py
 file path=usr/lib/python3.5/ensurepip/__main__.py
-file path=usr/lib/python3.5/ensurepip/_bundled/pip-8.1.1-py2.py3-none-any.whl
-file path=usr/lib/python3.5/ensurepip/_bundled/setuptools-20.10.1-py2.py3-none-any.whl
+file path=usr/lib/python3.5/ensurepip/_bundled/pip-9.0.1-py2.py3-none-any.whl
+file path=usr/lib/python3.5/ensurepip/_bundled/setuptools-28.8.0-py2.py3-none-any.whl
 file path=usr/lib/python3.5/ensurepip/_uninstall.py
 file path=usr/lib/python3.5/enum.py
 file path=usr/lib/python3.5/filecmp.py
@@ -732,6 +734,7 @@
 file path=usr/lib/python3.5/idlelib/idle_test/test_editor.py
 file path=usr/lib/python3.5/idlelib/idle_test/test_formatparagraph.py
 file path=usr/lib/python3.5/idlelib/idle_test/test_grep.py
+file path=usr/lib/python3.5/idlelib/idle_test/test_help_about.py
 file path=usr/lib/python3.5/idlelib/idle_test/test_hyperparser.py
 file path=usr/lib/python3.5/idlelib/idle_test/test_idlehistory.py
 file path=usr/lib/python3.5/idlelib/idle_test/test_io.py
@@ -855,7 +858,6 @@
 file path=usr/lib/python3.5/lib2to3/fixes/fix_asserts.py
 file path=usr/lib/python3.5/lib2to3/fixes/fix_basestring.py
 file path=usr/lib/python3.5/lib2to3/fixes/fix_buffer.py
-file path=usr/lib/python3.5/lib2to3/fixes/fix_callable.py
 file path=usr/lib/python3.5/lib2to3/fixes/fix_dict.py
 file path=usr/lib/python3.5/lib2to3/fixes/fix_except.py
 file path=usr/lib/python3.5/lib2to3/fixes/fix_exec.py
@@ -1104,6 +1106,7 @@
 file path=usr/lib/python3.5/test/__init__.py
 file path=usr/lib/python3.5/test/__main__.py
 file path=usr/lib/python3.5/test/_test_multiprocessing.py
+file path=usr/lib/python3.5/test/allsans.pem
 file path=usr/lib/python3.5/test/audiodata/pluck-alaw.aifc
 file path=usr/lib/python3.5/test/audiodata/pluck-pcm16.aiff
 file path=usr/lib/python3.5/test/audiodata/pluck-pcm16.au
@@ -1146,7 +1149,6 @@
 file path=usr/lib/python3.5/test/cfgparser.1
 file path=usr/lib/python3.5/test/cfgparser.2
 file path=usr/lib/python3.5/test/cfgparser.3
-file path=usr/lib/python3.5/test/check_soundcard.vbs
 file path=usr/lib/python3.5/test/cjkencodings/big5-utf8.txt
 file path=usr/lib/python3.5/test/cjkencodings/big5.txt
 file path=usr/lib/python3.5/test/cjkencodings/big5hkscs-utf8.txt
@@ -1377,6 +1379,7 @@
 file path=usr/lib/python3.5/test/mime.types
 file path=usr/lib/python3.5/test/mock_socket.py
 file path=usr/lib/python3.5/test/mp_fork_bomb.py
+file path=usr/lib/python3.5/test/mp_preload.py
 file path=usr/lib/python3.5/test/multibytecodec_support.py
 file path=usr/lib/python3.5/test/nokia.pem
 file path=usr/lib/python3.5/test/nullbytecert.pem
@@ -1957,6 +1960,17 @@
 file path=usr/lib/python3.5/test/test_tix.py
 file path=usr/lib/python3.5/test/test_tk.py
 file path=usr/lib/python3.5/test/test_tokenize.py
+file path=usr/lib/python3.5/test/test_tools/__init__.py
+file path=usr/lib/python3.5/test/test_tools/__main__.py
+file path=usr/lib/python3.5/test/test_tools/test_fixcid.py
+file path=usr/lib/python3.5/test/test_tools/test_gprof2html.py
+file path=usr/lib/python3.5/test/test_tools/test_i18n.py
+file path=usr/lib/python3.5/test/test_tools/test_md5sum.py
+file path=usr/lib/python3.5/test/test_tools/test_pdeps.py
+file path=usr/lib/python3.5/test/test_tools/test_pindent.py
+file path=usr/lib/python3.5/test/test_tools/test_reindent.py
+file path=usr/lib/python3.5/test/test_tools/test_sundry.py
+file path=usr/lib/python3.5/test/test_tools/test_unparse.py
 file path=usr/lib/python3.5/test/test_trace.py
 file path=usr/lib/python3.5/test/test_traceback.py
 file path=usr/lib/python3.5/test/test_tracemalloc.py
@@ -1991,6 +2005,10 @@
 file path=usr/lib/python3.5/test/test_venv.py
 file path=usr/lib/python3.5/test/test_wait3.py
 file path=usr/lib/python3.5/test/test_wait4.py
+file path=usr/lib/python3.5/test/test_warnings/__init__.py
+file path=usr/lib/python3.5/test/test_warnings/__main__.py
+file path=usr/lib/python3.5/test/test_warnings/data/import_warning.py
+file path=usr/lib/python3.5/test/test_warnings/data/stacklevel.py
 file path=usr/lib/python3.5/test/test_wave.py
 file path=usr/lib/python3.5/test/test_weakref.py
 file path=usr/lib/python3.5/test/test_weakset.py
--- a/components/python/python35/python35.license	Mon Feb 06 13:55:35 2017 -0800
+++ b/components/python/python35/python35.license	Mon Feb 06 13:54:36 2017 -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 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, 2017 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
@@ -694,7 +695,7 @@
 ::::::::::::::
 Lib/logging/__init__.py
 ::::::::::::::
-# Copyright 2001-2009 by Vinay Sajip. All Rights Reserved.
+# Copyright 2001-2016 by Vinay Sajip. All Rights Reserved.
 #
 # Permission to use, copy, modify, and distribute this software and its
 # documentation for any purpose and without fee is hereby granted,
@@ -1113,215 +1114,3 @@
 ##  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 ##  See the License for the specific language governing permissions and
 ##  limitations under the License.
-
-The following applies to all products licensed under the Apache 2.0 License:
-
-You may not use the identified files except in compliance with the Apache License, Version 2.0 (the "License.")
- 
-You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.  A copy of the license is also reproduced below.
-
-Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-
-See the License for the specific language governing permissions and limitations under the License.
-
-		                 Apache License
-                           Version 2.0, January 2004
-                        http://www.apache.org/licenses/
-
-   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-   1. Definitions.
-
-      "License" shall mean the terms and conditions for use, reproduction,
-      and distribution as defined by Sections 1 through 9 of this document.
-
-      "Licensor" shall mean the copyright owner or entity authorized by
-      the copyright owner that is granting the License.
-
-      "Legal Entity" shall mean the union of the acting entity and all
-      other entities that control, are controlled by, or are under common
-      control with that entity. For the purposes of this definition,
-      "control" means (i) the power, direct or indirect, to cause the
-      direction or management of such entity, whether by contract or
-      otherwise, or (ii) ownership of fifty percent (50%) or more of the
-      outstanding shares, or (iii) beneficial ownership of such entity.
-
-      "You" (or "Your") shall mean an individual or Legal Entity
-      exercising permissions granted by this License.
-
-      "Source" form shall mean the preferred form for making modifications,
-      including but not limited to software source code, documentation
-      source, and configuration files.
-
-      "Object" form shall mean any form resulting from mechanical
-      transformation or translation of a Source form, including but
-      not limited to compiled object code, generated documentation,
-      and conversions to other media types.
-
-      "Work" shall mean the work of authorship, whether in Source or
-      Object form, made available under the License, as indicated by a
-      copyright notice that is included in or attached to the work
-      (an example is provided in the Appendix below).
-
-      "Derivative Works" shall mean any work, whether in Source or Object
-      form, that is based on (or derived from) the Work and for which the
-      editorial revisions, annotations, elaborations, or other modifications
-      represent, as a whole, an original work of authorship. For the purposes
-      of this License, Derivative Works shall not include works that remain
-      separable from, or merely link (or bind by name) to the interfaces of,
-      the Work and Derivative Works thereof.
-
-      "Contribution" shall mean any work of authorship, including
-      the original version of the Work and any modifications or additions
-      to that Work or Derivative Works thereof, that is intentionally
-      submitted to Licensor for inclusion in the Work by the copyright owner
-      or by an individual or Legal Entity authorized to submit on behalf of
-      the copyright owner. For the purposes of this definition, "submitted"
-      means any form of electronic, verbal, or written communication sent
-      to the Licensor or its representatives, including but not limited to
-      communication on electronic mailing lists, source code control systems,
-      and issue tracking systems that are managed by, or on behalf of, the
-      Licensor for the purpose of discussing and improving the Work, but
-      excluding communication that is conspicuously marked or otherwise
-      designated in writing by the copyright owner as "Not a Contribution."
-
-      "Contributor" shall mean Licensor and any individual or Legal Entity
-      on behalf of whom a Contribution has been received by Licensor and
-      subsequently incorporated within the Work.
-
-   2. Grant of Copyright License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      copyright license to reproduce, prepare Derivative Works of,
-      publicly display, publicly perform, sublicense, and distribute the
-      Work and such Derivative Works in Source or Object form.
-
-   3. Grant of Patent License. Subject to the terms and conditions of
-      this License, each Contributor hereby grants to You a perpetual,
-      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-      (except as stated in this section) patent license to make, have made,
-      use, offer to sell, sell, import, and otherwise transfer the Work,
-      where such license applies only to those patent claims licensable
-      by such Contributor that are necessarily infringed by their
-      Contribution(s) alone or by combination of their Contribution(s)
-      with the Work to which such Contribution(s) was submitted. If You
-      institute patent litigation against any entity (including a
-      cross-claim or counterclaim in a lawsuit) alleging that the Work
-      or a Contribution incorporated within the Work constitutes direct
-      or contributory patent infringement, then any patent licenses
-      granted to You under this License for that Work shall terminate
-      as of the date such litigation is filed.
-
-   4. Redistribution. You may reproduce and distribute copies of the
-      Work or Derivative Works thereof in any medium, with or without
-      modifications, and in Source or Object form, provided that You
-      meet the following conditions:
-
-      (a) You must give any other recipients of the Work or
-          Derivative Works a copy of this License; and
-
-      (b) You must cause any modified files to carry prominent notices
-          stating that You changed the files; and
-
-      (c) You must retain, in the Source form of any Derivative Works
-          that You distribute, all copyright, patent, trademark, and
-          attribution notices from the Source form of the Work,
-          excluding those notices that do not pertain to any part of
-          the Derivative Works; and
-
-      (d) If the Work includes a "NOTICE" text file as part of its
-          distribution, then any Derivative Works that You distribute must
-          include a readable copy of the attribution notices contained
-          within such NOTICE file, excluding those notices that do not
-          pertain to any part of the Derivative Works, in at least one
-          of the following places: within a NOTICE text file distributed
-          as part of the Derivative Works; within the Source form or
-          documentation, if provided along with the Derivative Works; or,
-          within a display generated by the Derivative Works, if and
-          wherever such third-party notices normally appear. The contents
-          of the NOTICE file are for informational purposes only and
-          do not modify the License. You may add Your own attribution
-          notices within Derivative Works that You distribute, alongside
-          or as an addendum to the NOTICE text from the Work, provided
-          that such additional attribution notices cannot be construed
-          as modifying the License.
-
-      You may add Your own copyright statement to Your modifications and
-      may provide additional or different license terms and conditions
-      for use, reproduction, or distribution of Your modifications, or
-      for any such Derivative Works as a whole, provided Your use,
-      reproduction, and distribution of the Work otherwise complies with
-      the conditions stated in this License.
-
-   5. Submission of Contributions. Unless You explicitly state otherwise,
-      any Contribution intentionally submitted for inclusion in the Work
-      by You to the Licensor shall be under the terms and conditions of
-      this License, without any additional terms or conditions.
-      Notwithstanding the above, nothing herein shall supersede or modify
-      the terms of any separate license agreement you may have executed
-      with Licensor regarding such Contributions.
-
-   6. Trademarks. This License does not grant permission to use the trade
-      names, trademarks, service marks, or product names of the Licensor,
-      except as required for reasonable and customary use in describing the
-      origin of the Work and reproducing the content of the NOTICE file.
-
-   7. Disclaimer of Warranty. Unless required by applicable law or
-      agreed to in writing, Licensor provides the Work (and each
-      Contributor provides its Contributions) on an "AS IS" BASIS,
-      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-      implied, including, without limitation, any warranties or conditions
-      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-      PARTICULAR PURPOSE. You are solely responsible for determining the
-      appropriateness of using or redistributing the Work and assume any
-      risks associated with Your exercise of permissions under this License.
-
-   8. Limitation of Liability. In no event and under no legal theory,
-      whether in tort (including negligence), contract, or otherwise,
-      unless required by applicable law (such as deliberate and grossly
-      negligent acts) or agreed to in writing, shall any Contributor be
-      liable to You for damages, including any direct, indirect, special,
-      incidental, or consequential damages of any character arising as a
-      result of this License or out of the use or inability to use the
-      Work (including but not limited to damages for loss of goodwill,
-      work stoppage, computer failure or malfunction, or any and all
-      other commercial damages or losses), even if such Contributor
-      has been advised of the possibility of such damages.
-
-   9. Accepting Warranty or Additional Liability. While redistributing
-      the Work or Derivative Works thereof, You may choose to offer,
-      and charge a fee for, acceptance of support, warranty, indemnity,
-      or other liability obligations and/or rights consistent with this
-      License. However, in accepting such obligations, You may act only
-      on Your own behalf and on Your sole responsibility, not on behalf
-      of any other Contributor, and only if You agree to indemnify,
-      defend, and hold each Contributor harmless for any liability
-      incurred by, or claims asserted against, such Contributor by reason
-      of your accepting any such warranty or additional liability.
-
-   END OF TERMS AND CONDITIONS
-
-   APPENDIX: How to apply the Apache License to your work.
-
-      To apply the Apache License to your work, attach the following
-      boilerplate notice, with the fields enclosed by brackets "[]"
-      replaced with your own identifying information. (Don't include
-      the brackets!)  The text should be enclosed in the appropriate
-      comment syntax for the file format. We also recommend that a
-      file or class name and description of purpose be included on the
-      same "printed page" as the copyright notice for easier
-      identification within third-party archives.
-
-   Copyright [yyyy] [name of copyright owner]
-
-   Licensed under the Apache License, Version 2.0 (the "License");
-   you may not use this file except in compliance with the License.
-   You may obtain a copy of the License at
-
-       http://www.apache.org/licenses/LICENSE-2.0
-
-   Unless required by applicable law or agreed to in writing, software
-   distributed under the License is distributed on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-   See the License for the specific language governing permissions and
-   limitations under the License.
--- a/components/python/python35/test/results-64.master	Mon Feb 06 13:55:35 2017 -0800
+++ b/components/python/python35/test/results-64.master	Mon Feb 06 13:54:36 2017 -0800
@@ -1,9 +1,10 @@
-367 tests OK.
-8 tests failed:
-    test_cmd_line_script test_ctypes test_dtrace test_import test_mmap
-    test_re test_socket test_time
+365 tests OK.
+11 tests failed:
+    test_cmd_line_script test_ctypes test_dtrace test_faulthandler
+    test_import test_mmap test_re test_socket test_time test_zipimport
+    test_zlib
 3 tests altered the execution environment:
-    test___all__ test_io test_warnings
+    test___all__ test_io test_site
 20 tests skipped:
     test_epoll test_gdb test_kqueue test_msilib test_ossaudiodev
     test_pep277 test_smtpnet test_socketserver test_startfile