[Compilation] PyStringAsString and other issues

Hello,

I am currently trying to install root on an opensuse 42.1 machine, with anaconda installed and I have the following issues :

  • Compilations fails at 100 % with this error (probably related to Python3/Python2 imbroglio) :

Scanning dependencies of target PyMVA [100%] Building CXX object tmva/pymva/CMakeFiles/PyMVA.dir/G__PyMVA.cxx.o [100%] Building CXX object tmva/pymva/CMakeFiles/PyMVA.dir/src/MethodPyAdaBoost.cxx.o /home/pierre/cern/root/tmva/pymva/src/MethodPyAdaBoost.cxx: In member function ‘virtual void TMVA::MethodPyAdaBoost::Init()’: /home/pierre/cern/root/tmva/pymva/src/MethodPyAdaBoost.cxx:178:60: error: ‘PyString_FromString’ was not declared in this scope PyObject *pName = PyString_FromString("sklearn.ensemble"); ^ /home/pierre/cern/root/tmva/pymva/src/MethodPyAdaBoost.cxx: In member function ‘virtual void TMVA::MethodPyAdaBoost::Train()’: /home/pierre/cern/root/tmva/pymva/src/MethodPyAdaBoost.cxx:264:42: error: ‘PyString_AsString’ was not declared in this scope PyData << PyString_AsString(model_data); ^ tmva/pymva/CMakeFiles/PyMVA.dir/build.make:102: recipe for target 'tmva/pymva/CMakeFiles/PyMVA.dir/src/MethodPyAdaBoost.cxx.o' failed gmake[2]: *** [tmva/pymva/CMakeFiles/PyMVA.dir/src/MethodPyAdaBoost.cxx.o] Error 1 CMakeFiles/Makefile2:20295: recipe for target 'tmva/pymva/CMakeFiles/PyMVA.dir/all' failed gmake[1]: *** [tmva/pymva/CMakeFiles/PyMVA.dir/all] Error 2 Makefile:149: recipe for target 'all' failed gmake: *** [all] Error 2

Which python is Anaconda’s python 3.
I will try to recompile without anaconda’s path in .bashrc

  • cmake reports two failing tests :

-- Performing Test found_stdstringview -- Performing Test found_stdstringview - Failed -- Performing Test found_stdexpstringview -- Performing Test found_stdexpstringview - Failed

I don’t know how much of a problem it is.

  • cmake also reports :

-- Threads disabled. -- Doxygen disabled. -- Sphinx disabled. -- Go bindings enabled. -- Could NOT find OCaml (missing: OCAMLFIND OCAML_VERSION OCAML_STDLIB_PATH) -- Could NOT find OCaml (missing: OCAMLFIND OCAML_VERSION OCAML_STDLIB_PATH) -- OCaml bindings disabled.

even though I have ocaml, doxygen and python-sphinx installed.

I don’t have a lot of experience in building huge programs and some of my questions
are probably very basic. I apologize for it.

Full cmake output :

