Skip to content

Overview of generic easyblocks

BinariesTarball - Binary - BuildEnv - Bundle - CMakeMake - CMakeMakeCp - CMakeNinja - CMakePythonPackage - Cargo - CargoPythonBundle - CargoPythonPackage - CmdCp - Conda - ConfigureMake - ConfigureMakePythonPackage - CrayToolchain - FortranPythonPackage - GoPackage - IntelBase - JAR - JuliaBundle - JuliaPackage - MakeCp - MesonNinja - ModuleRC - OCamlPackage - OctavePackage - PackedBinary - PerlBundle - PerlModule - PythonBundle - PythonPackage - RPackage - Rpm - RubyGem - SCons - SystemCompiler - SystemMPI - Tarball - Toolchain - VSCPythonPackage - VersionIndependentPythonPackage - Waf

BinariesTarball

(derives from Tarball)

Support for installing a tarball of binaries

Extra easyconfig parameters specific to BinariesTarball easyblock

easyconfig parameter description default value
install_type Defaults to extract tarball into clean directory. Options: 'merge' merges tarball to existing directory, 'subdir' extracts tarball into its own sub-directory None
options Dictionary with extension options. {}
preinstall_cmd Command to execute before installation None

Customised steps in BinariesTarball easyblock

  • install_step - Install by copying unzipped binaries to 'bin' subdir of installation dir, and fixing permissions.

Binary

(derives from EasyBlock)

Support for installing software that comes in binary form. Just copy the sources to the install dir, or use the specified install command.

Extra easyconfig parameters specific to Binary easyblock

easyconfig parameter description default value
extract_sources Whether or not to extract sources False
install_cmd Install command to be used. None
install_cmds List of install commands to be used. None
prepend_to_path Prepend the given directories (relative to install-dir) to the environment variable PATH in the module file. Default is the install-dir itself. ['']
staged_install Perform staged installation via subdirectory of build directory False

Customised steps in Binary easyblock

  • build_step - No compilation, this is binary software

  • configure_step - No configuration, this is binary software

  • install_step - Copy all files in build directory to the install directory

Example easyconfig for Binary easyblock

easyblock = 'Binary'

name = 'Platanus'
version = '1.2.1'
versionsuffix = '-linux-x86_64'

homepage = 'http://platanus.bio.titech.ac.jp/'
description = """PLATform for Assembling NUcleotide Sequences"""

toolchain = SYSTEM

source_urls = ['http://platanus.bio.titech.ac.jp/Platanus_release/20130901010201']
sources = ['platanus']
checksums = ['02cf92847ec704d010a54df293b9c60a']

sanity_check_paths = {
    'files': ['platanus'],
    'dirs': [],
}

moduleclass = 'bio'

BuildEnv

(derives from Bundle)

Build environment of toolchain: only generate module file

Extra easyconfig parameters specific to BuildEnv easyblock

easyconfig parameter description default value
altroot Software name of dependency to use to define $EBROOT for this bundle None
altversion Software name of dependency to use to define $EBVERSION for this bundle None
components List of components to install: tuples w/ name, version and easyblock to use ()
default_component_specs Default specs to use for every component {}
default_easyblock Default easyblock to use for components None
sanity_check_all_components Enable sanity checks for all components False
sanity_check_components List of components for which to run sanity checks []

Bundle

(derives from EasyBlock)

Bundle of modules: only generate module files, nothing to build/install

Extra easyconfig parameters specific to Bundle easyblock

easyconfig parameter description default value
altroot Software name of dependency to use to define $EBROOT for this bundle None
altversion Software name of dependency to use to define $EBVERSION for this bundle None
components List of components to install: tuples w/ name, version and easyblock to use ()
default_component_specs Default specs to use for every component {}
default_easyblock Default easyblock to use for components None
sanity_check_all_components Enable sanity checks for all components False
sanity_check_components List of components for which to run sanity checks []

Customised steps in Bundle easyblock

  • build_step - Do nothing.

  • configure_step - Collect altroot/altversion info.

  • install_step - Install components, if specified.

Example easyconfig for Bundle easyblock

easyblock = 'Bundle'

name = 'Autotools'
version = '20150119' # date of the most recent change

homepage = 'http://autotools.io'
description = """This bundle collect the standard GNU build tools: Autoconf, Automake and libtool"""

toolchain = {'name': 'GCC', 'version': '4.9.2'}

dependencies = [
    ('Autoconf', '2.69'), # 20120424
    ('Automake', '1.15'), # 20150105
    ('libtool', '2.4.5'), # 20150119
]

moduleclass = 'devel'

CMakeMake

(derives from ConfigureMake)

Support for configuring build with CMake instead of traditional configure script

Extra easyconfig parameters specific to CMakeMake easyblock

easyconfig parameter description default value
abs_path_compilers Specify compilers via absolute file path (not via command names) False
allow_system_boost Always allow CMake to pick up on Boost installed in OS (even if Boost is included as a dependency) False
build_cmd Build command to use "make"
build_cmd_targets Target name (string) or list of target names to build ""
build_shared_libs Build shared library (instead of static library)None can be used to add no flag (usually results in static library) None
build_type Build type for CMake, e.g. Release.Defaults to 'Release' or 'Debug' depending on toolchainopts[debug] None
configure_cmd Configure command to use "cmake"
configure_cmd_prefix Prefix to be glued before ./configure ""
configure_without_installdir Avoid passing an install directory to the configure command (such as via --prefix) False
generator Build file generator to use. None to use CMakes default None
host_type Value to provide to --host option of configure script, e.g., x86_64-pc-linux-gnu (determined by config.guess shipped with EasyBuild if None, False implies to leave it up to the configure script) None
install_cmd Install command to use "make install"
install_target_subdir Subdirectory to use as installation target None
prefix_opt Prefix command line option for configure script ('--prefix=' if None) None
runtest Make target to test build or True to use CTest None
separate_build_dir Perform build in a separate directory True
srcdir Source directory location to provide to cmake command None
tar_config_opts Override tar settings as determined by configure. False
test_cmd Test command to use ('runtest' value is appended, default: 'make') None

Customised steps in CMakeMake easyblock

  • configure_step - Configure build using cmake

  • install_step - Configure build using cmake

Example easyconfig for CMakeMake easyblock

easyblock = 'CMakeMake'

name = 'ANTs'
version = '2.1.0rc3'

homepage = 'http://stnava.github.io/ANTs/'
description = """ANTs extracts information from complex datasets that include imaging. ANTs is useful for managing,
 interpreting and visualizing multidimensional data."""

toolchain = {'name': 'goolf', 'version': '1.5.14'}
toolchainopts = {'pic': True}

source_urls = ['https://github.com/stnava/ANTs/archive/']
sources = ['v%(version)s.tar.gz']

builddependencies = [('CMake', '3.0.2')]

skipsteps = ['install']
buildopts = ' && mkdir -p %(installdir)s && cp -r * %(installdir)s/'

parallel = 1

separate_build_dir = True

sanity_check_paths = {
    'files': ['bin/ANTS'],
    'dirs': ['lib'],
}

moduleclass = 'data'

CMakeMakeCp

(derives from CMakeMake, MakeCp)

Software configured with CMake but without 'make install' step

We use the default CMakeMake implementation, and use install_step from MakeCp.

Extra easyconfig parameters specific to CMakeMakeCp easyblock

