Revert Eigen from the FetchContent OVERRIDE_FIND_PACKAGE vendoring (cd394c52,d4d2d0d8) back to an external find_package(Eigen3) dependency, like zlib. The OVERRIDE_FIND_PACKAGE mechanism makes the Visual-Studio-bundled CMake (4.x "-msvc") intermittently segfault during configure -- ~1/3 of fresh configures, and 100% with Ceres CUDA enabled. The fault is in CMake's own FetchContent variable-stack cleanup, reached when Ceres' find_package(Eigen3) resolves the override through a nested FetchContent_MakeAvailable. Stock Kitware CMake runs the identical scripts fine, so it is a bug in the VS-bundled cmake binary; providing Eigen externally avoids that path entirely and is stable with Ceres CUDA both on and off (verified 0 crashes; full CUDA build + NSIS installer succeed under the VS-bundled cmake). Also fix CPACK_NSIS_INSTALLED_ICON_NAME: the backslash value was written verbatim into CPackConfig.cmake, where "\j" is an invalid escape that cmake 4.x (CMP0010 strict) rejects when cpack re-parses it, so cpack failed under the VS-bundled cmake (older/Kitware cpack only warned). Use a forward slash. - image_analysis: keep Ceres USE_CUDA OFF (Jungfraujoch does not use Ceres' GPU solvers) but drop the now-obsolete "required to avoid the Windows cmake crash" rationale from the comment. - docs: Eigen is a required external dependency again (SOFTWARE.md); the Windows viewer build provides zlib + Eigen externally (JFJOCH_VIEWER.md). - THIRD_PARTY_NOTICES: move Eigen from the fetched-and-linked table to the external runtime-libraries table. Docker images still need Eigen re-added (5.0.1, source build) -- to follow. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2.0 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.
The desktop viewer jfjoch_viewer (only) can additionally be built on Windows 11 with Visual
Studio 2026 (MSVC), CUDA 13.3 and Qt 6.11 — see
jfjoch_viewer ▸ Building from source on Windows.
The rest of Jungfraujoch is Linux-only.
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 or newer
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)
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 and the licenses/ directory.