summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJustin Lecher <jlec@gentoo.org>2016-01-21 11:22:40 +0100
committerJustin Lecher <jlec@gentoo.org>2016-01-21 12:43:47 +0100
commit9845166beac8a03a2ad89cd22ed3c5356cba3f49 (patch)
tree49e80132348853d01d3069f44dee6ff7753f9626 /dev-python/urllib3/urllib3-1.13.1-r1.ebuild
parentnet-misc/olsrd: Take up maintainership. (diff)
downloadgentoo-9845166beac8a03a2ad89cd22ed3c5356cba3f49.tar.gz
gentoo-9845166beac8a03a2ad89cd22ed3c5356cba3f49.tar.bz2
gentoo-9845166beac8a03a2ad89cd22ed3c5356cba3f49.zip
dev-python/urllib3: Unbundle system libs
Package-Manager: portage-2.2.27 Signed-off-by: Justin Lecher <jlec@gentoo.org>
Diffstat (limited to 'dev-python/urllib3/urllib3-1.13.1-r1.ebuild')
-rw-r--r--dev-python/urllib3/urllib3-1.13.1-r1.ebuild116
1 files changed, 116 insertions, 0 deletions
diff --git a/dev-python/urllib3/urllib3-1.13.1-r1.ebuild b/dev-python/urllib3/urllib3-1.13.1-r1.ebuild
new file mode 100644
index 000000000000..bc38d98e2ef0
--- /dev/null
+++ b/dev-python/urllib3/urllib3-1.13.1-r1.ebuild
@@ -0,0 +1,116 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 python3_{3,4,5} pypy )
+PYTHON_REQ_USE="ssl(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="HTTP library with thread-safe connection pooling, file post, and more"
+HOMEPAGE="https://github.com/shazow/urllib3"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE="doc test"
+
+RDEPEND="
+ dev-python/certifi[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ >=dev-python/pyopenssl-0.13[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep 'dev-python/backports-ssl-match-hostname[${PYTHON_USEDEP}]' python2_7 pypy)
+ $(python_gen_cond_dep 'dev-python/ndg-httpsclient[${PYTHON_USEDEP}]' python2_7 pypy)
+ $(python_gen_cond_dep 'dev-python/pyasn1[${PYTHON_USEDEP}]' python2_7 pypy)
+ "
+DEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ ${RDEPEND}
+ >=www-servers/tornado-4.2.1[$(python_gen_usedep 'python*')]
+ >=dev-python/mock-1.3.0[${PYTHON_USEDEP}]
+ >=dev-python/nose-1.3.7[${PYTHON_USEDEP}]
+ >=dev-python/nose-exclude-0.4.1[${PYTHON_USEDEP}]
+ )
+ doc? ( dev-python/sphinx[${PYTHON_USEDEP}] )
+ "
+
+# Testsuite written requiring mock to be installed under all Cpythons
+
+PATCHES=( "${FILESDIR}"/${P}-unbundle.patch )
+
+python_prepare_all() {
+ # Replace bundled copy of dev-python/six
+ cat > urllib3/packages/six.py <<-EOF
+ from __future__ import absolute_import
+ from six import *
+ EOF
+
+ cat > urllib3/contrib/pyopenssl.py <<- EOF
+ from __future__ import absolute_import
+ from pyopenssl import *
+ EOF
+
+ rm -r urllib3/packages/ssl_match_hostname || die
+ cat > urllib3/packages/ssl_match_hostname.py <<- EOF
+ from __future__ import absolute_import
+ try:
+ from backports.ssl_match_hostname import CertificateError, match_hostname
+ except ImportError:
+ from ssl import CertificateError, match_hostname
+ EOF
+
+ cat > urllib3/packages/ordered_dict.py <<- EOF
+ from __future__ import absolute_import
+ from collections import OrderedDict
+ EOF
+
+ sed \
+ -e 's:\.packages\.six:six:g' \
+ -e 's:\.six:six:g' \
+ -i urllib3/util/response.py urllib3/response.py || die
+
+ sed -i '/cover-min-percentage/d' setup.cfg || die
+ # Fix tests
+ sed -i 's/urllib3.packages.six/six/' test/test_retry.py || die
+
+ # Reset source of objects.inv
+ if use doc; then
+ local PYTHON_DOC_ATOM=$(best_version --host-root dev-python/python-docs:2.7)
+ local PYTHON_DOC_VERSION="${PYTHON_DOC_ATOM#dev-python/python-docs-}"
+ local PYTHON_DOC="/usr/share/doc/python-docs-${PYTHON_DOC_VERSION}/html"
+ local PYTHON_DOC_INVENTORY="${PYTHON_DOC}/objects.inv"
+ sed \
+ -e "s|'python': ('http://docs.python.org/2.7', None|'${PYTHON_DOC}': ('${PYTHON_DOC_INVENTORY}'|" \
+ -i docs/conf.py || die
+ fi
+
+ distutils-r1_python_prepare_all
+}
+
+python_compile_all() {
+ use doc && emake -C docs html
+}
+
+python_test() {
+ # Failures still occur under py2.7.
+ # https://github.com/shazow/urllib3/issues/621
+
+ [[ "${EPYTHON}" == pypy ]] && return
+
+ nosetests -v \
+ --exclude test_headerdict \
+ --exclude test_headers \
+ --exclude test_source_address_error \
+ --exclude test_no_ssl \
+ test || die "Tests fail with ${EPYTHON}"
+}
+
+python_install_all() {
+ use doc && local HTML_DOCS=( docs/_build/html/. )
+
+ distutils-r1_python_install_all
+}