Skip to content

Commit 9436a9c

Browse files
committed
docker: add el9, fedora40, noble
problem: we don't have recent distros, and some of them take a _long_ time to build because of repeated fetches from slow ports repos (aarch64 repos are really slow on ubuntu for some reason, so repeated apt update == bad) solution: add el9, fedora40, and ubuntu noble while refactoring noble to use a single apt update and apt install pair as well as switching el9 to use dnf (much faster than yum, and doesn't require separate update)
1 parent 8a2d204 commit 9436a9c

File tree

17 files changed

+432
-82
lines changed

17 files changed

+432
-82
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@ compile_flags.txt
9797
# local editor config dirs
9898
.idea
9999
.clangd
100+
.cache
100101

101102
# Rules to ignore auto-generated test harness scripts
102103
test_*.t

doc/requirements.txt

Lines changed: 0 additions & 5 deletions
This file was deleted.

doc/requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../scripts/requirements-doc.txt

scripts/fetch-and-build-caliper.sh

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail
3+
4+
mkdir caliper
5+
pushd caliper
6+
wget -O - https://github.com/LLNL/Caliper/archive/v1.7.0.tar.gz | tar xvz --strip-components 1
7+
# patch for uint32_t error
8+
sed -i '39i#include <stdint.h>' include/caliper/common/Record.h
9+
cmake -B build -DCMAKE_INSTALL_PREFIX=/usr -DWITH_GOTCHA=Off
10+
cmake --build build -j 4 -t install
11+
popd
12+
rm -rf caliper

scripts/fetch-and-build-catch.sh

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail
3+
4+
mkdir catch2
5+
pushd catch2
6+
wget -O - https://github.com/catchorg/Catch2/archive/refs/tags/v3.6.0.tar.gz | tar xvz --strip-components 1
7+
cmake -B build -DCMAKE_INSTALL_PREFIX=/usr
8+
cmake --build build -j 4 -t install
9+
popd
10+
rm -rf catch2

scripts/fetch-and-build-mpich.sh

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
#!/usr/bin/env bash
2+
set -euo pipefail
3+
4+
mkdir catch2
5+
pushd catch2
6+
wget -O - https://www.mpich.org/static/downloads/4.2.2/mpich-4.2.2.tar.gz | tar xvz --strip-components 1
7+
mkdir -p build
8+
pushd build
9+
../configure --prefix=/usr --without-pmix
10+
make -j 4 install
11+
popd
12+
popd
13+
rm -rf catch2
14+

scripts/requirements-ci.txt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
markupsafe==2.0.0
2+
coverage
3+
cffi
4+
ply
5+
six
6+
pyyaml
7+
jsonschema>=2.6,<4.0
8+
sphinxcontrib-spelling
9+
-r requirements-doc.txt

scripts/requirements-doc.txt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
sphinx<6.0.0
2+
sphinx-rtd-theme>=0.5.2
3+
docutils>=0.14,<0.18
4+
urllib3<2
5+
jinja2<3.1.0

src/test/docker/alpine/Dockerfile

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ RUN apk add \
1010
bash \
1111
sudo \
1212
gcc \
13+
g++ \
1314
autoconf \
1415
automake \
1516
libtool \
@@ -54,3 +55,8 @@ RUN groupadd -r munge \
5455
&& useradd -d /etc/munge -g munge -s /sbin/nologin -r munge
5556

5657
ENV LANG=C.UTF-8
58+
59+
# Install catch by hand for now:
60+
COPY scripts/fetch-and-build-catch.sh /fetch-and-build-catch.sh
61+
RUN /fetch-and-build-catch.sh
62+

src/test/docker/bookworm/Dockerfile

