Skip to content

Inconsistency between ROOT documentation and build options actually enabled by default #20493

@GiacomoXT

Description

@GiacomoXT

Check duplicate issues.

  • Checked for duplicates

Description

While upgrading the ROOT version used for the Belle II software from 6.32 to 6.36, I found with great surprise that some build options that were supposed to be turned on by default according to https://root.cern/install/build_from_source/ were, instead, turned off. The two options I found are geom and tpython, which should be turned on in 6.36, but I found them turned off.

I spotted the options were turned off because some headers were not found while compiling our software against ROOT 6.36, e.g.: ls include/ | grep TPython and ls include/ | grep TGeoElement returned nothing (where include is the include directory with all the ROOT headers). This does not happen with ROOT 6.32.

Of course, I enabled successfully both geom and tpython with ROOT 6.36 by manually adding the options -Dgeom=ON and -Dtpython=ON.

One suggestion: when the ROOT configuration is printed at the end of cmake, it would be good to list ALL the enabled build options, both implicitly and explicitly enabled, so that the user can easily spot if anything is missing. I am referring to the line -- Enabled support for: builtin_clang builtin_cling builtin_ftgl builtin_gif builtin_gl2ps builtin_gsl builtin_jpeg builtin_llvm builtin_lz4 builtin_nlohmannjson builtin_pcre builtin_xxhash builtin_zstd dataframe http mathmore pyroot roofit runtime_cxxmodules shadowpw shared ssl tmva tmva-sofie x11 xml.

Reproducer

I will try to be brief...

  1. I started a docker container using almalinux:9 as base image
  2. I installed "few" packages: yum install --enablerepo=crb cmake emacs freetype-devel gcc gcc-g++ git glibc-devel libX11-devel libXext-devel libXft-devel libXpm-devel m4 make openssl openssl-devel protobuf protobuf-devel protobuf-compiler python3 python3-devel xz-devel wget which zlib-devel
  3. I downloaded ROOT 6.36 source code using wget https://root.cern/download/root_v6.36.04.source.tar.gz and un-tared it
  4. I compiled it with cmake SOURCE_DIR -DCMAKE_INSTALL_PREFIX=INSTALL_DIR -Dgminimal=ON -Dfail-on-missing=ON -DCMAKE_CXX_STANDARD=20 -DPython3_EXECUTABLE=/usr/bin/python3.9 -DPython3_INCLUDE_DIR=/usr/include/python3.9 -DPython3_LIBRARY=/usr/lib64/libpython3.9.so -Dasimage=OFF -Dbuiltin_freetype=OFF -Dbuiltin_ftgl=ON -Dbuiltin_gl2ps=ON -Dbuiltin_pcre=ON -Dbuiltin_xxhash=ON -Dbuiltin_zstd=ON -Dbuiltin_gif=ON -Dbuiltin_jpeg=ON -Ddataframe=ON -Dexception=ON -Dhttp=ON -Dmathmore=ON -Dmlp=ON -Dpyroot=ON -Droofit=ON -Dshadowpw=ON -Dshared=ON -Dssl=ON -Dtmva=ON -Dtmva-sofie=ON -Dvdt=OFF -Dxml=ON -Dbuiltin_nlohmannjson=ON -Dbuiltin_lz4=ON -Dbuiltin_gsl=ON -DCMAKE_CXX_FLAGS=-D__ROOFIT_NOBANNER && make -j 30

For ROOT 6.32, I repeated the same procedure, besides downloading https://root.cern/download/root_v6.32.14.source.tar.gz.

I don't think this is a OS-dependent issue, but I found the same issue with ubuntu:24.04.

ROOT version

v6.36.04

Installation method

Build from source

Operating system

Linux

Additional context

No response

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions