23858083 Upgrade Python to 3.5.2
authorJohn Beck <John.Beck@Oracle.COM>
Thu, 21 Jul 2016 12:52:32 -0700
changeset 6447 56a2f066191a
parent 6446 b54de573b4e9
child 6448 9c7d6df84360
23858083 Upgrade Python to 3.5.2
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/23-doctest.patch
components/python/python35/patches/25-test_site.patch
components/python/python35/patches/26-getrandom.patch
components/python/python35/patches/31-zipimport.patch
components/python/python35/patches/32-smtplib.patch
components/python/python35/python-35.p5m
--- a/components/python/python35/Makefile	Thu Jul 21 12:52:12 2016 -0700
+++ b/components/python/python35/Makefile	Thu Jul 21 12:52:32 2016 -0700
@@ -25,17 +25,17 @@
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		Python
-COMPONENT_VERSION=	3.5.1
+COMPONENT_VERSION=	3.5.2
 COMPONENT_PROJECT_URL=	http://python.org/
 COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.xz
 COMPONENT_ARCHIVE_HASH=	\
-    sha256:c6d57c0c366d9060ab6c0cdf889ebf3d92711d466cc0119c441dbf2746f725c9
+    sha256:0010f56100b9b74259ebcd5d4b295a32324b58b517403a10d1a2aa7cb22bca40
 COMPONENT_ARCHIVE_URL=	$(COMPONENT_PROJECT_URL)ftp/python/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE)
 COMPONENT_SIG_URL=	$(COMPONENT_ARCHIVE_URL).asc
 COMPONENT_BUGDB=	utility/python
 
-TPNO=			25978
+TPNO=			29999
 
 include $(WS_MAKE_RULES)/prep.mk
 include $(WS_MAKE_RULES)/configure.mk
--- a/components/python/python35/patches/00-dtrace.patch	Thu Jul 21 12:52:12 2016 -0700
+++ b/components/python/python35/patches/00-dtrace.patch	Thu Jul 21 12:52:32 2016 -0700
@@ -1011,17 +1011,17 @@
 +if __name__ == '__main__':
 +    test_main()
 +
---- Python-3.5.0a4/Lib/test/test_sys.py.~1~	2015-04-20 00:37:52.000000000 -0700
-+++ Python-3.5.0a4/Lib/test/test_sys.py	2015-04-20 12:38:22.235939749 -0700
[email protected]@ -868,6 +868,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
[email protected]@ -882,6 +882,7 @@
          self.assertEqual(sys.getsizeof(True, -1), size('') + self.longdigit)
  
      def test_objecttypes(self):
 +        import dtrace
          # check all types defined in Objects/
+         calcsize = struct.calcsize
          size = test.support.calcobjsize
-         vsize = test.support.calcvobjsize
[email protected]@ -896,13 +897,17 @@
[email protected]@ -911,13 +912,17 @@
              return inner
          check(get_cell().__closure__[0], size('P'))
          # code
@@ -1042,8 +1042,8 @@
          # complex
          check(complex(0,1), size('2d'))
          # method_descriptor (descriptor object)
---- Python-3.5.1rc1/Makefile.pre.in.~1~	2015-11-22 22:19:07.000000000 -0800
-+++ Python-3.5.1rc1/Makefile.pre.in	2015-12-04 07:32:55.999196503 -0800
+--- 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 @@
  # Use this to make a link between python$(VERSION) and python in $(BINDIR)
  LN=		@[email protected]
@@ -1058,7 +1058,7 @@
  # Portable install script (configure doesn't always guess right)
  INSTALL=	@[email protected]
  [email protected][email protected]
[email protected]@ -611,7 +618,7 @@
[email protected]@ -618,7 +625,7 @@
  	$(AR) $(ARFLAGS) [email protected] $(MODOBJS)
  	$(RANLIB) [email protected]
  
@@ -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) [email protected]; \
[email protected]@ -622,9 +629,8 @@
[email protected]@ -629,9 +636,8 @@
  libpython3.so:	libpython$(LDVERSION).so
  	$(BLDSHARED) $(NO_AS_NEEDED) -o [email protected] -Wl,[email protected] $^
  
@@ -1079,7 +1079,7 @@
  
  libpython$(VERSION).sl: $(LIBRARY_OBJS)
  	$(LDSHARED) -o [email protected] $(LIBRARY_OBJS) $(MODLIBS) $(SHLIBS) $(LIBC) $(LIBM) $(LDLAST)
[email protected]@ -729,12 +735,18 @@
[email protected]@ -740,12 +746,18 @@
  		$(MODULE_OBJS) \
  		$(SIGNAL_OBJS) \
  		$(MODOBJS) \
