Error while installing ROOT due to TBB

When I did make for installing ROOT in my CentOS 7 the following error came in TBB-download-err.log

  Connected to 192.168.2.1 (192.168.2.1) port 3128 (#0)
  GET
  http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/sources/tbb2017_U5.tar.gz
  HTTP/1.1
  Host: lcgpackages.web.cern.ch
  User-Agent: curl/7.60.0
  Accept: */*
  Proxy-Connection: Keep-Alive
  **The requested URL returned error: 407 Proxy Authentication Required**
  Closing connection 0
         --- LOG END ---
**CMake Error at TBB-stamp/TBB-download-RelWithDebInfo-impl.cmake:9 (message):**
 Command failed (1):
 '/usr/local/bin/cmake' '-P' '/home/aqsa/Downloads/root-build/TBB-prefix/src/TBB-stamp/download-TBB.cmake'

I already have TBB- and TBB-devel installed.

command: sudo yum install tbb

ouput: **Package tbb-4.1-9.20130314.el7.x86_64 already installed and latest version**

command: sudo yum install tbb-devel
output: Package tbb-devel-4.1-9.20130314.el7.x86_64 already installed and latest version

My internet is working fine because I am able to do sudo yum update without any problem.

I would also like to mention that cmake configured well even though there was this error:

**No blas or cblas found. TMVA-DNN-CPU is disabled**

(I aslso have blas installed 'Package blas-3.4.2-8.el7.x86_64 already installed and latest version
")

Kindly Help I am kind of beginner in handling Linux all by myself and so stuck on this error from past two days.


ROOT Version: 6.14.00 pro version
Platform: CentOS 7
Compiler: gcc 4.8.5


Your version of TBB seems to be too old for ROOT, so ROOT is trying to build the internal version.
Please uninstall it and try again, the problem might be that the system headers get picked up by the internal TBB, which breaks compilation of the internal one. If that’s the case, I will see how we can fix that in our build system.

I removed TBB and TBB-devel using
$ sudo yum remove tbb
$ sudo yum remove tbb-devel

After that I updated using
$ sudo yum update

Cleaned my previous build
$ make clean

And then did cmake and make again.
$ cmake …/root-6.14.00
$ make

I am getting exactly the same error as before and that is

[ 74%] Performing download step (download, verify and extract) for ‘TBB’
CMake Error at TBB-stamp/TBB-download-RelWithDebInfo.cmake:16 (message):
Command failed: 1

‘/usr/local/bin/cmake’ ‘-Dmake=’ ‘-Dconfig=’ ‘-P’ ‘/home/aqsa/Downloads/ROOT/root-6.14.00-build/TBB-prefix/src/TBB-stamp/TBB-download-RelWithDebInfo-impl.cmake’

See also

/home/aqsa/Downloads/ROOT/root-6.14.00-build/TBB-prefix/src/TBB-stamp/TBB-download-*.log

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

Now I see that the actual error you got was not really a compilation error, but a network error. This does not seem to be a problem with ROOT.

this is the output put in my TBB-download-*.log

– verifying file…
file=’/home/aqsa/Downloads/ROOT/root-6.14.00-build/TBB-prefix/src/tbb2017_U5.tar.gz’
– SHA256 hash of
/home/aqsa/Downloads/ROOT/root-6.14.00-build/TBB-prefix/src/tbb2017_U5.tar.gz
does not match expected value
expected: ‘780baf0ad520f23b54dd20dc97bf5aae4bc562019e0a70f53bfc4c1afec6e545’
actual: ‘e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855’
– File already exists but hash mismatch. Removing…
– Downloading…
dst=’/home/aqsa/Downloads/ROOT/root-6.14.00-build/TBB-prefix/src/tbb2017_U5.tar.gz’
timeout=‘none’
– Using src=‘http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/sources/tbb2017_U5.tar.gz
– Retrying…
It gave similar 5 attempts

I am able to update my other packages though terminal. I am also able to use wget command to download packages using URLs.

Do I have to manually Download latest version of TBB and link it to root somehow?
If yes then how should I do it?
While removing my TBB I saw that the version of TBB previously installed using yum install command was tbb.x86_64 0:4.1-9.20130314.el7

I tried manually downloading TBB from https://github.com/01org/tbb/releases
and the configure it like this.
$ tar -zxvf tbb-2018_U5.tar.gz
$ cd tbb-2018_U5/
$ make

Then again tried to cmake root and while make command it gave same TBB error.

If you downloaded TBB manually, you used a file that doesn’t match the known hash of TBB from ROOT. In that case, you can remove the URL_HASH=... from the ExternalPackage_Add() call for TBB in cmake/modules/SearchInstalledSoftware.cmake and it should work.

Should I externally add the TBB package and delete the URL_HASH from cmake/modules/SearchInstalledSoftware.cmake
or should I remove all the TBB packages and let ROOT build its own which was your first suggestion which I have quoted above. I am really confused.

Since the system version is too old, ROOT is already trying to build the built-in version of TBB, but since you seem to have downloaded the file manually, and it has a different hash than the one ROOT expects, it’s failing. So all you need to do is to remove the system installed TBB (just to make sure headers are not mixed up), and remove the URL_HASH line from cmake/modules/SearchInstalledSoftware.cmake for TBB. Then ROOT will use the downloaded tarball without checking the hash and everything should work.

I think my root is not taking the downloaded tarball. It is showing the following error in terminal

[ 76%] Performing download step (download, verify and extract) for ‘TBB’
CMake Error at TBB-stamp/TBB-download-RelWithDebInfo.cmake:16 (message):
Command failed: 1
‘/usr/local/bin/cmake’ ‘-Dmake=’ ‘-Dconfig=’ ‘-P’ ‘/home/aqsa/Downloads/ROOT/root-6.13.08-build/TBB-prefix/src/TBB-stamp/TBB-download-RelWithDebInfo-impl.cmake’
See also
/home/aqsa/Downloads/ROOT/root-6.13.08-build/TBB-prefix/src/TBB-stamp/TBB-download-*.log
make[2]: *** [TBB-prefix/src/TBB-stamp/TBB-download] Error 1
make[1]: *** [CMakeFiles/TBB.dir/all] Error 2
make: *** [all] Error 2

In TBB-download-err.log

CMake Error at TBB-stamp/download-TBB.cmake:159 (message):
Each download failed!
error: downloading ‘http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/sources/tbb2017_U5.tar.gz’ failed
status_code: 22
status_string: “HTTP response code said error”
log:

    --- LOG BEGIN ---
     Uses proxy env variable no_proxy == '.local,.localhost'

Uses proxy env variable http_proxy == ‘http://192.168.2.1:3128/
Trying 192.168.2.1…
TCP_NODELAY set
Connected to 192.168.2.1 (192.168.2.1) port 3128 (#0)
GET
http://lcgpackages.web.cern.ch/lcgpackages/tarFiles/sources/tbb2017_U5.tar.gz
HTTP/1.1
Host: lcgpackages.web.cern.ch
User-Agent: curl/7.60.0
Accept: /
Proxy-Connection: Keep-Alive
The requested URL returned error: 407 Proxy Authentication Required
Closing connection 0
— LOG END —

I did this. So now,
$ which tbb
/usr/bin/which: no tbb in (/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/aqsa/.local/bin:/home/aqsa/bin)

I used # to comment the URL_HASH

Do I have to pass the location of untared TBB tarball while doing cmake or will automatically take it?

TBB is just a library, there is no tbb binary to call.

Please check your network configuration. The problem you have is not due to TBB, it’s due to your network proxy, which is not working properly and cannot download the tarball from our server. I recommend you to just disable support for TBB for now, using -Dimt=OFF when configuring ROOT, or to download one of the binary releases. To make the build system find the TBB you downloaded, you have to place it where CMake would usually download it, that is, in TBB-prefix/src which you will find inside the binary directory (i.e. where you ran cmake to configure ROOT). Cheers,

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