git: 843dc6fc0a64 - main - multimedia/py-opentimelineio: update 0.17.0 → 0.18.1

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Tue, 08 Sep 2026 00:42:16 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=843dc6fc0a64fe099257172424a6af0eee2cb82a

commit 843dc6fc0a64fe099257172424a6af0eee2cb82a
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2026-09-07 18:08:50 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2026-09-08 00:38:57 +0000

    multimedia/py-opentimelineio: update 0.17.0 → 0.18.1
---
 multimedia/py-opentimelineio/Makefile              | 11 ++--
 multimedia/py-opentimelineio/distinfo              | 14 +++---
 ...melineio_opentimelineio-bindings_otio_imath.cpp | 58 ++++++++++++++++++++++
 multimedia/py-opentimelineio/pkg-plist             | 39 ++++-----------
 4 files changed, 80 insertions(+), 42 deletions(-)

diff --git a/multimedia/py-opentimelineio/Makefile b/multimedia/py-opentimelineio/Makefile
index 4fd62d94c9d0..00fc8c85caf3 100644
--- a/multimedia/py-opentimelineio/Makefile
+++ b/multimedia/py-opentimelineio/Makefile
@@ -1,13 +1,12 @@
 PORTNAME=	opentimelineio
 DISTVERSIONPREFIX=	v
-DISTVERSION=	0.17.0
-PORTREVISION=	2
+DISTVERSION=	0.18.1
 CATEGORIES=	multimedia
 PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
 
 MAINTAINER=	yuri@FreeBSD.org
 COMMENT=	API and interchange format for editorial timeline information
-WWW=		https://github.com/PixarAnimationStudios/OpenTimelineIO
+WWW=		https://github.com/AcademySoftwareFoundation/OpenTimelineIO
 
 LICENSE=	APACHE20
 LICENSE_FILE=	${WRKSRC}/LICENSE.txt
@@ -19,11 +18,11 @@ USES=		cmake:indirect compiler:c++14-lang python:3.11+
 USE_PYTHON=	distutils concurrent # autoplist is broken, see https://github.com/PixarAnimationStudios/OpenTimelineIO/issues/1205
 
 USE_GITHUB=	yes
-GH_ACCOUNT=	PixarAnimationStudios
+GH_ACCOUNT=	AcademySoftwareFoundation
 GH_PROJECT=	OpenTimelineIO
 
-GH_TUPLE=	pybind:pybind11:v2.13.5:pybind_pybind11/src/deps/pybind11 \
-		Tencent:rapidjson:06d58b9e848c650114556a23294d0b6440078c61:Tencent_rapidjson/src/deps/rapidjson
+GH_TUPLE=	pybind:pybind11:a2e59f0e7065404b44dfe92a28aca47ba1378dc4:pybind_pybind11/src/deps/pybind11 \
+		Tencent:rapidjson:24b5e7a8b27f42fa16b96fc70aade9106cf7102f:Tencent_rapidjson/src/deps/rapidjson
 
 PORTSCOUT=	limit:^.*[0-9]$$ # should end with a digit to prevent tags like last_pure_python
 
