biodynamo icon indicating copy to clipboard operation
biodynamo copied to clipboard

Porting biodynamo to other linux platforms and others

Open johnpapad24 opened this issue 10 months ago • 7 comments

This commit incudes:

  1. The porting of biodynamo to other linux platforms like all red hat and debian based distros with the option of compiling requirements like root qt and paraview (changes included on the cmakelists file, the corresponding root, qt and paraview cmake files as well as scripts included on the /util/build-third-party directory as well as changes in the util.sh file that performs the detection of the new operating systems with the DetectOs2 function) and requirements scripts and files that cover a wide range of redhat based and debian based distros. (all distro prerequisites are categorized into the appropriate directories)
  2. Because gcc versions older than 8 and newer than 11 can cause installation and project running problems (especially with the case of omp.h) we also provide gcc 11.5.0 (version checked by util.sh and built via build-gcc_new.sh located on the util/build-third-party directory)
  3. The option of installing nest with biodynamo (provided via a cmake option (-Dnest) and build via build-nest_new.sh located on the util/build-third-party directory)
  4. Fixing sbml support on mac os by compiling libroadrunner via a script located in util/build-third-party directory
  5. Also experimental suse linux support (root does not compile due to a bug)

Possible bugs: Sometimes after the compilation of paraview, biodynamo fails to compile. In this case just rerun the installation.

Note : In order to prevent the recompilation of any requirement due to a failure that may occur later on the installation process requirements are installed in the biodynamo(src)/third-party directory and then copied into the appriopriate build and installation directory

Note 2: This commit is based on 2619fe542c5a39fdf279c487b700b3816d7db5c2 so include any other commit except the commit that depricates centos 7

johnpapad24 avatar Mar 27 '25 07:03 johnpapad24

dear @johnpapad24 , many thanks for the contribution! can you please take a look for the CI failures, particularly the ones related to macOS please. cheers

vasvav avatar Mar 27 '25 09:03 vasvav

Dear @vasvav,

Except for the case of libroadrunner and gcc (optionally) nothing else has changed for mac os

But i will run the installation on mac os again just in case

Also the initial commit didn't include the required script files for some reason

johnpapad24 avatar Mar 27 '25 10:03 johnpapad24

Mac os x will be removed again from the supported platform list because the downloaded paraview version is not supported for building the adaptor...

We will compile the provided paraview version by default instead of downloading it

Also nest on mac os must be fixed.

johnpapad24 avatar Mar 27 '25 14:03 johnpapad24

Maybe a good idea to rebase onto the latest master to get rid of the conflicts.

Great initiative @johnpapad24, looking forward to this extension 🚀

TobiasDuswald avatar Mar 28 '25 11:03 TobiasDuswald

Before releasing to the master I want to make some additions regarding mac os and also some checks on almalinux 8 and 9 (I hope that it will work out of the box especially for almalinux 9)

johnpapad24 avatar Mar 28 '25 18:03 johnpapad24

I did not mean release to master, I meant rebase your branch on master.

git checkout master
git fetch
git checkout porting_biodynamo
git rebase master

During this process you would likely have to resolve some conflicts.

Also I don't think gcc@11 should be a strictly required dependency; (Apple) clang works just fine ..

TobiasDuswald avatar Mar 31 '25 09:03 TobiasDuswald

Alright, before reviewing we will need to:

  1. Get rid of all unnecessary changes. There are many linebreaks and similar that are unrelated to the content of the PR, it would be good to get rid of these such that the PR only changes relevant things and not minor formatting all over the place.
  2. There are some changes in files that I cannot even view. These changes also need to be reverted. (see picture)
  3. I don't think we should ship so so much third party software. Also I'm not sure if from a legal standpoint their licenses are compatible. But we as a small 70k LOC project should certainly not ship with a complete GCC compiler or the entire NEST simulation platform. The software should install with a compiler, we don't provide the compiler. If certain compiler versions do not work, we can document that and return warnings and tell them which one to use. But we work with the paradigm that our software should run with all standard compilers. If people want to build applications with NEST they should install biodynamo and NEST separately and then use both software in their application. We should also not ship NEST!
  4. There are a few changes that cannot be merged, these merge conflicts have to be solved before.

One of the points that you made earlier regarding paraview confused me. "We will compile the provided paraview version by default instead of downloading it". Building BioDynamo takes 5 minutes. Building Paraview takes an hour. I really don't like adding a factor of 12 to the compilation time. That is actually the idea of providing precompiled binaries.

image

TobiasDuswald avatar May 07 '25 14:05 TobiasDuswald