easyconfig parameter description default value
abs_path_compilers Specify compilers via absolute file path (not via command names) False
allow_system_boost Always allow CMake to pick up on Boost installed in OS (even if Boost is included as a dependency) False
build_cmd Build command to use "make"
build_cmd_targets Target name (string) or list of target names to build ""
build_shared_libs Build shared library (instead of static library)None can be used to add no flag (usually results in static library) None
build_type Build type for CMake, e.g. Release.Defaults to 'Release' or 'Debug' depending on toolchainopts[debug] None
configure_cmd Configure command to use "cmake"
configure_cmd_prefix Prefix to be glued before ./configure ""
configure_without_installdir Avoid passing an install directory to the configure command (such as via --prefix) False
files_to_copy List of files or dirs to copy None
generator Build file generator to use. None to use CMakes default None
host_type Value to provide to --host option of configure script, e.g., x86_64-pc-linux-gnu (determined by config.guess shipped with EasyBuild if None, False implies to leave it up to the configure script) None
install_cmd Install command to use "make install"
install_target_subdir Subdirectory to use as installation target None
prefix_opt Prefix command line option for configure script ('--prefix=' if None) None
runtest Make target to test build or True to use CTest None
separate_build_dir Perform build in a separate directory True
srcdir Source directory location to provide to cmake command None
tar_config_opts Override tar settings as determined by configure. False
test_cmd Test command to use ('runtest' value is appended, default: 'make') None
with_configure Run configure script before building False

Customised steps in CMakeMakeCp easyblock

  • configure_step - Configure build using CMake

  • install_step - Install by copying specified files and directories.

CMakeNinja

(derives from CMakeMake, MesonNinja)

Support for configuring with CMake, building and installing with MesonNinja.

Extra easyconfig parameters specific to CMakeNinja easyblock

easyconfig parameter description default value
abs_path_compilers Specify compilers via absolute file path (not via command names) False
allow_system_boost Always allow CMake to pick up on Boost installed in OS (even if Boost is included as a dependency) False
build_cmd Build command to use "ninja"
build_cmd_targets Target name (string) or list of target names to build ""
build_dir build_dir to pass to meson None
build_shared_libs Build shared library (instead of static library)None can be used to add no flag (usually results in static library) None
build_type Build type for CMake, e.g. Release.Defaults to 'Release' or 'Debug' depending on toolchainopts[debug] None
configure_cmd Configure command to use "cmake"
configure_cmd_prefix Prefix to be glued before ./configure ""
configure_without_installdir Avoid passing an install directory to the configure command (such as via --prefix) False
generator Build file generator to use. None to use CMakes default "Ninja"
host_type Value to provide to --host option of configure script, e.g., x86_64-pc-linux-gnu (determined by config.guess shipped with EasyBuild if None, False implies to leave it up to the configure script) None
install_cmd Install command to use "ninja"
install_target_subdir Subdirectory to use as installation target None
prefix_opt Prefix command line option for configure script ('--prefix=' if None) None
runtest Make target to test build or True to use CTest None
separate_build_dir Perform build in a separate directory True
srcdir Source directory location to provide to cmake command None
tar_config_opts Override tar settings as determined by configure. False
test_cmd Test command to use ('runtest' value is appended, default: 'make') None

Customised steps in CMakeNinja easyblock

  • build_step - Build using MesonNinja.

  • configure_step - Configure using CMake.

  • install_step - Install using MesonNinja.

CMakePythonPackage

(derives from CMakeMake, PythonPackage)

Build a Python package and module with cmake.

Some packages use cmake to first build and install C Python packages and then put the Python package in lib/pythonX.Y/site-packages.

We use the default CMake implementation, and use make_module_extra from PythonPackage to generate a module file which sets the PYTHONPATH.

Extra easyconfig parameters specific to CMakePythonPackage easyblock

