ROOT 6 build behind firewall -- download of external libraries problematic

Please provide the following information:


ROOT Version (e.g. 6.10/08): 6.10.08
Platform, compiler (e.g. CentOS 7.3, gcc6.2): CentOS 7.2, gcc5.2


I am attempting to build a (slightly) customized version of ROOT (with PYTHIA6 enabled) on Jefferson Lab’s batch farm, and I am having significant difficulty with the CMake build system due to the fact that when certain external libraries can’t be located in standard locations on the system by CMake, the “builtin” option for those libraries is automatically switched on, and the build is configured to automatically download (insecurely) certain external libraries from the web, which is not possible in my context due to JLab’s network security.

For example, during the build process, I get error messages like:

"CMake Error at TBB-stamp/TBB-download-RelWithDebInfo.cmake:16 (message):
Command failed: 1

‘/u/apps/cmake/cmake-3.5.1/bin/cmake’ ‘-Dmake=’ ‘-Dconfig=’ ‘-P’ ‘/home/puckett/ROOT_PYTHIA/build/TBB-prefix/src/TBB-stamp/TBB-download-RelWithDebInfo-impl.cmake’

See also

/home/puckett/ROOT_PYTHIA/build/TBB-prefix/src/TBB-stamp/TBB-download-*.log

gmake[2]: *** [TBB-prefix/src/TBB-stamp/TBB-download] Error 1
gmake[1]: *** [CMakeFiles/TBB.dir/all] Error 2"

And in the TBB-download-err.log file, I find a standard message about being unable to connect to the server:

"CMake Error at TBB-stamp/download-TBB.cmake:21 (message):
error: downloading
http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/sources/tbb2017_U5.tar.gz
failed

status_code: 7
status_string: "Couldn't connect to server"
log:   Trying 188.184.67.233...

connect to 188.184.67.233 port 80 failed: Connection timed out

Failed to connect to lcgpackages.web.cern.ch port 80: Connection timed out

Closing connection 0

CMake Error at TBB-stamp/TBB-download-RelWithDebInfo-impl.cmake:9 (message):
Command failed (1):

‘/u/apps/cmake/cmake-3.5.1/bin/cmake’ ‘-P’ '/home/puckett/ROOT_PYTHIA/build/TBB-prefix/src/TBB-stamp/download-TBB.cmake".

So in the end what I’m trying to figure out, is which external libraries are truly required for a working ROOT build, and which are optional, and also, is there an easy way to disable all external libraries that require insecure downloads from the web? Note that I did a secure SSH clone of the git repository to obtain the source distribution, and this worked fine.

It would seem to me that for ROOT building to work “out of the box”, it should not require ANY external libraries to be insecurely downloaded as part of the build process. Moreover, it seems disingenuous to call these libraries “built-in”. In newer ROOT versions, it seems there are several external libraries that CMake will configure for automatic downloading

How would you recommend that I proceed?

Thanks in advance,
Andrew

Hi, we already have an issue in JIRA for this (ROOT-9163) and are working on resolving this problem. I think the essential libraries for compiling ROOT (zlib, lz4, lzma, pcre, etc) no longer need a network connection, for example. For now, you can configure with -Dimt=OFF to not need TBB. If you hit other option that you don’t know how to disable, please comment here and we will let you know how to do it. In a future release, instead of enabling the builtins, we will disable any option that requires a download. The download uses http because on Macs CMake cannot use SSL by default. In any case, each downloaded file is verified with a checksum and is hosted at CERN, so there isn’t any big security problem.

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