diff --git a/lib/yashchiki/fetch.sh b/lib/yashchiki/fetch.sh index 4f0c825070cda7f5b441c77b7e07d10ac6567d33..dffe4dbdf6131c9d9eaddddefa5bbcbe18cb971e 100755 --- a/lib/yashchiki/fetch.sh +++ b/lib/yashchiki/fetch.sh @@ -138,6 +138,13 @@ if [ -n "${SPACK_ENVIRONMENT:-}" ]; then ${MY_SPACK_CMD} env create default # FIXME: via style config! rsync -a ${SPACK_ENVIRONMENT_REPO}/. ${YASHCHIKI_SPACK_PATH}/var/spack/environments/default + # SPACK_ENVIRONMENT_REPO="${YASHCHIKI_SPACK_PATH}/var/spack/repos/ebrains-spack-builds" # from env var; FIXME: add to opts + # SPACK_ENVIRONMENT_PATH="${YASHCHIKI_SPACK_PATH}/var/spack/environments/default" # from env var; FIXME: add to opts + # SYSTEMNAME via env var; FIXME: style-specific config... + # FIXME: via style + PATH=${MY_SPACK_FOLDER}/bin:$PATH ${MY_SPACK_PYTHON} ${SPACK_ENVIRONMENT_REPO}/site-config/ymerge.py ${SPACK_ENVIRONMENT_PATH}/spack.yaml ${SPACK_ENVIRONMENT_REPO}/site-config/${SYSTEMNAME}/spack.yaml > /tmp/spack.yaml + mv /tmp/spack.yaml ${SPACK_ENVIRONMENT_PATH} # FIXME proper tmpfile handling + cat ${SPACK_ENVIRONMENT_PATH}/spack.yaml echo "Created spack environment, now concretizing... " # FIXME: track concretizer errors here: ( diff --git a/share/yashchiki/styles/esd/config.yaml b/share/yashchiki/styles/esd/config.yaml new file mode 100644 index 0000000000000000000000000000000000000000..70e07141ecc1aae7bd855546d8cc640d9c764e56 --- /dev/null +++ b/share/yashchiki/styles/esd/config.yaml @@ -0,0 +1,16 @@ +docker_base_image: "debian:bookworm" +build_base_sandbox: true +spack_environment: true +cache: + source: + type: "oci" + build: + type: "oci" +dependency_python: + build: false + version: "3.11.2" +spack_gcc: + # Whether to build the specified gcc via spack or assume existance. + build: false + # Version to use as compiler for spack build. + version: "12.2.0" diff --git a/share/yashchiki/styles/esd/fetch_os-release b/share/yashchiki/styles/esd/fetch_os-release new file mode 100644 index 0000000000000000000000000000000000000000..3320862178e5a63681c384aa77ab6998f5655b1c --- /dev/null +++ b/share/yashchiki/styles/esd/fetch_os-release @@ -0,0 +1,9 @@ +PRETTY_NAME="Debian GNU/Linux 12 (bookworm)" +NAME="Debian GNU/Linux" +VERSION_ID="12" +VERSION="12 (bookworm)" +VERSION_CODENAME=bookworm +ID=debian +HOME_URL="https://www.debian.org/" +SUPPORT_URL="https://www.debian.org/support" +BUG_REPORT_URL="https://bugs.debian.org/" diff --git a/share/yashchiki/styles/esd/install_prerequisites.sh b/share/yashchiki/styles/esd/install_prerequisites.sh new file mode 100755 index 0000000000000000000000000000000000000000..d13ef5e9921f1127f3a870784cc72b0019103679 --- /dev/null +++ b/share/yashchiki/styles/esd/install_prerequisites.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +set -euo pipefail +shopt -s inherit_errexit + +# This file is to install all packages that are a pre-requisite for spack to be +# installed. + +prerequisites=( + "bzip2" + "ca-certificates" + "ccache" + "curl" + "diffutils" + "file" + "g++" + "gawk" + "gcc" + "gfortran" + "git" + "gnupg2" + "lbzip2" + "less" + "libc6-dev" + "locales" + "make" + "netbase" + "parallel" + "patch" + "patchelf" + "procps" + "python3" + "python3-yaml" + "python-is-python3" + "rsync" + "openssh-client" + "sudo" + "udev" + "unzip" + "xz-utils" +) + +apt-get update +apt-get install -o DPkg::Options::=--force-confold --no-install-recommends -y "${prerequisites[@]}" diff --git a/share/yashchiki/styles/esd/manual_system_level_patching_routine_called_in_post_as_root.sh b/share/yashchiki/styles/esd/manual_system_level_patching_routine_called_in_post_as_root.sh new file mode 100755 index 0000000000000000000000000000000000000000..342d48951c77e523dd5ff52b26b188c38dd02d93 --- /dev/null +++ b/share/yashchiki/styles/esd/manual_system_level_patching_routine_called_in_post_as_root.sh @@ -0,0 +1,16 @@ +#!/bin/bash +# +# This script governs the whole spack install procedure. +# It is needed because the post-install routine is executed in sh which has +# limited capabilities of preserving built spack packages in case of an error. +# + +set -euo pipefail +shopt -s inherit_errexit + +SOURCE_DIR="$(dirname "$(readlink -m "${BASH_SOURCE[0]}")")" +source "${SOURCE_DIR}/commons.sh" + +for pn in "${SPACK_INSTALL_SCRIPTS}/patches/*.patch"; do + patch -p 1 < ${pn} +done diff --git a/share/yashchiki/styles/esd/spack_collection.sh b/share/yashchiki/styles/esd/spack_collection.sh new file mode 100644 index 0000000000000000000000000000000000000000..1e841c6b3af95ccb6243adf6801799bebe41594d --- /dev/null +++ b/share/yashchiki/styles/esd/spack_collection.sh @@ -0,0 +1,10 @@ +# All spack packages that should be fetched/installed in the container +spack_packages=( +# FIXME: to be deleted, just for testing if packages and env build can be combined +#nest@3.7+sonata +gmake@4.4.1 +) +# we should specify what `spack concretize --force --fresh --test root` provides (for the active ESD env)… + +spack_views=(\ +) diff --git a/share/yashchiki/styles/esd/spack_custom_view.sh b/share/yashchiki/styles/esd/spack_custom_view.sh new file mode 100644 index 0000000000000000000000000000000000000000..155b55256037f7b2ef8cae4ffbca9ab01f4fbf3a --- /dev/null +++ b/share/yashchiki/styles/esd/spack_custom_view.sh @@ -0,0 +1,2 @@ +cat <<EOF +EOF