From 0e6199871fc83c2c35cc70cb19c33e04d986b9a0 Mon Sep 17 00:00:00 2001 From: Dawn Date: Tue, 18 Aug 2026 14:51:14 +0200 Subject: [PATCH] Add crystfel 0.13.0 module: meson build from DESY source tarball Co-Authored-By: Claude Fable 5 --- crystfel/README.md | 46 ++++++++++++++++++++++++++++++++++++++ crystfel/build | 20 +++++++++++++++++ crystfel/files/config.yaml | 16 +++++++++++++ crystfel/modulefile | 14 ++++++++++++ 4 files changed, 96 insertions(+) create mode 100644 crystfel/README.md create mode 100755 crystfel/build create mode 100644 crystfel/files/config.yaml create mode 100644 crystfel/modulefile diff --git a/crystfel/README.md b/crystfel/README.md new file mode 100644 index 0000000..f39f7cc --- /dev/null +++ b/crystfel/README.md @@ -0,0 +1,46 @@ +# crystfel + +Data processing for serial (femtosecond) crystallography at FELs and +synchrotrons: indexamajig, partialator, process_hkl, cell_explorer, +the CrystFEL GUI and friends. + +- Upstream: https://www.desy.de/~twhite/crystfel/ +- License: GPLv3 + +## How it is built + +Source tarball from https://desy.de/~twhite/crystfel/ (sha256-verified), +built with meson per upstream INSTALL.md: +`meson setup build --prefix=$PREFIX && meson compile -C build && meson install -C build`. + +Upstream warns: do NOT have any conda environment active while building. +Build-host prerequisites (meson, ninja, gcc, and the C libraries: hdf5, +gsl, and optionally cairo/gdk-pixbuf/gtk for the GUI, fftw, zmq) must be +available on the Ra build node -- add `build_requires:` entries in +`files/config.yaml` if matching Ra modules are needed. + +Loading the module puts `$PREFIX/bin` on `PATH`. + +## Building on Ra + +```sh +module use unstable && module load modbuild/2.1.2 +cd crystfel +modbuild build 0.13.0 +module use MX unstable && module load crystfel/0.13.0 && indexamajig --version +``` + +## Verifying the install + +```sh +module use MX unstable && module load crystfel/0.13.0 +which indexamajig +indexamajig --version +cell_explorer # GUI check, needs X +``` + +## Adding a new version + +Add the version under `versions:` and its tarball sha256 under `shasums:` +in `files/config.yaml`, then on a Ra login node: +`modbuild build ` (modbuild/2.1.2). diff --git a/crystfel/build b/crystfel/build new file mode 100755 index 0000000..a6af99c --- /dev/null +++ b/crystfel/build @@ -0,0 +1,20 @@ +#!/usr/bin/env modbuild + +# upstream INSTALL.md: meson setup build && meson compile && meson install. +# default pbuild::prep downloads + sha-verifies + unpacks the tarball (urls/shasums +# in files/config.yaml, strip_dirs:1 puts the sources at $SRC_DIR root). + +pbuild::configure() { + cd "${SRC_DIR}" + meson setup build --prefix="${PREFIX}" +} + +pbuild::compile() { + cd "${SRC_DIR}" + meson compile -C build +} + +pbuild::install() { + cd "${SRC_DIR}" + meson install -C build +} diff --git a/crystfel/files/config.yaml b/crystfel/files/config.yaml new file mode 100644 index 0000000..ac11112 --- /dev/null +++ b/crystfel/files/config.yaml @@ -0,0 +1,16 @@ +--- +format: 1 +crystfel: + defaults: + group: MX + overlay: base + relstage: unstable + urls: + - url: https://desy.de/~twhite/crystfel/crystfel-${V_PKG}.tar.gz + strip_dirs: 1 + shasums: + crystfel-0.13.0.tar.gz: e85cfb5bc9112a56939a72fedb5b76d148244e3af7a02d3c20ecc018eb1e6905 + versions: + 0.13.0: + config: + relstage: unstable diff --git a/crystfel/modulefile b/crystfel/modulefile new file mode 100644 index 0000000..7b616cc --- /dev/null +++ b/crystfel/modulefile @@ -0,0 +1,14 @@ +#%Module1.0 + +module-whatis "CrystFEL - data processing for serial femtosecond crystallography" +module-url "https://www.desy.de/~twhite/crystfel/" +module-license "GPLv3" +module-maintainer "MX Data " + +module-help " +CrystFEL: a suite of programs for processing (serial) crystallography +data from free-electron lasers and synchrotrons: indexamajig, partialator, +process_hkl, cell_explorer, the CrystFEL GUI and more. +" + +prepend-path PATH $PREFIX/bin