rizinorg / rz-ghidra

Deep ghidra decompiler and sleigh disassembler integration for rizin
GNU Lesser General Public License v3.0
802 stars 87 forks source link

Build fails with PugiXML 1.14 #354

Open nbraud opened 1 month ago

nbraud commented 1 month ago

When trying to update pugixml to v1.14 in nixpkgs, we discovered that rz-ghidra fails to build with the new version:

/build/pyside-setup-everywhere-src-6.7.0/sources/pyside6/build/PySide6/QtHelp/PySide6/QtHelp/qthelp_module_wrapper.cpp: In function 'void PySequence_PythonToCpp__QList_QHelpSearchQuery_(PyObject*, void*)':
/build/pyside-setup-everywhere-src-6.7.0/sources/pyside6/build/PySide6/QtHelp/PySide6/QtHelp/qthelp_module_wrapper.cpp:538:28: warning: 'QHelpSearchQuery::QHelpSearchQuery()' is deprecated: Use QString instead [-Wdeprecated-declarations]
  538 |         ::QHelpSearchQuery cppItem;
      |                            ^~~~~~~
In file included from /build/pyside-setup-everywhere-src-6.7.0/sources/pyside6/build/PySide6/QtHelp/PySide6/QtHelp/pyside6_qthelp_python.h:20,
                 from /build/pyside-setup-everywhere-src-6.7.0/sources/pyside6/build/PySide6/QtHelp/PySide6/QtHelp/qthelp_module_wrapper.cpp:18:
/nix/store/ha2qrsg0fdp7kxk90s6np0qbdmxa1gag-qttools-6.7.1/include/QtHelp/qhelpsearchengine.h:31:5: note: declared here
   31 |     QHelpSearchQuery()
      |     ^~~~~~~~~~~~~~~~
ninja: build stopped: subcommand failed.
thestr4ng3r commented 1 month ago

These are the actual errors from the logs:

cc1plus: fatal error: /build/pyside-setup-everywhere-src-6.7.0/sources/pyside6/build/PySide6/QtMultimedia/PySide6/QtMultimedia/qtaudio_wrapper.cpp: No such file or directory
FAILED: PySide6/QtMultimedia/CMakeFiles/QtMultimedia.dir/PySide6/QtMultimedia/qaudiosink_wrapper.cpp.o 
/nix/store/9bv7dcvmfcjnmg5mnqwqlq2wxfn8d7yi-gcc-wrapper-13.2.0/bin/g++ -DNDEBUG -DPy_LIMITED_API=0x03060000 -DQT_CORE_LIB -DQT_GUI_LIB -DQT_LEAN_HEADERS=1 -DQT_MULTIMEDIA_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQtMultimedia_EXPORTS -I/build/pyside-setup-everywhere-src-6.7.0/sources/pyside6/PySide6/QtMultimedia/QtMultimedia -I/build/pyside-setup-everywhere-src-6.7.0/sources/pyside6/PySide6/QtMultimedia -I/build/pyside-setup-everywhere-src-6.7.0/sources/pyside6/build/PySide6/QtMultimedia -I/build/pyside-setup-everywhere-src-6.7.0/sources/pyside6/libpyside -I/build/pyside-setup-everywhere-src-6.7.0/sources/pyside6/build/PySide6/QtCore/PySide6/QtCore -I/build/pyside-setup-everywhere-src-6.7.0/sources/pyside6/build/PySide6/QtGui/PySide6/QtGui -I/build/pyside-setup-everywhere-src-6.7.0/sources/pyside6/build/PySide6/QtNetwork/PySide6/QtNetwork -I/build/pyside-setup-everywhere-src-6.7.0/sources/pyside6/PySide6 -isystem /nix/store/ikqvl8jq0d7vlp25d9zlbh44m4hljahc-qtbase-6.7.1/include/QtCore -isystem /nix/store/ikqvl8jq0d7vlp25d9zlbh44m4hljahc-qtbase-6.7.1/include/QtGui -isystem /nix/store/ikqvl8jq0d7vlp25d9zlbh44m4hljahc-qtbase-6.7.1/include/QtNetwork -isystem /nix/store/4zvnsqlzsgq0vx3nmgbdgvf0ax8kw7m1-qtmultimedia-6.7.1/include/QtMultimedia -isystem /nix/store/ikqvl8jq0d7vlp25d9zlbh44m4hljahc-qtbase-6.7.1/mkspecs/linux-g++ -isystem /nix/store/gqrxrikf2cqjf02i4yn9d6zhv8cwhxcc-shiboken6-6.7.0/include/shiboken6 -isystem /nix/store/7hnr99nxrd2aw6lghybqdmkckq60j6l9-python3-3.11.9/include/python3.11 -Wall -Wextra -Wno-strict-aliasing -Wno-cast-function-type -fvisibility=hidden -Os -DNDEBUG -std=gnu++17 -fPIC   -fPIC -ffunction-sections -fdata-sections -fno-exceptions -fPIC -MD -MT PySide6/QtMultimedia/CMakeFiles/QtMultimedia.dir/PySide6/QtMultimedia/qaudiosink_wrapper.cpp.o -MF PySide6/QtMultimedia/CMakeFiles/QtMultimedia.dir/PySide6/QtMultimedia/qaudiosink_wrapper.cpp.o.d -o PySide6/QtMultimedia/CMakeFiles/QtMultimedia.dir/PySide6/QtMultimedia/qaudiosink_wrapper.cpp.o -c /build/pyside-setup-everywhere-src-6.7.0/sources/pyside6/build/PySide6/QtMultimedia/PySide6/QtMultimedia/qaudiosink_wrapper.cpp
/build/pyside-setup-everywhere-src-6.7.0/sources/pyside6/build/PySide6/QtMultimedia/PySide6/QtMultimedia/qaudiosink_wrapper.cpp: In function 'PyObject* Sbk_QAudioSinkFunc_error(PyObject*)':
/build/pyside-setup-everywhere-src-6.7.0/sources/pyside6/build/PySide6/QtMultimedia/PySide6/QtMultimedia/qaudiosink_wrapper.cpp:792:162: error: 'SBK_QtAudio_Error_IDX' was not declared in this scope; did you mean 'SBK_QCamera_Error_IDX'?
  792 |             pyResult = Shiboken::Conversions::copyToPython(PepType_SETP(reinterpret_cast<SbkEnumType *>(Shiboken::Module::get(SbkPySide6_QtMultimediaTypeStructs[SBK_QtAudio_Error_IDX])))->converter, &cppResult);
      |                                                                                                                                                                  ^~~~~~~~~~~~~~~~~~~~~
      |                                                                                                                                                                  SBK_QCamera_Error_IDX
