Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
from __future__ import print_function
from distutils.version import LooseVersion
import posixpath
import hpccm.config
import hpccm.templates.envvars
import hpccm.templates.ldconfig
from hpccm.building_blocks.base import bb_base
from hpccm.building_blocks.generic_autotools import generic_autotools
from hpccm.building_blocks.packages import packages
from hpccm.common import linux_distro
from hpccm.primitives.comment import comment
class netcdf(bb_base, hpccm.templates.envvars, hpccm.templates.ldconfig):
"""The `netcdf` building block downloads, configures, builds, and
installs the
[NetCDF](https://www.unidata.ucar.edu/software/netcdf/) component.
The [HDF5](#hdf5) building block should be installed prior to this
building block.
# Parameters
annotate: Boolean flag to specify whether to include annotations
(labels). The default is False.
check: Boolean flag to specify whether the `make check` step
should be performed. The default is False.
configure_opts: List of options to pass to `configure`. The
from __future__ import absolute_import
from __future__ import unicode_literals
from __future__ import print_function
import posixpath
import hpccm.templates.envvars
import hpccm.templates.ldconfig
from hpccm.building_blocks.base import bb_base
from hpccm.building_blocks.generic_autotools import generic_autotools
from hpccm.building_blocks.packages import packages
from hpccm.primitives.comment import comment
class xpmem(bb_base, hpccm.templates.envvars, hpccm.templates.ldconfig):
"""The `xpmem` building block builds and installs the user space
library from the [XPMEM](https://gitlab.com/hjelmn/xpmem)
component.
# Parameters
annotate: Boolean flag to specify whether to include annotations
(labels). The default is False.
branch: The branch of XPMEM to use. The default value is
`master`.
configure_opts: List of options to pass to `configure`. The
default values are `--disable-kernel-module`.
disable_FEATURE: Flags to control disabling features when
import re
from six import string_types
import hpccm.config
import hpccm.templates.downloader
import hpccm.templates.envvars
import hpccm.templates.ldconfig
from hpccm.building_blocks.base import bb_base
from hpccm.building_blocks.generic_autotools import generic_autotools
from hpccm.building_blocks.packages import packages
from hpccm.common import linux_distro
from hpccm.primitives.comment import comment
from hpccm.toolchain import toolchain
class openmpi(bb_base, hpccm.templates.downloader, hpccm.templates.envvars,
hpccm.templates.ldconfig):
"""The `openmpi` building block configures, builds, and installs the
[OpenMPI](https://www.open-mpi.org) component.
As a side effect, a toolchain is created containing the MPI
compiler wrappers. The tool can be passed to other operations
that want to build using the MPI compiler wrappers.
# Parameters
annotate: Boolean flag to specify whether to include annotations
(labels). The default is False.
branch: The git branch to clone. Only recognized if the
`repository` parameter is specified. The default is empty, i.e.,
use the default branch for the repository.
from __future__ import absolute_import
from __future__ import unicode_literals
from __future__ import print_function
from distutils.version import StrictVersion
import logging # pylint: disable=unused-import
import posixpath
import hpccm.config
from hpccm.building_blocks.base import bb_base
from hpccm.common import cpu_arch, linux_distro
from hpccm.primitives.shell import shell
class yum(bb_base):
"""The `yum` building block specifies the set of operating system
packages to install. This building block should only be used on
images that use the Red Hat package manager (e.g., CentOS).
In most cases, the [`packages` building block](#packages) should
be used instead of `yum`.
# Parameters
download: Boolean flag to specify whether to download the rpm
packages instead of installing them. The default is False.
download_directory: The deb package download location. This
parameter is ignored if `download` is False. The default value is
`/var/tmp/yum_download`.
from distutils.version import StrictVersion
import logging
import hpccm.config
import hpccm.templates.envvars
from hpccm.building_blocks.base import bb_base
from hpccm.building_blocks.packages import packages
from hpccm.common import cpu_arch, linux_distro
from hpccm.primitives.comment import comment
from hpccm.primitives.environment import environment
from hpccm.primitives.shell import shell
from hpccm.toolchain import toolchain
class llvm(bb_base, hpccm.templates.envvars):
"""The `llvm` building block installs the LLVM compilers (clang and
clang++) from the upstream Linux distribution.
As a side effect, a toolchain is created containing the LLVM
compilers. A toolchain can be passed to other operations that
want to build using the LLVM compilers.
# Parameters
environment: Boolean flag to specify whether the environment
(`CPATH`, `LD_LIBRARY_PATH` and `PATH`) should be modified to
include the LLVM compilers. The default is True.
extra_repository: Boolean flag to specify whether to enable an extra package repository containing addition LLVM compiler packages. For Ubuntu, setting this flag to True enables the `ppa:ubuntu-toolchain-r/test`
repository. For RHEL-based Linux distributions, setting this flag
to True enables the Software Collections (SCL) repository. The
from __future__ import print_function
import posixpath
import re
import hpccm.config
import hpccm.templates.envvars
import hpccm.templates.ldconfig
from hpccm.building_blocks.base import bb_base
from hpccm.building_blocks.generic_autotools import generic_autotools
from hpccm.building_blocks.packages import packages
from hpccm.common import linux_distro
from hpccm.primitives.comment import comment
class hdf5(bb_base, hpccm.templates.envvars, hpccm.templates.ldconfig):
"""The `hdf5` building block downloads, configures, builds, and
installs the [HDF5](http://www.hdfgroup.org) component. Depending
on the parameters, the source will be downloaded from the web
(default) or copied from a source directory in the local build
context.
# Parameters
annotate: Boolean flag to specify whether to include annotations
(labels). The default is False.
check: Boolean flag to specify whether the `make check` step
should be performed. The default is False.
configure_opts: List of options to pass to `configure`. The
default values are `--enable-cxx` and `--enable-fortran`.
# pylint: disable=invalid-name, too-few-public-methods
# pylint: disable=too-many-instance-attributes
"""Python building block"""
from __future__ import absolute_import
from __future__ import unicode_literals
from __future__ import print_function
from hpccm.building_blocks.base import bb_base
from hpccm.building_blocks.packages import packages
from hpccm.primitives.comment import comment
from hpccm.primitives.shell import shell
class python(bb_base):
"""The `python` building block installs Python from the upstream Linux
distribution.
# Parameters
alternatives: Boolean flag to specify whether to configure alternatives for `python` and `python-config` (if `devel` is enabled). RHEL-based 8.x distributions do not setup `python` by [default](https://developers.redhat.com/blog/2019/05/07/what-no-python-in-red-hat-enterprise-linux-8/). The default is False.
devel: Boolean flag to specify whether to also install the Python
development headers and libraries. The default is False.
python2: Boolean flag to specify whether to install Python version
2. The default is True.
python3: Boolean flag to specify whether to install Python version
3. The default is True.