* Rugnux: Performance improvements on GPU and CPU (more of the pre-scan and of scaling on the GPU, faster CPU spot finding and crystal refinement), with unchanged results. * Rugnux: More robust processing - patches of persistently hot pixels are masked, an inconsistent merge triggers a retry at the measured beam centre, and builds targeting different CPU levels give the same results. * Rugnux: Improved scaling and merging - reflections with an overloaded pixel are dropped, as in XDS, sparse rotation sweeps are scaled more reliably, and French-Wilson amplitudes use an anisotropic Wilson prior. * Rugnux: Improved space-group determination - glide planes in groups without a centre of symmetry, screw axes from short or weak axial rows kept when a higher group is adopted, and more reliable decisions on twinned and pseudo-symmetric crystals. * Rugnux: Improved small-molecule processing - spots that grow wider than the integration disk and split spots are integrated over their measured footprint, sparse lattices are integrated on every frame, and the `.hkl` file holds unmerged scaled reflections (SHELX HKLF 4). * Rugnux: Reads Rigaku d*TREK SMV images (Saturn CCD), including detector 2theta and encoded pixel overflows; home-source (rotating-anode) datasets were added to the validation battery. * jfjoch_viewer: Fixed processing failing at the end with "Wrong JPEG library version" on Linux; the merge window shows the space group with proper subscripts and a checklist of crystal pathologies. Reviewed-on: #84 Co-authored-by: Filip Leonarski <filip.leonarski@psi.ch>
Shared build-image steps
docker/rocky8, docker/rocky9, docker/ubuntu2204 and docker/ubuntu2404 differ only in their
package manager, their package list and a few distro-specific extras (DIALS and XDS on rocky9, the
aarch64 cross toolchain on ubuntu2404, the release tooling on rocky8). Everything built from
source is identical in all four, so it lives here and is run by each Dockerfile in this order:
| script | what it installs |
|---|---|
install-cmake.sh |
CMake, pinned, from cmake.org -- the distro CMake is not used |
build-openssl.sh |
static OpenSSL into /opt/openssl-$OPENSSL_VERSION |
build-dbus.sh |
static libdbus into /opt/dbus-$DBUS_VERSION-static |
build-qt.sh |
static Qt 6 into $QT_PREFIX |
install-eigen.sh |
Eigen 3.4 into /opt/eigen-3.4 |
They read their versions from the ARGs of the Dockerfile that runs them, and each one is the verbatim shell that used to be inlined four times. Keeping one copy is the point: the HTTP/1.1 git fix once landed in the two Ubuntu images and neither Rocky one, because there were four copies to remember.
The build context is therefore docker/, not docker/<variant>/ -- see build_images.sh.