# Software requirements ## Operating system Recommended operating system is Red Hat Enterprise Linux (RHEL) / Rocky Linux versions 8 or 9. For this operating systems we provide RPMs with pre-built binaries to simplify deployment. On 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 with providing some packages from external repositories. ## Software dependencies Required: * C++20 compiler and C++20 standard library; recommended GCC 11+ or clang 14+ (Intel OneAPI, AMD AOCC) * CMake version 3.21 or newer + GNU make tool * zlib compression library * EIGEN library (only on a compilation system) * HDF5 library version 1.10 or newer - see [github.com/HDFGroup/hdf5](https://github.com/HDFGroup/hdf5) * TIFF library - see [gitlab.com/libtiff/libtiff](https://gitlab.com/libtiff/libtiff) * JPEG library (preferably jpeg-turbo) - see [github.com/libjpeg-turbo/libjpeg-turbo](https://github.com/libjpeg-turbo/libjpeg-turbo) 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) Many further dependencies (spdlog, Zstandard, HDF5, slsDetectorPackage, libzmq, libtiff, libjpeg-turbo, Eigen, Ceres, the fast feedback indexer, Catch2, ...) are downloaded automatically by CMake and statically linked; building therefore requires network access on the first configure. 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_NOTICES.md](../THIRD_PARTY_NOTICES.md) and the `licenses/` directory.