diff --git a/multimedia/py-opentimelineio/distinfo b/multimedia/py-opentimelineio/distinfo
index 7e0cc5688035..6e75b007e0fd 100644
--- a/multimedia/py-opentimelineio/distinfo
+++ b/multimedia/py-opentimelineio/distinfo
@@ -1,7 +1,7 @@
-TIMESTAMP = 1724634766
-SHA256 (PixarAnimationStudios-OpenTimelineIO-v0.17.0_GH0.tar.gz) = cdf8281c6091a18a4147295b660e13b610a6d58919a79608bf03e5359c1c2d24
-SIZE (PixarAnimationStudios-OpenTimelineIO-v0.17.0_GH0.tar.gz) = 2340862
-SHA256 (pybind-pybind11-v2.13.5_GH0.tar.gz) = b1e209c42b3a9ed74da3e0b25a4f4cd478d89d5efbb48f04b277df427faf6252
-SIZE (pybind-pybind11-v2.13.5_GH0.tar.gz) = 794599
-SHA256 (Tencent-rapidjson-06d58b9e848c650114556a23294d0b6440078c61_GH0.tar.gz) = 30d28bbe0bfff9d8dc5d3cf62799b6ee550499cc1520e44bdece81e002480d19
-SIZE (Tencent-rapidjson-06d58b9e848c650114556a23294d0b6440078c61_GH0.tar.gz) = 1107982
+TIMESTAMP = 1788794515
+SHA256 (AcademySoftwareFoundation-OpenTimelineIO-v0.18.1_GH0.tar.gz) = bcb516a43a962dac0cde3e1f9da634c1fd409915d499ff8f3ce6f738a4637d72
+SIZE (AcademySoftwareFoundation-OpenTimelineIO-v0.18.1_GH0.tar.gz) = 1622906
+SHA256 (pybind-pybind11-a2e59f0e7065404b44dfe92a28aca47ba1378dc4_GH0.tar.gz) = 1da0a5c38950e4f49329e9de10c59b2527840a1b963113f1c53b455971cd6aef
+SIZE (pybind-pybind11-a2e59f0e7065404b44dfe92a28aca47ba1378dc4_GH0.tar.gz) = 801302
+SHA256 (Tencent-rapidjson-24b5e7a8b27f42fa16b96fc70aade9106cf7102f_GH0.tar.gz) = 2d2601a82d2d3b7e143a3c8d43ef616671391034bc46891a9816b79cf2d3e7a8
+SIZE (Tencent-rapidjson-24b5e7a8b27f42fa16b96fc70aade9106cf7102f_GH0.tar.gz) = 1116703
diff --git a/multimedia/py-opentimelineio/files/patch-src_py-opentimelineio_opentimelineio-bindings_otio_imath.cpp b/multimedia/py-opentimelineio/files/patch-src_py-opentimelineio_opentimelineio-bindings_otio_imath.cpp
new file mode 100644
index 000000000000..4aad7c6c3367
--- /dev/null
+++ b/multimedia/py-opentimelineio/files/patch-src_py-opentimelineio_opentimelineio-bindings_otio_imath.cpp
@@ -0,0 +1,58 @@
+-- Fix build with newer pybind11/Imath by avoiding member function pointer
+-- bindings that trigger template deduction failures due to IMATH_HOSTDEVICE
+-- attributes on the member functions.
+-- Reference: local poudriere build failure for 0.18.1 on FreeBSD 15-amd64.
+-- Upstreamed: https://github.com/AcademySoftwareFoundation/OpenTimelineIO/issues/2037
+
+--- src/py-opentimelineio/opentimelineio-bindings/otio_imath.cpp.orig
++++ src/py-opentimelineio/opentimelineio-bindings/otio_imath.cpp
+@@ -76,14 +76,30 @@
+         .def("cross", [](IMATH_NAMESPACE::V2d* v, IMATH_NAMESPACE::V2d const & v2) {
+                 return v->cross(v2);
+             })
+-        .def("length", &IMATH_NAMESPACE::V2d::length)
+-        .def("length2", &IMATH_NAMESPACE::V2d::length2)
+-        .def("normalize", &IMATH_NAMESPACE::V2d::normalize)
+-        .def("normalizeExc", &IMATH_NAMESPACE::V2d::normalizeExc)
+-        .def("normalizeNonNull", &IMATH_NAMESPACE::V2d::normalizeNonNull)
+-        .def("normalized", &IMATH_NAMESPACE::V2d::normalized)
+-        .def("normalizedExc", &IMATH_NAMESPACE::V2d::normalizedExc)
+-        .def("normalizedNonNull", &IMATH_NAMESPACE::V2d::normalizedNonNull)
++        .def("length", [](IMATH_NAMESPACE::V2d const& v) {
++                return v.length();
++            })
++        .def("length2", [](IMATH_NAMESPACE::V2d const& v) {
++                return v.length2();
++            })
++        .def("normalize", [](IMATH_NAMESPACE::V2d& v) {
++                return v.normalize();
++            })
++        .def("normalizeExc", [](IMATH_NAMESPACE::V2d& v) {
++                return v.normalizeExc();
++            })
++        .def("normalizeNonNull", [](IMATH_NAMESPACE::V2d& v) {
++                return v.normalizeNonNull();
++            })
++        .def("normalized", [](IMATH_NAMESPACE::V2d const& v) {
++                return v.normalized();
++            })
++        .def("normalizedExc", [](IMATH_NAMESPACE::V2d const& v) {
++                return v.normalizedExc();
++            })
++        .def("normalizedNonNull", [](IMATH_NAMESPACE::V2d const& v) {
++                return v.normalizedNonNull();
++            })
+         .def_static("baseTypeLowest", []() {
+                 return IMATH_NAMESPACE::V2d::baseTypeLowest();
+             })
+@@ -112,7 +128,9 @@
+         .def("__ne__", [](IMATH_NAMESPACE::Box2d lhs, py::object const& rhs) {
+             return lhs != _type_checked<IMATH_NAMESPACE::Box2d>(rhs, "!=");
+         })
+-        .def("center", &IMATH_NAMESPACE::Box2d::center)
++        .def("center", [](IMATH_NAMESPACE::Box2d const& box) {
++                return box.center();
++            })
+         .def("extendBy", [](IMATH_NAMESPACE::Box2d* box, IMATH_NAMESPACE::V2d const& point ) {
+             return box->extendBy(point);
+         })
diff --git a/multimedia/py-opentimelineio/pkg-plist b/multimedia/py-opentimelineio/pkg-plist
index 9ef1ee4e060d..0db467eda6ce 100644
--- a/multimedia/py-opentimelineio/pkg-plist
+++ b/multimedia/py-opentimelineio/pkg-plist
@@ -4,14 +4,13 @@ bin/otioconvert
 bin/otiopluginfo
 bin/otiostat
 bin/otiotool