@@ -1098,7 +1098,7 @@
  
  Modules/getpath.o: $(srcdir)/Modules/getpath.c Makefile
  	$(CC) -c $(PY_CORE_CFLAGS) -DPYTHONPATH='"$(PYTHONPATH)"' \
[email protected]@ -868,6 +880,46 @@
[email protected]@ -890,6 +902,46 @@
  Objects/typeslots.inc: $(srcdir)/Include/typeslots.h $(srcdir)/Objects/typeslots.py
  	$(PYTHON) $(srcdir)/Objects/typeslots.py < $(srcdir)/Include/typeslots.h > Objects/typeslots.inc
  
@@ -1145,7 +1145,7 @@
  ############################################################################
  # Header files
  
[email protected]@ -1582,6 +1634,11 @@
[email protected]@ -1608,6 +1660,11 @@
  	find build -name '*.py[co]' -exec rm -f {} ';' || true
  	-rm -f pybuilddir.txt
  	-rm -f Lib/lib2to3/*Grammar*.pickle
@@ -1157,7 +1157,7 @@
  	-rm -f Programs/_testembed Programs/_freeze_importlib
  	-rm -rf build
  
[email protected]@ -1615,6 +1672,11 @@
[email protected]@ -1642,6 +1699,11 @@
  				     -o -name '*.orig' -o -name '*.rej' \
  				     -o -name '*.bak' ')' \
  				     -exec rm -f {} ';'
@@ -1339,7 +1339,7 @@
  
 --- Python-3.5.0rc2/Objects/frameobject.c.~1~	2015-08-25 10:19:14.000000000 -0700
 +++ Python-3.5.0rc2/Objects/frameobject.c	2015-09-02 11:31:53.362348226 -0700
[email protected]@ -737,6 +737,15 @@
[email protected]@ -735,6 +735,15 @@
      f->f_executing = 0;
      f->f_gen = NULL;
  
@@ -1355,8 +1355,8 @@
      _PyObject_GC_TRACK(f);
      return f;
  }
---- Python-3.5.0a4/Objects/typeobject.c.~1~	2015-04-20 00:37:53.000000000 -0700
-+++ Python-3.5.0a4/Objects/typeobject.c	2015-04-20 12:55:28.246913689 -0700
+--- Python-3.5.2/Objects/typeobject.c.~1~	2016-06-25 14:38:38.000000000 -0700
++++ Python-3.5.2/Objects/typeobject.c	2016-07-07 15:17:01.001120208 -0700
 @@ -4,6 +4,10 @@
  #include "frameobject.h"
  #include "structmember.h"
@@ -1368,7 +1368,7 @@
  #include <ctype.h>
  
  
[email protected]@ -934,8 +938,29 @@
[email protected]@ -916,8 +920,29 @@
  PyType_GenericAlloc(PyTypeObject *type, Py_ssize_t nitems)
  {
      PyObject *obj;
@@ -1399,7 +1399,7 @@
  
      if (PyType_IS_GC(type))
          obj = _PyObject_GC_Malloc(size);
[email protected]@ -957,6 +982,23 @@
[email protected]@ -939,6 +964,23 @@
  
      if (PyType_IS_GC(type))
          _PyObject_GC_TRACK(obj);
@@ -1423,7 +1423,7 @@
      return obj;
  }
  
[email protected]@ -1077,9 +1119,56 @@
[email protected]@ -1059,9 +1101,56 @@
      return 0;
  }
  
@@ -1480,8 +1480,8 @@
      PyTypeObject *type, *base;
      destructor basedealloc;
      PyThreadState *tstate = PyThreadState_GET();
---- Python-3.5.0rc2/Python/ceval.c.~1~	2015-08-25 10:19:14.000000000 -0700
-+++ Python-3.5.0rc2/Python/ceval.c	2015-09-02 11:33:12.745496843 -0700
+--- 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
 @@ -20,6 +20,13 @@
  
  #include <ctype.h>
@@ -1619,7 +1619,7 @@
          switch (opcode) {
  
          /* BEWARE!
[email protected]@ -3573,6 +3648,10 @@
[email protected]@ -3625,6 +3700,10 @@
  
      /* pop frame */
  exit_eval_frame:
@@ -1630,7 +1630,7 @@
      Py_LeaveRecursiveCall();
      f->f_executing = 0;
      tstate->frame = f->f_back;
[email protected]@ -4323,6 +4402,57 @@
[email protected]@ -4375,6 +4454,57 @@
      return result;
  }
  
