radareorg/iaito

fails to build --with-python since drop of cmake

Closed this issue · 2 comments

Since drop of cmake, this program doesn't build anymore as it doesn't get proper flags to link against c python:

  ./configure \
    --prefix=/usr \
    --with-python \
    --with-python-bindings
  make

PS: how to build with graphiviz support?

tons of errors like:

/usr/bin/ld: /tmp/ccQEz0jI.ltrans30.ltrans.o: in function `api_version(_object*, _object*)':
/build/iaito/src/iaito/build/../src/common/PythonAPI.cpp:15: undefined reference to `PyUnicode_FromString'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans30.ltrans.o: in function `PyInit_api()':
/build/iaito/src/iaito/build/../src/common/PythonAPI.cpp:84: undefined reference to `PyModule_Create2'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans30.ltrans.o: in function `api_cmd(_object*, _object*)':
/build/iaito/src/iaito/build/../src/common/PythonAPI.cpp:25: undefined reference to `PyArg_ParseTuple'
/usr/bin/ld: /build/iaito/src/iaito/build/../src/common/PythonAPI.cpp:30: undefined reference to `PyUnicode_FromString'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans30.ltrans.o: in function `api_refresh(_object*, _object*)':
/build/iaito/src/iaito/build/../src/common/PythonAPI.cpp:39: undefined reference to `_Py_NoneStruct'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans30.ltrans.o: in function `api_message(_object*, _object*, _object*)':
/build/iaito/src/iaito/build/../src/common/PythonAPI.cpp:47: undefined reference to `PyArg_ParseTupleAndKeywords'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans30.ltrans.o: in function `api_message(_object*, _object*, _object*)':
/usr/include/python3.10/object.h:472: undefined reference to `_Py_NoneStruct'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans36.ltrans.o: in function `PyInit_qtres()':
/build/iaito/src/iaito/build/../src/common/QtResImporter.cpp:88: undefined reference to `PyModule_Create2'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans36.ltrans.o: in function `_Py_DECREF.lto_priv.0.lto_priv.0':
/usr/include/python3.10/object.h:500: undefined reference to `_Py_Dealloc'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans36.ltrans.o: in function `qtres_exists(_object*, _object*)':
/build/iaito/src/iaito/build/../src/common/QtResImporter.cpp:58: undefined reference to `PyArg_ParseTuple'
/usr/bin/ld: /build/iaito/src/iaito/build/../src/common/QtResImporter.cpp:60: undefined reference to `PyBool_FromLong'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans36.ltrans.o: in function `QtResGetCode(char const*)':
/build/iaito/src/iaito/build/../src/common/QtResImporter.cpp:30: undefined reference to `Py_CompileString'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans36.ltrans.o: in function `QtResImport(char const*)':
/build/iaito/src/iaito/build/../src/common/QtResImporter.cpp:45: undefined reference to `PyImport_ExecCodeModule'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans36.ltrans.o: in function `QtResImport(char const*)':
/usr/include/python3.10/object.h:500: undefined reference to `_Py_Dealloc'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans36.ltrans.o: in function `QtResImport(char const*)':
/build/iaito/src/iaito/build/../src/common/QtResImporter.cpp:47: undefined reference to `PyErr_Print'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans36.ltrans.o: in function `qtres_get_code(_object*, _object*)':
/build/iaito/src/iaito/build/../src/common/QtResImporter.cpp:67: undefined reference to `PyArg_ParseTuple'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans36.ltrans.o: in function `qtres_get_code(_object*, _object*)':
/usr/include/python3.10/object.h:472: undefined reference to `_Py_NoneStruct'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans37.ltrans.o: in function `pySideDestructionVisitor(SbkObject*, void*)':
/usr/include/python3.10/object.h:247: undefined reference to `PyType_IsSubtype'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans37.ltrans.o: in function `pySideDestructionVisitor(SbkObject*, void*)':
/build/iaito/src/iaito/build/../src/common/PythonManager.cpp:104: undefined reference to `PyObject_Repr'
/usr/bin/ld: /build/iaito/src/iaito/build/../src/common/PythonManager.cpp:107: undefined reference to `PyUnicode_AsUTF8String'
/usr/bin/ld: /build/iaito/src/iaito/build/../src/common/PythonManager.cpp:108: undefined reference to `PyBytes_AsString'
/usr/bin/ld: /build/iaito/src/iaito/build/../src/common/PythonManager.cpp:112: undefined reference to `Py_DecRef'
/usr/bin/ld: /build/iaito/src/iaito/build/../src/common/PythonManager.cpp:113: undefined reference to `Py_DecRef'
/usr/bin/ld: /build/iaito/src/iaito/build/../src/common/PythonManager.cpp:117: undefined reference to `PyEval_SaveThread'
/usr/bin/ld: /build/iaito/src/iaito/build/../src/common/PythonManager.cpp:119: undefined reference to `PyEval_RestoreThread'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans37.ltrans.o: in function `PythonManager::initPythonHome()':
/build/iaito/src/iaito/build/../src/common/PythonManager.cpp:62: undefined reference to `Py_DecodeLocale'
/usr/bin/ld: /build/iaito/src/iaito/build/../src/common/PythonManager.cpp:63: undefined reference to `Py_SetPythonHome'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans37.ltrans.o: in function `PythonManager::saveThread()':
/build/iaito/src/iaito/build/../src/common/PythonManager.cpp:184: undefined reference to `PyEval_SaveThread'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans37.ltrans.o: in function `PythonManager::restoreThread()':
/build/iaito/src/iaito/build/../src/common/PythonManager.cpp:175: undefined reference to `PyEval_RestoreThread'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans37.ltrans.o: in function `PythonManager::addPythonPath(char*)':
/build/iaito/src/iaito/build/../src/common/PythonManager.cpp:154: undefined reference to `PyImport_ImportModule'
/usr/bin/ld: /build/iaito/src/iaito/build/../src/common/PythonManager.cpp:158: undefined reference to `PyObject_GetAttrString'
/usr/bin/ld: /build/iaito/src/iaito/build/../src/common/PythonManager.cpp:162: undefined reference to `PyObject_GetAttrString'
/usr/bin/ld: /build/iaito/src/iaito/build/../src/common/PythonManager.cpp:166: undefined reference to `PyEval_CallFunction'
/usr/bin/ld: /build/iaito/src/iaito/build/../src/common/PythonManager.cpp:175: undefined reference to `PyEval_RestoreThread'
/usr/bin/ld: /build/iaito/src/iaito/build/../src/common/PythonManager.cpp:184: undefined reference to `PyEval_SaveThread'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans37.ltrans.o: in function `PluginManager::loadPythonPlugin(char const*)':
/build/iaito/src/iaito/build/../src/plugins/PluginManager.cpp:197: undefined reference to `PyImport_ImportModule'
/usr/bin/ld: /build/iaito/src/iaito/build/../src/plugins/PluginManager.cpp:204: undefined reference to `PyObject_GetAttrString'
/usr/bin/ld: /build/iaito/src/iaito/build/../src/plugins/PluginManager.cpp:205: undefined reference to `PyCallable_Check'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans37.ltrans.o: in function `PluginManager::loadPythonPlugin(char const*)':
/usr/include/python3.10/object.h:500: undefined reference to `_Py_Dealloc'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans37.ltrans.o: in function `PluginManager::loadPythonPlugin(char const*)':
/build/iaito/src/iaito/build/../src/plugins/PluginManager.cpp:214: undefined reference to `PyObject_CallFunction'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans37.ltrans.o: in function `PluginManager::loadPythonPlugin(char const*)':
/build/iaito/src/iaito/build/../src/common/PythonManager.cpp:175: undefined reference to `PyEval_RestoreThread'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans37.ltrans.o: in function `PluginManager::loadPythonPlugin(char const*)':
/usr/include/python3.10/object.h:500: undefined reference to `_Py_Dealloc'
/usr/bin/ld: /usr/include/python3.10/object.h:500: undefined reference to `_Py_Dealloc'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans37.ltrans.o: in function `PluginManager::loadPythonPlugin(char const*)':
/build/iaito/src/iaito/build/../src/common/PythonManager.cpp:184: undefined reference to `PyEval_SaveThread'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans37.ltrans.o: in function `PluginManager::loadPythonPlugin(char const*)':
/usr/include/python3.10/object.h:500: undefined reference to `_Py_Dealloc'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans37.ltrans.o: in function `PluginManager::loadPythonPlugin(char const*)':
/build/iaito/src/iaito/build/../src/plugins/PluginManager.cpp:200: undefined reference to `PyErr_Print'
/usr/bin/ld: /build/iaito/src/iaito/build/../src/plugins/PluginManager.cpp:219: undefined reference to `PyErr_Print'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans37.ltrans.o: in function `PluginManager::loadPythonPlugins(QDir const&)':
/build/iaito/src/iaito/build/../src/common/PythonManager.cpp:175: undefined reference to `PyEval_RestoreThread'
/usr/bin/ld: /build/iaito/src/iaito/build/../src/common/PythonManager.cpp:184: undefined reference to `PyEval_SaveThread'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans37.ltrans.o: in function `PythonManager::shutdown()':
/build/iaito/src/iaito/build/../src/common/PythonManager.cpp:145: undefined reference to `PyMem_Free'
/usr/bin/ld: /build/iaito/src/iaito/build/../src/common/PythonManager.cpp:148: undefined reference to `Py_Finalize'
/usr/bin/ld: /build/iaito/src/iaito/build/../src/common/PythonManager.cpp:175: undefined reference to `PyEval_RestoreThread'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans37.ltrans.o: in function `PythonManager::initialize()':
/build/iaito/src/iaito/build/../src/common/PythonManager.cpp:75: undefined reference to `PyImport_AppendInittab'
/usr/bin/ld: /build/iaito/src/iaito/build/../src/common/PythonManager.cpp:76: undefined reference to `PyImport_AppendInittab'
/usr/bin/ld: /build/iaito/src/iaito/build/../src/common/PythonManager.cpp:78: undefined reference to `PyImport_AppendInittab'
/usr/bin/ld: /build/iaito/src/iaito/build/../src/common/PythonManager.cpp:80: undefined reference to `Py_Initialize'
/usr/bin/ld: /build/iaito/src/iaito/build/../src/common/PythonManager.cpp:81: undefined reference to `PyEval_InitThreads'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans37.ltrans.o: in function `PythonManager::initialize()':
/build/iaito/src/iaito/build/../src/common/QtResImporter.cpp:45: undefined reference to `PyImport_ExecCodeModule'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans37.ltrans.o: in function `PythonManager::initialize()':
/build/iaito/src/iaito/build/../src/common/PythonManager.cpp:84: undefined reference to `Py_DecRef'
/usr/bin/ld: /build/iaito/src/iaito/build/../src/common/PythonManager.cpp:184: undefined reference to `PyEval_SaveThread'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans37.ltrans.o: in function `PythonManager::initialize()':
/usr/include/python3.10/object.h:500: undefined reference to `_Py_Dealloc'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans37.ltrans.o:/build/iaito/src/iaito/build/../src/common/QtResImporter.cpp:47: undefined reference to `PyErr_Print'
/usr/bin/ld: /tmp/ccQEz0jI.ltrans44.ltrans.o: in function `_QList_QString__CppToPython__

python support has been discontinued. the graphviz support works out of the box if you have the tool installed in your system, it's a runtime dependency.

That python support removed is not a hard position, as it's just for maintaince reasons, and because i think that it's better to enforce and promote the use of rlang and r2pipe which supports more languages and it is also able to run graphical dialogs to interact with the plugin or with iaito itself if we make a core plugin for iaito, to add commands to interact with the UI. this is imho a much better approach than the current bindings, but it also needs to be done and i have other priorities right now so can't focus on iaito as much as i would

Those flags are now gone