-bin/otioview
-%%PYTHON_SITELIBDIR%%/OpenTimelineIO-0.17.0-py%%PYTHON_VER%%.egg-info/PKG-INFO
-%%PYTHON_SITELIBDIR%%/OpenTimelineIO-0.17.0-py%%PYTHON_VER%%.egg-info/SOURCES.txt
-%%PYTHON_SITELIBDIR%%/OpenTimelineIO-0.17.0-py%%PYTHON_VER%%.egg-info/dependency_links.txt
-%%PYTHON_SITELIBDIR%%/OpenTimelineIO-0.17.0-py%%PYTHON_VER%%.egg-info/entry_points.txt
-%%PYTHON_SITELIBDIR%%/OpenTimelineIO-0.17.0-py%%PYTHON_VER%%.egg-info/not-zip-safe
-%%PYTHON_SITELIBDIR%%/OpenTimelineIO-0.17.0-py%%PYTHON_VER%%.egg-info/requires.txt
-%%PYTHON_SITELIBDIR%%/OpenTimelineIO-0.17.0-py%%PYTHON_VER%%.egg-info/top_level.txt
+%%PYTHON_SITELIBDIR%%/OpenTimelineIO-0.18.1-py%%PYTHON_VER%%.egg-info/PKG-INFO
+%%PYTHON_SITELIBDIR%%/OpenTimelineIO-0.18.1-py%%PYTHON_VER%%.egg-info/SOURCES.txt
+%%PYTHON_SITELIBDIR%%/OpenTimelineIO-0.18.1-py%%PYTHON_VER%%.egg-info/dependency_links.txt
+%%PYTHON_SITELIBDIR%%/OpenTimelineIO-0.18.1-py%%PYTHON_VER%%.egg-info/entry_points.txt
+%%PYTHON_SITELIBDIR%%/OpenTimelineIO-0.18.1-py%%PYTHON_VER%%.egg-info/not-zip-safe
+%%PYTHON_SITELIBDIR%%/OpenTimelineIO-0.18.1-py%%PYTHON_VER%%.egg-info/requires.txt
+%%PYTHON_SITELIBDIR%%/OpenTimelineIO-0.18.1-py%%PYTHON_VER%%.egg-info/top_level.txt
 %%PYTHON_SITELIBDIR%%/opentimelineio/__init__.py
 %%PYTHON_SITELIBDIR%%/opentimelineio/__pycache__/__init__%%PYTHON_TAG%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/opentimelineio/__pycache__/__init__%%PYTHON_TAG%%.pyc
