Configure pmml error

environment:
CentOS-7.6 x64
SALOME-9.9.0-CO7-SRC

./sat/sat -t compile SALOME-9.9.0

The prompt error is as follows, what is the reason? thanks.

Compilation of EFICAS ........................ Already installed
Compilation of pmml .......................... CONFIGURE  build_dir   = /root/SALOME-9.9.0-CO7-SRC/BUILD/pmml
  install_dir = /root/SALOME-9.9.0-CO7-SRC/INSTALL/pmml

> cmake  -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/root/SALOME-9.9.0-CO7-SRC/INSTALL/pmml /root/SALOME-9.9.0-CO7-SRC/SOURCES/pmml
-- The C compiler identification is GNU 7.3.1
-- The CXX compiler identification is GNU 7.3.1
-- Check for working C compiler: /opt/rh/devtoolset-7/root/usr/bin/cc
-- Check for working C compiler: /opt/rh/devtoolset-7/root/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: /opt/rh/devtoolset-7/root/usr/bin/c++
-- Check for working CXX compiler: /opt/rh/devtoolset-7/root/usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Performing Test COMPILER_SUPPORTS_NO_OPERATOR_NAMES
-- Performing Test COMPILER_SUPPORTS_NO_OPERATOR_NAMES - Success
-- Setting C++ standard to 11
-- LibXml2 found directory matches what was specified in the LIBXML2_ROOT_DIR variable, all good!
-- Setting PYTHONINTERP_ROOT_DIR to: /root/SALOME-9.9.0-CO7-SRC/INSTALL/Python
-- Setting PYTHONLIBS_ROOT_DIR to: /root/SALOME-9.9.0-CO7-SRC/INSTALL/Python
-- Python libs and interpreter versions are matching: 3.6.5
-- NumPy found : /root/SALOME-9.9.0-CO7-SRC/INSTALL/Python/lib/python3.6/site-packages/numpy/core/include
-- Scipy found : Version 1.4.1
-- SWIG found directory matches what was specified in the SWIG_ROOT_DIR variable, all good!
-- Checking for one of the modules 'cppunit'
CPPUNIT is not found via pgk-config, try to find cppunit-config executable ...
CMake Error at /root/SALOME-9.9.0-CO7-SRC/SOURCES/CONFIGURATION/cmake/FindCppUnit.cmake:71 (MESSAGE):
  Error in CPPUNIT detection ! cppunit-config executable not found !
Call Stack (most recent call first):
  /root/SALOME-9.9.0-CO7-SRC/SOURCES/CONFIGURATION/cmake/SalomeMacros.cmake:450 (FIND_PACKAGE)
  /root/SALOME-9.9.0-CO7-SRC/SOURCES/CONFIGURATION/cmake/SalomeMacros.cmake:551 (SALOME_FIND_PACKAGE)
  /root/SALOME-9.9.0-CO7-SRC/SOURCES/CONFIGURATION/cmake/FindSalomeCppUnit.cmake:27 (SALOME_FIND_PACKAGE_AND_DETECT_CONFLICTS)
  SalomeCMakeLists.txt:86 (FIND_PACKAGE)
  CMakeLists.txt:28 (INCLUDE)


-- Configuring incomplete, errors occurred!
See also "/root/SALOME-9.9.0-CO7-SRC/BUILD/pmml/CMakeFiles/CMakeOutput.log".
Compilation of pmml .......................... KO CONFIGURE
Compilation of YACS .......................... ERROR : the following mandatory product(s) is(are) not installed: pmml
Compilation of scipy ......................... Already installed
Compilation of ADAO .......................... ERROR : the following mandatory product(s) is(are) not installed: YACS pmml
Compilation of numpydoc ...................... Already installed
Compilation of PY2CPP ........................ Already installed
Compilation of YDEFX ......................... ERROR : the following mandatory product(s) is(are) not installed: YACS pmml
Compilation of PERSALYS ...................... ERROR : the following mandatory product(s) is(are) not installed: ADAO YACS pmml YDEFX
Compilation of MeshGems ...................... Already installed
Compilation of opencv ........................ Already installed
Compilation of tcl ........................... Already installed
Compilation of tk ............................ Already installed
Compilation of ADAO_INTERFACE ................ ERROR : the following mandatory product(s) is(are) not installed: ADAO YACS pmml

