It seems that OGS v6 has become, preferentially, a Windows application in comparison to OGS v5.
There is a partial explanation at this link regarding Linux binaries:
Dune/DumuX, which is similar to OGS, has installation via a Python script. Their website provides you with a script that facilitates setting up a Dune/DuMux directory tree and configures all modules using CMake. Relatively easy to install and run reproducible research on Linux. If you use Windows, DuMuX recommends using Ubuntu bash on Windows. https://dumux.org/installation/
Would it be possible to offer this python script approach to install OGS v6 on Linux?
There is no preference for any operating system in OGS-6, although some configurations (MFront, MPI) are not supported on Windows. So OGS is a fully native application on every platform.
I guess what you are talking about are the provided precompiled binaries. They work very well on Windows and we fully support it. On Linux / macOS they often only work on a machine running the same operating system version as the machine which built the binaries. So we had lots of complaints from users that the binaries do not run on their system. This is where containers fit, as they will simply run. So we provide container with prebuilt binaries for a better user experience.
You are free to compile OGS natively on every machine and every operating system and it should not be hard to do so: you need a recent compiler, a recent CMake and Git and you are good to go (CMake will handle every required dependency automatically), just follow the developer guide. In the end it comes down to:
git clone https://gitlab.opengeosys.org/ogs/ogs.git
cd ogs
cmake -S . --preset release
cmake --build --preset release
# Run ogs
Compiling ran OK until building netcdf with conan
I have attached the error log and CMakeFile.txt
I don’t understand the error:
CMake Error at /home/l1nux/.conan/data/netcdf-cxx/4.3.1-1/bilke/testing/build/0dedcc9c0a34ef2310bfce5dddb07b68bf577a06/CMakeFiles/CMakeTmp/CMakeLists.txt:15 (target_link_libraries):
The “optimized” argument must be followed by a library.
The attached zip did not contain anything useful. Please provide how you configured with CMake (which options you passed) and what the (full) CMake output on the command line was.
I looked in the $HOME/tmp folder and extracted posixmodule.c from the archive Python-3.8.1.tgz
posixmodule.c
at line 6586: if (openpty(&master_fd, &slave_fd, NULL, NULL, NULL) != 0)
at line 6684: pid = forkpty(&master_fd, NULL, NULL, NULL);
From google, I understand the “psuedo-terminal utilities” relevance of openpty, forkpty;
and read links dealing with compilation errors based on the error: “undefined reference”, which was solved by adding -lutil flag to the linker.
That is, to add -lutil to CMAKE_EXE_LINKER_FLAGS and CMAKE_MODULE_LINKER_FLAGS
More clarification here:
Adding the following to CMakeLists.txt did not work; error still there.
In the thread you linked the reason for the error was a broken custom python installation. I guess this is the same as reason as for your problem (why should there some Python installation in $HOME/tmp?). So advice to
fix (or remove) this custom Python installation
OR configure OGS without Python support (-DOGS_USE_PYTHON=OFF CMake option)
Yes, I have now compiled OGS v6.4.0 with the default CMakeLists.txt using an alternative python3 installation. In fact, one that resided in miniconda3.
That seems to suggest that it is a python library issue.
In my case the externally installed Python 3.8.1 didn’t provide the case for testrunner.
Whereas the externally installed miniconda3 version did:
//Path to a program.
_Python3_EXECUTABLE:FILEPATH=/media/l1nux/SAN240/miniconda3/bin/python3.8
//Path to a file.
_Python3_INCLUDE_DIR:PATH=/media/l1nux/SAN240/miniconda3/include/python3.8
//Path to a library.
_Python3_LIBRARY_RELEASE:FILEPATH=/media/l1nux/SAN240/miniconda3/lib/libpython3.8.so
With default compiled, I will now try compiling with Document Explorer=ON