Option to drop Debug GUI on systems where it is not needed?

Dear experts,

do you think it is feasible to make the Debug GUI optional. On systems where one can anyhow run only in batch mode (i.e. compute clusters only accessible via ssh) the DebugGUI is not really needed and being able to drop would reduce the amount of requirements to be installed + system requirements. For the moment as far as I understand o2 will not compile if it doesn’t find the Debug GUI. This is just asking for being able to drop the requirement on systems where it is not needed.

What do you think?

Thanks in advance!

Cheers

Markus

The DebugGUI is optional. Simply compile it with --disable DebugGUI. If it does not work, please file a bug report and I will look at it.

Recent developments will allow in a somewhat near future to also drop the direct linking against the DebugGUI, which should also simplify things.

Yes, O2 still doesn’t compile when disabling DebugGUI:

DEBUG:QualityControl:O2:aliceo2: FAILED: Framework/Core/CMakeFiles/O2lib-Framework.dir/src/FrameworkGUIDebugger.cxx.o
DEBUG:QualityControl:O2:aliceo2: /usr/bin/c++  -DBOOST_ALL_NO_LIB -DBOOST_CONTAINER_DYN_LINK -DBOOST_ERROR_CODE_HEADER_ONLY -DBOOST_FILESYSTEM_DYN_LINK -DBOOST_IOSTREAMS_DYN_LINK -DBOOST_PROGRAM_OPTIONS_DYN_LINK -DBOOST_REGEX_DYN_LINK -DBOOST_SERIALIZATION_DYN_LINK -DFMT_LOCALE -DO2lib_Framework_EXPORTS -I/software/markus/alice/sw/SOURCES/O2/aliceo2/0/Framework/Core/include -I/software/markus/alice/sw/SOURCES/O2/aliceo2/0/Framework/Core/src -I/software/markus/alice/sw/SOURCES/O2/aliceo2/0/Framework/Core -I/software/markus/alice/sw/SOURCES/O2/aliceo2/0/Common/Utils/include -I/software/markus/alice/sw/SOURCES/O2/aliceo2/0/DataFormats/common/include -I/software/markus/alice/sw/SOURCES/O2/aliceo2/0/Common/Constants/include -I/software/markus/alice/sw/SOURCES/O2/aliceo2/0/GPU/Common -I/software/markus/alice/sw/SOURCES/O2/aliceo2/0/Framework/Logger/include -I/software/markus/alice/sw/SOURCES/O2/aliceo2/0/DataFormats/Headers/include -I/software/markus/alice/sw/SOURCES/O2/aliceo2/0/DataFormats/MemoryResources/include -I/software/markus/alice/sw/SOURCES/O2/aliceo2/0/Common/MathUtils/include -I/software/markus/alice/sw/SOURCES/O2/aliceo2/0/Framework/Foundation/include -I/software/markus/alice/sw/SOURCES/O2/aliceo2/0/Utilities/PCG/include -isystem /software/markus/alice/sw/ubuntu1804_x86-64/Common-O2/v1.4.9-1/include -isystem /software/markus/alice/sw/ubuntu1804_x86-64/boost/v1.72.0-alice1-1/include -isystem /software/markus/alice/sw/ubuntu1804_x86-64/Configuration/v2.2.6-1/include -isystem /software/markus/alice/sw/ubuntu1804_x86-64/libInfoLogger/v1.3.9-1/include -isystem /software/markus/alice/sw/ubuntu1804_x86-64/Monitoring/v3.2.0-1/include -isystem /software/markus/alice/sw/ubuntu1804_x86-64/FairMQ/v1.4.20-1/include/fairmq -isystem /software/markus/alice/sw/ubuntu1804_x86-64/FairMQ/v1.4.20-1/include -isystem /software/markus/alice/sw/ubuntu1804_x86-64/FairLogger/v1.8.0-1/include -isystem /software/markus/alice/sw/ubuntu1804_x86-64/fmt/6.1.2-1/include -isystem /software/markus/alice/sw/ubuntu1804_x86-64/ROOT/v6-20-02-alice7-1/include -isystem /software/markus/alice/sw/ubuntu1804_x86-64/FairRoot/aliceo2-1/include -isystem /software/markus/alice/sw/ubuntu1804_x86-64/arrow/v0.17.1-1/include -isystem /software/markus/alice/sw/ubuntu1804_x86-64/Vc/1.4.1-1/include -isystem /software/markus/alice/sw/ubuntu1804_x86-64/RapidJSON/091de040edb3355dcf2f4a18c425aec51b906f08-1/include -isystem /software/markus/alice/sw/ubuntu1804_x86-64/ms_gsl/2.1.0-1/include -isystem /software/markus/alice/sw/ubuntu1804_x86-64/libuv/v1.38.0-1/include -fPIC -O2 -std=c++17 -O2 -g -DNDEBUG -fPIC   -std=c++1z -MD -MT Framework/Core/CMakeFiles/O2lib-Framework.dir/src/FrameworkGUIDebugger.cxx.o -MF Framework/Core/CMakeFiles/O2lib-Framework.dir/src/FrameworkGUIDebugger.cxx.o.d -o Framework/Core/CMakeFiles/O2lib-Framework.dir/src/FrameworkGUIDebugger.cxx.o -c /software/markus/alice/sw/SOURCES/O2/aliceo2/0/Framework/Core/src/FrameworkGUIDebugger.cxx
DEBUG:QualityControl:O2:aliceo2: /software/markus/alice/sw/SOURCES/O2/aliceo2/0/Framework/Core/src/FrameworkGUIDebugger.cxx:18:10: fatal error: DebugGUI/imgui.h: No such file or directory
DEBUG:QualityControl:O2:aliceo2:  #include "DebugGUI/imgui.h"
DEBUG:QualityControl:O2:aliceo2:           ^~~~~~~~~~~~~~~~~~
DEBUG:QualityControl:O2:aliceo2: compilation terminated.
DEBUG:QualityControl:O2:aliceo2: [178/2266] Building CXX object Framework/Core/CMakeFiles/O2test-framework-SingleDataSource.dir/test/test_SingleDataSource.cxx.o
DEBUG:QualityControl:O2:aliceo2: ninja: build stopped: subcommand failed.

