Skip to content

Commit bbcc023

Browse files
committed
Merge branch 'release/2.1' of https://github.com/jcsda/spack-stack into feature/merge_rel21_into_develop
2 parents 5e16385 + d2b6861 commit bbcc023

44 files changed

Lines changed: 924 additions & 649 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.dockerignore

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# .dockerignore
2+
3+
# Log files.
4+
log.*
5+
*.log
6+
7+
# spack-stack environments and builds.
8+
envs/
9+
.env/
10+
build/
11+
cache/
12+
13+
# Misc.
14+
.vscode
15+
.Trashes
16+
.github/
17+
venv/
18+
.venv/
19+

configs/sites/tier1/container/Dockerfile.gcc

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,6 @@ RUN set -euo pipefail; \
3434
# External dependencies.
3535
libcurl4-openssl-dev \
3636
libmysqlclient-dev \
37-
libqt5svg5-dev \
38-
qt5-qmake \
39-
qt5dxcb-plugin \
40-
qtbase5-dev \
4137
zstd \
4238
# Shell tools, source retrieval and networking.
4339
sed \
@@ -72,10 +68,15 @@ FROM ubuntu_base AS builder
7268
ENV SPACK_STACK_DIR=/opt/spack-stack \
7369
SPACK_ROOT=/opt/spack-stack/spack
7470

