commit:     fe486203c31bc14bdf6b0f656621cfd33be34d56
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Wed Nov  1 15:26:51 2023 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Wed Nov  1 16:05:18 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fe486203

dev-python/zstandard: Bump to 0.22.0

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 dev-python/zstandard/Manifest                      |  1 +
 .../zstandard/files/zstandard-0.22.0-build.patch   | 53 ++++++++++++++++
 dev-python/zstandard/zstandard-0.22.0.ebuild       | 74 ++++++++++++++++++++++
 3 files changed, 128 insertions(+)

diff --git a/dev-python/zstandard/Manifest b/dev-python/zstandard/Manifest
index 9423adad5833..3d90d71df78d 100644
--- a/dev-python/zstandard/Manifest
+++ b/dev-python/zstandard/Manifest
@@ -1 +1,2 @@
 DIST python-zstandard-0.21.0.gh.tar.gz 711413 BLAKE2B 
de3c5a5b34242c20452e35ba6bac451a176f9f442dfc7028f5bae9299c8cedafa58edce85b21bbbdd440765a7eef67bf3c996ae1a81d534a18bfc203cdcc1c25
 SHA512 
51a7a7a6c20733858f96763738f3097f52dae1ca3a33bad3e78e31d6f339d8f2ddb0a7da2fafaa0b162b17e5054c0582ab52054f1215e8c39d8e1f8002babd7c
+DIST python-zstandard-0.22.0.gh.tar.gz 707644 BLAKE2B 
ce400120f9106d729b50ae091a581f4a9fb2e796ec0872cb7db393aa7a55cf6e22cbff79c3ff780b4f609fbd8289a9744cbdfc730ba51cb09ee4e7c56b1dac9e
 SHA512 
b3041217ad4b6297d0727dd5d22bc83645d43fa591985bef43e8633feb960310a3f2eb1edaa133595941a6932683af91d565266f312c987e6b6c514ce70c9ddb

diff --git a/dev-python/zstandard/files/zstandard-0.22.0-build.patch 
b/dev-python/zstandard/files/zstandard-0.22.0-build.patch
new file mode 100644
index 000000000000..1a5ff9affeda
--- /dev/null
+++ b/dev-python/zstandard/files/zstandard-0.22.0-build.patch
@@ -0,0 +1,53 @@
+From d7cb41b4ec0239c82d77a6cd7f55b4c7e3fe0c8a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgo...@gentoo.org>
+Date: Wed, 1 Nov 2023 16:17:13 +0100
+Subject: [PATCH] build: fix building with modern setuptools backend
+
+Set correct `sys.path` prior to importing `setup_zstd`, in order to fix
+building with the modern setuptools backend, i.e.:
+
+```
+* Getting build dependencies for wheel...
+<string>:37: DeprecationWarning: distutils Version classes are deprecated. Use 
packaging.version instead.
+<string>:38: DeprecationWarning: distutils Version classes are deprecated. Use 
packaging.version instead.
+Traceback (most recent call last):
+  File 
"/usr/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py", 
line 353, in <module>
+    main()
+  File 
"/usr/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py", 
line 335, in main
+    json_out['return_val'] = hook(**hook_input['kwargs'])
+                             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File 
"/usr/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py", 
line 118, in get_requires_for_build_wheel
+    return hook(config_settings)
+           ^^^^^^^^^^^^^^^^^^^^^
+  File 
"/tmp/build-env-mgz__6r4/lib/python3.12/site-packages/setuptools/build_meta.py",
 line 355, in get_requires_for_build_wheel
+    return self._get_build_requires(config_settings, requirements=['wheel'])
+           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+  File 
"/tmp/build-env-mgz__6r4/lib/python3.12/site-packages/setuptools/build_meta.py",
 line 325, in _get_build_requires
+    self.run_setup()
+  File 
"/tmp/build-env-mgz__6r4/lib/python3.12/site-packages/setuptools/build_meta.py",
 line 341, in run_setup
+    exec(code, locals())
+  File "<string>", line 49, in <module>
+ModuleNotFoundError: No module named 'setup_zstd'
+
+ERROR Backend subprocess exited when trying to invoke 
get_requires_for_build_wheel
+```
+---
+ setup.py | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/setup.py b/setup.py
+index 7cc1f4f..2b2895b 100755
+--- a/setup.py
++++ b/setup.py
+@@ -46,6 +46,8 @@ try:
+ except ImportError:
+     cffi = None
+ 
++sys.path.insert(0, ".")
++
+ import setup_zstd
+ 
+ SUPPORT_LEGACY = False
+-- 
+2.42.0
+

diff --git a/dev-python/zstandard/zstandard-0.22.0.ebuild 
b/dev-python/zstandard/zstandard-0.22.0.ebuild
new file mode 100644
index 000000000000..d658852757c9
--- /dev/null
+++ b/dev-python/zstandard/zstandard-0.22.0.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..12} pypy3 )
+
+inherit distutils-r1
+
+MY_P=python-zstandard-${PV}
+DESCRIPTION="Zstandard Bindings for Python"
+HOMEPAGE="
+       https://github.com/indygreg/python-zstandard/
+       https://pypi.org/project/zstandard/
+"
+SRC_URI="
+       https://github.com/indygreg/python-zstandard/archive/${PV}.tar.gz
+               -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+SLOT="0"
+LICENSE="BSD"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 
~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos 
~x64-solaris"
+
+DEPEND="
+       app-arch/zstd:=
+"
+RDEPEND="
+       ${DEPEND}
+       $(python_gen_cond_dep '
+               >=dev-python/cffi-1.14.0-r2:=[${PYTHON_USEDEP}]
+       ' 'python*')
+"
+BDEPEND="
+       test? (
+               dev-python/hypothesis[${PYTHON_USEDEP}]
+       )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+       local PATCHES=(
+               "${FILESDIR}/${P}-build.patch"
+       )
+
+       # the C backend is repeatedly broken, so force CFFI instead
+       sed -e '/PYTHON_ZSTANDARD_IMPORT_POLICY/s:default:cffi:' \
+               -i zstandard/__init__.py || die
+       # unbundle zstd
+       : > zstd/zstdlib.c || die
+       # it does random preprocessing on that, so we can't use #include
+       cp "${ESYSROOT}/usr/include/zstd.h" zstd/zstd.h || die
+       sed -i -e '/include_dirs/a    libraries=["zstd"],' make_cffi.py || die
+
+       distutils-r1_src_prepare
+
+       DISTUTILS_ARGS=(
+               --no-c-backend
+       )
+}
+
+python_test() {
+       local EPYTEST_DESELECT=(
+               # unreliable, fails on x86
+               
tests/test_data_structures.py::TestCompressionParameters::test_estimated_compression_context_size
+       )
+
+       rm -rf zstandard || die
+       epytest
+}

Reply via email to