Lines changed: 24 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,7 @@ RUN apt-get update \
77
&& apt-get -qq install -y --no-install-recommends \
88
apt-utils \
99
wget \
10-
&& rm -rf /var/lib/apt/lists/*
11-
1210
# Utilities
13-
RUN apt-get update \
1411
&& apt-get -qq install -y --no-install-recommends \
1512
locales \
1613
ca-certificates \
@@ -29,11 +26,7 @@ RUN apt-get update \
2926
mpich \
3027
valgrind \
3128
jq \
32-
&& rm -rf /var/lib/apt/lists/*
33-
3429
# Compilers, autotools
35-
RUN apt-get update \
36-
&& apt-get -qq install -y --no-install-recommends \
3730
build-essential \
3831
pkg-config \
3932
autotools-dev \
@@ -46,38 +39,13 @@ RUN apt-get update \
4639
clang-tools-15 \
4740
gcc-12 \
4841
g++-12 \
49-
&& rm -rf /var/lib/apt/lists/*
50-
5142
# Python
52-
# NOTE: sudo pip install is necessary to get differentiated installations of
53-
# python binary components for multiple python3 variants, --ignore-installed
54-
# makes it ignore local versions of the packages if your home directory is
55-
# mapped into the container and contains the same libraries
56-
RUN apt-get update \
57-
&& apt-get -qq install -y --no-install-recommends \
58-
libffi-dev \
43+
libffi-dev \
5944
python3.11-dev \
6045
python3-pip \
6146
python3-setuptools \
6247
python3-wheel \
63-
&& rm -rf /var/lib/apt/lists/*
64-
65-
RUN for PY in python3.11 ; do \
66-
sudo $PY -m pip install --upgrade --ignore-installed \
67-
--break-system-packages \
68-
"markupsafe==2.0.0" \
69-
coverage cffi ply six pyyaml "jsonschema>=2.6,<4.0" \
70-
sphinx sphinx-rtd-theme sphinxcontrib-spelling; \
71-
sudo mkdir -p /usr/lib/${PY}/dist-packages; \
72-
echo ../site-packages >/tmp/site-packages.pth; \
73-
sudo mv /tmp/site-packages.pth /usr/lib/${PY}/dist-packages; \
74-
done ; \
75-
apt-get -qq purge -y python3-pip \
76-
&& apt-get -qq autoremove -y
77-
7848
# Other deps
79-
RUN apt-get update \
80-
&& apt-get -qq install -y --no-install-recommends \
8149
libsodium-dev \
8250
libzmq3-dev \
8351
libjansson-dev \
@@ -93,11 +61,7 @@ RUN apt-get update \
9361
libevent-dev \
9462
libarchive-dev \
9563
libpam-dev \
96-
&& rm -rf /var/lib/apt/lists/*
97-
9864
# Testing utils and libs
99-
RUN apt-get update \
100-
&& apt-get -qq install -y --no-install-recommends \
10165
faketime \
10266
libfaketime \
10367
pylint \
@@ -106,24 +70,36 @@ RUN apt-get update \
10670
aspell \
10771
aspell-en \
10872
time \
109-
&& rm -rf /var/lib/apt/lists/*
73+
&& rm -rf /var/lib/apt/lists/* \
74+
# NOTE: sudo pip install is necessary to get differentiated installations of
75+
# python binary components for multiple python3 variants, --ignore-installed
76+
# makes it ignore local versions of the packages if your home directory is
77+
# mapped into the container and contains the same libraries
78+
; for PY in python3.11 ; do \
79+
sudo $PY -m pip install --upgrade --ignore-installed \
80+
--break-system-packages \
81+
"markupsafe==2.0.0" \
82+
coverage cffi ply six pyyaml "jsonschema>=2.6,<4.0" \
83+
sphinx sphinx-rtd-theme sphinxcontrib-spelling; \
84+
sudo mkdir -p /usr/lib/${PY}/dist-packages; \
85+
echo ../site-packages >/tmp/site-packages.pth; \
86+
sudo mv /tmp/site-packages.pth /usr/lib/${PY}/dist-packages; \
87+
done ; \
88+
apt-get -qq purge -y python3-pip \
89+
&& apt-get -qq autoremove -y
11090

11191
RUN locale-gen en_US.UTF-8
11292

11393
# NOTE: luaposix installed by rocks due to Ubuntu bug: #1752082 https://bugs.launchpad.net/ubuntu/+source/lua-posix/+bug/1752082
11494
RUN luarocks install luaposix
11595

11696
# Install caliper by hand for now:
117-
RUN mkdir caliper \
118-
&& cd caliper \
119-
&& wget -O - https://github.com/LLNL/Caliper/archive/v1.7.0.tar.gz | tar xvz --strip-components 1 \
120-
&& mkdir build \
121-
&& cd build \
122-
&& CC=gcc CXX=g++ cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DWITH_GOTCHA=Off \
123-
&& make -j 4 \
124-
&& make install \
125-
&& cd ../.. \
126-
&& rm -rf caliper
97+
COPY scripts/fetch-and-build-caliper.sh /fetch-and-build-caliper.sh
98+
RUN /fetch-and-build-caliper.sh
99+
100+
# Install catch by hand for now:
101+
COPY scripts/fetch-and-build-catch.sh /fetch-and-build-catch.sh
102+
RUN /fetch-and-build-catch.sh
127103

128104
# Install openpmix, prrte
129105
RUN mkdir prrte \

0 commit comments

Comments
 (0)