Skip to content

Commit

Permalink
Apptainer updates for Chapel v2.2 (#25905)
Browse files Browse the repository at this point in the history
This updates the container definition files and helper scripts for our
portability testing.

Most updates are based on our need for a newer version of CMake to build
LLVM 18 when we require the bundled LLVM support library (`nollvm`
tests).

[reviewed by @mppf - thanks!]
  • Loading branch information
arezaii authored Sep 17, 2024
2 parents f48fb57 + 9966f29 commit e08a69f
Show file tree
Hide file tree
Showing 16 changed files with 47 additions and 39 deletions.
37 changes: 13 additions & 24 deletions doc/rst/usingchapel/prereqs.rst
Original file line number Diff line number Diff line change
Expand Up @@ -83,7 +83,7 @@ Installation
We have used the following commands to install the above prerequisites:

* Alma Linux 8, 9.3::
* Alma Linux 8, 9.3, 9.4::

sudo dnf install gcc gcc-c++ m4 perl python3 python3-devel bash make gawk git cmake
sudo dnf install which diffutils
Expand All @@ -102,9 +102,15 @@ We have used the following commands to install the above prerequisites:
sudo apk add llvm15-dev clang15-dev llvm15-static clang15-static


* Alpine 3.20::

sudo apk add gcc g++ m4 perl python3 python3-dev bash make gawk git cmake
sudo apk add llvm-dev clang-dev clang-static llvm-static


* Amazon Linux 2 (but note `Amazon Linux 2 CHPL_LLVM!=system incompatibility`_)::

sudo yum install git gcc gcc-c++ m4 perl python tcsh bash gcc gcc-c++ perl python python-devel python-setuptools bash make gawk python3 which
sudo yum install git gcc gcc-c++ m4 perl python tcsh bash perl python python-devel python-setuptools bash make gawk python3 which
sudo yum install wget tar openssl-devel
wget https://github.com/Kitware/CMake/releases/download/v3.25.1/cmake-3.25.1.tar.gz
tar xvzf cmake-3.25.1.tar.gz
Expand All @@ -131,28 +137,11 @@ We have used the following commands to install the above prerequisites:
sudo pacman -S llvm14 clang14


* CentOS 7 Devtoolset 11 (but note `CentOS 7 CHPL_LLVM=system incompatibility`_)::

sudo yum install centos-release-scl
sudo yum install devtoolset-11-gcc*
sudo yum install epel-release
sudo scl enable devtoolset-11 bash
sudo echo source scl_source enable devtoolset-11 >> ~/.bashrc
sudo yum install git gcc gcc-c++ m4 perl tcsh bash python3 make gawk wget openssl-devel
wget https://github.com/Kitware/CMake/releases/download/v3.25.1/cmake-3.25.1.tar.gz
tar xvzf cmake-3.25.1.tar.gz
cd cmake-3.25.1
./bootstrap
make
sudo make install
sudo update-alternatives --install /usr/bin/cmake cmake /usr/local/bin/cmake 1


* CentOS Stream 8, 9::
* CentOS Stream 9::

sudo dnf install gcc gcc-c++ m4 perl python3 python3-devel bash make gawk git cmake
sudo dnf install which diffutils
sudo dnf install llvm-devel-16.0.6 clang-16.0.6 clang-devel-16.0.6
sudo dnf install llvm-devel clang clang-devel


* Debian 10 "Buster" (but note `Newer CMake required to build LLVM`_)::
Expand All @@ -174,14 +163,14 @@ We have used the following commands to install the above prerequisites:
sudo apt-get install llvm-dev llvm clang libclang-dev libclang-cpp-dev libedit-dev


* Fedora 37, 38, 39, 40 (but note `Fedora CHPL_LLVM=system incompatibilities`_)::
* Fedora 39, 40 (but note `Fedora CHPL_LLVM=system incompatibilities`_)::

sudo dnf install gcc gcc-c++ m4 perl python3 python3-devel bash make gawk git cmake
sudo dnf install which diffutils
sudo dnf install llvm-devel clang clang-devel


* FreeBSD 13.2, 13.3, 14.0::
* FreeBSD 13.2, 13.3, 14.0, 14.1::

sudo pkg install gcc m4 perl5 python3 bash gmake gawk git pkgconf cmake
sudo pkg install llvm
Expand All @@ -193,7 +182,7 @@ We have used the following commands to install the above prerequisites:
sudo zypper install llvm-devel clang-devel clang


* Rocky Linux 8, 9.3::
* Rocky Linux 8, 8.10, 9.3, 9.4::

sudo dnf install gcc gcc-c++ m4 perl python3 python3-devel bash make gawk git cmake
sudo dnf install which diffutils
Expand Down
4 changes: 2 additions & 2 deletions util/devel/test/apptainer/current/centos-stream-9/image.def
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@ From: quay.io/centos/centos:stream9

%post
/provision-scripts/dnf-deps.sh
# installing llvm-devel installs LLVM 17
/provision-scripts/dnf-llvm-16.sh
# installing llvm-devel installs LLVM 18
/provision-scripts/dnf-llvm.sh

%runscript
../../provision-scripts/run.sh "$@"
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ From: debian:bullseye
../../provision-scripts/* /provision-scripts/

%post
/provision-scripts/apt-get-deps.sh
/provision-scripts/apt-get-deps-and-cmake.sh

%runscript
../../provision-scripts/run.sh "$@"
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ From: debian:buster
../../provision-scripts/* /provision-scripts/

%post
/provision-scripts/apt-get-deps.sh
/provision-scripts/apt-get-deps-and-cmake.sh

%runscript
../../provision-scripts/run.sh "$@"
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ From: ubuntu:focal
apt-get install -y software-properties-common
add-apt-repository universe
apt-get update
/provision-scripts/apt-get-deps.sh
/provision-scripts/apt-get-deps-and-cmake.sh

%runscript
../../provision-scripts/run.sh "$@"
5 changes: 3 additions & 2 deletions util/devel/test/vagrant/README-distro-timelines.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,18 +33,19 @@ Arch
* currently just testing the current release

CentOS -- see https://wiki.centos.org/About/Product
* All CentOS non-stream versions are dead :(
x 5 full updates until Jan 2014, maintenance until Mar 2017
x 6 full updates until May 2017, maintenance until Nov 2020
x 6.9 released Apr 2017
x 6.10 released Jul 2018
- 7 full updates until Dec 2020, maintenance until Jun 2024
x 7 full updates until Dec 2020, maintenance until Jun 2024
x 7.3 released Dec 2016
x 7.4 released Sep 2017
x 7.5 released May 2018
x 7.6 released Dec 2018
x 7.7 released Sep 2019
x 7.8-2003 released Apr 2020
- 7.9-2009 released Nov 2020 EOL Jun 2024
x 7.9-2009 released Nov 2020 EOL Jun 2024
# note -- gcc 11 is available with devtoolset-11
https://stackoverflow.com/questions/36327805/how-to-install-gcc-5-3-with-yum-on-centos-7-2/37355018
x 8 not-stream - EOL 2021-12-31
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Vagrant.configure("2") do |config|
config.vm.provision "shell",
path: "../../provision-scripts/freebsd-pkg-llvm.sh"

config.vm.provision "shell", privileged: false,
config.vm.provision "shell", privileged: false, run: "always",
path: "../../provision-scripts/git-clone-chapel.sh"

config.vm.provision "shell", privileged: false,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Vagrant.configure("2") do |config|
config.vm.provision "shell",
path: "../../provision-scripts/freebsd-pkg-llvm.sh"

config.vm.provision "shell", privileged: false,
config.vm.provision "shell", privileged: false, run: "always",
path: "../../provision-scripts/git-clone-chapel.sh"

config.vm.provision "shell", privileged: false,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Vagrant.configure("2") do |config|
config.vm.provision "shell",
path: "../../provision-scripts/freebsd-pkg-llvm.sh"

config.vm.provision "shell", privileged: false,
config.vm.provision "shell", privileged: false, run: "always",
path: "../../provision-scripts/git-clone-chapel.sh"

config.vm.provision "shell", privileged: false,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ Vagrant.configure("2") do |config|
config.vm.provision "shell",
path: "../../provision-scripts/freebsd-pkg-llvm.sh"

config.vm.provision "shell", privileged: false,
config.vm.provision "shell", privileged: false, run: "always",
path: "../../provision-scripts/git-clone-chapel.sh"

config.vm.provision "shell", privileged: false,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
# backwards compatibility). Please don't change it unless you know what
# you're doing.
Vagrant.configure("2") do |config|
config.vm.box = "generic-x32/debian11"
config.vm.box = "generic-x32/debian12"

config.vm.provision "shell",
path: "../../provision-scripts/apt-get-deps.sh"
Expand All @@ -15,7 +15,7 @@ Vagrant.configure("2") do |config|
config.vm.provision "shell",
path: "../../provision-scripts/apt-get-llvm.sh"

config.vm.provision "shell", privileged: false,
config.vm.provision "shell", privileged: false, run: "always",
path: "../../provision-scripts/git-clone-chapel.sh"

config.vm.provision "shell", privileged: false,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ Vagrant.configure("2") do |config|
config.vm.provision "shell", privileged: false,
path: "../../provision-scripts/apt-get-and-linuxbrew.sh"

config.vm.provision "shell", privileged: false,
config.vm.provision "shell", privileged: false, run: "always",
path: "../../provision-scripts/git-clone-chapel.sh"

config.vm.provision "shell", privileged: false,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
#!/bin/sh

alias hide=eval

apt-get update
apt-get install -y gcc g++ m4 perl python3 python3-dev bash make mawk git pkg-config
apt-get install -y wget libssl-dev

hide MYTMP=`mktemp -d`
hide cd $MYTMP
wget https://github.com/Kitware/CMake/releases/download/v3.30.3/cmake-3.30.3.tar.gz
tar xvzf cmake-3.30.3.tar.gz
cd cmake-3.30.3
./bootstrap
make
make install

update-alternatives --install /usr/bin/cmake cmake /usr/local/bin/cmake 1
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
alias unsudo="sudo -u bin"
alias hide=eval

yum -y install git gcc gcc-c++ m4 perl python tcsh bash gcc gcc-c++ perl python python-devel python-setuptools bash make gawk python3 which
yum -y install git gcc gcc-c++ m4 perl python tcsh bash perl python python-devel python-setuptools bash make gawk python3 which

yum -y install wget tar openssl-devel

Expand Down

0 comments on commit e08a69f

Please sign in to comment.