diff options
author | Michał Górny <mgorny@gentoo.org> | 2021-06-19 13:15:34 +0200 |
---|---|---|
committer | Michał Górny <mgorny@gentoo.org> | 2021-06-19 14:01:24 +0200 |
commit | 449b6535e1bc097415f34b1930b24c843960015d (patch) | |
tree | b223a49054748f4134719f6bc8630e2ea2f2316d /dev-python/aiohttp | |
parent | dev-java/antlr: removed obsolete 2.7.7-r7 (diff) | |
download | gentoo-449b6535e1bc097415f34b1930b24c843960015d.tar.gz gentoo-449b6535e1bc097415f34b1930b24c843960015d.tar.bz2 gentoo-449b6535e1bc097415f34b1930b24c843960015d.zip |
dev-python/aiohttp: Backport the switch to app-arch/brotli
Signed-off-by: Michał Górny <mgorny@gentoo.org>
Diffstat (limited to 'dev-python/aiohttp')
-rw-r--r-- | dev-python/aiohttp/aiohttp-3.7.4-r1.ebuild (renamed from dev-python/aiohttp/aiohttp-3.7.4.ebuild) | 8 | ||||
-rw-r--r-- | dev-python/aiohttp/files/aiohttp-3.7.4-brotli.patch | 97 |
2 files changed, 103 insertions, 2 deletions
diff --git a/dev-python/aiohttp/aiohttp-3.7.4.ebuild b/dev-python/aiohttp/aiohttp-3.7.4-r1.ebuild index f90f64776cf1..d35289bb49a3 100644 --- a/dev-python/aiohttp/aiohttp-3.7.4.ebuild +++ b/dev-python/aiohttp/aiohttp-3.7.4-r1.ebuild @@ -3,7 +3,7 @@ EAPI=7 -PYTHON_COMPAT=( python3_{7..9} ) +PYTHON_COMPAT=( python3_{8..9} ) inherit distutils-r1 multiprocessing @@ -27,8 +27,8 @@ BDEPEND=" dev-python/cython[${PYTHON_USEDEP}] test? ( !!dev-python/pytest-aiohttp + app-arch/brotli[python,${PYTHON_USEDEP}] dev-python/async_generator[${PYTHON_USEDEP}] - dev-python/brotlipy[${PYTHON_USEDEP}] dev-python/freezegun[${PYTHON_USEDEP}] www-servers/gunicorn[${PYTHON_USEDEP}] dev-python/pytest-forked[${PYTHON_USEDEP}] @@ -40,6 +40,10 @@ BDEPEND=" ) " +PATCHES=( + "${FILESDIR}"/aiohttp-3.7.4-brotli.patch +) + DOCS=( CHANGES.rst CONTRIBUTORS.txt README.rst ) distutils_enable_tests pytest diff --git a/dev-python/aiohttp/files/aiohttp-3.7.4-brotli.patch b/dev-python/aiohttp/files/aiohttp-3.7.4-brotli.patch new file mode 100644 index 000000000000..1e8add007999 --- /dev/null +++ b/dev-python/aiohttp/files/aiohttp-3.7.4-brotli.patch @@ -0,0 +1,97 @@ +From a7424ddf490fc51244d427543cc9683b5427102b Mon Sep 17 00:00:00 2001 +From: Felix Yan <felixonmars@archlinux.org> +Date: Fri, 19 Jul 2019 21:32:55 +0800 +Subject: [PATCH] Use Brotli instead of brotlipy (#3803) +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +brotlipy is stuck at brotli 0.6 and upstream is inactive. Let's switch +to the official binding which is up-to-date. + +(rebased for 3.7.x by Michał Górny) +--- + aiohttp/http_parser.py | 25 +++++++++++++++++++++---- + docs/client_quickstart.rst | 2 +- + docs/index.rst | 2 +- + setup.py | 2 +- + 4 files changed, 24 insertions(+), 7 deletions(-) + +diff --git a/aiohttp/http_parser.py b/aiohttp/http_parser.py +index 71ba815a..56ecead4 100644 +--- a/aiohttp/http_parser.py ++++ b/aiohttp/http_parser.py +@@ -821,10 +821,27 @@ class DeflateBuffer: + if encoding == "br": + if not HAS_BROTLI: # pragma: no cover + raise ContentEncodingError( +- "Can not decode content-encoding: brotli (br). " +- "Please install `brotlipy`" +- ) +- self.decompressor = brotli.Decompressor() ++ 'Can not decode content-encoding: brotli (br). ' ++ 'Please install `Brotli`') ++ ++ class BrotliDecoder: ++ # Supports both 'brotlipy' and 'Brotli' packages ++ # since they share an import name. The top branches ++ # are for 'brotlipy' and bottom branches for 'Brotli' ++ def __init__(self) -> None: ++ self._obj = brotli.Decompressor() ++ ++ def decompress(self, data: bytes) -> bytes: ++ if hasattr(self._obj, "decompress"): ++ return self._obj.decompress(data) ++ return self._obj.process(data) ++ ++ def flush(self) -> bytes: ++ if hasattr(self._obj, "flush"): ++ return self._obj.flush() ++ return b"" ++ ++ self.decompressor = BrotliDecoder() # type: Any + else: + zlib_mode = 16 + zlib.MAX_WBITS if encoding == "gzip" else zlib.MAX_WBITS + self.decompressor = zlib.decompressobj(wbits=zlib_mode) +diff --git a/docs/client_quickstart.rst b/docs/client_quickstart.rst +index 95588cb6..b9146584 100644 +--- a/docs/client_quickstart.rst ++++ b/docs/client_quickstart.rst +@@ -174,7 +174,7 @@ The ``gzip`` and ``deflate`` transfer-encodings are automatically + decoded for you. + + You can enable ``brotli`` transfer-encodings support, +-just install `brotlipy <https://github.com/python-hyper/brotlipy>`_. ++just install `Brotli <https://pypi.org/project/Brotli>`_. + + JSON Request + ============ +diff --git a/docs/index.rst b/docs/index.rst +index 13fe723b..4091c001 100644 +--- a/docs/index.rst ++++ b/docs/index.rst +@@ -52,7 +52,7 @@ Installing speedups altogether + ------------------------------ + + The following will get you ``aiohttp`` along with :term:`chardet`, +-:term:`aiodns` and ``brotlipy`` in one bundle. No need to type ++:term:`aiodns` and ``Brotli`` in one bundle. No need to type + separate commands anymore! + + .. code-block:: bash +diff --git a/setup.py b/setup.py +index 54462ba7..7a184817 100644 +--- a/setup.py ++++ b/setup.py +@@ -137,7 +137,7 @@ args = dict( + extras_require={ + "speedups": [ + "aiodns", +- "brotlipy", ++ "Brotli", + "cchardet", + ], + }, +-- +2.32.0 + |