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.
– 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.
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,