@@ -1688,7 +1688,7 @@
  PyObject *
  _PyEval_CallTracing(PyObject *func, PyObject *args)
  {
[email protected]@ -4340,6 +4470,51 @@
[email protected]@ -4392,6 +4522,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.0a4/configure.~1~	2015-04-20 00:37:53.000000000 -0700
-+++ Python-3.5.0a4/configure	2015-04-20 12:58:28.386851213 -0700
+--- 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
 @@ -642,6 +642,11 @@
  MACHDEP_OBJS
  DYNLOADFILE
@@ -1754,7 +1754,7 @@
  THREADOBJ
  LDLAST
  USE_THREAD_MODULE
[email protected]@ -824,6 +829,7 @@
[email protected]@ -828,6 +833,7 @@
  with_tsc
  with_pymalloc
  with_valgrind
@@ -1762,7 +1762,7 @@
  with_fpectl
  with_libm
  with_libc
[email protected]@ -1512,6 +1518,7 @@
[email protected]@ -1519,6 +1525,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
[email protected]@ -10866,6 +10873,174 @@
[email protected]@ -11074,6 +11081,174 @@
      OPT="-DDYNAMIC_ANNOTATIONS_ENABLED=1 $OPT"
  fi
  
@@ -1945,9 +1945,9 @@
  # -I${DLINCLDIR} is added to the compile rule for importdl.o
  
  DLINCLDIR=.
---- Python-3.5.0a4/configure.ac.~1~	2015-04-20 00:37:53.000000000 -0700
-+++ Python-3.5.0a4/configure.ac	2015-04-20 12:59:58.383305870 -0700
[email protected]@ -3129,6 +3129,62 @@
+--- 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
[email protected]@ -3211,6 +3211,62 @@
      OPT="-DDYNAMIC_ANNOTATIONS_ENABLED=1 $OPT"
  fi
  
@@ -2010,9 +2010,9 @@
  # -I${DLINCLDIR} is added to the compile rule for importdl.o
  AC_SUBST(DLINCLDIR)
  DLINCLDIR=.
---- Python-3.5.0a4/pyconfig.h.in.~1~	2015-04-20 00:37:53.000000000 -0700
-+++ Python-3.5.0a4/pyconfig.h.in	2015-04-20 13:00:52.054987861 -0700
[email protected]@ -1358,6 +1358,9 @@
+--- Python-3.5.2/pyconfig.h.in.~1~	2016-06-25 14:38:39.000000000 -0700
++++ Python-3.5.2/pyconfig.h.in	2016-07-08 06:40:11.272340748 -0700
[email protected]@ -1360,6 +1360,9 @@
  /* Define if you want documentation strings in extension modules */
  #undef WITH_DOC_STRINGS
  
@@ -2022,9 +2022,9 @@
  /* Define if you want to use the new-style (Openstep, Rhapsody, MacOS) dynamic
     linker (dyld) instead of the old-style (NextStep) dynamic linker (rld).
     Dyld is necessary to support frameworks. */
---- Python-3.5.0a4/setup.py.~1~	2015-04-20 00:37:53.000000000 -0700
-+++ Python-3.5.0a4/setup.py	2015-04-20 13:01:49.596181289 -0700
[email protected]@ -663,6 +663,9 @@
+--- 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
[email protected]@ -690,6 +690,9 @@
          # syslog daemon interface
          exts.append( Extension('syslog', ['syslogmodule.c']) )
  
--- a/components/python/python35/patches/01-bits.patch	Thu Jul 21 12:52:12 2016 -0700
+++ b/components/python/python35/patches/01-bits.patch	Thu Jul 21 12:52:32 2016 -0700
@@ -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.0a4/configure.ac.~2~	2015-04-20 13:02:40.184381369 -0700
-+++ Python-3.5.0a4/configure.ac	2015-04-20 13:02:40.208203720 -0700
+--- 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
 @@ -5,7 +5,7 @@
  # Set VERSION so we only need to edit in one place (i.e., here)
  m4_define(PYTHON_VERSION, 3.5)
@@ -13,7 +13,7 @@
  
  AC_INIT(python, PYTHON_VERSION, http://bugs.python.org/)
  
[email protected]@ -2345,12 +2345,6 @@
[email protected]@ -2427,12 +2427,6 @@
  if test -z "$CCSHARED"
  then
  	case $ac_sys_system/$ac_sys_release in
--- a/components/python/python35/patches/03-setup.patch	Thu Jul 21 12:52:12 2016 -0700
+++ b/components/python/python35/patches/03-setup.patch	Thu Jul 21 12:52:32 2016 -0700
@@ -1,10 +1,10 @@
 This patch modifies the setup script to support Solaris.
 As it is Solaris-specific, it is not suitable for upstream.
 
---- Python-3.5.0/setup.py.~2~	2015-04-20 13:10:20.522357068 -0700
-+++ Python-3.5.0/setup.py	2015-04-20 13:10:20.553743713 -0700
[email protected]@ -465,12 +465,15 @@
-             os.unlink(tmpfile)
+--- 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
[email protected]@ -488,12 +488,15 @@
+             return ['m']
  
      def detect_modules(self):
 -        # Ensure that /usr/local is always used, but the local build
@@ -24,7 +24,7 @@
          # only change this for cross builds for 3.3, issues on Mageia
          if cross_compiling:
              self.add_gcc_paths()
[email protected]@ -756,6 +759,13 @@
[email protected]@ -786,6 +789,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,
[email protected]@ -779,7 +789,8 @@
[email protected]@ -809,7 +819,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',
[email protected]@ -1315,6 +1326,10 @@
[email protected]@ -1345,6 +1356,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,
[email protected]@ -1339,10 +1352,32 @@
[email protected]@ -1369,10 +1384,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')
  
[email protected]@ -1938,7 +1973,7 @@
[email protected]@ -1969,7 +2006,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	Thu Jul 21 12:52:12 2016 -0700
+++ b/components/python/python35/patches/05-studio-profile.patch	Thu Jul 21 12:52:32 2016 -0700
@@ -4,22 +4,22 @@
 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.1rc1/Makefile.pre.in.~2~	2015-12-04 07:50:01.643727127 -0800
-+++ Python-3.5.1rc1/Makefile.pre.in	2015-12-04 07:52:18.287953768 -0800
[email protected]@ -238,7 +238,7 @@
- TCLTK_LIBS=	@[email protected]
- 
- # The task to run while instrument when building the profile-opt target
--PROFILE_TASK=-m test.regrtest --pgo
+--- 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
[email protected]@ -241,7 +241,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.
+-PROFILE_TASK=-m test.regrtest --pgo -x test_asyncore test_gdb test_multiprocessing_fork test_multiprocessing_forkserver test_multiprocessing_main_handling test_multiprocessing_spawn test_subprocess
 +PROFILE_TASK=	$(srcdir)/Tools/pybench/pybench.py -n 2 --with-gc --with-syscheck
  
  # report files for gcov / lcov coverage report
  COVERAGE_INFO=	$(abs_builddir)/coverage.info
[email protected]@ -509,24 +509,33 @@
[email protected]@ -512,24 +512,33 @@
  	$(MAKE) profile-removal
  
  build_all_generate_profile:
--	$(MAKE) all CFLAGS_NODIST="$(CFLAGS) $(PGO_PROF_GEN_FLAG)" LDFLAGS="$(LDFLAGS) $(PGO_PROF_GEN_FLAG)" LIBS="$(LIBS)"
+-	$(MAKE) all CFLAGS_NODIST="$(CFLAGS) $(PGO_PROF_GEN_FLAG) @[email protected]" LDFLAGS="$(LDFLAGS) $(PGO_PROF_GEN_FLAG) @[email protected]" LIBS="$(LIBS)"
 +	$(MAKE) all CC="$(CC) -xprofile=collect:$(XPROFILE_DIR)" \
 +	    CFLAGS_NODIST="$(CFLAGS) -xprofile=collect:$(XPROFILE_DIR)" \
 +	    LDFLAGS="$(LDFLAGS) -xprofile=collect:$(XPROFILE_DIR)" \
@@ -34,7 +34,7 @@
  	$(LLVM_PROF_MERGER)
  
  build_all_use_profile:
--	$(MAKE) all CFLAGS_NODIST="$(CFLAGS) $(PGO_PROF_USE_FLAG)"
+-	$(MAKE) all CFLAGS_NODIST="$(CFLAGS) $(PGO_PROF_USE_FLAG) @[email protected]" LDFLAGS="$(LDFLAGS) @[email protected]"
 +	$(MAKE) all CC="$(CC) -xprofile=use:$(XPROFILE_DIR)" \
 +	    CFLAGS_NODIST="$(CFLAGS) -xprofile=use:$(XPROFILE_DIR)" \
 +	    LDFLAGS="$(LDFLAGS) -xprofile=use:$(XPROFILE_DIR)" \
@@ -53,10 +53,10 @@
  
  coverage-lcov:
  	@echo "Creating Coverage HTML report with LCOV:"
[email protected]@ -598,13 +607,9 @@
[email protected]@ -605,13 +614,9 @@
  # -s, --silent or --quiet is always the first char.
  # Under BSD make, MAKEFLAGS might be " -s -v x=y".
- sharedmods: $(BUILDPYTHON) pybuilddir.txt
+ sharedmods: $(BUILDPYTHON) pybuilddir.txt Modules/_math.o
 -	@case "$$MAKEFLAGS" in \
 -	    *\ -s*|s*) quiet="-q";; \
 -	    *) quiet="";; \
