O2 cannot find DebugGUI because DebugGUI cannot find GLFW

Dear all,
I tried to install the current version of O2 and the build failed on the last step (the O2 itself).
aliBuild print: https://cernbox.cern.ch/index.php/s/DGHGq9Oot5nxpBe
log: https://cernbox.cern.ch/index.php/s/QzgPyQP1t4vRmYa

The log mentions that DebugGUI package did not allow itself to be picked up by cmake during O2 compilation because it couldn’t detect GLFW, although both GLFW and DebugGUI were compiled by aliBuild earlier with no problems.

Hello Piotr,

@eulisse I think this one is for you.
Cheers,
Barth

Yes. I am on it.

Hello
I have the same problem since 20 December
Best regards
Alla

Dear experts,

I got the same error with the latest O2, alidist and alibuild on ITS flps when trying to compile O2 under /home/its directory.
Does this issue has been solved? Could you please indicate to me how to proceed?

Thanks a lot.

Cheers,
Jian

Dear Jian,

this issue can be at least for the moment solved by installing the GLFW packages on your system, see in another ALICE talk ticket this comment from Sandro and, further down in the same ticket, my comment. In my comment you find the line to install the needed GLFW packages on Ubuntu 18.04. Here is a link to the QuickStart page with instructions for CC7 and Mac.

For the experts: In that other ticket I asked to update the QuickStart page with both the information, that GLFW is obligatory for the moment, and with the install command for Ubuntu. I really would suggest to add this information there.

Cheers,
Stefan

Hello,

we have the same issue on the EMCAL test FLP (also running on CENTOS). After installing the glfw-devel package O2 builds, but now we have a problem in QualityControl:

[ 23%] Linking CXX executable ../bin/o2-qc-data-dump
cd /home/cterrevo/alice/sw/BUILD/62a17e93bd68636809238ca3714dc6d1a2337a8b/QualityControl/Framework && /home/cterrevo/alice/sw/slc7_x86-64/CMake/v3.16.3-alice2-2/bin/cmake -E cmake_link_script CMakeFiles/o2-qc-data-dump.dir/link.txt --verbose=1
/home/cterrevo/alice/sw/slc7_x86-64/GCC-Toolchain/v7.3.0-alice1-1/bin/c++ -fPIC -O2 -std=c++17 -Wall -pedantic -Wextra -O2 -g -DNDEBUG  CMakeFiles/o2-qc-data-dump.dir/src/DataDumpGui.cxx.o CMakeFiles/o2-qc-data-dump.dir/src/runDataDump.cxx.o CMakeFiles/o2-qc-data-dump.dir/src/imgui/imgui.cpp.o CMakeFiles/o2-qc-data-dump.dir/src/imgui/imgui_draw.cpp.o CMakeFiles/o2-qc-data-dump.dir/src/imgui/imgui_impl_glfw_gl3.cpp.o CMakeFiles/o2-qc-data-dump.dir/src/imgui/imgui_widgets.cpp.o CMakeFiles/o2-qc-data-dump.dir/src/imgui/imgui_demo.cpp.o CMakeFiles/o2-qc-data-dump.dir/src/imgui/BaseGui.cxx.o -o ../bin/o2-qc-data-dump -Wl,-rpath,/home/cterrevo/alice/sw/BUILD/62a17e93bd68636809238ca3714dc6d1a2337a8b/QualityControl/lib:/home/cterrevo/alice/sw/slc7_x86-64/O2/v1.1.0-1/lib:/home/cterrevo/alice/sw/slc7_x86-64/libInfoLogger/v1.3.7-1/lib:/home/cterrevo/alice/sw/slc7_x86-64/Monitoring/v2.6.4-1/lib:/home/cterrevo/alice/sw/slc7_x86-64/Configuration/v2.2.5-1/lib:/home/cterrevo/alice/sw/slc7_x86-64/DebugGUI/v0.1.0-655f92e9c9-1/lib:/home/cterrevo/alice/sw/slc7_x86-64/boost/v1.70.0-1/lib:/home/cterrevo/alice/sw/slc7_x86-64/arrow/v0.14.1-1/lib:/home/cterrevo/alice/sw/slc7_x86-64/ROOT/v6-18-04-alice1-1/lib:/home/cterrevo/alice/sw/slc7_x86-64/FairRoot/6af7e84858-1/lib:/home/cterrevo/alice/sw/slc7_x86-64/FairMQ/v1.4.12-1/lib:/home/cterrevo/alice/sw/slc7_x86-64/FairLogger/v1.5.0-1/lib:/home/cterrevo/alice/sw/slc7_x86-64/Common-O2/v1.4.6-1/lib: ../lib/libQualityControl.so /usr/lib64/libglfw.so.3.2 /home/cterrevo/alice/sw/slc7_x86-64/O2/v1.1.0-1/lib/libO2Framework.so /home/cterrevo/alice/sw/slc7_x86-64/libInfoLogger/v1.3.7-1/lib/libInfoLogger.so -lpthread /home/cterrevo/alice/sw/slc7_x86-64/Monitoring/v2.6.4-1/lib/libO2Monitoring.so /home/cterrevo/alice/sw/slc7_x86-64/Configuration/v2.2.5-1/lib/libConfiguration.so /home/cterrevo/alice/sw/slc7_x86-64/DebugGUI/v0.1.0-655f92e9c9-1/lib/libO2DebugGUI.so /home/cterrevo/alice/sw/slc7_x86-64/boost/v1.70.0-1/lib/libboost_serialization.so /home/cterrevo/alice/sw/slc7_x86-64/arrow/v0.14.1-1/lib/libgandiva.so.14.1.0 /home/cterrevo/alice/sw/slc7_x86-64/O2/v1.1.0-1/lib/libO2CCDB.so /usr/lib64/libcurl.so /home/cterrevo/alice/sw/slc7_x86-64/O2/v1.1.0-1/lib/libO2CommonUtils.so /home/cterrevo/alice/sw/slc7_x86-64/O2/v1.1.0-1/lib/libO2Headers.so /home/cterrevo/alice/sw/slc7_x86-64/O2/v1.1.0-1/lib/libO2MemoryResources.so /home/cterrevo/alice/sw/slc7_x86-64/boost/v1.70.0-1/lib/libboost_iostreams.so /home/cterrevo/alice/sw/slc7_x86-64/O2/v1.1.0-1/lib/libO2CommonDataFormat.so /home/cterrevo/alice/sw/slc7_x86-64/O2/v1.1.0-1/lib/libO2GPUCommon.so /home/cterrevo/alice/sw/slc7_x86-64/fmt/6.1.2-1/lib64/libfmt.a /home/cterrevo/alice/sw/slc7_x86-64/ROOT/v6-18-04-alice1-1/lib/libROOTDataFrame.so.6.18.04 /home/cterrevo/alice/sw/slc7_x86-64/ROOT/v6-18-04-alice1-1/lib/libTreePlayer.so.6.18.04 /home/cterrevo/alice/sw/slc7_x86-64/ROOT/v6-18-04-alice1-1/lib/libTree.so.6.18.04 /home/cterrevo/alice/sw/slc7_x86-64/ROOT/v6-18-04-alice1-1/lib/libGraf3d.so.6.18.04 /home/cterrevo/alice/sw/slc7_x86-64/ROOT/v6-18-04-alice1-1/lib/libMultiProc.so.6.18.04 /home/cterrevo/alice/sw/slc7_x86-64/ROOT/v6-18-04-alice1-1/lib/libROOTVecOps.so.6.18.04 /home/cterrevo/alice/sw/slc7_x86-64/FairRoot/6af7e84858-1/lib/libBase.so /home/cterrevo/alice/sw/slc7_x86-64/FairRoot/6af7e84858-1/lib/libGeoBase.so /home/cterrevo/alice/sw/slc7_x86-64/FairMQ/v1.4.12-1/lib/libFairMQ.so.1.4.12 /home/cterrevo/alice/sw/slc7_x86-64/boost/v1.70.0-1/lib/libboost_container.so -lrt /home/cterrevo/alice/sw/slc7_x86-64/boost/v1.70.0-1/lib/libboost_regex.so /home/cterrevo/alice/sw/slc7_x86-64/FairMQ/v1.4.12-1/lib/libFairMQStateMachine.so.1.4.12 /home/cterrevo/alice/sw/slc7_x86-64/FairMQ/v1.4.12-1/lib/libFairMQTools.so.1.4.12 /home/cterrevo/alice/sw/slc7_x86-64/arrow/v0.14.1-1/lib/libarrow.so.14.1.0 -ldl /home/cterrevo/alice/sw/slc7_x86-64/FairRoot/6af7e84858-1/lib/libParMQ.so /home/cterrevo/alice/sw/slc7_x86-64/FairRoot/6af7e84858-1/lib/libParBase.so /home/cterrevo/alice/sw/slc7_x86-64/FairLogger/v1.5.0-1/lib/libFairLogger.so.1.5.0 /home/cterrevo/alice/sw/slc7_x86-64/FairRoot/6af7e84858-1/lib/libFairTools.so ../lib/libQualityControlTypes.so /home/cterrevo/alice/sw/slc7_x86-64/Common-O2/v1.4.6-1/lib/libCommon.so /home/cterrevo/alice/sw/slc7_x86-64/boost/v1.70.0-1/lib/libboost_program_options.so /home/cterrevo/alice/sw/slc7_x86-64/boost/v1.70.0-1/lib/libboost_filesystem.so /home/cterrevo/alice/sw/slc7_x86-64/ROOT/v6-18-04-alice1-1/lib/libNet.so.6.18.04 /home/cterrevo/alice/sw/slc7_x86-64/ROOT/v6-18-04-alice1-1/lib/libGpad.so.6.18.04 /home/cterrevo/alice/sw/slc7_x86-64/ROOT/v6-18-04-alice1-1/lib/libGraf.so.6.18.04 /home/cterrevo/alice/sw/slc7_x86-64/ROOT/v6-18-04-alice1-1/lib/libHist.so.6.18.04 /home/cterrevo/alice/sw/slc7_x86-64/ROOT/v6-18-04-alice1-1/lib/libRIO.so.6.18.04 /home/cterrevo/alice/sw/slc7_x86-64/ROOT/v6-18-04-alice1-1/lib/libMatrix.so.6.18.04 /home/cterrevo/alice/sw/slc7_x86-64/ROOT/v6-18-04-alice1-1/lib/libMathCore.so.6.18.04 /home/cterrevo/alice/sw/slc7_x86-64/ROOT/v6-18-04-alice1-1/lib/libImt.so.6.18.04 /home/cterrevo/alice/sw/slc7_x86-64/ROOT/v6-18-04-alice1-1/lib/libThread.so.6.18.04 /home/cterrevo/alice/sw/slc7_x86-64/ROOT/v6-18-04-alice1-1/lib/libCore.so.6.18.04 -lpthread -Wl,-rpath-link,/home/cterrevo/alice/sw/slc7_x86-64/ROOT/v6-18-04-alice1-1/lib 
CMakeFiles/o2-qc-data-dump.dir/src/imgui/imgui_impl_glfw_gl3.cpp.o: In function `ImGui_ImplGlfwGL3_RenderDrawLists(ImDrawData*)‘:
/home/cterrevo/alice/sw/SOURCES/QualityControl/master/0/Framework/src/imgui/imgui_impl_glfw_gl3.cpp:47: undefined reference to `gl3wProcs’
/home/cterrevo/alice/sw/SOURCES/QualityControl/master/0/Framework/src/imgui/imgui_impl_glfw_gl3.cpp:48: undefined reference to `gl3wProcs’
/home/cterrevo/alice/sw/SOURCES/QualityControl/master/0/Framework/src/imgui/imgui_impl_glfw_gl3.cpp:49: undefined reference to `gl3wProcs’
/home/cterrevo/alice/sw/SOURCES/QualityControl/master/0/Framework/src/imgui/imgui_impl_glfw_gl3.cpp:50: undefined reference to `gl3wProcs’
/home/cterrevo/alice/sw/SOURCES/QualityControl/master/0/Framework/src/imgui/imgui_impl_glfw_gl3.cpp:51: undefined reference to `gl3wProcs’
CMakeFiles/o2-qc-data-dump.dir/src/imgui/imgui_impl_glfw_gl3.cpp.o:/home/cterrevo/alice/sw/SOURCES/QualityControl/master/0/Framework/src/imgui/imgui_impl_glfw_gl3.cpp:52: more undefined references to `gl3wProcs’ follow
CMakeFiles/o2-qc-data-dump.dir/src/imgui/BaseGui.cxx.o: In function `o2::framework::initGUI(char const*)‘:
/home/cterrevo/alice/sw/SOURCES/QualityControl/master/0/Framework/src/imgui/BaseGui.cxx:45: undefined reference to `gl3wInit’
CMakeFiles/o2-qc-data-dump.dir/src/imgui/BaseGui.cxx.o: In function `o2::framework::pollGUI(void*, std::function<void ()>)‘:
/home/cterrevo/alice/sw/SOURCES/QualityControl/master/0/Framework/src/imgui/BaseGui.cxx:82: undefined reference to `gl3wProcs’
/home/cterrevo/alice/sw/SOURCES/QualityControl/master/0/Framework/src/imgui/BaseGui.cxx:83: undefined reference to `gl3wProcs’
/home/cterrevo/alice/sw/SOURCES/QualityControl/master/0/Framework/src/imgui/BaseGui.cxx:84: undefined reference to `gl3wProcs’
collect2: error: ld returned 1 exit status
make[2]: *** [Framework/CMakeFiles/o2-qc-data-dump.dir/build.make:239: bin/o2-qc-data-dump] Error 1
make[2]: uscita dalla directory “/home/cterrevo/alice/sw/BUILD/62a17e93bd68636809238ca3714dc6d1a2337a8b/QualityControl”
make[1]: *** [CMakeFiles/Makefile2:521: Framework/CMakeFiles/o2-qc-data-dump.dir/all] Error 2
make[1]: uscita dalla directory “/home/cterrevo/alice/sw/BUILD/62a17e93bd68636809238ca3714dc6d1a2337a8b/QualityControl”
make: *** [Makefile:141: all] Error 2

How can we solve this? It seem like it is linked against the correct library but the symbols were not found. We build without --always-prefer-system.

Thanks in advance!

Hello,
I have the same problem.
cheers,
Cristina

Dear Stefan,

Thanks a lot for the feedback. After installing the GLFW packages on ITS flps, both O2 and QC compiled!

Thank you.

Cheers,
Jian