(this page was generated automatically using easybuild.tools.docs.gen_easyblocks_overview_rst() )

Overview of generic easyblocks

BinariesTarball - Binary - BuildEnv - Bundle - CMakeMake - CMakePythonPackage - CmdCp - Conda - ConfigureMake - ConfigureMakePythonPackage - CrayToolchain - FortranPythonPackage - IntelBase - JAR - MakeCp - OCamlPackage - PackedBinary - PerlModule - PythonPackage - RPackage - Rpm - RubyGem - SCons - SystemCompiler - Tarball - Toolchain - VSCPythonPackage - VersionIndependendPythonPackage - VersionIndependentPythonPackage - Waf

BinariesTarball

(derives from Tarball)

Support for installing a tarball of binaries

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
staged_install Perform staged installation via subdirectory of build directory False
install_cmd Install command to be used. None

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 = {'name': 'dummy', 'version': 'dummy'}

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_easyblock Default easyblock to use for components None

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_easyblock Default easyblock to use for components None

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
configure_cmd_prefix Prefix to be glued before ./configure ""
prefix_opt Prefix command line option for configure script (‘–prefix=’ if None) None
tar_config_opts Override tar settings as determined by configure. False
separate_build_dir Perform build in a separate directory False
srcdir Source directory location to provide to cmake command 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'

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 install this in a seperate location and generate a module file which sets the PYTHONPATH.

We use the default CMake implementation, and use make_module_extra from PythonPackage.

Extra easyconfig parameters specific to CMakePythonPackage easyblock

easyconfig parameter description default value
configure_cmd_prefix Prefix to be glued before ./configure ""
unpack_sources Unpack sources prior to build/install True
tar_config_opts Override tar settings as determined by configure. False
use_easy_install Install using ‘%(python)s setup.py easy_install –prefix=%(prefix)s %(installopts)s %(loc)s’ False
req_py_minver Required minor Python version (only relevant when using system Python) 6
runtest Run unit tests. True
prefix_opt Prefix command line option for configure script (‘–prefix=’ if None) None
separate_build_dir Perform build in a separate directory False
use_setup_py_develop Install using ‘%(python)s setup.py develop –prefix=%(prefix)s %(installopts)s’ False
use_pip Install using ‘pip install –prefix=%(prefix)s %(installopts)s %(loc)s’ False
srcdir Source directory location to provide to cmake command None
req_py_majver Required major Python version (only relevant when using system Python) 2
zipped_egg Install as a zipped eggs (requires use_easy_install) False
options Dictionary with extension options. {}

Customised steps in CMakePythonPackage easyblock

  • build_step - Build Python package with cmake
  • configure_step - Main configuration using cmake
  • install_step - Install with cmake install

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
configure_cmd_prefix Prefix to be glued before ./configure ""
tar_config_opts Override tar settings as determined by configure. False
with_configure Run configure script before building False
files_to_copy List of files or dirs to copy []
cmds_map List of regex/template command (with ‘source’/’target’ fields) tuples [('.*', '$CC $CFLAGS %(source)s -o %(target)s')]
prefix_opt Prefix command line option for configure script (‘–prefix=’ if None) None

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
requirements Requirements specification to pass to ‘conda install’ None
install_cmd Install command to be used. None
staged_install Perform staged installation via subdirectory of build directory False
environment_file Conda environment.yml file to use with ‘conda env create’ None
remote_environment Remote conda environment to use with ‘conda env create’ None

Customised steps in Conda easyblock

  • install_step - Install software using ‘conda env create’ or ‘conda create’ & ‘conda install’.

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
configure_cmd_prefix Prefix to be glued before ./configure ""
prefix_opt Prefix command line option for configure script (‘–prefix=’ if None) None
tar_config_opts Override tar settings as determined by configure. False

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
configure_cmd_prefix Prefix to be glued before ./configure ""
unpack_sources Unpack sources prior to build/install True
tar_config_opts Override tar settings as determined by configure. False
use_easy_install Install using ‘%(python)s setup.py easy_install –prefix=%(prefix)s %(installopts)s %(loc)s’ False
req_py_minver Required minor Python version (only relevant when using system Python) 6
runtest Run unit tests. True
prefix_opt Prefix command line option for configure script (‘–prefix=’ if None) None
use_setup_py_develop Install using ‘%(python)s setup.py develop –prefix=%(prefix)s %(installopts)s’ False
use_pip Install using ‘pip install –prefix=%(prefix)s %(installopts)s %(loc)s’ False
req_py_majver Required major Python version (only relevant when using system Python) 2
zipped_egg Install as a zipped eggs (requires use_easy_install) False
options Dictionary with extension options. {}

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_easyblock Default easyblock to use for components None

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
unpack_sources Unpack sources prior to build/install True
use_easy_install Install using ‘%(python)s setup.py easy_install –prefix=%(prefix)s %(installopts)s %(loc)s’ False
req_py_minver Required minor Python version (only relevant when using system Python) 6
runtest Run unit tests. True
use_setup_py_develop Install using ‘%(python)s setup.py develop –prefix=%(prefix)s %(installopts)s’ False
use_pip Install using ‘pip install –prefix=%(prefix)s %(installopts)s %(loc)s’ False
req_py_majver Required major Python version (only relevant when using system Python) 2
zipped_egg Install as a zipped eggs (requires use_easy_install) False
options Dictionary with extension options. {}

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.

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
requires_runtime_license Boolean indicating whether or not a runtime license is required True
usetmppath Use temporary path for installation False
m32 Enable 32-bit toolchain False
components List of components to install None
license_activation License activation type "license_server"

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 - Actual installation

    • create silent cfg file
    • set environment parameters
    • execute command

