Compiling ERROR - I do not know what package is missing in Ubuntu 20.04

I’ve got this error when compiling in Ubuntu 20.04 ARM64 (VMware in Mac)

INSTALL directory = /home/parallels/SALOME-9.9.0-native-UB20.04-SRC/INSTALL/petsc
Compilation of SOLVERLAB ..................... ERROR : the following mandatory product(s) is(are) not installed: medfile ParaView ospray embree openVKL rkCommon openturns nlopt FMILibrary PyFMI netcdf KERNEL omniORB omniORBpy GUI MEDCOUPLING scotch 
Compilation of OPENTURNS_SALOME .............. ERROR : the following mandatory product(s) is(are) not installed: KERNEL omniORB omniORBpy GUI ParaView ospray embree openVKL rkCommon openturns nlopt FMILibrary PyFMI netcdf PERSALYS ADAO EFICAS EFICAS_TOOLS YACS pmml YDEFX PY2CPP 
Compilation of PARAVISADDONS ................. ERROR : the following mandatory product(s) is(are) not installed: KERNEL omniORB omniORBpy GUI ParaView ospray embree openVKL rkCommon openturns nlopt FMILibrary PyFMI netcdf MEDCOUPLING medfile scotch PARAVIS FIELDS GEOM SMESH SHAPERSTUDY SHAPER TopIIVolMesh 
Compilation of zeromq ........................ ERROR : the following mandatory product(s) is(are) not installed: nlopt netcdf 
Compilation of CALCULATOR .................... ERROR : the following mandatory product(s) is(are) not installed: KERNEL omniORB omniORBpy MEDCOUPLING medfile scotch FIELDS GUI ParaView ospray embree openVKL rkCommon openturns nlopt FMILibrary PyFMI netcdf 
Compilation of PYCALCULATOR .................. ERROR : the following mandatory product(s) is(are) not installed: KERNEL omniORB omniORBpy MEDCOUPLING medfile scotch FIELDS GUI ParaView ospray embree openVKL rkCommon openturns nlopt FMILibrary PyFMI netcdf 
Compilation of StaticMeshPlugin .............. ERROR : the following mandatory product(s) is(are) not installed: KERNEL omniORB omniORBpy GUI ParaView ospray embree openVKL rkCommon openturns nlopt FMILibrary PyFMI netcdf MEDCOUPLING medfile scotch PARAVIS FIELDS GEOM SMESH SHAPERSTUDY SHAPER TopIIVolMesh

I can not install those packages in Ubuntu. They are not listed.
But omniORB I found, and installed everything, but it still does not find it.

With check everything is OK.

parallels@ubuntu-linux-20-04-desktop:~/SALOME-9.9.0-native-UB20.04-SRC/sat$ ./sat config SALOME-9.9.0-native --check_system

