Problems in compiling 6.19/6.20 on Ubuntu 20.04

ROOT Version: v6-19
Platform: Ubuntu 20.04
_Compiler:_gcc version 9.3.0 (Ubuntu 9.3.0-10ubuntu2)

I have problems to install recent versions of ROOT on my Ubuntu box (after a clean install of 20.04 - the same recipe worked on 19.10). In that case the compilation was working out of the box.

My problem seems different from Installing 6.20.04 fails on Ubuntu 20.04 (my python3 is working and recognised during configuration).

In the following, I tried to compile v6-19 (failing very much the same as v6-20). The problem seems to come from failing preparing to compile VDT. I tried to "cmake --build . --target VDT – " with little success (same error).

Some material from config/compilation:

laman@LM01:/tmp/root_02_06_2020_11:48:23$ git clone
Cloning into 'root'...

warning: redirecting to
remote: Enumerating objects: 26, done.
remote: Counting objects: 100% (26/26), done.
remote: Compressing objects: 100% (6/6), done.
remote: Total 723673 (delta 20), reused 20 (delta 20), pack-reused 723647
Receiving objects: 100% (723673/723673), 789.51 MiB | 9.81 MiB/s, done.
Resolving deltas: 100% (522190/522190), done.
Updating files: 100% (19102/19102), done.
laman@LM01:/tmp/root_02_06_2020_11:48:23$ cd root
laman@LM01:/tmp/root_02_06_2020_11:48:23/root$ git tag -l | tail
laman@LM01:/tmp/root_02_06_2020_11:48:23/root$ git checkout -b v6-19-02 v6-19-02
Switched to a new branch 'v6-19-02'
laman@LM01:/tmp/root_02_06_2020_11:48:23/root$ cd ..
laman@LM01:/tmp/root_02_06_2020_11:48:23$ mkdir rootbuild
laman@LM01:/tmp/root_02_06_2020_11:48:23$ cd rootbuild
laman@LM01:/tmp/root_02_06_2020_11:48:23/rootbuild$ cmake ../root
-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Git: /usr/bin/git (found version "2.25.1") 
-- ROOT default compression algorithm: zlib
bash: -m: command not found
-- Found GCC. Major version 9, minor version 3
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE  
-- Found a 64bit system
-- Found GNU compiler collection
-- Performing Test GLIBCXX_USE_CXX11_ABI
-- Performing Test GLIBCXX_USE_CXX11_ABI - Success
-- ROOT Platform: linux
-- ROOT Architecture: linuxx8664gcc
-- Build Type: Release (flags = '-O3 -DNDEBUG')
-- Compiler Flags: -O3 -DNDEBUG  -std=c++11 -Wno-implicit-fallthrough -Wno-noexcept-type -pipe  -Wshadow -Wall -W -Woverloaded-virtual -fsigned-char -pthread
-- Looking for ZLib
-- Found ZLIB: /usr/lib/x86_64-linux-gnu/ (found version "1.2.11") 
-- Looking for Freetype
-- Found Freetype: /usr/lib/x86_64-linux-gnu/ (found version "2.10.1") 
-- Looking for PCRE
-- Found PCRE: /usr/include (found version "8.39") 
-- Looking for LZMA
-- LZMA not found. Switching on builtin_lzma option
-- Building LZMA version 5.2.4 included in ROOT itself
-- Looking for ZSTD
-- ZSTD not found. Switching on builtin_zstd option
-- Performing Test CXX_FLAG_STD_CPLUSPLUS11
-- Performing Test CXX_FLAG_STD_CPLUSPLUS11 - Success
-- Performing Test C_FLAG_STD_C99
-- Performing Test C_FLAG_STD_C99 - Success
-- Performing Test C_FLAG_WALL
-- Performing Test C_FLAG_WALL - Success
-- Performing Test CXX_FLAG_WALL
-- Performing Test CXX_FLAG_WALL - Success
-- Performing Test C_FLAG_WEXTRA
-- Performing Test C_FLAG_WEXTRA - Success
-- Performing Test CXX_FLAG_WEXTRA
-- Performing Test CXX_FLAG_WEXTRA - Success
-- Performing Test C_FLAG_WUNDEF
-- Performing Test C_FLAG_WUNDEF - Success
-- Performing Test CXX_FLAG_WUNDEF
-- Performing Test CXX_FLAG_WUNDEF - Success
-- Performing Test C_FLAG_WSHADOW
-- Performing Test C_FLAG_WSHADOW - Success
-- Performing Test CXX_FLAG_WSHADOW
-- Performing Test CXX_FLAG_WSHADOW - Success
-- Performing Test C_FLAG_WCAST_ALIGN
-- Performing Test C_FLAG_WCAST_ALIGN - Success
-- Performing Test CXX_FLAG_WCAST_ALIGN
-- Performing Test CXX_FLAG_WCAST_ALIGN - Success
-- Performing Test C_FLAG_WCAST_QUAL
-- Performing Test C_FLAG_WCAST_QUAL - Success
-- Performing Test CXX_FLAG_WCAST_QUAL
-- Performing Test CXX_FLAG_WCAST_QUAL - Success
-- Performing Test C_FLAG_WSTRICT_PROTOTYPES - Success
-- Looking for xxHash
-- Could NOT find xxHash (missing: xxHash_LIBRARY xxHash_INCLUDE_DIR) 
-- xxHash not found. Switching on builtin_xxhash option
-- Looking for LZ4
-- Could NOT find LZ4 (missing: LZ4_LIBRARY LZ4_INCLUDE_DIR) 
-- LZ4 not found. Switching on builtin_lz4 option
-- Looking for X11
-- Found X11: /usr/include   
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/;/usr/lib/x86_64-linux-gnu/
-- Looking for XOpenDisplay in /usr/lib/x86_64-linux-gnu/;/usr/lib/x86_64-linux-gnu/ - found
-- Looking for gethostbyname
-- Looking for gethostbyname - found
-- Looking for connect
-- Looking for connect - found
-- Looking for remove
-- Looking for remove - found
-- Looking for shmat
-- Looking for shmat - found
-- Looking for IceConnectionNumber in ICE
-- Looking for IceConnectionNumber in ICE - found
-- X11_INCLUDE_DIR: /usr/include
-- X11_LIBRARIES: /usr/lib/x86_64-linux-gnu/;/usr/lib/x86_64-linux-gnu/;/usr/lib/x86_64-linux-gnu/;/usr/lib/x86_64-linux-gnu/
-- X11_Xpm_INCLUDE_PATH: /usr/include
-- X11_Xpm_LIB: /usr/lib/x86_64-linux-gnu/
-- X11_Xft_INCLUDE_PATH: /usr/include
-- X11_Xft_LIB: /usr/lib/x86_64-linux-gnu/
-- X11_Xext_INCLUDE_PATH: /usr/include
-- X11_Xext_LIB: /usr/lib/x86_64-linux-gnu/
-- Could NOT find GIF (missing: GIF_LIBRARY GIF_INCLUDE_DIR) 
-- Found PNG: /usr/lib/x86_64-linux-gnu/ (found version "1.6.37") 
-- Looking for AfterImage
-- AfterImage not found. Switching on builtin_afterimage option
-- Building AfterImage library included in ROOT itself
-- Looking for GSL
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1") 
-- Found GSL: /usr/include (found suitable version "2.5", minimum required is "1.10") 
-- Looking for python
-- Preferring Python version 3
-- Found Python: /usr/bin/python3.8 (found version "3.8.2") found components: Interpreter Development 
-- Found Python: /usr/bin/python3.8 (found version "3.8.2") found components: Interpreter Development NumPy 
-- Looking for OpenGL
-- Found OpenGL: /usr/lib/x86_64-linux-gnu/   
-- Looking for GLEW
-- Found GLEW: /usr/include (found version "2.1.0") 
-- Looking for gl2ps
-- Could NOT find GL2PS (missing: GL2PS_LIBRARY GL2PS_INCLUDE_DIR) 
-- gl2ps not found. Switching on builtin_gl2ps option
-- Looking for LibXml2
-- Found LibXml2: /usr/lib/x86_64-linux-gnu/ (found version "2.9.10") 
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/ (found version "1.1.1f")  
-- Looking for MySQL
-- Found MYSQL: /usr/include/mysql  
-- Looking for Oracle
-- Oracle not found.
-- Oracle: You can specify includes: -DORACLE_PATH_INCLUDES=/usr/include/oracle/
--    currently found includes: 
-- Oracle: You can specify libs: -DORACLE_PATH_LIB=/usr/lib/oracle/
-- Oracle not found. Switching off oracle option
-- Looking for PostgreSQL
-- Could NOT find PostgreSQL (missing: PostgreSQL_LIBRARY PostgreSQL_INCLUDE_DIR) 
-- PostgreSQL not found. Switching off pgsql option
-- Looking for SQLite
-- Could NOT find Sqlite (missing: SQLITE_INCLUDE_DIR SQLITE_LIBRARIES) 
-- SQLite not found. Switching off sqlite option
-- Looking for Pythia6
-- Pythia6 not found. Switching off pythia6 option
-- Looking for Pythia8
-- Could NOT find Pythia8 (missing: PYTHIA8_INCLUDE_DIR PYTHIA8_LIBRARY) 
-- Pythia8 not found. Switching off pythia8 option
-- Looking for FFTW3
-- Found fftw3 includes at /usr/include
-- Found fftw3 library at /usr/lib/x86_64-linux-gnu/
-- Looking for CFITSIO
-- Found CFITSIO: /usr/lib/x86_64-linux-gnu/ (found version "3.47") 
-- Looking for XROOTD
-- XROOTD not found. Set environment variable XRDSYS to point to your XROOTD installation
--                   Alternatively, you can also enable the option 'builtin_xrootd' to build XROOTD internally
--                   For the time being switching OFF 'xrootd' option
-- GFAL library not found. Set variable GFAL_DIR to point to your gfal installation
                      and the variable SRM_IFCE_DIR to the srm_ifce installation
