# Software requirements ## Operating system Recommended operating system is Red Hat Enterprise Linux (RHEL) / Rocky Linux versions 8 or 9. For these operating systems we provide RPMs with pre-built binaries to simplify deployment. On an experimental basis we also build repositories for Ubuntu 22.04 and 24.04. Running Jungfraujoch on Red Hat Enterprise Linux 7 is currently not tested and not recommended, but likely possible by providing some packages from external repositories. Two programs additionally run on **Windows 11**: the desktop viewer `jfjoch_viewer`, shipped as a pre-built installer, and [`rugnux`](RUGNUX.md), the offline analysis CLI, shipped as a `.zip`. Both can be built from source with Visual Studio 2026 (MSVC) and CUDA 13.3 — the viewer additionally needs Qt 6.11; see [jfjoch_viewer ▸ Building from source on Windows](JFJOCH_VIEWER.md#building-from-source-on-windows). The Windows artefacts bundle the Qt runtime (viewer only) and, on the CUDA builds, the cuFFT DLL, so end users need neither Qt nor a CUDA toolkit installed — only an NVIDIA GPU driver for the GPU path. On Linux the portable archives link CUDA entirely statically and so need nothing but the driver. `rugnux` is also built for **64-bit Arm Linux** (GH200, DGX Spark). The rest of Jungfraujoch is Linux-only and x86-64-only. See [Release contents](RELEASE_CONTENTS.md) for the CPU baseline and CUDA requirements of each released package. ## Software dependencies Required: * C++20 compiler and C++20 standard library; recommended GCC 11+ or clang 14+ (Intel OneAPI and AMD AOCC also work) * CMake version 3.26 or newer + a build tool (GNU make or Ninja) HDF5, libtiff, libjpeg-turbo, zlib and Eigen used to be required system packages; they are now downloaded and built automatically by CMake (see the note below), so none of them needs to be installed. Beyond the optional dependencies listed below, no third-party library has to be provided by the host any more. Optional: * CUDA compiler version 12.8 or newer - required for the MX fast feedback indexer and GPU analysis * FFTW library - for indexing if GPU/CUDA is absent (also auto-downloaded by CMake) * Node.js - to build the frontend * Qt version 6 (for jfjoch_viewer) * OpenSSL 3.0 or newer - required to build jfjoch_viewer on Linux, where the fetched libcurl uses it for TLS; a build on OpenSSL 1.1 fails in libcurl Many further dependencies (spdlog, Zstandard, HDF5, slsDetectorPackage, libzmq, libtiff, libjpeg-turbo, Ceres, the fast feedback indexer, Catch2, ...) are downloaded automatically by CMake and statically linked; building therefore requires network access on the first configure. zlib (as zlib-ng in its zlib-compatible mode) and Eigen are among them: a copy already on the machine is used instead if the configure is given `-DZLIB_ROOT=` or `-DEigen3_DIR=`. Others are vendored directly in the source tree. The complete list of third-party components, with copyright holders, licenses and verbatim license texts, is in [Third-party software notices](THIRD_PARTY_NOTICES.md) and the `licenses/` directory.