summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichał Górny <mgorny@gentoo.org>2021-01-26 17:23:24 +0100
committerMichał Górny <mgorny@gentoo.org>2021-01-26 19:43:08 +0100
commitcef35aa3489a1db4ea56b44cad0beabb5b4c0051 (patch)
treeb7daf198147e3a59e54393127284ee0081a92f99 /dev-python/urllib3
parentdev-ml/findlib: QA flags warning ignored (diff)
downloadgentoo-cef35aa3489a1db4ea56b44cad0beabb5b4c0051.tar.gz
gentoo-cef35aa3489a1db4ea56b44cad0beabb5b4c0051.tar.bz2
gentoo-cef35aa3489a1db4ea56b44cad0beabb5b4c0051.zip
dev-python/urllib3: Backport a fix for BytesWarning
Closes: https://bugs.gentoo.org/755083 Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'dev-python/urllib3')
-rw-r--r--dev-python/urllib3/files/urllib3-1.26.2-byteswarning.patch25
-rw-r--r--dev-python/urllib3/urllib3-1.26.2-r2.ebuild70
-rw-r--r--dev-python/urllib3/urllib3-1.26.2-r3.ebuild70
3 files changed, 165 insertions, 0 deletions
diff --git a/dev-python/urllib3/files/urllib3-1.26.2-byteswarning.patch b/dev-python/urllib3/files/urllib3-1.26.2-byteswarning.patch
new file mode 100644
index 000000000000..dfa761c5631e
--- /dev/null
+++ b/dev-python/urllib3/files/urllib3-1.26.2-byteswarning.patch
@@ -0,0 +1,25 @@
+From bab9ca9f7148d6a7f15b83cfa1126bf1c8ceb17d Mon Sep 17 00:00:00 2001
+From: Quentin Pradet <quentin@pradet.me>
+Date: Tue, 26 Jan 2021 18:04:17 +0400
+Subject: [PATCH] Don't compare bytes and str in putheader()
+
+---
+ src/urllib3/connection.py | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/urllib3/connection.py b/src/urllib3/connection.py
+index 660d679c..387f3770 100644
+--- a/src/urllib3/connection.py
++++ b/src/urllib3/connection.py
+@@ -215,7 +215,7 @@ class HTTPConnection(_HTTPConnection, object):
+
+ def putheader(self, header, *values):
+ """"""
+- if SKIP_HEADER not in values:
++ if not any(isinstance(v, str) and v == SKIP_HEADER for v in values):
+ _HTTPConnection.putheader(self, header, *values)
+ elif six.ensure_str(header.lower()) not in SKIPPABLE_HEADERS:
+ raise ValueError(
+--
+2.30.0
+
diff --git a/dev-python/urllib3/urllib3-1.26.2-r2.ebuild b/dev-python/urllib3/urllib3-1.26.2-r2.ebuild
new file mode 100644
index 000000000000..d967a754ffab
--- /dev/null
+++ b/dev-python/urllib3/urllib3-1.26.2-r2.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7,8,9} pypy3 )
+PYTHON_REQ_USE="ssl(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="HTTP library with thread-safe connection pooling, file post, and more"
+HOMEPAGE="https://github.com/urllib3/urllib3"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~ia64 ~mips ppc ppc64 ~riscv s390 sparc x86 ~x64-macos"
+IUSE="brotli test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/PySocks-1.5.8[${PYTHON_USEDEP}]
+ <dev-python/PySocks-2.0[${PYTHON_USEDEP}]
+ dev-python/certifi[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-1.3.4[${PYTHON_USEDEP}]
+ >=dev-python/pyopenssl-0.14[${PYTHON_USEDEP}]
+ >=dev-python/idna-2.0.0[${PYTHON_USEDEP}]
+ brotli? ( dev-python/brotlipy[${PYTHON_USEDEP}] )
+"
+BDEPEND="
+ test? (
+ $(python_gen_cond_dep "
+ ${RDEPEND}
+ dev-python/brotlipy[\${PYTHON_USEDEP}]
+ dev-python/mock[\${PYTHON_USEDEP}]
+ dev-python/pytest[\${PYTHON_USEDEP}]
+ dev-python/pytest-freezegun[\${PYTHON_USEDEP}]
+ >=dev-python/trustme-0.5.3[\${PYTHON_USEDEP}]
+ >=www-servers/tornado-4.2.1[\${PYTHON_USEDEP}]
+ " python3_{6,7,8,9})
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/${P}-fix-test_proxy_rejection-test-hang.patch"
+ "${FILESDIR}/${P}-byteswarning.patch"
+)
+
+python_prepare_all() {
+ # https://github.com/urllib3/urllib3/issues/1756
+ sed -e 's:10.255.255.1:240.0.0.0:' \
+ -i test/__init__.py || die
+ # tests failing if 'localhost.' cannot be resolved
+ sed -e 's:test_dotted_fqdn:_&:' \
+ -i test/with_dummyserver/test_https.py || die
+ sed -e 's:test_request_host_header_ignores_fqdn_dot:_&:' \
+ -i test/with_dummyserver/test_socketlevel.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local -x CI=1
+ # FIXME: get tornado ported
+ case ${EPYTHON} in
+ python3*)
+ pytest -vv || die "Tests fail with ${EPYTHON}"
+ ;;
+ esac
+}
diff --git a/dev-python/urllib3/urllib3-1.26.2-r3.ebuild b/dev-python/urllib3/urllib3-1.26.2-r3.ebuild
new file mode 100644
index 000000000000..28e11d23fe94
--- /dev/null
+++ b/dev-python/urllib3/urllib3-1.26.2-r3.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+PYTHON_COMPAT=( python3_{6,7,8,9} pypy3 )
+PYTHON_REQ_USE="ssl(+)"
+
+inherit distutils-r1
+
+DESCRIPTION="HTTP library with thread-safe connection pooling, file post, and more"
+HOMEPAGE="https://github.com/urllib3/urllib3"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm arm64 hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 sparc ~x86 ~x64-cygwin ~amd64-linux ~ppc-macos ~x64-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+IUSE="brotli test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=dev-python/PySocks-1.5.8[${PYTHON_USEDEP}]
+ <dev-python/PySocks-2.0[${PYTHON_USEDEP}]
+ dev-python/certifi[${PYTHON_USEDEP}]
+ >=dev-python/cryptography-1.3.4[${PYTHON_USEDEP}]
+ >=dev-python/pyopenssl-0.14[${PYTHON_USEDEP}]
+ >=dev-python/idna-2.0.0[${PYTHON_USEDEP}]
+ brotli? ( dev-python/brotlicffi[${PYTHON_USEDEP}] )
+"
+BDEPEND="
+ test? (
+ $(python_gen_cond_dep "
+ ${RDEPEND}
+ dev-python/brotlicffi[\${PYTHON_USEDEP}]
+ dev-python/mock[\${PYTHON_USEDEP}]
+ dev-python/pytest[\${PYTHON_USEDEP}]
+ dev-python/pytest-freezegun[\${PYTHON_USEDEP}]
+ >=dev-python/trustme-0.5.3[\${PYTHON_USEDEP}]
+ >=www-servers/tornado-4.2.1[\${PYTHON_USEDEP}]
+ " python3_{6,7,8,9})
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}/${P}-fix-test_proxy_rejection-test-hang.patch"
+ "${FILESDIR}/${P}-byteswarning.patch"
+)
+
+python_prepare_all() {
+ # https://github.com/urllib3/urllib3/issues/1756
+ sed -e 's:10.255.255.1:240.0.0.0:' \
+ -i test/__init__.py || die
+ # tests failing if 'localhost.' cannot be resolved
+ sed -e 's:test_dotted_fqdn:_&:' \
+ -i test/with_dummyserver/test_https.py || die
+ sed -e 's:test_request_host_header_ignores_fqdn_dot:_&:' \
+ -i test/with_dummyserver/test_socketlevel.py || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local -x CI=1
+ # FIXME: get tornado ported
+ case ${EPYTHON} in
+ python3*)
+ pytest -vv || die "Tests fail with ${EPYTHON}"
+ ;;
+ esac
+}