Bug 2049621
| Summary: | renderdoc fails to build with Python 3.11: error: 'struct _frame' has no member named 'f_globals' | ||
|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Tomáš Hrnčiar <thrnciar> |
| Component: | renderdoc | Assignee: | Orphan Owner <extras-orphan> |
| Status: | MODIFIED --- | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
| Severity: | unspecified | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 37 | CC: | ckellner, kaeptmblaubaer1000, mhroncok, mikhail.v.gavrilov, nanotwerp, thrnciar |
| Target Milestone: | --- | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | Type: | Bug | |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | |||
| Bug Blocks: | 2045102, 2117176, 2168842, 2231791, 2016048 | ||
This bug appears to have been reported against 'rawhide' during the Fedora 36 development cycle. Changing version to 36. This bug appears to have been reported against 'rawhide' during the Fedora Linux 37 development cycle. Changing version to 37. Hey, Christian. Could you please fix and rebuild the package? Is it realistic to have this fixed in time for Fedora 37 GA? I don't have enough information but it seems that this is a bigger change and I don't have much time myself. I would lean towards a no. I wonder what that means? We pull it for F37 and re-introduce it once it is fixed upstream? That would be my preferred option, yes. Sounds good to me. https://src.fedoraproject.org/rpms/renderdoc/c/163d2e6be1f214525eddc1d484e3d03f6936a33c?branch=rawhide https://src.fedoraproject.org/rpms/renderdoc/c/163d2e6be1f214525eddc1d484e3d03f6936a33c?branch=f37 This issue was fixed in this commit: https://github.com/baldurk/renderdoc/commit/9df7d402417d8068d3e0f3550635182875646b66 I tested it out by grabbing the old .spec file, changing Source0 to the latest HEAD tarball of RenderDoc, and compiling. No other changes were necessary to compile successfully. I would also suggest that LTO can be considered for enabling again if the toolchain is set to use Clang's ThinLTO, as I'm experiencing no crashing with this setup. This package has changed maintainer in Fedora. Reassigning to the new maintainer of this component. Renderdoc 1.23 (as well as 1.24), incorporating that commit, has been released since (about a month ago). Could this package please get restored? renderdoc is really useful for graphics development, and it's quite handy to have a distribution package available. I've made a copr for my personal use at https://copr.fedorainfracloud.org/coprs/kb1000/renderdoc, which proves newer versions do build and run with Python 3.11, on Fedora 37 (that's 1.25 now, and I made no other changes than changing version/release). Since there hasn't been any activity by the package maintainer since, I assume that means the package is unmaintained now? Is it possible to get the changes in through a different way? This package has changed maintainer in Fedora. Reassigning to the new maintainer of this component. |
renderdoc fails to build with Python 3.11.0a4. In file included from /builddir/build/BUILD/renderdoc-1.17/qrenderdoc/Code/pyrenderdoc/pyconversion.h:909, from /builddir/build/BUILD/renderdoc-1.17/redhat-linux-build/qrenderdoc/renderdoc_python.cxx:4379: /builddir/build/BUILD/renderdoc-1.17/qrenderdoc/Code/pyrenderdoc/function_conversion.h: In function 'funcType ConvertFunc(const char*, PyObject*, ExceptionHandler)': /builddir/build/BUILD/renderdoc-1.17/qrenderdoc/Code/pyrenderdoc/function_conversion.h:306:60: error: 'struct _frame' has no member named 'f_globals' 306 | global_internal_handle = PyDict_GetItemString(frame->f_globals, "_renderdoc_internal"); | ^~~~~~~~~ In file included from ../../qrenderdoc/Code/pyrenderdoc/pyconversion.h:909, from renderdoc_python.cxx:4379: ../../qrenderdoc/Code/pyrenderdoc/function_conversion.h: In function 'funcType ConvertFunc(const char*, PyObject*, ExceptionHandler)': ../../qrenderdoc/Code/pyrenderdoc/function_conversion.h:306:60: error: 'struct _frame' has no member named 'f_globals' 306 | global_internal_handle = PyDict_GetItemString(frame->f_globals, "_renderdoc_internal"); | ^~~~~~~~~ gmake[2]: *** [qrenderdoc/Code/pyrenderdoc/CMakeFiles/_renderdoc.dir/build.make:79: qrenderdoc/Code/pyrenderdoc/CMakeFiles/_renderdoc.dir/__/__/renderdoc_python.cxx.o] Error 1 gmake[2]: Leaving directory '/builddir/build/BUILD/renderdoc-1.17/redhat-linux-build' gmake[1]: *** [CMakeFiles/Makefile2:650: qrenderdoc/Code/pyrenderdoc/CMakeFiles/_renderdoc.dir/all] Error 2 gmake[1]: *** Waiting for unfinished jobs.... compiling qrenderdoc_python.cxx At global scope: cc1plus: note: unrecognized command-line option '-Wno-unknown-warning' may have been intended to silence earlier diagnostics gmake[3]: *** [Makefile:3672: .obj/renderdoc_python.o] Error 1 gmake[3]: *** Waiting for unfinished jobs.... In file included from ../../qrenderdoc/Code/pyrenderdoc/pyconversion.h:909, from qrenderdoc_python.cxx:4036: ../../qrenderdoc/Code/pyrenderdoc/function_conversion.h: In function 'funcType ConvertFunc(const char*, PyObject*, ExceptionHandler)': ../../qrenderdoc/Code/pyrenderdoc/function_conversion.h:306:60: error: 'struct _frame' has no member named 'f_globals' 306 | global_internal_handle = PyDict_GetItemString(frame->f_globals, "_renderdoc_internal"); | Changes of the PyFrameObject structure members: f_code: removed, use PyFrame_GetCode() instead. Warning: the function returns a strong reference, need to call Py_DECREF(). f_back: changed, use PyFrame_GetBack(). f_builtins: removed, use PyObject_GetAttrString(frame, "f_builtins"). f_globals: removed, use PyObject_GetAttrString(frame, "f_globals"). f_locals: removed, use PyObject_GetAttrString(frame, "f_locals"). f_lasti: removed, use PyObject_GetAttrString(frame, "f_lasti"). f_valuesstack: removed. f_stackdepth: removed. f_gen: removed. f_iblock: removed. f_state: removed. f_blockstack: removed. f_localsplus: removed. The Python frame object is now created lazily. A side effect is that the f_back member must not be accessed directly, since its value is now also computed lazily. The PyFrame_GetBack() function must be called instead. https://docs.python.org/3.11/whatsnew/3.11.html For the build logs, see: https://copr-be.cloud.fedoraproject.org/results/@python/python3.11/fedora-rawhide-x86_64/03273054-renderdoc/ For all our attempts to build renderdoc with Python 3.11, see: https://copr.fedorainfracloud.org/coprs/g/python/python3.11/package/renderdoc/ Testing and mass rebuild of packages is happening in copr. You can follow these instructions to test locally in mock if your package builds with Python 3.11: https://copr.fedorainfracloud.org/coprs/g/python/python3.11/ Let us know here if you have any questions. Python 3.11 is planned to be included in Fedora 37. To make that update smoother, we're building Fedora packages with all pre-releases of Python 3.11. A build failure prevents us from testing all dependent packages (transitive [Build]Requires), so if this package is required a lot, it's important for us to get it fixed soon. We'd appreciate help from the people who know this package best, but if you don't want to work on this now, let us know so we can try to work around it on our side.