aboutsummaryrefslogtreecommitdiff
path: root/meson.build
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2022-03-09 16:31:01 +0100
committerThomas White <taw@physics.org>2022-03-18 16:46:30 +0100
commita4c786d52613063d338ee010f4415e8a6aef0513 (patch)
tree31479897a5099c9872d20dce9d41d133426ea5ab /meson.build
parent66c1f2a616ae5082ed73d4cd2cc339b65f0d6f61 (diff)
GUI: Use sbatch/scancel/scontrol instead of Slurm API
This commit strips out all references to the Slurm API, instead making subprocess calls to sbatch and scontrol. Attempting to use the Slurm API seems to have been a mis-step. First, it seems that nowhere has the Slurm headers pre-installed. Literally none of the facilities where there are known deployments of CrystFEL have them. And in a significant fraction of cases, getting them installed is difficult, slow or impossible. In addition, the API doesn't seem to work in all cases, so we already shell out to 'scancel' to abort jobs - see d76fc3495. There are some tricky implications for submitting Slurm jobs from a container via the API. The Slurm REST API offers a solution, but is very new and not widely available. Calls to the Slurm executables are much easier to 'tunnel' out of a container. This isn't a great solution. It's a net increase of only about 40 lines of source code, but it incurs some unpleasant string handling and will probably be less reliable overall. It completely relies on Slurm's not being internationalised. If Slurm's messages start getting translated, we will be in trouble.
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build20
1 files changed, 2 insertions, 18 deletions
diff --git a/meson.build b/meson.build
index a9848901..843b8e9d 100644
--- a/meson.build
+++ b/meson.build
@@ -21,18 +21,6 @@ mdep = cc.find_library('m', required: true)
gsldep = dependency('gsl', required: true)
pthreaddep = dependency('threads', required: true)
-# Try via pkg-config first:
-slurmdep = dependency('slurm', required: false)
-if not slurmdep.found()
- slurmdep = cc.find_library('slurm',
- has_headers: 'slurm/slurm.h',
- required: false)
-endif
-
-if slurmdep.found()
- conf_data.set10('HAVE_SLURM', 1)
-endif
-
# Find HDF5 using inbuilt Meson methods. Requires Meson >= 0.50.0
hdf5dep = dependency('hdf5', language: 'c', required: get_option('hdf5'))
if hdf5dep.found()
@@ -218,17 +206,13 @@ if gtkdep.found()
'src/gui_export.c',
'src/gui_ambi.c',
'src/gui_backend_local.c',
+ 'src/gui_backend_slurm.c',
'src/gui_project.c',
'src/gtkmultifilechooserbutton.c',
versionc]
- if slurmdep.found()
- gui_sources += 'src/gui_backend_slurm.c'
- endif
-
-
executable('crystfel', gui_sources,
- dependencies: [mdep, libcrystfeldep, gtkdep, gsldep, slurmdep],
+ dependencies: [mdep, libcrystfeldep, gtkdep, gsldep],
install: true,
install_rpath: '$ORIGIN/../lib64/:$ORIGIN/../lib')