-- For the time being switching OFF 'gfal' option
-- Found FTGL: /usr/include  
-- Checking for module 'davix>=0.6.4'
--   No package 'davix' found
-- Looking for uuid_generate_random in uuid
-- Looking for uuid_generate_random in uuid - found
-- Found uuid: /usr/include  
-- Davix not found, switching ON 'builtin_davix' option.
-- Looking for clock_gettime
-- Looking for clock_gettime - found
-- Looking for TBB
-- Could NOT find TBB (missing: TBB_ROOT_DIR TBB_INCLUDE_DIR TBB_LIBRARY) (Required is at least version "2018")
-- TBB not found, enabling 'builtin_tbb' option
-- Performing Test CXX_HAS_mno_rtm
-- Performing Test CXX_HAS_mno_rtm - Success
-- Looking for VDT
-- Could NOT find Vdt (missing: VDT_INCLUDE_DIR VDT_LIBRARY) (Required is at least version "0.4")
-- VDT not found. Ensure that the installation of VDT is in the CMAKE_PREFIX_PATH
--                Switching ON 'builtin_vdt' option
-- Looking for BLAS for optional parts of TMVA
-- Looking for sgemm_
-- Looking for sgemm_ - not found
-- Could NOT find BLAS (missing: BLAS_LIBRARIES) 
-- Using GSL CBLAS for optional parts of TMVA
-- Performing Test ROOT_HAVE_CXX_ATOMICS_WITHOUT_LIB - Success
-- Building LLVM in 'Release' mode.
-- The ASM compiler identification is GNU
-- Found assembler: /usr/bin/cc
-- Looking for backtrace
-- Looking for backtrace - found
-- backtrace facility detected in default set of libraries
-- Found Backtrace: /usr/include  
-- Native target architecture is X86
-- Threads disabled.
-- Doxygen disabled.
-- Go bindings disabled.
-- LLVM host triple: x86_64-unknown-linux-gnu
-- LLVM default target triple: x86_64-unknown-linux-gnu
-- Building with -fPIC
-- Found PythonInterp: /usr/bin/python3.8 (found version "3.8.2") 
-- Constructing LLVMBuild project information
-- Linker detection: GNU ld
-- SysLibs: rt;dl;-lpthread;/usr/lib/x86_64-linux-gnu/
-- Targeting X86
-- Targeting NVPTX
-- Clang version: 5.0.0
-- Cling version (from VERSION file): ROOT_0.7~dev
-- Cling will look for C++ headers in '/usr/include/c++/9:/usr/include/x86_64-linux-gnu/c++/9:/usr/include/c++/9/backward' at runtime.
-- And then fallback to: 'x86_64-linux-gnu-g++-9'
-- Performing Test CXX_HAS_Wno_maybe_uninitialized
-- Performing Test CXX_HAS_Wno_maybe_uninitialized - Success
-- Performing Test __result
-- Performing Test __result - Success
-- Performing Test CXX_HAS_fno_rtti
-- Performing Test CXX_HAS_fno_rtti - Success
-- Performing Test C_HAS_Wno_strict_overflow
-- Performing Test C_HAS_Wno_strict_overflow - Success
-- Performing Test C_HAS_Wno_maybe_uninitialized
-- Performing Test C_HAS_Wno_maybe_uninitialized - Success
-- Performing Test C_HAS_Wno_parentheses_equality
-- Performing Test C_HAS_Wno_parentheses_equality - Success
-- Looking for m
-- Looking for m - not found
-- Performing Test CXX_HAS_fno_strict_aliasing
-- Performing Test CXX_HAS_fno_strict_aliasing - Success
-- Performing Test CXX_HAS_Wno_parentheses_equality
-- Performing Test CXX_HAS_Wno_parentheses_equality - Success
-- Performing Test CXX_HAS_Wno_cast_function_type
-- Performing Test CXX_HAS_Wno_cast_function_type - Success
-- Performing Test CXX_HAS_Wno_deprecated_register
-- Performing Test CXX_HAS_Wno_deprecated_register - Success
-- Performing Test CXX_HAS_Wno_register
-- Performing Test CXX_HAS_Wno_register - Success
-- Performing Test found_setresuid
-- Performing Test found_setresuid - Success
-- Performing Test found_stdstringview
-- Performing Test found_stdstringview - Failed
-- Performing Test found_stdexpstringview
-- Performing Test found_stdexpstringview - Failed
-- Performing Test found_stdapply
-- Performing Test found_stdapply - Failed
-- Performing Test found_stdinvoke
-- Performing Test found_stdinvoke - Failed
-- Performing Test found_stdindexsequence
-- Performing Test found_stdindexsequence - Failed
-- Performing Test found_attribute_always_inline
-- Performing Test found_attribute_always_inline - Success
-- Performing Test has_found_attribute_noinline
-- Performing Test has_found_attribute_noinline - Success
Running /tmp/root_02_06_2020_11:48:23/root/build/unix/
Making /tmp/root_02_06_2020_11:48:23/rootbuild/include/compiledata.h
-- Enabled support for:  asimage builtin_afterimage builtin_clang builtin_davix builtin_gl2ps builtin_llvm builtin_lz4 builtin_lzma builtin_tbb builtin_vdt builtin_xxhash builtin_zstd clad dataframe davix exceptions fftw3 fitsio gdml http imt mathmore mlp mysql opengl python roofit runtime_cxxmodules shared ssl tmva tmva-cpu tmva-pymva spectrum vdt x11 xml
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/root_02_06_2020_11:48:23/rootbuild
laman@LM01:/tmp/root_02_06_2020_11:48:23/rootbuild$ cmake --build . 
Scanning dependencies of target LZMA
[  0%] Creating directories for 'LZMA'
[  0%] Performing download step (verify and extract) for 'LZMA'
-- LZMA download command succeeded.  See also /tmp/root_02_06_2020_11:48:23/rootbuild/LZMA-prefix/src/LZMA-stamp/LZMA-download-*.log
[  0%] No patch step for 'LZMA'
[  0%] No update step for 'LZMA'
[  0%] Performing configure step for 'LZMA'
-- LZMA configure command succeeded.  See also /tmp/root_02_06_2020_11:48:23/rootbuild/LZMA-prefix/src/LZMA-stamp/LZMA-configure-*.log
[  0%] Performing build step for 'LZMA'
-- LZMA build command succeeded.  See also /tmp/root_02_06_2020_11:48:23/rootbuild/LZMA-prefix/src/LZMA-stamp/LZMA-build-*.log
[  0%] Performing install step for 'LZMA'
-- LZMA install command succeeded.  See also /tmp/root_02_06_2020_11:48:23/rootbuild/LZMA-prefix/src/LZMA-stamp/LZMA-install-*.log
[  0%] Completed 'LZMA'
[  0%] Built target LZMA
Scanning dependencies of target VDT
[  0%] Creating directories for 'VDT'
[  0%] Performing download step (download, verify and extract) for 'VDT'
-- VDT download command succeeded.  See also /tmp/root_02_06_2020_11:48:23/rootbuild/VDT-prefix/src/VDT-stamp/VDT-download-*.log
[  0%] No patch step for 'VDT'
[  0%] No update step for 'VDT'
[  0%] Performing configure step for 'VDT'
-- VDT configure command succeeded.  See also /tmp/root_02_06_2020_11:48:23/rootbuild/VDT-prefix/src/VDT-stamp/VDT-configure-*.log
[  0%] Performing build step for 'VDT'
CMake Error at /tmp/root_02_06_2020_11:48:23/rootbuild/VDT-prefix/src/VDT-stamp/VDT-build-Release.cmake:49 (message):
  Command failed: 2


  See also


