Merge remote-tracking branch 'origin/build-crystfel'

This commit is contained in:
2026-08-18 21:54:18 +02:00
4 changed files with 117 additions and 0 deletions
+46
View File
@@ -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 <version>` (modbuild/2.1.2).
Executable
+40
View File
@@ -0,0 +1,40 @@
#!/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).
# 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() {
<<<<<<< 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
}
+17
View File
@@ -0,0 +1,17 @@
---
format: 1
crystfel:
defaults:
compile_in_sourcetree: true
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
+14
View File
@@ -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 <jiaxin.duan@psi.ch>"
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