diff options
author | Po-Chuan Hsieh <sunpoet@FreeBSD.org> | 2023-04-18 17:51:32 +0000 |
---|---|---|
committer | Po-Chuan Hsieh <sunpoet@FreeBSD.org> | 2023-04-18 18:00:40 +0000 |
commit | 30dd3d5abda0a5df19c9787b783f8ea0538f124f (patch) | |
tree | a94a340fd9a650a0f1f9942cacfda2ad9c196384 | |
parent | 44d1cd02aad3be6d69d67e13fcfb057f0acf75fb (diff) | |
download | ports-30dd3d5abda0a5df19c9787b783f8ea0538f124f.tar.gz ports-30dd3d5abda0a5df19c9787b783f8ea0538f124f.zip |
archivers/py-blosc2: Add py-blosc2 2.2.0
C-Blosc2 is the new major version of C-Blosc, and is backward compatible with
both the C-Blosc1 API and its in-memory format. Python-Blosc2 is a Python
package that wraps C-Blosc2, the newest version of the Blosc compressor.
Currently Python-Blosc2 already reproduces the API of Python-Blosc, so it can be
used as a drop-in replacement. However, there are a few exceptions for a full
compatibility.
In addition, Python-Blosc2 aims to leverage the new C-Blosc2 API so as to
support super-chunks, multi-dimensional arrays (NDArray), serialization and
other bells and whistles introduced in C-Blosc2. Although this is always and
endless process, we have already catch up with most of the C-Blosc2 API
capabilities.
Note: Python-Blosc2 is meant to be backward compatible with Python-Blosc data.
That means that it can read data generated with Python-Blosc, but the opposite
is not true (i.e. there is no forward compatibility).
-rw-r--r-- | archivers/Makefile | 1 | ||||
-rw-r--r-- | archivers/py-blosc2/Makefile | 41 | ||||
-rw-r--r-- | archivers/py-blosc2/distinfo | 3 | ||||
-rw-r--r-- | archivers/py-blosc2/files/patch-pyproject.toml | 9 | ||||
-rw-r--r-- | archivers/py-blosc2/pkg-descr | 17 |
5 files changed, 71 insertions, 0 deletions
diff --git a/archivers/Makefile b/archivers/Makefile index 624b2b7128ae..5bfce871b36c 100644 --- a/archivers/Makefile +++ b/archivers/Makefile @@ -177,6 +177,7 @@ SUBDIR += ppunpack SUBDIR += pxz SUBDIR += py-acefile + SUBDIR += py-blosc2 SUBDIR += py-borgbackup SUBDIR += py-borgbackup11 SUBDIR += py-brotli diff --git a/archivers/py-blosc2/Makefile b/archivers/py-blosc2/Makefile new file mode 100644 index 000000000000..8b933417ea54 --- /dev/null +++ b/archivers/py-blosc2/Makefile @@ -0,0 +1,41 @@ +PORTNAME= blosc2 +PORTVERSION= 2.2.0 +CATEGORIES= archivers python +MASTER_SITES= PYPI +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} + +MAINTAINER= sunpoet@FreeBSD.org +COMMENT= Python wrapper for the C-Blosc2 library +WWW= https://github.com/Blosc/python-blosc2 + +LICENSE= BSD3CLAUSE +LICENSE_FILE= ${WRKSRC}/LICENSE.txt + +BUILD_DEPENDS= cmake:devel/cmake-core \ + ninja:devel/ninja \ + ${PYTHON_PKGNAMEPREFIX}numpy>=0,1:math/py-numpy@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}scikit-build>=0:devel/py-scikit-build@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} +LIB_DEPENDS= libblosc2.so:archivers/c-blosc2 +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}msgpack>=0:devel/py-msgpack@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}ndindex>=1.4:math/py-ndindex@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}numpy>=1.20.3,1:math/py-numpy@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}py-cpuinfo>=0:sysutils/py-py-cpuinfo@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}rich>=0:textproc/py-rich@${PY_FLAVOR} + +USES= pkgconfig python:3.8+ +USE_PYTHON= autoplist concurrent cython pep517 + +MAKE_ENV= CMAKE_ARGS=-DUSE_SYSTEM_BLOSC2=ON + +post-extract: + @${RM} ${WRKSRC}/blosc2/c-blosc2/blosc/shuffle-avx2.c.orig + +post-patch: +# Clean up bundled libraries + @${RM} -r ${WRKSRC}/blosc2/c-blosc2/ + +post-install: + ${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR} -name '*.so' -exec ${STRIP_CMD} {} + + +.include <bsd.port.mk> diff --git a/archivers/py-blosc2/distinfo b/archivers/py-blosc2/distinfo new file mode 100644 index 000000000000..09a27244985f --- /dev/null +++ b/archivers/py-blosc2/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1681052880 +SHA256 (blosc2-2.2.0.tar.gz) = 4cf3893fe85da4bd899ecf7a457fd09b2212fad256182100108de7a92b88aa87 +SIZE (blosc2-2.2.0.tar.gz) = 4135248 diff --git a/archivers/py-blosc2/files/patch-pyproject.toml b/archivers/py-blosc2/files/patch-pyproject.toml new file mode 100644 index 000000000000..0493f71cbd28 --- /dev/null +++ b/archivers/py-blosc2/files/patch-pyproject.toml @@ -0,0 +1,9 @@ +--- pyproject.toml.orig 2023-04-04 10:26:30 UTC ++++ pyproject.toml +@@ -1,5 +1,5 @@ + [build-system] +-requires = ["setuptools", "scikit-build", "cython", "cmake", "ninja", "oldest-supported-numpy"] ++requires = ["setuptools", "scikit-build", "cython", "numpy"] + + [tool.cibuildwheel] + skip = "cp36-* cp37-* pp37-* *-manylinux_i686 *_ppc64le *_s390x *-musllinux*" diff --git a/archivers/py-blosc2/pkg-descr b/archivers/py-blosc2/pkg-descr new file mode 100644 index 000000000000..0a8ee49311ca --- /dev/null +++ b/archivers/py-blosc2/pkg-descr @@ -0,0 +1,17 @@ +C-Blosc2 is the new major version of C-Blosc, and is backward compatible with +both the C-Blosc1 API and its in-memory format. Python-Blosc2 is a Python +package that wraps C-Blosc2, the newest version of the Blosc compressor. + +Currently Python-Blosc2 already reproduces the API of Python-Blosc, so it can be +used as a drop-in replacement. However, there are a few exceptions for a full +compatibility. + +In addition, Python-Blosc2 aims to leverage the new C-Blosc2 API so as to +support super-chunks, multi-dimensional arrays (NDArray), serialization and +other bells and whistles introduced in C-Blosc2. Although this is always and +endless process, we have already catch up with most of the C-Blosc2 API +capabilities. + +Note: Python-Blosc2 is meant to be backward compatible with Python-Blosc data. +That means that it can read data generated with Python-Blosc, but the opposite +is not true (i.e. there is no forward compatibility). |