-- The C compiler identification is GNU 4.8.5 -- The CXX compiler identification is GNU 4.8.5 -- Check for working C compiler: /usr/bin/cc -- Check for working C compiler: /usr/bin/cc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Detecting C compile features -- Detecting C compile features - done -- Check for working CXX compiler: /usr/bin/c++ -- Check for working CXX compiler: /usr/bin/c++ -- works -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Detecting CXX compile features -- Detecting CXX compile features - done -- The Fortran compiler identification is GNU 4.8.5 -- Check for working Fortran compiler: /usr/bin/gfortran -- Check for working Fortran compiler: /usr/bin/gfortran -- works -- Detecting Fortran compiler ABI info -- Detecting Fortran compiler ABI info - done -- Checking whether /usr/bin/gfortran supports Fortran 90 -- Checking whether /usr/bin/gfortran supports Fortran 90 -- yes -- Found GCC. Major version 4, minor version 8 -- Performing Test HAS_CXX11 -- Performing Test HAS_CXX11 - Success -- Looking for include file pthread.h -- Looking for include file pthread.h - found -- Looking for pthread_create -- Looking for pthread_create - not found -- Looking for pthread_create in pthreads -- Looking for pthread_create in pthreads - not found -- Looking for pthread_create in pthread -- Looking for pthread_create in pthread - found -- Found Threads: TRUE -- Found a 64bit system -- Found GNU compiler collection -- ROOT Platform: linux -- ROOT Architecture: linuxx8664gcc -- Build Type: RelWithDebInfo -- Compiler Flags: -pipe -m64 -Wall -W -Woverloaded-virtual -fsigned-char -fPIC -pthread -std=c++11 -Wno-deprecated-declarations -O2 -g -DNDEBUG -- Looking for ZLib -- Found ZLIB: /home/pierre/anaconda3/lib/libz.so (found version "1.2.8") -- Looking for Freetype -- Found Freetype: /home/pierre/anaconda3/lib/libfreetype.so (found version "2.5.5") -- Looking for PCRE -- Found PCRE version 8.33 using /usr/bin/pcre-config -- Looking for LZMA -- Found LZMA includes at /home/pierre/anaconda3/include -- Found LZMA library at /home/pierre/anaconda3/lib/liblzma.so -- Looking for X11 -- Looking for XOpenDisplay in /usr/lib64/libX11.so;/usr/lib64/libXext.so -- Looking for XOpenDisplay in /usr/lib64/libX11.so;/usr/lib64/libXext.so - found -- Looking for gethostbyname -- Looking for gethostbyname - found -- Looking for connect -- Looking for connect - found -- Looking for remove -- Looking for remove - found -- Looking for shmat -- Looking for shmat - found -- Looking for IceConnectionNumber in ICE -- Looking for IceConnectionNumber in ICE - found -- Found X11: /usr/lib64/libX11.so -- X11_INCLUDE_DIR: /usr/include -- X11_LIBRARIES: /usr/lib64/libSM.so;/usr/lib64/libICE.so;/usr/lib64/libX11.so;/usr/lib64/libXext.so -- X11_Xpm_INCLUDE_PATH: /usr/include -- X11_Xpm_LIB: /usr/lib64/libXpm.so -- X11_Xft_INCLUDE_PATH: /usr/include -- X11_Xft_LIB: /usr/lib64/libXft.so -- X11_Xext_INCLUDE_PATH: -- X11_Xext_LIB: /usr/lib64/libXext.so -- Could NOT find GIF (missing: GIF_LIBRARY GIF_INCLUDE_DIR) -- Found TIFF: /home/pierre/anaconda3/lib/libtiff.so (found version "4.0.6") -- Found PNG: /home/pierre/anaconda3/lib/libpng.so (found version "1.6.17") -- Found JPEG: /home/pierre/anaconda3/lib/libjpeg.so -- Looking for GSL -- Found GSL: /usr/include (found suitable version "1.16", minimum required is "1.10") -- Looking for Python -- Found PythonInterp: /home/pierre/anaconda3/bin/python (found version "3.5.1") -- Found Python interpreter version 3.5 -- Found PythonLibs: /home/pierre/anaconda3/lib/libpython3.5m.so (found version "3.5.1") -- Found NumPy: version "1.10.4" /home/pierre/anaconda3/lib/python3.5/site-packages/numpy/core/include -- Looking for OpenGL -- Found OpenGL: /usr/lib64/libGL.so -- Looking for Graphviz -- Found GRAPHVIZ: /usr/include -- Looking for Bonjour -- Checking whether Bonjour/Avahi is supported -- Looking for Kerberos 5 -- Found KRB5: /usr/lib64/libkrb5.so -- Looking for LibXml2 -- Found LibXml2: /home/pierre/anaconda3/lib/libxml2.so (found version "2.9.1") -- Looking for OpenSSL -- Found OpenSSL: /home/pierre/anaconda3/lib/libssl.so;/home/pierre/anaconda3/lib/libcrypto.so (found version "1.0.2g") -- Looking for Castor -- Castor not found. Switching off castor/rfio option -- Looking for MySQL -- Found MYSQL: /usr/include/mysql -- Looking for Oracle -- Oracle not found. -- Oracle: You can specify includes: -DORACLE_PATH_INCLUDES=/usr/include/oracle/10.2.0.3/client -- currently found includes: -- Oracle: You can specify libs: -DORACLE_PATH_LIB=/usr/lib/oracle/10.2.0.3/client/lib -- currently found libs: ORACLE_LIBRARY_OCCI-NOTFOUND;ORACLE_LIBRARY_CLNTSH-NOTFOUND;ORACLE_LIBRARY_LNNZ-NOTFOUND -- Oracle not found. Switching off oracle option -- Looking for ODBC -- ODBC not found. Switching off odbc option -- Looking for PostgreSQL -- Could NOT find PostgreSQL (missing: POSTGRESQL_INCLUDE_DIR POSTGRESQL_LIBRARY) -- PostgreSQL not found. Switching off pgsql option -- Looking for SQLite -- Found PkgConfig: /usr/bin/pkg-config (found version "0.28") -- Found Sqlite: /home/pierre/anaconda3/include -- Looking for Pythia6 -- Pythia6 not found. Switching off pythia6 option -- Looking for Pythia8 -- Could NOT find Pythia8 (missing: PYTHIA8_INCLUDE_DIR PYTHIA8_LIBRARY) -- Pythia8 not found. Switching off pythia8 option -- Looking for FFTW3 -- Found fftw3 includes at /usr/include -- Found fftw3 library at /usr/lib64/libfftw3.so -- Looking for CFITSIO -- Could NOT find CFITSIO (missing: CFITSIO_INCLUDE_DIR CFITSIO_LIBRARY) -- CFITSIO not found. You can enable the option 'builtin_cfitsio' to build the library internally' -- For the time being switching off 'fitsio' option -- Alien API not found. Set variable ALIEN_DIR to point to your Alien installation -- For the time being switching OFF 'alien' option -- Monalisa not found. Set variable MONALISA_DIR to point to your Monalisa installation -- For the time being switching OFF 'monalisa' option -- Looking for XROOTD -- XROOTD not found. Set environment variable XRDSYS to point to your XROOTD installation -- Alternatively, you can also enable the option 'builtin_xrootd' to build XROOTD internally' -- For the time being switching OFF 'xrootd' option -- Could NOT find GFAL (missing: GFAL_INCLUDE_DIR SRM_IFCE_INCLUDE_DIR GFAL_LIBRARIES) -- GFAL library not found. Set variable GFAL_DIR to point to your gfal installation and the variable SRM_IFCE_DIR to the srm_ifce installation -- For the time being switching OFF 'gfal' option -- Could NOT find DCAP (missing: DCAP_INCLUDE_DIR DCAP_LIBRARY) -- dCap library not found. Set variable DCAP_DIR to point to your dCache installation -- For the time being switching OFF 'dcache' option -- Found LDAP: /usr/include -- Could NOT find CHIRP (missing: CHIRP_INCLUDE_DIR CHIRP_LIBRARY) -- chirp library not found. Set variable CHIRP_DIR to point to your chirp installation -- For the time being switching OFF 'chirp' option -- Could NOT find HDFS (missing: HDFS_INCLUDE_DIR HDFS_LIBRARY) -- hdfs library not found. Set variable HDFS_DIR to point to your hdfs installation -- For the time being switching OFF 'hdfs' option -- Looking for DAVIX -- Could NOT find DAVIX (missing: DAVIX_INCLUDE_DIRS DAVIX_LIBRARIES) -- Davix not found. You can enable the option 'builtin_davix' to build the library internally' -- For the time being switching off 'davix' option -- >>> Option 'glite' not implemented yet! Signal your urgency to pere.mato@cern.ch -- >>> Option 'sapdb' not implemented yet! Signal your urgency to pere.mato@cern.ch -- >>> Option 'srp' not implemented yet! Signal your urgency to pere.mato@cern.ch -- Enabled support for: asimage astiff bonjour builtin_afterimage builtin_ftgl builtin_glew builtin_llvm cxx11 cling exceptions explicitlink fftw3 fortran gviz genvector krb5 ldap mathmore memstat mysql opengl pch python shadowpw shared sqlite ssl thread tmva vdt xft xml x11 -- Target triple: x86_64-unknown-linux-gnu -- Native target architecture is X86 -- Threads disabled. -- Doxygen disabled. -- Sphinx disabled. -- Go bindings enabled. -- Could NOT find OCaml (missing: OCAMLFIND OCAML_VERSION OCAML_STDLIB_PATH) -- Could NOT find OCaml (missing: OCAMLFIND OCAML_VERSION OCAML_STDLIB_PATH) -- OCaml bindings disabled. -- Building with -fPIC -- Constructing LLVMBuild project information -- Targeting X86 -- Clang version: 3.7.0 -- Performing Test CXX_HAS_fno_rtti -- Performing Test CXX_HAS_fno_rtti - Success -- Performing Test found_stdstringview -- Performing Test found_stdstringview - Failed -- Performing Test found_stdexpstringview -- Performing Test found_stdexpstringview - Failed Running /home/pierre/cern/root-6.06.02/build/unix/compiledata.sh Making include/compiledata.h -- Configuring done -- Generating done

Yes, there is a problem with the module PyMVA and Python3. There is a JIRA ticket and we are going to solve it asap. Meanwhile if you do not need TMVA you could disable it with -Dtvma=OFF or if you really need it, you could add -k to the make command to keep going.

Thank you very much for the quick answer.
What about the other errors in cmake ?

These are not errors. If found_stdstringview fails (because the used compiler does not support it) there are workarounds already in the code. The same thing for OCaml. If some external library is missing the code tries to cope with it.

Thank you again