gnuradio / pybombs

PyBOMBS (Python Build Overlay Managed Bundle System) is the GNU Radio install management system for resolving dependencies and pulling in out-of-tree projects.
https://gnuradio.org
GNU General Public License v3.0
416 stars 189 forks source link

uhd problem #628

Closed Eetuheino03 closed 1 year ago

Eetuheino03 commented 1 year ago

pybombs rebuild uhd
[INFO] Prefix Python version is: 3.11.2 [INFO] PyBOMBS Version 2.3.5 [INFO] Rebuilding package: uhd [INFO] Removing old build directory. Configuring: (100%) [=====================================================================================================================================] Building: (100%) [=====================================================================================================================================] [ 2%] Built target uhd_rpclib [ 4%] Built target uhd-resources [ 4%] Building CXX object lib/CMakeFiles/uhd.dir/usrp/mpmd/sim_find.cpp.o In file included from /home/kali/pybombs/bladeRF/src/uhd/host/lib/deps/pybind11/include/pybind11/attr.h:11, from /home/kali/pybombs/bladeRF/src/uhd/host/lib/deps/pybind11/include/pybind11/pybind11.h:43, from /home/kali/pybombs/bladeRF/src/uhd/host/lib/deps/pybind11/include/pybind11/embed.h:11, from /home/kali/pybombs/bladeRF/src/uhd/host/lib/usrp/mpmd/sim_find.cpp:14: /home/kali/pybombs/bladeRF/src/uhd/host/lib/deps/pybind11/include/pybind11/cast.h: In function ‘std::string pybind11::detail::error_string()’: /home/kali/pybombs/bladeRF/src/uhd/host/lib/deps/pybind11/include/pybind11/cast.h:422:36: error: invalid use of incomplete type ‘PyFrameObject’ {aka ‘struct _frame’} 422 | " " + handle(frame->f_code->co_filename).cast() + | ^~ In file included from /usr/include/python3.11/Python.h:42, from /home/kali/pybombs/bladeRF/src/uhd/host/lib/usrp/mpmd/sim_find.cpp:13: /usr/include/python3.11/pytypedefs.h:22:16: note: forward declaration of ‘PyFrameObject’ {aka ‘struct _frame’} 22 | typedef struct _frame PyFrameObject; | ^~ /home/kali/pybombs/bladeRF/src/uhd/host/lib/deps/pybind11/include/pybind11/cast.h:422:75: error: expected primary-expression before ‘>’ token 422 | " " + handle(frame->f_code->co_filename).cast() + | ^ /home/kali/pybombs/bladeRF/src/uhd/host/lib/deps/pybind11/include/pybind11/cast.h:422:77: error: expected primary-expression before ‘)’ token 422 | " " + handle(frame->f_code->co_filename).cast() + | ^ /home/kali/pybombs/bladeRF/src/uhd/host/lib/deps/pybind11/include/pybind11/cast.h:424:29: error: invalid use of incomplete type ‘PyFrameObject’ {aka ‘struct _frame’} 424 | handle(frame->f_code->co_name).cast() + "\n"; | ^~ /usr/include/python3.11/pytypedefs.h:22:16: note: forward declaration of ‘PyFrameObject’ {aka ‘struct _frame’} 22 | typedef struct _frame PyFrameObject; | ^~ /home/kali/pybombs/bladeRF/src/uhd/host/lib/deps/pybind11/include/pybind11/cast.h:424:64: error: expected primary-expression before ‘>’ token 424 | handle(frame->f_code->co_name).cast() + "\n"; | ^ /home/kali/pybombs/bladeRF/src/uhd/host/lib/deps/pybind11/include/pybind11/cast.h:424:66: error: expected primary-expression before ‘)’ token 424 | handle(frame->f_code->co_name).cast() + "\n"; | ^ /home/kali/pybombs/bladeRF/src/uhd/host/lib/deps/pybind11/include/pybind11/cast.h:425:26: error: invalid use of incomplete type ‘PyFrameObject’ {aka ‘struct _frame’} 425 | frame = frame->f_back; | ^~ /usr/include/python3.11/pytypedefs.h:22:16: note: forward declaration of ‘PyFrameObject’ {aka ‘struct _frame’} 22 | typedef struct _frame PyFrameObject; | ^~ /home/kali/pybombs/bladeRF/src/uhd/host/lib/deps/pybind11/include/pybind11/pybind11.h: In function ‘pybind11::function pybind11::detail::get_type_override(const void, const type_info, const char)’: /home/kali/pybombs/bladeRF/src/uhd/host/lib/deps/pybind11/include/pybind11/pybind11.h:2119:49: error: ‘PyThreadState’ {aka ‘struct _ts’} has no member named ‘frame’; did you mean ‘cframe’? 2119 | PyFrameObject frame = PyThreadState_Get()->frame; | ^~~~~ | cframe /home/kali/pybombs/bladeRF/src/uhd/host/lib/deps/pybind11/include/pybind11/pybind11.h:2120:41: error: invalid use of incomplete type ‘PyFrameObject’ {aka ‘struct _frame’} 2120 | if (frame && (std::string) str(frame->f_code->co_name) == name && | ^~ /usr/include/python3.11/pytypedefs.h:22:16: note: forward declaration of ‘PyFrameObject’ {aka ‘struct _frame’} 22 | typedef struct _frame PyFrameObject; | ^~ /home/kali/pybombs/bladeRF/src/uhd/host/lib/deps/pybind11/include/pybind11/pybind11.h:2121:14: error: invalid use of incomplete type ‘PyFrameObject’ {aka ‘struct _frame’} 2121 | frame->f_code->co_argcount > 0) { | ^~ /usr/include/python3.11/pytypedefs.h:22:16: note: forward declaration of ‘PyFrameObject’ {aka ‘struct _frame’} 22 | typedef struct _frame PyFrameObject; | ^~ /home/kali/pybombs/bladeRF/src/uhd/host/lib/deps/pybind11/include/pybind11/pybind11.h:2124:18: error: invalid use of incomplete type ‘PyFrameObject’ {aka ‘struct _frame’} 2124 | frame->f_locals, PyTuple_GET_ITEM(frame->f_code->co_varnames, 0)); | ^~ /usr/include/python3.11/pytypedefs.h:22:16: note: forward declaration of ‘PyFrameObject’ {aka ‘struct _frame’} 22 | typedef struct _frame PyFrameObject; | ^~ In file included from /usr/include/python3.11/Python.h:38: /home/kali/pybombs/bladeRF/src/uhd/host/lib/deps/pybind11/include/pybind11/pytruct _frame’} 2124 | frame->f_locals, PyTuple_GET_ITEM(frame->f_code->co_varna | ^~ /usr/include/python3.11/pyport.h:24:38: note: in definition of macro ‘_Py_CAS 24 | #define _Py_CAST(type, expr) ((type)(expr)) | ^~~~ /usr/include/python3.11/cpython/tupleobject.h:30:38: note: in expansion of ma 30 | #define PyTuple_GET_ITEM(op, index) (_PyTuple_CAST(op)->ob_item[index | ^~~~~ /home/kali/pybombs/bladeRF/src/uhd/host/lib/deps/pybind11/include/pybind11/py 2124 | frame->f_locals, PyTuple_GET_ITEM(frame->f_code->co_varna | ^~~~ /usr/include/python3.11/pytypedefs.h:22:16: note: forward declaration of ‘PyF 22 | typedef struct _frame PyFrameObject; | ^~ make[2]: [lib/CMakeFiles/uhd.dir/build.make:2973: lib/CMakeFiles/uhd.dir/ make[1]: [CMakeFiles/Makefile2:1084: lib/CMakeFiles/uhd.dir/all] Error 2 make: *** [Makefile:166: all] Error 2 [ERROR] Build failed. See output above for error messages. [ERROR] Problem occurred while building package uhd: [ERROR] Build failed. [ERROR] Error rebuilding package uhd. Aborting.

Eetuheino03 commented 1 year ago

OS: Kali Linux Latest I have been installed all requirements but it's just not working. I have Bladerf 2.0 A4

fabiozerbetto commented 1 year ago

I have seme issue after update to Debian 12. Seem that the problem is due to python3.11.2 as it can be seen in this link:

https://docs.python.org/3.11/whatsnew/3.11.html

The PyFrameObject structure members have been removed from the public C API.

willcode commented 1 year ago

This is likely a version mismatch between some autogenerated pybind11 code and the pybind11 library. I also do not see PyFrameObject in UHD.

In any case, PyBOMBS is just the builder - it does not have anything to do with the UHD or other code. If you haven't already, try this from scratch on a clean system to try to rule out version mismatches.

fabiozerbetto commented 1 year ago

OS: Kali Linux Latest I have been installed all requirements but it's just not working. I have Bladerf 2.0 A4

I was able to build gnuradio using pybombs by overriding the building of uhd through pybombs configuration. In my case I had just installed uhd libs with precompiled package using apt in debian, than i edit the ~/.pybombs/config.yml by adding following lines:

- packages:
    uhd:
        forcebuild: False

It worked to me.