thanks for reporting about the issue. Indeed in the PMML build dependencies, we are missing cppunit.
To resolve the issue in file SALOME-9.9.0-CO7-SRC/PROJECT/products/pmml.pyconf, add
'cppunit' to the build_depend items in section default

build_depend :
[
  'cmake'
  'swig'
  'doxygen'
  'cppunit'
]

Let us know if this resolves the reported issue.

Thanks,after adding ‘cppunit’ to build_depend, pmml compiles passed. encountered C3PO compilation error at the end. comment the ctest part of products/compil_scripts/C3PO.sh, and the compiles passed.
C3PO error is as follows:

Executing the compile commands in the build directories of the products of the application SALOME-9.9.0
  SOURCE directory = /root/SALOME-9.9.0-CO7-SRC/SOURCES
   BUILD directory = /root/SALOME-9.9.0-CO7-SRC/BUILD

Compilation of C3PO .......................... SCRIPT /root/SALOME-9.9.0-CO7-SRC/PROJECT/products/compil_scripts/C3PO.sh  build_dir   = /root/SALOME-9.9.0-CO7-SRC/BUILD/C3PO
  install_dir = /root/SALOME-9.9.0-CO7-SRC/INSTALL/C3PO

>   Run build script /root/SALOME-9.9.0-CO7-SRC/PROJECT/products/compil_scripts/C3PO.sh

##########################################################################
C3PO v2.0
##########################################################################
INFO: remove env.sh if present...
INFO: remove runAllTests.sh if present...

*** build and install with /root/SALOME-9.9.0-CO7-SRC/INSTALL/Python/bin/python3 sources/setup.py install --prefix=/root/SALOME-9.9.0-CO7-SRC/INSTALL/C3PO
Searching for numpy>=1.9
Best match: numpy 1.16.4
Searching for mpi4py>=1.3
Best match: mpi4py 3.0.3
/root/SALOME-9.9.0-CO7-SRC/INSTALL/Python/lib/python3.6/distutils/dist.py:245: UserWarning: 'licence' distribution option is deprecated; use 'license'
  warnings.warn(msg)