easyconfig parameter description default value
abs_path_compilers Specify compilers via absolute file path (not via command names) False
allow_system_boost Always allow CMake to pick up on Boost installed in OS (even if Boost is included as a dependency) False
build_cmd Build command to use "make"
build_cmd_targets Target name (string) or list of target names to build ""
build_shared_libs Build shared library (instead of static library)None can be used to add no flag (usually results in static library) None
build_type Build type for CMake, e.g. Release.Defaults to 'Release' or 'Debug' depending on toolchainopts[debug] None
buildcmd Command for building the package (e.g. for custom builds resulting in a whl file). When using setup.py this will be passed to setup.py and defaults to 'build'. Otherwise it will be used as-is. A value of None then skips the build step. The template %(python)s will be replace by the currently used Python binary. None
check_ldshared Check Python value of $LDSHARED, correct if needed to "$CC -shared" None
configure_cmd Configure command to use "cmake"
configure_cmd_prefix Prefix to be glued before ./configure ""
configure_without_installdir Avoid passing an install directory to the configure command (such as via --prefix) False
download_dep_fail Fail if downloaded dependencies are detected None
generator Build file generator to use. None to use CMakes default None
host_type Value to provide to --host option of configure script, e.g., x86_64-pc-linux-gnu (determined by config.guess shipped with EasyBuild if None, False implies to leave it up to the configure script) None
install_cmd Install command to use "make install"
install_src Source path to pass to the install command (e.g. a whl file).Defaults to '.' for unpacked sources or the first source file specified None
install_target Option to pass to setup.py "install"
install_target_subdir Subdirectory to use as installation target None
max_py_majver Maximum major Python version (only relevant when using system Python) None
max_py_minver Maximum minor Python version (only relevant when using system Python) None
options Dictionary with extension options. {}
pip_ignore_installed Let pip ignore installed Python packages (i.e. don't remove them) True
pip_no_index Pass --no-index to pip to disable connecting to PyPi entirely which also disables the pip version check. Enabled by default when pip_ignore_installed=True None
pip_verbose Pass --verbose to 'pip install' (if pip is used). Enabled by default if the EB option --debug is used. None
prefix_opt Prefix command line option for configure script ('--prefix=' if None) None
req_py_majver Required major Python version (only relevant when using system Python) None
req_py_minver Required minor Python version (only relevant when using system Python) None
runtest Make target to test build or True to use CTest None
sanity_pip_check Run 'python -m pip check' to ensure all required Python packages are installed and check for any package with an invalid (0.0.0) version. False
separate_build_dir Perform build in a separate directory True
source_urls List of URLs for source files ['https://pypi.python.org/packages/source/%(nameletter)s/%(name)s']
srcdir Source directory location to provide to cmake command None
tar_config_opts Override tar settings as determined by configure. False
test_cmd Test command to use ('runtest' value is appended, default: 'make') None
testinstall Install into temporary directory prior to running the tests. False
unpack_sources Unpack sources prior to build/install. Defaults to 'True' except for whl files None
unversioned_packages List of packages that don't have a version at all, i.e. show 0.0.0 []
use_pip Install using '%(python)s -m pip install --prefix=%(prefix)s %(installopts)s %(loc)s' None
use_pip_editable Install using 'pip install --editable' False
use_pip_extras String with comma-separated list of 'extras' to install via pip None
use_pip_for_deps Install dependencies using '%(python)s -m pip install --prefix=%(prefix)s %(installopts)s %(loc)s' False
use_pip_requirement Install using 'python -m pip install --requirement'. The sources is expected to be the requirements file. False
zipped_egg Install as a zipped eggs False

Customised steps in CMakePythonPackage easyblock

  • configure_step - Main configuration using cmake

  • install_step - Main configuration using cmake

Cargo

(derives from ExtensionEasyBlock)

Support for installing Cargo packages (Rust)

Extra easyconfig parameters specific to Cargo easyblock

easyconfig parameter description default value
crates List of (crate, version, [repo, rev]) tuples to use []
enable_tests Enable building of tests True
lto Override default LTO flag ('fat', 'thin', 'off') None
offline Build offline True
options Dictionary with extension options. {}

Customised steps in Cargo easyblock

  • build_step - Build with cargo

  • configure_step - Empty configuration step.

  • install_step - Install with cargo

CargoPythonBundle

(derives from PythonBundle, Cargo)

Builds just like PythonBundle with setup for Rust and crates from Cargo easyblock

The cargo init step will set up the environment variables for rustc and vendor sources but all the build steps are triggered like normal.

Extra easyconfig parameters specific to CargoPythonBundle easyblock

easyconfig parameter description default value
altroot Software name of dependency to use to define $EBROOT for this bundle None
altversion Software name of dependency to use to define $EBVERSION for this bundle None
buildcmd Command for building the package (e.g. for custom builds resulting in a whl file). When using setup.py this will be passed to setup.py and defaults to 'build'. Otherwise it will be used as-is. A value of None then skips the build step. The template %(python)s will be replace by the currently used Python binary. None
check_ldshared Check Python value of $LDSHARED, correct if needed to "$CC -shared" None
components List of components to install: tuples w/ name, version and easyblock to use ()
crates List of (crate, version, [repo, rev]) tuples to use []
default_component_specs Default specs to use for every component {}
default_easyblock Default easyblock to use for components None
download_dep_fail Fail if downloaded dependencies are detected None
enable_tests Enable building of tests True
install_src Source path to pass to the install command (e.g. a whl file).Defaults to '.' for unpacked sources or the first source file specified None
install_target Option to pass to setup.py "install"
lto Override default LTO flag ('fat', 'thin', 'off') None
max_py_majver Maximum major Python version (only relevant when using system Python) None
max_py_minver Maximum minor Python version (only relevant when using system Python) None
offline Build offline True
options Dictionary with extension options. {}
pip_ignore_installed Let pip ignore installed Python packages (i.e. don't remove them) True
pip_no_index Pass --no-index to pip to disable connecting to PyPi entirely which also disables the pip version check. Enabled by default when pip_ignore_installed=True None
pip_verbose Pass --verbose to 'pip install' (if pip is used). Enabled by default if the EB option --debug is used. None
req_py_majver Required major Python version (only relevant when using system Python) None
req_py_minver Required minor Python version (only relevant when using system Python) None
runtest Run unit tests. True
sanity_check_all_components Enable sanity checks for all components False
sanity_check_components List of components for which to run sanity checks []
sanity_pip_check Run 'python -m pip check' to ensure all required Python packages are installed and check for any package with an invalid (0.0.0) version. False
source_urls List of URLs for source files ['https://pypi.python.org/packages/source/%(nameletter)s/%(name)s']
testinstall Install into temporary directory prior to running the tests. False
unpack_sources Unpack sources prior to build/install. Defaults to 'True' except for whl files None
unversioned_packages List of packages that don't have a version at all, i.e. show 0.0.0 []
use_pip Install using '%(python)s -m pip install --prefix=%(prefix)s %(installopts)s %(loc)s' None
use_pip_editable Install using 'pip install --editable' False
use_pip_extras String with comma-separated list of 'extras' to install via pip None
use_pip_for_deps Install dependencies using '%(python)s -m pip install --prefix=%(prefix)s %(installopts)s %(loc)s' False
use_pip_requirement Install using 'python -m pip install --requirement'. The sources is expected to be the requirements file. False
zipped_egg Install as a zipped eggs False

CargoPythonPackage

(derives from PythonPackage, Cargo)

Build a Python package with setup from Cargo but build/install step from PythonPackage

The cargo init step will set up the environment variables for rustc and vendor sources but all the build steps are triggered via normal PythonPackage steps like normal.

Extra easyconfig parameters specific to CargoPythonPackage easyblock

easyconfig parameter description default value
buildcmd Command for building the package (e.g. for custom builds resulting in a whl file). When using setup.py this will be passed to setup.py and defaults to 'build'. Otherwise it will be used as-is. A value of None then skips the build step. The template %(python)s will be replace by the currently used Python binary. None
check_ldshared Check Python value of $LDSHARED, correct if needed to "$CC -shared" None
crates List of (crate, version, [repo, rev]) tuples to use []
download_dep_fail Fail if downloaded dependencies are detected None
enable_tests Enable building of tests True
install_src Source path to pass to the install command (e.g. a whl file).Defaults to '.' for unpacked sources or the first source file specified None
install_target Option to pass to setup.py "install"
lto Override default LTO flag ('fat', 'thin', 'off') None
max_py_majver Maximum major Python version (only relevant when using system Python) None
max_py_minver Maximum minor Python version (only relevant when using system Python) None
offline Build offline True
options Dictionary with extension options. {}
pip_ignore_installed Let pip ignore installed Python packages (i.e. don't remove them) True
pip_no_index Pass --no-index to pip to disable connecting to PyPi entirely which also disables the pip version check. Enabled by default when pip_ignore_installed=True None
pip_verbose Pass --verbose to 'pip install' (if pip is used). Enabled by default if the EB option --debug is used. None
req_py_majver Required major Python version (only relevant when using system Python) None
req_py_minver Required minor Python version (only relevant when using system Python) None
runtest Run unit tests. True
sanity_pip_check Run 'python -m pip check' to ensure all required Python packages are installed and check for any package with an invalid (0.0.0) version. False
source_urls List of URLs for source files ['https://pypi.python.org/packages/source/%(nameletter)s/%(name)s']
testinstall Install into temporary directory prior to running the tests. False
unpack_sources Unpack sources prior to build/install. Defaults to 'True' except for whl files None
unversioned_packages List of packages that don't have a version at all, i.e. show 0.0.0 []
use_pip Install using '%(python)s -m pip install --prefix=%(prefix)s %(installopts)s %(loc)s' None
use_pip_editable Install using 'pip install --editable' False
use_pip_extras String with comma-separated list of 'extras' to install via pip None
use_pip_for_deps Install dependencies using '%(python)s -m pip install --prefix=%(prefix)s %(installopts)s %(loc)s' False
use_pip_requirement Install using 'python -m pip install --requirement'. The sources is expected to be the requirements file. False
zipped_egg Install as a zipped eggs False

CmdCp

(derives from MakeCp)

Software with no configure, no make, and no make install step. Just run the specified command for all sources, and copy specified files to the install dir

Extra easyconfig parameters specific to CmdCp easyblock

easyconfig parameter description default value
build_cmd Build command to use "make"
build_cmd_targets Target name (string) or list of target names to build ""
build_type Value to provide to --build option of configure script, e.g., x86_64-pc-linux-gnu (determined by config.guess shipped with EasyBuild if None, False implies to leave it up to the configure script) None
cmds_map List of regex/template command (with 'source'/'target' fields) tuples [('.*', '$CC $CFLAGS %(source)s -o %(target)s')]
configure_cmd Configure command to use "./configure"
configure_cmd_prefix Prefix to be glued before ./configure ""
configure_without_installdir Avoid passing an install directory to the configure command (such as via --prefix) False
files_to_copy List of files or dirs to copy None
host_type Value to provide to --host option of configure script, e.g., x86_64-pc-linux-gnu (determined by config.guess shipped with EasyBuild if None, False implies to leave it up to the configure script) None
install_cmd Install command to use "make install"
prefix_opt Prefix command line option for configure script ('--prefix=' if None) None
tar_config_opts Override tar settings as determined by configure. False
test_cmd Test command to use ('runtest' value is appended, default: 'make') None
with_configure Run configure script before building False

Customised steps in CmdCp easyblock

  • build_step - Build by running the command with the inputfiles

  • configure_step - Build by running the command with the inputfiles

  • install_step - Build by running the command with the inputfiles

Conda

(derives from Binary)

Support for installing software using 'conda'.

Extra easyconfig parameters specific to Conda easyblock

easyconfig parameter description default value
channels List of conda channels to pass to 'conda install' None
environment_file Conda environment.yml file to use with 'conda env create' None
extract_sources Whether or not to extract sources False
install_cmd Install command to be used. None
install_cmds List of install commands to be used. None
prepend_to_path Prepend the given directories (relative to install-dir) to the environment variable PATH in the module file. Default is the install-dir itself. ['']
remote_environment Remote conda environment to use with 'conda env create' None
requirements Requirements specification to pass to 'conda install' None
staged_install Perform staged installation via subdirectory of build directory False

Customised steps in Conda easyblock

  • install_step - Install software using 'conda env create' or 'conda create' & 'conda install' (or the 'mamba', etc., equivalent).

ConfigureMake

(derives from EasyBlock)

Support for building and installing applications with configure/make/make install

Extra easyconfig parameters specific to ConfigureMake easyblock

easyconfig parameter description default value
build_cmd Build command to use "make"
build_cmd_targets Target name (string) or list of target names to build ""
build_type Value to provide to --build option of configure script, e.g., x86_64-pc-linux-gnu (determined by config.guess shipped with EasyBuild if None, False implies to leave it up to the configure script) None
configure_cmd Configure command to use "./configure"
configure_cmd_prefix Prefix to be glued before ./configure ""
configure_without_installdir Avoid passing an install directory to the configure command (such as via --prefix) False
host_type Value to provide to --host option of configure script, e.g., x86_64-pc-linux-gnu (determined by config.guess shipped with EasyBuild if None, False implies to leave it up to the configure script) None
install_cmd Install command to use "make install"
prefix_opt Prefix command line option for configure script ('--prefix=' if None) None
tar_config_opts Override tar settings as determined by configure. False
test_cmd Test command to use ('runtest' value is appended, default: 'make') None

Commonly used easyconfig parameters with ConfigureMake easyblock

easyconfig parameter description
configopts Extra options passed to configure (default already has --prefix)
buildopts Extra options passed to make step (default already has -j X)
installopts Extra options for installation

Customised steps in ConfigureMake easyblock

  • build_step - Start the actual build - typical: make -j X

  • configure_step - Configure step - typically ./configure --prefix=/install/path style

  • install_step - Create the installation in correct location - typical: make install

Example easyconfig for ConfigureMake easyblock

easyblock = 'ConfigureMake'

name = 'zsync'
version = '0.6.2'

homepage = 'http://zsync.moria.org.uk/'
description = """zsync-0.6.2: Optimising file distribution program, a 1-to-many rsync"""

toolchain = {'name': 'ictce', 'version': '5.3.0'}

sources = [SOURCE_TAR_BZ2]
source_urls = ['http://zsync.moria.org.uk/download/']

sanity_check_paths = {
    'files': ['bin/zsync'],
    'dirs': []
}

moduleclass = 'tools'

ConfigureMakePythonPackage

(derives from ConfigureMake, PythonPackage)

Build a Python package and module with python configure/make/make install.

Implemented by using:

  • a custom implementation of configure_step
  • using the build_step and install_step from ConfigureMake
  • using the sanity_check_step and make_module_extra from PythonPackage

Extra easyconfig parameters specific to ConfigureMakePythonPackage easyblock

easyconfig parameter description default value
build_cmd Build command to use "make"
build_cmd_targets Target name (string) or list of target names to build ""
build_type Value to provide to --build option of configure script, e.g., x86_64-pc-linux-gnu (determined by config.guess shipped with EasyBuild if None, False implies to leave it up to the configure script) None
buildcmd Command for building the package (e.g. for custom builds resulting in a whl file). When using setup.py this will be passed to setup.py and defaults to 'build'. Otherwise it will be used as-is. A value of None then skips the build step. The template %(python)s will be replace by the currently used Python binary. None
check_ldshared Check Python value of $LDSHARED, correct if needed to "$CC -shared" None
configure_cmd Configure command to use "./configure"
configure_cmd_prefix Prefix to be glued before ./configure ""
configure_without_installdir Avoid passing an install directory to the configure command (such as via --prefix) False
download_dep_fail Fail if downloaded dependencies are detected None
host_type Value to provide to --host option of configure script, e.g., x86_64-pc-linux-gnu (determined by config.guess shipped with EasyBuild if None, False implies to leave it up to the configure script) None
install_cmd Install command to use "make install"
install_src Source path to pass to the install command (e.g. a whl file).Defaults to '.' for unpacked sources or the first source file specified None
install_target Option to pass to setup.py "install"
max_py_majver Maximum major Python version (only relevant when using system Python) None
max_py_minver Maximum minor Python version (only relevant when using system Python) None
options Dictionary with extension options. {}
pip_ignore_installed Let pip ignore installed Python packages (i.e. don't remove them) True
pip_no_index Pass --no-index to pip to disable connecting to PyPi entirely which also disables the pip version check. Enabled by default when pip_ignore_installed=True None
pip_verbose Pass --verbose to 'pip install' (if pip is used). Enabled by default if the EB option --debug is used. None
prefix_opt Prefix command line option for configure script ('--prefix=' if None) None
req_py_majver Required major Python version (only relevant when using system Python) None
req_py_minver Required minor Python version (only relevant when using system Python) None
runtest Run unit tests. True
sanity_pip_check Run 'python -m pip check' to ensure all required Python packages are installed and check for any package with an invalid (0.0.0) version. False
source_urls List of URLs for source files ['https://pypi.python.org/packages/source/%(nameletter)s/%(name)s']
tar_config_opts Override tar settings as determined by configure. False
test_cmd Test command to use ('runtest' value is appended, default: 'make') None
testinstall Install into temporary directory prior to running the tests. False
unpack_sources Unpack sources prior to build/install. Defaults to 'True' except for whl files None
unversioned_packages List of packages that don't have a version at all, i.e. show 0.0.0 []
use_pip Install using '%(python)s -m pip install --prefix=%(prefix)s %(installopts)s %(loc)s' None
use_pip_editable Install using 'pip install --editable' False
use_pip_extras String with comma-separated list of 'extras' to install via pip None
use_pip_for_deps Install dependencies using '%(python)s -m pip install --prefix=%(prefix)s %(installopts)s %(loc)s' False
use_pip_requirement Install using 'python -m pip install --requirement'. The sources is expected to be the requirements file. False
zipped_egg Install as a zipped eggs False

Customised steps in ConfigureMakePythonPackage easyblock

  • build_step - Build Python package with make.

  • configure_step - Configure build using python configure.

  • install_step - Install with make install.

Example easyconfig for ConfigureMakePythonPackage easyblock

easyblock = 'ConfigureMakePythonPackage'

name = 'PyQt'
version = '4.11.3'
versionsuffix = '-Python-%(pyver)s'

homepage = 'http://www.riverbankcomputing.co.uk/software/pyqt'
description = """PyQt is a set of Python v2 and v3 bindings for Digia's Qt application framework."""

toolchain = {'name': 'goolf', 'version': '1.5.14'}

sources = ['%(name)s-x11-gpl-%(version)s.tar.gz']
source_urls = ['http://sourceforge.net/projects/pyqt/files/PyQt4/PyQt-%(version)s']

dependencies = [
    ('Python', '2.7.9'),
    ('SIP', '4.16.4', versionsuffix),
    ('Qt', '4.8.6'),
]

configopts = "configure-ng.py --confirm-license"
configopts += " --destdir=%%(installdir)s/lib/python%(pyshortver)s/site-packages "
configopts += " --no-sip-files"

options = {'modulename': 'PyQt4'}

modextrapaths = {'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages'}

moduleclass = 'vis'

CrayToolchain

(derives from Bundle)

Compiler toolchain: generate module file only, nothing to build/install

Extra easyconfig parameters specific to CrayToolchain easyblock

easyconfig parameter description default value
altroot Software name of dependency to use to define $EBROOT for this bundle None
altversion Software name of dependency to use to define $EBVERSION for this bundle None
components List of components to install: tuples w/ name, version and easyblock to use ()
default_component_specs Default specs to use for every component {}
default_easyblock Default easyblock to use for components None
sanity_check_all_components Enable sanity checks for all components False
sanity_check_components List of components for which to run sanity checks []

FortranPythonPackage

(derives from PythonPackage)

Extends PythonPackage to add a Fortran compiler to the make call

Extra easyconfig parameters specific to FortranPythonPackage easyblock

easyconfig parameter description default value
buildcmd Command for building the package (e.g. for custom builds resulting in a whl file). When using setup.py this will be passed to setup.py and defaults to 'build'. Otherwise it will be used as-is. A value of None then skips the build step. The template %(python)s will be replace by the currently used Python binary. None
check_ldshared Check Python value of $LDSHARED, correct if needed to "$CC -shared" None
download_dep_fail Fail if downloaded dependencies are detected None
install_src Source path to pass to the install command (e.g. a whl file).Defaults to '.' for unpacked sources or the first source file specified None
install_target Option to pass to setup.py "install"
max_py_majver Maximum major Python version (only relevant when using system Python) None
max_py_minver Maximum minor Python version (only relevant when using system Python) None
options Dictionary with extension options. {}
pip_ignore_installed Let pip ignore installed Python packages (i.e. don't remove them) True
pip_no_index Pass --no-index to pip to disable connecting to PyPi entirely which also disables the pip version check. Enabled by default when pip_ignore_installed=True None
pip_verbose Pass --verbose to 'pip install' (if pip is used). Enabled by default if the EB option --debug is used. None
req_py_majver Required major Python version (only relevant when using system Python) None
req_py_minver Required minor Python version (only relevant when using system Python) None
runtest Run unit tests. True
sanity_pip_check Run 'python -m pip check' to ensure all required Python packages are installed and check for any package with an invalid (0.0.0) version. False
source_urls List of URLs for source files ['https://pypi.python.org/packages/source/%(nameletter)s/%(name)s']
testinstall Install into temporary directory prior to running the tests. False
unpack_sources Unpack sources prior to build/install. Defaults to 'True' except for whl files None
unversioned_packages List of packages that don't have a version at all, i.e. show 0.0.0 []
use_pip Install using '%(python)s -m pip install --prefix=%(prefix)s %(installopts)s %(loc)s' None
use_pip_editable Install using 'pip install --editable' False
use_pip_extras String with comma-separated list of 'extras' to install via pip None
use_pip_for_deps Install dependencies using '%(python)s -m pip install --prefix=%(prefix)s %(installopts)s %(loc)s' False
use_pip_requirement Install using 'python -m pip install --requirement'. The sources is expected to be the requirements file. False
zipped_egg Install as a zipped eggs False

Customised steps in FortranPythonPackage easyblock

  • build_step - Customize the build step by adding compiler-specific flags to the build command.

  • configure_step - Customize the build step by adding compiler-specific flags to the build command.

  • install_step - Customize the build step by adding compiler-specific flags to the build command.

GoPackage

(derives from EasyBlock)

Builds and installs a Go package, and provides a dedicated module file.

Extra easyconfig parameters specific to GoPackage easyblock

easyconfig parameter description default value
forced_deps Force specific version of Go package, when building non-native module None
modulename Module name of the Go package, when building non-native module None

Customised steps in GoPackage easyblock

  • build_step - If Go package is not native go module, lets try to make the module.

  • configure_step - Configure Go package build/install.

  • install_step - Install Go package to a custom path

IntelBase

(derives from EasyBlock)

Base class for Intel software

  • no configure/make : binary release
  • add license_file variable

Extra easyconfig parameters specific to IntelBase easyblock

easyconfig parameter description default value
components List of components to install None
license_activation License activation type "license_server"
m32 Enable 32-bit toolchain False
requires_runtime_license Boolean indicating whether or not a runtime license is required True
serial_number Serial number for the product None
usetmppath Use temporary path for installation False

Customised steps in IntelBase easyblock

  • build_step - Binary installation files, so no building.

  • configure_step - Configure: handle license file and clean home dir.

  • install_step - Install Intel software

JAR

(derives from Binary)

Support for installing JAR files.

Extra easyconfig parameters specific to JAR easyblock

easyconfig parameter description default value
extract_sources Whether or not to extract sources False
install_cmd Install command to be used. None
install_cmds List of install commands to be used. None
prepend_to_path Prepend the given directories (relative to install-dir) to the environment variable PATH in the module file. Default is the install-dir itself. ['']
staged_install Perform staged installation via subdirectory of build directory False

JuliaBundle

(derives from Bundle, JuliaPackage)

Bundle of JuliaPackages: install Julia packages as extensions in a bundle Defines custom sanity checks and module environment

Extra easyconfig parameters specific to JuliaBundle easyblock

easyconfig parameter description default value
altroot Software name of dependency to use to define $EBROOT for this bundle None
altversion Software name of dependency to use to define $EBVERSION for this bundle None
components List of components to install: tuples w/ name, version and easyblock to use ()
default_component_specs Default specs to use for every component {}
default_easyblock Default easyblock to use for components None
download_pkg_deps Let Julia download and bundle all needed dependencies for this installation False
options Dictionary with extension options. {}
sanity_check_all_components Enable sanity checks for all components False
sanity_check_components List of components for which to run sanity checks []

Customised steps in JuliaBundle easyblock

  • install_step - Prepare installation environment and dd all dependencies to project environment.

JuliaPackage

(derives from ExtensionEasyBlock)

Builds and installs Julia Packages.

Julia environment setup during installation: - initialize new Julia environment in 'environments' subdir in installation directory - remove paths in user depot '~/.julia' from DEPOT_PATH and LOAD_PATH - put installation directory as top DEPOT_PATH, the target depot for installations with Pkg - put installation environment as top LOAD_PATH, needed to precompile installed packages - add Julia packages found in dependencies of the easyconfig to installation environment, needed for Pkg to be aware of those packages and not install them again - add newly installed Julia packages to installation environment (automatically done by Pkg)

Julia environment setup on module load: User depot and its shared environment for this version of Julia are kept as top paths of DEPOT_PATH and LOAD_PATH respectively. This ensures that the user can keep using its own environment after loading JuliaPackage modules, installing additional software on its personal depot while still using packages provided by the module. Effectively, this translates to: - append installation directory to list of DEPOT_PATH, only really needed to load artifacts (JLL packages) - append installation Project.toml file to list of LOAD_PATH, needed to load packages with using command

Extra easyconfig parameters specific to JuliaPackage easyblock

easyconfig parameter description default value
download_pkg_deps Let Julia download and bundle all needed dependencies for this installation False
options Dictionary with extension options. {}

Customised steps in JuliaPackage easyblock

  • build_step - No separate build procedure for JuliaPackage.

  • configure_step - No separate configuration for JuliaPackage.

  • install_step - Prepare installation environment and install Julia package.

MakeCp

(derives from ConfigureMake)

Software with no configure and no make install step.

Extra easyconfig parameters specific to MakeCp easyblock

easyconfig parameter description default value
build_cmd Build command to use "make"
build_cmd_targets Target name (string) or list of target names to build ""
build_type Value to provide to --build option of configure script, e.g., x86_64-pc-linux-gnu (determined by config.guess shipped with EasyBuild if None, False implies to leave it up to the configure script) None
configure_cmd Configure command to use "./configure"
configure_cmd_prefix Prefix to be glued before ./configure ""
configure_without_installdir Avoid passing an install directory to the configure command (such as via --prefix) False
files_to_copy List of files or dirs to copy None
host_type Value to provide to --host option of configure script, e.g., x86_64-pc-linux-gnu (determined by config.guess shipped with EasyBuild if None, False implies to leave it up to the configure script) None
install_cmd Install command to use "make install"
prefix_opt Prefix command line option for configure script ('--prefix=' if None) None
tar_config_opts Override tar settings as determined by configure. False
test_cmd Test command to use ('runtest' value is appended, default: 'make') None
with_configure Run configure script before building False

Customised steps in MakeCp easyblock

  • configure_step - Configure build if required

  • install_step - Install by copying specified files and directories.

MesonNinja

(derives from EasyBlock)

Support for building and installing software with 'meson' and 'ninja'.

Extra easyconfig parameters specific to MesonNinja easyblock

easyconfig parameter description default value
build_cmd Build command to use "ninja"
build_dir build_dir to pass to meson None
configure_cmd Configure command to use "meson"
install_cmd Install command to use "ninja"
separate_build_dir Perform build in a separate directory True

Customised steps in MesonNinja easyblock

  • build_step - Build with Ninja.

  • configure_step - Configure with Meson.

  • install_step - Install with 'ninja install'.

ModuleRC

(derives from EasyBlock)

Generic easyblock to create a software-specific .modulerc file

Extra easyconfig parameters specific to ModuleRC easyblock

easyconfig parameter description default value
check_version Check version is prefix of dependency True

Customised steps in ModuleRC easyblock

  • build_step - Do nothing.

  • configure_step - Do nothing.

  • install_step - Do nothing.

OCamlPackage

(derives from ExtensionEasyBlock)

Builds and installs OCaml packages using OPAM package manager.

Extra easyconfig parameters specific to OCamlPackage easyblock

easyconfig parameter description default value
options Dictionary with extension options. {}

Customised steps in OCamlPackage easyblock

  • configure_step - Raise error when configure step is run: installing OCaml packages stand-alone is not supported (yet)

  • install_step - Raise error when configure step is run: installing OCaml packages stand-alone is not supported (yet)

OctavePackage

(derives from ExtensionEasyBlock)

Builds and installs Octave extension toolboxes.

Extra easyconfig parameters specific to OctavePackage easyblock

easyconfig parameter description default value
options Dictionary with extension options. {}

Customised steps in OctavePackage easyblock

  • configure_step - Raise error when configure step is run: installing Octave toolboxes stand-alone is not supported (yet)

  • install_step - Raise error when configure step is run: installing Octave toolboxes stand-alone is not supported (yet)

PackedBinary

(derives from Binary, EasyBlock)

Support for installing packed binary software. Just unpack the sources in the install dir

Extra easyconfig parameters specific to PackedBinary easyblock

easyconfig parameter description default value
extract_sources Whether or not to extract sources False
install_cmd Install command to be used. None
install_cmds List of install commands to be used. None
prepend_to_path Prepend the given directories (relative to install-dir) to the environment variable PATH in the module file. Default is the install-dir itself. ['']
staged_install Perform staged installation via subdirectory of build directory False

Customised steps in PackedBinary easyblock

  • install_step - Copy all unpacked source directories to install directory, one-by-one.

PerlBundle

(derives from Bundle)

Bundle of perl modules

Extra easyconfig parameters specific to PerlBundle easyblock

easyconfig parameter description default value
altroot Software name of dependency to use to define $EBROOT for this bundle None
altversion Software name of dependency to use to define $EBVERSION for this bundle None
components List of components to install: tuples w/ name, version and easyblock to use ()
default_component_specs Default specs to use for every component {}
default_easyblock Default easyblock to use for components None
options Dictionary with extension options. {}
prefix_opt String to use for option to set installation prefix (default is 'PREFIX') None
runtest Run unit tests. "test"
sanity_check_all_components Enable sanity checks for all components False
sanity_check_components List of components for which to run sanity checks []

PerlModule

(derives from ExtensionEasyBlock, ConfigureMake)

Builds and installs a Perl module, and can provide a dedicated module file.

Extra easyconfig parameters specific to PerlModule easyblock

easyconfig parameter description default value
options Dictionary with extension options. {}
prefix_opt String to use for option to set installation prefix (default is 'PREFIX') None
runtest Run unit tests. "test"

Customised steps in PerlModule easyblock

  • build_step - No separate build procedure for Perl modules.

  • configure_step - No separate configuration for Perl modules.

  • install_step - Run install procedure for Perl modules.

PythonBundle

(derives from Bundle)

Bundle of PythonPackages: install Python packages as extensions in a bundle Defines custom sanity checks and module environment

Extra easyconfig parameters specific to PythonBundle easyblock

easyconfig parameter description default value
altroot Software name of dependency to use to define $EBROOT for this bundle None
altversion Software name of dependency to use to define $EBVERSION for this bundle None
buildcmd Command for building the package (e.g. for custom builds resulting in a whl file). When using setup.py this will be passed to setup.py and defaults to 'build'. Otherwise it will be used as-is. A value of None then skips the build step. The template %(python)s will be replace by the currently used Python binary. None
check_ldshared Check Python value of $LDSHARED, correct if needed to "$CC -shared" None
components List of components to install: tuples w/ name, version and easyblock to use ()
default_component_specs Default specs to use for every component {}
default_easyblock Default easyblock to use for components None
download_dep_fail Fail if downloaded dependencies are detected None
install_src Source path to pass to the install command (e.g. a whl file).Defaults to '.' for unpacked sources or the first source file specified None
install_target Option to pass to setup.py "install"
max_py_majver Maximum major Python version (only relevant when using system Python) None
max_py_minver Maximum minor Python version (only relevant when using system Python) None
options Dictionary with extension options. {}
pip_ignore_installed Let pip ignore installed Python packages (i.e. don't remove them) True
pip_no_index Pass --no-index to pip to disable connecting to PyPi entirely which also disables the pip version check. Enabled by default when pip_ignore_installed=True None
pip_verbose Pass --verbose to 'pip install' (if pip is used). Enabled by default if the EB option --debug is used. None
req_py_majver Required major Python version (only relevant when using system Python) None
req_py_minver Required minor Python version (only relevant when using system Python) None
runtest Run unit tests. True
sanity_check_all_components Enable sanity checks for all components False
sanity_check_components List of components for which to run sanity checks []
sanity_pip_check Run 'python -m pip check' to ensure all required Python packages are installed and check for any package with an invalid (0.0.0) version. False
source_urls List of URLs for source files ['https://pypi.python.org/packages/source/%(nameletter)s/%(name)s']
testinstall Install into temporary directory prior to running the tests. False
unpack_sources Unpack sources prior to build/install. Defaults to 'True' except for whl files None
unversioned_packages List of packages that don't have a version at all, i.e. show 0.0.0 []
use_pip Install using '%(python)s -m pip install --prefix=%(prefix)s %(installopts)s %(loc)s' None
use_pip_editable Install using 'pip install --editable' False
use_pip_extras String with comma-separated list of 'extras' to install via pip None
use_pip_for_deps Install dependencies using '%(python)s -m pip install --prefix=%(prefix)s %(installopts)s %(loc)s' False
use_pip_requirement Install using 'python -m pip install --requirement'. The sources is expected to be the requirements file. False
zipped_egg Install as a zipped eggs False

PythonPackage

(derives from ExtensionEasyBlock)

Builds and installs a Python package, and provides a dedicated module file.

Extra easyconfig parameters specific to PythonPackage easyblock

easyconfig parameter description default value
buildcmd Command for building the package (e.g. for custom builds resulting in a whl file). When using setup.py this will be passed to setup.py and defaults to 'build'. Otherwise it will be used as-is. A value of None then skips the build step. The template %(python)s will be replace by the currently used Python binary. None
check_ldshared Check Python value of $LDSHARED, correct if needed to "$CC -shared" None
download_dep_fail Fail if downloaded dependencies are detected None
install_src Source path to pass to the install command (e.g. a whl file).Defaults to '.' for unpacked sources or the first source file specified None
install_target Option to pass to setup.py "install"
max_py_majver Maximum major Python version (only relevant when using system Python) None
max_py_minver Maximum minor Python version (only relevant when using system Python) None
options Dictionary with extension options. {}
pip_ignore_installed Let pip ignore installed Python packages (i.e. don't remove them) True
pip_no_index Pass --no-index to pip to disable connecting to PyPi entirely which also disables the pip version check. Enabled by default when pip_ignore_installed=True None
pip_verbose Pass --verbose to 'pip install' (if pip is used). Enabled by default if the EB option --debug is used. None
req_py_majver Required major Python version (only relevant when using system Python) None
req_py_minver Required minor Python version (only relevant when using system Python) None
runtest Run unit tests. True
sanity_pip_check Run 'python -m pip check' to ensure all required Python packages are installed and check for any package with an invalid (0.0.0) version. False
source_urls List of URLs for source files ['https://pypi.python.org/packages/source/%(nameletter)s/%(name)s']
testinstall Install into temporary directory prior to running the tests. False
unpack_sources Unpack sources prior to build/install. Defaults to 'True' except for whl files None
unversioned_packages List of packages that don't have a version at all, i.e. show 0.0.0 []
use_pip Install using '%(python)s -m pip install --prefix=%(prefix)s %(installopts)s %(loc)s' None
use_pip_editable Install using 'pip install --editable' False
use_pip_extras String with comma-separated list of 'extras' to install via pip None
use_pip_for_deps Install dependencies using '%(python)s -m pip install --prefix=%(prefix)s %(installopts)s %(loc)s' False
use_pip_requirement Install using 'python -m pip install --requirement'. The sources is expected to be the requirements file. False
zipped_egg Install as a zipped eggs False

Customised steps in PythonPackage easyblock

  • build_step - Build Python package using setup.py

  • configure_step - Configure Python package build/install.

  • install_step - Install Python package to a custom path using setup.py

RPackage

(derives from ExtensionEasyBlock)

Install an R package as a separate module, or as an extension.

Extra easyconfig parameters specific to RPackage easyblock

easyconfig parameter description default value
exts_subdir Subdirectory where R extensions should be installed info ""
options Dictionary with extension options. {}
unpack_sources Unpack sources before installation False

Customised steps in RPackage easyblock

  • build_step - No separate build step for R packages.

  • configure_step - No configuration for installing R packages.

  • install_step - Install procedure for R packages.

Rpm

(derives from Binary)

Support for installing RPM files.

  • sources is a list of rpms
  • installation is with --nodeps (so the sources list has to be complete)

Extra easyconfig parameters specific to Rpm easyblock

easyconfig parameter description default value
extract_sources Whether or not to extract sources False
force Use force False
install_cmd Install command to be used. None
install_cmds List of install commands to be used. None
makesymlinks Create symlinks for listed paths []
postinstall Enable post install False
preinstall Enable pre install False
prepend_to_path Prepend the given directories (relative to install-dir) to the environment variable PATH in the module file. Default is the install-dir itself. ['']
staged_install Perform staged installation via subdirectory of build directory False

Customised steps in Rpm easyblock

  • configure_step - Custom configuration procedure for RPMs: rebuild RPMs for relocation if required.

  • install_step - Custom installation procedure for RPMs into a custom prefix.

RubyGem

(derives from ExtensionEasyBlock)

Builds and installs Ruby Gems.

Extra easyconfig parameters specific to RubyGem easyblock

easyconfig parameter description default value
gem_file Path to gem file in unpacked sources None
options Dictionary with extension options. {}

Customised steps in RubyGem easyblock

  • configure_step - No separate configuration for Ruby Gems.

  • install_step - Install Ruby Gems using gem package manager

SCons

(derives from EasyBlock)

Support for building/installing with SCons.

Extra easyconfig parameters specific to SCons easyblock

easyconfig parameter description default value
prefix_arg Syntax for specifying installation prefix "PREFIX="

Customised steps in SCons easyblock

  • build_step - Build with SCons

  • configure_step - No configure step for SCons

  • install_step - Install with SCons

SystemCompiler

(derives from Bundle, EB_GCC, EB_ifort)

Support for generating a module file for the system compiler with specified name.

The compiler is expected to be available in $PATH, required libraries are assumed to be readily available.

Specifying 'system' as a version leads to using the derived compiler version in the generated module; if an actual version is specified, it is checked against the derived version of the system compiler that was found.

Extra easyconfig parameters specific to SystemCompiler easyblock

easyconfig parameter description default value
altroot Software name of dependency to use to define $EBROOT for this bundle None
altversion Software name of dependency to use to define $EBVERSION for this bundle None
build_cmd Build command to use "make"
build_cmd_targets Target name (string) or list of target names to build ""
build_type Value to provide to --build option of configure script, e.g., x86_64-pc-linux-gnu (determined by config.guess shipped with EasyBuild if None, False implies to leave it up to the configure script) None
clooguseisl Use ISL with CLooG or not False
components List of components to install: tuples w/ name, version and easyblock to use ()
configure_cmd Configure command to use "./configure"
configure_cmd_prefix Prefix to be glued before ./configure ""
configure_without_installdir Avoid passing an install directory to the configure command (such as via --prefix) False
default_component_specs Default specs to use for every component {}
default_easyblock Default easyblock to use for components None
generate_standalone_module Add known path/library extensions and environment variables for the compiler to the final module False
generic Build GCC and support libraries such that it runs on all processors of the target architecture (use False to enforce non-generic regardless of configuration) None
host_type Value to provide to --host option of configure script, e.g., x86_64-pc-linux-gnu (determined by config.guess shipped with EasyBuild if None, False implies to leave it up to the configure script) None
install_cmd Install command to use "make install"
languages List of languages to build GCC for (--enable-languages) []
license_activation License activation type "license_server"
m32 Enable 32-bit toolchain False
multilib Build multilib gcc (both i386 and x86_64) False
pplwatchdog Enable PPL watchdog False
prefer_lib_subdir Configure GCC to prefer 'lib' subdirs over 'lib64' when linking False
prefix_opt Prefix command line option for configure script ('--prefix=' if None) None
profiled Bootstrap GCC with profile-guided optimizations False
rename_include_fixed Rename the 'include-fixed' directory to avoid that it is used by GCC. This avoids issues when upgrading the OS but might limit the functionality of GCC, especially if the OS GLIBC is older than GCC. A script to (re-)generate the include-fixed folder is created in the 'easybuild' subfolder inside the installation directory. False
requires_runtime_license Boolean indicating whether or not a runtime license is required True
sanity_check_all_components Enable sanity checks for all components False
sanity_check_components List of components for which to run sanity checks []
serial_number Serial number for the product None
tar_config_opts Override tar settings as determined by configure. False
test_cmd Test command to use ('runtest' value is appended, default: 'make') None
use_gold_linker Configure GCC to use GOLD as default linker (default: enable automatically for GCC < 11.3.0, except on RISC-V) None
usetmppath Use temporary path for installation False
withamdgcn Build GCC with AMD GCN offload support False
withcloog Build GCC with CLooG support False
withisl Build GCC with ISL support False
withlibiberty Enable installing of libiberty False
withlto Enable LTO support True
withnvptx Build GCC with NVPTX offload support False
withppl Build GCC with PPL support False

SystemMPI

(derives from Bundle, ConfigureMake, EB_impi)

Support for generating a module file for the system mpi with specified name.

The mpi compiler is expected to be available in $PATH, required libraries are assumed to be readily available.

Specifying 'system' as a version leads to using the derived mpi version in the generated module; if an actual version is specified, it is checked against the derived version of the system mpi that was found.

Extra easyconfig parameters specific to SystemMPI easyblock

easyconfig parameter description default value
altroot Software name of dependency to use to define $EBROOT for this bundle None
altversion Software name of dependency to use to define $EBVERSION for this bundle None
build_cmd Build command to use "make"
build_cmd_targets Target name (string) or list of target names to build ""
build_type Value to provide to --build option of configure script, e.g., x86_64-pc-linux-gnu (determined by config.guess shipped with EasyBuild if None, False implies to leave it up to the configure script) None
components List of components to install: tuples w/ name, version and easyblock to use ()
configure_cmd Configure command to use "./configure"
configure_cmd_prefix Prefix to be glued before ./configure ""
configure_without_installdir Avoid passing an install directory to the configure command (such as via --prefix) False
default_component_specs Default specs to use for every component {}
default_easyblock Default easyblock to use for components None
generate_standalone_module Add known path extensions and environment variables for the MPI installation to the final module False
host_type Value to provide to --host option of configure script, e.g., x86_64-pc-linux-gnu (determined by config.guess shipped with EasyBuild if None, False implies to leave it up to the configure script) None
install_cmd Install command to use "make install"
libfabric_configopts Configure options for the provided libfabric ""
libfabric_rebuild Try to rebuild internal libfabric instead of using provided binary True
license_activation License activation type "license_server"
m32 Enable 32-bit toolchain False
ofi_internal Use internal shipped libfabric instead of external libfabric True
prefix_opt Prefix command line option for configure script ('--prefix=' if None) None
requires_runtime_license Boolean indicating whether or not a runtime license is required True
sanity_check_all_components Enable sanity checks for all components False
sanity_check_components List of components for which to run sanity checks []
serial_number Serial number for the product None
set_mpi_wrapper_aliases_gcc Set compiler for mpigcc/mpigxx via aliases False
set_mpi_wrapper_aliases_intel Set compiler for mpiicc/mpiicpc/mpiifort via aliases False
set_mpi_wrappers_all Set (default) compiler for all MPI wrapper commands False
set_mpi_wrappers_compiler Override default compiler used by MPI wrapper commands False
tar_config_opts Override tar settings as determined by configure. False
test_cmd Test command to use ('runtest' value is appended, default: 'make') None
usetmppath Use temporary path for installation False

Tarball

(derives from ExtensionEasyBlock)

Precompiled software supplied as a tarball: will unpack binary and copy it to the install dir

Extra easyconfig parameters specific to Tarball easyblock

easyconfig parameter description default value
install_type Defaults to extract tarball into clean directory. Options: 'merge' merges tarball to existing directory, 'subdir' extracts tarball into its own sub-directory None
options Dictionary with extension options. {}
preinstall_cmd Command to execute before installation None

Customised steps in Tarball easyblock

  • build_step - Dummy build method: nothing to build

  • configure_step - Dummy configure method

  • install_step - Install by copying from specified source directory (or 'start_dir' if not specified).

Toolchain

(derives from Bundle)

Compiler toolchain easyblock: nothing to install, just generate module file.

Extra easyconfig parameters specific to Toolchain easyblock

easyconfig parameter description default value
altroot Software name of dependency to use to define $EBROOT for this bundle None
altversion Software name of dependency to use to define $EBVERSION for this bundle None
components List of components to install: tuples w/ name, version and easyblock to use ()
default_component_specs Default specs to use for every component {}
default_easyblock Default easyblock to use for components None
sanity_check_all_components Enable sanity checks for all components False
sanity_check_components List of components for which to run sanity checks []
set_env_external_modules Include setenv statements for toolchain components that use an external module, based on available metadata False

VSCPythonPackage

(derives from VersionIndependentPythonPackage)

Support for install VSC Python packages.

Extra easyconfig parameters specific to VSCPythonPackage easyblock

easyconfig parameter description default value
buildcmd Command for building the package (e.g. for custom builds resulting in a whl file). When using setup.py this will be passed to setup.py and defaults to 'build'. Otherwise it will be used as-is. A value of None then skips the build step. The template %(python)s will be replace by the currently used Python binary. None
check_ldshared Check Python value of $LDSHARED, correct if needed to "$CC -shared" None
download_dep_fail Fail if downloaded dependencies are detected None
install_src Source path to pass to the install command (e.g. a whl file).Defaults to '.' for unpacked sources or the first source file specified None
install_target Option to pass to setup.py "install"
max_py_majver Maximum major Python version (only relevant when using system Python) None
max_py_minver Maximum minor Python version (only relevant when using system Python) None
options Dictionary with extension options. {}
pip_ignore_installed Let pip ignore installed Python packages (i.e. don't remove them) True
pip_no_index Pass --no-index to pip to disable connecting to PyPi entirely which also disables the pip version check. Enabled by default when pip_ignore_installed=True None
pip_verbose Pass --verbose to 'pip install' (if pip is used). Enabled by default if the EB option --debug is used. None
req_py_majver Required major Python version (only relevant when using system Python) None
req_py_minver Required minor Python version (only relevant when using system Python) None
runtest Run unit tests. True
sanity_pip_check Run 'python -m pip check' to ensure all required Python packages are installed and check for any package with an invalid (0.0.0) version. False
source_urls List of URLs for source files ['https://pypi.python.org/packages/source/%(nameletter)s/%(name)s']
testinstall Install into temporary directory prior to running the tests. False
unpack_sources Unpack sources prior to build/install. Defaults to 'True' except for whl files None
unversioned_packages List of packages that don't have a version at all, i.e. show 0.0.0 []
use_pip Install using '%(python)s -m pip install --prefix=%(prefix)s %(installopts)s %(loc)s' None
use_pip_editable Install using 'pip install --editable' False
use_pip_extras String with comma-separated list of 'extras' to install via pip None
use_pip_for_deps Install dependencies using '%(python)s -m pip install --prefix=%(prefix)s %(installopts)s %(loc)s' False
use_pip_requirement Install using 'python -m pip install --requirement'. The sources is expected to be the requirements file. False
zipped_egg Install as a zipped eggs False

VersionIndependentPythonPackage

(derives from PythonPackage)

Support for building/installing python packages without requiring a specific python package.

Extra easyconfig parameters specific to VersionIndependentPythonPackage easyblock

easyconfig parameter description default value
buildcmd Command for building the package (e.g. for custom builds resulting in a whl file). When using setup.py this will be passed to setup.py and defaults to 'build'. Otherwise it will be used as-is. A value of None then skips the build step. The template %(python)s will be replace by the currently used Python binary. None
check_ldshared Check Python value of $LDSHARED, correct if needed to "$CC -shared" None
download_dep_fail Fail if downloaded dependencies are detected None
install_src Source path to pass to the install command (e.g. a whl file).Defaults to '.' for unpacked sources or the first source file specified None
install_target Option to pass to setup.py "install"
max_py_majver Maximum major Python version (only relevant when using system Python) None
max_py_minver Maximum minor Python version (only relevant when using system Python) None
options Dictionary with extension options. {}
pip_ignore_installed Let pip ignore installed Python packages (i.e. don't remove them) True
pip_no_index Pass --no-index to pip to disable connecting to PyPi entirely which also disables the pip version check. Enabled by default when pip_ignore_installed=True None
pip_verbose Pass --verbose to 'pip install' (if pip is used). Enabled by default if the EB option --debug is used. None
req_py_majver Required major Python version (only relevant when using system Python) None
req_py_minver Required minor Python version (only relevant when using system Python) None
runtest Run unit tests. True
sanity_pip_check Run 'python -m pip check' to ensure all required Python packages are installed and check for any package with an invalid (0.0.0) version. False
source_urls List of URLs for source files ['https://pypi.python.org/packages/source/%(nameletter)s/%(name)s']
testinstall Install into temporary directory prior to running the tests. False
unpack_sources Unpack sources prior to build/install. Defaults to 'True' except for whl files None
unversioned_packages List of packages that don't have a version at all, i.e. show 0.0.0 []
use_pip Install using '%(python)s -m pip install --prefix=%(prefix)s %(installopts)s %(loc)s' None
use_pip_editable Install using 'pip install --editable' False
use_pip_extras String with comma-separated list of 'extras' to install via pip None
use_pip_for_deps Install dependencies using '%(python)s -m pip install --prefix=%(prefix)s %(installopts)s %(loc)s' False
use_pip_requirement Install using 'python -m pip install --requirement'. The sources is expected to be the requirements file. False
zipped_egg Install as a zipped eggs False

Customised steps in VersionIndependentPythonPackage easyblock

  • build_step - No build procedure.

  • configure_step - No build procedure.

  • install_step - Custom install procedure to skip selection of python package versions.

Waf

(derives from EasyBlock)

Support for building and installing applications with waf

Customised steps in Waf easyblock

  • build_step - Build with ./waf build

  • configure_step - Configure with ./waf configure --prefix=

  • install_step - Install with ./waf install