Files
Jungfraujoch/docs/SOFTWARE.md
T
leonarski_fandClaude Opus 5 b243fa21d3
Build Packages / Create release (push) Successful in 25s
Build Packages / build:rugnux:aarch64 (cross) (push) Successful in 7m9s
Build Packages / build:rugnux-tgz (x86_64) (push) Successful in 7m59s
Build Packages / build:viewer-tgz:cpu (push) Successful in 8m23s
Build Packages / build:viewer-tgz:cuda (push) Successful in 9m50s
Build Packages / build:windows:nocuda (push) Successful in 16m46s
Build Packages / build:windows:cuda (push) Successful in 19m12s
Build Packages / HDF5 consumer tests (DIALS, XDS) (push) Successful in 20m6s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 14m4s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 13m38s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 13m4s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 14m58s
Build Packages / build:rugnux:windows (push) Successful in 10m20s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 17m24s
Build Packages / Generate python client (push) Successful in 44s
Build Packages / Build documentation (push) Successful in 1m46s
Build Packages / build:rpm (rocky8) (push) Successful in 20m2s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 18m27s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 18m37s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 20m57s
Build Packages / build:rpm (rocky9) (push) Successful in 20m16s
Build Packages / Unit tests (push) Successful in 2h7m25s
docs: a Linux jfjoch_viewer build needs OpenSSL 3 and the krb5 headers
The fetched libcurl 8.22 refuses to compile against OpenSSL 1.1 ("OpenSSL 3.0.0
or greater required"), so a viewer build on an older distro fails deep inside a
dependency with nothing in the requirements list to explain it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011GxZqDiFP3KqriBhNdcR56
2026-09-13 14:34:12 +02:00

3.3 KiB

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.

Two programs additionally run on Windows 11: the desktop viewer jfjoch_viewer, shipped as a pre-built installer, and rugnux, 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. 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 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, AMD AOCC)
  • CMake version 3.26 or newer + a build tool (GNU make or Ninja)
  • zlib compression library
  • Eigen (header-only linear algebra library), version 3.4.x (the build requests Eigen3 3.4, which Eigen's same-major-version rule does not satisfy with 5.x)

HDF5, libtiff and libjpeg-turbo used to be required system packages; they are now downloaded and built automatically by CMake (see the note below), so they no longer need to be installed.

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 and the Kerberos development headers (krb5-devel / libkrb5-dev) - required to build jfjoch_viewer on Linux, where the fetched libcurl uses them for TLS and Negotiate; 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 and Eigen are the exception — they must be preinstalled (found via find_package); on Windows, where they are not present system-wide, install them into a prefix and point CMAKE_PREFIX_PATH at it (see Building from source on Windows). 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 and the licenses/ directory.