@@ -68,12 +68,13 @@
  
  # Build static library
  # avoid long command lines, same as LIBRARY_OBJS
[email protected]@ -1643,8 +1648,7 @@
[email protected]@ -1669,9 +1674,7 @@
  	-rm -rf build
  
  profile-removal:
 -	find . -name '*.gc??' -exec rm -f {} ';'
 -	find . -name '*.profclang?' -exec rm -f {} ';'
+-	find . -name '*.dyn' -exec rm -f {} ';'
 +	find . -name '*profile' -exec rm -f {} ';'
  	rm -f $(COVERAGE_INFO)
  	rm -rf $(COVERAGE_REPORT)
--- a/components/python/python35/patches/07-ucred.patch	Thu Jul 21 12:52:12 2016 -0700
+++ b/components/python/python35/patches/07-ucred.patch	Thu Jul 21 12:52:32 2016 -0700
@@ -410,9 +410,9 @@
 +
 +	return m;
 +}
---- Python-3.5.0a4/setup.py.~3~	2015-04-20 13:25:43.044301257 -0700
-+++ Python-3.5.0a4/setup.py	2015-04-20 13:25:43.100051905 -0700
[email protected]@ -1533,6 +1533,13 @@
+--- 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
[email protected]@ -1565,6 +1565,13 @@
          # Stefan Krah's _decimal module
          exts.append(self._decimal_ext())
  
