# HG changeset patch # User John Beck # Date 1412459443 25200 # Node ID ed5024e47b530ed30887e5d0afe5067bbd6f925e # Parent dba288608e69446011043848b87fdb7dfbbe5235 PSARC 2014/183 Python 2.7.6 18251953 update Python 2.7 line to version 2.7.6 19004605 update Python 2.7 line to version 2.7.7 19308541 update Python 2.7 line to version 2.7.8 19284990 python 2.7.7 segfaults while under memory stress 17431625 64-bit python should use long rather than int for os.sysconf() return value 19164544 Python 2.7 test_tcl fails 19030238 Python 2.7 test_sysconfig fails - no module named _osx_support 19030198 Python 2.7 tests fail - import name error 19032456 more Python 2.7 tests failing with import errors 19022543 Python 2.7 test_lib2to3 fails diff -r dba288608e69 -r ed5024e47b53 components/python/python27/Makefile --- a/components/python/python27/Makefile Fri Oct 03 14:30:07 2014 -0700 +++ b/components/python/python27/Makefile Sat Oct 04 14:50:43 2014 -0700 @@ -26,20 +26,27 @@ PATH=/usr/bin:/usr/gnu/bin:/usr/sbin COMPONENT_NAME= Python -COMPONENT_VERSION= 2.7.3 +COMPONENT_VERSION= 2.7.8 COMPONENT_PROJECT_URL= http://python.org/ COMPONENT_SRC= $(COMPONENT_NAME)-$(COMPONENT_VERSION) -COMPONENT_ARCHIVE= $(COMPONENT_SRC).tar.bz2 +COMPONENT_ARCHIVE= $(COMPONENT_SRC).tar.xz COMPONENT_ARCHIVE_HASH= \ - sha256:726457e11cb153adc3f428aaf1901fc561a374c30e5e7da6742c0742a338663c + sha256:edde10a0cb7d14e2735e682882d5b287028d1485c456758154c19573db68075a COMPONENT_ARCHIVE_URL= $(COMPONENT_PROJECT_URL)ftp/python/$(COMPONENT_VERSION)/$(COMPONENT_ARCHIVE) COMPONENT_BUGDB= utility/python +TPNO= 18461 + include $(WS_TOP)/make-rules/prep.mk include $(WS_TOP)/make-rules/configure.mk include $(WS_TOP)/make-rules/ips.mk include $(WS_TOP)/make-rules/lint-libraries.mk +# Need to preserve timestamp for Grammar files. If the pickle files are older, +# Python will try to rebuild them. +PKGSEND_PUBLISH_OPTIONS += -T \*Grammar\*.txt +PKGSEND_PUBLISH_OPTIONS += -T \*Grammar\*.pickle + # We patch auto* files, so regenerate headers and configure COMPONENT_PREP_ACTION = \ (cd $(@D) ; autoheader ; autoconf) @@ -91,8 +98,6 @@ CONFIGURE_OPTIONS += --with-system-ffi CONFIGURE_OPTIONS += --without-gcc CONFIGURE_OPTIONS += --enable-ipv6 -CONFIGURE_OPTIONS += ac_cv_opt_olimit_ok=no -CONFIGURE_OPTIONS += ac_cv_olimit_ok=no CONFIGURE_OPTIONS += CPPFLAGS="$(CPPFLAGS)" CONFIGURE_OPTIONS += LDFLAGS="$(LDFLAGS)" CONFIGURE_OPTIONS += CFLAGS="$(CFLAGS)" @@ -102,27 +107,41 @@ COMPONENT_BUILD_ENV += DFLAGS="-$(BITS)" COMPONENT_BUILD_ENV += XPROFILE_DIR="$(XPROFILE_DIR)" -# patches/00-bits.patch removes some AC_CHECK_SIZEOF tests in order to -# generate a pyconfig.h that is both 32 and 64 bit compatible. We add this -# back to the environment so that configure can still work. configure.in and -# pyconfig.h.in should probably be rewhacked to do this more cleanly in the -# future. -CONFIGURE_OPTIONS.32 += ac_cv_sizeof_long=4 -CONFIGURE_OPTIONS.64 += ac_cv_sizeof_long=8 - # 64 bit shared objects need to go in a 64-bit directory COMPONENT_INSTALL_ARGS.64 += DESTSHARED=$(CONFIGURE_PREFIX)/lib/python2.7/lib-dynload -# common targets -build: $(BUILD_32_and_64) +# Setup pyconfig.h file to support 32 & 64 bit. +# If the /usr/lib/python2.7/lib2to3/*.pickle files are older than the related +# *.txt files in the same directory, it will rebuild them anytime you try to +# build a Python module. So here we also touch the pickle files to avoid this. +# +COMPONENT_POST_INSTALL_ACTION= \ + (cd $(PROTOUSRDIR) ; \ + $(MV) include/python2.7/pyconfig.h include/python2.7/pyconfig-$(BITS).h ; \ + $(TOUCH) lib/python2.7/lib2to3/*.pickle) -$(INSTALL_32): $(INSTALL_64) +ASLR_MODE = $(ASLR_ENABLE) +# common targets +$(INSTALL_32): $(INSTALL_64) +build: $(BUILD_32_and_64) install: $(INSTALL_32_and_64) +# Using "-uall,-network" ensures all tests are run except the network tests. +# The network tests contain many expected failures when run behind a firewall. +# The "-v" ensures verbose mode. You can set TESTOPTS_PYTHON_TEST to a +# particular test if you want to run just one test. For example, run gmake with +# "-k" so it continues and does both 32-bit and 64-bit tests, even if there is a +# failure, like this: +# $ TESTOPTS_PYTHON_TEST=test_sys gmake -k test +# Note that when a test succeeds, the builds/*/.tested file gets created. You +# may need to remove these files, or run "gmake clobber" or "gmake clean" +# between tests. +# +COMPONENT_TEST_ENV = EXTRATESTOPTS="-v -uall,-network $(TESTOPTS_PYTHON_TEST)" COMPONENT_TEST_TARGETS = test -test: $(TEST_32_and_64) +test: $(TEST_32_and_64) BUILD_PKG_DEPENDENCIES = $(BUILD_TOOLS) diff -r dba288608e69 -r ed5024e47b53 components/python/python27/files/pyconfig.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/components/python/python27/files/pyconfig.h Sat Oct 04 14:50:43 2014 -0700 @@ -0,0 +1,5 @@ +#ifdef _LP64 +#include +#else +#include +#endif diff -r dba288608e69 -r ed5024e47b53 components/python/python27/patches/00-bits.patch --- a/components/python/python27/patches/00-bits.patch Fri Oct 03 14:30:07 2014 -0700 +++ b/components/python/python27/patches/00-bits.patch Sat Oct 04 14:50:43 2014 -0700 @@ -1,8 +1,9 @@ # # This patch makes the pyconfig.h header file 32/64 bit friendly. +# As it is Solaris-specific, it is not suitable for upstream. # ---- Python-2.7.1/configure.in.orig Tue Jul 12 14:46:56 2011 -+++ Python-2.7.1/configure.in Tue Jul 12 14:47:05 2011 +--- Python-2.7.8/configure.ac.~1~ 2014-06-29 19:05:48.000000000 -0700 ++++ Python-2.7.8/configure.ac 2014-07-17 20:31:45.866247571 -0700 @@ -5,7 +5,7 @@ # Set VERSION so we only need to edit in one place (i.e., here) m4_define(PYTHON_VERSION, 2.7) @@ -12,132 +13,7 @@ AC_REVISION($Revision$) AC_INIT(python, PYTHON_VERSION, http://bugs.python.org/) -@@ -35,6 +35,41 @@ - #define Py_PYCONFIG_H - ]) - AH_BOTTOM([ -+ -+#include -+ -+/* -+ * Python originally defined these statically, which prevents a 32-64 python -+ * from working at all. -+ */ -+ -+#define SIZEOF_SHORT 2 -+#define SIZEOF_INT 4 -+#define SIZEOF_LONG_LONG 8 -+#define SIZEOF_FPOS_T 8 -+#define SIZEOF_OFF_T 8 -+#define SIZEOF_PTHREAD_T 4 -+ -+#ifdef _LP64 -+#define SIZEOF_LONG 8 -+#define SIZEOF_UINTPTR_T 8 -+#define SIZEOF_VOID_P 8 -+#define SIZEOF_TIME_T 8 -+#define SIZEOF_SIZE_T 8 -+#define SIZEOF_LONG_DOUBLE 16 -+#else -+#define SIZEOF_LONG 4 -+#define SIZEOF_UINTPTR_T 4 -+#define SIZEOF_VOID_P 4 -+#define SIZEOF_TIME_T 4 -+#define SIZEOF_SIZE_T 4 -+#if defined(__i386) -+#define SIZEOF_LONG_DOUBLE 12 -+#else -+#define SIZEOF_LONG_DOUBLE 16 -+#endif -+#endif -+ - /* Define the macros needed if on a UnixWare 7.x system. */ - #if defined(__USLC__) && defined(__SCO_VERSION__) - #define STRICT_SYSV_CURSES /* Don't use ncurses extensions */ -@@ -1474,13 +1509,13 @@ - # Sizes of various common basic types - # ANSI C requires sizeof(char) == 1, so no need to check it - AC_CHECK_SIZEOF(int, 4) --AC_CHECK_SIZEOF(long, 4) --AC_CHECK_SIZEOF(void *, 4) -+dnl AC_CHECK_SIZEOF(long, 4) -+dnl AC_CHECK_SIZEOF(void *, 4) - AC_CHECK_SIZEOF(short, 2) - AC_CHECK_SIZEOF(float, 4) - AC_CHECK_SIZEOF(double, 8) - AC_CHECK_SIZEOF(fpos_t, 4) --AC_CHECK_SIZEOF(size_t, 4) -+dnl AC_CHECK_SIZEOF(size_t, 4) - AC_CHECK_SIZEOF(pid_t, 4) - - AC_MSG_CHECKING(for long long support) -@@ -1501,9 +1536,9 @@ - have_long_double=yes - ],[]) - AC_MSG_RESULT($have_long_double) --if test "$have_long_double" = yes ; then --AC_CHECK_SIZEOF(long double, 12) --fi -+dnl if test "$have_long_double" = yes ; then -+dnl AC_CHECK_SIZEOF(long double, 12) -+dnl fi - - AC_MSG_CHECKING(for _Bool support) - have_c99_bool=no -@@ -1517,7 +1552,7 @@ - fi - - AC_CHECK_TYPES(uintptr_t, -- [AC_CHECK_SIZEOF(uintptr_t, 4)], -+ [], - [], [#ifdef HAVE_STDINT_H - #include - #endif -@@ -1534,8 +1569,8 @@ - AC_MSG_CHECKING(whether to enable large file support) - if test "$have_long_long" = yes - then --if test "$ac_cv_sizeof_off_t" -gt "$ac_cv_sizeof_long" -a \ -- "$ac_cv_sizeof_long_long" -ge "$ac_cv_sizeof_off_t"; then -+dnl if test "$ac_cv_sizeof_off_t" -gt "$ac_cv_sizeof_long" -a \ -+dnl "$ac_cv_sizeof_long_long" -ge "$ac_cv_sizeof_off_t"; then - AC_DEFINE(HAVE_LARGEFILE_SUPPORT, 1, - [Defined to enable large file support when an off_t is bigger than a long - and long long is available and at least as big as an off_t. You may need -@@ -1542,21 +1577,21 @@ - to add some flags for configuration and compilation to enable this mode. - (For Solaris and Linux, the necessary defines are already defined.)]) - AC_MSG_RESULT(yes) -+dnl else -+dnl AC_MSG_RESULT(no) -+dnl fi - else - AC_MSG_RESULT(no) - fi --else -- AC_MSG_RESULT(no) --fi - --AC_CHECK_SIZEOF(time_t, [], [ --#ifdef HAVE_SYS_TYPES_H --#include --#endif --#ifdef HAVE_TIME_H --#include --#endif --]) -+dnl AC_CHECK_SIZEOF(time_t, [], [ -+dnl #ifdef HAVE_SYS_TYPES_H -+dnl #include -+dnl #endif -+dnl #ifdef HAVE_TIME_H -+dnl #include -+dnl #endif -+dnl ]) - - # if have pthread_t then define SIZEOF_PTHREAD_T - ac_save_cc="$CC" -@@ -1906,12 +1941,6 @@ +@@ -2092,12 +2092,6 @@ if test -z "$CCSHARED" then case $ac_sys_system/$ac_sys_release in diff -r dba288608e69 -r ed5024e47b53 components/python/python27/patches/01-ext-stdio.patch --- a/components/python/python27/patches/01-ext-stdio.patch Fri Oct 03 14:30:07 2014 -0700 +++ b/components/python/python27/patches/01-ext-stdio.patch Sat Oct 04 14:50:43 2014 -0700 @@ -1,3 +1,6 @@ +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 @@ -6,6 +6,13 @@ diff -r dba288608e69 -r ed5024e47b53 components/python/python27/patches/02-setup.patch --- a/components/python/python27/patches/02-setup.patch Fri Oct 03 14:30:07 2014 -0700 +++ b/components/python/python27/patches/02-setup.patch Sat Oct 04 14:50:43 2014 -0700 @@ -1,22 +1,27 @@ ---- Python-2.7.1/setup.py.~1~ Sun Oct 31 11:40:21 2010 -+++ Python-2.7.1/setup.py Fri Jul 15 15:04:56 2011 -@@ -369,8 +369,8 @@ +This patch modifies the setup script to support Solaris. +As it is Solaris-specific, it is not suitable for upstream. + +--- Python-2.7.8/setup.py.~1~ 2014-06-29 19:05:48.000000000 -0700 ++++ Python-2.7.8/setup.py 2014-07-17 20:37:57.419011542 -0700 +@@ -437,9 +437,9 @@ def detect_modules(self): # Ensure that /usr/local is always used -- add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') -- add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') -+ #add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') -+ #add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') +- if not cross_compiling: +- add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') +- add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') ++ # if not cross_compiling: ++ # add_dir_to_list(self.compiler.library_dirs, '/usr/local/lib') ++ # add_dir_to_list(self.compiler.include_dirs, '/usr/local/include') + if cross_compiling: + self.add_gcc_paths() self.add_multiarch_paths() - - # Add paths specified in the environment variables LDFLAGS and -@@ -657,6 +657,13 @@ +@@ -763,6 +763,13 @@ ['/usr/lib/termcap'], 'termcap'): readline_libs.append('termcap') + -+ if platform == 'sunos5': ++ if host_platform == 'sunos5': + # insert '-zrecord' before the readline libraries that we + # want to link with to avoid rl_insert() elimination + readline_extra_link_args = ('-Wl,-zrecord','-lreadline','-lncurses') @@ -25,20 +30,21 @@ exts.append( Extension('readline', ['readline.c'], library_dirs=['/usr/lib/termcap'], extra_link_args=readline_extra_link_args, -@@ -677,6 +684,7 @@ - +@@ -784,7 +791,7 @@ # socket(2) - exts.append( Extension('_socket', ['socketmodule.c'], -+ libraries = ['socket', 'nsl'], - depends = ['socketmodule.h']) ) + exts.append( Extension('_socket', ['socketmodule.c', 'timemodule.c'], + depends=['socketmodule.h'], +- libraries=math_libs) ) ++ libraries=math_libs + ['socket', 'nsl']) ) # Detect SSL support for the socket module (via _ssl) search_for_ssl_incs_in = [ -@@ -1443,9 +1451,14 @@ + '/usr/local/ssl/include', +@@ -1585,9 +1592,14 @@ sysconfig.get_config_var('POSIX_SEMAPHORES_NOT_ENABLED')): multiprocessing_srcs.append('_multiprocessing/semaphore.c') + multiproc_libs = [] -+ if platform == 'sunos5': ++ if host_platform == 'sunos5': + multiproc_libs = [ "xnet" ] + if sysconfig.get_config_var('WITH_THREAD'): @@ -48,7 +54,7 @@ include_dirs=["Modules/_multiprocessing"])) else: missing.append('_multiprocessing') -@@ -1896,7 +1909,8 @@ +@@ -2081,7 +2088,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. @@ -56,5 +62,5 @@ + #extra_link_args.append('-mimpure-text') + pass - elif sys.platform.startswith('hp-ux'): + elif host_platform.startswith('hp-ux'): extra_link_args.append('-fPIC') diff -r dba288608e69 -r ed5024e47b53 components/python/python27/patches/03-vendor-packages.patch --- a/components/python/python27/patches/03-vendor-packages.patch Fri Oct 03 14:30:07 2014 -0700 +++ b/components/python/python27/patches/03-vendor-packages.patch Sat Oct 04 14:50:43 2014 -0700 @@ -1,4 +1,6 @@ -diff --git Python-2.7.1/Lib/site-packages/vendor-packages.pth Python2.7.1/Lib/site-packages/vendor-packages.pth +This patch makes Python support the vendor-packages directory. +As it is Solaris-specific, it is not suitable for upstream. + --- /dev/null Sat Feb 12 00:21:26 2011 +++ Python-2.7.1/Lib/site-packages/vendor-packages.pth Sat Feb 12 00:47:05 2011 @@ -0,0 +1,1 @@ diff -r dba288608e69 -r ed5024e47b53 components/python/python27/patches/04-solaris-64-bit.patch --- a/components/python/python27/patches/04-solaris-64-bit.patch Fri Oct 03 14:30:07 2014 -0700 +++ b/components/python/python27/patches/04-solaris-64-bit.patch Sat Oct 04 14:50:43 2014 -0700 @@ -1,6 +1,11 @@ ---- Python-2.7.1/Lib/distutils/command/build_ext.py.orig Fri Jul 15 15:32:28 2011 -+++ Python-2.7.1/Lib/distutils/command/build_ext.py Fri Jul 15 15:37:00 2011 -@@ -637,6 +637,10 @@ +This patch ensures that 64-bit shared objects are in a subdirectory named +"64". Note that changes to the Lib/distutils/tests/test_build.py and +Lib/distutils/tests/test_install.py avoid running tests that fail due to +this patch. As this is Solaris-specific, it is not suitable for upstream. + +--- Python-2.7.6/Lib/distutils/command/build_ext.py.~1~ 2013-11-09 23:36:40.000000000 -0800 ++++ Python-2.7.6/Lib/distutils/command/build_ext.py 2014-05-14 12:47:04.342901439 -0700 +@@ -634,6 +634,10 @@ filename = self.get_ext_filename(ext_name) filename = os.path.split(filename)[-1] @@ -11,7 +16,7 @@ if not self.inplace: # no further work needed # returning : -@@ -677,7 +681,14 @@ +@@ -674,7 +678,14 @@ so_ext = get_config_var('SO') if os.name == 'nt' and self.debug: return os.path.join(*ext_path) + '_d' + so_ext @@ -27,9 +32,9 @@ def get_export_symbols (self, ext): """Return the list of symbols that a shared extension has to ---- Python-2.7.1/Python/import.c.orig Fri Jul 15 15:41:33 2011 -+++ Python-2.7.1/Python/import.c Fri Jul 15 15:46:55 2011 -@@ -1197,6 +1197,57 @@ +--- Python-2.7.6/Python/import.c.~1~ 2013-11-09 23:36:41.000000000 -0800 ++++ Python-2.7.6/Python/import.c 2014-05-14 12:53:34.233016586 -0700 +@@ -1288,6 +1288,57 @@ static int find_init_module(char *); /* Forward */ static struct filedescr importhookdescr = {"", "", IMP_HOOK}; @@ -87,10 +92,10 @@ static struct filedescr * find_module(char *fullname, char *subname, PyObject *path, char *buf, size_t buflen, FILE **p_fp, PyObject **p_loader) -@@ -1214,11 +1265,10 @@ +@@ -1302,11 +1353,10 @@ static struct filedescr fd_builtin = {"", "", C_BUILTIN}; static struct filedescr fd_package = {"", "", PKG_DIRECTORY}; - char name[MAXPATHLEN+1]; + char *name; -#if defined(PYOS_OS2) size_t saved_len; size_t saved_namelen; @@ -100,15 +105,14 @@ if (p_loader != NULL) *p_loader = NULL; -@@ -1437,7 +1487,6 @@ +@@ -1513,15 +1563,17 @@ + } + } } - #endif - #endif -#if defined(PYOS_OS2) /* take a snapshot of the module spec for restoration * after the 8 character DLL hackery */ -@@ -1444,8 +1493,11 @@ saved_buf = strdup(buf); saved_len = len; saved_namelen = namelen; @@ -121,7 +125,7 @@ #if defined(PYOS_OS2) && defined(HAVE_DYNAMIC_LOADING) /* OS/2 limits DLLs to 8 character names (w/o extension) -@@ -1486,14 +1538,13 @@ +@@ -1562,21 +1614,20 @@ fp = NULL; } } @@ -138,7 +142,6 @@ /* don't need/want the module name snapshot anymore */ if (saved_buf) { -@@ -1500,7 +1551,7 @@ free(saved_buf); saved_buf = NULL; } diff -r dba288608e69 -r ed5024e47b53 components/python/python27/patches/05-dtrace.patch --- a/components/python/python27/patches/05-dtrace.patch Fri Oct 03 14:30:07 2014 -0700 +++ b/components/python/python27/patches/05-dtrace.patch Sat Oct 04 14:50:43 2014 -0700 @@ -1,6 +1,15 @@ ---- Python-2.7.1/Makefile.pre.in.~1~ Thu Oct 14 06:37:30 2010 -+++ Python-2.7.1/Makefile.pre.in Mon Jul 18 14:53:46 2011 -@@ -198,6 +198,7 @@ +This patch adds Python dtrace support. Note it is necessary to modify +test_sys.py to add an integer to the frameobject structure size since this +patch adds "int f_calllineno" to the structure, so this test does not fail. +The patch comes from upstream: +http://www.jcea.es/artic/python_dtrace-2_7_7_af8ecf2352e1.txt +http://www.jcea.es/artic/python_dtrace.htm +Follow http://bugs.python.org/issue13405 for plans to get it +integrated into the main tree. + +--- Python-2.7.6/Makefile.pre.in.~1~ 2013-11-09 23:36:41.000000000 -0800 ++++ Python-2.7.6/Makefile.pre.in 2014-05-14 12:54:43.824219677 -0700 +@@ -218,6 +218,7 @@ # Used of signalmodule.o is not available SIGNAL_OBJS= @SIGNAL_OBJS@ @@ -8,7 +17,7 @@ ########################################################################## # Grammar -@@ -298,6 +299,7 @@ +@@ -341,6 +342,7 @@ Python/formatter_unicode.o \ Python/formatter_string.o \ Python/$(DYNLOADFILE) \ @@ -16,7 +25,7 @@ $(LIBOBJS) \ $(MACHDEP_OBJS) \ $(THREADOBJ) -@@ -599,6 +601,18 @@ +@@ -664,6 +666,18 @@ Python/formatter_string.o: $(srcdir)/Python/formatter_string.c \ $(STRINGLIB_HEADERS) @@ -35,8 +44,8 @@ ############################################################################ # Header files ---- Python-2.7.1/Include/frameobject.h.~1~ Fri May 8 17:23:21 2009 -+++ Python-2.7.1/Include/frameobject.h Mon Jul 18 14:53:46 2011 +--- Python-2.7.6/Include/frameobject.h.~1~ 2013-11-09 23:36:39.000000000 -0800 ++++ Python-2.7.6/Include/frameobject.h 2014-05-14 13:03:19.938777249 -0700 @@ -44,6 +44,7 @@ PyCode_Addr2Line to calculate the line from the current bytecode index. */ @@ -45,10 +54,9 @@ int f_iblock; /* index in f_blockstack */ PyTryBlock f_blockstack[CO_MAXBLOCKS]; /* for try and loop blocks */ PyObject *f_localsplus[1]; /* locals+stack, dynamically sized */ - ---- Python-2.7.1/Objects/frameobject.c.~1~ Sun May 9 09:46:46 2010 -+++ Python-2.7.1/Objects/frameobject.c Mon Jul 18 15:03:52 2011 -@@ -736,6 +736,7 @@ +--- 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 @@ f->f_tstate = tstate; f->f_lasti = -1; @@ -56,8 +64,8 @@ f->f_lineno = code->co_firstlineno; f->f_iblock = 0; ---- Python-2.7.1/Python/ceval.c.~1~ Fri Sep 24 22:27:12 2010 -+++ Python-2.7.1/Python/ceval.c Mon Jul 18 15:15:35 2011 +--- Python-2.7.8/Python/ceval.c.~1~ 2014-06-29 19:05:46.000000000 -0700 ++++ Python-2.7.8/Python/ceval.c 2014-07-17 20:39:49.843868592 -0700 @@ -19,6 +19,11 @@ #include @@ -70,7 +78,7 @@ #ifndef WITH_TSC #define READ_TIMESTAMP(var) -@@ -671,7 +676,56 @@ +@@ -678,6 +683,55 @@ NULL); } @@ -85,7 +93,7 @@ + filename = PyString_AsString(f->f_code->co_filename); + fname = PyString_AsString(f->f_code->co_name); + lineno = PyCode_Addr2Line(f->f_code, f->f_lasti); - ++ + PYTHON_FUNCTION_ENTRY((char *)filename, (char *)fname, lineno); + + /* @@ -123,11 +131,10 @@ +#define dtrace_entry() +#define dtrace_return() +#endif -+ + /* Interpreter main loop */ - PyObject * -@@ -682,9 +736,84 @@ +@@ -689,9 +743,84 @@ return PyEval_EvalFrameEx(f, 0); } @@ -161,9 +168,9 @@ + + + - PyObject * - PyEval_EvalFrameEx(PyFrameObject *f, int throwflag) - { ++PyObject * ++PyEval_EvalFrameEx(PyFrameObject *f, int throwflag) ++{ + volatile PyObject *f2; + f2 = PyEval_EvalFrameExReal(0, 0, 0, 0, 0, 0, f, throwflag); + return (PyObject *)f2; @@ -195,9 +202,9 @@ + +#else /* __amd64 || __sparc */ + -+PyObject * -+PyEval_EvalFrameEx(PyFrameObject *f, int throwflag) -+{ + PyObject * + PyEval_EvalFrameEx(PyFrameObject *f, int throwflag) + { + +#endif /* __amd64 || __sparc */ + @@ -212,7 +219,7 @@ #ifdef DXPAIRS int lastopcode = 0; #endif -@@ -909,6 +1038,11 @@ +@@ -916,6 +1045,11 @@ } } @@ -224,7 +231,7 @@ co = f->f_code; names = co->co_names; consts = co->co_consts; -@@ -2659,6 +2793,9 @@ +@@ -2673,6 +2807,9 @@ PyObject **sp; PCALL(PCALL_ALL); sp = stack_pointer; @@ -234,7 +241,7 @@ #ifdef WITH_TSC x = call_function(&sp, oparg, &intr0, &intr1); #else -@@ -2700,6 +2837,9 @@ +@@ -2714,6 +2851,9 @@ } else Py_INCREF(func); sp = stack_pointer; @@ -244,7 +251,7 @@ READ_TIMESTAMP(intr0); x = ext_do_call(func, &sp, flags, na, nk); READ_TIMESTAMP(intr1); -@@ -3000,6 +3140,10 @@ +@@ -3014,6 +3154,10 @@ /* pop frame */ exit_eval_frame: @@ -255,8 +262,6 @@ Py_LeaveRecursiveCall(); tstate->frame = f->f_back; -diff --git Python-2.6.4/Python/phelper.d Python-2.6.4/Python/phelper.d -new file mode 100644 --- /dev/null +++ Python-2.6.4/Python/phelper.d @@ -0,0 +1,139 @@ @@ -414,3 +419,14 @@ +#pragma D attributes Private/Private/Common provider python function +#pragma D attributes Evolving/Evolving/Common provider python name +#pragma D attributes Evolving/Evolving/Common provider python args +--- Python-2.7.7/Lib/test/test_sys.py.~1~ 2014-05-31 11:58:39.000000000 -0700 ++++ Python-2.7.7/Lib/test/test_sys.py 2014-06-02 10:44:39.318709539 -0700 +@@ -594,7 +594,7 @@ + nfrees = len(x.f_code.co_freevars) + extras = x.f_code.co_stacksize + x.f_code.co_nlocals +\ + ncells + nfrees - 1 +- check(x, vsize('12P3i' + CO_MAXBLOCKS*'3i' + 'P' + extras*'P')) ++ check(x, vsize('12P4i' + CO_MAXBLOCKS*'3i' + 'P' + extras*'P')) + # function + def func(): pass + check(func, size('9P')) diff -r dba288608e69 -r ed5024e47b53 components/python/python27/patches/06-ucred.patch --- a/components/python/python27/patches/06-ucred.patch Fri Oct 03 14:30:07 2014 -0700 +++ b/components/python/python27/patches/06-ucred.patch Sat Oct 04 14:50:43 2014 -0700 @@ -1,5 +1,6 @@ -diff --git Python-2.6.4/Modules/ucred.c Python-2.6.4/Modules/ucred.c -new file mode 100644 +This patch provides Python ucred support. It may be contributed upstream at +some point, but the suitability (or lack thereof) has not yet been determined. + --- /dev/null +++ Python-2.6.4/Modules/ucred.c @@ -0,0 +1,390 @@ @@ -393,10 +394,9 @@ + + PyModule_AddObject(m, "ucred", (PyObject *)&pyucred_type); +} -diff --git Python-2.6.4/setup.py Python-2.6.4/setup.py ---- Python-2.6.4/setup.py -+++ Python-2.6.4/setup.py -@@ -1277,6 +1277,13 @@ +--- Python-2.7.8/setup.py.~2~ 2014-07-17 20:41:55.688200021 -0700 ++++ Python-2.7.8/setup.py 2014-07-17 20:41:55.733063564 -0700 +@@ -1542,6 +1542,13 @@ else: missing.append('dl') @@ -410,12 +410,10 @@ # Thomas Heller's _ctypes module self.detect_ctypes(inc_dirs, lib_dirs) -diff --git Python-2.6.4/Lib/test/ucredtext.py Python-2.6.4/Lib/test/ucredtext.py -new file mode 100644 --- /dev/null 2011-02-12 03:14:16.000000000 -0600 +++ Python-2.6.4/Lib/test/ucredtest.py 2011-01-20 13:52:42.945657919 -0600 @@ -0,0 +1,45 @@ -+#!/usr/bin/python2.6 ++#!/usr/bin/python2.7 + +import ucred +import os diff -r dba288608e69 -r ed5024e47b53 components/python/python27/patches/07-dlpi.patch --- a/components/python/python27/patches/07-dlpi.patch Fri Oct 03 14:30:07 2014 -0700 +++ b/components/python/python27/patches/07-dlpi.patch Sat Oct 04 14:50:43 2014 -0700 @@ -1,5 +1,6 @@ -diff --git Python-2.6.4/Modules/dlpimodule.c Python-2.6.4/Modules/dlpimodule.c -new file mode 100644 +This patch provides Python dlpi support. It may be contributed upstream at +some point, but the suitability (or lack thereof) has not yet been determined. + --- /dev/null +++ Python-2.6.4/Modules/dlpimodule.c @@ -0,0 +1,1205 @@ @@ -1208,10 +1209,9 @@ + PyModule_AddIntConstant(mod, "IDLE", DL_IDLE); + PyModule_AddIntConstant(mod, "SYSERR", DL_SYSERR); +} -diff --git Python-2.6.4/setup.py Python-2.6.4/setup.py ---- Python-2.6.4/setup.py -+++ Python-2.6.4/setup.py -@@ -1284,6 +1284,12 @@ +--- Python-2.7.8/setup.py.~3~ 2014-07-17 20:43:48.715101356 -0700 ++++ Python-2.7.8/setup.py 2014-07-17 20:43:48.731874294 -0700 +@@ -1549,6 +1549,12 @@ exts.append( Extension('ucred', ['ucred.c'], libraries = ['tsol']) ) @@ -1224,12 +1224,10 @@ # Thomas Heller's _ctypes module self.detect_ctypes(inc_dirs, lib_dirs) -diff --git Python-2.6.4/lib/test/dlpitest.py Python-2.6.4/Lib/test/dlpitest.py -new file mode 100644 --- /dev/null 2011-02-12 03:13:26.000000000 -0600 +++ Python-2.6.4/Lib/test/dlpitest.py 2011-01-20 13:52:42.895865414 -0600 @@ -0,0 +1,96 @@ -+#!/usr/bin/python2.6 ++#!/usr/bin/python2.7 + +import dlpi +import sys diff -r dba288608e69 -r ed5024e47b53 components/python/python27/patches/08-encoding-alias.patch --- a/components/python/python27/patches/08-encoding-alias.patch Fri Oct 03 14:30:07 2014 -0700 +++ b/components/python/python27/patches/08-encoding-alias.patch Sat Oct 04 14:50:43 2014 -0700 @@ -1,6 +1,8 @@ -diff --git Python-2.6.4/Lib/encodings/aliases.py Python-2.6.4/Lib/encodings/aliases.py ---- Python-2.6.4/Lib/encodings/aliases.py -+++ Python-2.6.4/Lib/encodings/aliases.py +Add missing encoding aliases. It may be contributed upstream at some point, +but the suitability (or lack thereof) has not yet been determined. + +--- Python-2.7.6/Lib/encodings/aliases.py.~1~ 2013-11-09 23:36:40.000000000 -0800 ++++ Python-2.7.6/Lib/encodings/aliases.py 2014-05-14 13:12:20.046910463 -0700 @@ -73,6 +73,7 @@ # cp1251 codec @@ -9,7 +11,7 @@ 'windows_1251' : 'cp1251', # cp1252 codec -@@ -217,6 +218,7 @@ +@@ -222,6 +223,7 @@ 'u_jis' : 'euc_jp', # euc_kr codec @@ -17,7 +19,7 @@ 'euckr' : 'euc_kr', 'korean' : 'euc_kr', 'ksc5601' : 'euc_kr', -@@ -457,6 +459,7 @@ +@@ -462,6 +464,7 @@ 'shiftjis' : 'shift_jis', 'sjis' : 'shift_jis', 's_jis' : 'shift_jis', @@ -25,7 +27,7 @@ # shift_jis_2004 codec 'shiftjis2004' : 'shift_jis_2004', -@@ -476,6 +479,7 @@ +@@ -481,6 +484,7 @@ 'tis_620_0' : 'tis_620', 'tis_620_2529_0' : 'tis_620', 'tis_620_2529_1' : 'tis_620', diff -r dba288608e69 -r ed5024e47b53 components/python/python27/patches/09-rbac.patch --- a/components/python/python27/patches/09-rbac.patch Fri Oct 03 14:30:07 2014 -0700 +++ b/components/python/python27/patches/09-rbac.patch Sat Oct 04 14:50:43 2014 -0700 @@ -1,5 +1,6 @@ -diff --git Python-2.6.4/Modules/authattr.c Python-2.6.4/Modules/authattr.c -new file mode 100644 +This patch provides Python RBAC support. It may be contributed upstream at +some point, but the suitability (or lack thereof) has not yet been determined. + --- /dev/null +++ Python-2.6.4/Modules/authattr.c @@ -0,0 +1,261 @@ @@ -1252,10 +1253,9 @@ + 0, /* tp_alloc */ + Userattr_new, /* tp_new */ +}; -diff --git Python-2.6.4/setup.py Python-2.6.4/setup.py ---- Python-2.6.4/setup.py -+++ Python-2.6.4/setup.py -@@ -1290,6 +1290,22 @@ +--- Python-2.7.8/setup.py.~4~ 2014-07-17 20:44:54.016102084 -0700 ++++ Python-2.7.8/setup.py 2014-07-17 20:44:54.040843123 -0700 +@@ -1555,6 +1555,22 @@ exts.append( Extension('dlpi', ['dlpimodule.c'], libraries = ['dlpi']) ) @@ -1278,12 +1278,10 @@ # Thomas Heller's _ctypes module self.detect_ctypes(inc_dirs, lib_dirs) -diff --git Python-2.6.4/Lib/test/privrbac.py Python-2.6.4/Lib/test/privrbac.py -new file mode 100644 --- /dev/null 2011-02-12 03:13:57.000000000 -0600 +++ Python-2.6.4/Lib/test/privrbactest.py 2011-01-20 13:52:42.862305331 -0600 @@ -0,0 +1,289 @@ -+#!/usr/bin/python2.6 ++#!/usr/bin/python2.7 +# +# CDDL HEADER START +# diff -r dba288608e69 -r ed5024e47b53 components/python/python27/patches/10-cflags.patch --- a/components/python/python27/patches/10-cflags.patch Fri Oct 03 14:30:07 2014 -0700 +++ b/components/python/python27/patches/10-cflags.patch Sat Oct 04 14:50:43 2014 -0700 @@ -1,6 +1,8 @@ ---- Python-2.6.4/configure.in.orig Fri Nov 4 12:03:26 2011 -+++ Python-2.6.4/configure.in Fri Nov 4 12:04:05 2011 -@@ -919,7 +919,7 @@ +This patch is Solaris-specific and thus not suitable for upstream. + +--- Python-2.7.6/configure.ac.~2~ 2014-05-14 13:20:24.767295632 -0700 ++++ Python-2.7.6/configure.ac 2014-05-14 13:20:25.052695991 -0700 +@@ -1083,7 +1083,7 @@ ;; *) @@ -8,13 +10,4 @@ + OPT="" ;; esac - -@@ -1110,6 +1110,8 @@ - # environment? - Darwin*) - ;; -+ SunOS*) -+ ;; - *) - BASECFLAGS="$BASECFLAGS -OPT:Olimit=0" - ;; + fi diff -r dba288608e69 -r ed5024e47b53 components/python/python27/patches/10-closerange.patch --- a/components/python/python27/patches/10-closerange.patch Fri Oct 03 14:30:07 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ ---- Python-2.7.1/Modules/posixmodule.c Fri Nov 26 09:35:50 2010 -+++ Python-2.7.1/Modules/posixmodule.c Fri Nov 4 09:41:24 2011 -@@ -6442,16 +6442,34 @@ - "closerange(fd_low, fd_high)\n\n\ - Closes all file descriptors in [fd_low, fd_high), ignoring errors."); - -+static int -+close_func(void *lohi, int fd) -+{ -+ int lo = ((int *)lohi)[0]; -+ int hi = ((int *)lohi)[1]; -+ -+ if (fd >= hi) -+ return (1); -+ else if (fd >= lo) -+ close(fd); -+ -+ return (0); -+} -+ - static PyObject * - posix_closerange(PyObject *self, PyObject *args) - { - int fd_from, fd_to, i; -+ int lohi[2]; -+ - if (!PyArg_ParseTuple(args, "ii:closerange", &fd_from, &fd_to)) - return NULL; - Py_BEGIN_ALLOW_THREADS -- for (i = fd_from; i < fd_to; i++) -- if (_PyVerify_fd(i)) -- close(i); -+ -+ lohi[0] = fd_from; -+ lohi[1] = fd_to; -+ fdwalk(close_func, lohi); -+ - Py_END_ALLOW_THREADS - Py_RETURN_NONE; - } diff -r dba288608e69 -r ed5024e47b53 components/python/python27/patches/11-closerange.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/components/python/python27/patches/11-closerange.patch Sat Oct 04 14:50:43 2014 -0700 @@ -0,0 +1,43 @@ +This patch uses fdwalk(3c) to close file descriptors; as that function is not +widely implemented, this is unsuitable for upstream. + +--- Python-2.7.7/Modules/posixmodule.c.~1~ 2014-05-31 11:58:40.000000000 -0700 ++++ Python-2.7.7/Modules/posixmodule.c 2014-06-02 10:49:30.052826955 -0700 +@@ -6607,16 +6607,34 @@ + "closerange(fd_low, fd_high)\n\n\ + Closes all file descriptors in [fd_low, fd_high), ignoring errors."); + ++static int ++close_func(void *lohi, int fd) ++{ ++ int lo = ((int *)lohi)[0]; ++ int hi = ((int *)lohi)[1]; ++ ++ if (fd >= hi) ++ return (1); ++ else if (fd >= lo) ++ close(fd); ++ ++ return (0); ++} ++ + static PyObject * + posix_closerange(PyObject *self, PyObject *args) + { + int fd_from, fd_to, i; ++ int lohi[2]; ++ + if (!PyArg_ParseTuple(args, "ii:closerange", &fd_from, &fd_to)) + return NULL; + Py_BEGIN_ALLOW_THREADS +- for (i = fd_from; i < fd_to; i++) +- if (_PyVerify_fd(i)) +- close(i); ++ ++ lohi[0] = fd_from; ++ lohi[1] = fd_to; ++ fdwalk(close_func, lohi); ++ + Py_END_ALLOW_THREADS + Py_RETURN_NONE; + } diff -r dba288608e69 -r ed5024e47b53 components/python/python27/patches/12-studio-profile.patch --- a/components/python/python27/patches/12-studio-profile.patch Fri Oct 03 14:30:07 2014 -0700 +++ b/components/python/python27/patches/12-studio-profile.patch Sat Oct 04 14:50:43 2014 -0700 @@ -2,10 +2,11 @@ Studio instead of gcc. The unfortunate repetition of options seen below is a workaround for build peculiarities and to meet Studio's requirement that the profiling options be used at all steps of the build -- not just -compilation. ---- Python-2.6.4/Makefile.pre.in.orig Thu Nov 3 15:14:03 2011 -+++ Python-2.6.4/Makefile.pre.in Thu Nov 3 15:14:11 2011 -@@ -360,9 +360,9 @@ +compilation. As it is Solaris-specific, it is not suitable for upstream. + +--- Python-2.7.8/Makefile.pre.in.~2~ 2014-07-17 20:46:10.626664937 -0700 ++++ Python-2.7.8/Makefile.pre.in 2014-07-17 20:46:10.736821411 -0700 +@@ -413,28 +413,37 @@ profile-opt: @echo "Building with support for profile generation:" $(MAKE) clean @@ -16,7 +17,6 @@ $(MAKE) run_profile_task @echo "Rebuilding with profile guided optimizations:" $(MAKE) clean -@@ -369,18 +369,27 @@ $(MAKE) build_all_use_profile build_all_generate_profile: @@ -27,6 +27,7 @@ + BLDSHARED="$(BLDSHARED) -xprofile=collect:$(XPROFILE_DIR)" run_profile_task: + : # FIXME: can't run for a cross build - ./$(BUILDPYTHON) $(PROFILE_TASK) + LD_LIBRARY_PATH=. ./$(BUILDPYTHON) $(PROFILE_TASK) @@ -48,19 +49,7 @@ # Build the interpreter -@@ -395,10 +404,7 @@ - - # Build the shared modules - sharedmods: $(BUILDPYTHON) -- @case $$MAKEFLAGS in \ -- *s*) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py -q build;; \ -- *) $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build;; \ -- esac -+ $(RUNSHARED) CC='$(CC)' LDSHARED='$(BLDSHARED)' OPT='$(OPT)' ./$(BUILDPYTHON) -E $(srcdir)/setup.py build - - # Build static library - # avoid long command lines, same as LIBRARY_OBJS -@@ -1173,7 +1179,7 @@ +@@ -1298,7 +1307,7 @@ -rm -f Lib/lib2to3/*Grammar*.pickle profile-removal: diff -r dba288608e69 -r ed5024e47b53 components/python/python27/patches/13-pic-compile.patch --- a/components/python/python27/patches/13-pic-compile.patch Fri Oct 03 14:30:07 2014 -0700 +++ b/components/python/python27/patches/13-pic-compile.patch Sat Oct 04 14:50:43 2014 -0700 @@ -1,8 +1,10 @@ ---- Python-2.7.1/Lib/distutils/sysconfig.py.orig 2012-03-26 09:24:18.614278009 -0700 -+++ Python-2.7.1/Lib/distutils/sysconfig.py 2012-03-27 09:58:03.446132438 -0700 -@@ -173,6 +173,15 @@ - cflags = cflags + ' ' + os.environ['CPPFLAGS'] - ldshared = ldshared + ' ' + os.environ['CPPFLAGS'] +This patch is a Solaris-specific hack; it will not be submitted upstream. + +--- Python-2.7.6/Lib/distutils/sysconfig.py.~1~ 2013-11-09 23:36:40.000000000 -0800 ++++ Python-2.7.6/Lib/distutils/sysconfig.py 2014-05-14 13:33:21.453593946 -0700 +@@ -208,6 +208,15 @@ + else: + archiver = ar + ' ' + ar_flags + # Force PIC compilation. Determine if GNU compiler or otherwise + # and set the PIC flag(s) accordingly. Defaults to Studio compiler. diff -r dba288608e69 -r ed5024e47b53 components/python/python27/patches/14-py_db.patch --- a/components/python/python27/patches/14-py_db.patch Fri Oct 03 14:30:07 2014 -0700 +++ b/components/python/python27/patches/14-py_db.patch Sat Oct 04 14:50:43 2014 -0700 @@ -1,7 +1,9 @@ -diff --git Python-2.7.1/Makefile.pre.in.orig Python-2.7.1/Makefile.pre.in ---- Python-2.7.1/Makefile.pre.in.orig Sun Feb 13 19:37:16 2011 -+++ Python-2.7.1/Makefile.pre.in Sun Feb 13 20:55:04 2011 -@@ -364,7 +364,7 @@ +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.7/Makefile.pre.in.~3~ 2014-06-02 10:54:32.421086337 -0700 ++++ Python-2.7.7/Makefile.pre.in 2014-06-02 10:54:32.438134113 -0700 +@@ -407,7 +407,7 @@ # Default target all: build_all @@ -10,7 +12,7 @@ # Compile a binary with gcc profile guided optimization. profile-opt: -@@ -709,6 +709,19 @@ +@@ -778,6 +778,19 @@ $(LIBRARY_OBJS) $(MODOBJS) Modules/python.o: $(PYTHON_HEADERS) @@ -30,7 +32,7 @@ ###################################################################### -@@ -773,7 +786,7 @@ +@@ -842,7 +855,7 @@ $(TESTPYTHON) $(TESTPROG) $(MEMTESTOPTS) # Install everything @@ -38,10 +40,7 @@ +install: @FRAMEWORKINSTALLFIRST@ altinstall bininstall maninstall @FRAMEWORKINSTALLLAST@ install-py_db # Install almost everything without disturbing previous versions - altinstall: @FRAMEWORKALTINSTALLFIRST@ altbininstall libinstall inclinstall libainstall \ - -diff --git Python-2.7.1/py_db/check_offsets.c Python-2.7.1/py_db/check_offsets.c -new file mode 100644 + altinstall: @FRAMEWORKALTINSTALLFIRST@ altbininstall libinstall inclinstall \ --- /dev/null +++ Python-2.7.1/py_db/check_offsets.c @@ -0,0 +1,87 @@ diff -r dba288608e69 -r ed5024e47b53 components/python/python27/patches/15-get_wch.patch --- a/components/python/python27/patches/15-get_wch.patch Fri Oct 03 14:30:07 2014 -0700 +++ b/components/python/python27/patches/15-get_wch.patch Sat Oct 04 14:50:43 2014 -0700 @@ -1,5 +1,9 @@ ---- Python-2.7.3/Modules/_cursesmodule.c.orig 2012-09-27 10:17:54.934886883 -0700 -+++ Python-2.7.3/Modules/_cursesmodule.c 2012-09-27 10:21:19.861160806 -0700 +This patch adds wget_wch support to the curses module. It may be contributed +upstream at some point, but the suitability (or lack thereof) has not yet +been determined. + +--- Python-2.7.6/Modules/_cursesmodule.c.~1~ 2013-11-09 23:36:41.000000000 -0800 ++++ Python-2.7.6/Modules/_cursesmodule.c 2014-05-14 13:36:59.388642793 -0700 @@ -861,6 +861,37 @@ } @@ -38,7 +42,7 @@ PyCursesWindow_GetKey(PyCursesWindowObject *self, PyObject *args) { int x, y; -@@ -1570,6 +1601,7 @@ +@@ -1572,6 +1603,7 @@ {"getbegyx", (PyCFunction)PyCursesWindow_getbegyx, METH_NOARGS}, {"getbkgd", (PyCFunction)PyCursesWindow_GetBkgd, METH_NOARGS}, {"getch", (PyCFunction)PyCursesWindow_GetCh, METH_VARARGS}, diff -r dba288608e69 -r ed5024e47b53 components/python/python27/patches/16-CVE-2013-4238.py27.patch --- a/components/python/python27/patches/16-CVE-2013-4238.py27.patch Fri Oct 03 14:30:07 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,250 +0,0 @@ -# CVE-2013-4238 -# http://bugs.python.org/issue18709 -# -diff -r 9ddc63c039ba Lib/test/nullbytecert.pem ---- /dev/null Thu Jan 01 00:00:00 1970 +0000 -+++ b/Lib/test/nullbytecert.pem Sun Aug 11 18:13:17 2013 +0200 -@@ -0,0 +1,90 @@ -+Certificate: -+ Data: -+ Version: 3 (0x2) -+ Serial Number: 0 (0x0) -+ Signature Algorithm: sha1WithRSAEncryption -+ Issuer: C=US, ST=Oregon, L=Beaverton, O=Python Software Foundation, OU=Python Core Development, CN=null.python.org\x00example.org/emailAddress=python-dev@python.org -+ Validity -+ Not Before: Aug 7 13:11:52 2013 GMT -+ Not After : Aug 7 13:12:52 2013 GMT -+ Subject: C=US, ST=Oregon, L=Beaverton, O=Python Software Foundation, OU=Python Core Development, CN=null.python.org\x00example.org/emailAddress=python-dev@python.org -+ Subject Public Key Info: -+ Public Key Algorithm: rsaEncryption -+ Public-Key: (2048 bit) -+ Modulus: -+ 00:b5:ea:ed:c9:fb:46:7d:6f:3b:76:80:dd:3a:f3: -+ 03:94:0b:a7:a6:db:ec:1d:df:ff:23:74:08:9d:97: -+ 16:3f:a3:a4:7b:3e:1b:0e:96:59:25:03:a7:26:e2: -+ 88:a9:cf:79:cd:f7:04:56:b0:ab:79:32:6e:59:c1: -+ 32:30:54:eb:58:a8:cb:91:f0:42:a5:64:27:cb:d4: -+ 56:31:88:52:ad:cf:bd:7f:f0:06:64:1f:cc:27:b8: -+ a3:8b:8c:f3:d8:29:1f:25:0b:f5:46:06:1b:ca:02: -+ 45:ad:7b:76:0a:9c:bf:bb:b9:ae:0d:16:ab:60:75: -+ ae:06:3e:9c:7c:31:dc:92:2f:29:1a:e0:4b:0c:91: -+ 90:6c:e9:37:c5:90:d7:2a:d7:97:15:a3:80:8f:5d: -+ 7b:49:8f:54:30:d4:97:2c:1c:5b:37:b5:ab:69:30: -+ 68:43:d3:33:78:4b:02:60:f5:3c:44:80:a1:8f:e7: -+ f0:0f:d1:5e:87:9e:46:cf:62:fc:f9:bf:0c:65:12: -+ f1:93:c8:35:79:3f:c8:ec:ec:47:f5:ef:be:44:d5: -+ ae:82:1e:2d:9a:9f:98:5a:67:65:e1:74:70:7c:cb: -+ d3:c2:ce:0e:45:49:27:dc:e3:2d:d4:fb:48:0e:2f: -+ 9e:77:b8:14:46:c0:c4:36:ca:02:ae:6a:91:8c:da: -+ 2f:85 -+ Exponent: 65537 (0x10001) -+ X509v3 extensions: -+ X509v3 Basic Constraints: critical -+ CA:FALSE -+ X509v3 Subject Key Identifier: -+ 88:5A:55:C0:52:FF:61:CD:52:A3:35:0F:EA:5A:9C:24:38:22:F7:5C -+ X509v3 Key Usage: -+ Digital Signature, Non Repudiation, Key Encipherment -+ X509v3 Subject Alternative Name: -+ ************************************************************* -+ WARNING: The values for DNS, email and URI are WRONG. OpenSSL -+ doesn't print the text after a NULL byte. -+ ************************************************************* -+ DNS:altnull.python.org, email:null@python.org, URI:http://null.python.org, IP Address:192.0.2.1, IP Address:2001:DB8:0:0:0:0:0:1 -+ Signature Algorithm: sha1WithRSAEncryption -+ ac:4f:45:ef:7d:49:a8:21:70:8e:88:59:3e:d4:36:42:70:f5: -+ a3:bd:8b:d7:a8:d0:58:f6:31:4a:b1:a4:a6:dd:6f:d9:e8:44: -+ 3c:b6:0a:71:d6:7f:b1:08:61:9d:60:ce:75:cf:77:0c:d2:37: -+ 86:02:8d:5e:5d:f9:0f:71:b4:16:a8:c1:3d:23:1c:f1:11:b3: -+ 56:6e:ca:d0:8d:34:94:e6:87:2a:99:f2:ae:ae:cc:c2:e8:86: -+ de:08:a8:7f:c5:05:fa:6f:81:a7:82:e6:d0:53:9d:34:f4:ac: -+ 3e:40:fe:89:57:7a:29:a4:91:7e:0b:c6:51:31:e5:10:2f:a4: -+ 60:76:cd:95:51:1a:be:8b:a1:b0:fd:ad:52:bd:d7:1b:87:60: -+ d2:31:c7:17:c4:18:4f:2d:08:25:a3:a7:4f:b7:92:ca:e2:f5: -+ 25:f1:54:75:81:9d:b3:3d:61:a2:f7:da:ed:e1:c6:6f:2c:60: -+ 1f:d8:6f:c5:92:05:ab:c9:09:62:49:a9:14:ad:55:11:cc:d6: -+ 4a:19:94:99:97:37:1d:81:5f:8b:cf:a3:a8:96:44:51:08:3d: -+ 0b:05:65:12:eb:b6:70:80:88:48:72:4f:c6:c2:da:cf:cd:8e: -+ 5b:ba:97:2f:60:b4:96:56:49:5e:3a:43:76:63:04:be:2a:f6: -+ c1:ca:a9:94 -+-----BEGIN CERTIFICATE----- -+MIIE2DCCA8CgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBxTELMAkGA1UEBhMCVVMx -+DzANBgNVBAgMBk9yZWdvbjESMBAGA1UEBwwJQmVhdmVydG9uMSMwIQYDVQQKDBpQ -+eXRob24gU29mdHdhcmUgRm91bmRhdGlvbjEgMB4GA1UECwwXUHl0aG9uIENvcmUg -+RGV2ZWxvcG1lbnQxJDAiBgNVBAMMG251bGwucHl0aG9uLm9yZwBleGFtcGxlLm9y -+ZzEkMCIGCSqGSIb3DQEJARYVcHl0aG9uLWRldkBweXRob24ub3JnMB4XDTEzMDgw -+NzEzMTE1MloXDTEzMDgwNzEzMTI1MlowgcUxCzAJBgNVBAYTAlVTMQ8wDQYDVQQI -+DAZPcmVnb24xEjAQBgNVBAcMCUJlYXZlcnRvbjEjMCEGA1UECgwaUHl0aG9uIFNv -+ZnR3YXJlIEZvdW5kYXRpb24xIDAeBgNVBAsMF1B5dGhvbiBDb3JlIERldmVsb3Bt -+ZW50MSQwIgYDVQQDDBtudWxsLnB5dGhvbi5vcmcAZXhhbXBsZS5vcmcxJDAiBgkq -+hkiG9w0BCQEWFXB5dGhvbi1kZXZAcHl0aG9uLm9yZzCCASIwDQYJKoZIhvcNAQEB -+BQADggEPADCCAQoCggEBALXq7cn7Rn1vO3aA3TrzA5QLp6bb7B3f/yN0CJ2XFj+j -+pHs+Gw6WWSUDpybiiKnPec33BFawq3kyblnBMjBU61ioy5HwQqVkJ8vUVjGIUq3P -+vX/wBmQfzCe4o4uM89gpHyUL9UYGG8oCRa17dgqcv7u5rg0Wq2B1rgY+nHwx3JIv -+KRrgSwyRkGzpN8WQ1yrXlxWjgI9de0mPVDDUlywcWze1q2kwaEPTM3hLAmD1PESA -+oY/n8A/RXoeeRs9i/Pm/DGUS8ZPINXk/yOzsR/XvvkTVroIeLZqfmFpnZeF0cHzL -+08LODkVJJ9zjLdT7SA4vnne4FEbAxDbKAq5qkYzaL4UCAwEAAaOB0DCBzTAMBgNV -+HRMBAf8EAjAAMB0GA1UdDgQWBBSIWlXAUv9hzVKjNQ/qWpwkOCL3XDALBgNVHQ8E -+BAMCBeAwgZAGA1UdEQSBiDCBhYIeYWx0bnVsbC5weXRob24ub3JnAGV4YW1wbGUu -+Y29tgSBudWxsQHB5dGhvbi5vcmcAdXNlckBleGFtcGxlLm9yZ4YpaHR0cDovL251 -+bGwucHl0aG9uLm9yZwBodHRwOi8vZXhhbXBsZS5vcmeHBMAAAgGHECABDbgAAAAA -+AAAAAAAAAAEwDQYJKoZIhvcNAQEFBQADggEBAKxPRe99SaghcI6IWT7UNkJw9aO9 -+i9eo0Fj2MUqxpKbdb9noRDy2CnHWf7EIYZ1gznXPdwzSN4YCjV5d+Q9xtBaowT0j -+HPERs1ZuytCNNJTmhyqZ8q6uzMLoht4IqH/FBfpvgaeC5tBTnTT0rD5A/olXeimk -+kX4LxlEx5RAvpGB2zZVRGr6LobD9rVK91xuHYNIxxxfEGE8tCCWjp0+3ksri9SXx -+VHWBnbM9YaL32u3hxm8sYB/Yb8WSBavJCWJJqRStVRHM1koZlJmXNx2BX4vPo6iW -+RFEIPQsFZRLrtnCAiEhyT8bC2s/Njlu6ly9gtJZWSV46Q3ZjBL4q9sHKqZQ= -+-----END CERTIFICATE----- -diff -r 9ddc63c039ba Lib/test/test_ssl.py ---- a/Lib/test/test_ssl.py Sun Aug 11 13:04:50 2013 +0300 -+++ b/Lib/test/test_ssl.py Sun Aug 11 18:13:17 2013 +0200 -@@ -25,6 +25,7 @@ - HOST = test_support.HOST - CERTFILE = None - SVN_PYTHON_ORG_ROOT_CERT = None -+NULLBYTECERT = None - - def handle_error(prefix): - exc_format = ' '.join(traceback.format_exception(*sys.exc_info())) -@@ -123,6 +124,27 @@ - ('DNS', 'projects.forum.nokia.com')) - ) - -+ def test_parse_cert_CVE_2013_4073(self): -+ p = ssl._ssl._test_decode_cert(NULLBYTECERT) -+ if test_support.verbose: -+ sys.stdout.write("\n" + pprint.pformat(p) + "\n") -+ subject = ((('countryName', 'US'),), -+ (('stateOrProvinceName', 'Oregon'),), -+ (('localityName', 'Beaverton'),), -+ (('organizationName', 'Python Software Foundation'),), -+ (('organizationalUnitName', 'Python Core Development'),), -+ (('commonName', 'null.python.org\x00example.org'),), -+ (('emailAddress', 'python-dev@python.org'),)) -+ self.assertEqual(p['subject'], subject) -+ self.assertEqual(p['issuer'], subject) -+ self.assertEqual(p['subjectAltName'], -+ (('DNS', 'altnull.python.org\x00example.com'), -+ ('email', 'null@python.org\x00user@example.org'), -+ ('URI', 'http://null.python.org\x00http://example.org'), -+ ('IP Address', '192.0.2.1'), -+ ('IP Address', '2001:DB8:0:0:0:0:0:1\n')) -+ ) -+ - def test_DER_to_PEM(self): - with open(SVN_PYTHON_ORG_ROOT_CERT, 'r') as f: - pem = f.read() -@@ -1360,7 +1382,7 @@ - - - def test_main(verbose=False): -- global CERTFILE, SVN_PYTHON_ORG_ROOT_CERT, NOKIACERT -+ global CERTFILE, SVN_PYTHON_ORG_ROOT_CERT, NOKIACERT, NULLBYTECERT - CERTFILE = os.path.join(os.path.dirname(__file__) or os.curdir, - "keycert.pem") - SVN_PYTHON_ORG_ROOT_CERT = os.path.join( -@@ -1368,10 +1390,13 @@ - "https_svn_python_org_root.pem") - NOKIACERT = os.path.join(os.path.dirname(__file__) or os.curdir, - "nokia.pem") -+ NULLBYTECERT = os.path.join(os.path.dirname(__file__) or os.curdir, -+ "nullbytecert.pem") - - if (not os.path.exists(CERTFILE) or - not os.path.exists(SVN_PYTHON_ORG_ROOT_CERT) or -- not os.path.exists(NOKIACERT)): -+ not os.path.exists(NOKIACERT) or -+ not os.path.exists(NULLBYTECERT)): - raise test_support.TestFailed("Can't read certificate files!") - - tests = [BasicTests, BasicSocketTests] -diff -r 9ddc63c039ba Modules/_ssl.c ---- a/Modules/_ssl.c Sun Aug 11 13:04:50 2013 +0300 -+++ b/Modules/_ssl.c Sun Aug 11 18:13:17 2013 +0200 -@@ -741,8 +741,13 @@ - - /* get a rendering of each name in the set of names */ - -+ int gntype; -+ ASN1_STRING *as = NULL; -+ - name = sk_GENERAL_NAME_value(names, j); -- if (name->type == GEN_DIRNAME) { -+ gntype = name-> type; -+ switch (gntype) { -+ case GEN_DIRNAME: - - /* we special-case DirName as a tuple of tuples of attributes */ - -@@ -764,11 +769,61 @@ - goto fail; - } - PyTuple_SET_ITEM(t, 1, v); -+ break; - -- } else { -+ case GEN_EMAIL: -+ case GEN_DNS: -+ case GEN_URI: -+ /* GENERAL_NAME_print() doesn't handle NUL bytes in ASN1_string -+ correctly. */ -+ t = PyTuple_New(2); -+ if (t == NULL) -+ goto fail; -+ switch (gntype) { -+ case GEN_EMAIL: -+ v = PyUnicode_FromString("email"); -+ as = name->d.rfc822Name; -+ break; -+ case GEN_DNS: -+ v = PyUnicode_FromString("DNS"); -+ as = name->d.dNSName; -+ break; -+ case GEN_URI: -+ v = PyUnicode_FromString("URI"); -+ as = name->d.uniformResourceIdentifier; -+ break; -+ } -+ if (v == NULL) { -+ Py_DECREF(t); -+ goto fail; -+ } -+ PyTuple_SET_ITEM(t, 0, v); -+ v = PyString_FromStringAndSize((char *)ASN1_STRING_data(as), -+ ASN1_STRING_length(as)); -+ if (v == NULL) { -+ Py_DECREF(t); -+ goto fail; -+ } -+ PyTuple_SET_ITEM(t, 1, v); -+ break; - -+ default: - /* for everything else, we use the OpenSSL print form */ -- -+ switch (gntype) { -+ /* check for new general name type */ -+ case GEN_OTHERNAME: -+ case GEN_X400: -+ case GEN_EDIPARTY: -+ case GEN_IPADD: -+ case GEN_RID: -+ break; -+ default: -+ if (PyErr_Warn(PyExc_RuntimeWarning, -+ "Unknown general name type") == -1) { -+ goto fail; -+ } -+ break; -+ } - (void) BIO_reset(biobuf); - GENERAL_NAME_print(biobuf, name); - len = BIO_gets(biobuf, buf, sizeof(buf)-1); -@@ -794,6 +849,7 @@ - goto fail; - } - PyTuple_SET_ITEM(t, 1, v); -+ break; - } - - /* and add that rendering to the list */ diff -r dba288608e69 -r ed5024e47b53 components/python/python27/patches/16-ossaudiodev.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/components/python/python27/patches/16-ossaudiodev.patch Sat Oct 04 14:50:43 2014 -0700 @@ -0,0 +1,62 @@ +This patch is needed to make Python understand it can build the OSS plugin. +Some OSS ioctls are not supported on Solaris, so they are ifdef'f out. As +the patch is Solaris-specific, it is not suitable for upstream. + +--- Python-2.7.7/Modules/ossaudiodev.c.~1~ 2014-05-31 11:58:40.000000000 -0700 ++++ Python-2.7.7/Modules/ossaudiodev.c 2014-06-02 10:58:12.132478970 -0700 +@@ -1037,6 +1037,7 @@ + _EXPORT_INT(m, SOUND_MIXER_MONITOR); + #endif + ++#ifndef __sun + /* Expose all the ioctl numbers for masochists who like to do this + stuff directly. */ + _EXPORT_INT(m, SNDCTL_COPR_HALT); +@@ -1049,6 +1050,7 @@ + _EXPORT_INT(m, SNDCTL_COPR_SENDMSG); + _EXPORT_INT(m, SNDCTL_COPR_WCODE); + _EXPORT_INT(m, SNDCTL_COPR_WDATA); ++#endif + #ifdef SNDCTL_DSP_BIND_CHANNEL + _EXPORT_INT(m, SNDCTL_DSP_BIND_CHANNEL); + #endif +@@ -1070,8 +1072,12 @@ + _EXPORT_INT(m, SNDCTL_DSP_GETSPDIF); + #endif + _EXPORT_INT(m, SNDCTL_DSP_GETTRIGGER); ++#ifdef SNDCTL_DSP_MAPINBUF + _EXPORT_INT(m, SNDCTL_DSP_MAPINBUF); ++#endif ++#ifdef SNDCTL_DSP_MAPOUTBUF + _EXPORT_INT(m, SNDCTL_DSP_MAPOUTBUF); ++#endif + _EXPORT_INT(m, SNDCTL_DSP_NONBLOCK); + _EXPORT_INT(m, SNDCTL_DSP_POST); + #ifdef SNDCTL_DSP_PROFILE +@@ -1091,6 +1097,7 @@ + _EXPORT_INT(m, SNDCTL_DSP_STEREO); + _EXPORT_INT(m, SNDCTL_DSP_SUBDIVIDE); + _EXPORT_INT(m, SNDCTL_DSP_SYNC); ++#ifndef __sun + _EXPORT_INT(m, SNDCTL_FM_4OP_ENABLE); + _EXPORT_INT(m, SNDCTL_FM_LOAD_INSTR); + _EXPORT_INT(m, SNDCTL_MIDI_INFO); +@@ -1132,4 +1139,5 @@ + _EXPORT_INT(m, SNDCTL_TMR_STOP); + _EXPORT_INT(m, SNDCTL_TMR_TEMPO); + _EXPORT_INT(m, SNDCTL_TMR_TIMEBASE); ++#endif + } +--- Python-2.7.8/setup.py.~5~ 2014-07-17 20:47:50.251398063 -0700 ++++ Python-2.7.8/setup.py 2014-07-17 20:47:50.359537973 -0700 +@@ -1638,8 +1638,8 @@ + else: + missing.append('linuxaudiodev') + +- if (host_platform in ('linux2', 'freebsd4', 'freebsd5', 'freebsd6', +- 'freebsd7', 'freebsd8') ++ if (host_platform in ('sunos5', 'linux2', 'freebsd4', 'freebsd5', ++ 'freebsd6', 'freebsd7', 'freebsd8') + or host_platform.startswith("gnukfreebsd")): + exts.append( Extension('ossaudiodev', ['ossaudiodev.c']) ) + else: diff -r dba288608e69 -r ed5024e47b53 components/python/python27/patches/17-recvfrom_into.patch --- a/components/python/python27/patches/17-recvfrom_into.patch Fri Oct 03 14:30:07 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,18 +0,0 @@ -# Fix from upstream: http://bugs.python.org/issue20246 - ---- Python-2.6.8/Modules/socketmodule.c 2012-04-09 16:07:34.000000000 -0700 -+++ Python-2.6.8/Modules/socketmodule.c 2014-02-12 15:27:10.106066138 -0800 -@@ -2677,6 +2677,13 @@ - recvlen = buflen; - } - -+ /* Check if the buffer is large enough */ -+ if (buflen < recvlen) { -+ PyErr_SetString(PyExc_ValueError, -+ "buffer too small for requested bytes"); -+ goto error; -+ } -+ - readlen = sock_recvfrom_guts(s, buf.buf, recvlen, flags, &addr); - if (readlen < 0) { - /* Return an error */ diff -r dba288608e69 -r ed5024e47b53 components/python/python27/patches/18-osconf-long.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/components/python/python27/patches/18-osconf-long.patch Sat Oct 04 14:50:43 2014 -0700 @@ -0,0 +1,14 @@ +# http://bugs.python.org/issue17964 was fixed in 3.4 but not back-ported so we +# need this patch for 2.7 . + +--- Python-2.7.7/Modules/posixmodule.c.~2~ 2014-06-02 11:01:10.919544709 -0700 ++++ Python-2.7.7/Modules/posixmodule.c 2014-06-02 11:01:11.009553336 -0700 +@@ -8499,7 +8499,7 @@ + int name; + + if (PyArg_ParseTuple(args, "O&:sysconf", conv_sysconf_confname, &name)) { +- int value; ++ long value; + + errno = 0; + value = sysconf(name); diff -r dba288608e69 -r ed5024e47b53 components/python/python27/patches/20-bsddb-harmful.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/components/python/python27/patches/20-bsddb-harmful.patch Sat Oct 04 14:50:43 2014 -0700 @@ -0,0 +1,28 @@ +Prior to 2.7.4, the bsddb module was a no-op, as it did not get built. +Starting with 2.7.4, the behavior is different, and it causes tests to +dump core. So skip it. The module is removed in Python 3, so this patch +is not being submitted upstream. + +--- Python-2.7.7/Makefile.pre.in.~4~ 2014-06-02 11:08:40.909703116 -0700 ++++ Python-2.7.7/Makefile.pre.in 2014-06-02 11:08:40.977964319 -0700 +@@ -975,7 +975,7 @@ + email email/mime email/test email/test/data \ + json json/tests \ + sqlite3 sqlite3/test \ +- logging bsddb bsddb/test csv importlib wsgiref \ ++ logging csv importlib wsgiref \ + lib2to3 lib2to3/fixes lib2to3/pgen2 lib2to3/tests \ + lib2to3/tests/data lib2to3/tests/data/fixers lib2to3/tests/data/fixers/myfixes \ + ctypes ctypes/test ctypes/macholib \ +--- Python-2.7.8/setup.py.~6~ 2014-07-17 20:49:23.834928506 -0700 ++++ Python-2.7.8/setup.py 2014-07-17 20:49:23.872603149 -0700 +@@ -1067,7 +1067,8 @@ + db_dirs_to_check + lib_dirs, dblib ) + if dblib_file: + dblib_dir = [ os.path.abspath(os.path.dirname(dblib_file)) ] +- raise db_found ++ # Doesn't work; skip. ++ # raise db_found + else: + if db_setup_debug: print "db lib: ", dblib, "not found" + diff -r dba288608e69 -r ed5024e47b53 components/python/python27/patches/20-ctypes-util-find-library.patch --- a/components/python/python27/patches/20-ctypes-util-find-library.patch Fri Oct 03 14:30:07 2014 -0700 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ -This patch comes from upstream: http://bugs.python.org/issue5289 -If we ever upgrade to 2.7.4 or later, it will no longer be needed. - ---- Python-2.7.3/Lib/ctypes/util.py~ -+++ Python-2.7.3/Lib/ctypes/util.py -@@ -180,6 +180,35 @@ elif os.name == "posix": - res.sort(cmp= lambda x,y: cmp(_num_version(x), _num_version(y))) - return res[-1] - -+ elif sys.platform == "sunos5": -+ -+ def _findLib_crle(name, is64): -+ if not os.path.exists('/usr/bin/crle'): -+ return None -+ -+ if is64: -+ cmd = 'env LC_ALL=C /usr/bin/crle -64 2>/dev/null' -+ else: -+ cmd = 'env LC_ALL=C /usr/bin/crle 2>/dev/null' -+ -+ for line in os.popen(cmd).readlines(): -+ line = line.strip() -+ if line.startswith('Default Library Path (ELF):'): -+ paths = line.split()[4] -+ -+ if not paths: -+ return None -+ -+ for dir in paths.split(":"): -+ libfile = os.path.join(dir, "lib%s.so" % name) -+ if os.path.exists(libfile): -+ return libfile -+ -+ return None -+ -+ def find_library(name, is64 = False): -+ return _get_soname(_findLib_crle(name, is64) or _findLib_gcc(name)) -+ - else: - - def _findSoname_ldconfig(name): diff -r dba288608e69 -r ed5024e47b53 components/python/python27/patches/21-test_tcl.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/components/python/python27/patches/21-test_tcl.patch Sat Oct 04 14:50:43 2014 -0700 @@ -0,0 +1,35 @@ +This patch comes from upstream: http://bugs.python.org/issue21881 + +--- Python-2.7.8/Lib/test/test_tcl.py.~1~ 2014-06-29 19:05:37.000000000 -0700 ++++ Python-2.7.8/Lib/test/test_tcl.py 2014-07-17 20:50:53.804037105 -0700 +@@ -420,10 +420,9 @@ + self.assertEqual(passValue(float('inf')), float('inf')) + self.assertEqual(passValue(-float('inf')), -float('inf')) + else: +- f = float(passValue(float('nan'))) +- self.assertNotEqual(f, f) + self.assertEqual(float(passValue(float('inf'))), float('inf')) + self.assertEqual(float(passValue(-float('inf'))), -float('inf')) ++ # XXX NaN representation can be not parsable by float() + self.assertEqual(passValue((1, '2', (3.4,))), + (1, '2', (3.4,)) if self.wantobjects else '1 2 3.4') + +@@ -448,9 +447,6 @@ + expected = float(expected) + self.assertAlmostEqual(float(actual), expected, + delta=abs(expected) * 1e-10) +- def nan_eq(actual, expected): +- actual = float(actual) +- self.assertNotEqual(actual, actual) + + check(True, '1') + check(False, '0') +@@ -474,7 +470,7 @@ + check(f, f, eq=float_eq) + check(float('inf'), 'Inf', eq=float_eq) + check(-float('inf'), '-Inf', eq=float_eq) +- check(float('nan'), 'NaN', eq=nan_eq) ++ # XXX NaN representation can be not parsable by float() + check((), '') + check((1, (2,), (3, 4), '5 6', ()), '1 2 {3 4} {5 6} {}') + diff -r dba288608e69 -r ed5024e47b53 components/python/python27/python-27-tests.p5m --- a/components/python/python27/python-27-tests.p5m Fri Oct 03 14:30:07 2014 -0700 +++ b/components/python/python27/python-27-tests.p5m Sat Oct 04 14:50:43 2014 -0700 @@ -18,7 +18,7 @@ # # CDDL HEADER END # -# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved. # # python doesn't generate .pyc version of these test files. @@ -29,80 +29,22 @@ set name=pkg.fmri \ value=pkg:/runtime/python-27/tests@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION) set name=pkg.summary value="The Python tests" +# This package name has known conflicts with other packages in the WOS +set name=pkg.linted.pkglint.manifest004 value=true set name=com.oracle.info.description value="test cases for Python 2.7" -set name=com.oracle.info.tpno value=9104 +set name=com.oracle.info.tpno value=$(TPNO) set name=info.classification \ value=org.opensolaris.category.2008:Development/Python set name=info.source-url value=$(COMPONENT_ARCHIVE_URL) set name=info.upstream-url value=$(COMPONENT_PROJECT_URL) -set name=org.opensolaris.arc-caseid \ - value=PSARC/2008/514 \ - value=PSARC/2009/529 \ - value=PSARC/2011/XXX +set name=org.opensolaris.arc-caseid value=PSARC/2008/514 value=PSARC/2009/529 \ + value=PSARC/2014/183 # PSARC 2008/514 Python interface to dlpi(7P) # PSARC 2009/529 Python interface to privileges(5) & rbac(5) +# PSARC 2014/183 Python 2.7.6 set name=org.opensolaris.consolidation value=$(CONSOLIDATION) - -# pkgdepend doesn't like python 2.7 yet - \ - default pkg.depend.bypass-generate .* > - -license python27.license license="PSFv2" - -dir path=usr -dir path=usr/lib -dir path=usr/lib/python2.7 -dir path=usr/lib/python2.7/bsddb/test -dir path=usr/lib/python2.7/ctypes/test -dir path=usr/lib/python2.7/distutils/tests -dir path=usr/lib/python2.7/email/test -dir path=usr/lib/python2.7/email/test/data -dir path=usr/lib/python2.7/idlelib -dir path=usr/lib/python2.7/json/tests -dir path=usr/lib/python2.7/lib-dynload -dir path=usr/lib/python2.7/lib-dynload/64 -dir path=usr/lib/python2.7/lib-tk/test -dir path=usr/lib/python2.7/lib-tk/test/test_tkinter -dir path=usr/lib/python2.7/lib-tk/test/test_ttk -dir path=usr/lib/python2.7/lib2to3/tests -dir path=usr/lib/python2.7/lib2to3/tests/data -dir path=usr/lib/python2.7/lib2to3/tests/data/fixers -dir path=usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes -dir path=usr/lib/python2.7/sqlite3/test -dir path=usr/lib/python2.7/test -dir path=usr/lib/python2.7/test/cjkencodings -dir path=usr/lib/python2.7/test/data -dir path=usr/lib/python2.7/test/decimaltestdata -dir path=usr/lib/python2.7/test/subprocessdata -dir path=usr/lib/python2.7/test/tracedmodules -dir path=usr/lib/python2.7/test/xmltestdata - -file path=usr/lib/python2.7/bsddb/test/__init__.py -file path=usr/lib/python2.7/bsddb/test/test_all.py -file path=usr/lib/python2.7/bsddb/test/test_associate.py -file path=usr/lib/python2.7/bsddb/test/test_basics.py -file path=usr/lib/python2.7/bsddb/test/test_compare.py -file path=usr/lib/python2.7/bsddb/test/test_compat.py -file path=usr/lib/python2.7/bsddb/test/test_cursor_pget_bug.py -file path=usr/lib/python2.7/bsddb/test/test_db.py -file path=usr/lib/python2.7/bsddb/test/test_dbenv.py -file path=usr/lib/python2.7/bsddb/test/test_dbobj.py -file path=usr/lib/python2.7/bsddb/test/test_dbshelve.py -file path=usr/lib/python2.7/bsddb/test/test_dbtables.py -file path=usr/lib/python2.7/bsddb/test/test_distributed_transactions.py -file path=usr/lib/python2.7/bsddb/test/test_early_close.py -file path=usr/lib/python2.7/bsddb/test/test_fileid.py -file path=usr/lib/python2.7/bsddb/test/test_get_none.py -file path=usr/lib/python2.7/bsddb/test/test_join.py -file path=usr/lib/python2.7/bsddb/test/test_lock.py -file path=usr/lib/python2.7/bsddb/test/test_misc.py -file path=usr/lib/python2.7/bsddb/test/test_pickle.py -file path=usr/lib/python2.7/bsddb/test/test_queue.py -file path=usr/lib/python2.7/bsddb/test/test_recno.py -file path=usr/lib/python2.7/bsddb/test/test_replication.py -file path=usr/lib/python2.7/bsddb/test/test_sequence.py -file path=usr/lib/python2.7/bsddb/test/test_thread.py +# file path=usr/lib/python2.7/ctypes/test/__init__.py file path=usr/lib/python2.7/ctypes/test/runtests.py file path=usr/lib/python2.7/ctypes/test/test_anon.py @@ -117,7 +59,6 @@ file path=usr/lib/python2.7/ctypes/test/test_cfuncs.py file path=usr/lib/python2.7/ctypes/test/test_checkretval.py file path=usr/lib/python2.7/ctypes/test/test_delattr.py -file path=usr/lib/python2.7/ctypes/test/test_errcheck.py file path=usr/lib/python2.7/ctypes/test/test_errno.py file path=usr/lib/python2.7/ctypes/test/test_find.py file path=usr/lib/python2.7/ctypes/test/test_frombuffer.py @@ -125,7 +66,6 @@ file path=usr/lib/python2.7/ctypes/test/test_functions.py file path=usr/lib/python2.7/ctypes/test/test_incomplete.py file path=usr/lib/python2.7/ctypes/test/test_init.py -file path=usr/lib/python2.7/ctypes/test/test_integers.py file path=usr/lib/python2.7/ctypes/test/test_internals.py file path=usr/lib/python2.7/ctypes/test/test_keeprefs.py file path=usr/lib/python2.7/ctypes/test/test_libc.py @@ -156,6 +96,7 @@ file path=usr/lib/python2.7/ctypes/test/test_values.py file path=usr/lib/python2.7/ctypes/test/test_varsize_struct.py file path=usr/lib/python2.7/ctypes/test/test_win32.py +file path=usr/lib/python2.7/ctypes/test/test_wintypes.py file path=usr/lib/python2.7/distutils/tests/Setup.sample file path=usr/lib/python2.7/distutils/tests/__init__.py file path=usr/lib/python2.7/distutils/tests/setuptools_build_ext.py @@ -256,6 +197,27 @@ file path=usr/lib/python2.7/email/test/test_email_codecs_renamed.py file path=usr/lib/python2.7/email/test/test_email_renamed.py file path=usr/lib/python2.7/email/test/test_email_torture.py +file path=usr/lib/python2.7/idlelib/idle_test/README.txt +file path=usr/lib/python2.7/idlelib/idle_test/__init__.py +file path=usr/lib/python2.7/idlelib/idle_test/htest.py +file path=usr/lib/python2.7/idlelib/idle_test/mock_idle.py +file path=usr/lib/python2.7/idlelib/idle_test/mock_tk.py +file path=usr/lib/python2.7/idlelib/idle_test/test_autocomplete.py +file path=usr/lib/python2.7/idlelib/idle_test/test_autoexpand.py +file path=usr/lib/python2.7/idlelib/idle_test/test_calltips.py +file path=usr/lib/python2.7/idlelib/idle_test/test_config_name.py +file path=usr/lib/python2.7/idlelib/idle_test/test_delegator.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_hyperparser.py +file path=usr/lib/python2.7/idlelib/idle_test/test_idlehistory.py +file path=usr/lib/python2.7/idlelib/idle_test/test_parenmatch.py +file path=usr/lib/python2.7/idlelib/idle_test/test_pathbrowser.py +file path=usr/lib/python2.7/idlelib/idle_test/test_rstrip.py +file path=usr/lib/python2.7/idlelib/idle_test/test_searchengine.py +file path=usr/lib/python2.7/idlelib/idle_test/test_text.py +file path=usr/lib/python2.7/idlelib/idle_test/test_textview.py +file path=usr/lib/python2.7/idlelib/idle_test/test_warning.py file path=usr/lib/python2.7/idlelib/testcode.py file path=usr/lib/python2.7/json/tests/__init__.py file path=usr/lib/python2.7/json/tests/test_check_circular.py @@ -273,6 +235,7 @@ file path=usr/lib/python2.7/json/tests/test_scanstring.py file path=usr/lib/python2.7/json/tests/test_separators.py file path=usr/lib/python2.7/json/tests/test_speedups.py +file path=usr/lib/python2.7/json/tests/test_tool.py file path=usr/lib/python2.7/json/tests/test_unicode.py file path=usr/lib/python2.7/lib-dynload/64/_ctypes_test.so file path=usr/lib/python2.7/lib-dynload/64/_testcapi.so @@ -281,19 +244,25 @@ file path=usr/lib/python2.7/lib-tk/test/README file path=usr/lib/python2.7/lib-tk/test/runtktests.py file path=usr/lib/python2.7/lib-tk/test/test_tkinter/__init__.py +file path=usr/lib/python2.7/lib-tk/test/test_tkinter/test_geometry_managers.py +file path=usr/lib/python2.7/lib-tk/test/test_tkinter/test_images.py file path=usr/lib/python2.7/lib-tk/test/test_tkinter/test_loadtk.py file path=usr/lib/python2.7/lib-tk/test/test_tkinter/test_text.py +file path=usr/lib/python2.7/lib-tk/test/test_tkinter/test_variables.py +file path=usr/lib/python2.7/lib-tk/test/test_tkinter/test_widgets.py file path=usr/lib/python2.7/lib-tk/test/test_ttk/__init__.py file path=usr/lib/python2.7/lib-tk/test/test_ttk/support.py file path=usr/lib/python2.7/lib-tk/test/test_ttk/test_extensions.py file path=usr/lib/python2.7/lib-tk/test/test_ttk/test_functions.py file path=usr/lib/python2.7/lib-tk/test/test_ttk/test_style.py file path=usr/lib/python2.7/lib-tk/test/test_ttk/test_widgets.py +file path=usr/lib/python2.7/lib-tk/test/widget_tests.py file path=usr/lib/python2.7/lib2to3/tests/__init__.py file path=usr/lib/python2.7/lib2to3/tests/data/README file path=usr/lib/python2.7/lib2to3/tests/data/bom.py file path=usr/lib/python2.7/lib2to3/tests/data/crlf.py file path=usr/lib/python2.7/lib2to3/tests/data/different_encoding.py +file path=usr/lib/python2.7/lib2to3/tests/data/false_encoding.py file path=usr/lib/python2.7/lib2to3/tests/data/fixers/bad_order.py file path=usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/__init__.py file path=usr/lib/python2.7/lib2to3/tests/data/fixers/myfixes/fix_explicit.py @@ -306,7 +275,8 @@ file path=usr/lib/python2.7/lib2to3/tests/data/infinite_recursion.py file path=usr/lib/python2.7/lib2to3/tests/data/py2_test_grammar.py file path=usr/lib/python2.7/lib2to3/tests/data/py3_test_grammar.py -file path=usr/lib/python2.7/lib2to3/tests/pytree_idempotency.py +file path=usr/lib/python2.7/lib2to3/tests/pytree_idempotency.py \ + pkg.depend.bypass-generate=.* file path=usr/lib/python2.7/lib2to3/tests/support.py file path=usr/lib/python2.7/lib2to3/tests/test_all_fixers.py file path=usr/lib/python2.7/lib2to3/tests/test_fixers.py @@ -328,10 +298,25 @@ file path=usr/lib/python2.7/test/185test.db file path=usr/lib/python2.7/test/Sine-1000Hz-300ms.aif file path=usr/lib/python2.7/test/__init__.py +file path=usr/lib/python2.7/test/audiodata/pluck-pcm16.aiff +file path=usr/lib/python2.7/test/audiodata/pluck-pcm16.au +file path=usr/lib/python2.7/test/audiodata/pluck-pcm16.wav +file path=usr/lib/python2.7/test/audiodata/pluck-pcm24.aiff +file path=usr/lib/python2.7/test/audiodata/pluck-pcm24.wav +file path=usr/lib/python2.7/test/audiodata/pluck-pcm32.aiff +file path=usr/lib/python2.7/test/audiodata/pluck-pcm32.au +file path=usr/lib/python2.7/test/audiodata/pluck-pcm32.wav +file path=usr/lib/python2.7/test/audiodata/pluck-pcm8.aiff +file path=usr/lib/python2.7/test/audiodata/pluck-pcm8.au +file path=usr/lib/python2.7/test/audiodata/pluck-pcm8.wav +file path=usr/lib/python2.7/test/audiodata/pluck-ulaw.aifc +file path=usr/lib/python2.7/test/audiodata/pluck-ulaw.au file path=usr/lib/python2.7/test/audiotest.au +file path=usr/lib/python2.7/test/audiotests.py file path=usr/lib/python2.7/test/autotest.py file path=usr/lib/python2.7/test/bad_coding.py file path=usr/lib/python2.7/test/bad_coding2.py +file path=usr/lib/python2.7/test/bad_coding3.py file path=usr/lib/python2.7/test/badcert.pem file path=usr/lib/python2.7/test/badkey.pem file path=usr/lib/python2.7/test/badsyntax_future3.py @@ -344,10 +329,9 @@ 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/cfgparser.1 -file usr/bin/check_offset \ - path=usr/lib/python2.7/test/check_offset mode=0555 -file usr/bin/$(MACH64)/check_offset \ - path=usr/lib/python2.7/test/check_offset64 mode=0555 +file usr/bin/check_offset path=usr/lib/python2.7/test/check_offset mode=0555 +file usr/bin/$(MACH64)/check_offset path=usr/lib/python2.7/test/check_offset64 \ + mode=0555 file path=usr/lib/python2.7/test/check_soundcard.vbs file path=usr/lib/python2.7/test/cjkencodings/big5-utf8.txt file path=usr/lib/python2.7/test/cjkencodings/big5.txt @@ -537,6 +521,17 @@ 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 +file path=usr/lib/python2.7/test/imghdrdata/python.jpg +file path=usr/lib/python2.7/test/imghdrdata/python.pbm +file path=usr/lib/python2.7/test/imghdrdata/python.pgm +file path=usr/lib/python2.7/test/imghdrdata/python.png +file path=usr/lib/python2.7/test/imghdrdata/python.ppm +file path=usr/lib/python2.7/test/imghdrdata/python.ras +file path=usr/lib/python2.7/test/imghdrdata/python.sgi +file path=usr/lib/python2.7/test/imghdrdata/python.tiff +file path=usr/lib/python2.7/test/imghdrdata/python.xbm file path=usr/lib/python2.7/test/infinite_reload.py file path=usr/lib/python2.7/test/inspect_fodder.py file path=usr/lib/python2.7/test/inspect_fodder2.py @@ -545,6 +540,7 @@ file path=usr/lib/python2.7/test/lock_tests.py file path=usr/lib/python2.7/test/mapping_tests.py file path=usr/lib/python2.7/test/math_testcases.txt +file path=usr/lib/python2.7/test/mp_fork_bomb.py file path=usr/lib/python2.7/test/nokia.pem file path=usr/lib/python2.7/test/nullbytecert.pem file path=usr/lib/python2.7/test/nullcert.pem @@ -564,21 +560,23 @@ file path=usr/lib/python2.7/test/relimport.py file path=usr/lib/python2.7/test/reperf.py file path=usr/lib/python2.7/test/sample_doctest.py +file path=usr/lib/python2.7/test/sample_doctest_no_docstrings.py +file path=usr/lib/python2.7/test/sample_doctest_no_doctests.py file path=usr/lib/python2.7/test/script_helper.py file path=usr/lib/python2.7/test/seq_tests.py file path=usr/lib/python2.7/test/sgml_input.html file path=usr/lib/python2.7/test/sha256.pem file path=usr/lib/python2.7/test/sortperf.py -file path=usr/lib/python2.7/test/ssl_cert.pem -file path=usr/lib/python2.7/test/ssl_key.pem file path=usr/lib/python2.7/test/string_tests.py file path=usr/lib/python2.7/test/subprocessdata/sigchild_ignore.py +file path=usr/lib/python2.7/test/symlink_support.py file path=usr/lib/python2.7/test/test_MimeWriter.py file path=usr/lib/python2.7/test/test_SimpleHTTPServer.py file path=usr/lib/python2.7/test/test_StringIO.py file path=usr/lib/python2.7/test/test___all__.py file path=usr/lib/python2.7/test/test___future__.py file path=usr/lib/python2.7/test/test__locale.py +file path=usr/lib/python2.7/test/test__osx_support.py file path=usr/lib/python2.7/test/test_abc.py file path=usr/lib/python2.7/test/test_abstract_numbers.py file path=usr/lib/python2.7/test/test_aepack.py @@ -703,6 +701,7 @@ file path=usr/lib/python2.7/test/test_fcntl.py file path=usr/lib/python2.7/test/test_file.py file path=usr/lib/python2.7/test/test_file2k.py +file path=usr/lib/python2.7/test/test_file_eintr.py file path=usr/lib/python2.7/test/test_filecmp.py file path=usr/lib/python2.7/test/test_fileinput.py file path=usr/lib/python2.7/test/test_fileio.py @@ -748,9 +747,11 @@ file path=usr/lib/python2.7/test/test_htmlparser.py file path=usr/lib/python2.7/test/test_httplib.py file path=usr/lib/python2.7/test/test_httpservers.py -file path=usr/lib/python2.7/test/test_imageop.py +file path=usr/lib/python2.7/test/test_idle.py +file path=usr/lib/python2.7/test/test_imageop.py pkg.depend.bypass-generate=.* file path=usr/lib/python2.7/test/test_imaplib.py file path=usr/lib/python2.7/test/test_imgfile.py +file path=usr/lib/python2.7/test/test_imghdr.py file path=usr/lib/python2.7/test/test_imp.py file path=usr/lib/python2.7/test/test_import.py file path=usr/lib/python2.7/test/test_importhooks.py @@ -780,6 +781,7 @@ file path=usr/lib/python2.7/test/test_macos.py file path=usr/lib/python2.7/test/test_macostools.py file path=usr/lib/python2.7/test/test_macpath.py +file path=usr/lib/python2.7/test/test_macurl2path.py file path=usr/lib/python2.7/test/test_mailbox.py file path=usr/lib/python2.7/test/test_marshal.py file path=usr/lib/python2.7/test/test_math.py @@ -797,12 +799,14 @@ file path=usr/lib/python2.7/test/test_multibytecodec.py file path=usr/lib/python2.7/test/test_multibytecodec_support.py file path=usr/lib/python2.7/test/test_multifile.py -file path=usr/lib/python2.7/test/test_multiprocessing.py +file path=usr/lib/python2.7/test/test_multiprocessing.py \ + pkg.depend.bypass-generate=.* file path=usr/lib/python2.7/test/test_mutants.py file path=usr/lib/python2.7/test/test_mutex.py file path=usr/lib/python2.7/test/test_netrc.py file path=usr/lib/python2.7/test/test_new.py file path=usr/lib/python2.7/test/test_nis.py +file path=usr/lib/python2.7/test/test_nntplib.py file path=usr/lib/python2.7/test/test_normalization.py file path=usr/lib/python2.7/test/test_ntpath.py file path=usr/lib/python2.7/test/test_old_mailbox.py @@ -842,8 +846,8 @@ file path=usr/lib/python2.7/test/test_pstats.py file path=usr/lib/python2.7/test/test_pty.py file path=usr/lib/python2.7/test/test_pwd.py +file path=usr/lib/python2.7/test/test_py3kwarn.py file path=usr/lib/python2.7/test/test_py_compile.py -file path=usr/lib/python2.7/test/test_py3kwarn.py file path=usr/lib/python2.7/test/test_pyclbr.py file path=usr/lib/python2.7/test/test_pydoc.py file path=usr/lib/python2.7/test/test_pyexpat.py @@ -880,9 +884,11 @@ 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_spwd.py file path=usr/lib/python2.7/test/test_sqlite.py file path=usr/lib/python2.7/test/test_ssl.py file path=usr/lib/python2.7/test/test_startfile.py +file path=usr/lib/python2.7/test/test_stat.py file path=usr/lib/python2.7/test/test_str.py file path=usr/lib/python2.7/test/test_strftime.py file path=usr/lib/python2.7/test/test_string.py @@ -894,6 +900,7 @@ file path=usr/lib/python2.7/test/test_structmembers.py file path=usr/lib/python2.7/test/test_structseq.py file path=usr/lib/python2.7/test/test_subprocess.py +file path=usr/lib/python2.7/test/test_sunau.py file path=usr/lib/python2.7/test/test_sunaudiodev.py file path=usr/lib/python2.7/test/test_sundry.py file path=usr/lib/python2.7/test/test_support.py @@ -992,3 +999,5 @@ file path=usr/lib/python2.7/test/xmltestdata/test.xml.out file path=usr/lib/python2.7/test/xmltests.py file path=usr/lib/python2.7/test/zipdir.zip +# +license python27.license license=PSFv2 diff -r dba288608e69 -r ed5024e47b53 components/python/python27/python-27.p5m --- a/components/python/python27/python-27.p5m Fri Oct 03 14:30:07 2014 -0700 +++ b/components/python/python27/python-27.p5m Sat Oct 04 14:50:43 2014 -0700 @@ -18,7 +18,7 @@ # # CDDL HEADER END # -# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved. # default mangler.man.stability uncommitted> @@ -26,92 +26,47 @@ value=pkg:/runtime/python-27@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION) set name=pkg.summary value="The Python interpreter, libraries and utilities" set name=com.oracle.info.description value="Python 2.7" -set name=com.oracle.info.tpno value=9104 +set name=com.oracle.info.tpno value=$(TPNO) set name=info.classification \ value=org.opensolaris.category.2008:Development/Python set name=info.source-url value=$(COMPONENT_ARCHIVE_URL) set name=info.upstream-url value=$(COMPONENT_PROJECT_URL) -set name=org.opensolaris.arc-caseid \ - value=PSARC/2008/514 \ - value=PSARC/2009/529 \ - value=PSARC/2011/XXX +set name=org.opensolaris.arc-caseid value=PSARC/2008/514 value=PSARC/2009/529 \ + value=PSARC/2014/183 # PSARC 2008/514 Python interface to dlpi(7P) # PSARC 2009/529 Python interface to privileges(5) & rbac(5) +# PSARC 2014/183 Python 2.7.6 set name=org.opensolaris.consolidation value=$(CONSOLIDATION) - -# pkgdepend doesn't like python 2.7 yet - \ - default pkg.depend.bypass-generate .* > - -license python27.license license=PSFv2 - -dir path=usr -dir path=usr/bin -dir path=usr/bin/$(MACH32) -dir path=usr/bin/$(MACH64) -dir path=usr/include -dir path=usr/include/python2.7 -dir path=usr/lib -dir path=usr/lib/$(MACH64) -dir path=usr/lib/$(MACH64)/pkgconfig +#file path=usr/bin/smtpd.py +#file path=usr/bin/$(MACH64)/smtpd.py +# +file usr/bin/python2.7 path=usr/bin/$(MACH32)/isapython2.7 +link path=usr/bin/$(MACH32)/python2.7 target=isapython2.7 +file usr/bin/$(MACH64)/python2.7 path=usr/bin/$(MACH64)/isapython2.7 +link path=usr/bin/$(MACH64)/python target=python2.7 mediator=python \ + mediator-version=2.7 +link path=usr/bin/$(MACH64)/python-config target=python2.7-config \ + mediator=python mediator-version=2.7 +link path=usr/bin/$(MACH64)/python2.7 target=isapython2.7 +# +file path=usr/bin/$(MACH64)/python2.7-config +link path=usr/bin/2to3 target=2to3-2.7 mediator=python mediator-version=2.7 +# #dir path=usr/lib/$(MACH64)/python2.7 #dir path=usr/lib/$(MACH64)/python2.7/config -dir path=usr/lib/pkgconfig -dir path=usr/lib/python2.7 -dir path=usr/lib/python2.7/bsddb -dir path=usr/lib/python2.7/compiler -dir path=usr/lib/python2.7/config -dir path=usr/lib/python2.7/ctypes -dir path=usr/lib/python2.7/ctypes/macholib -dir path=usr/lib/python2.7/curses -dir path=usr/lib/python2.7/distutils -dir path=usr/lib/python2.7/distutils/command -dir path=usr/lib/python2.7/email -dir path=usr/lib/python2.7/email/mime -dir path=usr/lib/python2.7/encodings -dir path=usr/lib/python2.7/hotshot -dir path=usr/lib/python2.7/idlelib -dir path=usr/lib/python2.7/idlelib/Icons -dir path=usr/lib/python2.7/importlib -dir path=usr/lib/python2.7/json -dir path=usr/lib/python2.7/lib-dynload -dir path=usr/lib/python2.7/lib-dynload/64 -dir path=usr/lib/python2.7/lib2to3 -dir path=usr/lib/python2.7/lib2to3/fixes -dir path=usr/lib/python2.7/lib2to3/pgen2 -dir path=usr/lib/python2.7/logging -dir path=usr/lib/python2.7/multiprocessing -dir path=usr/lib/python2.7/multiprocessing/dummy -dir path=usr/lib/python2.7/plat-sunos5 -dir path=usr/lib/python2.7/pydoc_data -dir path=usr/lib/python2.7/site-packages -dir path=usr/lib/python2.7/sqlite3 -dir path=usr/lib/python2.7/unittest -dir path=usr/lib/python2.7/unittest/test -dir path=usr/lib/python2.7/vendor-packages -dir path=usr/lib/python2.7/vendor-packages/64 -dir path=usr/lib/python2.7/wsgiref -dir path=usr/lib/python2.7/xml -dir path=usr/lib/python2.7/xml/dom -dir path=usr/lib/python2.7/xml/etree -dir path=usr/lib/python2.7/xml/parsers -dir path=usr/lib/python2.7/xml/sax -dir path=usr/share -dir path=usr/share/man -dir path=usr/share/man/man1 - -file usr/bin/2to3 path=usr/bin/2to3-2.7 pkg.depend.bypass-generate=.* -file usr/bin/idle path=usr/bin/idle-2.7 pkg.depend.bypass-generate=.* -file usr/bin/pydoc path=usr/bin/pydoc-2.7 pkg.depend.bypass-generate=.* -#file path=usr/bin/smtpd.py pkg.depend.bypass-generate=.* pkg.tmp.autopyc=false -#file path=usr/bin/$(MACH64)/smtpd.py pkg.depend.bypass-generate=.* pkg.tmp.autopyc=false - -file usr/bin/python2.7 path=usr/bin/$(MACH32)/isapython2.7 -file usr/bin/$(MACH64)/python2.7 path=usr/bin/$(MACH64)/isapython2.7 - -file path=usr/bin/$(MACH64)/python2.7-config pkg.depend.bypass-generate=.* -file path=usr/bin/python2.7-config pkg.depend.bypass-generate=.* +# +file usr/bin/2to3 path=usr/bin/2to3-2.7 +link path=usr/bin/idle target=idle-2.7 mediator=python mediator-version=2.7 +file usr/bin/idle path=usr/bin/idle-2.7 +hardlink path=usr/bin/isapython2.7 target=../lib/isaexec +link path=usr/bin/pydoc target=pydoc-2.7 mediator=python mediator-version=2.7 +file usr/bin/pydoc path=usr/bin/pydoc-2.7 +link path=usr/bin/python target=python2.7 mediator=python mediator-version=2.7 +link path=usr/bin/python-config target=python2.7-config mediator=python \ + mediator-version=2.7 +link path=usr/bin/python2.7 target=$(MACH32)/isapython2.7 +file path=usr/bin/python2.7-config file path=usr/include/python2.7/Python-ast.h file path=usr/include/python2.7/Python.h file path=usr/include/python2.7/abstract.h @@ -171,7 +126,9 @@ file path=usr/include/python2.7/py_curses.h file path=usr/include/python2.7/pyarena.h file path=usr/include/python2.7/pycapsule.h -file path=usr/include/python2.7/pyconfig.h +file path=usr/include/python2.7/pyconfig-32.h +file path=usr/include/python2.7/pyconfig-64.h +file files/pyconfig.h path=usr/include/python2.7/pyconfig.h file path=usr/include/python2.7/pyctype.h file path=usr/include/python2.7/pydebug.h file path=usr/include/python2.7/pyerrors.h @@ -204,10 +161,15 @@ file path=usr/include/python2.7/unicodeobject.h file path=usr/include/python2.7/warnings.h file path=usr/include/python2.7/weakrefobject.h +link path=usr/lib/$(MACH64)/libpython2.7.so target=libpython2.7.so.1.0 file path=usr/lib/$(MACH64)/libpython2.7.so.1.0 +link path=usr/lib/$(MACH64)/libpython2.7_db.so target=libpython2.7_db.so.1.0 file path=usr/lib/$(MACH64)/libpython2.7_db.so.1.0 file $(MACH64)/llib-lpython27.ln path=usr/lib/$(MACH64)/llib-lpython2.7.ln file path=usr/lib/$(MACH64)/pkgconfig/python-2.7.pc +link path=usr/lib/$(MACH64)/pkgconfig/python.pc target=python-2.7.pc \ + mediator=python mediator-version=2.7 +link path=usr/lib/libpython2.7.so target=libpython2.7.so.1.0 #file path=usr/lib/$(MACH64)/python2.7/config/Makefile #file path=usr/lib/$(MACH64)/python2.7/config/Setup #file path=usr/lib/$(MACH64)/python2.7/config/Setup.config @@ -218,10 +180,13 @@ #file path=usr/lib/$(MACH64)/python2.7/config/makesetup mode=0555 #file path=usr/lib/$(MACH64)/python2.7/config/python.o file path=usr/lib/libpython2.7.so.1.0 +link path=usr/lib/libpython2.7_db.so target=libpython2.7_db.so.1.0 file path=usr/lib/libpython2.7_db.so.1.0 file llib-lpython27 path=usr/lib/llib-lpython2.7 file $(MACH32)/llib-lpython27.ln path=usr/lib/llib-lpython2.7.ln file path=usr/lib/pkgconfig/python-2.7.pc +link path=usr/lib/pkgconfig/python.pc target=python-2.7.pc mediator=python \ + mediator-version=2.7 file path=usr/lib/python2.7/BaseHTTPServer.py file path=usr/lib/python2.7/Bastion.py file path=usr/lib/python2.7/CGIHTTPServer.py @@ -244,8 +209,10 @@ file path=usr/lib/python2.7/__future__.py file path=usr/lib/python2.7/__phello__.foo.py file path=usr/lib/python2.7/_abcoll.py +file path=usr/lib/python2.7/_osx_support.py file path=usr/lib/python2.7/_pyio.py file path=usr/lib/python2.7/_strptime.py +file path=usr/lib/python2.7/_sysconfigdata.py file path=usr/lib/python2.7/_threading_local.py file path=usr/lib/python2.7/_weakrefset.py file path=usr/lib/python2.7/abc.py @@ -262,14 +229,7 @@ file path=usr/lib/python2.7/bdb.py file path=usr/lib/python2.7/binhex.py file path=usr/lib/python2.7/bisect.py -file path=usr/lib/python2.7/bsddb/__init__.py -file path=usr/lib/python2.7/bsddb/db.py -file path=usr/lib/python2.7/bsddb/dbobj.py -file path=usr/lib/python2.7/bsddb/dbrecio.py -file path=usr/lib/python2.7/bsddb/dbshelve.py -file path=usr/lib/python2.7/bsddb/dbtables.py -file path=usr/lib/python2.7/bsddb/dbutils.py -file path=usr/lib/python2.7/cProfile.py +file path=usr/lib/python2.7/cProfile.py pkg.depend.bypass-generate=.* file path=usr/lib/python2.7/calendar.py file path=usr/lib/python2.7/cgi.py file path=usr/lib/python2.7/cgitb.py @@ -580,6 +540,13 @@ file path=usr/lib/python2.7/idlelib/IOBinding.py file path=usr/lib/python2.7/idlelib/Icons/folder.gif file path=usr/lib/python2.7/idlelib/Icons/idle.icns +file path=usr/lib/python2.7/idlelib/Icons/idle.ico +file path=usr/lib/python2.7/idlelib/Icons/idle_16.gif +file path=usr/lib/python2.7/idlelib/Icons/idle_16.png +file path=usr/lib/python2.7/idlelib/Icons/idle_32.gif +file path=usr/lib/python2.7/idlelib/Icons/idle_32.png +file path=usr/lib/python2.7/idlelib/Icons/idle_48.gif +file path=usr/lib/python2.7/idlelib/Icons/idle_48.png file path=usr/lib/python2.7/idlelib/Icons/minusnode.gif file path=usr/lib/python2.7/idlelib/Icons/openfolder.gif file path=usr/lib/python2.7/idlelib/Icons/plusnode.gif @@ -650,7 +617,6 @@ file path=usr/lib/python2.7/json/scanner.py file path=usr/lib/python2.7/json/tool.py file path=usr/lib/python2.7/keyword.py -file path=usr/lib/python2.7/lib-dynload/Python-$(COMPONENT_VERSION)-py2.7.egg-info file path=usr/lib/python2.7/lib-dynload/64/_bisect.so file path=usr/lib/python2.7/lib-dynload/64/_codecs_cn.so file path=usr/lib/python2.7/lib-dynload/64/_codecs_hk.so @@ -699,6 +665,7 @@ file path=usr/lib/python2.7/lib-dynload/64/mmap.so file path=usr/lib/python2.7/lib-dynload/64/nis.so file path=usr/lib/python2.7/lib-dynload/64/operator.so +file path=usr/lib/python2.7/lib-dynload/64/ossaudiodev.so file path=usr/lib/python2.7/lib-dynload/64/parser.so file path=usr/lib/python2.7/lib-dynload/64/privileges.so file path=usr/lib/python2.7/lib-dynload/64/pyexpat.so @@ -715,6 +682,7 @@ file path=usr/lib/python2.7/lib-dynload/64/ucred.so file path=usr/lib/python2.7/lib-dynload/64/unicodedata.so file path=usr/lib/python2.7/lib-dynload/64/zlib.so +file path=usr/lib/python2.7/lib-dynload/Python-$(COMPONENT_VERSION)-py2.7.egg-info file path=usr/lib/python2.7/lib-dynload/_bisect.so file path=usr/lib/python2.7/lib-dynload/_codecs_cn.so file path=usr/lib/python2.7/lib-dynload/_codecs_hk.so @@ -765,6 +733,7 @@ file path=usr/lib/python2.7/lib-dynload/mmap.so file path=usr/lib/python2.7/lib-dynload/nis.so file path=usr/lib/python2.7/lib-dynload/operator.so +file path=usr/lib/python2.7/lib-dynload/ossaudiodev.so file path=usr/lib/python2.7/lib-dynload/parser.so file path=usr/lib/python2.7/lib-dynload/privileges.so file path=usr/lib/python2.7/lib-dynload/pyexpat.so @@ -781,10 +750,10 @@ file path=usr/lib/python2.7/lib-dynload/ucred.so file path=usr/lib/python2.7/lib-dynload/unicodedata.so file path=usr/lib/python2.7/lib-dynload/zlib.so +file path=usr/lib/python2.7/lib2to3/Grammar$(COMPONENT_VERSION).final.0.pickle file path=usr/lib/python2.7/lib2to3/Grammar.txt -file path=usr/lib/python2.7/lib2to3/Grammar$(COMPONENT_VERSION).final.0.pickle +file path=usr/lib/python2.7/lib2to3/PatternGrammar$(COMPONENT_VERSION).final.0.pickle file path=usr/lib/python2.7/lib2to3/PatternGrammar.txt -file path=usr/lib/python2.7/lib2to3/PatternGrammar$(COMPONENT_VERSION).final.0.pickle file path=usr/lib/python2.7/lib2to3/__init__.py file path=usr/lib/python2.7/lib2to3/__main__.py file path=usr/lib/python2.7/lib2to3/btm_matcher.py @@ -900,7 +869,7 @@ file path=usr/lib/python2.7/os.py file path=usr/lib/python2.7/os2emxpath.py file path=usr/lib/python2.7/pdb.doc -file path=usr/lib/python2.7/pdb.py +file path=usr/lib/python2.7/pdb.py pkg.depend.bypass-generate=.* file path=usr/lib/python2.7/pickle.py file path=usr/lib/python2.7/pickletools.py file path=usr/lib/python2.7/pipes.py @@ -912,14 +881,14 @@ file path=usr/lib/python2.7/plat-sunos5/SUNAUDIODEV.py file path=usr/lib/python2.7/plat-sunos5/TYPES.py file path=usr/lib/python2.7/plat-sunos5/regen mode=0555 -file path=usr/lib/python2.7/platform.py +file path=usr/lib/python2.7/platform.py pkg.depend.bypass-generate=.* file path=usr/lib/python2.7/plistlib.py file path=usr/lib/python2.7/popen2.py file path=usr/lib/python2.7/poplib.py file path=usr/lib/python2.7/posixfile.py file path=usr/lib/python2.7/posixpath.py file path=usr/lib/python2.7/pprint.py -file path=usr/lib/python2.7/profile.py +file path=usr/lib/python2.7/profile.py pkg.depend.bypass-generate=.* file path=usr/lib/python2.7/pstats.py file path=usr/lib/python2.7/pty.py file path=usr/lib/python2.7/py_compile.py @@ -946,7 +915,7 @@ file path=usr/lib/python2.7/site-packages/README file path=usr/lib/python2.7/site-packages/vendor-packages.pth file path=usr/lib/python2.7/site.py -file path=usr/lib/python2.7/smtpd.py +file path=usr/lib/python2.7/smtpd.py pkg.depend.bypass-generate=.* file path=usr/lib/python2.7/smtplib.py file path=usr/lib/python2.7/sndhdr.py file path=usr/lib/python2.7/socket.py @@ -981,7 +950,7 @@ file path=usr/lib/python2.7/toaiff.py file path=usr/lib/python2.7/token.py file path=usr/lib/python2.7/tokenize.py -file path=usr/lib/python2.7/trace.py +file path=usr/lib/python2.7/trace.py pkg.depend.bypass-generate=.* file path=usr/lib/python2.7/traceback.py file path=usr/lib/python2.7/tty.py file path=usr/lib/python2.7/types.py @@ -1054,35 +1023,11 @@ file path=usr/lib/python2.7/xmllib.py file path=usr/lib/python2.7/xmlrpclib.py file path=usr/lib/python2.7/zipfile.py +link path=usr/share/man/man1/python.1 target=python2.7.1 mediator=python \ + mediator-version=2.7 file path=usr/share/man/man1/python2.7.1 - -hardlink path=usr/bin/isapython2.7 target=../lib/isaexec - -link path=usr/bin/$(MACH32)/python2.7 target=isapython2.7 -link path=usr/bin/$(MACH64)/python2.7 target=isapython2.7 -link path=usr/bin/python2.7 target=$(MACH32)/isapython2.7 -link path=usr/lib/$(MACH64)/libpython2.7.so target=libpython2.7.so.1.0 -link path=usr/lib/$(MACH64)/libpython2.7_db.so target=libpython2.7_db.so.1.0 -link path=usr/lib/libpython2.7.so target=libpython2.7.so.1.0 -link path=usr/lib/libpython2.7_db.so target=libpython2.7_db.so.1.0 - -link path=usr/bin/2to3 target=2to3-2.7 mediator=python mediator-version=2.7 \ - pkg.linted.pkglint.dupaction010.1=true -link path=usr/bin/idle target=idle-2.7 mediator=python mediator-version=2.7 \ - pkg.linted.pkglint.dupaction010.1=true -link path=usr/bin/pydoc target=pydoc-2.7 mediator=python mediator-version=2.7 \ - pkg.linted.pkglint.dupaction010.1=true -link path=usr/bin/python target=python2.7 mediator=python mediator-version=2.7 \ - pkg.linted.pkglint.dupaction010.2=true -link path=usr/bin/python-config target=python2.7-config mediator=python mediator-version=2.7 \ - pkg.linted.pkglint.dupaction010.2=true -link path=usr/bin/$(MACH64)/python target=python2.7 mediator=python mediator-version=2.7 \ - pkg.linted.pkglint.dupaction010.2=true -link path=usr/bin/$(MACH64)/python-config target=python2.7-config mediator=python mediator-version=2.7 \ - pkg.linted.pkglint.dupaction010.2=true -link path=usr/lib/pkgconfig/python.pc target=python-2.7.pc mediator=python mediator-version=2.7 -link path=usr/lib/$(MACH64)/pkgconfig/python.pc target=python-2.7.pc mediator=python mediator-version=2.7 -link path=usr/share/man/man1/python.1 target=python2.7.1 mediator=python mediator-version=2.7 +# +license python27.license license=PSFv2 # This optionally brings in the python tk support if tk is installed depend type=conditional fmri=library/python-2/tkinter-27 predicate=runtime/tk-8 diff -r dba288608e69 -r ed5024e47b53 components/python/python27/tkinter-27.p5m --- a/components/python/python27/tkinter-27.p5m Fri Oct 03 14:30:07 2014 -0700 +++ b/components/python/python27/tkinter-27.p5m Sat Oct 04 14:50:43 2014 -0700 @@ -18,34 +18,27 @@ # # CDDL HEADER END # -# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved. # set name=pkg.fmri \ value=pkg:/library/python-2/tkinter-27@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION) set name=pkg.summary value="Python 2.7 bindings to tcl/tk" set name=com.oracle.info.description value="Python 2.7 bindings for Tcl/Tk" -set name=com.oracle.info.tpno value=9104 +set name=com.oracle.info.tpno value=$(TPNO) set name=info.classification \ value=org.opensolaris.category.2008:Development/Python set name=info.source-url value=$(COMPONENT_ARCHIVE_URL) set name=info.upstream-url value=$(COMPONENT_PROJECT_URL) -set name=org.opensolaris.arc-caseid \ - value=PSARC/2011/XXX +set name=org.opensolaris.arc-caseid value=PSARC/2008/514 value=PSARC/2009/529 \ + value=PSARC/2014/183 +# PSARC 2008/514 Python interface to dlpi(7P) +# PSARC 2009/529 Python interface to privileges(5) & rbac(5) +# PSARC 2014/183 Python 2.7.6 set name=org.opensolaris.consolidation value=$(CONSOLIDATION) -#pkgdepend doesn't like python 2.7 yet - \ - default pkg.depend.bypass-generate .* > - license python27.license license=PSFv2 -dir path=usr -dir path=usr/lib -dir path=usr/lib/python2.7 -dir path=usr/lib/python2.7/lib-dynload -dir path=usr/lib/python2.7/lib-dynload/64 -dir path=usr/lib/python2.7/lib-tk file path=usr/lib/python2.7/lib-dynload/64/_tkinter.so file path=usr/lib/python2.7/lib-dynload/_tkinter.so file path=usr/lib/python2.7/lib-tk/Canvas.py