@@ -100,6 +99,8 @@ bin/otioview
 %%PYTHON_SITELIBDIR%%/opentimelineio/core/__pycache__/__init__%%PYTHON_TAG%%.pyc
 %%PYTHON_SITELIBDIR%%/opentimelineio/core/__pycache__/_core_utils%%PYTHON_TAG%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/opentimelineio/core/__pycache__/_core_utils%%PYTHON_TAG%%.pyc
+%%PYTHON_SITELIBDIR%%/opentimelineio/core/__pycache__/color%%PYTHON_TAG%%.opt-1.pyc
+%%PYTHON_SITELIBDIR%%/opentimelineio/core/__pycache__/color%%PYTHON_TAG%%.pyc
 %%PYTHON_SITELIBDIR%%/opentimelineio/core/__pycache__/composable%%PYTHON_TAG%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/opentimelineio/core/__pycache__/composable%%PYTHON_TAG%%.pyc
 %%PYTHON_SITELIBDIR%%/opentimelineio/core/__pycache__/composition%%PYTHON_TAG%%.opt-1.pyc
@@ -109,6 +110,7 @@ bin/otioview
 %%PYTHON_SITELIBDIR%%/opentimelineio/core/__pycache__/mediaReference%%PYTHON_TAG%%.opt-1.pyc
 %%PYTHON_SITELIBDIR%%/opentimelineio/core/__pycache__/mediaReference%%PYTHON_TAG%%.pyc
 %%PYTHON_SITELIBDIR%%/opentimelineio/core/_core_utils.py
+%%PYTHON_SITELIBDIR%%/opentimelineio/core/color.py
 %%PYTHON_SITELIBDIR%%/opentimelineio/core/composable.py
 %%PYTHON_SITELIBDIR%%/opentimelineio/core/composition.py
 %%PYTHON_SITELIBDIR%%/opentimelineio/core/item.py
@@ -171,24 +173,3 @@ bin/otioview
 %%PYTHON_SITELIBDIR%%/opentimelineio/test_utils.py
 %%PYTHON_SITELIBDIR%%/opentimelineio/url_utils.py
 %%PYTHON_SITELIBDIR%%/opentimelineio/versioning.py
-%%PYTHON_SITELIBDIR%%/opentimelineview/__init__.py
-%%PYTHON_SITELIBDIR%%/opentimelineview/__pycache__/__init__%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/opentimelineview/__pycache__/__init__%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/opentimelineview/__pycache__/console%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/opentimelineview/__pycache__/console%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/opentimelineview/__pycache__/details_widget%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/opentimelineview/__pycache__/details_widget%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/opentimelineview/__pycache__/ruler_widget%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/opentimelineview/__pycache__/ruler_widget%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/opentimelineview/__pycache__/settings%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/opentimelineview/__pycache__/settings%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/opentimelineview/__pycache__/timeline_widget%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/opentimelineview/__pycache__/timeline_widget%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/opentimelineview/__pycache__/track_widgets%%PYTHON_TAG%%.opt-1.pyc
-%%PYTHON_SITELIBDIR%%/opentimelineview/__pycache__/track_widgets%%PYTHON_TAG%%.pyc
-%%PYTHON_SITELIBDIR%%/opentimelineview/console.py
-%%PYTHON_SITELIBDIR%%/opentimelineview/details_widget.py
-%%PYTHON_SITELIBDIR%%/opentimelineview/ruler_widget.py
-%%PYTHON_SITELIBDIR%%/opentimelineview/settings.py
-%%PYTHON_SITELIBDIR%%/opentimelineview/timeline_widget.py
-%%PYTHON_SITELIBDIR%%/opentimelineview/track_widgets.py