EasyBuild
License information
EasyBuild is made available under the GNU General Public License version 2.
User documentation
What is EasyBuild?
EasyBuild is a software build and installation framework written in Python that allows you to install software in a structured, repeatable and robust way.
There is a web-based manual for EasyBuild. Tutorials are also available on the web, including a tutorial specifically for LUMI in our training archive web site.
Using EasyBuild on LUMI
Loading the EasyBuild module only gives you a standard configuration of EasyBuild that will install in your already space-limited home directory, not recognise the already installed software in the LUMI software stack, and in fact use build recipes that are not all compatible with LUMI.
To install software building upon the centrally installed LUMI software stacks (as provided by the LUMI/xx.yy modules), users should load the EasyBuild-user module instead as discussed in the EasyBuild section of the main LUMI documentation.
Pre-installed modules (and EasyConfigs)
To access module help and find out for which stacks and partitions the module is
installed, use module spider EasyBuild/<version>.
EasyConfig:
- 
EasyBuild/4.6.0 (EasyConfig: EasyBuild-4.6.0.eb)
This is the version of EasyBuild used for the 22.06 and 22.08 software stacks.
 - 
EasyBuild/4.7.1 (EasyConfig: EasyBuild-4.7.1.eb)
This is the version of EasyBuild used for the 22.12 and 23.03 software stacks.
 
Technical documentation
EasyBuild
Version 4.4.2 for LUMI/21.08
- Started from the default EasyConfig but added additional help information to the module file.
 
Version 4.5.3 for LUMI/21.12
- We activated the new feature to show a progress bar and also added support
    for 
archspec. This is done by adding additional packages via extensions in the EasyConfig. It is a very fragile combination though, only very specific combinations of version worked. 
Version 4.6.0 for LUMI/22.06 and LUMI/22.08
- The additional packages that are used to activate 
archspecin EasyBuild and to provide the progress bar are a very fragile mix. Updating any of them to newer versions didn't work, maybe due to the lack ofpipand the very old version ofpythonas the system Python. 
Version 4.7.1 for LUMI/22.12 and LUMI/23.03
- Trivial port of the 4.6.0 EasyConfig.
 
Version 4.8.2 for LUMI/23.09
- 
Trivial port of the 4.7.1 EasyConfig.
 - 
In a later update we added support for loading
EasyBuild-toolsif available. 
Version 4.9.2 for LUMI/23.12 and 24.03
- 
Started as a trivial port of the 4.8.2 EasyConfig
 - 
At first removed support for loading
EasyBuild-toolsas the reason for it is
no longer there (MATLAB installation done differently). - 
Added
PyYAMLto the list of extra Python packages as we also wanted to use EasyBuild with EasyStack files in a container that did not havePyYAMSLin its system Python installation.The problem with this package is that it installs its egg in
lib64instead of inlibso that two directories need to be added toPYTHONPATH. - 
Needed to modify
libsci.pyintoolchains/linalgin the framework as it should now checkCRAY_PE_LIBSCI_PREFIX_DIRinstead ofCRAY_LIBSCI_PREFIX_DIR. For now we check for both so that the same EasyConfig can also be used to install EasyBuild for older versions of the Cray PE. - 
Wanted to use
postinstallcmdsto robustify a number of scripts, but that was
not supported by the EasyBlock so that one needed to be changed also.- 
Robustify the
ebcommand:- 
PYTHONPATHis hard-coded in theebshell script and overwrites anything from the environment. - 
In the loop that searches for a suitable Python command, we added the system Python with full path and version at the front of the list. Hence strictly speaking
EB_PYTHONis no longer needed. 
 - 
 - 
Robustifying the
archspec,cmarkandpuygmentizescripts put in thebindirectory when installing their respective additional packages:- 
Shebang line changed to explicitly call
python3.6, and added the-Eoption to avoid using the value ofPYTHONPATH - 
We then used
sys.path.appendto add thelibsubdirectory to the Python search path. Thelib64subdirectory was not added asPyYAMLis not needed by those commands. 
 - 
 
 - 
 - 
And added sanity checks that explicitly unset
PYTHONPATHto verify that these commands indeed work withoutPYTHONPATH. - 
The module however still sets
PYTHONPATHas (1) this is difficult to turn off, it is one of those variables generated automatically by EasyBuild if it finds a certain directory, and (2) it is still needed when using EasyBuild as a library. 
Archived EasyConfigs
The EasyConfigs below are additional easyconfigs that are not directly available on the system for installation. Users are advised to use the newer ones and these archived ones are unsupported. They are still provided as a source of information should you need this, e.g., to understand the configuration that was used for earlier work on the system.
- 
Archived EasyConfigs from LUMI-SoftwareStack - previously centrally installed software
- 
EasyConfig EasyBuild-4.4.2.eb, with module EasyBuild/4.4.2
This is the version of EasyBuild used for the 21.08 software stack.
 - 
EasyConfig EasyBuild-4.5.3-bare.eb, with module EasyBuild/4.5.3-bare
 - 
EasyConfig EasyBuild-4.5.3.eb, with module EasyBuild/4.5.3
This is the version of EasyBuild used for the 21.12 software stack.