Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 07 Apr 2026 19:19:18 +0000
From:      Yuri Victorovich <yuri@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 3a02618c2a32 - main - graphics/py-opencv-python-headless: New port: Wrapper package for OpenCV python bindings
Message-ID:  <69d558b6.32fdf.4b426fe8@gitrepo.freebsd.org>

index | next in thread | raw e-mail

The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=3a02618c2a32646ed996ad83c53464726dbea66d

commit 3a02618c2a32646ed996ad83c53464726dbea66d
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2026-04-07 16:31:20 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2026-04-07 19:19:14 +0000

    graphics/py-opencv-python-headless: New port: Wrapper package for OpenCV python bindings
---
 graphics/Makefile                                  |  1 +
 graphics/py-opencv-python-headless/Makefile        | 51 ++++++++++++++++++++++
 graphics/py-opencv-python-headless/distinfo        |  7 +++
 .../files/patch-pyproject.toml                     | 19 ++++++++
 .../py-opencv-python-headless/files/patch-setup.py | 21 +++++++++
 graphics/py-opencv-python-headless/pkg-descr       |  5 +++
 6 files changed, 104 insertions(+)

diff --git a/graphics/Makefile b/graphics/Makefile
index 599500c6c344..50a6c9fb5271 100644
--- a/graphics/Makefile
+++ b/graphics/Makefile
@@ -984,6 +984,7 @@
     SUBDIR += py-napari-plugin-engine
     SUBDIR += py-nwdiag
     SUBDIR += py-opencolorio
+    SUBDIR += py-opencv-python-headless
     SUBDIR += py-openimageio
     SUBDIR += py-openshadinglanguage
     SUBDIR += py-openslide-python