running build
running build_py
creating build
creating build/lib
creating build/lib/c3po
copying c3po/CollaborativeExchanger.py -> build/lib/c3po
copying c3po/Coupler.py -> build/lib/c3po
copying c3po/Exchanger.py -> build/lib/c3po
copying c3po/__init__.py -> build/lib/c3po
copying c3po/LocalExchanger.py -> build/lib/c3po
copying c3po/PhysicsDriver.py -> build/lib/c3po
copying c3po/TimeAccumulator.py -> build/lib/c3po
copying c3po/CollaborativeDataManager.py -> build/lib/c3po
copying c3po/DataManager.py -> build/lib/c3po
copying c3po/DataAccessor.py -> build/lib/c3po
copying c3po/LocalDataManager.py -> build/lib/c3po
creating build/lib/c3po/medcouplingCompat
copying c3po/medcouplingCompat/__init__.py -> build/lib/c3po/medcouplingCompat
creating build/lib/c3po/physicsDrivers
copying c3po/physicsDrivers/TRUSTDriver.py -> build/lib/c3po/physicsDrivers
copying c3po/physicsDrivers/CRONOS2Driver.py -> build/lib/c3po/physicsDrivers
copying c3po/physicsDrivers/APOLLO3Driver.py -> build/lib/c3po/physicsDrivers
copying c3po/physicsDrivers/__init__.py -> build/lib/c3po/physicsDrivers
copying c3po/physicsDrivers/THEDIDriver.py -> build/lib/c3po/physicsDrivers
copying c3po/physicsDrivers/FLICA4Driver.py -> build/lib/c3po/physicsDrivers
copying c3po/physicsDrivers/CATHARE3Driver.py -> build/lib/c3po/physicsDrivers
copying c3po/physicsDrivers/ALCYONE2Driver.py -> build/lib/c3po/physicsDrivers
creating build/lib/c3po/exchangeMethods
copying c3po/exchangeMethods/SharedRemappingMulti1D3D.py -> build/lib/c3po/exchangeMethods
copying c3po/exchangeMethods/ExchangeMethod.py -> build/lib/c3po/exchangeMethods
copying c3po/exchangeMethods/DirectMatching.py -> build/lib/c3po/exchangeMethods
copying c3po/exchangeMethods/__init__.py -> build/lib/c3po/exchangeMethods
copying c3po/exchangeMethods/SharedRemapping.py -> build/lib/c3po/exchangeMethods
creating build/lib/c3po/services
copying c3po/services/ListingWriter.py -> build/lib/c3po/services
copying c3po/services/__init__.py -> build/lib/c3po/services
copying c3po/services/nameChanger.py -> build/lib/c3po/services
copying c3po/services/tracer.py -> build/lib/c3po/services
creating build/lib/c3po/couplers
copying c3po/couplers/__init__.py -> build/lib/c3po/couplers
copying c3po/couplers/AndersonCoupler.py -> build/lib/c3po/couplers
copying c3po/couplers/JFNKCoupler.py -> build/lib/c3po/couplers
copying c3po/couplers/FixedPointCoupler.py -> build/lib/c3po/couplers
creating build/lib/c3po/mpi
copying c3po/mpi/MPIWorker.py -> build/lib/c3po/mpi
copying c3po/mpi/MPICollaborativeDataManager.py -> build/lib/c3po/mpi
copying c3po/mpi/MPIRemoteProcess.py -> build/lib/c3po/mpi
copying c3po/mpi/MPICollectiveDataManager.py -> build/lib/c3po/mpi
copying c3po/mpi/MPITag.py -> build/lib/c3po/mpi
copying c3po/mpi/MPIMasterExchanger.py -> build/lib/c3po/mpi
copying c3po/mpi/MPIMasterPhysicsDriver.py -> build/lib/c3po/mpi
copying c3po/mpi/MPICollectiveProcess.py -> build/lib/c3po/mpi
copying c3po/mpi/__init__.py -> build/lib/c3po/mpi
copying c3po/mpi/MPISender.py -> build/lib/c3po/mpi
copying c3po/mpi/MPIMasterDataManager.py -> build/lib/c3po/mpi
copying c3po/mpi/MPIExchanger.py -> build/lib/c3po/mpi
copying c3po/mpi/MPICoupler.py -> build/lib/c3po/mpi
copying c3po/mpi/MPIRecipient.py -> build/lib/c3po/mpi
copying c3po/VERSION -> build/lib/c3po
Searching for numpy>=1.9
Best match: numpy 1.16.4
Searching for mpi4py>=1.3
Best match: mpi4py 3.0.3
/root/SALOME-9.9.0-CO7-SRC/INSTALL/Python/lib/python3.6/distutils/dist.py:245: UserWarning: 'licence' distribution option is deprecated; use 'license'
  warnings.warn(msg)
