Skip to content
Snippets Groups Projects
Commit ae5bec36 authored by Ben Boeckel's avatar Ben Boeckel
Browse files

ci: add a Fedora 41 container

For use with aarch64 because the Fedora 39 container has issues
rebuilding due to the removal of the openturns repository.

Disable OSPRay and Anari on aarch64 as they use Intel-specific bits
currently.
parent b354f09b
No related branches found
No related tags found
No related merge requests found
FROM fedora:41
MAINTAINER Ben Boeckel <ben.boeckel@kitware.com>
COPY install_deps.sh /root/install_deps.sh
RUN sh /root/install_deps.sh
COPY install_adios.sh /root/install_adios.sh
RUN sh /root/install_adios.sh
COPY install_openvr.sh /root/install_openvr.sh
RUN sh /root/install_openvr.sh
COPY install_catalyst.sh /root/install_catalyst.sh
RUN sh /root/install_catalyst.sh
COPY install_ospray.sh /root/install_ospray.sh
RUN sh /root/install_ospray.sh
COPY install_imath.sh /root/install_imath.sh
RUN sh /root/install_imath.sh
COPY install_alembic.sh /root/install_alembic.sh
RUN sh /root/install_alembic.sh
COPY install_anari_helide.sh /root/install_anari_helide.sh
RUN sh /root/install_anari_helide.sh
# XXX(vpn): no stable URL for use in OptiX and MDL SDKs
# COPY install_visrtx.sh /root/install_visrtx.sh
# RUN sh /root/install_visrtx.sh
#!/bin/sh
readonly adios_repo="https://github.com/ornladios/ADIOS2"
readonly adios_commit="v2.10.1"
readonly adios_root="$HOME/adios"
readonly adios_src="$adios_root/src"
readonly adios_build_root="$adios_root/build"
git clone -b "$adios_commit" "$adios_repo" "$adios_src"
adios_build () {
local subdir="$1"
shift
local prefix="$1"
shift
cmake -GNinja \
-S "$adios_src" \
-B "$adios_build_root/$subdir" \
-DBUILD_SHARED_LIBS=ON \
-DADIOS2_BUILD_EXAMPLES=OFF \
-DBUILD_TESTING=OFF \
-DCMAKE_BUILD_TYPE=Release \
"-DCMAKE_INSTALL_PREFIX=$prefix" \
-DADIOS2_USE_HDF5=ON \
-DADIOS2_USE_ZeroMQ=OFF \
-DADIOS2_USE_Python=OFF \
-DADIOS2_USE_Fortran=OFF \
-DADIOS2_USE_SST=OFF \
-DADIOS2_USE_BZip2=OFF \
-DADIOS2_USE_ZFP=OFF \
-DADIOS2_USE_SZ=OFF \
-DADIOS2_USE_MGARD=OFF \
-DADIOS2_USE_PNG=OFF \
-DADIOS2_USE_Blosc=OFF \
-DADIOS2_USE_Endian_Reverse=OFF \
-DADIOS2_USE_IME=OFF \
"$@"
cmake --build "$adios_build_root/$subdir"
cmake --build "$adios_build_root/$subdir" --target install
}
# MPI-less
adios_build nompi /usr \
-DADIOS2_USE_MPI=OFF
# MPICH
adios_build mpich /usr/lib64/mpich \
-DADIOS2_USE_MPI=ON \
-DCMAKE_INSTALL_LIBDIR=lib
# OpenMPI
adios_build openmpi /usr/lib64/openmpi \
-DADIOS2_USE_MPI=ON \
-DCMAKE_INSTALL_LIBDIR=lib
rm -rf "$adios_root"
#!/bin/sh
set -e
readonly alembic_version="1.8.5"
readonly alembic_tarball="$alembic_version.tar.gz"
readonly alembic_sha256sum="180a12f08d391cd89f021f279dbe3b5423b1db751a9898540c8059a45825c2e9"
readonly alembic_root="$HOME/alembic"
readonly alembic_src="$alembic_root/src"
readonly alembic_build="$alembic_root/build"
mkdir -p "$alembic_root" \
"$alembic_src" "$alembic_build"
cd "$alembic_root"
echo "$alembic_sha256sum $alembic_tarball" > alembic.sha256sum
curl -OL "https://github.com/alembic/alembic/archive/refs/tags/$alembic_tarball"
sha256sum --check alembic.sha256sum
tar -C "$alembic_src" --strip-components=1 -xf "$alembic_tarball"
cd "$alembic_build"
# depends on Imath already being installed
cmake -GNinja "$alembic_src" \
-DALEMBIC_ILMBASE_LINK_STATIC:BOOL="OFF" \
-DALEMBIC_LIB_INSTALL_DIR:PATH="lib64" \
-DALEMBIC_SHARED_LIBS:BOOL="ON" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DCMAKE_INSTALL_LIBDIR=lib64 \
-DUSE_BINARIES:BOOL=OFF \
-DUSE_TESTS:BOOL=OFF
ninja
cmake --install .
cd
rm -rf "$alembic_root"
#!/bin/sh
set -e
if [ "$( uname -m )" != "x86_64" ]; then
exit 0
fi
readonly anari_repo="https://github.com/KhronosGroup/ANARI-SDK.git"
readonly anari_commit="v0.10.0"
readonly anari_root="$HOME/ANARI-SDK"
readonly anari_src="$HOME/ANARI-SDK"
readonly anari_build="$HOME/ANARI-SDK/build"
git clone -b "$anari_commit" "$anari_repo" "$anari_src"
cd "$anari_build"
cmake -G "Unix Makefiles" "$anari_src" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/opt/anari \
-DBUILD_HELIDE_DEVICE:BOOL=ON \
-DBUILD_VIEWER:BOOL=OFF \
-DBUILD_EXAMPLES:BOOL=OFF \
-DBUILD_CTS:BOOL=OFF \
-DBUILD_TESTING:BOOL=OFF
cmake --build . --parallel
cmake --install .
cd
rm -rf "$anari_root"
#!/bin/sh
readonly catalyst_repo="https://gitlab.kitware.com/paraview/catalyst"
# Use 2.0.0 release
readonly catalyst_commit="v2.0.0"
readonly catalyst_root="$HOME/catalyst"
readonly catalyst_src="$catalyst_root/src"
readonly catalyst_build_root="$catalyst_root/build"
git clone "$catalyst_repo" "$catalyst_src"
git -C "$catalyst_src" checkout "$catalyst_commit"
catalyst_build () {
local subdir="$1"
shift
local prefix="$1"
shift
cmake -GNinja \
-S "$catalyst_src" \
-B "$catalyst_build_root/$subdir" \
-DCATALYST_BUILD_SHARED_LIBS=ON \
-DCATALYST_BUILD_TESTING=OFF \
-DCMAKE_BUILD_TYPE=Release \
"-DCMAKE_INSTALL_PREFIX=$prefix" \
"$@"
cmake --build "$catalyst_build_root/$subdir" --target install
}
# MPI-less
catalyst_build nompi /usr \
-DCATALYST_USE_MPI=OFF
# MPICH
catalyst_build mpich /usr/lib64/mpich \
-DCATALYST_USE_MPI=ON \
-DCMAKE_INSTALL_LIBDIR=lib
# OpenMPI
catalyst_build openmpi /usr/lib64/openmpi \
-DCATALYST_USE_MPI=ON \
-DCMAKE_INSTALL_LIBDIR=lib
rm -rf "$catalyst_root"
#!/bin/sh
set -e
# Install extra dependencies for VTK
dnf install -y --setopt=install_weak_deps=False \
bzip2 patch git-core git-lfs
# Documentation tools
dnf install -y --setopt=install_weak_deps=False \
doxygen perl-Digest-MD5
# Development tools
dnf install -y --setopt=install_weak_deps=False \
libasan libtsan libubsan clang-tools-extra \
ninja-build
# MPI dependencies
dnf install -y --setopt=install_weak_deps=False \
openmpi-devel mpich-devel
# Qt5 dependencies
dnf install -y --setopt=install_weak_deps=False \
qt5-qtbase-devel qt5-qttools-devel qt5-qtquickcontrols2-devel
# Qt6 dependencies
dnf install -y --setopt=install_weak_deps=False \
qt6-qtbase-devel qt6-qttools-devel qt6-qtquickcontrols2-devel
# Mesa dependencies
dnf install -y --setopt=install_weak_deps=False \
mesa-libOSMesa-devel mesa-libOSMesa mesa-dri-drivers mesa-libGL* glx-utils
# External dependencies
dnf install -y --setopt=install_weak_deps=False \
libXcursor-devel libharu-devel utf8cpp-devel pugixml-devel libtiff-devel \
eigen3-devel double-conversion-devel lz4-devel expat-devel glew-devel \
hdf5-devel hdf5-mpich-devel hdf5-openmpi-devel hdf5-devel netcdf-devel \
netcdf-mpich-devel netcdf-openmpi-devel libogg-devel libtheora-devel \
jsoncpp-devel gl2ps-devel protobuf-devel libxkbcommon libxcrypt-compat \
boost-devel postgresql-server-devel postgresql-private-devel \
mariadb-devel libiodbc-devel PDAL-devel liblas-devel openslide-devel \
libarchive-devel freeglut-devel sqlite-devel PEGTL-devel cgnslib-devel \
proj-devel wkhtmltopdf cli11-devel fmt-devel openvdb-devel json-devel \
openxr openxr-devel
# Python dependencies
dnf install -y --setopt=install_weak_deps=False \
python3 python3-devel python3-numpy python3-tkinter \
python3-pip python3-mpi4py-mpich python3-mpi4py-openmpi python3-matplotlib
# Tcl/Tk dependencies (for building RenderingTk)
dnf install -y --setopt=install_weak_deps=False \
tcl-devel tk-devel
# wslink will bring aiohttp>=3.7.4
python3 -m pip install 'wslink>=1.0.4'
# Java dependencies
dnf install -y --setopt=install_weak_deps=False \
java-11-openjdk-devel xmlstarlet
# RPMFusion (for ffmpeg)
dnf install -y --setopt=install_weak_deps=False \
https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-41.noarch.rpm
# RPMFusion external dependencies
dnf install -y --setopt=install_weak_deps=False \
ffmpeg-devel
# External repository support
dnf install -y --setopt=install_weak_deps=False \
dnf-plugins-core
if [ "$( uname -m )" = "x86_64" ]; then
# Openturns dependencies
dnf config-manager addrepo \
--from-repofile=https://download.opensuse.org/repositories/science:/openturns/Fedora_41/science:openturns.repo
dnf install -y --setopt=install_weak_deps=False \
openturns-libs openturns-devel
fi
# Vulkan backend dependencies
dnf install -y --setopt=install_weak_deps=False \
mesa-vulkan-drivers
# Emscripten SDK dependencies
dnf install -y --setopt=install_weak_deps=False \
xz
dnf clean all
#!/bin/sh
set -e
readonly imath_version="3.1.9"
readonly imath_tarball="v$imath_version.tar.gz"
readonly imath_sha256sum="f1d8aacd46afed958babfced3190d2d3c8209b66da451f556abd6da94c165cf3"
readonly imath_root="$HOME/imath"
readonly imath_src="$imath_root/src"
readonly imath_build="$imath_root/build"
mkdir -p "$imath_root" \
"$imath_src" "$imath_build"
cd "$imath_root"
echo "$imath_sha256sum $imath_tarball" > imath.sha256sum
curl -OL "https://github.com/AcademySoftwareFoundation/Imath/archive/refs/tags/$imath_tarball"
sha256sum --check imath.sha256sum
tar -C "$imath_src" --strip-components=1 -xf "$imath_tarball"
cd "$imath_build"
cmake -GNinja "$imath_src" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DCMAKE_INSTALL_LIBDIR=lib64 \
-DBUILD_TESTING:BOOL=OFF
ninja
cmake --install .
cd
rm -rf "$imath_root"
#!/bin/sh
set -e
case "$( uname -m )" in
x86_64)
subdir="linux64"
;;
aarch64)
subdir="linuxarm64"
;;
*)
exit 0
;;
esac
readonly subdir
readonly version="1.23.7"
readonly tarball="v$version.tar.gz"
readonly sha256sum="cbe2afbfc9ed9c6c5ed7df7929f9b1f5ecfd858b849b377005d4881b72b910b3"
readonly openvr_root="$HOME/openvr"
mkdir -p "$openvr_root"
cd "$openvr_root"
echo "$sha256sum $tarball" > openvr.sha256sum
curl -OL "https://github.com/ValveSoftware/openvr/archive/refs/tags/v$version.tar.gz"
sha256sum --check openvr.sha256sum
tar -xf "$tarball"
install -p -m 755 "openvr-$version/bin/$subdir/libopenvr_api.so" /usr/local/lib64
install -p -m 644 "openvr-$version/headers/"*.h /usr/local/include
cd
rm -rf "$openvr_root"
#!/bin/sh
set -e
if [ "$( uname -m )" != "x86_64" ]; then
exit 0
fi
readonly ospray_version="2.11.0"
readonly ospray_tarball="v$ospray_version.tar.gz"
readonly ospray_sha256sum="55974e650d9b78989ee55adb81cffd8c6e39ce5d3cf0a3b3198c522bf36f6e81"
readonly ospray_root="$HOME/ospray"
readonly ospray_src="$ospray_root/src"
readonly ospray_build="$ospray_root/build"
mkdir -p "$ospray_root" \
"$ospray_src" "$ospray_build"
cd "$ospray_root"
echo "$ospray_sha256sum $ospray_tarball" > ospray.sha256sum
curl -OL "https://github.com/ospray/ospray/archive/refs/tags/$ospray_tarball"
sha256sum --check ospray.sha256sum
tar -C "$ospray_src" --strip-components=1 -xf "$ospray_tarball"
cd "$ospray_build"
cmake -GNinja "$ospray_src/scripts/superbuild" \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr/local \
-DCMAKE_INSTALL_LIBDIR=lib64 \
-DBUILD_EMBREE_FROM_SOURCE=ON \
-DBUILD_GLFW=OFF \
-DBUILD_OSPRAY_APPS=OFF \
-DDEPENDENCIES_BUILD_TYPE=Release \
-DINSTALL_DEPENDENCIES=OFF \
-DDOWNLOAD_ISPC=ON \
-DDOWNLOAD_TBB=OFF \
-DINSTALL_IN_SEPARATE_DIRECTORIES=OFF
ninja
cmake --install .
cd
rm -rf "$ospray_root"
#!/bin/sh
set -e
readonly optix_version="6.0.0-linux64-25650775"
readonly optix_tarball="NVIDIA-OptiX-SDK-$optix_version.tar.gz"
readonly optix_sha256sum="cdd9ee5a7cb72bfcbca4d8b5ef43ae86fe43bfa82f74776801ce097b6eb7e47c"
readonly mdl_version="314800.830"
readonly mdl_tarball="mdl-sdk-$mdl_version.tar.bz2"
readonly mdl_sha256sum="ed9b9ed20977bf68554a01391311b0f7f1854106313a11ace950aea49ba43766"
readonly visrtx_version="0.1.6"
readonly visrtx_tarball="v$visrtx_version.tar.gz"
readonly visrtx_sha256sum="4ee5405a5292aa8aa3c4a0b2483ef9d43b03480664d6a466d8425a71ff65e07d"
readonly visrtx_root="$HOME/optix"
readonly visrtx_src="$visrtx_root/src"
readonly visrtx_build="$visrtx_root/build"
mkdir -p "$visrtx_root" \
"$visrtx_src" "$visrtx_build"
cd "$visrtx_root"
(
echo "$optix_sha256sum $optix_tarball"
echo "$mdl_sha256sum $mdl_tarball"
echo "$visrtx_sha256sum $visrtx_tarball"
) > visrtx.sha256sum
curl -OL "https://www.paraview.org/files/dependencies/internal/$optix_tarball"
curl -OL "https://www.paraview.org/files/dependencies/internal/$mdl_tarball"
curl -OL "https://github.com/NVIDIA/VisRTX/archive/refs/tags/$visrtx_tarball"
sha256sum --check visrtx.sha256sum
tar -C "/usr/local" "$optix_tarball" lib64 include
tar -C "/usr/local" "$mdl_tarball" lib64 include
tar -C "$visrtx_src" --strip-components=1 -xf "$visrtx_tarball"
cd "$visrtx_build"
cmake -GNinja "$visrtx_src" \
-DBUILD_TESTING=OFF \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr/local
ninja
ninja install
cd
rm -rf "$visrtx_root"
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment