Which version of Qt the ROOT releases are built against of

All ROOT binary releases root.cern.ch/drupal/content/prod … ease-52200 for X11 include the Qt-layer shared lib (see below). However, I was not able to find which version of Qt these binary were compiled and built against of. Did I miss something?
Without such information the Qt-layer is no use and should cause the various confusions (crashes or “weird” program behavior) among its users because SOME “astray” Qt library is always present on Linux system.
For example, CERN LCG area alone contains 8 different versions of Qt package available:

ls -l /afs/cern.ch/sw/lcg/external/qt/ total 22 drwxrwxr-x 3 lcgspi yt 2048 Jan 25 2005 3.2.1 drwxrwxr-x 7 lcgspi yt 2048 Jan 25 2005 3.3.2 drwxr-xr-x 3 ypatois 505 2048 Oct 13 2004 3.3.2_mac drwxrwxrwx 20 bin root 2048 Jun 18 2007 3.3.4 drwxrwxrwx 15 root root 2048 Mar 13 13:41 3.3.8 drwxrwxrwx 11 lcgspi root 2048 Mar 11 2008 4.2.1 drwxrwxrwx 14 lcgspi root 2048 Dec 9 18:24 4.3.0 drwxrwxrwx 7 root root 2048 Sep 4 2008 4.4.1 drwxrwxrwx 11 root root 2048 Dec 12 17:25 4.4.2 drwxr-xr-x 2 lcgspi games 2048 Mar 7 2008 logs drwxr-xr-x 2 21402 sf 2048 Sep 18 2006 _SPI
Can someone clarify this issue and include this information into the ROOT Release notes as well?

root-config --config provides no clue either.

[lxplus221] ~/scratch0/public/ROOT > root-config --config --fail-on-missing --enable-cintex --enable-explicitlink --enable-gdml --enable-genvector --enable-mathmore --enable-minuit2 --enable-mysql --enable-oracle --enable-python --enable-qt --enable-qtgsi --enable-reflex --enable-roofit --enable-table --enable-unuran --with-castor-incdir=/afs/cern.ch/sw/lcg/external/castor/2.1.7-24/slc4_ia32_gcc34/usr/include/shift --with-castor-libdir=/afs/cern.ch/sw/lcg/external/castor/2.1.7-24/slc4_ia32_gcc34/usr/lib --with-cern-libdir=/afs/cern.ch/sw/lcg/external/cernlib/2005/slc4_ia32_gcc34/lib --with-dcap-libdir=/afs/cern.ch/sw/lcg/external/dcache_client/1.8.0p1/slc4_ia32_gcc34/dcap/lib --with-dcap-incdir=/afs/cern.ch/sw/lcg/external/dcache_client/1.8.0p1/slc4_ia32_gcc34/dcap/include --with-fftw3-incdir=/afs/cern.ch/sw/lcg/external/fftw3/3.1.2/slc4_ia32_gcc34/include --with-fftw3-libdir=/afs/cern.ch/sw/lcg/external/fftw3/3.1.2/slc4_ia32_gcc34/lib --with-gccxml=/afs/cern.ch/sw/lcg/external/gccxml/0.9.0_20081130/slc4_ia32_gcc34/bin --with-gfal-libdir=/afs/cern.ch/sw/lcg/external/Grid/gfal/1.11.2-1/slc4_ia32_gcc34/lib --with-gfal-incdir=/afs/cern.ch/sw/lcg/external/Grid/gfal/1.11.2-1/slc4_ia32_gcc34/include --with-globus-incdir=/afs/cern.ch/sw/lcg/external/Grid/globus/4.0.3-VDT-1.6.0/slc4_ia32_gcc34/globus/include --with-globus-libdir=/afs/cern.ch/sw/lcg/external/Grid/globus/4.0.3-VDT-1.6.0/slc4_ia32_gcc34/globus/lib --with-gsl-incdir=/afs/cern.ch/sw/lcg/external/GSL/1.10/slc4_ia32_gcc34/include --with-gsl-libdir=/afs/cern.ch/sw/lcg/external/GSL/1.10/slc4_ia32_gcc34/lib --with-mysql-incdir=/afs/cern.ch/sw/lcg/external/mysql/5.0.18/slc4_ia32_gcc34/include --with-mysql-libdir=/afs/cern.ch/sw/lcg/external/mysql/5.0.18/slc4_ia32_gcc34/lib --with-oracle-incdir=/afs/cern.ch/sw/lcg/external/oracle/10.2.0.4-full/slc4_ia32_gcc34/include --with-oracle-libdir=/afs/cern.ch/sw/lcg/external/oracle/10.2.0.4-full/slc4_ia32_gcc34/lib --with-shift-incdir=/afs/cern.ch/sw/lcg/external/castor/2.1.7-24/slc4_ia32_gcc34/usr/include/shift --with-shift-libdir=/afs/cern.ch/sw/lcg/external/castor/2.1.7-24/slc4_ia32_gcc34/usr/lib

ls -l /afs/cern.ch/sw/lcg/app/releases/ROOT/5.22.00/*/root/lib/libGQt.so -rwxr-xr-x 1 bellenot sf 5563492 Dec 18 12:30 /afs/cern.ch/sw/lcg/app/releases/ROOT/5.22.00/i686-slc5-gcc34-dbg/root/lib/libGQt.so -rwxr-xr-x 1 bellenot sf 667818 Dec 18 12:52 /afs/cern.ch/sw/lcg/app/releases/ROOT/5.22.00/i686-slc5-gcc34-opt/root/lib/libGQt.so -rwxr-xr-x 1 bellenot sf 3772152 Dec 18 12:06 /afs/cern.ch/sw/lcg/app/releases/ROOT/5.22.00/i686-slc5-gcc43-dbg/root/lib/libGQt.so -rwxr-xr-x 1 bellenot sf 726692 Dec 18 12:40 /afs/cern.ch/sw/lcg/app/releases/ROOT/5.22.00/i686-slc5-gcc43-opt/root/lib/libGQt.so -rwxr-xr-x 1 bellenot games 869788 Dec 18 10:23 /afs/cern.ch/sw/lcg/app/releases/ROOT/5.22.00/osx105_ia32_gcc401_dbg/root/lib/libGQt.so -rwxr-xr-x 1 bellenot games 614448 Dec 18 10:25 /afs/cern.ch/sw/lcg/app/releases/ROOT/5.22.00/osx105_ia32_gcc401/root/lib/libGQt.so -rwxr-xr-x 1 bellenot sf 5877935 Dec 18 10:46 /afs/cern.ch/sw/lcg/app/releases/ROOT/5.22.00/slc4_amd64_gcc34_dbg/root/lib/libGQt.so -rwxr-xr-x 1 agaspar sf 812794 Dec 18 10:47 /afs/cern.ch/sw/lcg/app/releases/ROOT/5.22.00/slc4_amd64_gcc34/root/lib/libGQt.so -rwxr-xr-x 1 bellenot sf 4046824 Dec 18 10:46 /afs/cern.ch/sw/lcg/app/releases/ROOT/5.22.00/slc4_amd64_gcc43_dbg/root/lib/libGQt.so -rwxr-xr-x 1 bellenot sf 813708 Dec 18 10:49 /afs/cern.ch/sw/lcg/app/releases/ROOT/5.22.00/slc4_amd64_gcc43/root/lib/libGQt.so -rwxr-xr-x 1 bellenot sf 5570492 Dec 18 10:40 /afs/cern.ch/sw/lcg/app/releases/ROOT/5.22.00/slc4_ia32_gcc34_dbg/root/lib/libGQt.so -rwxr-xr-x 1 bellenot sf 671962 Dec 18 10:42 /afs/cern.ch/sw/lcg/app/releases/ROOT/5.22.00/slc4_ia32_gcc34/root/lib/libGQt.so -rwxr-xr-x 1 bellenot sf 3772052 Dec 18 10:52 /afs/cern.ch/sw/lcg/app/releases/ROOT/5.22.00/slc4_ia32_gcc43_dbg/root/lib/libGQt.so -rwxr-xr-x 1 bellenot sf 727136 Dec 18 11:01 /afs/cern.ch/sw/lcg/app/releases/ROOT/5.22.00/slc4_ia32_gcc43/root/lib/libGQt.so -rwxr-xr-x 1 bellenot sf 5874404 Jan 5 12:41 /afs/cern.ch/sw/lcg/app/releases/ROOT/5.22.00/x86_64-slc5-gcc34-dbg/root/lib/libGQt.so -rwxr-xr-x 1 bellenot sf 805935 Jan 5 12:59 /afs/cern.ch/sw/lcg/app/releases/ROOT/5.22.00/x86_64-slc5-gcc34-opt/root/lib/libGQt.so -rwxr-xr-x 1 bellenot sf 4046489 Jan 5 12:17 /afs/cern.ch/sw/lcg/app/releases/ROOT/5.22.00/x86_64-slc5-gcc43-dbg/root/lib/libGQt.so -rwxr-xr-x 1 bellenot sf 813141 Jan 5 12:49 /afs/cern.ch/sw/lcg/app/releases/ROOT/5.22.00/x86_64-slc5-gcc43-opt/root/lib/libGQt.so

Hi Valeri,

you mean the Qt layer does not check yet whether the version used at build time is the same as (or binary compatible to) the version used at run time?!

We’ll have to wait for Bertrand to answer your question; he is currently on vacation.

Cheers, Axel.

[quote=“Axel”]We’ll have to wait for Bertrand to answer your question; he is currently on vacation[/quote]My question was simple one,

[quote]“What was the version of Qt that ROOT team used to build libGQt.so?”[/quote]Your answer is, “I do not know the answer”. Is it correct?

Dear Axel,
It does check. It allows user to spot the problem, However it does not help the end user to find and select the proper Qt library and compilation flags to move on. Probably you are not aware yet of the purpose of the “$ROOTSYS/bin/root-config” shell script provided with each ROOT system.
You see, when you compile your C++ code against any C++ class library you have to define the location of the header files of that library and the shared library location at run-time.

To be able use the precompiled library the user has to provide the same version of header files to compile his/her portion of the code and apply the same compilation flags. To run the application properly, the same version of the shared lib should be available as well. (On Windows one can not mix the libraries compiled with “debug” and with “no debug” mode).

To be able use what ROOT provides the user has to know which version of Qt-library the libGQt.so was built against of. Do you agree?

Hi Valery,

as I said, Bertrand is on vacation. He knows, I personally don’t care and thus don’t know, sorry… But I still wanted to inform you that you will have to wait a bit for the answer, until Bertrand is back.

See TVersionCheck for an example of how to compare versions at build and run time. I’m sure there are more on the net.

Cheers, Axel.

[quote=“Axel”]as I said, Bertrand is on vacation…[/quote]I did not ask where is Bertrand. I did say, the ROOT users need this information [quote=“Axel”]…I personally don’t care and thus don’t know, sorry…[/quote][quote=“Axel”]See TVersionCheck for an example of how to compare versions at build and run time. I’m sure there are more on the net.[/quote]You know that. So, you tnink the root-config is an useless piece. However … I did not ask “how to compare version”, it is well documented on net, you are correct

Hi Valeri,

The configuration used to build ROOT is the one defined by the experiments, via the Architect Forum, and then applied by the SPI group. See:
https://twiki.cern.ch/twiki/bin/view/SPI/WebHome
And for the various configurations, see at this location:
https://twiki.cern.ch/twiki/bin/view/SPI/LcgConfigurations
But I agree this is not the easiest way to find the informations… We’ll check how to improve the actual system and we’ll let you know (when back from vacation, as Axel said previously…)

Cheers, Bertrand.

Hello Bertrand,
Great!!! Thank you very much for your prompt reply.
Did I understand the page
twiki.cern.ch/twiki/bin/view/SP … #Externals
correctly
ROOT 5.22a from LCG 56 is built against of Qt 4.4.2.
and ROOT 5.18.00d from LCG 55a is built against of Qt 3.3.8
lcgsoft.cern.ch/index.py?page=cf … ew&cfg=55a
I.e. the current LCG56 is the first version of ROOT built against Qt 4.x
In fact it had answered my next question, because it shows which version of the gcc compiler was applied

Is it correct to assume that the binary ROOT distribution available from the ROOT Web site includes libGQt built against Qt 4.4.2 as well?

I have had a few requests to assist with QtRoot at CERN and was not able to set my environment to reproduce the issues due lack of the information you have provided.

Many thanks.

Sorry, if my message has interrupted your vacation.

Have a nice vacation.