/build/pyside-setup-everywhere-src-6.7.0/sources/pyside6/build/PySide6/QtMultimedia/PySide6/QtMultimedia/qaudiosink_wrapper.cpp: In function 'PyObject* Sbk_QAudioSinkFunc_state(PyObject*)':
/build/pyside-setup-everywhere-src-6.7.0/sources/pyside6/build/PySide6/QtMultimedia/PySide6/QtMultimedia/qaudiosink_wrapper.cpp:1120:162: error: 'SBK_QtAudio_State_IDX' was not declared in this scope; did you mean 'SBK_Qt_WindowState_IDX'?
 1120 |             pyResult = Shiboken::Conversions::copyToPython(PepType_SETP(reinterpret_cast<SbkEnumType *>(Shiboken::Module::get(SbkPySide6_QtMultimediaTypeStructs[SBK_QtAudio_State_IDX])))->converter, &cppResult);
      |                                                                                                                                                                  ^~~~~~~~~~~~~~~~~~~~~
      |                                                                                                                                                                  SBK_Qt_WindowState_IDX
FAILED: PySide6/QtMultimedia/CMakeFiles/QtMultimedia.dir/PySide6/QtMultimedia/qaudiosource_wrapper.cpp.o 
/nix/store/9bv7dcvmfcjnmg5mnqwqlq2wxfn8d7yi-gcc-wrapper-13.2.0/bin/g++ -DNDEBUG -DPy_LIMITED_API=0x03060000 -DQT_CORE_LIB -DQT_GUI_LIB -DQT_LEAN_HEADERS=1 -DQT_MULTIMEDIA_LIB -DQT_NETWORK_LIB -DQT_NO_DEBUG -DQtMultimedia_EXPORTS -I/build/pyside-setup-everywhere-src-6.7.0/sources/pyside6/PySide6/QtMultimedia/QtMultimedia -I/build/pyside-setup-everywhere-src-6.7.0/sources/pyside6/PySide6/QtMultimedia -I/build/pyside-setup-everywhere-src-6.7.0/sources/pyside6/build/PySide6/QtMultimedia -I/build/pyside-setup-everywhere-src-6.7.0/sources/pyside6/libpyside -I/build/pyside-setup-everywhere-src-6.7.0/sources/pyside6/build/PySide6/QtCore/PySide6/QtCore -I/build/pyside-setup-everywhere-src-6.7.0/sources/pyside6/build/PySide6/QtGui/PySide6/QtGui -I/build/pyside-setup-everywhere-src-6.7.0/sources/pyside6/build/PySide6/QtNetwork/PySide6/QtNetwork -I/build/pyside-setup-everywhere-src-6.7.0/sources/pyside6/PySide6 -isystem /nix/store/ikqvl8jq0d7vlp25d9zlbh44m4hljahc-qtbase-6.7.1/include/QtCore -isystem /nix/store/ikqvl8jq0d7vlp25d9zlbh44m4hljahc-qtbase-6.7.1/include/QtGui -isystem /nix/store/ikqvl8jq0d7vlp25d9zlbh44m4hljahc-qtbase-6.7.1/include/QtNetwork -isystem /nix/store/4zvnsqlzsgq0vx3nmgbdgvf0ax8kw7m1-qtmultimedia-6.7.1/include/QtMultimedia -isystem /nix/store/ikqvl8jq0d7vlp25d9zlbh44m4hljahc-qtbase-6.7.1/mkspecs/linux-g++ -isystem /nix/store/gqrxrikf2cqjf02i4yn9d6zhv8cwhxcc-shiboken6-6.7.0/include/shiboken6 -isystem /nix/store/7hnr99nxrd2aw6lghybqdmkckq60j6l9-python3-3.11.9/include/python3.11 -Wall -Wextra -Wno-strict-aliasing -Wno-cast-function-type -fvisibility=hidden -Os -DNDEBUG -std=gnu++17 -fPIC   -fPIC -ffunction-sections -fdata-sections -fno-exceptions -fPIC -MD -MT PySide6/QtMultimedia/CMakeFiles/QtMultimedia.dir/PySide6/QtMultimedia/qaudiosource_wrapper.cpp.o -MF PySide6/QtMultimedia/CMakeFiles/QtMultimedia.dir/PySide6/QtMultimedia/qaudiosource_wrapper.cpp.o.d -o PySide6/QtMultimedia/CMakeFiles/QtMultimedia.dir/PySide6/QtMultimedia/qaudiosource_wrapper.cpp.o -c /build/pyside-setup-everywhere-src-6.7.0/sources/pyside6/build/PySide6/QtMultimedia/PySide6/QtMultimedia/qaudiosource_wrapper.cpp
/build/pyside-setup-everywhere-src-6.7.0/sources/pyside6/build/PySide6/QtMultimedia/PySide6/QtMultimedia/qaudiosource_wrapper.cpp: In function 'PyObject* Sbk_QAudioSourceFunc_error(PyObject*)':
/build/pyside-setup-everywhere-src-6.7.0/sources/pyside6/build/PySide6/QtMultimedia/PySide6/QtMultimedia/qaudiosource_wrapper.cpp:792:162: error: 'SBK_QtAudio_Error_IDX' was not declared in this scope; did you mean 'SBK_QCamera_Error_IDX'?
  792 |             pyResult = Shiboken::Conversions::copyToPython(PepType_SETP(reinterpret_cast<SbkEnumType *>(Shiboken::Module::get(SbkPySide6_QtMultimediaTypeStructs[SBK_QtAudio_Error_IDX])))->converter, &cppResult);
      |                                                                                                                                                                  ^~~~~~~~~~~~~~~~~~~~~
      |                                                                                                                                                                  SBK_QCamera_Error_IDX
/build/pyside-setup-everywhere-src-6.7.0/sources/pyside6/build/PySide6/QtMultimedia/PySide6/QtMultimedia/qaudiosource_wrapper.cpp: In function 'PyObject* Sbk_QAudioSourceFunc_state(PyObject*)':
/build/pyside-setup-everywhere-src-6.7.0/sources/pyside6/build/PySide6/QtMultimedia/PySide6/QtMultimedia/qaudiosource_wrapper.cpp:1120:162: error: 'SBK_QtAudio_State_IDX' was not declared in this scope; did you mean 'SBK_Qt_WindowState_IDX'?
 1120 |             pyResult = Shiboken::Conversions::copyToPython(PepType_SETP(reinterpret_cast<SbkEnumType *>(Shiboken::Module::get(SbkPySide6_QtMultimediaTypeStructs[SBK_QtAudio_State_IDX])))->converter, &cppResult);
      |                                                                                                                                                                  ^~~~~~~~~~~~~~~~~~~~~
      |                                                                                                                                                                  SBK_Qt_WindowState_IDX

Seems unrelated to pugixml, but caused by PySide2/Shiboken instead.