PSARC/2015/489 idna - Python Internationalised Domain Names in Applications module
authorYiteng Zhang <yiteng.zhang@oracle.com>
Tue, 23 Feb 2016 15:19:53 -0800
changeset 5486 fc535b316139
parent 5485 ff09ab50a80c
child 5488 b5f105d9ae8b
PSARC/2015/489 idna - Python Internationalised Domain Names in Applications module PSARC/2015/490 ipaddress - Python IPv4/IPv6 manipulation module 22365145 upgrade setuptools to version 19.2 22520287 Upgrade cffi to version 1.4.2 22520302 Upgrade cryptography to version 1.2.1 22520335 Integrate idna into Userland 22520346 Integrate ipaddress into Userland 22520361 Upgrade pyasn1 to version 0.1.9
components/python/cffi/Makefile
components/python/cffi/patches/backend.patch
components/python/cffi/patches/test.patch
components/python/cryptography/Makefile
components/python/cryptography/cryptography-PYVER.p5m
components/python/cryptography/patches/dsa.patch
components/python/idna/Makefile
components/python/idna/idna-PYVER.p5m
components/python/idna/idna.license
components/python/idna/test/results-2.7-64.master
components/python/idna/test/results-3.4-64.master
components/python/idna/test/results-3.5-64.master
components/python/ipaddress/Makefile
components/python/ipaddress/ipaddress-PYVER.p5m
components/python/ipaddress/ipaddress.license
components/python/ipaddress/test/results-all.master
components/python/pyasn1/Makefile
components/python/pyasn1/pyasn1-PYVER.p5m
components/python/pyasn1/test/results-all.master
components/python/setuptools/Makefile
components/python/setuptools/setuptools-PYVER.p5m
transforms/standard-python-libraries
--- a/components/python/cffi/Makefile	Mon Feb 22 16:08:11 2016 -0800
+++ b/components/python/cffi/Makefile	Tue Feb 23 15:19:53 2016 -0800
@@ -20,22 +20,22 @@
 #
 
 #
-# Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		cffi
-COMPONENT_VERSION=	1.1.2
+COMPONENT_VERSION=	1.4.2
 COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
-    sha256:390970b602708c91ddc73953bb6929e56291c18a4d80f360afa00fad8b6f3339
+    sha256:8f1d177d364ea35900415ae24ca3e471be3d5334ed0419294068c49f45913998
 COMPONENT_ARCHIVE_URL=	$(call pypi_url)
 COMPONENT_PROJECT_URL=	http://cffi.readthedocs.org/
 COMPONENT_BUGDB=	python-mod/cffi
 
-TPNO=			24051
+TPNO=			26350
 
 include $(WS_MAKE_RULES)/prep.mk
 include $(WS_MAKE_RULES)/setup.py.mk
--- a/components/python/cffi/patches/backend.patch	Mon Feb 22 16:08:11 2016 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,26 +0,0 @@
-
-CFFI has some alignment issues on 64bit SPARC. This has been already fixed in
-the upstream gate but has not made it into a release yet.
-
-https://bitbucket.org/cffi/cffi/issues/217/get_unique_type-doesnt-respect-alignment
-
---- cffi-1.1.2/c/_cffi_backend.c	2015-06-09 03:04:10.000000000 -0700
-+++ cffi-1.1.2/c/_cffi_backend.c	2015-08-25 13:11:20.603298092 -0700
[email protected]@ -3410,7 +3410,6 @@
-            array      [ctype, length]
-            funcptr    [ctresult, ellipsis+abi, num_args, ctargs...]
-     */
--    long i;
-     PyObject *key, *y;
-     const void **pkey;
-     int err;
[email protected]@ -3420,8 +3419,7 @@
-         goto error;
- 
-     pkey = (const void **)PyBytes_AS_STRING(key);
--    for (i = 0; i < keylength; i++)
--        pkey[i] = unique_key[i];
-+    memcpy(pkey, unique_key, keylength * sizeof(void *));
- 
-     y = PyDict_GetItem(unique_cache, key);
-     if (y != NULL) {
--- a/components/python/cffi/patches/test.patch	Mon Feb 22 16:08:11 2016 -0800
+++ b/components/python/cffi/patches/test.patch	Tue Feb 23 15:19:53 2016 -0800
@@ -15,8 +15,12 @@
 
   - There is one test helper in test_recompiler where we suddenly try to do C++
     but without changing the compiler executable. This works in gcc but not with
-    Studio. Furthermore, this test seems to be still in debugging mode since it
-    is part of an "if 1:" loop.
+    Studio.
+
+  - test_recompiler has some test cases work in gcc or clang but not with Studio:
+    test_some_float_type and test_some_float_invalid_3 raise an error "non-constant
+    initializer involving a cast".
+    test_restrict_fields uses the __restrict keyword, which seems to require gcc.
 
   - Don't force the use of gcc when compiling a test shared object; get
     that passed in from the makefile.
@@ -128,15 +132,34 @@
          p = ffi.new("char[]", ffi.sizeof("struct array0") + 7 * SIZE_OF_SHORT)
 --- cffi-1.1.2/testing/cffi1/test_recompiler.py	2015-06-09 03:04:10.000000000 -0700
 +++ cffi-1.1.2/testing/cffi1/test_recompiler.py	2015-08-11 11:08:16.757848317 -0700
[email protected]@ -20,7 +20,7 @@
[email protected]@ -22,10 +22,14 @@
      kwds.setdefault('undef_macros', ['NDEBUG'])
      module_name = '_CFFI_' + module_name
      ffi.set_source(module_name, source)
--    if 1:     # test the .cpp mode too
-+    if 0:     # test the .cpp mode too
+-    if not os.environ.get('NO_CPP'):     # test the .cpp mode too
++    if sys.platform == 'sunos5':
++        kwds['extra_compile_args'] = (kwds.get('extra_compile_args', []) +
++            ["-errtags=yes", "-errwarn=E_ASSIGNMENT_TYPE_MISMATCH,"
++            "E_RETURN_VALUE_TYPE_MISMATCH"])
++    elif not os.environ.get('NO_CPP'):     # test the .cpp mode too
          kwds.setdefault('source_extension', '.cpp')
          source = 'extern "C" {\n%s\n}' % (source,)
+     else:
+         kwds['extra_compile_args'] = (kwds.get('extra_compile_args', []) +
+                                       ['-Werror'])
      return recompiler._verify(ffi, module_name, source, *args, **kwds)
[email protected]@ -1076,2 +1076,3 @@
+ def test_some_float_type():
++    py.test.skip("needs GCC or Clang")
+     ffi = FFI()
[email protected]@ -1111,2 +1111,3 @@
+ def test_some_float_invalid_3():
++    py.test.skip("needs GCC or Clang")
+     ffi = FFI()
[email protected]@ -1225,2 +1225,3 @@
+ def test_restrict_fields():
++    py.test.skip("needs GCC or Clang")
+     ffi = FFI()
 --- cffi-1.1.2/testing/cffi1/test_verify1.py	2015-06-09 03:04:07.000000000 -0700
 +++ cffi-1.1.2/testing/cffi1/test_verify1.py	2015-08-12 15:02:07.774160223 -0700
 @@ -18,6 +18,9 @@
@@ -145,7 +168,7 @@
          extra_compile_args.append('-Qunused-arguments')
 +    elif (sys.platform == 'sunos5'):
 +        extra_compile_args = ["-errtags=yes",
-+            "-errwarn=E_ASSIGNMENT_TYPE_MISMATCH,E_RETURN_VALUE_TYPE_MISMATCH"]        
++            "-errwarn=E_ASSIGNMENT_TYPE_MISMATCH,E_RETURN_VALUE_TYPE_MISMATCH"]
      else:
          # assume a standard gcc
          extra_compile_args = ['-Werror', '-Wall', '-Wextra', '-Wconversion']
--- a/components/python/cryptography/Makefile	Mon Feb 22 16:08:11 2016 -0800
+++ b/components/python/cryptography/Makefile	Tue Feb 23 15:19:53 2016 -0800
@@ -20,22 +20,22 @@
 #
 
 #
-# Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		cryptography
-COMPONENT_VERSION=	0.8.2
+COMPONENT_VERSION=	1.2.1
 COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
-    sha256:1c9a022ab3decaf152093e2ef2d5ee4258c72c7d429446c86bd68ff8c0929db6
+    sha256:a13217a03a47e743d26edff7299e4be7358c2fd12a223ac5d6de3229690b6ee5
 COMPONENT_ARCHIVE_URL=	$(call pypi_url)
 COMPONENT_PROJECT_URL=	https://cryptography.io/
 COMPONENT_BUGDB=	python-mod/cryptography
 
-TPNO=			22524
+TPNO=			26388
 
 include $(WS_MAKE_RULES)/prep.mk
 include $(WS_MAKE_RULES)/setup.py.mk
@@ -56,11 +56,16 @@
 install:	$(INSTALL_32_and_64)
 
 #
-# tests require cryptography_vectors, iso8601, pretend, pytest, and six,
-# some of which have not yet integrated.
+# tests require cryptography_vectors, iso8601, pretend, pytest>= 2.8.7,
+# hypothesis>=1.11.4 and pyasn1_modules, some of which have not yet integrated.
+# On a i386 kernel zone with the test dependencies installed, test results are:
+# Python2.7: 74000 passed, 6136 skipped
+# Python3.4: 74000 passed, 6136 skipped
+# Python3.5: 74000 passed, 6136 skipped
 #
 test:		$(NO_TESTS)
 
+system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
 
 REQUIRED_PACKAGES += library/python/cffi
 REQUIRED_PACKAGES += library/security/openssl
--- a/components/python/cryptography/cryptography-PYVER.p5m	Mon Feb 22 16:08:11 2016 -0800
+++ b/components/python/cryptography/cryptography-PYVER.p5m	Tue Feb 23 15:19:53 2016 -0800
@@ -20,7 +20,7 @@
 #
 
 #
-# Copyright (c) 2014, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 set name=pkg.fmri \
@@ -47,18 +47,6 @@
 file path=usr/lib/python$(PYVER)/vendor-packages/cryptography-$(COMPONENT_VERSION)-py$(PYVER).egg-info/not-zip-safe
 file path=usr/lib/python$(PYVER)/vendor-packages/cryptography-$(COMPONENT_VERSION)-py$(PYVER).egg-info/requires.txt
 file path=usr/lib/python$(PYVER)/vendor-packages/cryptography-$(COMPONENT_VERSION)-py$(PYVER).egg-info/top_level.txt