Check the system dependencies declared in the application

   - python3-babel : OK
   - python3-pytest-cython : OK
   - python3-jinja2 : OK
   - python3-pil : OK
   - python3-pyqt5 : OK
   - pyqt5-dev : OK
   - pyqt5-dev-tools : OK
   - python3-pygments : OK
   - python3-sphinx : OK
   - python3-alabaster : OK
   - libboost-all-dev : OK
   - python3-certifi : OK
   - python3-chardet : OK
   - python3-click : OK
   - cmake : OK
   - libcminpack1 : OK
   - libcminpack-dev : OK
   - libcppunit-dev : OK
   - python3-cycler : OK
   - python3-dateutil : OK
   - python3-docutils : OK
   - doxygen : OK
   - libeigen3-dev : OK
   - fftw : OK
   - fftw-dev : OK
   - libfreeimage3 : OK
   - libfreeimage-dev : OK
   - libfreetype6 : OK
   - libfreetype6-dev : OK
   - graphviz : OK
   - libgraphviz-dev : OK
   - python3-idna : OK
   - python3-imagesize : OK
   - python3-kiwisolver : OK
   - liblapack3 : OK
   - liblapack-dev : OK
   - libxml2 : OK
   - libxml2-dev : OK
   - clang : OK
   - llvm-dev : OK
   - python3-markupsafe : OK
   - python3-matplotlib : OK
   - libmetis5 : OK
   - libmetis-dev : OK
   - python3-mpi4py : OK
   - python3-nose : OK
   - python3-numpy : OK
   - python3-numpydoc : OK
   - python3-packaging : OK
   - python3-pandas : OK
   - python3-psutil : OK
   - python3-pyparsing : OK
   - readline-common : OK
   - python3-tz : OK
   - libqwt-qt5-6 : OK
   - libqwt-qt5-dev : OK
   - python3-requests : OK
   - libbsd0 : OK
   - libbz2-1.0 : OK
   - libc6 : OK
   - libdrm2 : OK
   - libegl1 : OK
   - libexif12 : OK
   - libexpat1 : OK
   - libfftw3-double3 : OK
   - libfontconfig1 : OK
   - libgl1 : OK
   - libglu1-mesa : OK
   - libgomp1 : OK
   - libgphoto2-6 : OK
   - libice6 : OK
   - libjbig0 : OK
   - libltdl7 : OK
   - liblzma5 : OK
   - libncurses5 : OK
   - libnuma1 : OK
   - libpcre3 : OK
   - libquadmath0 : OK
   - libraw1394-11 : OK
   - libsm6 : OK
   - libstdc++6 : OK
   - libtiff5 : OK
   - libudev1 : OK
   - libusb-1.0-0 : OK
   - libuuid1 : OK
   - libx11-6 : OK
   - libx11-xcb1 : OK
   - libxau6 : OK
   - libxcb1 : OK
   - libxcb-glx0 : OK
   - libxcb-xfixes0 : OK
   - libxcb-xkb1 : OK
   - libxdmcp6 : OK
   - libxext6 : OK
   - libxft2 : OK
   - libxi6 : OK
   - libxkbcommon0 : OK
   - libxkbcommon-x11-0 : OK
   - libxmu6 : OK
   - libxpm4 : OK
   - libxrender1 : OK
   - libxss1 : OK
   - libxt6 : OK
   - zlib1g : OK
   - libsqlite3 : OK
   - libdc1394-22 : OK
   - libopenexr24 : OK
   - libwebp6 : OK
   - libgfortran5 : OK
   - libilmbase24 : OK
   - libevent-2.1-7 : OK
   - libpng16-16 : OK
   - libgcc-9-dev : OK
   - libffi7 : OK
   - libtinfo6 : OK
   - libgphoto2-port12 : OK
   - libglx0 : OK
   - libopengl0 : OK
   - libzstd1 : OK
   - libglvnd0 : OK
   - openmpi-bin : OK
   - libgdal26 : OK
   - libssl-dev : OK
   - gcc : OK
   - make : OK
   - sed : OK
   - g++ : OK
   - libexpat1-dev : OK
   - libfontconfig1-dev : OK
   - flex : OK
   - bison : OK
   - libglu1-mesa-dev : OK
   - perl : OK
   - libxcb-dri2-0-dev : OK
   - libxkbcommon-dev : OK
   - libxkbcommon-x11-dev : OK
   - bzip2 : OK
   - libxi-dev : OK
   - libxt-dev : OK
   - libxmu-dev : OK
   - libxpm-dev : OK
   - libxft-dev : OK
   - automake : OK
   - libtool : OK
   - libjpeg-dev : OK
   - cmake : OK
   - libicu-dev : OK
   - libopenmpi-dev : OK
   - libreadline-dev : OK
   - libhwloc-dev : OK
   - libsqlite3-dev : OK
   - libcurl4-openssl-dev : OK
   - libtbb-dev : OK
   - cython3 : OK
   - libfftw3-dev : OK
   - libopenblas-dev : OK
   - qttools5-dev : OK
   - libqt5svg5-dev : OK
   - libqt5x11extras5-dev : OK
   - qtxmlpatterns5-dev-tools : OK
   - libpng-dev : OK
   - libtiff5-dev : OK
   - libgeotiff-dev : OK
   - libgif-dev : OK
   - libgeos-dev : OK
   - libgdal-dev : OK
   - python3-scipy : OK
   - python3-setuptools : OK
   - python3-sip : OK
   - python3-sip-dev : OK
   - python3-six : OK
   - python3-stemmer : OK
   - python3-sphinx-rtd-theme : OK
   - python3-sphinxcontrib.websupport : OK
   - sphinx-intl : OK
   - python3-statsmodels : OK
   - python3-statsmodels : OK
   - swig : OK
   - libtbb2 : OK
   - libtbb-dev : OK
   - libtcl : OK
   - tcl-dev : OK
   - libtk : OK
   - tk-dev : OK
   - python3-urllib3 : OK

Does anyone know how to solve it?

Regards,

Guilherme

can you upload the list of installed packages on your UB20 as well as the log files. To do so, run:

apt list --installed > UB20.txt
tar zcf UB20.logs.tar.gz SALOME-9.9.0-native-UB20.04-SRC/LOGS
1 Like

All the files generated by request.

https://u.pcloud.link/publink/show?code=XZxAPTVZi7bSQLGEaVFLEB1qwnO4YLglggsy

https://u.pcloud.link/publink/show?code=XZXNPTVZwL6XQRzO2qmSfzCegLrc7LJsyUr7

in your case, from the log file, it appears that omniORB fails to build since the compilation scripts are not supporting your architecture. You may experience the issue with other products as well.
For omniORB, you can use the packaged distribution, namely: libomniorb4-dev, libomniorb4-2 and omniorb-idl. And change in PROJECT/applications/SALOME-9.9.0-native.pyconf file

        omniORB : '4.2.3'
        omniORBpy : '4.2.3'

to:

        omniORB : 'native'
        omniORBpy : 'native'

But not sure that you will not experience similar issues with other dependencies if these are not supporting your architecture.

Below the error message extracted from your log files. In addition, if you are aiming to compile everything on your own, you can have a look at this discussion: SO-56550851
Regards.

*** configure --prefix=/home/parallels/SALOME-9.9.0-native-UB20.04-SRC/INSTALL/omniORB --disable-ipv6
checking build system type... /home/parallels/SALOME-9.9.0-native-UB20.04-SRC/SOURCES/omniORB/bin/scripts/config.guess: unable to guess system type
UNAME_MACHINE = aarch64
UNAME_RELEASE = 5.15.0-46-generic
UNAME_SYSTEM  = Linux
UNAME_VERSION = #49~20.04.1-Ubuntu SMP Mon Aug 8 18:51:21 UTC 2022
configure: error: cannot guess build type; you must specify one
ERROR on configure

I put everything to 'native' and installed all the ubuntu libraries required by ./sat prepare SALOME-9.9.0-native. Now it is running without errors. Thank you.

However, I still get errors when compiling with ./sat -t compile SALOME-9.9.0-native
For example:

Compilation of ADAO_INTERFACE ................ ERROR : the following mandatory product(s) is(are) not installed: PY2CPP KERNEL ADAO EFICAS GUI EFICAS_TOOLS YACS pmml

I saw there is a page for KERNEL compilation
https://docs.salome-platform.org/8/tui/KERNEL/INSTALL.html#S5_install

I tried to understand, but the language was not clear enough.
The result is that I could not compile the KERNEL and the other modules. I need to compile them because my architecture is ARM 64, which is not usual.

Could you help me to compile the KERNEL and the other modules?