diff --git a/graphics/py-opencv-python-headless/Makefile b/graphics/py-opencv-python-headless/Makefile
new file mode 100644
index 000000000000..22bd9e88e5cd
--- /dev/null
+++ b/graphics/py-opencv-python-headless/Makefile
@@ -0,0 +1,51 @@
+PORTNAME=	opencv-python-headless
+DISTVERSION=	4.13.0.92
+CATEGORIES=	graphics
+MASTER_SITES=	PYPI
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Wrapper package for OpenCV python bindings
+WWW=		https://github.com/opencv/opencv-python
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE.txt
+
+BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}scikit-build>=0.14.0:devel/py-scikit-build@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}numpy1>0:math/py-numpy1@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}setuptools>0:devel/py-setuptools@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}pip>0:devel/py-pip@${PY_FLAVOR} \
+		cmake:devel/cmake
+LIB_DEPENDS=	libavif.so:graphics/libavif \
+		libwebp.so:graphics/webp \
+		libpng16.so:graphics/png \
+		libtiff.so:graphics/tiff \
+		libopenjp2.so:graphics/openjpeg \
+		libavcodec.so:multimedia/ffmpeg \
+		libopenblas.so:math/openblas
+
+USES=		gnome gstreamer jpeg python
+USE_GNOME=	glib20
+USE_GSTREAMER1=	yes
+USE_PYTHON=	pep517 autoplist pytest
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	opencv
+GH_PROJECT=	opencv-python
+GH_TAGNAME=	92
+GH_TUPLE=	opencv:opencv:b4c5ec4042f097e2a5b386b9d413ec7333d0a184:opencv/opencv \
+		opencv:opencv_contrib:d99ad2a188210cc35067c2e60076eed7c2442bc3:opencv_contrib/opencv_contrib
+
+MAKE_ENV=	ENABLE_HEADLESS=1 \
+		OPENCV_PYTHON_PACKAGE_NAME=opencv-python-headless
+
+TEST_ENV=	${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
+TEST_WRKSRC=	${WRKSRC}/opencv/modules/python
+
+CONFLICTS_INSTALL=	opencv # opencv has the same python bindings bundled in
+
+post-patch:
+	@${PRINTF} 'opencv_version = "${DISTVERSION}"\ncontrib = False\nheadless = True\nrolling = False\nci_build = False' \
+		> ${WRKSRC}/cv2/version.py
+
+.include <bsd.port.mk>
diff --git a/graphics/py-opencv-python-headless/distinfo b/graphics/py-opencv-python-headless/distinfo
new file mode 100644
index 000000000000..cfffb0d80edf
--- /dev/null
+++ b/graphics/py-opencv-python-headless/distinfo
@@ -0,0 +1,7 @@
+TIMESTAMP = 1775576082
+SHA256 (opencv-opencv-python-4.13.0.92-92_GH0.tar.gz) = 049293f56726a3ebb01bb7508b973e14e62752a4a0e067ac6af4e371d6aa30d3
+SIZE (opencv-opencv-python-4.13.0.92-92_GH0.tar.gz) = 1130133
+SHA256 (opencv-opencv-b4c5ec4042f097e2a5b386b9d413ec7333d0a184_GH0.tar.gz) = 4f2a381ce3377e6f22d0718fe7101e97a21968a21c81f0356f2787bb21024dc4
+SIZE (opencv-opencv-b4c5ec4042f097e2a5b386b9d413ec7333d0a184_GH0.tar.gz) = 95448014
+SHA256 (opencv-opencv_contrib-d99ad2a188210cc35067c2e60076eed7c2442bc3_GH0.tar.gz) = 8d2f5665a4f47fd6763eb75f5017676cbcdeb813074b32a9fda72c25d52abdd4
+SIZE (opencv-opencv_contrib-d99ad2a188210cc35067c2e60076eed7c2442bc3_GH0.tar.gz) = 55518735
diff --git a/graphics/py-opencv-python-headless/files/patch-pyproject.toml b/graphics/py-opencv-python-headless/files/patch-pyproject.toml
new file mode 100644
index 000000000000..c0e3b2cba1a9
--- /dev/null
+++ b/graphics/py-opencv-python-headless/files/patch-pyproject.toml
@@ -0,0 +1,19 @@
+--- pyproject.toml.orig	2025-07-04 16:37:46 UTC
++++ pyproject.toml
+@@ -1,14 +1,10 @@
+ [build-system]
+ requires = [
+-  "numpy<2.0; python_version<'3.9'",
+-  "numpy==2.0.2; python_version>='3.9' and python_version<'3.13'",
+-  "numpy==2.1.3; python_version=='3.13'",
+-  "numpy==2.3.2; python_version=='3.14'",
++  "numpy>=1.13.3",
+   "packaging",
+   "pip",
+   "scikit-build>=0.14.0",
+-  "setuptools==59.2.0; python_version<'3.12'",
+-  "setuptools<70.0.0; python_version>='3.12'",
++  "setuptools",
+ ]
+ # use a custom backend to manage CMake check / installation
+ # see https://scikit-build.readthedocs.io/en/latest/usage.html#adding-cmake-as-building-requirement-only-if-not-installed-or-too-low-a-version
diff --git a/graphics/py-opencv-python-headless/files/patch-setup.py b/graphics/py-opencv-python-headless/files/patch-setup.py
new file mode 100644
index 000000000000..388c6373c4ba
--- /dev/null
+++ b/graphics/py-opencv-python-headless/files/patch-setup.py
@@ -0,0 +1,21 @@
+--- setup.py.orig	2025-07-04 16:37:46 UTC
++++ setup.py
+@@ -23,8 +23,7 @@
+     build_rolling = get_build_env_var_by_name("rolling")
+ 
+     install_requires = [
+-        'numpy<2.0; python_version<"3.9"',
+-        'numpy>=2; python_version>="3.9"',
++        'numpy>=1.13.3',
+     ]
+ 
+     python_version = cmaker.CMaker.get_python_version()
+@@ -186,6 +185,8 @@
+             "-DBUILD_PERF_TESTS=OFF",
+             "-DBUILD_DOCS=OFF",
+             "-DPYTHON3_LIMITED_API=ON",
++            "-DWITH_PROTOBUF=OFF",
++            "-DWITH_VA=OFF",
+             "-DBUILD_OPENEXR=ON",
+         ]
+         + (
diff --git a/graphics/py-opencv-python-headless/pkg-descr b/graphics/py-opencv-python-headless/pkg-descr
new file mode 100644
index 000000000000..02c0feee0316
--- /dev/null
+++ b/graphics/py-opencv-python-headless/pkg-descr
@@ -0,0 +1,5 @@
+opencv-python-headless is a wrapper package for OpenCV python bindings.
+
+OpenCV (Open Source Computer Vision Library) is a free, open-source library
+featuring over 2,500 algorithms for real-time computer vision, image processing,
+and machine learning


home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?69d558b6.32fdf.4b426fe8>