git: d7c115c4b351 - main - graphics/py-mayavi: update 4.8.2 → 4.9.0
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 21 Sep 2026 23:05:37 UTC
The branch main has been updated by yuri:
URL: https://cgit.FreeBSD.org/ports/commit/?id=d7c115c4b351605b5d7033e5ed7e43b6e0f441bd
commit d7c115c4b351605b5d7033e5ed7e43b6e0f441bd
Author: Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2026-09-21 23:05:03 +0000
Commit: Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2026-09-21 23:05:32 +0000
graphics/py-mayavi: update 4.8.2 → 4.9.0
---
graphics/py-mayavi/Makefile | 44 +++++++++++++++------------
graphics/py-mayavi/distinfo | 6 ++--
graphics/py-mayavi/files/example-1.py | 30 ++++++++++++++++++
graphics/py-mayavi/files/patch-pyproject.toml | 19 ++++++++++++
graphics/py-mayavi/files/patch-setup.py | 19 ++++++++++++
5 files changed, 96 insertions(+), 22 deletions(-)
diff --git a/graphics/py-mayavi/Makefile b/graphics/py-mayavi/Makefile
index 42a11cb1e784..64cd34aed3db 100644
--- a/graphics/py-mayavi/Makefile
+++ b/graphics/py-mayavi/Makefile
@@ -1,6 +1,5 @@
PORTNAME= mayavi
-DISTVERSION= 4.8.2
-PORTREVISION= 10
+DISTVERSION= 4.9.0
CATEGORIES= graphics science python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -19,24 +18,25 @@ LICENSE_FILE_LGPL3= ${WRKSRC}/image_LICENSE_OOo.txt
LICENSE_FILE_BSD2CLAUSE= ${WRKSRC}/LICENSE_YORICK.txt
LICENSE_FILE_APACHE11= ${WRKSRC}/LICENSE_COLORBREWER.txt
-BROKEN= compilation fails: VTK throws std::runtime_erroe, see https://gitlab.kitware.com/vtk/vtk/-/issues/19994
BROKEN_i386= stage fails: Building TVTK classes... Fatal Python error: Illegal instruction
-BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}numpy>=1.16:math/py-numpy@${PY_FLAVOR} \
- ${PY_SPHINX} \
- sphinx-build:textproc/py-sphinx@${PY_FLAVOR}
LIB_DEPENDS= libvtkCommonCore-${VTK_VER}.so:math/vtk${VTK_VER:R}
-RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}numpy>=1.16:math/py-numpy@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}apptools>0:devel/py-apptools@${PY_FLAVOR} \
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}numpy>=1.16:math/py-numpy@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}apptools>0:devel/py-apptools@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}configobj>0:devel/py-configobj@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}envisage>0:devel/py-envisage@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}numpy>=1.16:math/py-numpy@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}packaging>0:devel/py-packaging@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pyface>=6.1.1:devel/py-pyface@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pygments>0:textproc/py-pygments@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}six>0:devel/py-six@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}puremagic>0:sysutils/py-puremagic@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}traits>=6.0.0:devel/py-traits@${PY_FLAVOR} \
- ${PYTHON_PKGNAMEPREFIX}traitsui>=7.0.0:graphics/py-traitsui@${PY_FLAVOR} # list is in mayavi/__init__.py
+ ${PYTHON_PKGNAMEPREFIX}traitsui>=7.0.0:graphics/py-traitsui@${PY_FLAVOR}
+TEST_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pytest-timeout>0:devel/py-pytest-timeout@${PY_FLAVOR}
USES= python shebangfix
-USE_PYTHON= distutils autoplist
+USE_PYTHON= distutils autoplist pytest
USE_WX= 3.2
WX_COMPS= python:run
@@ -44,17 +44,23 @@ WX_COMPS= python:run
SHEBANG_FILES= mayavi/scripts/mayavi2 \
mayavi/tests/csv_files/csv_2_py
-POST_PLIST= fix-plist
+PLIST_FILES= ${PYTHON_SITELIBDIR}/tvtk/tvtk_classes.zip
-post-install:
- ${STRIP_CMD} ${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}/tvtk/array_ext*.so
-
-fix-plist:
- @${REINPLACE_CMD} -e "s|${PYTHONPREFIX_SITELIBDIR:S/${PREFIX}\///}/mayavi/preferences/__pycache__$$||" ${TMPPLIST}
- @${REINPLACE_CMD} -e "s|${PYTHONPREFIX_SITELIBDIR:S/${PREFIX}\///}/tvtk/plugins/scene/__pycache__$$||" ${TMPPLIST}
+TEST_ENV+= PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
+TEST_ENV+= ETS_TOOLKIT=null QT_QPA_PLATFORM=offscreen # no GUI: do all rendering offscreen
do-test:
- @${SETENV} ${TEST_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR} ${PYTHON_CMD} ${WRKSRC}/examples/mayavi/interactive/coil_design_application.py
+ @${SETENV} ${TEST_ENV} ${PYTHON_CMD} \
+ -m pytest \
+ --disable-plugin-autoload -p timeout -v --timeout=60 \
+ ${WRKSRC}/tvtk \
+ --ignore=${WRKSRC}/tvtk/tests/test_browser.py \
+ --ignore=${WRKSRC}/tvtk/tests/test_qt_x11.py \
+ --ignore=${WRKSRC}/tvtk/tests/test_qvtk_render_window_interactor.py \
+ --ignore=${WRKSRC}/tvtk/tests/test_tvtk_scene.py \
+ --ignore=${WRKSRC}/tvtk/tests/test_visual.py
+
+# tests as of 4.9.0: 115 passed, 8 skipped, 1 xpassed
.include <../../math/vtk9/Makefile.version>
.include <bsd.port.mk>
diff --git a/graphics/py-mayavi/distinfo b/graphics/py-mayavi/distinfo
index 81df0d9b166b..e3008d3532e6 100644
--- a/graphics/py-mayavi/distinfo
+++ b/graphics/py-mayavi/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1717834084
-SHA256 (mayavi-4.8.2.tar.gz) = b10fe9145f21c48e4902f0e746b3603b3cb694d11456515a46820f21a0a74229
-SIZE (mayavi-4.8.2.tar.gz) = 7100132
+TIMESTAMP = 1790014580
+SHA256 (mayavi-4.9.0.tar.gz) = d12cfb362a658b0d99f088184abb6dca805d8accc437bd5e8131c221987783de
+SIZE (mayavi-4.9.0.tar.gz) = 8578140
diff --git a/graphics/py-mayavi/files/example-1.py b/graphics/py-mayavi/files/example-1.py
new file mode 100644
index 000000000000..ebd568ea280e
--- /dev/null
+++ b/graphics/py-mayavi/files/example-1.py
@@ -0,0 +1,30 @@
+# Author: Gael Varoquaux <gael.varoquaux@normalesup.org>
+# Copyright (c) 2009, Enthought, Inc.
+# License: BSD Style.
+
+import numpy as np
+
+# Create data with x and y random in the [-2, 2] segment, and z a
+# Gaussian function of x and y.
+np.random.seed(12345)
+x = 4 * (np.random.random(500) - 0.5)
+y = 4 * (np.random.random(500) - 0.5)
+
+
+def f(x, y):
+ return np.exp(-(x ** 2 + y ** 2))
+
+z = f(x, y)
+
+from mayavi import mlab
+mlab.figure(1, fgcolor=(0, 0, 0), bgcolor=(1, 1, 1))
+
+# Visualize the points
+pts = mlab.points3d(x, y, z, z, scale_mode='none', scale_factor=0.2)
+
+# Create and visualize the mesh
+mesh = mlab.pipeline.delaunay2d(pts)
+surf = mlab.pipeline.surface(mesh)
+
+mlab.view(47, 57, 8.2, (0.1, 0.15, 0.14))
+mlab.show()
diff --git a/graphics/py-mayavi/files/patch-pyproject.toml b/graphics/py-mayavi/files/patch-pyproject.toml
new file mode 100644
index 000000000000..e145874f06b5
--- /dev/null
+++ b/graphics/py-mayavi/files/patch-pyproject.toml
@@ -0,0 +1,19 @@
+-- Use the PEP 621 license table instead of the PEP 639 license expression
+-- and remove license-files, which the old setuptools port does not validate.
+-- This allows building without upgrading devel/py-setuptools.
+--- pyproject.toml.orig 2026-09-21 18:18:49 UTC
++++ pyproject.toml
+@@ -15,12 +15,7 @@ requires-python = ">=3.10"
+ description = "3D scientific data visualization library and application"
+ readme = "README.rst"
+ requires-python = ">=3.10"
+-license = "BSD-3-Clause"
+-license-files = [
+- "LICENSE.txt",
+- "LICENSE_COLORBREWER.txt",
+- "LICENSE_YORICK.txt",
+-]
++license = {text = "BSD-3-Clause"}
+ authors = [
+ {name = "Prabhu Ramachandran, et al.", email = "prabhu@aero.iitb.ac.in"},
+ ]
diff --git a/graphics/py-mayavi/files/patch-setup.py b/graphics/py-mayavi/files/patch-setup.py
new file mode 100644
index 000000000000..6c6c6821817b
--- /dev/null
+++ b/graphics/py-mayavi/files/patch-setup.py
@@ -0,0 +1,19 @@
+-- Work around the old setuptools port (<=70) which does not provide
+-- setuptools.command.bdist_wheel; fall back to wheel.bdist_wheel instead.
+-- This allows building without upgrading devel/py-setuptools.
+--- setup.py.orig 2026-09-21 18:18:49 UTC
++++ setup.py
+@@ -4,9 +4,12 @@ from setuptools import Command, Distribution, setup
+ # All rights reserved.
+
+ from setuptools import Command, Distribution, setup
+-from setuptools.command.bdist_wheel import bdist_wheel
+ from setuptools.command.build_py import build_py
+ from setuptools.command.develop import develop
++try:
++ from setuptools.command.bdist_wheel import bdist_wheel
++except ModuleNotFoundError:
++ from wheel.bdist_wheel import bdist_wheel
+
+ import os
+ import sys