make[2]: *** [CMakeFiles/VDT.dir/build.make:113: VDT-prefix/src/VDT-stamp/VDT-build] Error 1
make[1]: *** [CMakeFiles/Makefile2:7288: CMakeFiles/VDT.dir/all] Error 2
make: *** [Makefile:152: all] Error 2

This is the offending cmake file:

laman@LM01:/tmp/root_02_06_2020_11:48:23/rootbuild$ cat -n /tmp/root_02_06_2020_11:48:23/rootbuild/VDT-prefix/src/VDT-stamp/VDT-build-Release.cmake
     2	cmake_minimum_required(VERSION 3.15)
     4	set(command "${make}")
     5	set(log_merged "")
     6	set(log_output_on_failure "")
     7	set(stdout_log "/tmp/root_02_06_2020_11:48:23/rootbuild/VDT-prefix/src/VDT-stamp/VDT-build-out.log")
     8	set(stderr_log "/tmp/root_02_06_2020_11:48:23/rootbuild/VDT-prefix/src/VDT-stamp/VDT-build-err.log")
     9	execute_process(
    10	  COMMAND ${command}
    11	  RESULT_VARIABLE result
    12	  OUTPUT_FILE "${stdout_log}"
    13	  ERROR_FILE "${stderr_log}"
    14	  )
    15	macro(read_up_to_max_size log_file output_var)
    16	  file(SIZE ${log_file} determined_size)
    17	  set(max_size 10240)
    18	  if (determined_size GREATER max_size)
    19	    math(EXPR seek_position "${determined_size} - ${max_size}")
    20	    file(READ ${log_file} ${output_var} OFFSET ${seek_position})
    21	    set(${output_var} "...skipping to end...\n${${output_var}}")
    22	  else()
    23	    file(READ ${log_file} ${output_var})
    24	  endif()
    25	endmacro()
    26	if(result)
    27	  set(msg "Command failed: ${result}\n")
    28	  foreach(arg IN LISTS command)
    29	    set(msg "${msg} '${arg}'")
    30	  endforeach()
    31	  if (${log_merged})
    32	    set(msg "${msg}\nSee also\n  ${stderr_log}")
    33	  else()
    34	    set(msg "${msg}\nSee also\n  /tmp/root_02_06_2020_11:48:23/rootbuild/VDT-prefix/src/VDT-stamp/VDT-build-*.log")
    35	  endif()
    36	  if (${log_output_on_failure})
    37	    message(SEND_ERROR "${msg}")
    38	    if (${log_merged})
    39	      read_up_to_max_size("${stderr_log}" error_log_contents)
    40	      message(STATUS "Log output is:\n${error_log_contents}")
    41	    else()
    42	      read_up_to_max_size("${stdout_log}" out_log_contents)
    43	      read_up_to_max_size("${stderr_log}" err_log_contents)
    44	      message(STATUS "stdout output is:\n${out_log_contents}")
    45	      message(STATUS "stderr output is:\n${err_log_contents}")
    46	    endif()
    47	    message(FATAL_ERROR "Stopping after outputting logs.")
    48	  else()
    49	    message(FATAL_ERROR "${msg}")
    50	  endif()
    51	else()
    52	  set(msg "VDT build command succeeded.  See also /tmp/root_02_06_2020_11:48:23/rootbuild/VDT-prefix/src/VDT-stamp/VDT-build-*.log")
    53	  message(STATUS "${msg}")
    54	endif()
