Problems building root 6.18/04 with builtin davix

Dear ROOT developers,

I am currently trying to re-build root 6.18/04 using the tarball from the root homepage: https://root.cern/download/root_v6.18.04.source.tar.gz

I am running into problems with the builtin DAVIX. From what I gather this is because the download that is happening fails, because the url from which the download should happen does no longer exist or is not reachable.

I have attached the download logs from the DAVIX step here.

The invoking cmake command is the following:

cmake <path/to/source> \
 -DCMAKE_CXX_STANDARD=17 \
 -Dgsl_shared=ON -Dbuiltin_gsl=OFF -Dgdml=ON \
 -Dminuit=ON -Droofit=ON -Dunuran=ON \
 -Dxrootd=ON -Dmathmore=ON \
 -Dbuiltin_xrootd=ON -Dfortran=OFF \
 -Dmysql=OFF -Dsqlite=OFF

Running make afterwards leads to the following error:

CMake Error at DAVIX-stamp/DAVIX-download-RelWithDebInfo.cmake:49 (message):
  Command failed: 1

   '/cvmfs/sft.cern.ch/lcg/releases/CMake/3.14.3-34449/x86_64-centos7-gcc8-opt/bin/cmake' '-Dmake=' '-Dconfig=' '-P' '/tmp/madlener/build_root_6.18.04/builtins/davix/DAVIX-prefix/src/DAVIX-stamp/DAVIX-download-RelWithDebInfo-impl.cmake'

Checking the logs: The download is attempted from a url that seems to no longer exist

curl -I http://grid-deployment.web.cern.ch/grid-deployment/dms/lcgutil/tar/davix/0.6.7/davix-embedded-0.6.7.tar.gz
HTTP/1.1 404 Not Found
Date: Tue, 30 Mar 2021 11:32:04 GMT
Server: Apache
Last-Modified: Fri, 30 Oct 2020 14:55:37 GMT
ETag: "dc7-5b2e496e5594d"
Accept-Ranges: bytes
Content-Length: 3527
Connection: close
Content-Type: text/html

Has this been moved since the tarball has been released? If yes, is it still available somewhere else, so it would be possible to patch this to still be able to build root 6.18/04?

Cheers,
Thomas

DAVIX-download-out.log.txt (1.0 KB) DAVIX-download-err.log.txt (4.5 KB)


Please read tips for efficient and successful posting and posting code

ROOT Version: 6.18/04
Platform: CentOS7
Compiler: gcc-8.2


Try to:
sudo yum install davix-devel # from "epel"
then reconfigure your ROOT from scratch again.
If it doesn’t help, you may need to use “cmake -Ddavix=OFF ...

Unfortunately I don’t have sudo rights on the machine I am trying to build. Of course I could build davix outside of root and then use that in the root build, but the real problem is that in their current form the source distributed by root cannot be built with -Dbuiltin_davix=ON, because the download of the davix sources that happens inside the root build fails for 6.18/04.

I have checked the CMakeLists.txt and it seems that the source where the package is downloaded from has been changed in this pull request. I don’t know when the original source was taken offline (or maybe it is not available at the moment?), however the davix-0.6.7 sources seem to be available. Patching the builtins/davix/CMakeLists.txt to use the new source for downloading the davix tarball allows me to build root 6.18/04 again with builtin davix:

diff -urB root-6.18.04.orig/builtins/davix/CMakeLists.txt root-6.18.04/builtins/davix/CMakeLists.txt
--- root-6.18.04.orig/builtins/davix/CMakeLists.txt	2019-09-11 15:36:49.000000002 +0200
+++ root-6.18.04/builtins/davix/CMakeLists.txt	2021-03-30 18:22:38.000000002 +0200
@@ -5,8 +5,8 @@
 find_package(OpenSSL REQUIRED)
 
 set(DAVIX_VERSION "0.6.7")
-set(DAVIX_URL "http://grid-deployment.web.cern.ch/grid-deployment/dms/lcgutil/tar/davix")
-set(DAVIX_URLHASH "SHA256=1694152a20a5c5e692c4bc545b2efbacec5274fb799e60725412ebae40cced3d")
+set(DAVIX_URL "http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/sources")
+set(DAVIX_URLHASH "SHA256=bc067aef67d16fd530b45d7718294802dbd5f63c1a6002f50c404055f7755431")
 set(DAVIX_PREFIX ${CMAKE_CURRENT_BINARY_DIR}/DAVIX-prefix)
 set(DAVIX_LIBNAME ${CMAKE_STATIC_LIBRARY_PREFIX}davix${CMAKE_STATIC_LIBRARY_SUFFIX})
 
@@ -16,7 +16,7 @@
 endforeach()
 
 ExternalProject_Add(DAVIX
-  URL ${DAVIX_URL}/${DAVIX_VERSION}/davix-embedded-${DAVIX_VERSION}.tar.gz
+  URL ${DAVIX_URL}/davix-${DAVIX_VERSION}.tar.gz
   URL_HASH ${DAVIX_URLHASH}
   CMAKE_CACHE_ARGS
     -DCMAKE_PREFIX_PATH:STRING=${OPENSSL_PREFIX}

There are a few failing unittests, but they seem to be unrelated to davix:

The following tests FAILED:
	284 - tutorial-dataframe-df027_SQliteDependencyOverVersion (Failed)
	285 - tutorial-dataframe-df028_SQliteIPLocation (Failed)
	286 - tutorial-dataframe-df029_SQlitePlatformDistribution (Failed)
	287 - tutorial-dataframe-df030_SQliteVersionsOfROOT (Failed)
	789 - tutorial-xml-xmlmodifyfile (Failed)
	825 - tutorial-dataframe-df026_AsNumpyArrays-py (Failed)

The 4 sqlite related ones seem to be run accidentally, because -Dsqlite=OFF, the numpy related fails likely due to a problem in my quickly put together test setup for debugging this and for the xml related one I am not entirely sure.

Should someone run into similar problems in the future, here is the patch file that can be used to patch this problem: (Remove the .txt at the end and apply via patch -p1 -u < davix_download_patch_6.18.patch in the untarred root-6.18.04 folder)

davix_download_patch_6.18.patch.txt (1.1 KB)

@tmadlener in the latest version of ROOT everything is fine, but please open PR to GitHub - root-project/root at v6-18-00-patches so it will be available for other people who still use this ROOT version via this branch.

Hi @oshadura,

I probably should have checked there first. It seems there the relevant changes are already present. The download is from a different url, but it is working.

Sorry for the noise,
Cheers,
Thomas

1 Like

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