AcademySoftwareFoundation / AcademySoftwareFoundation/OpenTimelineIO
Build breaks with Python-3.11: error: member access into incomplete type 'PyFrameObject'
- Dominant language
- C++
- Stars
- 2k
- Forks
- 351
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 1
Description
# Required:
------------
[x] I believe this isn't a duplicate topic
[x] This report is not related to an adapter
## Select One:
[x] Build problem
[ ] Incorrect Functionality or bug
[ ] New feature or functionality
## Description
```
In file included from /wrkdirs/usr/ports/multimedia/py-opentimelineio/work-py311/OpenTimelineIO-0.16.0/src/py-opentimelineio/opentimelineio-bindings/otio_imath.cpp:4:
In file included from /wrkdirs/usr/ports/multimedia/py-opentimelineio/work-py311/OpenTimelineIO-0.16.0/src/deps/pybind11/include/pybind11/pybind11.h:13:
In file included from /wrkdirs/usr/ports/multimedia/py-opentimelineio/work-py311/OpenTimelineIO-0.16.0/src/deps/pybind11/include/pybind11/attr.h:13:
In file included from /wrkdirs/usr/ports/multimedia/py-opentimelineio/work-py311/OpenTimelineIO-0.16.0/src/deps/pybind11/include/pybind11/cast.h:16:
/wrkdirs/usr/ports/multimedia/py-opentimelineio/work-py311/OpenTimelineIO-0.16.0/src/deps/pybind11/include/pybind11/detail/type_caster_base.h:482:26: error: member access into incomplete type 'PyFrameObject' (aka '_frame')
frame = frame->f_back;
^
/usr/local/include/python3.11/pytypedefs.h:22:16: note: forward declaration of '_frame'
typedef struct _frame PyFrameObject;
^
In file included from /wrkdirs/usr/ports/multimedia/py-opentimelineio/work-py311/OpenTimelineIO-0.16.0/src/py-opentimelineio/opentimelineio-bindings/otio_errorStatusHandler.cpp:4:
In file included from /wrkdirs/usr/ports/multimedia/py-opentimelineio/work-py311/OpenTimelineIO-0.16.0/src/py-opentimelineio/opentimelineio-bindings/otio_errorStatusHandler.h:6:
In file included from /wrkdirs/usr/ports/multimedia/py-opentimelineio/work-py311/OpenTimelineIO-0.16.0/src/deps/pybind11/include/pybind11/pybind11.h:13:
In file included from /wrkdirs/usr/ports/multimedia/py-opentimelineio/work-py311/OpenTimelineIO-0.16.0/src/deps/pybind11/include/pybind11/attr.h:13:
In file included from /wrkdirs/usr/ports/multimedia/py-opentimelineio/work-py311/OpenTimelineIO-0.16.0/src/deps/pybind11/include/pybind11/cast.h:16:
/wrkdirs/usr/ports/multimedia/py-opentimelineio/work-py311/OpenTimelineIO-0.16.0/src/deps/pybind11/include/pybind11/detail/type_caster_base.h:482:26: error: member access into incomplete type 'PyFrameObject' (aka '_frame')
frame = frame->f_back;
^
/usr/local/include/python3.11/pytypedefs.h:22:16: note: forward declaration of '_frame'
typedef struct _frame PyFrameObject;
^
In file included from /wrkdirs/usr/ports/multimedia/py-opentimelineio/work-py311/OpenTimelineIO-0.16.0/src/py-opentimelineio/opentimelineio-bindings/otio_anyVector.cpp:4:
In file included from /wrkdirs/usr/ports/multimedia/py-opentimelineio/work-py311/OpenTimelineIO-0.16.0/src/deps/pybind11/include/pybind11/pybind11.h:13:
In file included from /wrkdirs/usr/ports/multimedia/py-opentimelineio/work-py311/OpenTimelineIO-0.16.0/src/deps/pybind11/include/pybind11/attr.h:13:
In file included from /wrkdirs/usr/ports/multimedia/py-opentimelineio/work-py311/OpenTimelineIO-0.16.0/src/deps/pybind11/include/pybind11/cast.h:16:
/wrkdirs/usr/ports/multimedia/py-opentimelineio/work-py311/OpenTimelineIO-0.16.0/src/deps/pybind11/include/pybind11/detail/type_caster_base.h:482:26: error: member access into incomplete type 'PyFrameObject' (aka '_frame')
frame = frame->f_back;
^
/usr/local/include/python3.11/pytypedefs.h:22:16: note: forward declaration of '_frame'
typedef struct _frame PyFrameObject;
^
```
# Optional
-----------
## Environment
Operating System: FreeBSD 14.0
Python version if appropriate: 3.11
## Reproduction Steps
Regular build.
## Log output if appropriate
https://pkg-status.freebsd.org/beefy22/data/140amd64-default/28444692ea26/logs/py311-opentimelineio-0.16.0.log
Contributor guide
Research direction
Start by reproducing the regular build on FreeBSD 14.0 with Python 3.11 and review the linked build log. Inspect src/deps/pybind11/include/pybind11/detail/type_caster_base.h around line 482 and the affected binding files, including otio_imath.cpp, otio_errorStatusHandler.cpp, and otio_anyVector.cpp. Done means the OpenTimelineIO build completes without the incomplete PyFrameObject error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp, python
- Domain
- build-system
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100