As cited on the issue, between Slurm 23.02 and 23.11 the defined type `hostlist_t` was changed by the developers. Prior to 23.11 it was an opaque pointer to a hostlist_t data structure; in 23.11 it is the data structure itself. This means that all hostlist API functions changed, as well, to directly use `hostlist_t*` arguments instead of `hostlist_t` arguments. The snodelist code was written against pre-23.11 releases of Slurm where `hostlist_t` is an opaque pointer. So in post-23.11 situations — where it's a data structure, not a pointer — the compilation fails because there is no definition of `struct hostlist` present in the header.
Very annoying, but I added a version-based adaptation in the source to get around it. Should compile on 23.11 and newer now...unless there are other big changes they made to the API :-)
On Jan 7, 2025, at 14:45, Ole Holm Nielsen Ole.H.Nielsen@fysik.dtu.dk wrote:
Hi Jeffrey,
We run Slurm 24.05.5. I now used the RockyLinux 8.10 versions of gcc and cmake according to the instructions in README.md, but the build is still failing.
/Ole
On 07-01-2025 20:14, Jeffrey Frey wrote:
Ole, I added a brief "how to build" to the README.md, hope that helps. I also commented on your issue on Github — your environment doesn't seem to have the slurm.h header that's expected. What version of Slurm are you running? -Jeff
On Jan 7, 2025, at 13:26, Ole Holm Nielsen via slurm-users slurm-users@lists.schedmd.com wrote:
Hi Jeffrey,
Thanks a lot, I'd like to try out snodelist. Not knowing much about CMake, I couldn't build the tool :-( I've opened an issue on GitHub: https://github.com/University-of-Delaware-IT-RCI/snodelist/issues/1 Can you help me out?
On 07-01-2025 16:27, Jeffrey Frey via slurm-users wrote:
We use a tool that's compiled against the Slurm library itself so that the expansion/contraction of lists is always 100% in sync with Slurm itself: https://github.com/jtfrey/snodelist
Thanks, Ole