From 0e6199871fc83c2c35cc70cb19c33e04d986b9a0 Mon Sep 17 00:00:00 2001 From: Dawn Date: Tue, 18 Aug 2026 14:51:14 +0200 Subject: [PATCH 1/4] 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 From 2ddb347ec62cab00b4098aa4fff65259b29d50e1 Mon Sep 17 00:00:00 2001 From: duan_j Date: Tue, 18 Aug 2026 15:44:56 +0200 Subject: [PATCH 2/4] update config for crystfel, build from source dir with meson --- crystfel/build | 13 ++++++------- crystfel/files/config.yaml | 1 + 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/crystfel/build b/crystfel/build index a6af99c..7472355 100755 --- a/crystfel/build +++ b/crystfel/build @@ -3,18 +3,17 @@ # 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). - +# need to install the latest meson > 0.60 at local/bin +# could be pip3 install --user meson +# cd lines can be deleted with compile_in_sourcetree being true pbuild::configure() { - cd "${SRC_DIR}" - meson setup build --prefix="${PREFIX}" + ~/.local/bin/meson setup build --prefix="${PREFIX}" } pbuild::compile() { - cd "${SRC_DIR}" - meson compile -C build + ~/.local/bin/meson compile -C build } pbuild::install() { - cd "${SRC_DIR}" - meson install -C build + ~/.local/bin/meson install -C build } diff --git a/crystfel/files/config.yaml b/crystfel/files/config.yaml index ac11112..5ec4366 100644 --- a/crystfel/files/config.yaml +++ b/crystfel/files/config.yaml @@ -2,6 +2,7 @@ format: 1 crystfel: defaults: + compile_in_sourcetree: true group: MX overlay: base relstage: unstable From 6abd7ea855c64cfbd92fcefdcc281477a8e4bec3 Mon Sep 17 00:00:00 2001 From: Emma Victoria Beale Date: Tue, 18 Aug 2026 15:25:02 +0200 Subject: [PATCH 3/4] use local meson, need to pip install meson > 0.60 at home folder --- crystfel/build | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/crystfel/build b/crystfel/build index 7472355..0512977 100755 --- a/crystfel/build +++ b/crystfel/build @@ -7,13 +7,25 @@ # could be pip3 install --user meson # cd lines can be deleted with compile_in_sourcetree being true pbuild::configure() { +<<<<<<< HEAD +======= + cd "${SRC_DIR}" +>>>>>>> fc35801 (use local meson, need to pip install meson > 0.60 at home folder) ~/.local/bin/meson setup build --prefix="${PREFIX}" } pbuild::compile() { +<<<<<<< HEAD +======= + cd "${SRC_DIR}" +>>>>>>> fc35801 (use local meson, need to pip install meson > 0.60 at home folder) ~/.local/bin/meson compile -C build } pbuild::install() { +<<<<<<< HEAD +======= + cd "${SRC_DIR}" +>>>>>>> fc35801 (use local meson, need to pip install meson > 0.60 at home folder) ~/.local/bin/meson install -C build } From b70f3dfc57abc520437e7acaff795249a9b1fdf2 Mon Sep 17 00:00:00 2001 From: Emma Victoria Beale Date: Tue, 18 Aug 2026 16:36:49 +0200 Subject: [PATCH 4/4] testing git --- crystfel/build | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/crystfel/build b/crystfel/build index 0512977..848afcf 100755 --- a/crystfel/build +++ b/crystfel/build @@ -7,25 +7,34 @@ # could be pip3 install --user meson # cd lines can be deleted with compile_in_sourcetree being true pbuild::configure() { +<<<<<<< Updated upstream <<<<<<< HEAD ======= cd "${SRC_DIR}" >>>>>>> fc35801 (use local meson, need to pip install meson > 0.60 at home folder) +======= +>>>>>>> Stashed changes ~/.local/bin/meson setup build --prefix="${PREFIX}" } pbuild::compile() { +<<<<<<< Updated upstream <<<<<<< HEAD ======= cd "${SRC_DIR}" >>>>>>> fc35801 (use local meson, need to pip install meson > 0.60 at home folder) +======= +>>>>>>> Stashed changes ~/.local/bin/meson compile -C build } pbuild::install() { +<<<<<<< Updated upstream <<<<<<< HEAD ======= cd "${SRC_DIR}" >>>>>>> fc35801 (use local meson, need to pip install meson > 0.60 at home folder) +======= +>>>>>>> Stashed changes ~/.local/bin/meson install -C build }