Fedora 42 ROOT 6.36.00 Installation Problems

Hello,

I am trying to install ROOT 6.36.00 with all the required dependencies installed. I get the following error

/opt/root-6.36.00/core/clingutils/src/TClingUtils.cxx: In function ‘void ROOT::TMetaUtils::GetNormalizedName(std::string&, const clang::QualType&, const cling::Interpreter&, const TNormalizedCtxt&)’:
/opt/root-6.36.00/core/clingutils/src/TClingUtils.cxx:4188:16: error: ‘AtomicTypeNameHandlerRAII’ is not a member of ‘TClassEdit’
 4188 |    TClassEdit::AtomicTypeNameHandlerRAII atomicTypeNameHandler_step1(
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
/opt/root-6.36.00/core/clingutils/src/TClingUtils.cxx:4196:16: error: ‘AtomicTypeNameHandlerRAII’ is not a member of ‘TClassEdit’
 4196 |    TClassEdit::AtomicTypeNameHandlerRAII atomicTypeNameHandler_norm_name(
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~
gmake[2]: *** [core/clingutils/CMakeFiles/ClingUtils.dir/build.make:93: core/clingutils/CMakeFiles/ClingUtils.dir/src/TClingUtils.cxx.o] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:49274: core/clingutils/CMakeFiles/ClingUtils.dir/all] Error 2
gmake[1]: *** Waiting for unfinished jobs....

Can someone help to resolve this problem? Any help is appreciated.

_ROOT Version:_6.36.00
_Platform:_ Fedora 42
_Compiler:_ gcc version 15.1.1 20250521 (Red Hat 15.1.1-2) (GCC) 

Hi,

Thank you for the post. Fedora 42 is part of our testing platforms, I am sure we can converge towards a solution quickly.
How did you obtain ROOT and how did you configure it (CMake command)?

Cheers,
D

Hi @Danilo,

I downloaded the ROOT from : https://root.cern/download/root_v6.36.00.source.tar.gz

I used the following commands to configure and build ROOT in a /opt/root_build folder

cmake -DCMAKE_INSTALL_PREFIX="/opt/root/pro" -Dall="ON" -DCMAKE_BUILD_TYPE="Release" -DCMAKE_CXX_STANDARD="17" ../root-6.36.00

cmake --build . -- -j6 

I even tried make clean when it failed first time. This didn’t help. So, once again tried a fresh install by cleaning the /opt/root_build directory with rm -fr *. But that didn’t work too!

The text displayed on the terminal during the execution of the first command above is
attached (17.7 KB).

Let me know if you need more information to diagnose the issue.

EDIT:
A simple build, such as:

cmake -DCMAKE_INSTALL_PREFIX="/opt/root/pro" -DCMAKE_BUILD_TYPE="Release"  ../root-6.36.00

followed by make clean gives

root@Yoga:/opt/root_build# make clean
make[2]: interpreter/cling/tools/plugins/example/CMakeFiles/install-clingDemoPlugin.dir/build.make: No such file or directory
make[2]: *** No rule to make target 'interpreter/cling/tools/plugins/example/CMakeFiles/install-clingDemoPlugin.dir/build.make'.  Stop.
make[1]: *** [CMakeFiles/Makefile2:48158: interpreter/cling/tools/plugins/example/CMakeFiles/install-clingDemoPlugin.dir/clean] Error 2
make: *** [Makefile:162: clean] Error 2

Best regards,

Ajay

Do you have any other version of ROOT installed (and available through the default paths)?

No, I don’t have.

Can you run:
if you are using Ninja:

ninja -v core/clingutils/src/TClingUtils.o > ninja.01.log 2>&1

or if you are using make

gmake VERBOSE=true core/clingutils/src/TClingUtils.o > make.01.log 2>&1

Then extract the command line that generate TClingUtils.o and in that command line replace -c with -E (you may also have to remove the -d or M). Then run that command and the file TClingUtils.o should be a text file, send it to us to see where the issue is.

When I run

gmake VERBOSE=true core/clingutils/src/TClingUtils.o

in the build directory, I get

gmake: *** No rule to make target 'core/clingutils/src/TClingUtils.o'.  Stop

Ajay

Sorry, it is a bit more complicated than I hoped for :).
What you need to use is:

make VERBOSE=true -f core/clingutils/CMakeFiles/ClingUtils.dir/build.make core/clingutils/CMakeFiles/ClingUtils.dir/build 

Cheers,
Philippe.

Just for the record. I’m also having issues trying to install ROOT in Fedora 42 Sway. In my case, I’m trying to install ROOT 6.30.2 like this:

CURR_PYVERSION=$(python -c 'import sys; print("".join(str(n) for n in sys.version_info[:2]))')
sudo yum install -y git make cmake gcc-c++ gcc binutils \
libX11-devel libXpm-devel libXft-devel libXext-devel python openssl-devel \
xrootd-client-devel xrootd-libs-devel
git clone --branch v6-30-02 --depth=1 https://github.com/root-project/root.git root_src
mkdir build_root
mkdir ROOT-python$CURR_PYVERSION
cd build_root
cmake -DCMAKE_INSTALL_PREFIX=../ROOT-python$CURR_PYVERSION ../root_src
cmake --build . --target install -j12

and it results in this error:

[ 55%] Built target move_artifacts
gmake[1]: *** [CMakeFiles/Makefile2:13202: interpreter/llvm-project/llvm/utils/TableGen/CMakeFiles/obj.llvm-tblgen.dir/all] Error 2
CMake Error at /home/gamoreir/Downloads/build_root/builtins/davix/DAVIX-prefix/src/DAVIX-stamp/DAVIX-build-Release.cmake:49 (message):
  Command failed: 2

   '/usr/bin/gmake'

  See also

    /home/gamoreir/Downloads/build_root/builtins/davix/DAVIX-prefix/src/DAVIX-stamp/DAVIX-build-*.log


gmake[2]: *** [builtins/davix/CMakeFiles/DAVIX.dir/build.make:86: builtins/davix/DAVIX-prefix/src/DAVIX-stamp/DAVIX-build] Error 1
gmake[1]: *** [CMakeFiles/Makefile2:11961: builtins/davix/CMakeFiles/DAVIX.dir/all] Error 2
gmake: *** [Makefile:156: all] Error 2

I can create a new topic if needed.

@pcanal

I tried the command you suggested and it gives the following

Building CXX object core/clingutils/CMakeFiles/ClingUtils.dir/src/RStl.cxx.o
cd /opt/root_build/core/clingutils && /usr/sbin/c++  -I/opt/root_git/root/core/clingutils/inc -I/opt/root_git/root/core/clingutils/res -I/opt/root_git/root/core/clib/inc -I/opt/root_git/root/core/base/inc -I/opt/root_build/ginclude -I/opt/root_git/root/interpreter/cling/include -I/opt/root_git/root/core/foundation/res -I/opt/root_git/root/core/foundation/inc -I/opt/root_git/root/core/meta/inc -isystem /opt/root_git/root/interpreter/llvm-project/clang/include -isystem /opt/root_build/interpreter/llvm-project/llvm/tools/clang/include -isystem /opt/root_git/root/interpreter/llvm-project/llvm/include -isystem /opt/root_build/interpreter/llvm-project/llvm/include -Wno-implicit-fallthrough -Wno-noexcept-type -pipe  -Wshadow -Wall -W -Woverloaded-virtual -fsigned-char -pthread -O3 -DNDEBUG -std=c++17 -fPIC -fvisibility-inlines-hidden  -Wno-implicit-fallthrough -Wno-noexcept-type -pipe  -Wshadow -Wall -W -Woverloaded-virtual -fsigned-char -pthread   -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -fno-strict-aliasing -Wwrite-strings -Wno-shadow -Wno-unused-parameter -Wno-error -MD -MT core/clingutils/CMakeFiles/ClingUtils.dir/src/RStl.cxx.o -MF CMakeFiles/ClingUtils.dir/src/RStl.cxx.o.d -o CMakeFiles/ClingUtils.dir/src/RStl.cxx.o -c /opt/root_git/root/core/clingutils/src/RStl.cxx
In file included from /opt/root_git/root/interpreter/llvm-project/clang/include/clang/Basic/Diagnostic.h:17,
                 from /opt/root_git/root/interpreter/llvm-project/clang/include/clang/AST/NestedNameSpecifier.h:18,
                 from /opt/root_git/root/interpreter/llvm-project/clang/include/clang/AST/Type.h:21,
                 from /opt/root_git/root/interpreter/llvm-project/clang/include/clang/AST/DeclarationName.h:16,
                 from /opt/root_git/root/interpreter/llvm-project/clang/include/clang/AST/DeclBase.h:18,
                 from /opt/root_git/root/interpreter/llvm-project/clang/include/clang/AST/Decl.h:20,
                 from /opt/root_git/root/core/clingutils/src/RStl.cxx:22:
/opt/root_git/root/interpreter/llvm-project/clang/include/clang/Basic/DiagnosticIDs.h:74:10: fatal error: clang/Basic/DiagnosticCommonKinds.inc: No such file or directory
   74 | #include "clang/Basic/DiagnosticCommonKinds.inc"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make: *** [core/clingutils/CMakeFiles/ClingUtils.dir/build.make:79: core/clingutils/CMakeFiles/ClingUtils.dir/src/RStl.cxx.o] Error 1

This time I have downloaded the ROOT via git followed by git checkout v6-36-00.

Regards,

Ajay

Isn’t ROOT already precompiled in Fedora 42? I’m also running Fedora 42 and found that ROOT comes as a prebuilt DNF package. You can install it or check its version like this:

sudo dnf install root root-python3
sudo dnf info root

On my workstation the DNF installed ROOT is at version 6.34.In addition, I have separate conda environment with ROOT 6.32

Here’s my ROOT info for reference:

(base) boson@fedora:~$ sudo dnf info root
[sudo] password for boson: 
Updating and loading repositories:
Repositories loaded.
Installed packages
Name            : root
Epoch           : 0
Version         : 6.34.08
Release         : 4.fc42
Architecture    : x86_64
Installed size  : 370.4 KiB
Source          : root-6.34.08-4.fc42.src.rpm
From repository : updates
Summary         : Numerical data analysis framework
URL             : https://root.cern/
License         : LGPL-2.1-or-later
Description     : The ROOT system provides a set of object oriented frameworks with all
                : the functionality needed to handle and analyze large amounts of data
                : in a very efficient way. Having the data defined as a set of objects,
                : specialized storage methods are used to get direct access to the
                : separate attributes of the selected objects, without having to touch
                : the bulk of the data. Included are histogramming methods in an
                : arbitrary number of dimensions, curve fitting, function evaluation,
                : minimization, graphics and visualization classes to allow the easy
                : setup of an analysis system that can query and process the data
                : interactively or in batch mode, as well as a general parallel
                : processing framework, PROOF, that can considerably speed up an
                : analysis.
                : 
                : Thanks to the built-in C++ interpreter cling, the command, the
                : scripting and the programming language are all C++. The interpreter
                : allows for fast prototyping of the macros since it removes the, time
                : consuming, compile/link cycle. It also provides a good environment to
                : learn C++. If more performance is needed the interactively developed
                : macros can be compiled using a C++ compiler via a machine independent
                : transparent compiler interface called ACliC.
                : 
                : The system has been designed in such a way that it can query its
                : databases in parallel on clusters of workstations or many-core
                : machines. ROOT is an open system that can be dynamically extended by
                : linking external libraries. This makes ROOT a premier platform on
                : which to build data acquisition, simulation and data analysis systems.
Vendor          : Fedora Project
(base) boson@fedora:~$ 

Cheers,
Sunil.

@pcanal

I would also like to mention that I am ABLE to install from source (from git download as well as from here) both v6.36.00 and v6.34.08 after deleting the previous INSTALL_DIR.

However, there still seems to be some issue when we run the following commands

cmake -DCMAKE_INSTALL_PREFIX="/opt/root/proN" -Dall="ON" ../root_git/root
make clean

gives

make[2]: interpreter/cling/tools/plugins/example/CMakeFiles/install-clingDemoPlugin.dir/build.make: No such file or directory
make[2]: *** No rule to make target 'interpreter/cling/tools/plugins/example/CMakeFiles/install-clingDemoPlugin.dir/build.make'.  Stop.
make[1]: *** [CMakeFiles/Makefile2:48552: interpreter/cling/tools/plugins/example/CMakeFiles/install-clingDemoPlugin.dir/clean] Error 2
make: *** [Makefile:162: clean] Error 2

as mentioned in one of the earlier posts.

Regards,

Ajay

You need to do it and an already failing example. In this case, the build is just incomplete. So first try a regular build in this new directory.

Okay, that would confirm that the problem is that this install dir is interfering with the build …

@pcanal

Thank you for your replies.

But what is the problem while executing these commands and why do we get error/s as mentioned above?

cmake -DCMAKE_INSTALL_PREFIX="/opt/root/proN" -Dall="ON" ../root_git/root
make clean

Regards,

Ajay

When installing the pre-compiled version it has bidings to the system python version. I have many different python versions istalled with asdf and that is why I compile ROOT from source, to have different installations of the same version binded to different python versions.

Is this achievable without compiling from source?

Hi,

You might also try installing ROOT via conda. It’s often more uptodate and resolves dependencies cleanly.