Thanks for the question. easybuild looks like an interesting project.
We are updating our computing cluster and are in that connection switching to using the EasyBuild system (https://github.com/hpcugent/easybuild) for managing software on the cluster. In that connection, I am considering making an EasyBuild module for installing OpenKIM on the cluster as a library for other packages (mainly Asap).
Good! This is really how the kim-api has been designed to be used.
In that connection I have two questions:
1) Is there a way to download all models and model drivers as a .tar file or similar? Currently, I have a script that downloads a list of all models from your web API, and then call the makefile once for each model to download them, but that takes forever.
I'm not clear on which part is the bottle-neck. The downloading? or the build?
I would guess that it is the build. If that is the case, the only thing I can think of that would help is if you can use one of our pre-build binary repos for Ubuntu/CentOS/Fedora/openSUSE.
For the download, we don't currently have anything much better than your script. The kim-api build system has a functioning "make add-OpenKIM" command, but this just does effectively what you are doing (getting a list and downloading each item individually).
One reason we have avoided a single tarball download is due to licensing issues. The models/drivers have different licenses and some are incompatible and we wanted to avoid any possibility of a problem due to distributing together such packages.
I would be happy to explore other possibilities for distributing the model/driver packages if you have ideas that would represent a significant advantage (in certain situations) to the individual package download.
2) The Makefile.KIM_Config defines the variable KIM_DIR to where the source code is build. But EasyBuild will copy the source code to a working directory while compiling and installing it, that is not known beforehand. Is there some way to handle that other than making a custom EasyBlock that somehow edits this at compile time?
I suggest that you switch to using the new(er) "configure" script to generate the Makefile.KIM_Config file for you. This script determines the KIM_DIR directory when it is executed and it allows you to specify all possible settings within the Makefile.KIM_Config file through command line arguments.
Let me know if you have further questions!