laman@LM01:/tmp/root_02_06_2020_11:48:23/rootbuild$ ls -l /tmp/root_02_06_2020_11:48:23/rootbuild/VDT-prefix/src/VDT-stamp/VDT-build-*.log
-rw-rw-r-- 1 laman laman 198 Jun  2 11:51 /tmp/root_02_06_2020_11:48:23/rootbuild/VDT-prefix/src/VDT-stamp/VDT-build-err.log
-rw-rw-r-- 1 laman laman   0 Jun  2 11:51 /tmp/root_02_06_2020_11:48:23/rootbuild/VDT-prefix/src/VDT-stamp/VDT-build-out.log

and these are the logs:

laman@LM01:/tmp/root_02_06_2020_11:48:23/rootbuild$ cat /tmp/root_02_06_2020_11:48:23/rootbuild/VDT-prefix/src/VDT-stamp/VDT-build-err.log
lib/CMakeFiles/vdt.dir/build.make:61: *** target pattern contains no '%'.  Stop.
make[4]: *** [CMakeFiles/Makefile2:114: lib/CMakeFiles/vdt.dir/all] Error 2
make[3]: *** [Makefile:130: all] Error 2

Hi Massimo,

Perhaps @oshadura knows what the problem with VDT can be?

Do you have configuration related files of VDT (not build log files but configure log files): something like /tmp/root_02_06_2020_11:48:23/rootbuild/VDT-prefix/src/VDT-stamp/VDT-configure-*?

Sure. I listed that directory and cat the various files.
Thank you in advance, Massimo

laman@LM01:/tmp/root_02_06_2020_17:41:00/rootbuild$ ls -l VDT-prefix/src/VDT-stamp/VDT-configure*
-rw-rw-r-- 1 laman laman    0 Jun  2 17:43 VDT-prefix/src/VDT-stamp/VDT-configure
-rw-rw-r-- 1 laman laman   50 Jun  2 17:43 VDT-prefix/src/VDT-stamp/VDT-configure-err.log
-rw-rw-r-- 1 laman laman 1099 Jun  2 17:43 VDT-prefix/src/VDT-stamp/VDT-configure-out.log
-rw-rw-r-- 1 laman laman 2436 Jun  2 17:43 VDT-prefix/src/VDT-stamp/VDT-configure-Release.cmake
laman@LM01:/tmp/root_02_06_2020_17:41:00/rootbuild$ cat VDT-prefix/src/VDT-stamp/VDT-configure-err.log 
DIAG option is now off, building library only
laman@LM01:/tmp/root_02_06_2020_17:41:00/rootbuild$ cat VDT-prefix/src/VDT-stamp/VDT-configure-out.log 
-- The C compiler identification is GNU 9.3.0
-- The CXX compiler identification is GNU 9.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PythonInterp: /usr/bin/python (found version "3.8.2") 
running cd src;/usr/bin/python /tmp/root_02_06_2020_17:41:00/rootbuild/VDT-prefix/src/VDT/src/   -o /tmp/root_02_06_2020_17:41:00/rootbuild/VDT-prefix/src/VDT/src;cd - 2>&1
-- Libraries are configured as: SHARED
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/root_02_06_2020_17:41:00/rootbuild/VDT-prefix/src/VDT-build
laman@LM01:/tmp/root_02_06_2020_17:41:00/rootbuild$ cat VDT-prefix/src/VDT-stamp/VDT-configure-Release.cmake 