Does removing DebugGui from the requirement section in the recipe o2.sh, help? (In my case it did)

Hi Giulio, I had similar issue while installing O2 QC on my macOS recently. It was always stopping at DebugGUI. When I disabled it, the build stopped at ROOT.
Following is the error I got in the log file.

ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[1]: *** [Tracy-release] Error 1
make: *** [release] Error 2

I would need a bit more context. The original bug was fixed long time ago. Can you provide the full log?

Thank you for your response. Please have a look at the log attached here.
log.txt (65.6 KB)

Looks like you did not install the prerequisites correctly:

https://alice-doc.github.io/alice-analysis-tutorial/building/prereq-macos.html

also make sure you have an updated version of alidist.

I ran the following command to install the o2-deps. It downloads all dependencies successfully. (I had done that earlier as well)

brew install alisw/system-deps/o2-full-deps alisw/system-deps/alibuild

But the build still gives errors while building arrow, python etc when I repeat the installation. I updated alidist by cding to the directory and running following commands:

git checkout dev
git pull --rebase upstream dev

Note: I am using Xcode 13.2.1 and the OS is Big Sur.

I wanted to add one more thing. I am sorry.
I noticed that the list under "aliDoctor will warn you that some packages have to be built as they could not be found from the system. If you have followed the instructions, this list should contain nothing more than "’, I had python and python-modules which should not be the case. I removed this by reinstalling all prerequisites and started building O2.

The build still failed at DebugGUI :frowning:
Log file is attached here. I appreciate your help on this.
log.txt (65.5 KB)

Hi @asasikum, for alidist you need to use the master, not dev.

alidist → master
O2 → dev
QualityControl → master

This might be the issue.

Cheers,
Thomas

Hi Thomas, I appreciate your help. I ended up erasing the OS and doing the build from start. And everything works well now. I was trying to solve the issue without having to erase the system. But was not successful. Thanks again.