--- a/components/python/python35/patches/08-dlpi.patch	Thu Jul 21 12:52:12 2016 -0700
+++ b/components/python/python35/patches/08-dlpi.patch	Thu Jul 21 12:52:32 2016 -0700
@@ -1223,9 +1223,9 @@
 +
 +	return mod;
 +}
---- Python-3.5.0a4/setup.py.~4~	2015-04-20 13:28:29.633806027 -0700
-+++ Python-3.5.0a4/setup.py	2015-04-20 13:28:29.649896175 -0700
[email protected]@ -1540,6 +1540,12 @@
+--- 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
[email protected]@ -1572,6 +1572,12 @@
              exts.append( Extension('ucred', ['ucred.c'],
                                     libraries = ['tsol']) )
  
--- a/components/python/python35/patches/10-rbac.patch	Thu Jul 21 12:52:12 2016 -0700
+++ b/components/python/python35/patches/10-rbac.patch	Thu Jul 21 12:52:32 2016 -0700
@@ -1283,9 +1283,9 @@
 +	0,                            /* tp_free */
 +	0,                            /* tp_is_gc */
 +};
---- Python-3.5.0a4/setup.py.~5~	2015-04-20 13:30:08.410768276 -0700
-+++ Python-3.5.0a4/setup.py	2015-04-20 13:30:08.438983714 -0700
[email protected]@ -1546,6 +1546,22 @@
+--- 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
[email protected]@ -1578,6 +1578,22 @@
              exts.append( Extension('dlpi', ['dlpimodule.c'],
                                     libraries = ['dlpi']) )
  
--- a/components/python/python35/patches/11-closerange.patch	Thu Jul 21 12:52:12 2016 -0700
+++ b/components/python/python35/patches/11-closerange.patch	Thu Jul 21 12:52:32 2016 -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-3.5.0rc2/Modules/posixmodule.c.~1~	2015-08-25 10:19:14.000000000 -0700
-+++ Python-3.5.0rc2/Modules/posixmodule.c	2015-09-02 12:31:54.885953202 -0700
[email protected]@ -7777,6 +7777,19 @@
+--- 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
[email protected]@ -7779,6 +7779,19 @@
      Py_RETURN_NONE;
  }
  
