git: 89de4db802e8 - main - misc/py-bitsandbytes: New port: k-bit optimizers and matrix multiplication routines

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Fri, 19 Sep 2025 07:36:29 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=89de4db802e8d9e2f80c9f840e29f374231b95b3

commit 89de4db802e8d9e2f80c9f840e29f374231b95b3
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2025-09-19 03:50:52 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2025-09-19 07:36:17 +0000

    misc/py-bitsandbytes: New port: k-bit optimizers and matrix multiplication routines
---
 misc/Makefile                  |  1 +
 misc/py-bitsandbytes/Makefile  | 34 ++++++++++++++++++++++++++++++++++
 misc/py-bitsandbytes/distinfo  |  3 +++
 misc/py-bitsandbytes/pkg-descr |  3 +++
 4 files changed, 41 insertions(+)

diff --git a/misc/Makefile b/misc/Makefile
index 2c71e6476ba8..bfe8cae6b2b6 100644
--- a/misc/Makefile
+++ b/misc/Makefile
@@ -426,6 +426,7 @@
     SUBDIR += py-apache-beam
     SUBDIR += py-ascii-magic
     SUBDIR += py-ast-comments
+    SUBDIR += py-bitsandbytes
     SUBDIR += py-boost-histogram
     SUBDIR += py-censys
     SUBDIR += py-cmap
diff --git a/misc/py-bitsandbytes/Makefile b/misc/py-bitsandbytes/Makefile
new file mode 100644
index 000000000000..2c0d6f9b37e4
--- /dev/null
+++ b/misc/py-bitsandbytes/Makefile
@@ -0,0 +1,34 @@
+PORTNAME=	bitsandbytes
+DISTVERSION=	0.47.0
+CATEGORIES=	misc # machine-learning
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	k-bit optimizers and matrix multiplication routines
+WWW=		https://huggingface.co/docs/bitsandbytes/main/en/index \
+		https://github.com/bitsandbytes-foundation/bitsandbytes
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	${PY_SETUPTOOLS} \
+		${PYTHON_PKGNAMEPREFIX}scikit-build-core>0:devel/py-scikit-build-core@${PY_FLAVOR}
+RUN_DEPENDS=	${PYNUMPY} \
+		${PYTHON_PKGNAMEPREFIX}pytorch>0:misc/py-pytorch@${PY_FLAVOR}
+TEST_DEPENDS=	${PYTHON_PKGNAMEPREFIX}einops>=0.8.0:misc/py-einops@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}lion-pytorch>=0.2.3:misc/py-lion-pytorch@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}scipy>=1.11.4:science/py-scipy@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}transformers>=4.30.1<5:misc/py-transformers@${PY_FLAVOR}
+
+USES=		cmake:indirect python
+USE_PYTHON=	pep517 autoplist pytest
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	bitsandbytes-foundation
+
+TEST_ENV=	${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
+
+post-install:
+	@${STRIP_CMD} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/bitsandbytes/libbitsandbytes_cpu.so
+
+.include <bsd.port.mk>
diff --git a/misc/py-bitsandbytes/distinfo b/misc/py-bitsandbytes/distinfo
new file mode 100644
index 000000000000..26589b220b5f
--- /dev/null
+++ b/misc/py-bitsandbytes/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1758248173
+SHA256 (bitsandbytes-foundation-bitsandbytes-0.47.0_GH0.tar.gz) = 3c6a85e53f64bc2c3f22429f237c7aa524e85e6a120bab7d6435384cd2f7a8ea
+SIZE (bitsandbytes-foundation-bitsandbytes-0.47.0_GH0.tar.gz) = 286187
diff --git a/misc/py-bitsandbytes/pkg-descr b/misc/py-bitsandbytes/pkg-descr
new file mode 100644
index 000000000000..b814143b7fe2
--- /dev/null
+++ b/misc/py-bitsandbytes/pkg-descr
@@ -0,0 +1,3 @@
+bitsandbytes enables accessible large language models via k-bit quantization
+for PyTorch. We provide three main features for dramatically reducing memory
+consumption for inference and training.