commit:     cef35aa3489a1db4ea56b44cad0beabb5b4c0051
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Jan 26 16:23:24 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Jan 26 18:43:08 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=cef35aa3

dev-python/urllib3: Backport a fix for BytesWarning

Closes: https://bugs.gentoo.org/755083
Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 .../files/urllib3-1.26.2-byteswarning.patch        | 25 ++++++++
 dev-python/urllib3/urllib3-1.26.2-r2.ebuild        | 70 ++++++++++++++++++++++
 dev-python/urllib3/urllib3-1.26.2-r3.ebuild        | 70 ++++++++++++++++++++++
 3 files changed, 165 insertions(+)

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 00000000000..dfa761c5631
--- /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 <[email protected]>
+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 00000000000..d967a754ffa
--- /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 00000000000..28e11d23fe9
--- /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
+}

Reply via email to