cmake_minimum_required(VERSION 3.15)

set(command "/usr/bin/cmake;-DSSE=OFF;-DCMAKE_BUILD_TYPE=Release;-DCMAKE_C_COMPILER=/usr/bin/cc;-DCMAKE_CXX_COMPILER=/usr/bin/c++;-DCMAKE_C_FLAGS= -Wno-implicit-fallthrough -pipe -Wall -W -pthread;-DCMAKE_CXX_FLAGS= -std=c++11 -Wno-implicit-fallthrough -Wno-noexcept-type -pipe  -Wshadow -Wall -W -Woverloaded-virtual -fsigned-char -pthread;-DCMAKE_INSTALL_PREFIX=/tmp/root_02_06_2020_17:41:00/rootbuild;-GUnix Makefiles;/tmp/root_02_06_2020_17:41:00/rootbuild/VDT-prefix/src/VDT")
set(log_merged "")
set(log_output_on_failure "")
set(stdout_log "/tmp/root_02_06_2020_17:41:00/rootbuild/VDT-prefix/src/VDT-stamp/VDT-configure-out.log")
set(stderr_log "/tmp/root_02_06_2020_17:41:00/rootbuild/VDT-prefix/src/VDT-stamp/VDT-configure-err.log")
  COMMAND ${command}
  OUTPUT_FILE "${stdout_log}"
  ERROR_FILE "${stderr_log}"
