Hi all,
I am investigating some issues in the CI pipeline we have for our software, which is based on ROOT. We have two pipelines, based on docker images:
The first uses the mambaforge conda image, installs the most recent ROOT via conda and then builds our software. This works fine.
the second uses the official ROOT docker image (rootproject/root:latest
, i.e. 6.30.02) and builds directly the software
The latter recently started giving compilation errors when building our software. These below are the issues I found, that in the conda installation of ROOT I do not see:
the nlohmann JSON package is not available (solvable by running apt install -y nlohmann-json3-dev
in the container)
the VDT library is not installed (solvable by installing it following the instruction at GitHub - dpiparo/vdt )
most strikingly, the compilation gives as error fatal error: Math/Polynomial.h: No such file or directory
. I checked into the directory /opt/root/include/Math` and indeed the file is not there
I checked with ldconfig -p | grep gsl
and the GSL library is there, but it seems that ROOT was not built with the mathmore
option. If so, this I cannot solve myself, I tried to search for a solution but could not find one.
Do you have suggestions on how to proceed?
Cheers,
Alessio
As complement to my previous message, indeed ROOT was built without mathmore in the container:
root@e26b8edc6d61:/opt/root/include/Math root-config --features
cxx17 asimage builtin_clang builtin_cling builtin_llvm builtin_openui5 builtin_vdt clad dataframe test_distrdf_pyspark test_distrdf_dask davix fitsio gdml http mlp minuit2 mysql opengl pgsql proof pyroot roofit webgui root7 rpath runtime_cxxmodules shared sqlite ssl tmva tmva-pymva spectrum vdt x11 xml xrootd
ferhue
January 30, 2024, 5:22pm
3
see related issues:
opened 04:34PM - 02 Dec 23 UTC
closed 03:08PM - 06 Dec 23 UTC
bug
affects:master
priority:critical
in:Build System
### Check duplicate issues.
- [ ] Checked for duplicates
### Description
…
CMake find_package(ROOT) worked well with 6.28.
Now it fails with 6.30 on Ubuntu 22.04 with the binary release.
First error was related to not finding the builtin nlohmann even if it's there.
```
CMake Error at /usr/share/cmake-3.25/Modules/CMakeFindDependencyMacro.cmake:47 (find_package):
By not providing "Findnlohmann_json.cmake" in CMAKE_MODULE_PATH this
project has asked CMake to find a package configuration file provided by
"nlohmann_json", but CMake did not find one.
Could not find a package configuration file provided by "nlohmann_json"
(requested version 3.10.5) with any of the following names:
nlohmann_jsonConfig.cmake
nlohmann_json-config.cmake
Add the installation prefix of "nlohmann_json" to CMAKE_PREFIX_PATH or set
"nlohmann_json_DIR" to a directory containing one of the above files. If
"nlohmann_json" provides a separate development package or SDK, be sure it
has been installed.
Call Stack (most recent call first):
/tmp/newroot/cmake/ROOTConfig.cmake:122 (find_dependency)
gui/CMakeLists.txt:28 (find_package)
```
A hack workaround is using sudo apt install nlohmann-json3-dev
Next error is:
```
cmake ../testroot/
-- The C compiler identification is GNU 11.4.0
-- The CXX compiler identification is GNU 11.4.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found nlohmann_json: /usr/lib/cmake/nlohmann_json/nlohmann_jsonConfig.cmake (found suitable version "3.10.5", minimum required is "3.10.5")
CMake Error at /usr/share/cmake-3.25/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find Vdt (missing: VDT_INCLUDE_DIR VDT_LIBRARY)
Call Stack (most recent call first):
/usr/share/cmake-3.25/Modules/FindPackageHandleStandardArgs.cmake:600 (_FPHSA_FAILURE_MESSAGE)
/opt/root/cmake/modules/FindVdt.cmake:63 (find_package_handle_standard_args)
/usr/share/cmake-3.25/Modules/CMakeFindDependencyMacro.cmake:47 (find_package)
/opt/root/cmake/ROOTConfig.cmake:132 (find_dependency)
CMakeLists.txt:5 (find_package)
```
And not sure how to solve it.
### Reproducer
```
cmake_minimum_required(VERSION 3.25)
project(ProjectName)
find_package(ROOT 6.30 CONFIG REQUIRED)
```
### ROOT version
```
------------------------------------------------------------------
| Welcome to ROOT 6.30/02 https://root.cern |
| (c) 1995-2023, The ROOT Team; conception: R. Brun, F. Rademakers |
| Built for linuxx8664gcc on Nov 27 2023, 19:50:38 |
| From tags/v6-30-02@ |
| With c++ (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0 |
| Try '.help'/'.?', '.demo', '.license', '.credits', '.quit'/'.q' |
------------------------------------------------------------------
```
### Installation method
Binary Release
### Operating system
Ubuntu 22.04
### Additional context
_No response_
root-project:master
← krasznaa:FindVdtFix-master-20231205
opened 10:28AM - 05 Dec 23 UTC
# This Pull request:
Explicitly set `Vdt_ROOT` when `builtin_vdt` was used fo… r the build. This way, a default location would be provided for VDT, which the user could still override if they wanted to.
## Changes or fixes:
This fixes the issue reported in #14163. Following up from the changes introduced in #11844.
Note that this fix requires CMake 3.12+, with [CMP0074](https://cmake.org/cmake/help/latest/policy/CMP0074.html#policy:CMP0074) set to `NEW`. :thinking: Supporting older CMake versions, or that policy set to `OLD` would also be possible, but would require a lot more lines of code. (`FindVdt.cmake` would need to learn about a new hint variable itself.)
Still, if people here feel very strongly about it, it would be possible to go that route as well. :thinking:
## Checklist:
- [x] tested changes locally
- [ ] updated the docs (if necessary) (N/A)
This PR fixes: #14163
opened 12:31AM - 12 Dec 23 UTC
Hi,
I have been using root-project/root:latest docker image, but mathmore and… many features are missing.
Is there a prebuilt image including all features available or this is only minimal root ?
```
=> [17/18] RUN root-config --features
=> => # cxx17 asimage builtin_clang builtin_cling builtin_llvm builtin_openui5 builtin_vdt clad dataframe test_distrdf_pyspark test_distrdf_dask davix fitsio gdml http mlp minuit2 mysql
=> => # opengl pgsql proof pyroot roofit webgui root7 rpath runtime_cxxmodules shared sqlite ssl tmva tmva-pymva spectrum vdt x11 xml xrootd
```
Cheers, M.
root-project:master
← guitargeek:issue-14263
opened 09:08AM - 11 Jan 24 UTC
The `Blas.h` header is only used by the tmva-cpu implementation, so it should be… made private by moving it to `src`.
The problem with having it in `inc` was that this header included GSL, and therefore GSL appeared to be a public dependency of TMVA, which is not true.
Closes #14263.
most have been solved in the meanwhile, so hopefully 6.30.04 will work.
Thanks @ferhue , my bad on not checking properly past posts… I will set this as completed and wait for the next release. Thank you for your help!
Cheers,
Alessio
system
Closed
February 14, 2024, 7:43am
5
This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.