-$(PYTHON_3.5_ONLY)file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/64/_Cryptography_cffi_15f8accfx62b488b1.so
-$(PYTHON_2.7_ONLY)file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/64/_Cryptography_cffi_26cb75b8x62b488b1.so
-$(PYTHON_2.7_ONLY)file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/64/_Cryptography_cffi_590da19fxffc7b1ce.so
-$(PYTHON_3.5_ONLY)file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/64/_Cryptography_cffi_89292e72x399b1113.so
-$(PYTHON_3.4_ONLY)file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/64/_Cryptography_cffi_a8febd48xffc7b1ce.so
-$(PYTHON_3.4_ONLY)file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/64/_Cryptography_cffi_b03f9c7x62b488b1.so
-$(PYTHON_3.5_ONLY)file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/64/_Cryptography_cffi_c4c16865xffc7b1ce.so
-$(PYTHON_3.4_ONLY)file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/64/_Cryptography_cffi_e9178e86x399b1113.so
-$(PYTHON_2.7_ONLY)file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/64/_Cryptography_cffi_f3e4673fx399b1113.so
-$(PYTHON_2.7_ONLY)file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/_Cryptography_cffi_26cb75b8x62b488b1.so
-$(PYTHON_2.7_ONLY)file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/_Cryptography_cffi_590da19fxffc7b1ce.so
-$(PYTHON_2.7_ONLY)file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/_Cryptography_cffi_f3e4673fx399b1113.so
 file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/__about__.py
 file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/__init__.py
 file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/exceptions.py
@@ -83,53 +71,18 @@
 file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/backends/openssl/rsa.py
 file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/backends/openssl/utils.py
 file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/backends/openssl/x509.py
+file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/64/_constant_time.so
+file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/64/_openssl.so
+file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/64/_padding.so
 file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/_constant_time.so
+file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/_openssl.so
+file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/_padding.so
 file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/commoncrypto/__init__.py
 file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/commoncrypto/binding.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/commoncrypto/cf.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/commoncrypto/common_cryptor.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/commoncrypto/common_digest.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/commoncrypto/common_hmac.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/commoncrypto/common_key_derivation.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/commoncrypto/secimport.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/commoncrypto/secitem.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/commoncrypto/seckey.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/commoncrypto/seckeychain.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/commoncrypto/sectransform.py
 file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/__init__.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/aes.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/asn1.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/bignum.py
+file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/_conditional.py
 file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/binding.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/bio.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/cmac.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/cms.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/conf.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/crypto.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/dh.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/dsa.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/ec.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/ecdh.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/ecdsa.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/engine.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/err.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/evp.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/hmac.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/nid.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/objects.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/opensslv.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/osrandom_engine.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/pem.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/pkcs12.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/pkcs7.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/rand.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/rsa.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/ssl.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/x509.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/x509_vfy.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/x509name.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/openssl/x509v3.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/bindings/utils.py
 file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/primitives/__init__.py
 file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/primitives/asymmetric/__init__.py
 file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/primitives/asymmetric/dh.py
@@ -148,24 +101,29 @@
 file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/primitives/hmac.py
 file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/primitives/interfaces/__init__.py
 file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/primitives/kdf/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/primitives/kdf/concatkdf.py
 file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/primitives/kdf/hkdf.py
 file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/primitives/kdf/pbkdf2.py
+file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/primitives/kdf/x963kdf.py
+file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/primitives/keywrap.py
 file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/primitives/padding.py
 file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/primitives/serialization.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/primitives/src/constant_time.c
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/primitives/src/constant_time.h
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/primitives/src/padding.c
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/primitives/src/padding.h
 file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/primitives/twofactor/__init__.py
 file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/primitives/twofactor/hotp.py
 file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/primitives/twofactor/totp.py
+file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/hazmat/primitives/twofactor/utils.py
 file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/utils.py
-file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/x509.py
+file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/x509/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/x509/base.py
+file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/x509/extensions.py
+file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/x509/general_name.py
+file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/x509/name.py
+file path=usr/lib/python$(PYVER)/vendor-packages/cryptography/x509/oid.py
 #
-license LICENSE license="Apache 2.0"
+license LICENSE.BSD license=BSD-like
 
 # Dependencies on cffi must be incorporated.
-depend type=incorporate fmri=library/python/cffi-$(PYV)@1.1.2
+depend type=incorporate fmri=library/python/cffi-$(PYV)@1.4.2
 
 # force a dependency on the Python runtime
 depend type=require fmri=__TBD pkg.debug.depend.file=python$(PYVER) \
@@ -181,6 +139,12 @@
 # force a dependency on enum; pkgdepend work is needed to flush this out.
 depend type=require fmri=library/python/enum-$(PYV)
 
+# force a dependency on idna; pkgdepend work is needed to flush this out.
+depend type=require fmri=library/python/idna-$(PYV)
+
+# force a dependency on ipaddress; pkgdepend work is needed to flush this out.
+depend type=require fmri=library/python/ipaddress-$(PYV)
+
 # force a dependency on pyasn1; pkgdepend work is needed to flush this out.
 depend type=require fmri=library/python/pyasn1-$(PYV)
 
--- a/components/python/cryptography/patches/dsa.patch	Mon Feb 22 16:08:11 2016 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,22 +0,0 @@
-Fix DSA double free. This has been fixed in newer versions of cryptography and
-will be part of a future update of the cryptography version in userland.
-
-https://github.com/pyca/cryptography/pull/2010
-
---- cryptography-0.8.2/src/cryptography/hazmat/backends/openssl/dsa.py	2015-09-04 11:01:09.332591847 -0700
-+++ cryptography-0.8.2/src/cryptography/hazmat/backends/openssl/dsa.py	2015-09-04 11:01:43.317323715 -0700
[email protected]@ -40,13 +40,10 @@
-         self._hash_ctx.update(data)
- 
-     def verify(self):
--        self._dsa_cdata = self._backend._ffi.gc(self._public_key._dsa_cdata,
--                                                self._backend._lib.DSA_free)
--
-         data_to_verify = self._hash_ctx.finalize()
- 
-         data_to_verify = _truncate_digest_for_dsa(
--            self._dsa_cdata, data_to_verify, self._backend
-+            self._public_key._dsa_cdata, data_to_verify, self._backend
-         )
- 
-         # The first parameter passed to DSA_verify is unused by OpenSSL but
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/python/idna/Makefile	Tue Feb 23 15:19:53 2016 -0800
@@ -0,0 +1,63 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+#
+
+include ../../../make-rules/shared-macros.mk
+
+COMPONENT_NAME=		idna
+COMPONENT_VERSION=	2.0
+COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
+COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
+COMPONENT_ARCHIVE_HASH=	\
+    sha256:16199aad938b290f5be1057c0e1efc6546229391c23cea61ca940c115f7d3d3b
+COMPONENT_ARCHIVE_URL=	$(call pypi_url)
+COMPONENT_PROJECT_URL=	https://github.com/kjd/idna
+COMPONENT_BUGDB=	python-mod/idna
+
+TPNO=			25771
+
+include $(WS_MAKE_RULES)/prep.mk
+include $(WS_MAKE_RULES)/setup.py.mk
+include $(WS_MAKE_RULES)/ips.mk
+
+ASLR_MODE = $(ASLR_NOT_APPLICABLE)
+
+COMPONENT_TEST_DIR = $(SOURCE_DIR)/tests
+COMPONENT_TEST_ARGS = -m unittest discover --pattern=*.py
+
+# The test output contains arbitrary output. Use nawk to extract just the
+# sections that summarizes the test result.
+# Most of the test cases skipped in Python 2.7 because 'Test requires Python 
+# wide Unicode support'.
+COMPONENT_TEST_TRANSFORMER = $(NAWK)
+COMPONENT_TEST_TRANSFORMS = "'/^Ran .+ / { sub(\" tests in .+s\", \" tests in\"); print }; /!NF/ { print }; /^OK/ { print };'"
+
+# common targets
+build:		$(BUILD_64)
+
+install:	$(INSTALL_64)
+
+test:		$(TEST_64)
+
+system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/python/idna/idna-PYVER.p5m	Tue Feb 23 15:19:53 2016 -0800
@@ -0,0 +1,58 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+#
+
+set name=pkg.fmri \
+    value=pkg:/library/python/idna-$(PYV)@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.summary value="Internationalized Domain Names in Applications"
+set name=pkg.description \
+    value="A library to support the Internationalised Domain Names in Applications (IDNA) protocol as specified in RFC 5891. The library is also intended to act as a suitable drop-in replacement for the encodings.idna module that comes with the Python standard library but currently only supports the older 2003 specification."
+set name=com.oracle.info.description value="the idna Python module"
+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 value="Kim Davies <[email protected]>"
+set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
+set name=org.opensolaris.arc-caseid value=PSARC/2015/489
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+file path=usr/lib/python$(PYVER)/vendor-packages/idna-$(COMPONENT_VERSION)-py$(PYVER).egg-info/PKG-INFO
+file path=usr/lib/python$(PYVER)/vendor-packages/idna-$(COMPONENT_VERSION)-py$(PYVER).egg-info/SOURCES.txt
+file path=usr/lib/python$(PYVER)/vendor-packages/idna-$(COMPONENT_VERSION)-py$(PYVER).egg-info/dependency_links.txt
+file path=usr/lib/python$(PYVER)/vendor-packages/idna-$(COMPONENT_VERSION)-py$(PYVER).egg-info/pbr.json
+file path=usr/lib/python$(PYVER)/vendor-packages/idna-$(COMPONENT_VERSION)-py$(PYVER).egg-info/top_level.txt
+file path=usr/lib/python$(PYVER)/vendor-packages/idna/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/idna/codec.py
+file path=usr/lib/python$(PYVER)/vendor-packages/idna/compat.py
+file path=usr/lib/python$(PYVER)/vendor-packages/idna/core.py
+file path=usr/lib/python$(PYVER)/vendor-packages/idna/idnadata.py
+file path=usr/lib/python$(PYVER)/vendor-packages/idna/uts46data.py
+license idna.license license=BSD-like
+# force a dependency on the Python runtime
+depend type=require fmri=__TBD pkg.debug.depend.file=python$(PYVER) \
+    pkg.debug.depend.path=usr/bin
+
+# force a dependency on the idna package
+depend type=require \
+    fmri=library/python/[email protected]$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/python/idna/idna.license	Tue Feb 23 15:19:53 2016 -0800
@@ -0,0 +1,78 @@
+Copyright (c) 2013-2015, Kim Davies. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+#. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+#. Redistributions in binary form must reproduce the above
+   copyright notice, this list of conditions and the following
+   disclaimer in the documentation and/or other materials provided with
+   the distribution.
+
+#. Neither the name of the copyright holder nor the names of the 
+   contributors may be used to endorse or promote products derived 
+   from this software without specific prior written permission.
+
+#. THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS "AS IS" AND ANY
+   EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+   IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+   PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS OR 
+   CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
+   SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
+   LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+   DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+   THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+   (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
+   USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH
+   DAMAGE.
+
+Portions of the codec implementation and unit tests are derived from the
+Python standard library, which carries the `Python Software Foundation
+License <https://docs.python.org/2/license.html>`_:
+
+   Copyright (c) 2001-2014 Python Software Foundation; All Rights Reserved
+
+Portions of the unit tests are derived from the Unicode standard, which 
+is subject to the Unicode, Inc. License Agreement:
+
+   Copyright (c) 1991-2014 Unicode, Inc. All rights reserved.
+   Distributed under the Terms of Use in 
+   <http://www.unicode.org/copyright.html>.
+
+   Permission is hereby granted, free of charge, to any person obtaining
+   a copy of the Unicode data files and any associated documentation
+   (the "Data Files") or Unicode software and any associated documentation
+   (the "Software") to deal in the Data Files or Software
+   without restriction, including without limitation the rights to use,
+   copy, modify, merge, publish, distribute, and/or sell copies of
+   the Data Files or Software, and to permit persons to whom the Data Files
+   or Software are furnished to do so, provided that
+   
+   (a) this copyright and permission notice appear with all copies 
+   of the Data Files or Software,
+
+   (b) this copyright and permission notice appear in associated 
+   documentation, and
+
+   (c) there is clear notice in each modified Data File or in the Software
+   as well as in the documentation associated with the Data File(s) or
+   Software that the data or software has been modified.
+
+   THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
+   ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+   WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+   NONINFRINGEMENT OF THIRD PARTY RIGHTS.
+   IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
+   NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
+   DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+   DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+   TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+   PERFORMANCE OF THE DATA FILES OR SOFTWARE.
+
+   Except as contained in this notice, the name of a copyright holder
+   shall not be used in advertising or otherwise to promote the sale,
+   use or other dealings in these Data Files or Software without prior
+   written authorization of the copyright holder.
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/python/idna/test/results-2.7-64.master	Tue Feb 23 15:19:53 2016 -0800
@@ -0,0 +1,2 @@
+Ran 5054 tests in
+OK (skipped=5038)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/python/idna/test/results-3.4-64.master	Tue Feb 23 15:19:53 2016 -0800
@@ -0,0 +1,2 @@
+Ran 5054 tests in
+OK
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/python/idna/test/results-3.5-64.master	Tue Feb 23 15:19:53 2016 -0800
@@ -0,0 +1,2 @@
+Ran 5054 tests in
+OK
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/python/ipaddress/Makefile	Tue Feb 23 15:19:53 2016 -0800
@@ -0,0 +1,63 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+#
+
+include ../../../make-rules/shared-macros.mk
+
+COMPONENT_NAME=		ipaddress
+COMPONENT_VERSION=	1.0.14
+COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
+COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
+COMPONENT_ARCHIVE_HASH=	\
+    sha256:226f4be44c6cb64055e23060848266f51f329813baae28b53dc50e93488b3b3e
+COMPONENT_ARCHIVE_URL=	$(call pypi_url)
+COMPONENT_PROJECT_URL=  https://github.com/phihag/ipaddress
+COMPONENT_BUGDB=	python-mod/ipaddress
+
+TPNO=			26070
+
+# ipaddress is superfluous in Python 3.4
+PYTHON_VERSIONS =	$(PYTHON2_VERSIONS)
+
+include $(WS_MAKE_RULES)/prep.mk
+include $(WS_MAKE_RULES)/setup.py.mk
+include $(WS_MAKE_RULES)/ips.mk
+
+ASLR_MODE = $(ASLR_NOT_APPLICABLE)
+
+COMPONENT_TEST_DIR = $(SOURCE_DIR)
+COMPONENT_TEST_ARGS = test_ipaddress.py
+COMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-all.master
+
+COMPONENT_TEST_TRANSFORMS += \
+	'-e "s|\(^Ran [0-9]\+ tests in\).*|\1|" '
+
+# common targets
+build:		$(BUILD_NO_ARCH)
+
+install:	$(INSTALL_NO_ARCH)
+
+test:		$(TEST_NO_ARCH)
+
+system-test:    $(SYSTEM_TESTS_NOT_IMPLEMENTED)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/python/ipaddress/ipaddress-PYVER.p5m	Tue Feb 23 15:19:53 2016 -0800
@@ -0,0 +1,54 @@
+#
+# CDDL HEADER START
+#
+# The contents of this file are subject to the terms of the
+# Common Development and Distribution License (the "License").
+# You may not use this file except in compliance with the License.
+#
+# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
+# or http://www.opensolaris.org/os/licensing.
+# See the License for the specific language governing permissions
+# and limitations under the License.
+#
+# When distributing Covered Code, include this CDDL HEADER in each
+# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
+# If applicable, add the following below this CDDL HEADER, with the
+# fields enclosed by brackets "[]" replaced with your own identifying
+# information: Portions Copyright [yyyy] [name of copyright owner]
+#
+# CDDL HEADER END
+#
+
+#
+# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
+#
+
+set name=pkg.fmri \
+    value=pkg:/library/python/ipaddress-$(PYV)@$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
+set name=pkg.summary value="Python IPv4/IPv6 manipulation library"
+set name=pkg.description \
+    value="This library is a fast, lightweight IPv4/IPv6 manipulation library in Python. It is used to create/poke/manipulate IPv4/IPv6 addresses and networks. This is a port of 3.3+ ipaddress module to 2.7."
+set name=com.oracle.info.description value="the ipaddress Python module"
+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 value="Philipp Hagemeister <[email protected]>"
+set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
+set name=org.opensolaris.arc-caseid value=PSARC/2015/490
+set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
+file path=usr/lib/python$(PYVER)/vendor-packages/ipaddress-$(COMPONENT_VERSION)-py$(PYVER).egg-info/PKG-INFO
+file path=usr/lib/python$(PYVER)/vendor-packages/ipaddress-$(COMPONENT_VERSION)-py$(PYVER).egg-info/SOURCES.txt
+file path=usr/lib/python$(PYVER)/vendor-packages/ipaddress-$(COMPONENT_VERSION)-py$(PYVER).egg-info/dependency_links.txt
+file path=usr/lib/python$(PYVER)/vendor-packages/ipaddress-$(COMPONENT_VERSION)-py$(PYVER).egg-info/top_level.txt
+file path=usr/lib/python$(PYVER)/vendor-packages/ipaddress.py
+#
+license ipaddress.license license="PSF v2"
+
+# force a dependency on the Python runtime
+depend type=require fmri=__TBD pkg.debug.depend.file=python$(PYVER) \
+    pkg.debug.depend.path=usr/bin
+
+# force a dependency on the ipaddress package
+depend type=require \
+    fmri=library/python/[email protected]$(IPS_COMPONENT_VERSION),$(BUILD_VERSION)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/python/ipaddress/ipaddress.license	Tue Feb 23 15:19:53 2016 -0800
@@ -0,0 +1,38 @@
+PYTHON SOFTWARE FOUNDATION LICENSE VERSION 2
+--------------------------------------------
+
+1. This LICENSE AGREEMENT is between the Python Software Foundation
+("PSF"), and the Individual or Organization ("Licensee") accessing and
+otherwise using this software ("Python") in source or binary form and its associated documentation.
+2. Subject to the terms and conditions of this License Agreement, PSF hereby
+grants Licensee a nonexclusive, royalty-free, world-wide license to reproduce,
+analyze, test, perform and/or display publicly, prepare derivative works,
+distribute, and otherwise use Python alone or in any derivative version,
+provided, however, that PSF's License Agreement and PSF's notice of copyright,
+i.e., "Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
+2011, 2012, 2013, 2014 Python Software Foundation; All Rights Reserved" are retained in Python alone or in any derivative version prepared by Licensee.
+
+3. In the event Licensee prepares a derivative work that is based on
+or incorporates Python or any part thereof, and wants to make
+the derivative work available to others as provided herein, then
+Licensee hereby agrees to include in any such work a brief summary of the changes made to Python.
+4. PSF is making Python available to Licensee on an "AS IS"
+basis. PSF MAKES NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR
+IMPLIED. BY WAY OF EXAMPLE, BUT NOT LIMITATION, PSF MAKES NO AND
+DISCLAIMS ANY REPRESENTATION OR WARRANTY OF MERCHANTABILITY OR FITNESS
+FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF PYTHON WILL NOT
+INFRINGE ANY THIRD PARTY RIGHTS. 
+5. PSF SHALL NOT BE LIABLE TO LICENSEE OR ANY OTHER USERS OF PYTHON FOR ANY INCIDENTAL, SPECIAL, OR CONSEQUENTIAL DAMAGES OR LOSS AS
+A RESULT OF MODIFYING, DISTRIBUTING, OR OTHERWISE USING PYTHON,
+OR ANY DERIVATIVE THEREOF, EVEN IF ADVISED OF THE POSSIBILITY THEREOF.
+
+6. This License Agreement will automatically terminate upon a material
+breach of its terms and conditions.
+7. Nothing in this License Agreement shall be deemed to create any
+relationship of agency, partnership, or joint venture between PSF and
+Licensee. This License Agreement does not grant permission to use PSF
+trademarks or trade name in a trademark sense to endorse or promote
+products or services of Licensee, or any third party.
+
+8. By copying, installing or otherwise using Python, Licensee agrees to be bound by the terms and conditions of this License
+Agreement.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/python/ipaddress/test/results-all.master	Tue Feb 23 15:19:53 2016 -0800
@@ -0,0 +1,5 @@
+...........................................................................................................................................................................................
+----------------------------------------------------------------------
+Ran 187 tests in
+
+OK
--- a/components/python/pyasn1/Makefile	Mon Feb 22 16:08:11 2016 -0800
+++ b/components/python/pyasn1/Makefile	Tue Feb 23 15:19:53 2016 -0800
@@ -18,28 +18,34 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		pyasn1
-COMPONENT_VERSION=	0.1.7
+COMPONENT_VERSION=	0.1.9
 COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
-    sha256:e4f81d53c533f6bd9526b047f047f7b101c24ab17339c1a7ad8f98b25c101eab
+    sha256:853cacd96d1f701ddd67aa03ecc05f51890135b7262e922710112f12a2ed2a7f
 COMPONENT_ARCHIVE_URL=	$(call pypi_url)
 COMPONENT_PROJECT_URL=	http://pyasn1.sourceforge.net/
 COMPONENT_BUGDB=	python-mod/pyasn1
 
-TPNO=			14413
+TPNO=			26348
 
 include $(WS_MAKE_RULES)/prep.mk
 include $(WS_MAKE_RULES)/setup.py.mk
 include $(WS_MAKE_RULES)/ips.mk
 
-COMPONENT_TEST_DIR =    $(SOURCE_DIR)/test
-COMPONENT_TEST_ARGS =   suite.py
+COMPONENT_TEST_DIR =    $(SOURCE_DIR)
+COMPONENT_TEST_ARGS =   setup.py test
+COMPONENT_TEST_MASTER = $(COMPONENT_TEST_RESULTS_DIR)/results-all.master
+
+# The test output contains arbitrary output. Use nawk to extract just the
+# sections that summarizes the test result.
+COMPONENT_TEST_TRANSFORMER = $(NAWK)
+COMPONENT_TEST_TRANSFORMS = "'/^Ran .+ / { sub(\" tests in .+s\", \" tests in\"); print }; /!NF/ { print }; /^OK/ { print };'"
 
 ASLR_MODE = $(ASLR_NOT_APPLICABLE)
 
--- a/components/python/pyasn1/pyasn1-PYVER.p5m	Mon Feb 22 16:08:11 2016 -0800
+++ b/components/python/pyasn1/pyasn1-PYVER.p5m	Tue Feb 23 15:19:53 2016 -0800
@@ -18,7 +18,7 @@
 #
 # CDDL HEADER END
 #
-# Copyright (c) 2013, 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 set name=pkg.fmri \
@@ -53,6 +53,7 @@
 file path=usr/lib/python$(PYVER)/vendor-packages/pyasn1/codec/der/decoder.py
 file path=usr/lib/python$(PYVER)/vendor-packages/pyasn1/codec/der/encoder.py
 file path=usr/lib/python$(PYVER)/vendor-packages/pyasn1/compat/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/pyasn1/compat/binary.py
 file path=usr/lib/python$(PYVER)/vendor-packages/pyasn1/compat/octets.py
 file path=usr/lib/python$(PYVER)/vendor-packages/pyasn1/debug.py
 file path=usr/lib/python$(PYVER)/vendor-packages/pyasn1/error.py
@@ -67,7 +68,7 @@
 file path=usr/lib/python$(PYVER)/vendor-packages/pyasn1/type/tagmap.py
 file path=usr/lib/python$(PYVER)/vendor-packages/pyasn1/type/univ.py
 file path=usr/lib/python$(PYVER)/vendor-packages/pyasn1/type/useful.py
-license LICENSE license=BSD-like
+license LICENSE.txt license=BSD-like
 
 # force the rename with an optional dependency on the old name
 depend type=optional \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/components/python/pyasn1/test/results-all.master	Tue Feb 23 15:19:53 2016 -0800
@@ -0,0 +1,2 @@
+Ran 432 tests in
+OK
--- a/components/python/setuptools/Makefile	Mon Feb 22 16:08:11 2016 -0800
+++ b/components/python/setuptools/Makefile	Tue Feb 23 15:19:53 2016 -0800
@@ -18,22 +18,23 @@
 #
 # 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.
 #
 include ../../../make-rules/shared-macros.mk
 
 COMPONENT_NAME=		setuptools
-COMPONENT_VERSION=	0.9.6
+COMPONENT_VERSION=	19.2
 IPS_COMPONENT_VERSION=	$(COMPONENT_VERSION)
 
 COMPONENT_SRC=		$(COMPONENT_NAME)-$(COMPONENT_VERSION)
 COMPONENT_ARCHIVE=	$(COMPONENT_SRC).tar.gz
 COMPONENT_ARCHIVE_HASH=	\
-    sha256:d3c46aff70a246c21b957a60dff39645f643999b9693dfabf04c0639c12fa399
-COMPONENT_ARCHIVE_URL=	https://pypi.python.org/packages/source/s/$(COMPONENT_NAME)/$(COMPONENT_ARCHIVE)
+    sha256:f90ed8eb70b14b0594ba74e9de4ffca040c0ec8ee505cbf3570499467859f71a
+COMPONENT_ARCHIVE_URL=	$(call pypi_url)
+COMPONENT_PROJECT_URL=	https://bitbucket.org/pypa/setuptools
 COMPONENT_BUGDB=	python-mod/setuptools
 
-TPNO=			17692
+TPNO=			26352
 
 include $(WS_MAKE_RULES)/prep.mk
 include $(WS_MAKE_RULES)/setup.py.mk
@@ -46,6 +47,7 @@
 
 install:	$(INSTALL_NO_ARCH)
 
+# requires pytest >= 2.8, which has not been upgraded yet
 test:		$(NO_TESTS)
 
 system-test:    $(NO_TESTS)
--- a/components/python/setuptools/setuptools-PYVER.p5m	Mon Feb 22 16:08:11 2016 -0800
+++ b/components/python/setuptools/setuptools-PYVER.p5m	Tue Feb 23 15:19:53 2016 -0800
@@ -31,7 +31,7 @@
 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=http://pypi.python.org/pypi/setuptools
+set name=info.upstream-url value=$(COMPONENT_PROJECT_URL)
 set name=org.opensolaris.arc-caseid value=PSARC/2008/084
 set name=org.opensolaris.consolidation value=$(CONSOLIDATION)
 #
@@ -41,7 +41,14 @@
 file path=usr/lib/python$(PYVER)/vendor-packages/_markerlib/__init__.py
 file path=usr/lib/python$(PYVER)/vendor-packages/_markerlib/markers.py
 file path=usr/lib/python$(PYVER)/vendor-packages/easy_install.py
-file path=usr/lib/python$(PYVER)/vendor-packages/pkg_resources.py
+file path=usr/lib/python$(PYVER)/vendor-packages/pkg_resources/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/pkg_resources/_vendor/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/pkg_resources/_vendor/packaging/__about__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/pkg_resources/_vendor/packaging/__init__.py
+file path=usr/lib/python$(PYVER)/vendor-packages/pkg_resources/_vendor/packaging/_compat.py
+file path=usr/lib/python$(PYVER)/vendor-packages/pkg_resources/_vendor/packaging/_structures.py
+file path=usr/lib/python$(PYVER)/vendor-packages/pkg_resources/_vendor/packaging/specifiers.py
+file path=usr/lib/python$(PYVER)/vendor-packages/pkg_resources/_vendor/packaging/version.py
 file path=usr/lib/python$(PYVER)/vendor-packages/setuptools-$(COMPONENT_VERSION)-py$(PYVER).egg-info/PKG-INFO
 file path=usr/lib/python$(PYVER)/vendor-packages/setuptools-$(COMPONENT_VERSION)-py$(PYVER).egg-info/SOURCES.txt
 file path=usr/lib/python$(PYVER)/vendor-packages/setuptools-$(COMPONENT_VERSION)-py$(PYVER).egg-info/dependency_links.txt
@@ -50,11 +57,6 @@
 file path=usr/lib/python$(PYVER)/vendor-packages/setuptools-$(COMPONENT_VERSION)-py$(PYVER).egg-info/top_level.txt
 file path=usr/lib/python$(PYVER)/vendor-packages/setuptools-$(COMPONENT_VERSION)-py$(PYVER).egg-info/zip-safe
 file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/__init__.py
-file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/_backport/__init__.py
-file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/_backport/hashlib/__init__.py
-file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/_backport/hashlib/_sha.py
-file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/_backport/hashlib/_sha256.py
-file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/_backport/hashlib/_sha512.py
 file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/archive_util.py
 file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/command/__init__.py
 file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/command/alias.py
@@ -64,10 +66,7 @@
 file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/command/build_ext.py
 file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/command/build_py.py
 file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/command/develop.py
-file \
-    path=usr/lib/python$(PYVER)/vendor-packages/setuptools/command/easy_install.py \
-    pkg.depend.bypass-generate=.*/java.* \
-    pkg.depend.bypass-generate=.*/sysconfig.*
+file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/command/easy_install.py
 file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/command/egg_info.py
 file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/command/install.py
 file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/command/install_egg_info.py
@@ -79,37 +78,25 @@
 file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/command/sdist.py
 file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/command/setopt.py
 file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/command/test.py
-file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/command/upload.py
 file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/command/upload_docs.py
 file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/compat.py
 file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/depends.py
 file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/dist.py
 file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/extension.py
+file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/lib2to3_ex.py
+file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/msvc9_support.py
 file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/package_index.py
-file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/py24compat.py
+file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/py26compat.py
 file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/py27compat.py
+file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/py31compat.py
 file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/sandbox.py
+file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/script.tmpl
 file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/site-patch.py
 file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/ssl_support.py
-file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/tests/__init__.py
-file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/tests/doctest.py
-file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/tests/py26compat.py
-file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/tests/server.py
-file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/tests/test_bdist_egg.py
-file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/tests/test_build_ext.py
-file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/tests/test_develop.py
-file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/tests/test_dist_info.py
-file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/tests/test_easy_install.py
-file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/tests/test_egg_info.py
-file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/tests/test_markerlib.py
-file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/tests/test_packageindex.py
-file \
-    path=usr/lib/python$(PYVER)/vendor-packages/setuptools/tests/test_resources.py \
-    pkg.depend.bypass-generate=.*
-file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/tests/test_sandbox.py
-file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/tests/test_sdist.py
-file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/tests/test_test.py
-file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/tests/test_upload_docs.py
+file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/unicode_utils.py
+file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/utils.py
+file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/version.py
+file path=usr/lib/python$(PYVER)/vendor-packages/setuptools/windows_support.py
 #
 license setuptools.copyright license="PSF, ZPL"
 
--- a/transforms/standard-python-libraries	Mon Feb 22 16:08:11 2016 -0800
+++ b/transforms/standard-python-libraries	Tue Feb 23 15:19:53 2016 -0800
@@ -20,7 +20,7 @@
 #
 
 #
-# Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved.
+# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
 #
 
 #
@@ -37,6 +37,8 @@
 <transform depend fmri=library/python/importlib-27 -> drop>
 <transform depend fmri=library/python/importlib-34 -> drop>
 <transform depend fmri=library/python/importlib-35 -> drop>
+<transform depend fmri=library/python/ipaddress-34 -> drop>
+<transform depend fmri=library/python/ipaddress-35 -> drop>
 <transform depend fmri=library/python/ordereddict-27 -> drop>
 <transform depend fmri=library/python/ordereddict-34 -> drop>
 <transform depend fmri=library/python/ordereddict-35 -> drop>