JAR

(derives from Binary)

Support for installing JAR files.

Extra easyconfig parameters specific to JAR easyblock

easyconfig parameter description default value
staged_install Perform staged installation via subdirectory of build directory False
install_cmd Install command to be used. None

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
files_to_copy List of files or dirs to copy []
configure_cmd_prefix Prefix to be glued before ./configure ""
prefix_opt Prefix command line option for configure script (‘–prefix=’ if None) None
tar_config_opts Override tar settings as determined by configure. False
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.

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)

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
staged_install Perform staged installation via subdirectory of build directory False
install_cmd Install command to be used. None

Customised steps in PackedBinary easyblock

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

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
runtest Run unit tests. "test"
options Dictionary with extension options. {}

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.

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
unpack_sources Unpack sources prior to build/install True
use_easy_install Install using ‘%(python)s setup.py easy_install –prefix=%(prefix)s %(installopts)s %(loc)s’ False
req_py_minver Required minor Python version (only relevant when using system Python) 6
runtest Run unit tests. True
use_setup_py_develop Install using ‘%(python)s setup.py develop –prefix=%(prefix)s %(installopts)s’ False
use_pip Install using ‘pip install –prefix=%(prefix)s %(installopts)s %(loc)s’ False
req_py_majver Required major Python version (only relevant when using system Python) 2
zipped_egg Install as a zipped eggs (requires use_easy_install) False
options Dictionary with extension options. {}

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
options Dictionary with extension options. {}

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
postinstall Enable post install False
force Use force False
install_cmd Install command to be used. None
staged_install Perform staged installation via subdirectory of build directory False
makesymlinks Create symlinks for listed paths []
preinstall Enable pre install 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
options Dictionary with extension options. {}

Customised steps in RubyGem easyblock

  • build_step - No separate build procedure for Ruby Gems.
  • 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)

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
components List of components to install: tuples w/ name, version and easyblock to use ()
default_easyblock Default easyblock to use for components None

Tarball

(derives from EasyBlock)

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

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: generate module file only, nothing to build/install

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_easyblock Default easyblock to use for components None

VSCPythonPackage

(derives from VersionIndependentPythonPackage)

Support for install VSC Python packages.

Extra easyconfig parameters specific to VSCPythonPackage easyblock

easyconfig parameter description default value
unpack_sources Unpack sources prior to build/install True
use_easy_install Install using ‘%(python)s setup.py easy_install –prefix=%(prefix)s %(installopts)s %(loc)s’ False
req_py_minver Required minor Python version (only relevant when using system Python) 6
runtest Run unit tests. True
use_setup_py_develop Install using ‘%(python)s setup.py develop –prefix=%(prefix)s %(installopts)s’ False
use_pip Install using ‘pip install –prefix=%(prefix)s %(installopts)s %(loc)s’ False
req_py_majver Required major Python version (only relevant when using system Python) 2
zipped_egg Install as a zipped eggs (requires use_easy_install) False
options Dictionary with extension options. {}

VersionIndependendPythonPackage

(derives from VersionIndependentPythonPackage)

No longer supported class for building/installing python packages without requiring a specific python package.

Extra easyconfig parameters specific to VersionIndependendPythonPackage easyblock

easyconfig parameter description default value
unpack_sources Unpack sources prior to build/install True
use_easy_install Install using ‘%(python)s setup.py easy_install –prefix=%(prefix)s %(installopts)s %(loc)s’ False
req_py_minver Required minor Python version (only relevant when using system Python) 6
runtest Run unit tests. True
use_setup_py_develop Install using ‘%(python)s setup.py develop –prefix=%(prefix)s %(installopts)s’ False
use_pip Install using ‘pip install –prefix=%(prefix)s %(installopts)s %(loc)s’ False
req_py_majver Required major Python version (only relevant when using system Python) 2
zipped_egg Install as a zipped eggs (requires use_easy_install) False
options Dictionary with extension options. {}

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
unpack_sources Unpack sources prior to build/install True
use_easy_install Install using ‘%(python)s setup.py easy_install –prefix=%(prefix)s %(installopts)s %(loc)s’ False
req_py_minver Required minor Python version (only relevant when using system Python) 6
runtest Run unit tests. True
use_setup_py_develop Install using ‘%(python)s setup.py develop –prefix=%(prefix)s %(installopts)s’ False
use_pip Install using ‘pip install –prefix=%(prefix)s %(installopts)s %(loc)s’ False
req_py_majver Required major Python version (only relevant when using system Python) 2
zipped_egg Install as a zipped eggs (requires use_easy_install) False
options Dictionary with extension options. {}

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=<installdir>
  • install_step - Install with ./waf install