* Rugnux: Several rotation sweeps of one crystal are merged as one dataset (`rugnux a_master.h5 b_master.h5`), on a common indexing and cell, with a non-isomorphous sweep left out and reported; `--sweeps separate` processes each sweep on its own. Bruker `.sfrm` frames and imgCIF files with a full goniometer axis chain are read. * Rugnux: More robust rotation processing - a retry with a more sensitive spot finder when no lattice is found, a self-consistent detector distance, long axes and doubled cells tested as hypotheses, a `-C` supercell multiple stepped down, and each ice ring merged, down-weighted or rejected on its own. * Rugnux: Serial stills are merged with a partiality-aware error model, reported as `ERROR_MODEL_A/B/C` with no ISa or R_merge/R_meas/R_pim; runs without `-S` have an overall intensity scale about 0.86-0.88 times that of earlier versions, with unchanged statistics. A second crystal form is left out of the merge and reported, the indexing ambiguity is resolved more reliably, and `--model` no longer influences processing. * Rugnux: The reported CC1/2 is the standard unweighted one, which can be lower than before on sweeps with weak frames; ISa comes with a 95% interval (`ISA_LOW`/`ISA_HIGH`). * Rugnux: Model refinement adds anisotropic/TLS, local NCS and twin refinement where R-free supports them; building waters and relabelling ions is now off by default (`--refine-solvent` turns it on). * NXmx: A detector of several modules is written as `module_0` ... `module_N` only, so DIALS reads each module as its own panel. * Other: JPEG previews use a bundled encoder (libjpeg-turbo no longer needed), Rugnux prints how to cite it, and the release archives contain the HTML documentation. Reviewed-on: #92 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.