@@ -23,7 +23,7 @@
  
  /*[clinic input]
  os.closerange
[email protected]@ -7793,11 +7806,13 @@
[email protected]@ -7795,11 +7808,13 @@
  /*[clinic end generated code: output=70e6adb95220ba96 input=5855a3d053ebd4ec]*/
  {
      int i;
--- a/components/python/python35/patches/12-py_db.patch	Thu Jul 21 12:52:12 2016 -0700
+++ b/components/python/python35/patches/12-py_db.patch	Thu Jul 21 12:52:32 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-3.5.1rc1/Makefile.pre.in.~3~	2015-12-04 07:55:35.437372222 -0800
-+++ Python-3.5.1rc1/Makefile.pre.in	2015-12-04 07:55:35.539445506 -0800
[email protected]@ -486,7 +486,7 @@
+--- 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
[email protected]@ -489,7 +489,7 @@
  
  # Default target
  all:		build_all
@@ -12,7 +12,7 @@
  
  # Compile a binary with profile guided optimization.
  profile-opt:
[email protected]@ -700,6 +700,15 @@
[email protected]@ -707,6 +707,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 \
[email protected]@ -1077,7 +1086,7 @@
[email protected]@ -1099,7 +1108,7 @@
  		$(TESTRUNNER) $(QUICKTESTOPTS)
  
  
--- a/components/python/python35/patches/14-ossaudiodev.patch	Thu Jul 21 12:52:12 2016 -0700
+++ b/components/python/python35/patches/14-ossaudiodev.patch	Thu Jul 21 12:52:32 2016 -0700
@@ -2,9 +2,9 @@
 Some OSS ioctls are not supported on Solaris, so they are ifdef'd out.  As
 the patch is Solaris-specific, it is not suitable for upstream.
 
---- Python-3.5.0a4/setup.py.~6~	2015-04-20 13:49:47.441303130 -0700
-+++ Python-3.5.0a4/setup.py	2015-04-20 13:49:47.506430752 -0700
[email protected]@ -1617,7 +1617,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
[email protected]@ -1649,7 +1649,7 @@
          # End multiprocessing
  
          # Platform-specific libraries
--- a/components/python/python35/patches/19-SOABI.patch	Thu Jul 21 12:52:12 2016 -0700
+++ b/components/python/python35/patches/19-SOABI.patch	Thu Jul 21 12:52:32 2016 -0700
@@ -1,9 +1,9 @@
 This patch was developed in-house.  We have not yet decided whether to offer
 it upstream or not.
 
---- Python-3.5.0a4/configure.ac.~3~	2015-04-20 14:10:42.056744800 -0700
-+++ Python-3.5.0a4/configure.ac	2015-04-20 14:10:42.275328447 -0700
[email protected]@ -4412,7 +4412,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
[email protected]@ -4494,7 +4494,7 @@
  
  AC_SUBST(EXT_SUFFIX)
  case $ac_sys_system in
--- a/components/python/python35/patches/21-default-lib-path.patch	Thu Jul 21 12:52:12 2016 -0700
+++ b/components/python/python35/patches/21-default-lib-path.patch	Thu Jul 21 12:52:32 2016 -0700
@@ -1,9 +1,9 @@
 This patch was developed in-house.  It has been submitted upstream:
 http://bugs.python.org/issue23287
 
---- Python-3.5.0a4/Lib/ctypes/util.py.~1~	2015-04-20 00:37:51.000000000 -0700
-+++ Python-3.5.0a4/Lib/ctypes/util.py	2015-04-20 14:14:06.541902625 -0700
[email protected]@ -175,23 +175,11 @@
+--- 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
[email protected]@ -175,24 +175,11 @@
  
      elif sys.platform == "sunos5":
  
@@ -18,6 +18,7 @@
              else:
 -                cmd = 'env LC_ALL=C /usr/bin/crle 2>/dev/null'
 -
+-            paths = None
 -            with contextlib.closing(os.popen(cmd)) as f:
 -                for line in f.readlines():
 -                    line = line.strip()
@@ -30,7 +31,7 @@
  
              for dir in paths.split(":"):
                  libfile = os.path.join(dir, "lib%s.so" % name)
[email protected]@ -201,7 +189,7 @@
[email protected]@ -202,7 +189,7 @@
              return None
  
          def find_library(name, is64 = False):
--- a/components/python/python35/patches/23-doctest.patch	Thu Jul 21 12:52:12 2016 -0700
+++ /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-3.5.0a4/Lib/test/test_doctest.py.~1~	2015-04-20 00:37:51.000000000 -0700
-+++ Python-3.5.0a4/Lib/test/test_doctest.py	2015-04-20 14:15:20.031951150 -0700
[email protected]@ -2647,7 +2647,7 @@
-     >>> with open(fn, 'wb') as f:
-     ...    f.write(b'Test:\r\n\r\n  >>> x = 1 + 1\r\n\r\nDone.\r\n')
-     35
--    >>> doctest.testfile(fn, False)
-+    >>> doctest.testfile(fn, False, verbose=False)
-     TestResults(failed=0, attempted=1)
-     >>> os.remove(fn)
- 
[email protected]@ -2657,7 +2657,7 @@
-     >>> with open(fn, 'wb') as f:
-     ...     f.write(b'Test:\n\n  >>> x = 1 + 1\n\nDone.\n')
-     30
--    >>> doctest.testfile(fn, False)
-+    >>> doctest.testfile(fn, False, verbose=False)
-     TestResults(failed=0, attempted=1)
-     >>> os.remove(fn)
- 
--- a/components/python/python35/patches/25-test_site.patch	Thu Jul 21 12:52:12 2016 -0700
+++ b/components/python/python35/patches/25-test_site.patch	Thu Jul 21 12:52:32 2016 -0700
@@ -2,9 +2,9 @@
 upstream, but rejected, so this is the next simplest way to work around
 issues with when the site module is imported.
 
---- Python-3.5.0rc2/Lib/test/test_site.py.~1~	2015-08-25 10:19:13.000000000 -0700
-+++ Python-3.5.0rc2/Lib/test/test_site.py	2015-09-02 12:38:45.356337855 -0700
[email protected]@ -438,7 +438,7 @@
+--- Python-3.5.2/Lib/test/test_site.py.~1~	2016-06-25 14:38:37.000000000 -0700
++++ Python-3.5.2/Lib/test/test_site.py	2016-07-08 07:09:08.106539974 -0700
[email protected]@ -443,7 +443,7 @@
      def test_startup_imports(self):
          # This tests checks which modules are loaded by Python when it
          # initially starts upon startup.
@@ -13,7 +13,7 @@
                                    'import sys; print(set(sys.modules))'],
                                   stdout=subprocess.PIPE,
                                   stderr=subprocess.PIPE)