running install
running bdist_egg
running egg_info
creating c3po.egg-info
writing c3po.egg-info/PKG-INFO
writing dependency_links to c3po.egg-info/dependency_links.txt
writing requirements to c3po.egg-info/requires.txt
writing top-level names to c3po.egg-info/top_level.txt
writing manifest file 'c3po.egg-info/SOURCES.txt'
reading manifest file 'c3po.egg-info/SOURCES.txt'
writing manifest file 'c3po.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
creating build/bdist.linux-x86_64
creating build/bdist.linux-x86_64/egg
creating build/bdist.linux-x86_64/egg/c3po
copying build/lib/c3po/CollaborativeExchanger.py -> build/bdist.linux-x86_64/egg/c3po
copying build/lib/c3po/Coupler.py -> build/bdist.linux-x86_64/egg/c3po
copying build/lib/c3po/Exchanger.py -> build/bdist.linux-x86_64/egg/c3po
copying build/lib/c3po/__init__.py -> build/bdist.linux-x86_64/egg/c3po
copying build/lib/c3po/LocalExchanger.py -> build/bdist.linux-x86_64/egg/c3po
copying build/lib/c3po/PhysicsDriver.py -> build/bdist.linux-x86_64/egg/c3po
copying build/lib/c3po/TimeAccumulator.py -> build/bdist.linux-x86_64/egg/c3po
copying build/lib/c3po/CollaborativeDataManager.py -> build/bdist.linux-x86_64/egg/c3po
copying build/lib/c3po/DataManager.py -> build/bdist.linux-x86_64/egg/c3po
copying build/lib/c3po/DataAccessor.py -> build/bdist.linux-x86_64/egg/c3po
copying build/lib/c3po/LocalDataManager.py -> build/bdist.linux-x86_64/egg/c3po
creating build/bdist.linux-x86_64/egg/c3po/medcouplingCompat
copying build/lib/c3po/medcouplingCompat/__init__.py -> build/bdist.linux-x86_64/egg/c3po/medcouplingCompat
creating build/bdist.linux-x86_64/egg/c3po/physicsDrivers
copying build/lib/c3po/physicsDrivers/TRUSTDriver.py -> build/bdist.linux-x86_64/egg/c3po/physicsDrivers
copying build/lib/c3po/physicsDrivers/CRONOS2Driver.py -> build/bdist.linux-x86_64/egg/c3po/physicsDrivers
copying build/lib/c3po/physicsDrivers/APOLLO3Driver.py -> build/bdist.linux-x86_64/egg/c3po/physicsDrivers
copying build/lib/c3po/physicsDrivers/__init__.py -> build/bdist.linux-x86_64/egg/c3po/physicsDrivers
copying build/lib/c3po/physicsDrivers/THEDIDriver.py -> build/bdist.linux-x86_64/egg/c3po/physicsDrivers
copying build/lib/c3po/physicsDrivers/FLICA4Driver.py -> build/bdist.linux-x86_64/egg/c3po/physicsDrivers
copying build/lib/c3po/physicsDrivers/CATHARE3Driver.py -> build/bdist.linux-x86_64/egg/c3po/physicsDrivers
copying build/lib/c3po/physicsDrivers/ALCYONE2Driver.py -> build/bdist.linux-x86_64/egg/c3po/physicsDrivers
creating build/bdist.linux-x86_64/egg/c3po/exchangeMethods
copying build/lib/c3po/exchangeMethods/SharedRemappingMulti1D3D.py -> build/bdist.linux-x86_64/egg/c3po/exchangeMethods
copying build/lib/c3po/exchangeMethods/ExchangeMethod.py -> build/bdist.linux-x86_64/egg/c3po/exchangeMethods
copying build/lib/c3po/exchangeMethods/DirectMatching.py -> build/bdist.linux-x86_64/egg/c3po/exchangeMethods
copying build/lib/c3po/exchangeMethods/__init__.py -> build/bdist.linux-x86_64/egg/c3po/exchangeMethods
copying build/lib/c3po/exchangeMethods/SharedRemapping.py -> build/bdist.linux-x86_64/egg/c3po/exchangeMethods
creating build/bdist.linux-x86_64/egg/c3po/services
copying build/lib/c3po/services/ListingWriter.py -> build/bdist.linux-x86_64/egg/c3po/services
copying build/lib/c3po/services/__init__.py -> build/bdist.linux-x86_64/egg/c3po/services
copying build/lib/c3po/services/nameChanger.py -> build/bdist.linux-x86_64/egg/c3po/services
copying build/lib/c3po/services/tracer.py -> build/bdist.linux-x86_64/egg/c3po/services
creating build/bdist.linux-x86_64/egg/c3po/couplers
copying build/lib/c3po/couplers/__init__.py -> build/bdist.linux-x86_64/egg/c3po/couplers
copying build/lib/c3po/couplers/AndersonCoupler.py -> build/bdist.linux-x86_64/egg/c3po/couplers
copying build/lib/c3po/couplers/JFNKCoupler.py -> build/bdist.linux-x86_64/egg/c3po/couplers
copying build/lib/c3po/couplers/FixedPointCoupler.py -> build/bdist.linux-x86_64/egg/c3po/couplers
creating build/bdist.linux-x86_64/egg/c3po/mpi
copying build/lib/c3po/mpi/MPIWorker.py -> build/bdist.linux-x86_64/egg/c3po/mpi
copying build/lib/c3po/mpi/MPICollaborativeDataManager.py -> build/bdist.linux-x86_64/egg/c3po/mpi
copying build/lib/c3po/mpi/MPIRemoteProcess.py -> build/bdist.linux-x86_64/egg/c3po/mpi
copying build/lib/c3po/mpi/MPICollectiveDataManager.py -> build/bdist.linux-x86_64/egg/c3po/mpi
copying build/lib/c3po/mpi/MPITag.py -> build/bdist.linux-x86_64/egg/c3po/mpi
copying build/lib/c3po/mpi/MPIMasterExchanger.py -> build/bdist.linux-x86_64/egg/c3po/mpi
copying build/lib/c3po/mpi/MPIMasterPhysicsDriver.py -> build/bdist.linux-x86_64/egg/c3po/mpi
copying build/lib/c3po/mpi/MPICollectiveProcess.py -> build/bdist.linux-x86_64/egg/c3po/mpi
copying build/lib/c3po/mpi/__init__.py -> build/bdist.linux-x86_64/egg/c3po/mpi
copying build/lib/c3po/mpi/MPISender.py -> build/bdist.linux-x86_64/egg/c3po/mpi
copying build/lib/c3po/mpi/MPIMasterDataManager.py -> build/bdist.linux-x86_64/egg/c3po/mpi
copying build/lib/c3po/mpi/MPIExchanger.py -> build/bdist.linux-x86_64/egg/c3po/mpi
copying build/lib/c3po/mpi/MPICoupler.py -> build/bdist.linux-x86_64/egg/c3po/mpi
copying build/lib/c3po/mpi/MPIRecipient.py -> build/bdist.linux-x86_64/egg/c3po/mpi
copying build/lib/c3po/VERSION -> build/bdist.linux-x86_64/egg/c3po
byte-compiling build/bdist.linux-x86_64/egg/c3po/CollaborativeExchanger.py to CollaborativeExchanger.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/Coupler.py to Coupler.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/Exchanger.py to Exchanger.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/__init__.py to __init__.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/LocalExchanger.py to LocalExchanger.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/PhysicsDriver.py to PhysicsDriver.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/TimeAccumulator.py to TimeAccumulator.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/CollaborativeDataManager.py to CollaborativeDataManager.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/DataManager.py to DataManager.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/DataAccessor.py to DataAccessor.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/LocalDataManager.py to LocalDataManager.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/medcouplingCompat/__init__.py to __init__.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/physicsDrivers/TRUSTDriver.py to TRUSTDriver.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/physicsDrivers/CRONOS2Driver.py to CRONOS2Driver.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/physicsDrivers/APOLLO3Driver.py to APOLLO3Driver.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/physicsDrivers/__init__.py to __init__.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/physicsDrivers/THEDIDriver.py to THEDIDriver.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/physicsDrivers/FLICA4Driver.py to FLICA4Driver.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/physicsDrivers/CATHARE3Driver.py to CATHARE3Driver.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/physicsDrivers/ALCYONE2Driver.py to ALCYONE2Driver.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/exchangeMethods/SharedRemappingMulti1D3D.py to SharedRemappingMulti1D3D.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/exchangeMethods/ExchangeMethod.py to ExchangeMethod.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/exchangeMethods/DirectMatching.py to DirectMatching.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/exchangeMethods/__init__.py to __init__.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/exchangeMethods/SharedRemapping.py to SharedRemapping.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/services/ListingWriter.py to ListingWriter.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/services/__init__.py to __init__.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/services/nameChanger.py to nameChanger.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/services/tracer.py to tracer.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/couplers/__init__.py to __init__.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/couplers/AndersonCoupler.py to AndersonCoupler.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/couplers/JFNKCoupler.py to JFNKCoupler.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/couplers/FixedPointCoupler.py to FixedPointCoupler.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/mpi/MPIWorker.py to MPIWorker.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/mpi/MPICollaborativeDataManager.py to MPICollaborativeDataManager.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/mpi/MPIRemoteProcess.py to MPIRemoteProcess.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/mpi/MPICollectiveDataManager.py to MPICollectiveDataManager.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/mpi/MPITag.py to MPITag.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/mpi/MPIMasterExchanger.py to MPIMasterExchanger.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/mpi/MPIMasterPhysicsDriver.py to MPIMasterPhysicsDriver.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/mpi/MPICollectiveProcess.py to MPICollectiveProcess.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/mpi/__init__.py to __init__.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/mpi/MPISender.py to MPISender.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/mpi/MPIMasterDataManager.py to MPIMasterDataManager.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/mpi/MPIExchanger.py to MPIExchanger.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/mpi/MPICoupler.py to MPICoupler.cpython-36.pyc
byte-compiling build/bdist.linux-x86_64/egg/c3po/mpi/MPIRecipient.py to MPIRecipient.cpython-36.pyc
creating build/bdist.linux-x86_64/egg/EGG-INFO
copying c3po.egg-info/PKG-INFO -> build/bdist.linux-x86_64/egg/EGG-INFO
copying c3po.egg-info/SOURCES.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying c3po.egg-info/dependency_links.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying c3po.egg-info/requires.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
copying c3po.egg-info/top_level.txt -> build/bdist.linux-x86_64/egg/EGG-INFO
zip_safe flag not set; analyzing archive contents...
c3po.__pycache__.__init__.cpython-36: module references __file__
creating dist
creating 'dist/c3po-2.0-py3.6.egg' and adding 'build/bdist.linux-x86_64/egg' to it
removing 'build/bdist.linux-x86_64/egg' (and everything under it)
Creating /root/SALOME-9.9.0-CO7-SRC/INSTALL/C3PO/lib/python3.6/site-packages/site.py
Processing c3po-2.0-py3.6.egg
creating /root/SALOME-9.9.0-CO7-SRC/INSTALL/C3PO/lib/python3.6/site-packages/c3po-2.0-py3.6.egg
Extracting c3po-2.0-py3.6.egg to /root/SALOME-9.9.0-CO7-SRC/INSTALL/C3PO/lib/python3.6/site-packages
Adding c3po 2.0 to easy-install.pth file

