AcademySoftwareFoundation / AcademySoftwareFoundation/OpenTimelineIO

Build breaks with Python-3.11: error: member access into incomplete type 'PyFrameObject'

Open
#1,759 5 comments 0 reactions 0 assignees View on GitHub
build python-bindings
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.