macro(read_up_to_max_size log_file output_var)
  file(SIZE ${log_file} determined_size)
  set(max_size 10240)
  if (determined_size GREATER max_size)
    math(EXPR seek_position "${determined_size} - ${max_size}")
    file(READ ${log_file} ${output_var} OFFSET ${seek_position})
    set(${output_var} "...skipping to end...\n${${output_var}}")
    file(READ ${log_file} ${output_var})
  set(msg "Command failed: ${result}\n")
  foreach(arg IN LISTS command)
    set(msg "${msg} '${arg}'")
  if (${log_merged})
    set(msg "${msg}\nSee also\n  ${stderr_log}")
    set(msg "${msg}\nSee also\n  /tmp/root_02_06_2020_17:41:00/rootbuild/VDT-prefix/src/VDT-stamp/VDT-configure-*.log")
  if (${log_output_on_failure})
    message(SEND_ERROR "${msg}")
    if (${log_merged})
      read_up_to_max_size("${stderr_log}" error_log_contents)
      message(STATUS "Log output is:\n${error_log_contents}")
      read_up_to_max_size("${stdout_log}" out_log_contents)
      read_up_to_max_size("${stderr_log}" err_log_contents)
      message(STATUS "stdout output is:\n${out_log_contents}")
      message(STATUS "stderr output is:\n${err_log_contents}")
    message(FATAL_ERROR "Stopping after outputting logs.")
    message(FATAL_ERROR "${msg}")
  set(msg "VDT configure command succeeded.  See also /tmp/root_02_06_2020_17:41:00/rootbuild/VDT-prefix/src/VDT-stamp/VDT-configure-*.log")
  message(STATUS "${msg}")

I can’t still reproduce your failure, but if you doesn’t need vdt you can just disable it with -Dvdt=OFF

thanx a lot. I tried (I actually did something similar before opening the the ticket) but with little luck.
I also moved back to 6.20.04 (+ switching off the vdt) and other errors appear.

