This is an UNSTABLE release. * Fixes in CI pipeline * jfjoch_broker: Remove PNG preview, no dependency on libpng * jfjoch_writer: Fix UTC timestamp being generated wrong (mix between milli- and microseconds) * jfjoch_viewer: Show data collection time in dataset tooltip * jfjoch_viewer: Allow to choose the calibrant (presets for LaB6 and silver behenate) * jfjoch_viewer: Auto foreground value * Use external libjpeg-turbo and libtiff: simpler build stack, these are built and linked statically in automated Docker builds * Remove OpenBLAS dependency Reviewed-on: #1 Co-authored-by: Filip Leonarski <filip.leonarski@psi.ch> Co-committed-by: Filip Leonarski <filip.leonarski@psi.ch>
3.5 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.
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
- TIFF library - see gitlab.com/libtiff/libtiff
- JPEG library (preferably jpeg-turbo) - see github.com/libjpeg-turbo/libjpeg-turbo
Optional:
- CUDA compiler version 11 or newer - required for MX fast feedback indexer
- FFTW library - for indexing if GPU/CUDA is absent
- NUMA library - to pin threads to nodes/CPUs
- Node.js - to make frontend
- Qt version 6 (for jfjoch_viewer)
Automatically downloaded by CMake and statically linked:
- SLS Detector Package - see github.com/slsdetectorgroup/slsDetectorPackage
- Zstandard (Facebook) - see github.com/facebook/zstd
- Pistache webserver - see github.com/pistacheio/pistache
- Fast feedback indexer (Hans-Christian Stadler, PSI) - see github.com/paulscherrerinstitute/fast-feedback-indexer
- Catch2 testing library - see github.com/catchorg/Catch2
- Ceres Solver library for least square optimization - see [http://ceres-solver.org/]
Please follow the link provided above to check for LICENSE file. Building code with dependencies above requires access from the build system to github.com.
Directly included in the repository:
- JSON parser/writer from N. Lohmann - see github.com/nlohmann/json
- Xilinx arbitrary precision arithmetic headers - see github.com/Xilinx/HLS_arbitrary_Precision_Types
- Bitshuffle filter from K. Masui - see github.com/kiyo-masui/bitshuffle
- Fast replacement for Bitshuffle pre-compression filter (Kal Cutter, DECTRIS) - see github.com/kalcutter/bitshuffle
- Tinycbor (Intel) - see github.com/intel/tinycbor
- LZ4 compression by Y.Collet - see github.com/lz4/lz4
- Spdlog logging library - see github.com/gabime/spdlog
- ZeroMQ library (through slsDetectorPackage) - see github.com/zeromq/libzmq
- Cpp-http library for HTTP - see github.com/yhirose/cpp-httplib
- Base64 decoder/encoder - see gist.github.com/tomykaira
- GEMMI library by Global Phasing - see github.com/project-gemmi/gemmi
For license check LICENSE file in respective directory