Error while compiling SALOME 9.14.0-native on Ubuntu 24.04

Basically, this command is problematic:

In your case, you need to check why this command is failing:

/usr/bin/xmlpatterns /home/serge/salome/SALOME-9.14.0-native-UB24.04/SOURCES/ParaView/CMake/paraview_servermanager_convert_xml.xsl home/serge/salome/SALOME-9.14.0-native-UB24.04/SOURCES/ParaView/Plugins/AcceleratedAlgorithms/AcceleratedAlgorithms.xml

you can run it as command line to check the output message if any.

You can also instrument the code by adding messages like in file: SALOME-9.14.0-native-UB24.04/SOURCES/ParaView/CMake/ParaViewClient.cmake (Line 585):


  foreach (_paraview_gpd_xml IN LISTS xmls)
    message(STATUS "CHECK: ==================")
    message(STATUS "CHECK: executing command: ${xmlpatterns} ${_paraview_gpd_to_xml} ${_paraview_gpd_xml}")
    execute_process(
      COMMAND "${xmlpatterns}"
              "${_paraview_gpd_to_xml}"
              "${_paraview_gpd_xml}"
      OUTPUT_VARIABLE _paraview_gpd_output
      ERROR_VARIABLE  _paraview_gpd_error
      RESULT_VARIABLE _paraview_gpd_result)
    message(STATUS "CHECK: xmlpatterns          = ${xmlpatterns}")
    message(STATUS "CHECK: _paraview_gpd_to_xml = ${_paraview_gpd_to_xml}")
    message(STATUS "CHECK: _paraview_gpd_xml    = ${_paraview_gpd_xml}")
    message(STATUS "CHECK: _paraview_gpd_output = ${_paraview_gpd_output}")
    message(STATUS "CHECK: _paraview_gpd_error   = ${_paraview_gpd_error}")
    message(STATUS "CHECK: _paraview_gpd_result  = ${_paraview_gpd_result}")

and share the output.
You can still disable this plugin, but this is not a suitable solution.

The result :
cd /home/serge/salome/SALOME-9.14.0-native-UB24.04/BUILD/ParaView/Plugins/AcceleratedAlgorithms/paraview_help && /usr/bin/cmake -Dxmlpatterns=/usr/bin/xmlpatterns -Doutput_dir=/home/serge/salome/SALOME-9.14.0-native-UB24.04/BUILD/ParaView/Plugins/AcceleratedAlgorithms/paraview_help -Doutput_file=/home/serge/salome/SALOME-9.14.0-native-UB24.04/BUILD/ParaView/Plugins/AcceleratedAlgorithms/paraview_help/AcceleratedAlgorithms_doc.xslt -Dxmls_file=/home/serge/salome/SALOME-9.14.0-native-UB24.04/BUILD/ParaView/Plugins/AcceleratedAlgorithms/CMakeFiles/AcceleratedAlgorithms_doc-xmls.txt -D_paraview_generate_proxy_documentation_run=ON -P /home/serge/salome/SALOME-9.14.0-native-UB24.04/SOURCES/ParaView/CMake/ParaViewClient.cmake
– CHECK: ==================
– CHECK: executing command: /usr/bin/xmlpatterns /home/serge/salome/SALOME-9.14.0-native-UB24.04/SOURCES/ParaView/CMake/paraview_servermanager_convert_xml.xsl /home/serge/salome/SALOME-9.14.0-native-UB24.04/SOURCES/ParaView/Plugins/AcceleratedAlgorithms/AcceleratedAlgorithms.xml
– CHECK: xmlpatterns = /usr/bin/xmlpatterns
– CHECK: _paraview_gpd_to_xml = /home/serge/salome/SALOME-9.14.0-native-UB24.04/SOURCES/ParaView/CMake/paraview_servermanager_convert_xml.xsl
– CHECK: _paraview_gpd_xml = /home/serge/salome/SALOME-9.14.0-native-UB24.04/SOURCES/ParaView/Plugins/AcceleratedAlgorithms/AcceleratedAlgorithms.xml
– CHECK: _paraview_gpd_output =
– CHECK: _paraview_gpd_error = xmlpatterns: could not find a Qt installation of β€˜β€™

