Failure on Debian 13 (trixie) against Slurm 24.11
Not sure if this is just due to new compiler flags treating the implicit declaration as an error? Because it doesn't look like this function was ever in the public headers, but:
Making all in slurm_drmaa
make[3]: Entering directory '/host/build.45c8e0990ad9/slurm-drmaa-1.1.5/slurm_drmaa'
/bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I/usr/include/slurm/ -I../drmaa_utils/ -Wno-long-long -D_REENTRANT -D_THREAD_SAFE -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -DCONFDIR=/usr/lib/slurm-drmaa/etc -Wall -W -Wno-unused-parameter -Wno-format-zero-length -pedantic -std=c99 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/host/build.45c8e0990ad9/slurm-drmaa-1.1.5=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -pthread -MT libdrmaa_la-drmaa.lo -MD -MP -MF .deps/libdrmaa_la-drmaa.Tpo -c -o libdrmaa_la-drmaa.lo `test -f 'drmaa.c' || echo './'`drmaa.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -I/usr/include/slurm/ -I../drmaa_utils/ -Wno-long-long -D_REENTRANT -D_THREAD_SAFE -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -DCONFDIR=/usr/lib/slurm-drmaa/etc -Wall -W -Wno-unused-parameter -Wno-format-zero-length -pedantic -std=c99 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/host/build.45c8e0990ad9/slurm-drmaa-1.1.5=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -pthread -MT libdrmaa_la-drmaa.lo -MD -MP -MF .deps/libdrmaa_la-drmaa.Tpo -c drmaa.c -fPIC -DPIC -o .libs/libdrmaa_la-drmaa.o
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -I/usr/include/slurm/ -I../drmaa_utils/ -Wno-long-long -D_REENTRANT -D_THREAD_SAFE -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -DCONFDIR=/usr/lib/slurm-drmaa/etc -Wall -W -Wno-unused-parameter -Wno-format-zero-length -pedantic -std=c99 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/host/build.45c8e0990ad9/slurm-drmaa-1.1.5=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -pthread -MT libdrmaa_la-drmaa.lo -MD -MP -MF .deps/libdrmaa_la-drmaa.Tpo -c drmaa.c -o libdrmaa_la-drmaa.o >/dev/null 2>&1
mv -f .deps/libdrmaa_la-drmaa.Tpo .deps/libdrmaa_la-drmaa.Plo
/bin/bash ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I/usr/include/slurm/ -I../drmaa_utils/ -Wno-long-long -D_REENTRANT -D_THREAD_SAFE -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -DCONFDIR=/usr/lib/slurm-drmaa/etc -Wall -W -Wno-unused-parameter -Wno-format-zero-length -pedantic -std=c99 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/host/build.45c8e0990ad9/slurm-drmaa-1.1.5=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -pthread -MT libdrmaa_la-job.lo -MD -MP -MF .deps/libdrmaa_la-job.Tpo -c -o libdrmaa_la-job.lo `test -f 'job.c' || echo './'`job.c
libtool: compile: gcc -DHAVE_CONFIG_H -I. -I.. -I/usr/include/slurm/ -I../drmaa_utils/ -Wno-long-long -D_REENTRANT -D_THREAD_SAFE -DNDEBUG -Wdate-time -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -DCONFDIR=/usr/lib/slurm-drmaa/etc -Wall -W -Wno-unused-parameter -Wno-format-zero-length -pedantic -std=c99 -g -O2 -Werror=implicit-function-declaration -ffile-prefix-map=/host/build.45c8e0990ad9/slurm-drmaa-1.1.5=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -pthread -MT libdrmaa_la-job.lo -MD -MP -MF .deps/libdrmaa_la-job.Tpo -c job.c -fPIC -DPIC -o .libs/libdrmaa_la-job.o
job.c: In function 'slurmdrmaa_job_on_missing':
job.c:525:25: error: implicit declaration of function 'slurm_addto_step_list' [-Wimplicit-function-declaration]
525 | slurm_addto_step_list(job_cond->step_list, self->job_id);
| ^~~~~~~~~~~~~~~~~~~~~
job.c: In function 'slurmdrmaa_job_create':
job.c:825:31: warning: ignoring return value of 'strerror_r' declared with attribute 'warn_unused_result' [-Wunused-result]
825 | (void)strerror_r(errno, errbuf, 256); /*on error the default message would be returned */
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
make[3]: *** [Makefile:499: libdrmaa_la-job.lo] Error 1
make[3]: Leaving directory '/host/build.45c8e0990ad9/slurm-drmaa-1.1.5/slurm_drmaa'
make[2]: *** [Makefile:451: all-recursive] Error 1
make[2]: Leaving directory '/host/build.45c8e0990ad9/slurm-drmaa-1.1.5'
make[1]: *** [Makefile:383: all] Error 2
make[1]: Leaving directory '/host/build.45c8e0990ad9/slurm-drmaa-1.1.5'
dh_auto_build: error: make -j1 returned exit code 2
make: *** [debian/rules:7: binary] Error 255
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
For the package on https://depot.galaxyproject.org/apt I added it to slurm_missing.h by hand:
extern int slurm_addto_step_list(list_t *step_list, char *names);
But a proper fix is needed.
I ran into the same problem on a simultaneous upgrade to Debian 'trixie' and Galaxy 25.0. The following conditional does already exist in slurm_missing.h:
#if SLURM_VERSION_NUMBER < SLURM_VERSION_NUM(24,11,0)
extern int slurm_addto_step_list(List step_list, char *names);
#endif
but (1) it isn't called since Debian 'trixie' has Slurm version 24.11.5, and (2) if modified so that this block is run, it throws an error (unknown type name 'List'). The fix as specified in this issue worked for us for the time being.
This version check was added in #92 but it's not clear why, I probably assumed that those definitions were made public in 24.11 but it doesn't look like they were. Thanks!