Installed /root/SALOME-9.9.0-CO7-SRC/INSTALL/C3PO/lib/python3.6/site-packages/c3po-2.0-py3.6.egg
Processing dependencies for c3po==2.0
Searching for mpi4py==3.0.3
Best match: mpi4py 3.0.3
Adding mpi4py 3.0.3 to easy-install.pth file

Using /root/SALOME-9.9.0-CO7-SRC/INSTALL/Python/lib/python3.6/site-packages
Searching for numpy==1.16.4
Best match: numpy 1.16.4
Adding numpy 1.16.4 to easy-install.pth file
Installing f2py script to /root/SALOME-9.9.0-CO7-SRC/INSTALL/C3PO/bin
Installing f2py3 script to /root/SALOME-9.9.0-CO7-SRC/INSTALL/C3PO/bin
Installing f2py3.6 script to /root/SALOME-9.9.0-CO7-SRC/INSTALL/C3PO/bin

Using /root/SALOME-9.9.0-CO7-SRC/INSTALL/Python/lib/python3.6/site-packages
Finished processing dependencies for c3po==2.0
Test project /root/SALOME-9.9.0-CO7-SRC/BUILD/C3PO
    Start 1: Dussaix_seq
1/7 Test #1: Dussaix_seq ......................   Passed    0.32 sec
    Start 2: Dussaix_master_worker