[email protected]@ -447,8 +447,6 @@
[email protected]@ -452,8 +452,6 @@
          stderr = stderr.decode('utf-8')
          modules = eval(stdout)
  
--- a/components/python/python35/patches/26-getrandom.patch	Thu Jul 21 12:52:12 2016 -0700
+++ b/components/python/python35/patches/26-getrandom.patch	Thu Jul 21 12:52:32 2016 -0700
@@ -2,10 +2,10 @@
 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.1/Python/random.c.~1~	2015-08-25 10:19:14.000000000 -0700
-+++ Python-3.5.1/Python/random.c	2015-09-02 14:18:51.799090171 -0700
[email protected]@ -136,7 +136,7 @@
-         }
+--- 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
[email protected]@ -171,7 +171,7 @@
+ #endif
  
          if (n < 0) {
 -            if (errno == ENOSYS) {
--- a/components/python/python35/patches/31-zipimport.patch	Thu Jul 21 12:52:12 2016 -0700
+++ /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
[email protected]@ -1112,6 +1112,11 @@ get_data(PyObject *archive, PyObject *to
-     }
-     file_offset += l;           /* Start of file data */
- 
-+    if (data_size > LONG_MAX - 1) {
-+        fclose(fp);
-+        PyErr_NoMemory();
-+        return NULL;
-+    }
-     bytes_size = compress == 0 ? data_size : data_size + 1;
-     if (bytes_size == 0)
-         bytes_size++;
--- a/components/python/python35/patches/32-smtplib.patch	Thu Jul 21 12:52:12 2016 -0700
+++ /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
[email protected]@ -773,6 +773,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/python35/python-35.p5m	Thu Jul 21 12:52:12 2016 -0700
+++ b/components/python/python35/python-35.p5m	Thu Jul 21 12:52:32 2016 -0700
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2012, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2012, 2016, 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 +606,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-7.1.2-py2.py3-none-any.whl
-file path=usr/lib/python3.5/ensurepip/_bundled/setuptools-18.2-py2.py3-none-any.whl
+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/_uninstall.py
 file path=usr/lib/python3.5/enum.py
 file path=usr/lib/python3.5/filecmp.py
@@ -724,9 +724,11 @@
 file path=usr/lib/python3.5/idlelib/idle_test/test_autocomplete.py
 file path=usr/lib/python3.5/idlelib/idle_test/test_autoexpand.py
 file path=usr/lib/python3.5/idlelib/idle_test/test_calltips.py
+file path=usr/lib/python3.5/idlelib/idle_test/test_config_help.py
 file path=usr/lib/python3.5/idlelib/idle_test/test_config_name.py
 file path=usr/lib/python3.5/idlelib/idle_test/test_configdialog.py
 file path=usr/lib/python3.5/idlelib/idle_test/test_delegator.py
+file path=usr/lib/python3.5/idlelib/idle_test/test_editmenu.py
 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
@@ -735,11 +737,15 @@
 file path=usr/lib/python3.5/idlelib/idle_test/test_io.py
 file path=usr/lib/python3.5/idlelib/idle_test/test_parenmatch.py
 file path=usr/lib/python3.5/idlelib/idle_test/test_pathbrowser.py
+file path=usr/lib/python3.5/idlelib/idle_test/test_percolator.py
+file path=usr/lib/python3.5/idlelib/idle_test/test_replacedialog.py
 file path=usr/lib/python3.5/idlelib/idle_test/test_rstrip.py
+file path=usr/lib/python3.5/idlelib/idle_test/test_searchdialog.py
 file path=usr/lib/python3.5/idlelib/idle_test/test_searchdialogbase.py
 file path=usr/lib/python3.5/idlelib/idle_test/test_searchengine.py
 file path=usr/lib/python3.5/idlelib/idle_test/test_text.py
 file path=usr/lib/python3.5/idlelib/idle_test/test_textview.py
+file path=usr/lib/python3.5/idlelib/idle_test/test_undodelegator.py
 file path=usr/lib/python3.5/idlelib/idle_test/test_warning.py
 file path=usr/lib/python3.5/idlelib/idle_test/test_widgetredir.py
 file path=usr/lib/python3.5/idlelib/idlever.py
@@ -1130,12 +1136,13 @@
 file path=usr/lib/python3.5/test/badsyntax_future8.py pkg.tmp.autopyc=false
 file path=usr/lib/python3.5/test/badsyntax_future9.py pkg.tmp.autopyc=false
 file path=usr/lib/python3.5/test/badsyntax_pep3120.py pkg.tmp.autopyc=false
-file path=usr/lib/python3.5/test/buffer_tests.py
 file path=usr/lib/python3.5/test/bytecode_helper.py
+file path=usr/lib/python3.5/test/capath/0e4015b9.0
 file path=usr/lib/python3.5/test/capath/4e1295a3.0
 file path=usr/lib/python3.5/test/capath/5ed36f99.0
 file path=usr/lib/python3.5/test/capath/6e88d7b8.0
 file path=usr/lib/python3.5/test/capath/99d0fa06.0
+file path=usr/lib/python3.5/test/capath/ce7b8643.0
 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
@@ -1338,7 +1345,6 @@
 file path=usr/lib/python3.5/test/future_test1.py
 file path=usr/lib/python3.5/test/future_test2.py
 file path=usr/lib/python3.5/test/gdb_sample.py
-file path=usr/lib/python3.5/test/https_svn_python_org_root.pem
 file path=usr/lib/python3.5/test/ieee754.txt
 file path=usr/lib/python3.5/test/imghdrdata/python.bmp
 file path=usr/lib/python3.5/test/imghdrdata/python.exr
@@ -1829,6 +1835,7 @@
 file path=usr/lib/python3.5/test/test_openpty.py
 file path=usr/lib/python3.5/test/test_operator.py
 file path=usr/lib/python3.5/test/test_optparse.py
+file path=usr/lib/python3.5/test/test_ordered_dict.py
 file path=usr/lib/python3.5/test/test_os.py
 file path=usr/lib/python3.5/test/test_ossaudiodev.py
 file path=usr/lib/python3.5/test/test_osx_env.py
@@ -1838,7 +1845,6 @@
 file path=usr/lib/python3.5/test/test_peepholer.py
 file path=usr/lib/python3.5/test/test_pep247.py
 file path=usr/lib/python3.5/test/test_pep277.py
-file path=usr/lib/python3.5/test/test_pep292.py
 file path=usr/lib/python3.5/test/test_pep3120.py
 file path=usr/lib/python3.5/test/test_pep3131.py
 file path=usr/lib/python3.5/test/test_pep3151.py
@@ -1957,6 +1963,7 @@
 file path=usr/lib/python3.5/test/test_ttk_guionly.py
 file path=usr/lib/python3.5/test/test_ttk_textonly.py
 file path=usr/lib/python3.5/test/test_tuple.py
+file path=usr/lib/python3.5/test/test_turtle.py
 file path=usr/lib/python3.5/test/test_typechecks.py
 file path=usr/lib/python3.5/test/test_types.py
 file path=usr/lib/python3.5/test/test_typing.py
@@ -2018,6 +2025,7 @@
 file path=usr/lib/python3.5/test/tracedmodules/testmod.py
 file path=usr/lib/python3.5/test/ucredtest.py
 file path=usr/lib/python3.5/test/win_console_handler.py
+file path=usr/lib/python3.5/test/wrongcert.pem
 file path=usr/lib/python3.5/test/xmltestdata/simple-ns.xml
 file path=usr/lib/python3.5/test/xmltestdata/simple.xml
 file path=usr/lib/python3.5/test/xmltestdata/test.xml