Build Packages / Create release (push) Successful in 16s
Build Packages / build:rugnux:aarch64 (cross) (push) Successful in 8m27s
Build Packages / build:rugnux-tgz (x86_64) (push) Successful in 9m15s
Build Packages / build:viewer-tgz:cpu (push) Successful in 10m11s
Build Packages / build:viewer-tgz:cuda (push) Successful in 12m6s
Build Packages / build:rpm (rocky8_nocuda) (push) Successful in 15m44s
Build Packages / build:rpm (rocky9_nocuda) (push) Successful in 16m1s
Build Packages / build:windows:nocuda (push) Successful in 17m29s
Build Packages / build:windows:cuda (push) Successful in 19m58s
Build Packages / HDF5 consumer tests (DIALS, XDS) (push) Successful in 24m7s
Build Packages / build:rpm (ubuntu2404_nocuda) (push) Successful in 19m8s
Build Packages / build:rugnux:windows (push) Successful in 10m58s
Build Packages / build:rpm (ubuntu2204_nocuda) (push) Successful in 20m46s
Build Packages / Generate python client (push) Successful in 53s
Build Packages / build:rpm (rocky8_sls9) (push) Successful in 20m13s
Build Packages / Build documentation (push) Successful in 1m36s
Build Packages / build:rpm (rocky9_sls9) (push) Successful in 19m57s
Build Packages / build:rpm (rocky8) (push) Successful in 18m7s
Build Packages / build:rpm (rocky9) (push) Successful in 18m54s
Build Packages / build:rpm (ubuntu2204) (push) Successful in 19m32s
Build Packages / build:rpm (ubuntu2404) (push) Successful in 17m30s
Build Packages / Unit tests (push) Successful in 1h39m2s
* Fixed `jfjoch_broker` cancelling every data collection with a CUDA "out of memory" error after long operation: GPU memory no longer leaks with each collection. * Rugnux scales a rotation sweep until the per-frame scales settle instead of for a fixed three rounds, and says so when they did not - merged intensities, and the space group, resolution cut and frame rejection read off them, change accordingly; `--scaling-iterations` is now the cap on that loop (default 100). * Rugnux places every frame of a marCCD, SMV or miniCBF series at the spindle angle its own header states, so a series with missing frames, or with angles written modulo 360, is no longer read at the wrong geometry or refused. * Every rotation run writes two diagnostic files beside its reflections: `<prefix>_detector.jpg`, the detector projection with the pixel mask and the detected beam-stop shadow drawn on it, and `<prefix>_plot.txt`, one row per image. Reviewed-on: #82 Co-authored-by: Filip Leonarski <filip.leonarski@psi.ch>
48 lines
3.0 KiB
Markdown
48 lines
3.0 KiB
Markdown
# 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=<prefix>` or `-DEigen3_DIR=<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.
|