75-
7671
# Copy spack-stack from build context. Note the build context must be the
7772
# root of the spack-stack repository (see the README.md for details).
78-
COPY . ${SPACK_STACK_DIR}
73+
# Do not copy the dockerfiles into the container.
74+
COPY --exclude=configs/sites/tier1/container/Dockerfile.oneapi \
75+
--exclude=configs/sites/tier1/container/Dockerfile.gcc \
76+
--exclude=configs/sites/tier1/container/packages_oneapi.yaml \
77+
--exclude=envs/** \
78+
--exclude=cache/** \
79+
. ${SPACK_STACK_DIR}
7980

8081
# Create spack-stack environment
8182
WORKDIR /opt/spack-stack
@@ -89,12 +90,19 @@ RUN mkdir -p /tmp/spack-stack && \
8990
--compiler $COMPILER && \
9091
cd ${SPACK_STACK_DIR}/envs/container && \
9192
spack env activate . && \
92-
spack concretize 2>&1 | tee log.concretize && \
93-
spack install --fail-fast -j ${BUILD_JOBS} 2>&1 | tee log.install && \
93+
spack concretize 2>&1 | tee log.concretize
94+
95+
# Build the spack environment.
96+
RUN source setup.sh && cd ${SPACK_STACK_DIR}/envs/container && spack env activate . && \
97+
spack install --fail-fast -j ${BUILD_JOBS} 2>&1 | tee log.install
98+
99+
# Setup modules and meta-modules.
100+
RUN source setup.sh && cd ${SPACK_STACK_DIR}/envs/container && spack env activate . && \
94101
spack module tcl refresh -y && \
95102
spack stack setup-meta-modules && \
96103
# Save output of spack find.
97104
spack find 2>&1 | tee /opt/spack-software/spack_find.out && \
105+
cp ./log.concretize /opt/spack-software/log.concretize && \
98106
spack clean --all
99107

100108
## ---------- Create runtime container ----------
@@ -118,7 +126,20 @@ RUN echo "ulimit -s unlimited" > /etc/spack_container_rc.sh \
118126
&& echo "export PRTE_MCA_rmaps_default_mapping_policy=:oversubscribe" >> /etc/spack_container_rc.sh \
119127
&& echo "# TCL module path for the spack-stack environment." >> /etc/spack_container_rc.sh \
120128
&& echo "source /etc/profile.d/modules.sh" >> /etc/spack_container_rc.sh \
121-
&& echo "module use /opt/spack-software/modules/Core" >> /etc/spack_container_rc.sh \
129+
&& echo "module use /opt/spack-software/modulefiles" >> /etc/spack_container_rc.sh \
130+
&& echo "module use /opt/spack-software/modulefiles/Core" >> /etc/spack_container_rc.sh \
131+
&& echo "# Bash function to load modules necessary to build the JEDI bundle." >> /etc/spack_container_rc.sh \
132+
&& echo "load_jedi_bundle_env() {" >> /etc/spack_container_rc.sh \
133+
&& echo " module purge" >> /etc/spack_container_rc.sh \
134+
&& echo " module load stack-gcc" >> /etc/spack_container_rc.sh \
135+
&& echo " module load stack-openmpi" >> /etc/spack_container_rc.sh \
136+
&& echo " module load base-env" >> /etc/spack_container_rc.sh \
137+
&& echo " module load jedi-mpas-env" >> /etc/spack_container_rc.sh \
138+
&& echo " module load py-fortranformat" >> /etc/spack_container_rc.sh \
139+
&& echo " module load jedi-fv3-env" >> /etc/spack_container_rc.sh \
140+
&& echo " module load ewok-env" >> /etc/spack_container_rc.sh \
141+
&& echo " module load ip" >> /etc/spack_container_rc.sh \
142+
&& echo "}" >> /etc/spack_container_rc.sh \ \
122143
&& echo "source /etc/spack_container_rc.sh" >> /etc/bash.bashrc \
123144
&& printf "[credential]\n helper = cache --timeout=7200\n" >> /root/.gitconfig \
124145
&& mkdir /root/.pmix \

configs/sites/tier1/container/Dockerfile.oneapi

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,6 @@ RUN set -euo pipefail; \
3434
# External dependencies.
3535
libcurl4-openssl-dev \
3636
libmysqlclient-dev \
37-
libqt5svg5-dev \
38-
qt5-qmake \
39-
qt5dxcb-plugin \
40-
qtbase5-dev \
4137
zstd \
4238
# Shell tools, source retrieval and networking.
4339
sed \
@@ -91,7 +87,13 @@ ENV SPACK_STACK_DIR=/opt/spack-stack \
9187

9288
# Copy spack-stack from build context. Note the build context must be the
9389
# root of the spack-stack repository (see the README.md for details).
94-
COPY . ${SPACK_STACK_DIR}
90+
# Do not copy the dockerfiles into the container.
91+
COPY --exclude=configs/sites/tier1/container/Dockerfile.oneapi \
92+
--exclude=configs/sites/tier1/container/Dockerfile.gcc \
93+
--exclude=configs/sites/tier1/container/packages_gcc.yaml \
94+
--exclude=envs/** \
95+
--exclude=cache/** \
96+
. ${SPACK_STACK_DIR}
9597

9698
# Create spack-stack environment
9799
WORKDIR /opt/spack-stack
@@ -105,12 +107,19 @@ RUN mkdir -p /tmp/spack-stack && \
105107
--compiler oneapi && \
106108
cd ${SPACK_STACK_DIR}/envs/container && \
107109
spack env activate . && \
108-
spack concretize 2>&1 | tee log.concretize && \
109-
spack install --fail-fast -j ${BUILD_JOBS} 2>&1 | tee log.install && \
110+
spack concretize 2>&1 | tee log.concretize
111+
112+
# Build the spack environment.
113+
RUN source setup.sh && cd ${SPACK_STACK_DIR}/envs/container && spack env activate . && \
114+
spack install --fail-fast -j ${BUILD_JOBS} 2>&1 | tee log.install
115+
116+
# Setup modules and meta-modules.
117+
RUN source setup.sh && cd ${SPACK_STACK_DIR}/envs/container && spack env activate . && \
110118
spack module tcl refresh -y && \
111119
spack stack setup-meta-modules && \
112120
# Save output of spack find.
113121
spack find 2>&1 | tee /opt/spack-software/spack_find.out && \
122+
cp ./log.concretize /opt/spack-software/log.concretize && \
114123
spack clean --all
115124

116125
## ---------- Create runtime container ----------
@@ -129,10 +138,22 @@ RUN echo "ulimit -s unlimited" > /etc/spack_container_rc.sh \
129138
&& echo "export CXX=icpx" >> /etc/spack_container_rc.sh \
130139
&& echo "export FC=ifx" >> /etc/spack_container_rc.sh \
131140
&& echo "# TCL module path for the spack-stack environment." >> /etc/spack_container_rc.sh \
132-
&& echo "export MODULEPATH=/opt/spack-software/modules/Core" >> /etc/spack_container_rc.sh \
133141
&& echo "source /etc/profile.d/modules.sh" >> /etc/spack_container_rc.sh \
134142
&& echo "module use /opt/intel/oneapi/modulefiles" >> /etc/spack_container_rc.sh \
135-
&& echo "module use /opt/spack-software/modules/Core" >> /etc/spack_container_rc.sh \
143+
&& echo "module use /opt/spack-software/modulefiles" >> /etc/spack_container_rc.sh \
144+
&& echo "module use /opt/spack-software/modulefiles/Core" >> /etc/spack_container_rc.sh \
145+
&& echo "# Bash function to load modules necessary to build the JEDI bundle." >> /etc/spack_container_rc.sh \
146+
&& echo "load_jedi_bundle_env() {" >> /etc/spack_container_rc.sh \
147+
&& echo " module purge" >> /etc/spack_container_rc.sh \
148+
&& echo " module load stack-intel-oneapi-compilers" >> /etc/spack_container_rc.sh \
149+
&& echo " module load stack-intel-oneapi-mpi" >> /etc/spack_container_rc.sh \
150+
&& echo " module load base-env" >> /etc/spack_container_rc.sh \
151+
&& echo " module load jedi-mpas-env" >> /etc/spack_container_rc.sh \
152+
&& echo " module load py-fortranformat" >> /etc/spack_container_rc.sh \
153+
&& echo " module load jedi-fv3-env" >> /etc/spack_container_rc.sh \
154+
&& echo " module load ewok-env" >> /etc/spack_container_rc.sh \
155+
&& echo " module load ip" >> /etc/spack_container_rc.sh \
156+
&& echo "}" >> /etc/spack_container_rc.sh \ \
136157
&& echo "source /etc/spack_container_rc.sh" >> /etc/bash.bashrc \
137158
&& printf "[credential]\n helper = cache --timeout=7200\n" >> /root/.gitconfig \
138159
&& mkdir /root/.pmix
Lines changed: 40 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,54 @@
11
packages:
22
all:
3-
target: [core2]
3+
target: [x86_64_v3]
4+
awscli-v2:
5+
require:
6+
- "@2.22.4"
7+
cairo:
8+
variants: +pic
9+
ewok-env:
10+
require:
11+
- +ecflow
12+
fontconfig:
13+
variants: +pic
414
met:
515
variants: +python +grib2 +graphics +lidar2nc +modis
16+
parallelio:
17+
require:
18+
- +pnetcdf
19+
pixman:
20+
variants: +pic
21+
py-awscrt:
22+
require:
23+
- "@0.19.19"
24+
py-botocore:
25+
require:
26+
- "@1.34.162"
27+
py-boto3:
28+
require:
29+
- "@1.34.162"
30+
py-netcdf4:
31+
require:
32+
- "@1.7.2"
33+
634
# System packages installed during the container build.
7-
grep:
8-
externals:
9-
- spec: grep@3.11
10-
prefix: /usr
11-
findutils:
35+
autoconf:
1236
externals:
13-
- spec: findutils@4.9.0
37+
- spec: autoconf@2.71
1438
prefix: /usr
1539
coreutils:
1640
externals:
1741
- spec: coreutils@9.4
1842
prefix: /usr
19-
autoconf:
20-
externals:
21-
- spec: autoconf@2.71
22-
prefix: /usr
2343
diffutils:
2444
buildable: false
2545
externals:
2646
- spec: diffutils@3.10
2747
prefix: /usr
48+
findutils:
49+
externals:
50+
- spec: findutils@4.9.0
51+
prefix: /usr
2852
git:
2953
buildable: false
3054
externals:
@@ -35,24 +59,17 @@ packages:
3559
externals:
3660
- spec: git-lfs@3.4.1
3761
prefix: /usr
38-
llvm:
39-
buildable: false
40-
externals:
41-
- spec: llvm@14.0.6
42-
prefix: /usr
43-
qt:
44-
buildable: false
62+
grep:
4563
externals:
46-
- spec: qt@5.15.3
64+
- spec: grep@3.11
4765
prefix: /usr
48-
version: [5.15.3]
49-
wget:
66+
llvm:
5067
buildable: false
5168
externals:
52-
- spec: wget@1.21.4
69+
- spec: llvm@14.0.6
5370
prefix: /usr
5471
perl:
5572
buildable: false
5673
externals:
5774
- spec: perl@5.38.2
58-
prefix: /usr
75+
prefix: /usr

configs/sites/tier1/container/packages_oneapi.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@ packages:
1515
modules:
1616
- umf/1.0.2
1717
- tbb/2022.3
18-
- compiler-rt/2025.3.0
19-
- compiler/2025.3.0
18+
- compiler-rt/2025.3.2
19+
- compiler/2025.3.2
2020
extra_attributes:
2121
compilers:
2222
c: /opt/intel/oneapi/compiler/2025.3/bin/icx

configs/sites/tier1/derecho/packages.yaml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
packages:
22
# Modification of common packages
3-
zlib-api:
4-
buildable: False
3+
all:
4+
providers:
5+
zlib-api:: [zlib]
56
# Tell esmf that this is not a 'normal' Cray ...
67
esmf:
78
require:
@@ -113,5 +114,5 @@ packages:
113114
zlib:
114115
buildable: False
115116
externals:
116-
- spec: zlib@1.2.11
117+
- spec: zlib@1.2.13
117118
prefix: /usr

configs/sites/tier1/derecho/packages_gcc-13.3.1.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ packages:
3232
- spec: cray-mpich@8.1.32 +wrappers
3333
prefix: /opt/cray/pe/mpich/8.1.32/ofi/gnu/12.3
3434
modules:
35+
- crayenv/25.03
36+
- PrgEnv-gnu/8.6.0
37+
- gcc-native/13.2
3538
- craype-network-ofi
3639
- cray-mpich/8.1.32
3740
- libfabric/1.22.0

configs/sites/tier1/derecho/packages_oneapi-2025.3.1.yaml

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ packages:
1515
- spec: intel-oneapi-compilers@2025.3.1
1616
prefix: /glade/work/epicufsrt/contrib/spack-stack/derecho/installs/oneapi-2025.3.1
1717
modules:
18-
- crayenv/25.03
19-
- PrgEnv-intel/8.6.0
20-
- intel/2025.3.1
18+
- crayenv/25.03
19+
- PrgEnv-intel/8.6.0
20+
- intel/2025.3.1
2121
extra_attributes:
2222
compilers:
2323
c: /glade/work/epicufsrt/contrib/spack-stack/derecho/installs/oneapi-2025.3.1/compiler/2025.3/bin/icx
@@ -54,6 +54,9 @@ packages:
5454
- spec: cray-mpich@8.1.32 +wrappers
5555
prefix: /opt/cray/pe/mpich/8.1.32/ofi/intel/2022.1
5656
modules:
57+
- crayenv/25.03
58+
- PrgEnv-intel/8.6.0
59+
- intel/2025.3.1
5760
- craype-network-ofi
5861
- cray-mpich/8.1.32
5962
- libfabric/1.22.0
Lines changed: 1 addition & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,2 @@
11
mirrors:
2-
local-source:
3-
fetch:
4-
url: file:///discover/swdev/jcsda/spack-stack/source-cache
5-
access_pair:
6-
- null
7-
- null
8-
access_token: null
9-
profile: null
10-
endpoint_url: null
11-
push:
12-
url: file:///discover/swdev/jcsda/spack-stack/source-cache
13-
access_pair:
14-
- null
15-
- null
16-
access_token: null
17-
profile: null
18-
endpoint_url: null
2+
local-source: file:///discover/swdev/jcsda/spack-stack/source-cache

configs/sites/tier1/discover-scu17/packages.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
11
packages:
22
### Modification of common packages
3+
ewok-env:
4+
require:
5+
- '+ecflow'
36
# Problems building shared hdf-eos2 with Intel, not needed
47
hdf-eos2:
58
variants: ~shared

0 commit comments

Comments
 (0)