– CHECK: _paraview_gpd_result = 1
CMake Error at /home/serge/salome/SALOME-9.14.0-native-UB24.04/SOURCES/ParaView/CMake/ParaViewClient.cmake:600 (message):
Failed to convert servermanager XML: xmlpatterns: could not find a Qt
installation of β€˜β€™

script.log (1.5 MB)

xmlpatterns don’t work :
serge@xps:~/salome$ xmlpatterns
xmlpatterns: could not find a Qt installation of β€˜β€™

Hard de to guess. There is some inconsistency in your installation.
/usr/bin/xmlpatterns is nothing more than a link to /usr/bin/qtchooser
and you can β€œforce” qtchooser to target qt5, by setting the environment variable QT_SELECT
You can try the following to check if it helps:

# following variable tells /usr/bin/qtchooser which version of qt to run
export QT_SELECT=qt5
xmlpatterns --help
rm -rf SALOME-9.14.0-native-UB24.04/BUILD/ParaView
SAT/sat -o "APPLICATION.properties.git_server='github'" compile SALOME-9.14.0-native -p ParaView --clean_all

if it fails, maybe someone else has some hints.

Below:
available Qt versions supported by qtchooser can be listed with
qtchooser -list-versions

In my case, I have:

/home/salome > qtchooser -list-versions
4
5
default
qt4-x86_64-linux-gnu
qt4
qt5-x86_64-linux-gnu
qt5
/home/salome > export QT_SELECT=qt5
/home/salome > xmlpatterns -version
xmlpatterns version 0.1 using Qt 5.15.13

Strange that I end up with two xmlpatterns. I will fix this problem later. With the export of QT_SELECT the ParaView compilation is valid.

Now I have problems with the compilation of cgal :
script.log (5.6 KB)
CMakeCache.txt (21.1 KB)

1 Like

Here you need to install: libmpfr-dev libgmp-dev zlib1g-dev zlib1g libboost-serialization-dev libboost-iostreams-dev libeigen3-dev libmetis-dev.
And of course, run:

SAT/sat -o "APPLICATION.properties.git_server='github'" compile SALOME-9.14.0-native -p cgal --clean_all

If OK, then resume compilation with:

SAT/sat -o "APPLICATION.properties.git_server='github'" compile SALOME-9.14.0-native

Now it’s c++ itself that crashes when compiling libigl;
CMakeCache.txt (66.2 KB)
script.log (118.8 KB)

quite strange here, given that i do have the same CmakeCache.txt contents. Here you can:

  • try again since libigl compilation is quite time & resources consuming indeed and a glitch may have occured). Run:

    
      SAT/sat  -o "APPLICATION.properties.git_server='github'" compile SALOME-9.14.0-native -p libigl --clean_all
    
  • if it still fails, edit file SAT_SALOME/products/libigl.pyconf and add just after;

       patches: ['libigl-v2.5.0-p01_609_Boolean.patch', 'libigl-v2.5.0-p02_FindCGAL.patch', 'libigl-v2.5.0-p03-FindBLAS.patch', 'libigl-v2.5.0-p04-FindEmbree.patch']
    

    the number of parallel make commands:

        nb_proc : 1
    

    Then rerun compilation for that product. If it resolves the issue, feel free to open a pull request in SAT_SALOME.

  • remove from SAT_SALOME/applications/SALOME-9.14.0-native.pyconf, libigl and mcut (which depends upon libigl). Libigl is used as one of the possible algorithms for boolean operations on meshes.
    Then resume compilation:

        SAT/sat  -o "APPLICATION.properties.git_server='github'" compile SALOME-9.14.0-native 
    
  • another solution would be to use an already compiled version that we can as a last solution implement.

Personally, I would rerun and then if it still fails reduce the number of processors.

I have just successfully built SALOME 9.14.0 :+1:
Thanks for your help !

1 Like