2/7 Test #2: Dussaix_master_worker ............***Failed    0.00 sec
    Start 3: Dussaix_collaborative
3/7 Test #3: Dussaix_collaborative ............***Failed    0.00 sec
    Start 4: Listings
4/7 Test #4: Listings .........................   Passed    0.20 sec
    Start 5: Listings_collaboratif
5/7 Test #5: Listings_collaboratif ............***Failed    0.00 sec
    Start 6: Matrix
6/7 Test #6: Matrix ...........................   Passed    0.18 sec
    Start 7: Scalar_linear
7/7 Test #7: Scalar_linear ....................   Passed    0.17 sec

57% tests passed, 3 tests failed out of 7

Total Test time (real) =   0.90 sec

The following tests FAILED:
	  2 - Dussaix_master_worker (Failed)
	  3 - Dussaix_collaborative (Failed)
	  5 - Listings_collaboratif (Failed)
Errors while running CTest
ERROR on ctest
Compilation of C3PO .......................... KO

Compilation: KO (0/1)

can you upload file:

/root/SALOME-9.9.0-CO7-SRC/BUILD/C3PO/Testing/Temporary/LastTest.log

Thanks,requires a non-root user to run.

2/7 Testing: Dussaix_master_worker
2/7 Test: Dussaix_master_worker
Command: "/root/SALOME-9.9.0-CO7-SRC/INSTALL/openmpi/bin/mpirun" "-np" "1" "python3" "main_master.py" ":" "-np" "1" "python3" "main_workerThermo.py" ":" "-np" "1" "python3" "main_workerNeutro.py"
Directory: /root/SALOME-9.9.0-CO7-SRC/BUILD/C3PO/tests/Couplage_2_mailles_Dussaix
"Dussaix_master_worker" start time: Sep 14 09:47 CST
Output:
----------------------------------------------------------
--------------------------------------------------------------------------
mpirun has detected an attempt to run as root.