Frankly speaking, it will be quite hard to provide some help, given that I do not have an arm64 at hand (found a docker (arm64v8/ubuntu:20.04) which implements that but it seems to be incompatible with my architecture.
So what error message do you get with KERNEL ?

I just need clear instructions - with PATHS - on how to compile KERNEL properly. The online manual is not clear or precise.

The KERNEL source is available.

OK fine. you can either simply run:
sat/sat compile SALOME-9.9.0-native -p KERNEL --clean_all
and if it fails have a look at LOGS/KERNEL/(c)make(install) files.

You can also do this with following commands if you’re not willing to use SAT based approach. Assuming that you ran install_bin.sh script which brings you to so called developer mode, do:


cd SALOME-9.9.0-native-UB20.04-SRC/

# generate environment script files aimed to setup all products relevant environment variables.
sat/sat environ SALOME-9.9.0-native 

# setup that environment
source ./env_launch.sh

# setup things consistently, create a directory called KERNEL in which cmake will build everything.
mkdir -p BUILD/KERNEL
cd BUILD/KERNEL
cmake -DSALOME_USE_LIBBATCH=ON -DSWIG_EXECUTABLE=${SWIG_ROOT_DIR}/bin/swig -DSALOME_CMAKE_DEBUG=ON -DSALOME_USE_64BIT_IDS=ON  -DCMAKE_INSTALL_PREFIX=$PRODUCT_ROOT_DIR/INSTALL/KERNEL -DCMAKE_BUILD_TYPE:STRING=Release ../SOURCES/KERNEL

# assuming previous command line succeeds, compile
make

# install
make install

HTH - share your experience with other users !

with cmake

parallels@ubuntu-linux-20-04-desktop:~/SALOME-9.9.0-native-UB20.04-SRC/BUILD$ cmake ../SOURCES/KERNEL -DCMAKE_INSTALL_PREFIX=$PRODUCT_ROOT_DIR/INSTALL/KERNEL -DCMAKE_BUILD_TYPE:STRING=Release
-- The C compiler identification is GNU 9.4.0
-- The CXX compiler identification is GNU 9.4.0
-- 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
CMake Error at CMakeLists.txt:36 (MESSAGE):
  We absolutely need the Salome CMake configuration files, please define
  CONFIGURATION_ROOT_DIR !


-- Configuring incomplete, errors occurred!
See also "/home/parallels/SALOME-9.9.0-native-UB20.04-SRC/BUILD/CMakeFiles/CMakeOutput.log".

with sat

parallels@ubuntu-linux-20-04-desktop:~/SALOME-9.9.0-native-UB20.04-SRC$ ./sat/sat compile SALOME-9.9.0-native -p KERNEL --clean_all
Executing the compile commands in the build directories of the products of the application SALOME-9.9.0-native
  SOURCE directory = /home/parallels/SALOME-9.9.0-native-UB20.04-SRC/SOURCES 
   BUILD directory = /home/parallels/SALOME-9.9.0-native-UB20.04-SRC/BUILD 

Compilation of KERNEL ........................ KO CONFIGURE                  

Compilation: KO (0/1)

OK. Such an issue should in principle not occur with latest SALOME version. In your case, before running all the previous commands, you need to prepare the CONFIGURATION package.
So, type:

sat/sat prepare SALOME-9.9.0-native -p CONFIGURATION

this will extract CONFIGURATION package to SOURCES/CONFIGURATION
Regards.

I ran CONFIGURATION, it extracted correctly, but the same error appeared. Nothing changed.

you can check that environment CONFIGURATION_ROOT_DIR is present and points to SALOME-9.9.0-native-UB20.04-SRC/SOURCES/CONFIGURATION. If not, simply set it

export CONFIGURATION_ROOT_DIR=$PRODUCT_ROOT_DIR/SOURCES/CONFIGURATION
echo $CONFIGURATION_ROOT_DIR
# Ensure everything is consistent.

with cmake

> parallels@ubuntu-linux-20-04-desktop:~/SALOME-9.9.0-native-UB20.04-SRC/BUILD$ export CONFIGURATION_ROOT_DIR=~/SALOME-9.9.0-native-UB20.04-SRC/SOURCES/CONFIGURATION
> parallels@ubuntu-linux-20-04-desktop:~/SALOME-9.9.0-native-UB20.04-SRC/BUILD$ cmake ../SOURCES/KERNEL -DCMAKE_INSTALL_PREFIX=~/SALOME-9.9.0-native-UB20.04-SRC/INSTALL/KERNEL -DCMAKE_BUILD_TYPE:STRING=Release
> CMake Error at CMakeLists.txt:36 (MESSAGE):
>   We absolutely need the Salome CMake configuration files, please define
>   CONFIGURATION_ROOT_DIR !
> 
> 
> -- Configuring incomplete, errors occurred!
> See also "/home/parallels/SALOME-9.9.0-native-UB20.04-SRC/BUILD/CMakeFiles/CMakeOutput.log".

with sat the result was the same

this is strange. KERNEL, indeed simply tries to read this environment variable and if it can’t, it raises the error. See implementation in SOURCES/KERNEL.

SET(CONFIGURATION_ROOT_DIR $ENV{CONFIGURATION_ROOT_DIR} CACHE PATH "Path to the Salome CMake configuration files")
IF(EXISTS ${CONFIGURATION_ROOT_DIR})
  LIST(APPEND CMAKE_MODULE_PATH "${CONFIGURATION_ROOT_DIR}/cmake")
  INCLUDE(SalomeMacros NO_POLICY_SCOPE)
ELSE()
  MESSAGE(FATAL_ERROR "We absolutely need the Salome CMake configuration files, please define CONFIGURATION_ROOT_DIR !")
ENDIF()

I don’t see why it does not work in your case - maybe someone else has a brilliant suggestion. Please check that ls $CONFIGURATION_ROOT_DIR returns the correct path.

parallels@ubuntu-linux-20-04-desktop:~/SALOME-9.9.0-native-UB20.04-SRC/BUILD$ echo $CONFIGURATION_ROOT_DIR
/home/parallels/SALOME-9.9.0-native-UB20.04-SRC/SOURCES/CONFIGURATION

It appears that cmake file is not there.