The compatibility layer of the EESSI project uses Gentoo Prefix to provide a known base on top of the host. This is the foundation we use to build our software stack on. An alternative would be the NixOS.
The bootstrap process will need a clean environment with a compiler (the system version of gcc will do). It also is very sensitive to
the environment, so setup a user with unset CFFLAGS
, CFLAGS
, LDFLAGS
, PKG_CONFIG_PATH
and the always harmful LD_LIBRARY_PATH
variables.
EESSI provides a Singularity container for this.
The provided Singularity definition file can be used to build a container with a clean environment:
sudo singularity build bootstrap-prefix.sif singularity-bootstrap-prefix.def
Gentoo Prefix provides a bootstrap script to build the prefix, see Gentoo Prefix Bootstrap. We forked this version and made some modifications. See issue #8 for more details.
You can run our version of the bootstrap script (see bootstrap-prefix.sh
) inside the Singularity container by executing:
singularity run bootstrap-prefix.sif
or simply:
./bootstrap-prefix.sif
If you want to run your own version of the bootstrap script, use:
singularity exec bootstrap-prefix.sif ./bootstrap-prefix.sh
After starting the bootstrap have a long coffee...
Additional packages are added in the EESSI overlay, which is based on ComputeCanada. To add the overlay:
Start the prefix
startprefix
Ensure the configuration directory exists, with $(EPREFIX) the path to your prefix installation.
export EPREFIX=path/to/your/prefix
mkdir $(EPREFIX)/etc/portage/repos.conf
Configure the overlay.
emerge eselect-repository
eselect repository add eessi git https://github.com/EESSI/gentoo-overlay.git
Sync the overlay
emerge --sync