Unless there is no immediate fix coming to mind, I prope that I do a new clean install of ubuntu 20.04 and retry. Do you have any recommendation of the ROOT version (I do not need bleeding-edge features?

Thank you, Massimo

P.S. The new errors (the same with 6.20 and 6.19)

[  0%] Built target LZMA
roofit/histfactory/CMakeFiles/move_header_roofit_histfactory.dir/build.make:80: *** target pattern contains no '%'.  Stop.
make[1]: *** [CMakeFiles/Makefile2:27563: roofit/histfactory/CMakeFiles/move_header_roofit_histfactory.dir/all] Error 2
make: *** [Makefile:152: all] Error 2

I did a clean Ubuntu 20.04 installation, I installed the following packages and I tried again.

gfortran libssl-dev libpcre3-dev xlibmesa-glu-dev libglew1.5-dev libftgl-dev libmysqlclient-dev libfftw3-dev libcfitsio-dev graphviz-dev libavahi-compat-libdnssd-dev libldap2-dev python3-dev libxml2-dev libkrb5-dev libgsl0-dev git dpkg-dev cmake g++ gcc binutils libx11-dev libxpm-dev libxft-dev libxext-dev cmake xorg xorg-dev

Unfortunately the errors remain the same (in the case of the ‘standard’ compilation and switching off VDT.


I’m working on making DEB packages of ROOT for Ubuntu. Please download it from and install with apt install ./root_6.20.04_amd64.deb. Let me know if you have any problems with this package. I hope to get something like this built along with other binaries and released in the future. Cheers,

@amadio Could you, please, tell me what is the simplest way to install your new package into e.g. “/opt/ROOT/ root_6.20.04” (i.e. it should install all required system dependencies and then “unpack” itself into the given directory) or into e.g. “${HOME}/ROOT/ root_6.20.04”.

For that you have to use the regular binaries, as the deb package is not relocatable.

@amadio This post is more than 5 years old but the problem is “known” for more than 10 years (when Ubuntu 10.04 LTS started to provide its own ROOT version):

Actually, with ROOT 6 the “problem” became more serious. Because ROOT 6 versions with “cxx11”, “cxx14” and especially “cxx17” are incompatible with one another (and some features will be incompatible with additional, experiment / analysis specific, software), one needs 3 sets of binaries for each ROOT 6 version so, something like 9 = 3 x 3 binary ROOT 6 distributions installed simultaneously.
Well, hopefully, with the newest ROOT 6 version supporting two python versions simultaneously, one will not need to multiply this number by 2 in order to get both, python2 and python3, features working.
Of course, a casual user, who just wants to play with it, just for fun from time to time, will be fine with a single one.

@Axel There is a long-standing problem with the “.tar.gz” binary distributions provided by the ROOT Team. Each of them relies on some set of system packages (compilers and libraries). Unfortunately, there is no place where these dependencies are explicitly listed. So, could you, please, add some “manifest” file to each of your binary distributions with a detailed list of operating system specific packages which are / can be referenced / needed by these particular binaries. Actually, this file should contain two lists of packages, one “mandatory”, for the bare ROOT functionality to work, and another one “optional”, for any available built-in ROOT functionality to work.
This should not be that difficult to achieve (you do it anyhow for the “.deb” and “.rpm” packages).
It would spare us from extremely many questions here, why some binary does not work on my system. When answering such questions, for me the problem is that I do not have access to your “build system” so I cannot “guess” the names of system packages for that particular operating system. An explicit list of them inside of the “.tar.gz” file would be extremely helpful (plus a small line with an exact command line showing how to install them, as different flavors / versions of operating systems use different package managers).

Dear Amadio,
it is just great (I am using the py part mainly) and it is OK.

I am just a user so the deb file is perfect for me!

Thank you

Hi Wile_E,

Thanks for bringing this up. As you saw, @amadio and others are preparing a .deb package for Ubuntus that should address your second concern, as it lists dependencies to be installed. I don’t know yet how we can combine dependency tracking in .deb with multiple installs. Ideas?

The main problem with the dependency file is that people need to find it…

Cheers, Axel

Well, I was trying to say exactly the opposite.
What you now propose is that the user downloads your “.deb” or “.rpm” package and installs its dependencies only. Then the user downloads and unpacks your “.tar.gz” file (where convenient).
However, it may well be that the dependencies for the “.tar.gz” file are different from these for the corresponding “.deb” and “.rpm”.

Simply call the file “MANIFEST.TXT” and always put it in the main directory (i.e. where the “LICENSE” file resides).
Afterwards, whenever someone asks what is needed, we can simply say … see the file which is included in your version of binary distribution.
A simple “MANIFEST.TXT” file for some Ubuntu binaries could look like:

# mandatory
sudo apt-get install \
gcc g++ \
lib1 lib2 lib3 ...

# optional
sudo apt-get install \
gfortran make cmake \
lib4 lib5 lib6 ...

The dependencies will be standard operating system packages so there should not be any problem (yes, you must not be very specific when preparing the list of packages, i.e. you can say “gcc” or “gcc-9” but better not “gcc-9.3.0-1ubuntu2”, same with libraries’ versions).
Actually, I could also imagine that one prepares a dummy “.deb” and “.rpm” packages which contain nothing except dependencies (but I still prefer a simple text file).

@amadio Well, “.rpm” packages can be made “relocatable”, so installing into user preferred “prefix” could easily be made available for e.g. CentOS and Fedora machines (the default “prefix” could be “/usr”, of course). Moreover, I think one can also install “.rpm” packages on Ubuntu and Debian (I’m not sure but possibly / hopefully “alien” is not needed). So, it should be possible to create “relocatable” packages for Ubuntu and Debian, too.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.