Running as root is *strongly* discouraged as any mistake (e.g., in
defining TMPDIR) or bug can result in catastrophic damage to the OS
file system, leaving your system in an unusable state.

We strongly suggest that you run mpirun as a non-root user.

You can override this protection by adding the --allow-run-as-root
option to your command line.  However, we reiterate our strong advice
against doing so - please do so at your own risk.
--------------------------------------------------------------------------
<end of output>
Test time =   0.00 sec
----------------------------------------------------------
Test Failed.
"Dussaix_master_worker" end time: Sep 14 09:47 CST
"Dussaix_master_worker" time elapsed: 00:00:00
----------------------------------------------------------

Are you running inside a docker?
here is what you can do to move forward: edit File PROJECT/products/compil_scripts/C3PO.sh
Then two solutions

  • either you comment out exit 5 command line
  • or you add the allow-run-as-root option (which, sadly, cannot be passed as an environment variable)

If you use this second approach, you need to change:

cd $BUILD_DIR
if [ -n "$MPI_ROOT_DIR" ]; then
    ctest .
else
    # these tests use MPI...
    ctest -E "Dussaix_seq|Dussaix_master_worker|Dussaix_collaborative|Listings_collaboratif"
fi

with:

cd $BUILD_DIR
if [ -n "$MPI_ROOT_DIR" ]; then
    # Ensure tests will not fail if user is root
    find . -type f -print0 |xargs -0 grep mpirun |cut -d ':' -f1|xargs sed  -i 's/mpirun /mpirun --allow-run-as-root /g' 
    ctest .
else
    # these tests use MPI...
    ctest -E "Dussaix_seq|Dussaix_master_worker|Dussaix_collaborative|Listings_collaboratif"
fi

You might hit the same issue for other products, e.g. TopIIVolMesh, MEDCOUPLING, etc…

Assuming you’re running a docker, I strongly suggest to map uid/gid. You can check how to achieve this by looking at this discussion
One could also think about compiling again openmpi which is shipped with SALOME or patching the
INSTALL/openmpi/bin/mpirun and INSTALL/openmpi/bin/mpiexec but it’s not an optimal solution.

HTH

thanks,run in virtual machine,add the allow-run-as-root option, the ctest passes.
Yes, TopIIVolMesh also has mpirun root permission issue, I use openmpi-4.x, add MPI environment variable.
export OMPI_ALLOW_RUN_AS_ROOT=1
export OMPI_ALLOW_RUN_AS_ROOT_CONFIRM=1

Hello, could you tell me about the immediate benefits of compiling SALOME from source VS running the the precombiled binaries for a specific distribution?