Build Packages / Unit tests (push) Successful in 1h32m35s
Build Packages / build:windows:cuda (push) Successful in 18m0s
Build Packages / build:viewer-tgz:cpu (push) Successful in 7m37s
Build Packages / build:viewer-tgz:cuda (push) Successful in 8m55s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 14m13s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 14m11s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 14m35s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 13m57s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 14m23s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 12m45s
Build Packages / build:rpm (rocky8) (push) Successful in 11m39s
Build Packages / build:rpm (rocky9) (push) Successful in 14m0s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 13m42s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 12m38s
Build Packages / DIALS test (push) Successful in 14m55s
Build Packages / XDS test (durin plugin) (push) Successful in 7m11s
Build Packages / XDS test (JFJoch plugin) (push) Successful in 9m7s
Build Packages / XDS test (neggia plugin) (push) Successful in 8m34s
Build Packages / Generate python client (push) Successful in 28s
Build Packages / Build documentation (push) Successful in 1m3s
Build Packages / Create release (push) Skipped
Build Packages / build:windows:nocuda (push) Successful in 9m55s
This is an UNSTABLE release. It includes many experimental features, as well as many AI generated fixes. We recommend using rc.152 for production use. * Analysis: The azimuthal-integration solid-angle correction now follows the incidence angle to the detector normal (`cos^3` of that angle) instead of `cos^3(2*theta)`, so it is correct for a tilted detector and matches PyFAI `solidAngleArray` and MAX IV azint (unchanged for an untilted detector). Crystal geometry refinement (`XtalOptimizer`) no longer silently ignores an imported PONI `rot3` (rotation about the beam): it is applied as a fixed rotation in the residual so refinement stays consistent with the rest of the pipeline. Polarization and azimuthal binning already honoured `rot3` through the full PONI rotation. * jfjoch_viewer: Open datasets on the WSL2/UNC filesystem (paths starting `\\`); write processing outputs next to the input file, with a Browse button and independent `_process.h5` / merged `.mtz`/`.cif` toggles; and show the determined space group in the merge-statistics window. * rugnux: Accept an absolute `-o` output prefix in offline processing. * Packaging: The self-contained Linux viewer `.tgz` now bundles cuFFT, so it runs without a system CUDA toolkit (`.deb`/`.rpm` are unchanged, distro-managed). * Docs: Bring the analysis references up to date with the code. `docs/CPU_DATA_ANALYSIS.md` now reflects the unified profile-fit Bragg integration engine, multi-lattice indexing, azimuthal phi binning, the radial parallax/bandwidth profile with sub-pixel centring, the rot3d capture-fraction handling and the automatic CC1/2 resolution cutoff, and drops the descriptions of features that were never implemented (French-Wilson amplitudes, the still excitation-error partiality model); `docs/RUGNUX.md` documents the new `--resolution-cutoff`/`--resolution-cc-target`/`--resolution-shells`, `--min-captured-fraction`, `--mosaicity`, `--reference-column`, the azimuthal correction toggles and the geometry-override options, and corrects the `-N` default. The outdated in-source design notes (ICE_RING_DETECTION, BRAGG_INTEGRATION_ENGINE, NEXTGEN_INTEGRATOR) are removed.Reviewed-on: #68 Co-authored-by: Filip Leonarski <filip.leonarski@psi.ch>
147 lines
4.8 KiB
Docker
147 lines
4.8 KiB
Docker
FROM nvidia/cuda:12.9.1-devel-rockylinux8
|
|
LABEL authors="leonarski_f"
|
|
|
|
ARG OPENSSL_VERSION=3.5.4
|
|
ARG QT_VERSION=6.9.1
|
|
ARG NODE_MAJOR=22
|
|
ARG EIGEN_VERSION=3.4.0
|
|
# HDF5, libtiff and libjpeg-turbo are built by the jungfraujoch CMake itself (FetchContent /
|
|
# ExternalProject). Eigen is an external find_package(Eigen3 3.4) dependency, installed from source
|
|
# below (3.4.x is required; Eigen's same-major-version rule rejects 5.x).
|
|
|
|
# Update base and install common utilities
|
|
RUN dnf -y install epel-release && \
|
|
dnf -y install --enablerepo=devel \
|
|
dnf-plugins-core \
|
|
git \
|
|
git-lfs \
|
|
which \
|
|
ca-certificates \
|
|
wget \
|
|
tar \
|
|
xz \
|
|
make \
|
|
cmake \
|
|
nasm \
|
|
gcc-toolset-13 \
|
|
gcc-toolset-13-gcc \
|
|
gcc-toolset-13-gcc-c++ \
|
|
gcc-toolset-13-gdb \
|
|
rpm-build \
|
|
rpmdevtools \
|
|
numactl-devel \
|
|
redhat-rpm-config \
|
|
ninja-build \
|
|
libxcb-devel \
|
|
xcb-util-*-devel \
|
|
xcb-util-devel \
|
|
libxkbcommon-devel \
|
|
libxkbcommon-x11-devel \
|
|
libX11-devel \
|
|
libXext-devel \
|
|
libXrender-devel \
|
|
libXi-devel \
|
|
libXrandr-devel \
|
|
libXcursor-devel \
|
|
libXfixes-devel \
|
|
libXinerama-devel \
|
|
mesa-libGL-devel \
|
|
mesa-libEGL-devel \
|
|
dbus-devel \
|
|
krb5-devel \
|
|
zlib-devel \
|
|
zlib-static \
|
|
glib2-devel \
|
|
fontconfig-devel \
|
|
zlib-static \
|
|
java-21-openjdk-headless \
|
|
java-21-openjdk-devel \
|
|
perl \
|
|
perl-IPC-Cmd \
|
|
python3 \
|
|
python3-pip \
|
|
python3-setuptools \
|
|
python3-wheel \
|
|
twine \
|
|
libdrm-devel \
|
|
libglvnd-core-devel \
|
|
libglvnd-devel \
|
|
freetype-devel && \
|
|
dnf clean all && rm -rf /var/cache/dnf
|
|
|
|
RUN set -eux; \
|
|
cd /tmp; \
|
|
curl -LO https://www.openssl.org/source/openssl-${OPENSSL_VERSION}.tar.gz; \
|
|
tar -xf openssl-${OPENSSL_VERSION}.tar.gz; \
|
|
cd openssl-${OPENSSL_VERSION}; \
|
|
./Configure linux-x86_64 no-shared no-module no-tests --prefix=/opt/openssl-${OPENSSL_VERSION} --libdir=lib; \
|
|
make -j"$(nproc)"; \
|
|
make install_sw; \
|
|
cd /; rm -rf /tmp/openssl-${OPENSSL_VERSION} /tmp/openssl-${OPENSSL_VERSION}.tar.gz
|
|
|
|
# Expose static OpenSSL to CMake/pkg-config
|
|
ENV OPENSSL_ROOT_DIR=/opt/openssl-${OPENSSL_VERSION}
|
|
|
|
# Install a recent Node.js (NodeSource). Change NODE_MAJOR if you want another major version.
|
|
RUN curl -fsSL https://rpm.nodesource.com/setup_${NODE_MAJOR}.x | bash - && \
|
|
dnf -y install nodejs && \
|
|
dnf clean all && rm -rf /var/cache/dnf && \
|
|
node --version && npm --version && (corepack enable || true)
|
|
|
|
# Make GCC/G++ 13 the default for builds
|
|
ENV GCC_TOOLSET_ROOT=/opt/rh/gcc-toolset-13/root
|
|
ENV PATH=${GCC_TOOLSET_ROOT}/usr/bin:${PATH}
|
|
ENV CC=${GCC_TOOLSET_ROOT}/usr/bin/gcc
|
|
ENV CXX=${GCC_TOOLSET_ROOT}/usr/bin/g++
|
|
|
|
ENV PKG_CONFIG_PATH=${OPENSSL_ROOT_DIR}/lib/pkgconfig:${OPENSSL_ROOT_DIR}/lib64/pkgconfig
|
|
|
|
ARG QT_PREFIX=/opt/qt-${QT_VERSION}-static
|
|
RUN set -eux; \
|
|
cd /tmp; \
|
|
curl -LO https://download.qt.io/official_releases/qt/6.9/${QT_VERSION}/single/qt-everywhere-src-${QT_VERSION}.tar.xz; \
|
|
tar -xf qt-everywhere-src-${QT_VERSION}.tar.xz; \
|
|
mkdir -p qt-everywhere-src-${QT_VERSION}/build && cd qt-everywhere-src-${QT_VERSION}/build; \
|
|
cmake -G Ninja \
|
|
-DQT_BUILD_SUBMODULES="qtbase;qtshadertools;qtdeclarative;qtcharts;qt3d" \
|
|
-DBUILD_SHARED_LIBS=OFF \
|
|
-DQT_BUILD_TESTS=OFF \
|
|
-DQT_BUILD_EXAMPLES=OFF \
|
|
-DQT_FEATURE_dbus=ON \
|
|
-DQT_FEATURE_xcb=ON \
|
|
-DQT_FEATURE_xcb_xlib=OFF \
|
|
-DQT_FEATURE_xkbcommon_x11=ON \
|
|
-DQT_FEATURE_opengl=ON \
|
|
-DQT_FEATURE_opengl_desktop=ON \
|
|
-DQT_FEATURE_opengl_dynamic=OFF \
|
|
-DQT_FEATURE_vulkan=OFF \
|
|
-DCMAKE_BUILD_TYPE=Release \
|
|
-DCMAKE_INSTALL_PREFIX=${QT_PREFIX} \
|
|
-DCMAKE_C_COMPILER=${CC} \
|
|
-DCMAKE_CXX_COMPILER=${CXX} \
|
|
-DQT_FEATURE_openssl=ON \
|
|
-DQT_FEATURE_openssl_linked=ON \
|
|
-DOPENSSL_USE_STATIC_LIBS=TRUE \
|
|
..; \
|
|
cmake --build . -j"$(nproc)"; \
|
|
cmake --install .; \
|
|
cd /; rm -rf /tmp/qt-everywhere-src-${QT_VERSION} /tmp/qt-everywhere-src-${QT_VERSION}.tar.xz
|
|
|
|
# Eigen 3.4 (header-only) -- external find_package(Eigen3 3.4) dependency, installed to /opt/eigen-3.4.
|
|
RUN set -eux; \
|
|
cd /tmp; \
|
|
git clone --depth 1 --branch ${EIGEN_VERSION} https://gitlab.com/libeigen/eigen.git; \
|
|
cmake -G Ninja -S eigen -B eigen-build -DCMAKE_INSTALL_PREFIX=/opt/eigen-3.4 \
|
|
-DEIGEN_BUILD_BLAS=OFF -DEIGEN_BUILD_LAPACK=OFF -DEIGEN_BUILD_DOC=OFF -DBUILD_TESTING=OFF; \
|
|
cmake --install eigen-build; \
|
|
cd /; rm -rf /tmp/eigen /tmp/eigen-build
|
|
|
|
# Make Qt and Eigen discoverable by CMake
|
|
ENV CMAKE_PREFIX_PATH=/opt/qt-${QT_VERSION}-static:/opt/eigen-3.4
|
|
|
|
# Set workdir for your project
|
|
WORKDIR /workspace
|
|
|
|
# Default entrypoint prints tool versions and hints.
|
|
CMD ["/bin/bash", "-l"]
|