aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuri Victorovich <yuri@FreeBSD.org>2026-04-07 16:31:20 +0000
committerYuri Victorovich <yuri@FreeBSD.org>2026-04-07 19:19:14 +0000
commit3a02618c2a32646ed996ad83c53464726dbea66d (patch)
tree5595cf811fdfc0dffe5a102e868fb834bc70049c
parentfd5e125d4fa7da3e69e4a84568f3336b0adcf99f (diff)
graphics/py-opencv-python-headless: New port: Wrapper package for OpenCV python bindings
-rw-r--r--graphics/Makefile1
-rw-r--r--graphics/py-opencv-python-headless/Makefile51
-rw-r--r--graphics/py-opencv-python-headless/distinfo7
-rw-r--r--graphics/py-opencv-python-headless/files/patch-pyproject.toml19
-rw-r--r--graphics/py-opencv-python-headless/files/patch-setup.py21
-rw-r--r--graphics/py-opencv-python-headless/pkg-descr5
6 files changed, 104 insertions, 0 deletions
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