-
Notifications
You must be signed in to change notification settings - Fork 847
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Blocking download of dependencies #2086
Comments
Hi, so in your case, su2 didn't compile on your system using the auto-downloaded tools, but by using the existing system-wide installation of the tools, it did compile? Or you only suspected that it will not compile? In any case if you have a working solution with these flags in place please feel free to submit a pull request. |
Please run |
You mean the script in the It does not provide any flag to tell the configure script to use existing external dependencies. |
I did manage to compile it but it did not reuse any of the software we already have. I even had to modify build scripts to not use meson and ninja from the system, but rather the one that is vendored in the SU2 source code, which by the way is contrary to the documentation which states that meson from the system can be used, while the actual script states the opposite: That means I have no clue how Metis or Parmetis were compiled for example. Nor do I have a clue which versions of those were used. |
The preconfigure in the root of the repo, use the develop branch. |
There's no using the develop branch. Develop software don't make their way in our module systems, we only install releases, with tarbals of the sources and checksums of those tarballs, as we aim for reproducibility. We have a large number of build tools, including pkgconfig, cmake, meson, ninja, bazel, autoconf, etc. We use EasyBuild to wrap things up and generate modules. |
Yes but it would be kind of you to check if a feature of a future release is going in the direction of what you need. |
Ah, I did not understand that this is something you were already working on and were asking me to test, I thought you were suggesting to use develop to install the software on our production cluster. I should not have assumed that, it's just something that is unfortunately quite frequent in the field of scientific software (just use the head of the git repo). I did not have any clone of the repo, so did not see that script (only the one in
It seems like to go in the right direction. Is there a plan to provide options to specify how to find installed copies of those ? Something like I also don't see other packages that end up in externals, such as
My apologies, I misunderstood your request. |
The developer who worked on it was @frx-wintermute in #1951
where we try to use pkg-config and fall back to specifying paths. I recommend using pkg-config whenever possible. |
[...]
Hello @pcarruscag! To be honest, my daydream is: I would love to see SU2 shipping nothing in 'externals/' (or just empty subdirectories such as 'externals/meson/' ); then those external dependencies are by default downloaded from external repositories or tar archives. This defaul behavior would be obtained by configuring with the './meson.py' script and then by building with './ninja'. But, if a user wants to build SU2 from source and prefers to use system-wide Meson and Ninja and system-wide versions of the external dependencies, it would be possible to avoid downloading these external dependencies. By running './preconfigure.py' with appropriate options, it would be possible to decide which external dependencies to not download. At that point, system-wide Meson and Ninja could be used to build SU2 from source. And the 'meson.build' file would do the following:
I think this daydream is achievable, and I hope that other people consider it as a useful goal. |
Is your feature request related to a problem? Please describe.
When installing software on a high performance computing cluster, we typically want to reuse existing dependencies. SU2 seems to download a lot of things which we already have: autotools, catch2, cgns, metis, ninja, parmetis, ...
It will very likely not compile those correctly for our system.
Describe the solution you'd like
Give a flag to disable all download and fail when dependencies are not found. Give corresponding flags to point to the dependencies' folders, and use those.
Describe alternatives you've considered
Reverse engineering SU2's meson/ninja build to patch it to use existing dependencies.
The text was updated successfully, but these errors were encountered: