diff --git a/sysutils/slurm-wlm/Makefile b/sysutils/slurm-wlm/Makefile index 97a1fc171086..1c676d36a530 100644 --- a/sysutils/slurm-wlm/Makefile +++ b/sysutils/slurm-wlm/Makefile @@ -1,135 +1,136 @@ PORTNAME= slurm -DISTVERSION= 25.11.0 -PORTREVISION= 1 +DISTVERSION= 25.11.3 CATEGORIES= sysutils MASTER_SITES= https://download.schedmd.com/slurm/ PKGNAMESUFFIX= -wlm MAINTAINER= rikka.goering@outlook.de COMMENT= Simple Linux Utility for Resource Management WWW= https://slurm.schedmd.com/ LICENSE= GPLv2+ LICENSE_FILE= ${WRKSRC}/COPYING NOT_FOR_ARCHS= armv6 armv7 i386 mips powerpc powerpcspe NOT_FOR_ARCHS_REASON= 32-bit support is deprecated LIB_DEPENDS= libhttp_parser.so:www/http-parser \ libjson-c.so:devel/json-c \ libjwt.so:www/libjwt \ liblz4.so:archivers/liblz4 \ libmunge.so:security/munge \ librdkafka.so:net/librdkafka \ libsysinfo.so:devel/libsysinfo \ libunwind.so:devel/libunwind \ libyaml.so:textproc/libyaml USES= compiler:c11 cpe gmake libtool localbase lua mysql:client perl5 \ pkgconfig python:build readline shebangfix ssl tar:bz2 CPE_VENDOR= schedmd USE_LDCONFIG= yes USE_PERL5= build USE_RC_SUBR= slurmctld slurmd SHEBANG_FILES= doc/html/shtml2html.py doc/man/man2html.py GNU_CONFIGURE= yes # FreeBSD Infiniband support is still experimental # slurmrestd does not build on FreeBSD CONFIGURE_ARGS= --disable-dependency-tracking \ --disable-slurmrestd \ --docdir=${DOCSDIR} \ --htmldir=${DOCSDIR} \ --sysconfdir=${ETCDIR} \ --with-mysql_config=${LOCALBASE}/bin CONFIGURE_ENV= MAKE=${GMAKE} INSTALL_TARGET= install-strip TEST_TARGET= check +TESTING_UNSAFE= yes CFLAGS+= -I${WRKSRC}/slurm LDFLAGS+= -lsysinfo -lprocstat -fcommon SUB_FILES= pkg-message USERS= ${PORTNAME} GROUPS= ${PORTNAME} PLIST_SUB= GROUPS=${GROUPS} \ USERS=${USERS} PORTDOCS= * -OPTIONS_DEFINE= CURL DOCS GUI HDF5 HWLOC IPMI +OPTIONS_DEFINE= CURL DOCS GUI HDF5 HWLOC IPMI S2N OPTIONS_DEFAULT= HDF5 HWLOC OPTIONS_SUB= yes CURL_DESC= Require cURL for elasticsearch plugins GUI_DESC= Build sview GUI config tool HDF5_DESC= Job profiling using HDF5 HWLOC_DESC= Portable hardware locality IPMI_DESC= IPMI energy consumption accounting +S2N_DESC= Build tls_s2n TLS plugin CURL_LIB_DEPENDS= libcurl.so:ftp/curl CURL_CONFIGURE_WITH= libcurl DOCS_BUILD_DEPENDS= man2html:textproc/man2html GUI_BUILD_DEPENDS= itstool:textproc/itstool GUI_USES= gnome GUI_USE= GNOME=cairo,gdkpixbuf,glib20,gtk20,pango -GUI_CONFIGURE_ENABLE= glibtest gtktest x11 +GUI_CONFIGURE_ENABLE= sview +GUI_CONFIGURE_OFF= --disable-sview HDF5_LIB_DEPENDS= libhdf5.so:science/hdf5 \ libhdf5_hl.so:science/hdf5 HDF5_CONFIGURE_WITH= hdf5 HDF5_CONFIGURE_ENV= H5CC=${LOCALBASE}/bin/h5cc \ H5FC=${LOCALBASE}/bin/h5fc HDF5_LDFLAGS= -lhdf5_hl HWLOC_LIB_DEPENDS= libhwloc.so.15:devel/hwloc2 HWLOC_CONFIGURE_WITH= hwloc IPMI_LIB_DEPENDS= libfreeipmi.so:sysutils/freeipmi \ libipmimonitoring.so:sysutils/freeipmi IPMI_CONFIGURE_WITH= freeipmi +S2N_LIB_DEPENDS= libs2n.so:security/s2n-tls +S2N_CONFIGURE_WITH= s2n=${LOCALBASE} +S2N_CONFIGURE_OFF= --without-s2n + _ARCH= ${ARCH:S|aarch64|aarch64elf|:S|amd64|elf_amd64|:S|powerpc64le|elf64lppc|:S|powerpc64|elf64ppc|:S|riscv64|elf64lriscv|} # SLURM's configure enables interactive jobs if pty.h exists. Replacing # #include with appropriate headers will therefore not work, so instead # add a pty.h for the build. pre-configure: ${CP} ${FILESDIR}/pty.h ${WRKSRC}/slurm ${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|' ${WRKSRC}/configure # Make /proc => /compat/linux/proc edits only in files that exist & contain "/proc" (cd ${WRKSRC} && \ ${GREP} -RIl '"/proc' src | ${XARGS} ${REINPLACE_CMD} \ -e 's|"/proc|"/compat/linux/proc|g' \ - -e 's|(/proc)|(/compat/linux/proc)|g') + -e 's|(/proc)|(/compat/linux/proc)|g') @if ${WHICH} sbatch > /dev/null; then \ ${ECHO_CMD} "********************************************"; \ ${ECHO_CMD} "Build may fail while slurm-wlm is installed."; \ ${ECHO_CMD} "Deinstall slurm-wlm and run make again."; \ ${ECHO_CMD} "********************************************"; \ false; \ fi # Fix lld binary-blob rule: add -m ${_ARCH} wherever --format=binary is used ${FIND} ${WRKSRC} -name Makefile.in -print0 | \ ${XARGS} -0 ${GREP} -Il -- '--format=binary' | \ ${XARGS} ${REINPLACE_CMD} -e 's|$$(LD) -r -o|$$(LD) -r -m ${_ARCH} -o|' ${FIND} ${WRKSRC} -name Makefile.in | ${XARGS} \ ${REINPLACE_CMD} -e 's|htmldir = \$${datadir.*$$|htmldir = @htmldir@|' -# Hack around nonfunctional --disable-gtktest flag -pre-configure-GUI-off: - ${REINPLACE_CMD} -e 's|min_gtk_version=.*|min_gtk_version=2000.0.0|' \ - ${WRKSRC}/configure - post-install: @${MKDIR} ${STAGEDIR}/var/spool/slurmctld \ ${STAGEDIR}${ETCDIR} ${INSTALL_DATA} ${WRKSRC}/etc/slurm.conf.example \ ${STAGEDIR}${ETCDIR}/slurm.conf.sample .include diff --git a/sysutils/slurm-wlm/distinfo b/sysutils/slurm-wlm/distinfo index 95b9151f9a8a..d4dffa84ca5d 100644 --- a/sysutils/slurm-wlm/distinfo +++ b/sysutils/slurm-wlm/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1762496373 -SHA256 (slurm-25.11.0.tar.bz2) = d63f585a73f3d504ddce42ed7205b75e4d79372a43e0f47535cd51ecc5383d09 -SIZE (slurm-25.11.0.tar.bz2) = 6714268 +TIMESTAMP = 1771602829 +SHA256 (slurm-25.11.3.tar.bz2) = 2928cf9be4005ae6cbc40633c375b4d0f8dcf16573256ab27e4fd84cce57ff3f +SIZE (slurm-25.11.3.tar.bz2) = 6728996 diff --git a/sysutils/slurm-wlm/files/patch-config.h.in b/sysutils/slurm-wlm/files/patch-config.h.in new file mode 100644 index 000000000000..fa28fb559310 --- /dev/null +++ b/sysutils/slurm-wlm/files/patch-config.h.in @@ -0,0 +1,20 @@ +--- config.h.in.orig 2026-01-29 06:29:02 UTC ++++ config.h.in +@@ -1,5 +1,17 @@ + /* config.h.in. Generated from configure.ac by autoheader. */ + ++/* Define to 1 if 'sa_len' is a member of 'struct sockaddr'. */ ++#undef HAVE_STRUCT_SOCKADDR_SA_LEN ++ ++/* Define to 1 if 'sin_len' is a member of 'struct sockaddr_in'. */ ++#undef HAVE_STRUCT_SOCKADDR_IN_SIN_LEN ++ ++/* Define to 1 if 'sin6_len' is a member of 'struct sockaddr_in6'. */ ++#undef HAVE_STRUCT_SOCKADDR_IN6_SIN6_LEN ++ ++/* Define to 1 if 'sun_len' is a member of 'struct sockaddr_un'. */ ++#undef HAVE_STRUCT_SOCKADDR_UN_SUN_LEN ++ + /* Define if building universal (internal helper macro) */ + #undef AC_APPLE_UNIVERSAL_BUILD + diff --git a/sysutils/slurm-wlm/files/patch-configure b/sysutils/slurm-wlm/files/patch-configure new file mode 100644 index 000000000000..ff3073aa4b2c --- /dev/null +++ b/sysutils/slurm-wlm/files/patch-configure @@ -0,0 +1,392 @@ +--- configure.orig 2026-02-19 21:12:55 UTC ++++ configure +@@ -784,6 +784,7 @@ HDF5_LIBS + HDF5_FFLAGS + HDF5_FC + HDF5_LIBS ++HDF5_HL_LIBS + HDF5_LDFLAGS + HDF5_CPPFLAGS + HDF5_CFLAGS +@@ -12827,7 +12828,7 @@ printf %s "checking whether the $compiler linker ($LD) + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no +- link_all_deplibs=unknown ++ link_all_deplibs=no + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= +@@ -13125,7 +13126,7 @@ _LT_EOF + + *-mlibc) + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_expsym_cmds='echo "{ global:" > $lib-ver~ sed -e "s|$|;|" < $export_symbols >> $lib-ver~ echo "local: *; };" >> $lib-ver~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$lib-ver -o $lib' + ;; + + netbsd* | netbsdelf*-gnu) +@@ -13134,7 +13135,7 @@ _LT_EOF + wlarc= + else + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_expsym_cmds='echo "{ global:" > $lib-ver~ sed -e "s|$|;|" < $export_symbols >> $lib-ver~ echo "local: *; };" >> $lib-ver~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$lib-ver -o $lib' + fi + ;; + +@@ -13153,7 +13154,7 @@ _LT_EOF + _LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_expsym_cmds='echo "{ global:" > $lib-ver~ sed -e "s|$|;|" < $export_symbols >> $lib-ver~ echo "local: *; };" >> $lib-ver~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$lib-ver -o $lib' + else + ld_shlibs=no + fi +@@ -13182,7 +13183,7 @@ _LT_EOF + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_expsym_cmds='echo "{ global:" > $lib-ver~ sed -e "s|$|;|" < $export_symbols >> $lib-ver~ echo "local: *; };" >> $lib-ver~$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$lib-ver -o $lib' + else + ld_shlibs=no + fi +@@ -13200,7 +13201,7 @@ _LT_EOF + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' +- archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_expsym_cmds='echo "{ global:" > $lib-ver~ sed -e "s|$|;|" < $export_symbols >> $lib-ver~ echo "local: *; };" >> $lib-ver~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$lib-ver -o $lib' + else + ld_shlibs=no + fi +@@ -13865,7 +13866,7 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; } + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' +- archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' ++ archive_expsym_cmds='echo "{ global:" > $lib-ver~ sed -e "s|$|;|" < $export_symbols >> $lib-ver~ echo "local: *; };" >> $lib-ver~$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-version-script,$lib-ver' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + export_dynamic_flag_spec='$wl-E' + else +@@ -14734,7 +14735,7 @@ freebsd* | dragonfly* | midnightbsd*) + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) +- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' + soname_spec='$libname$release$shared_ext$major' + need_version=no + need_lib_prefix=no +@@ -16492,7 +16493,7 @@ else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 + printf "%s\n" "no" >&6; } + else +- if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then ++ if $STRIP -V 2>&1 | $GREP "strip" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +@@ -16506,7 +16507,7 @@ printf "%s\n" "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 + printf "%s\n" "yes" >&6; } + ;; +- freebsd*) ++dragonfly* | freebsd*) + if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" +@@ -16752,7 +16753,7 @@ module_expsym_cmds_CXX= + inherit_rpath_CXX=no + module_cmds_CXX= + module_expsym_cmds_CXX= +-link_all_deplibs_CXX=unknown ++link_all_deplibs_CXX=no + old_archive_cmds_CXX=$old_archive_cmds + reload_flag_CXX=$reload_flag + reload_cmds_CXX=$reload_cmds +@@ -16969,7 +16970,7 @@ with_gnu_ld=$lt_cv_prog_gnu_ld + # archiving commands below assume that GNU ld is being used. + if test yes = "$with_gnu_ld"; then + archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' +- archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_expsym_cmds_CXX='echo "{ global:" > $lib-ver~ sed -e "s|$|;|" < $export_symbols >> $lib-ver~ echo "local: *; };" >> $lib-ver~$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$lib-ver -o $lib' + + hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' + export_dynamic_flag_spec_CXX='$wl--export-dynamic' +@@ -17668,7 +17669,7 @@ fi + case `$CC -V 2>&1` in + *"Version 7."*) + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' +- archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_expsym_cmds_CXX='echo "{ global:" > $lib-ver~ sed -e "s|$|;|" < $export_symbols >> $lib-ver~ echo "local: *; };" >> $lib-ver~$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$lib-ver -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= +@@ -17676,7 +17677,7 @@ fi + ia64*) tmp_idyn=' -i_dynamic';; + esac + archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' +- archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_expsym_cmds_CXX='echo "{ global:" > $lib-ver~ sed -e "s|$|;|" < $export_symbols >> $lib-ver~ echo "local: *; };" >> $lib-ver~$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$lib-ver -o $lib' + ;; + esac + archive_cmds_need_lc_CXX=no +@@ -17708,7 +17709,7 @@ fi + ;; + *) # Version 6 and above use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' +- archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' ++ archive_expsym_cmds_CXX='echo "{ global:" > $lib-ver~ sed -e "s|$|;|" < $export_symbols >> $lib-ver~ echo "local: *; };" >> $lib-ver~$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$lib-ver -o $lib' + ;; + esac + +@@ -17719,7 +17720,7 @@ fi + cxx*) + # Compaq C++ + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' +- archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols' ++ archive_expsym_cmds_CXX='echo "{ global:" > $lib-ver~ sed -e "s|$|;|" < $export_symbols >> $lib-ver~ echo "local: *; };" >> $lib-ver~$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-version-script $wl$lib-ver' + + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec_CXX='-rpath $libdir' +@@ -17753,7 +17754,7 @@ fi + # Sun C++ 5.9 + no_undefined_flag_CXX=' -zdefs' + archive_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' +- archive_expsym_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' ++ archive_expsym_cmds_CXX='echo "{ global:" > $lib-ver~ sed -e "s|$|;|" < $export_symbols >> $lib-ver~ echo "local: *; };" >> $lib-ver~$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-version-script $wl$lib-ver' + hardcode_libdir_flag_spec_CXX='-R$libdir' + whole_archive_flag_spec_CXX='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + compiler_needs_object_CXX=yes +@@ -17825,7 +17826,7 @@ fi + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then +- archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib' ++ archive_expsym_cmds_CXX='echo "{ global:" > $lib-ver~ sed -e "s|$|;|" < $export_symbols >> $lib-ver~ echo "local: *; };" >> $lib-ver~$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-version-script,$lib-ver -o $lib' + export_dynamic_flag_spec_CXX='$wl-E' + whole_archive_flag_spec_CXX=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + fi +@@ -19384,7 +19385,7 @@ freebsd* | dragonfly* | midnightbsd*) + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) +- library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' ++ library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' soname_spec='$libname$release$shared_ext$major' + soname_spec='$libname$release$shared_ext$major' + need_version=no + need_lib_prefix=no +@@ -24160,7 +24161,7 @@ case $host_os in + + case $host_os in + +- freebsd*) ++dragonfly* | freebsd*) + + # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) + # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) +@@ -25027,6 +25028,7 @@ HDF5_LIBS="" + HDF5_CPPFLAGS="" + HDF5_LDFLAGS="" + HDF5_LIBS="" ++HDF5_HL_LIBS="" + HDF5_FC="" + HDF5_FFLAGS="" + HDF5_FLIBS="" +@@ -25416,7 +25418,59 @@ printf "%s\n" "#define H5_USE_18_API 1" >>confdefs.h + fi + + ++{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for H5PTopen in -lhdf5_hl" >&5 ++printf %s "checking for H5PTopen in -lhdf5_hl... " >&6; } ++if test ${ac_cv_lib_hdf5_hl_H5PTopen+y} ++then : ++ printf %s "(cached) " >&6 ++else case e in #( ++ e) ++ ac_check_lib_save_LIBS=$LIBS ++ ac_check_lib_save_LDFLAGS=$LDFLAGS ++ # Ensure the test link sees both -L/-Wl flags and libs provided by AX_LIB_HDF5() ++ LDFLAGS="$LDFLAGS $HDF5_LDFLAGS" ++ LIBS="-lhdf5_hl $HDF5_LIBS $LIBS" ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ + ++/* Override any GCC internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++char H5PTopen (void); ++int ++main (void) ++{ ++return H5PTopen (); ++ ; ++ return 0; ++} ++_ACEOF ++if ac_fn_c_try_link "$LINENO" ++then : ++ ac_cv_lib_hdf5_hl_H5PTopen=yes ++else case e in #( ++ e) ac_cv_lib_hdf5_hl_H5PTopen=no ;; ++esac ++fi ++rm -f core conftest.err conftest.$ac_objext conftest.beam \ ++ conftest$ac_exeext conftest.$ac_ext ++ LIBS=$ac_check_lib_save_LIBS ++ LDFLAGS=$ac_check_lib_save_LDFLAGS ++ ;; ++esac ++fi ++{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_hdf5_hl_H5PTopen" >&5 ++printf "%s\n" "$ac_cv_lib_hdf5_hl_H5PTopen" >&6; } ++if test "x$ac_cv_lib_hdf5_hl_H5PTopen" = xyes ++then : ++ HDF5_HL_LIBS="-lhdf5_hl" ++else case e in #( ++ e) HDF5_HL_LIBS="" ;; ++esac ++fi ++ ++ + # + # Handle user hints + # +@@ -27518,6 +27572,133 @@ fi + fi + + fi ++ ++{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether struct sockaddr has member sa_len" >&5 ++printf %s "checking whether struct sockaddr has member sa_len... " >&6; } ++if test ${ac_cv_member_struct_sockaddr_sa_len+y} ++then : ++ printf %s "(cached) " >&6 ++else case e in #( ++ e) ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++#include ++int main(void) { (void) ((struct sockaddr *)0)->sa_len; return 0; } ++_ACEOF ++if ac_fn_c_try_compile "$LINENO" ++then : ++ ac_cv_member_struct_sockaddr_sa_len=yes ++else case e in #( ++ e) ac_cv_member_struct_sockaddr_sa_len=no ;; ++esac ++fi ++rm -f conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ++ ;; ++esac ++fi ++{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_member_struct_sockaddr_sa_len" >&5 ++printf "%s\n" "$ac_cv_member_struct_sockaddr_sa_len" >&6; } ++if test "x$ac_cv_member_struct_sockaddr_sa_len" = xyes ++then : ++ printf "%s\n" "#define HAVE_STRUCT_SOCKADDR_SA_LEN 1" >>confdefs.h ++fi ++ ++{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether struct sockaddr_in has member sin_len" >&5 ++printf %s "checking whether struct sockaddr_in has member sin_len... " >&6; } ++if test ${ac_cv_member_struct_sockaddr_in_sin_len+y} ++then : ++ printf %s "(cached) " >&6 ++else case e in #( ++ e) ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++#include ++#include ++int main(void) { (void) ((struct sockaddr_in *)0)->sin_len; return 0; } ++_ACEOF ++if ac_fn_c_try_compile "$LINENO" ++then : ++ ac_cv_member_struct_sockaddr_in_sin_len=yes ++else case e in #( ++ e) ac_cv_member_struct_sockaddr_in_sin_len=no ;; ++esac ++fi ++rm -f conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ++ ;; ++esac ++fi ++{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_member_struct_sockaddr_in_sin_len" >&5 ++printf "%s\n" "$ac_cv_member_struct_sockaddr_in_sin_len" >&6; } ++if test "x$ac_cv_member_struct_sockaddr_in_sin_len" = xyes ++then : ++ printf "%s\n" "#define HAVE_STRUCT_SOCKADDR_IN_SIN_LEN 1" >>confdefs.h ++fi ++ ++{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether struct sockaddr_in6 has member sin6_len" >&5 ++printf %s "checking whether struct sockaddr_in6 has member sin6_len... " >&6; } ++if test ${ac_cv_member_struct_sockaddr_in6_sin6_len+y} ++then : ++ printf %s "(cached) " >&6 ++else case e in #( ++ e) ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++#include ++#include ++int main(void) { (void) ((struct sockaddr_in6 *)0)->sin6_len; return 0; } ++_ACEOF ++if ac_fn_c_try_compile "$LINENO" ++then : ++ ac_cv_member_struct_sockaddr_in6_sin6_len=yes ++else case e in #( ++ e) ac_cv_member_struct_sockaddr_in6_sin6_len=no ;; ++esac ++fi ++rm -f conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ++ ;; ++esac ++fi ++{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_member_struct_sockaddr_in6_sin6_len" >&5 ++printf "%s\n" "$ac_cv_member_struct_sockaddr_in6_sin6_len" >&6; } ++if test "x$ac_cv_member_struct_sockaddr_in6_sin6_len" = xyes ++then : ++ printf "%s\n" "#define HAVE_STRUCT_SOCKADDR_IN6_SIN6_LEN 1" >>confdefs.h ++fi ++ ++{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether struct sockaddr_un has member sun_len" >&5 ++printf %s "checking whether struct sockaddr_un has member sun_len... " >&6; } ++if test ${ac_cv_member_struct_sockaddr_un_sun_len+y} ++then : ++ printf %s "(cached) " >&6 ++else case e in #( ++ e) ++cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include ++#include ++#include ++int main(void) { (void) ((struct sockaddr_un *)0)->sun_len; return 0; } ++_ACEOF ++if ac_fn_c_try_compile "$LINENO" ++then : ++ ac_cv_member_struct_sockaddr_un_sun_len=yes ++else case e in #( ++ e) ac_cv_member_struct_sockaddr_un_sun_len=no ;; ++esac ++fi ++rm -f conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ++ ;; ++esac ++fi ++{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_member_struct_sockaddr_un_sun_len" >&5 ++printf "%s\n" "$ac_cv_member_struct_sockaddr_un_sun_len" >&6; } ++if test "x$ac_cv_member_struct_sockaddr_un_sun_len" = xyes ++then : ++ printf "%s\n" "#define HAVE_STRUCT_SOCKADDR_UN_SUN_LEN 1" >>confdefs.h ++fi + + + # diff --git a/sysutils/slurm-wlm/files/patch-src_common_Makefile.in b/sysutils/slurm-wlm/files/patch-src_common_Makefile.in new file mode 100644 index 000000000000..93f49d1fdc93 --- /dev/null +++ b/sysutils/slurm-wlm/files/patch-src_common_Makefile.in @@ -0,0 +1,43 @@ +--- src/common/Makefile.in.orig 2026-01-15 20:26:01 UTC ++++ src/common/Makefile.in +@@ -179,6 +179,7 @@ am_libcommon_la_OBJECTS = assoc_mgr.lo bitstring.lo ca + slurm_opt.lo slurm_protocol_api.lo slurm_protocol_defs.lo \ + slurm_protocol_pack.lo slurm_protocol_util.lo \ + slurm_protocol_socket.lo slurm_resolv.lo \ ++ slurm_sockaddr.lo \ + slurm_resource_info.lo slurm_rlimits_info.lo \ + slurm_step_layout.lo slurm_time.lo slurmdb_defs.lo \ + slurmdb_pack.lo slurmdbd_defs.lo slurmdbd_pack.lo spank.lo \ +@@ -711,6 +712,8 @@ libcommon_la_SOURCES = \ + slurm_protocol_socket.h \ + slurm_resolv.c \ + slurm_resolv.h \ ++ slurm_sockaddr.c \ ++ slurm_sockaddr.h \ + slurm_resource_info.c \ + slurm_resource_info.h \ + slurm_rlimits_info.c \ +@@ -909,6 +912,7 @@ distclean-compile: + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slurm_protocol_socket.Plo@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slurm_protocol_util.Plo@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slurm_resolv.Plo@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slurm_sockaddr.Plo@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slurm_resource_info.Plo@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slurm_rlimits_info.Plo@am__quote@ # am--include-marker + @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/slurm_step_layout.Plo@am__quote@ # am--include-marker +@@ -1134,6 +1138,7 @@ distclean: distclean-am + -rm -f ./$(DEPDIR)/slurm_protocol_socket.Plo + -rm -f ./$(DEPDIR)/slurm_protocol_util.Plo + -rm -f ./$(DEPDIR)/slurm_resolv.Plo ++ -rm -f ./$(DEPDIR)/slurm_sockaddr.Plo + -rm -f ./$(DEPDIR)/slurm_resource_info.Plo + -rm -f ./$(DEPDIR)/slurm_rlimits_info.Plo + -rm -f ./$(DEPDIR)/slurm_step_layout.Plo +@@ -1279,6 +1284,7 @@ maintainer-clean: maintainer-clean-am + -rm -f ./$(DEPDIR)/slurm_protocol_socket.Plo + -rm -f ./$(DEPDIR)/slurm_protocol_util.Plo + -rm -f ./$(DEPDIR)/slurm_resolv.Plo ++ -rm -f ./$(DEPDIR)/slurm_sockaddr.Plo + -rm -f ./$(DEPDIR)/slurm_resource_info.Plo + -rm -f ./$(DEPDIR)/slurm_rlimits_info.Plo + -rm -f ./$(DEPDIR)/slurm_step_layout.Plo diff --git a/sysutils/slurm-wlm/files/patch-src_common_net.c b/sysutils/slurm-wlm/files/patch-src_common_net.c new file mode 100644 index 000000000000..26392482a5e7 --- /dev/null +++ b/sysutils/slurm-wlm/files/patch-src_common_net.c @@ -0,0 +1,29 @@ +--- src/common/net.c.orig 2026-01-15 20:26:01 UTC ++++ src/common/net.c +@@ -81,6 +81,7 @@ + #include "src/common/log.h" + #include "src/common/macros.h" + #include "src/common/net.h" ++#include "src/common/slurm_sockaddr.h" + #include "src/common/slurm_protocol_api.h" + #include "src/common/util-net.h" + #include "src/common/xmalloc.h" +@@ -108,6 +109,8 @@ int net_stream_listen(int *fd, uint16_t *port) + /* bind ephemeral port */ + slurm_setup_addr(&sin, 0); + ++ len = slurm_sockaddr_fixlen((struct sockaddr *)&sin, len); ++ + if ((*fd = socket(sin.ss_family, SOCK_STREAM, IPPROTO_TCP)) < 0) + return -1; + +@@ -259,7 +262,8 @@ static bool _is_port_ok(int s, uint16_t port, bool loc + return false; + } + +- if (bind(s, (struct sockaddr *) &addr, sizeof(addr)) < 0) { ++ socklen_t alen = slurm_sockaddr_fixlen((struct sockaddr *)&addr, sizeof(addr)); ++ if (bind(s, (struct sockaddr *) &addr, alen) < 0) { + log_flag(NET, "%s: bind() failed on port:%d fd:%d: %m", + __func__, port, s); + return false; diff --git a/sysutils/slurm-wlm/files/patch-src_common_sack__api.c b/sysutils/slurm-wlm/files/patch-src_common_sack__api.c new file mode 100644 index 000000000000..2c9132cd1ce8 --- /dev/null +++ b/sysutils/slurm-wlm/files/patch-src_common_sack__api.c @@ -0,0 +1,27 @@ +--- src/common/sack_api.c.orig 2026-01-15 20:26:01 UTC ++++ src/common/sack_api.c +@@ -43,6 +43,7 @@ + #include "src/common/pack.h" + #include "src/common/sack_api.h" + #include "src/common/slurm_protocol_api.h" ++#include "src/common/slurm_sockaddr.h" + #include "src/common/xmalloc.h" + + #define SACK_CLUSTER_PATTERN "/run/slurm-%s/sack.socket" +@@ -64,14 +65,14 @@ static int _sack_try_connection(struct sockaddr_un *ad + static int _sack_try_connection(struct sockaddr_un *addr) + { + int fd; +- size_t len = strlen(addr->sun_path) + 1 + sizeof(addr->sun_family); ++ socklen_t len = slurm_sockaddr_fixlen((struct sockaddr *)addr, (socklen_t)sizeof(*addr)); + + if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) { + debug3("%s: socket() failed: %m", __func__); + return -1; + } + +- if (connect(fd, (struct sockaddr *) addr, len) < 0) { ++ if (connect(fd, (struct sockaddr *)addr, len) < 0) { + debug3("%s: connect() failed for %s: %m", + __func__, addr->sun_path); + close(fd); diff --git a/sysutils/slurm-wlm/files/patch-src_common_slurm__protocol__socket.c b/sysutils/slurm-wlm/files/patch-src_common_slurm__protocol__socket.c new file mode 100644 index 000000000000..2eea65b685a9 --- /dev/null +++ b/sysutils/slurm-wlm/files/patch-src_common_slurm__protocol__socket.c @@ -0,0 +1,88 @@ +--- src/common/slurm_protocol_socket.c.orig 2026-01-15 20:26:01 UTC ++++ src/common/slurm_protocol_socket.c +@@ -64,6 +64,7 @@ + #include "src/common/read_config.h" + #include "src/common/slurm_protocol_api.h" + #include "src/common/slurm_protocol_socket.h" ++#include "src/common/slurm_sockaddr.h" + #include "src/common/slurm_time.h" + #include "src/common/strlcpy.h" + #include "src/common/util-net.h" +@@ -107,7 +108,9 @@ static void _sock_bind_wild(int sockfd) + slurm_setup_addr(&sin, RANDOM_USER_PORT); + + for (retry=0; retry < PORT_RETRIES ; retry++) { +- rc = bind(sockfd, (struct sockaddr *) &sin, sizeof(sin)); ++ socklen_t blen = slurm_sockaddr_fixlen( ++ (struct sockaddr *)&sin, (socklen_t)sizeof(sin)); ++ rc = bind(sockfd, (struct sockaddr *)&sin, blen); + if (rc >= 0) + break; + slurm_set_port(&sin, RANDOM_USER_PORT); +@@ -543,26 +546,30 @@ extern int slurm_init_msg_engine(slurm_addr_t *addr, b + + extern int slurm_init_msg_engine(slurm_addr_t *addr, bool quiet) + { +- socklen_t bind_len = (addr->ss_family == AF_INET6) ? +- sizeof(struct sockaddr_in6) : +- sizeof(struct sockaddr_in); + int rc; + int fd; + int log_lvl = LOG_LEVEL_ERROR; + const int one = 1; + const size_t sz1 = sizeof(one); ++ socklen_t bind_len = slurm_sockaddr_fixlen((struct sockaddr *)addr, ++ (socklen_t)sizeof(*addr)); ++ + #if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__NetBSD__) +- /* +- * The BSDs requires the sa_len field to be set correctly in +- * struct sockaddr_in / sockaddr_in6 before calling bind(). +- * If unset, bind() may fail with EINVAL. +- */ ++/* ++ * Fallback: if configure didn't detect any sockaddr length fields, ++ * preserve the historical BSD workaround. ++ */ ++#if !defined(HAVE_STRUCT_SOCKADDR_IN_SIN_LEN) && \ ++ !defined(HAVE_STRUCT_SOCKADDR_IN6_SIN6_LEN) && \ ++ !defined(HAVE_STRUCT_SOCKADDR_SA_LEN) + if (addr->ss_family == AF_INET) +- ((struct sockaddr_in *) addr)->sin_len = bind_len; ++ ((struct sockaddr_in *)addr)->sin_len = ++ (uint8_t)sizeof(struct sockaddr_in); + else if (addr->ss_family == AF_INET6) +- ((struct sockaddr_in6 *) addr)->sin6_len = bind_len; ++ ((struct sockaddr_in6 *)addr)->sin6_len = ++ (uint8_t)sizeof(struct sockaddr_in6); + #endif +- ++#endif + if (quiet) + log_lvl = LOG_LEVEL_DEBUG; + +@@ -688,8 +695,10 @@ extern int slurm_open_stream(slurm_addr_t *addr, bool + _sock_bind_wild(fd); + } + +- rc = _slurm_connect(fd, (struct sockaddr const *)addr, +- sizeof(*addr)); ++ slurm_addr_t tmp = *addr; ++ socklen_t alen = slurm_sockaddr_fixlen( ++ (struct sockaddr *)&tmp, (socklen_t)sizeof(tmp)); ++ rc = _slurm_connect(fd, (struct sockaddr const *)&tmp, alen); + if (!rc) { + /* success */ + break; +@@ -756,8 +765,10 @@ extern int slurm_open_unix_stream(char *addr_name, int + memset(&sa, 0, sizeof(sa)); + sa.sun_family = AF_UNIX; + strcpy(sa.sun_path, addr_name); ++ socklen_t slen = slurm_sockaddr_fixlen((struct sockaddr *)&sa, ++ (socklen_t)sizeof(sa)); + +- while ((rc = connect(*fd, (struct sockaddr *) &sa, SUN_LEN(&sa))) && ++ while ((rc = connect(*fd, (struct sockaddr *)&sa, slen)) && + (errno == EINTR)) + ; /* empty loop */ + diff --git a/sysutils/slurm-wlm/files/patch-src_common_slurm__sockaddr.c b/sysutils/slurm-wlm/files/patch-src_common_slurm__sockaddr.c new file mode 100644 index 000000000000..2d741194dccf --- /dev/null +++ b/sysutils/slurm-wlm/files/patch-src_common_slurm__sockaddr.c @@ -0,0 +1,92 @@ +--- src/common/slurm_sockaddr.c.orig 2026-01-29 00:01:06 UTC ++++ src/common/slurm_sockaddr.c +@@ -0,0 +1,89 @@ ++#include "config.h" ++ ++#include "src/common/slurm_sockaddr.h" ++ ++#include ++#include ++#include ++#include ++#include ++ ++/* Safe pathname length for AF_UNIX (avoids overruns). */ ++static socklen_t _unix_sock_len(const struct sockaddr_un *un, socklen_t provided) ++{ ++ /* Linux abstract namespace: sun_path[0] == '\0' => length is provided. */ ++ if (provided >= (socklen_t)offsetof(struct sockaddr_un, sun_path) && ++ un->sun_path[0] == '\0') { ++ return provided; ++ } ++ ++ size_t maxn = sizeof(un->sun_path); ++ size_t n = strnlen(un->sun_path, maxn); ++ ++ /* include terminating NUL like classic pathname sockets */ ++ socklen_t len = (socklen_t)(offsetof(struct sockaddr_un, sun_path) + n); ++ return len; ++} ++ ++socklen_t slurm_sockaddr_fixlen(struct sockaddr *sa, socklen_t provided_len) ++{ ++ if (!sa) ++ return provided_len; ++ ++ switch (sa->sa_family) { ++ case AF_INET: { ++ socklen_t len = (socklen_t)sizeof(struct sockaddr_in); ++#if defined(HAVE_STRUCT_SOCKADDR_IN_SIN_LEN) ++ ((struct sockaddr_in *)sa)->sin_len = (uint8_t)len; ++#elif defined(HAVE_STRUCT_SOCKADDR_SA_LEN) ++ sa->sa_len = (uint8_t)len; ++#endif ++ return len; ++ } ++ case AF_INET6: { ++ socklen_t len = (socklen_t)sizeof(struct sockaddr_in6); ++#if defined(HAVE_STRUCT_SOCKADDR_IN6_SIN6_LEN) ++ ((struct sockaddr_in6 *)sa)->sin6_len = (uint8_t)len; ++#elif defined(HAVE_STRUCT_SOCKADDR_SA_LEN) ++ sa->sa_len = (uint8_t)len; ++#endif ++ return len; ++ } ++ case AF_UNIX: { ++ struct sockaddr_un *un = (struct sockaddr_un *)sa; ++ socklen_t len = _unix_sock_len(un, provided_len); ++#if defined(HAVE_STRUCT_SOCKADDR_UN_SUN_LEN) ++ un->sun_len = (uint8_t)len; ++#elif defined(HAVE_STRUCT_SOCKADDR_SA_LEN) ++ sa->sa_len = (uint8_t)len; ++#endif ++ return len; ++ } ++ default: ++#if defined(HAVE_STRUCT_SOCKADDR_SA_LEN) ++ /* best effort: if caller provided a meaningful length, reflect it */ ++ if (provided_len <= 255) ++ sa->sa_len = (uint8_t)provided_len; ++#endif ++ return provided_len; ++ } ++} ++ ++int slurm_sockaddr_copy_fix(struct sockaddr_storage *dst, ++ const struct sockaddr *src, ++ socklen_t src_len, ++ socklen_t *out_len) ++{ ++ if (!dst || !src || !out_len) ++ return -1; ++ ++ socklen_t n = src_len; ++ if (n > (socklen_t)sizeof(*dst)) ++ n = (socklen_t)sizeof(*dst); ++ ++ memset(dst, 0, sizeof(*dst)); ++ memcpy(dst, src, n); ++ ++ *out_len = slurm_sockaddr_fixlen((struct sockaddr *)dst, n); ++ return 0; ++} diff --git a/sysutils/slurm-wlm/files/patch-src_common_slurm__sockaddr.h b/sysutils/slurm-wlm/files/patch-src_common_slurm__sockaddr.h new file mode 100644 index 000000000000..df97c7b91333 --- /dev/null +++ b/sysutils/slurm-wlm/files/patch-src_common_slurm__sockaddr.h @@ -0,0 +1,29 @@ +--- src/common/slurm_sockaddr.h.orig 2026-01-29 00:01:06 UTC ++++ src/common/slurm_sockaddr.h +@@ -0,0 +1,26 @@ ++#pragma once ++ ++#include ++#include ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++/* Fix length fields (sin_len/sin6_len/sun_len/sa_len when present) and ++ * return the correct socklen_t to pass to bind/connect/getnameinfo. ++ * ++ * - If sa is mutable, you can call this directly. ++ * - If sa is const, use slurm_sockaddr_copy_fix() to copy into a mutable buffer. ++ */ ++socklen_t slurm_sockaddr_fixlen(struct sockaddr *sa, socklen_t provided_len); ++ ++/* Copy src->dst and then apply slurm_sockaddr_fixlen() on dst. */ ++int slurm_sockaddr_copy_fix(struct sockaddr_storage *dst, ++ const struct sockaddr *src, ++ socklen_t src_len, ++ socklen_t *out_len); ++ ++#ifdef __cplusplus ++} ++#endif diff --git a/sysutils/slurm-wlm/files/patch-src_common_stepd__proxy.c b/sysutils/slurm-wlm/files/patch-src_common_stepd__proxy.c new file mode 100644 index 000000000000..d29e60530a2e --- /dev/null +++ b/sysutils/slurm-wlm/files/patch-src_common_stepd__proxy.c @@ -0,0 +1,27 @@ +--- src/common/stepd_proxy.c.orig 2026-01-15 20:26:01 UTC ++++ src/common/stepd_proxy.c +@@ -40,6 +40,7 @@ + #include "src/common/read_config.h" + #include "src/common/slurm_protocol_api.h" + #include "src/common/slurm_protocol_pack.h" ++#include "src/common/slurm_sockaddr.h" + #include "src/common/stepd_api.h" + #include "src/common/stepd_proxy.h" + #include "src/common/xmalloc.h" +@@ -299,13 +300,14 @@ static int _stepd_connect_to_slurmd(void) + static int _stepd_connect_to_slurmd(void) + { + struct sockaddr_un slurmd_addr = { .sun_family = AF_UNIX }; +- size_t len; ++ socklen_t len; + int fd; + + (void) snprintf(slurmd_addr.sun_path, sizeof(slurmd_addr.sun_path), + "%s/slurmd.socket", slurmd_spooldir); + +- len = strlen(slurmd_addr.sun_path) + 1 + sizeof(slurmd_addr.sun_family); ++ len = slurm_sockaddr_fixlen((struct sockaddr *)&slurmd_addr, ++ (socklen_t)sizeof(slurmd_addr)); + + if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) { + error("%s: socket() failed: %m", __func__); diff --git a/sysutils/slurm-wlm/files/patch-src_common_util-net.c b/sysutils/slurm-wlm/files/patch-src_common_util-net.c new file mode 100644 index 000000000000..2552b6b2e2d0 --- /dev/null +++ b/sysutils/slurm-wlm/files/patch-src_common_util-net.c @@ -0,0 +1,30 @@ +--- src/common/util-net.c.orig 2026-01-15 20:26:01 UTC ++++ src/common/util-net.c +@@ -60,6 +60,7 @@ + #include "src/common/xassert.h" + #include "src/common/xmalloc.h" + #include "src/common/xstring.h" ++#include "src/common/slurm_sockaddr.h" + + static pthread_mutex_t hostentLock = PTHREAD_MUTEX_INITIALIZER; + static pthread_rwlock_t getnameinfo_cache_lock = PTHREAD_RWLOCK_INITIALIZER; +@@ -400,8 +401,18 @@ static char *_getnameinfo(const slurm_addr_t *addr) + { + char hbuf[NI_MAXHOST] = "\0"; + int err; ++ struct sockaddr_storage ss; ++ socklen_t alen = 0; + +- err = getnameinfo((const struct sockaddr *) addr, sizeof(*addr), ++ ++ if (slurm_sockaddr_copy_fix(&ss, (const struct sockaddr *)addr, ++ (socklen_t)sizeof(*addr), &alen) < 0) { ++ log_flag(NET, "%s: slurm_sockaddr_copy_fix(%pA) failed", ++ __func__, addr); ++ return NULL; ++ } ++ ++ err = getnameinfo((const struct sockaddr *)&ss, alen, + hbuf, sizeof(hbuf), NULL, 0, NI_NAMEREQD); + if (err == EAI_SYSTEM) { + log_flag(NET, "%s: getnameinfo(%pA) failed: %s: %m", diff --git a/sysutils/slurm-wlm/files/patch-src_common_xsystemd.c b/sysutils/slurm-wlm/files/patch-src_common_xsystemd.c new file mode 100644 index 000000000000..072e972775a5 --- /dev/null +++ b/sysutils/slurm-wlm/files/patch-src_common_xsystemd.c @@ -0,0 +1,28 @@ +--- src/common/xsystemd.c.orig 2026-01-15 20:26:01 UTC ++++ src/common/xsystemd.c +@@ -45,6 +45,7 @@ + #include "src/common/read_config.h" + #include "src/common/slurm_protocol_defs.h" + #include "src/common/strlcpy.h" ++#include "src/common/slurm_sockaddr.h" + #include "src/common/xmalloc.h" + #include "src/common/xstring.h" + +@@ -89,7 +90,6 @@ extern void xsystemd_change_mainpid(pid_t pid) + { + char *notify_socket = getenv("NOTIFY_SOCKET"); + char *payload = NULL; +- size_t len = 0; + struct sockaddr_un addr = { .sun_family = AF_UNIX }; + int fd = -1; + +@@ -99,7 +99,8 @@ extern void xsystemd_change_mainpid(pid_t pid) + } + + strlcpy(addr.sun_path, notify_socket, sizeof(addr.sun_path)); +- len = strlen(addr.sun_path) + 1 + sizeof(addr.sun_family); ++ socklen_t len = slurm_sockaddr_fixlen((struct sockaddr *)&addr, ++ (socklen_t)sizeof(addr)); + + if ((fd = socket(AF_UNIX, SOCK_DGRAM, 0)) < 0) { + error("%s: socket() failed: %m", __func__); diff --git a/sysutils/slurm-wlm/files/patch-src_conmgr_con.c b/sysutils/slurm-wlm/files/patch-src_conmgr_con.c new file mode 100644 index 000000000000..be3dddecde12 --- /dev/null +++ b/sysutils/slurm-wlm/files/patch-src_conmgr_con.c @@ -0,0 +1,74 @@ +--- src/conmgr/con.c.orig 2026-01-15 20:26:01 UTC ++++ src/conmgr/con.c +@@ -59,6 +59,7 @@ + #include "src/common/slurm_protocol_api.h" + #include "src/common/slurm_protocol_defs.h" + #include "src/common/slurm_protocol_socket.h" ++#include "src/common/slurm_sockaddr.h" + #include "src/common/slurm_time.h" + #include "src/common/util-net.h" + #include "src/common/xmalloc.h" +@@ -1029,6 +1030,7 @@ static int _add_unix_listener(conmgr_con_type_t type, + slurm_addr_t addr = { 0 }; + int fd = socket(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0); + int rc = EINVAL; ++ socklen_t bind_len = 0; + + if (fd < 0) + fatal("%s: socket() failed: %m", __func__); +@@ -1045,9 +1047,11 @@ static int _add_unix_listener(conmgr_con_type_t type, + if (unlink(unixsock) && (errno != ENOENT)) + error("Error unlink(%s): %m", unixsock); + +- /* bind() will EINVAL if socklen=sizeof(addr) */ +- if ((rc = bind(fd, (const struct sockaddr *) &addr, +- sizeof(struct sockaddr_un)))) ++ /* Ensure correct sockaddr length (and sun_len/sa_len where applicable) */ ++ bind_len = slurm_sockaddr_fixlen((struct sockaddr *)&addr, ++ (socklen_t)sizeof(addr)); ++ ++ if ((rc = bind(fd, (const struct sockaddr *)&addr, bind_len))) + fatal("%s: [%s] Unable to bind UNIX socket: %m", + __func__, listen_on); + +@@ -1059,7 +1063,7 @@ static int _add_unix_listener(conmgr_con_type_t type, + __func__, listen_on); + + return add_connection(type, NULL, fd, -1, events, flags, &addr, +- sizeof(addr), true, unixsock, NULL, arg); ++ bind_len, true, unixsock, NULL, arg); + } + + static int _add_socket_listener(conmgr_con_type_t type, +@@ -1207,16 +1211,14 @@ extern int conmgr_create_connect_socket(conmgr_con_typ + void *arg) + { + int fd = -1, rc = SLURM_ERROR; +- //socklen_t bindlen = 0; ++ socklen_t connect_len = 0; + + if (addr->ss_family == AF_UNIX) { + fd = socket(addr->ss_family, (SOCK_STREAM | SOCK_CLOEXEC), 0); +- //bindlen = sizeof(struct sockaddr_un); + } else if ((addr->ss_family == AF_INET) || + (addr->ss_family == AF_INET6)) { + fd = socket(addr->ss_family, (SOCK_STREAM | SOCK_CLOEXEC), + IPPROTO_TCP); +- //bindlen = addrlen; + } else { + return EAFNOSUPPORT; + } +@@ -1233,9 +1235,12 @@ extern int conmgr_create_connect_socket(conmgr_con_typ + + log_flag(CONMGR, "%s: [%pA(fd:%d)] attempting to connect() new socket", + __func__, addr, fd); ++ /* Ensure correct sockaddr length (and sa_len/sin_len/sin6_len where applicable) */ ++ connect_len = slurm_sockaddr_fixlen((struct sockaddr *)addr, addrlen); + ++ + again: +- if ((rc = connect(fd, (const struct sockaddr *) addr, addrlen))) { ++ if ((rc = connect(fd, (const struct sockaddr *) addr, connect_len))) { + rc = errno; + + if (rc == EINTR) { diff --git a/sysutils/slurm-wlm/files/patch-src_plugins_acct__gather__profile_hdf5_Makefile.in b/sysutils/slurm-wlm/files/patch-src_plugins_acct__gather__profile_hdf5_Makefile.in new file mode 100644 index 000000000000..9d9088d6a2f8 --- /dev/null +++ b/sysutils/slurm-wlm/files/patch-src_plugins_acct__gather__profile_hdf5_Makefile.in @@ -0,0 +1,19 @@ +--- src/plugins/acct_gather_profile/hdf5/Makefile.in.orig 2026-01-29 06:44:59 UTC ++++ src/plugins/acct_gather_profile/hdf5/Makefile.in +@@ -349,6 +349,7 @@ HDF5_LIBS = @HDF5_LIBS@ + HDF5_FLIBS = @HDF5_FLIBS@ + HDF5_LDFLAGS = @HDF5_LDFLAGS@ + HDF5_LIBS = @HDF5_LIBS@ ++HDF5_HL_LIBS = @HDF5_HL_LIBS@ + HDF5_TYPE = @HDF5_TYPE@ + HDF5_VERSION = @HDF5_VERSION@ + HPE_SLINGSHOT_CFLAGS = @HPE_SLINGSHOT_CFLAGS@ +@@ -563,7 +564,7 @@ HDF5_API_SOURCES = hdf5_api.c hdf5_api.h + @BUILD_HDF5_TRUE@noinst_LTLIBRARIES = libhdf5_api.la + @BUILD_HDF5_TRUE@libhdf5_api_la_SOURCES = $(HDF5_API_SOURCES) + @BUILD_HDF5_TRUE@libhdf5_api_la_LDFLAGS = $(HDF5_LDFLAGS) +-@BUILD_HDF5_TRUE@libhdf5_api_la_LIBADD = $(HDF5_LIBS) ++@BUILD_HDF5_TRUE@libhdf5_api_la_LIBADD = $(HDF5_LIBS) $(HDF5_HL_LIBS) + @BUILD_HDF5_TRUE@acct_gather_profile_hdf5_la_SOURCES = $(HDF5_SOURCES) + @BUILD_HDF5_TRUE@acct_gather_profile_hdf5_la_LDFLAGS = \ + @BUILD_HDF5_TRUE@ $(PLUGIN_FLAGS) $(HDF5_LDFLAGS) diff --git a/sysutils/slurm-wlm/files/patch-src_plugins_acct__gather__profile_hdf5_sh5util_Makefile.in b/sysutils/slurm-wlm/files/patch-src_plugins_acct__gather__profile_hdf5_sh5util_Makefile.in new file mode 100644 index 000000000000..81a8d4a56659 --- /dev/null +++ b/sysutils/slurm-wlm/files/patch-src_plugins_acct__gather__profile_hdf5_sh5util_Makefile.in @@ -0,0 +1,24 @@ +--- src/plugins/acct_gather_profile/hdf5/sh5util/Makefile.in.orig 2026-01-29 06:44:40 UTC ++++ src/plugins/acct_gather_profile/hdf5/sh5util/Makefile.in +@@ -290,6 +290,7 @@ HDF5_LIBS = @HDF5_LIBS@ + HDF5_FLIBS = @HDF5_FLIBS@ + HDF5_LDFLAGS = @HDF5_LDFLAGS@ + HDF5_LIBS = @HDF5_LIBS@ ++HDF5_HL_LIBS = @HDF5_HL_LIBS@ + HDF5_TYPE = @HDF5_TYPE@ + HDF5_VERSION = @HDF5_VERSION@ + HPE_SLINGSHOT_CFLAGS = @HPE_SLINGSHOT_CFLAGS@ +@@ -497,11 +498,10 @@ SHDF5_SOURCES = sh5util.c sh5util.h + SHDF5_SOURCES = sh5util.c sh5util.h + @BUILD_HDF5_TRUE@sh5util_SOURCES = $(SHDF5_SOURCES) + @BUILD_HDF5_TRUE@sh5util_LDADD = $(LIB_SLURM) \ +-@BUILD_HDF5_TRUE@ ../libhdf5_api.la ++@BUILD_HDF5_TRUE@ ../libhdf5_api.la $(HDF5_HL_LIBS) + + @BUILD_HDF5_TRUE@sh5util_DEPENDENCIES = $(LIB_SLURM_BUILD) ../libhdf5_api.la +-@BUILD_HDF5_TRUE@sh5util_LDFLAGS = $(CMD_LDFLAGS) \ +-@BUILD_HDF5_TRUE@ $(HDF5_LDFLAGS) $(HDF5_LIBS) ++@BUILD_HDF5_TRUE@sh5util_LDFLAGS = $(CMD_LDFLAGS) $(HDF5_LDFLAGS) + + @BUILD_HDF5_FALSE@EXTRA_sh5util_SOURCES = $(SHDF5_SOURCES) + all: all-am diff --git a/sysutils/slurm-wlm/files/patch-src_plugins_auth_slurm_sack.c b/sysutils/slurm-wlm/files/patch-src_plugins_auth_slurm_sack.c new file mode 100644 index 000000000000..720215771968 --- /dev/null +++ b/sysutils/slurm-wlm/files/patch-src_plugins_auth_slurm_sack.c @@ -0,0 +1,31 @@ +--- src/plugins/auth/slurm/sack.c.orig 2026-01-15 20:26:01 UTC ++++ src/plugins/auth/slurm/sack.c +@@ -43,6 +43,7 @@ + #include "slurm/slurm.h" + #include "slurm/slurm_errno.h" + #include "src/common/slurm_xlator.h" ++#include "src/common/slurm_sockaddr.h" + + #include "src/common/env.h" + #include "src/common/fd.h" +@@ -299,6 +300,7 @@ extern void init_sack_conmgr(void) + char *runtime_dir = NULL, *runtime_socket = NULL; + slurm_addr_t addr = {0}; + mode_t mask; ++ socklen_t bind_len = 0; + + if (running_in_slurmctld()) { + _prepare_run_dir("slurmctld", true); +@@ -337,9 +339,9 @@ extern void init_sack_conmgr(void) + /* set value of socket path */ + mask = umask(0); + +- /* bind() will EINVAL if socklen=sizeof(addr) */ +- if ((rc = bind(sack_fd, (const struct sockaddr *) &addr, +- sizeof(struct sockaddr_un)))) ++ bind_len = slurm_sockaddr_fixlen((struct sockaddr *)&addr, ++ sizeof(struct sockaddr_un)); ++ if ((rc = bind(sack_fd, (const struct sockaddr *) &addr, bind_len))) + fatal("%s: [%pA] Unable to bind UNIX socket: %m", + __func__, &addr); + umask(mask); diff --git a/sysutils/slurm-wlm/files/patch-src_scrun_anchor.c b/sysutils/slurm-wlm/files/patch-src_scrun_anchor.c new file mode 100644 index 000000000000..fb9ed423ed2c --- /dev/null +++ b/sysutils/slurm-wlm/files/patch-src_scrun_anchor.c @@ -0,0 +1,35 @@ +--- src/scrun/anchor.c.orig 2026-01-15 20:26:01 UTC ++++ src/scrun/anchor.c +@@ -63,6 +63,7 @@ + #include "src/common/pack.h" + #include "src/common/read_config.h" + #include "src/common/setproctitle.h" ++#include "src/common/slurm_sockaddr.h" + #include "src/common/spank.h" + #include "src/common/uid.h" + #include "src/common/xassert.h" +@@ -652,6 +653,7 @@ static void _queue_send_console_socket(void) + struct sockaddr_un addr = { + .sun_family = AF_UNIX, + }; ++ socklen_t addrlen; + int fd = socket(AF_UNIX, SOCK_STREAM, 0); + + fd_set_nonblocking(fd); +@@ -662,12 +664,14 @@ static void _queue_send_console_socket(void) + fatal("console socket address too long: %s", + state.console_socket); + +- if ((connect(fd, (struct sockaddr *) &addr, sizeof(addr))) < 0) ++ addrlen = slurm_sockaddr_fixlen((struct sockaddr *)&addr, ++ (socklen_t)sizeof(addr)); ++ if ((connect(fd, (struct sockaddr *) &addr, addrlen)) < 0) + fatal("%s: [%s] Unable to connect() to console socket: %m", + __func__, addr.sun_path); + + if ((rc = conmgr_process_fd(CON_TYPE_RAW, fd, fd, &events, CON_FLAG_NONE, +- (slurm_addr_t *) &addr, sizeof(addr), ++ (slurm_addr_t *) &addr, addrlen, + NULL, NULL))) + fatal("%s: [%s] unable to initialize console socket: %s", + __func__, addr.sun_path, slurm_strerror(rc)); diff --git a/sysutils/slurm-wlm/files/patch-src_slurmd_slurmstepd_req.c b/sysutils/slurm-wlm/files/patch-src_slurmd_slurmstepd_req.c new file mode 100644 index 000000000000..b90ed57f30d0 --- /dev/null +++ b/sysutils/slurm-wlm/files/patch-src_slurmd_slurmstepd_req.c @@ -0,0 +1,44 @@ +--- src/slurmd/slurmstepd/req.c.orig 2026-01-15 20:26:01 UTC ++++ src/slurmd/slurmstepd/req.c +@@ -58,6 +58,7 @@ + #include "src/common/proc_args.h" + #include "src/common/slurm_protocol_defs.h" + #include "src/common/slurm_protocol_pack.h" ++#include "src/common/slurm_sockaddr.h" + #include "src/common/stepd_api.h" + #include "src/common/stepd_proxy.h" + #include "src/common/strlcpy.h" +@@ -135,7 +136,7 @@ _create_socket(const char *name) + _create_socket(const char *name) + { + int fd; +- int len; ++ socklen_t len; + struct sockaddr_un addr; + + /* +@@ -156,7 +157,8 @@ _create_socket(const char *name) + memset(&addr, 0, sizeof(addr)); + addr.sun_family = AF_UNIX; + strlcpy(addr.sun_path, name, sizeof(addr.sun_path)); +- len = strlen(addr.sun_path)+1 + sizeof(addr.sun_family); ++ len = slurm_sockaddr_fixlen((struct sockaddr *)&addr, ++ (socklen_t)sizeof(addr)); + + /* bind the name to the descriptor */ + if (bind(fd, (struct sockaddr *) &addr, len) < 0) { +@@ -348,12 +350,12 @@ static int _msg_socket_accept(eio_obj_t *obj, list_t * + { + int fd, *param = NULL; + struct sockaddr_un addr; +- int len = sizeof(addr); ++ socklen_t len = sizeof(addr); + + debug3("Called _msg_socket_accept"); + + while ((fd = accept4(obj->fd, (struct sockaddr *) &addr, +- (socklen_t *) &len, SOCK_CLOEXEC)) < 0) { ++ &len, SOCK_CLOEXEC)) < 0) { + if (errno == EINTR) + continue; + if ((errno == EAGAIN) || diff --git a/sysutils/slurm-wlm/files/patch-testsuite_slurm__unit_common_slurm__protocol__pack_pack__job__alloc__info__msg-test.c b/sysutils/slurm-wlm/files/patch-testsuite_slurm__unit_common_slurm__protocol__pack_pack__job__alloc__info__msg-test.c new file mode 100644 index 000000000000..12c92a24b2b2 --- /dev/null +++ b/sysutils/slurm-wlm/files/patch-testsuite_slurm__unit_common_slurm__protocol__pack_pack__job__alloc__info__msg-test.c @@ -0,0 +1,8 @@ +--- testsuite/slurm_unit/common/slurm_protocol_pack/pack_job_alloc_info_msg-test.c.orig 2026-03-10 17:13:46 UTC ++++ testsuite/slurm_unit/common/slurm_protocol_pack/pack_job_alloc_info_msg-test.c +@@ -1,4 +1,5 @@ + #include ++#include + #include + #include + diff --git a/sysutils/slurm-wlm/pkg-plist b/sysutils/slurm-wlm/pkg-plist index c28f5ded1730..8fefb81d7333 100644 --- a/sysutils/slurm-wlm/pkg-plist +++ b/sysutils/slurm-wlm/pkg-plist @@ -1,259 +1,261 @@ bin/sacct bin/sacctmgr bin/salloc bin/sattach bin/sbatch bin/sbcast bin/scancel bin/scontrol bin/scrontab bin/sdiag %%HDF5%%bin/sh5util bin/sinfo bin/sprio bin/squeue bin/sreport bin/srun bin/sshare bin/sstat bin/strigger %%GUI%%bin/sview @sample %%ETCDIR%%/slurm.conf.sample include/slurm/pmi.h include/slurm/slurm.h include/slurm/slurm_errno.h include/slurm/slurm_version.h include/slurm/slurmdb.h include/slurm/spank.h lib/libslurm.a lib/libslurm.so lib/libslurm.so.44 lib/libslurm.so.44.0.0 lib/slurm/accounting_storage_ctld_relay.a lib/slurm/accounting_storage_ctld_relay.so lib/slurm/accounting_storage_mysql.a lib/slurm/accounting_storage_mysql.so lib/slurm/accounting_storage_slurmdbd.a lib/slurm/accounting_storage_slurmdbd.so lib/slurm/acct_gather_energy_gpu.a lib/slurm/acct_gather_energy_gpu.so lib/slurm/acct_gather_energy_ibmaem.a lib/slurm/acct_gather_energy_ibmaem.so %%IPMI%%lib/slurm/acct_gather_energy_ipmi.a %%IPMI%%lib/slurm/acct_gather_energy_ipmi.so lib/slurm/acct_gather_energy_pm_counters.a lib/slurm/acct_gather_energy_pm_counters.so lib/slurm/acct_gather_energy_rapl.a lib/slurm/acct_gather_energy_rapl.so %%IPMI%%lib/slurm/acct_gather_energy_xcc.a %%IPMI%%lib/slurm/acct_gather_energy_xcc.so lib/slurm/acct_gather_filesystem_lustre.a lib/slurm/acct_gather_filesystem_lustre.so lib/slurm/acct_gather_interconnect_ofed.a lib/slurm/acct_gather_interconnect_ofed.so lib/slurm/acct_gather_interconnect_sysfs.a lib/slurm/acct_gather_interconnect_sysfs.so %%CURL%%lib/slurm/acct_gather_profile_influxdb.a %%CURL%%lib/slurm/acct_gather_profile_influxdb.so %%HDF5%%lib/slurm/acct_gather_profile_hdf5.a %%HDF5%%lib/slurm/acct_gather_profile_hdf5.so lib/slurm/auth_jwt.a lib/slurm/auth_jwt.so lib/slurm/auth_munge.a lib/slurm/auth_munge.so lib/slurm/auth_none.a lib/slurm/auth_none.so lib/slurm/auth_slurm.a lib/slurm/auth_slurm.so lib/slurm/burst_buffer_datawarp.a lib/slurm/burst_buffer_datawarp.so lib/slurm/burst_buffer_lua.a lib/slurm/burst_buffer_lua.so lib/slurm/certgen_script.a lib/slurm/certgen_script.so lib/slurm/certmgr_script.a lib/slurm/certmgr_script.so lib/slurm/cli_filter_lua.a lib/slurm/cli_filter_lua.so lib/slurm/cli_filter_syslog.a lib/slurm/cli_filter_syslog.so lib/slurm/cli_filter_user_defaults.a lib/slurm/cli_filter_user_defaults.so lib/slurm/cred_munge.a lib/slurm/cred_munge.so lib/slurm/cred_none.a lib/slurm/cred_none.so lib/slurm/data_parser_v0_0_41.a lib/slurm/data_parser_v0_0_41.so lib/slurm/data_parser_v0_0_42.a lib/slurm/data_parser_v0_0_42.so lib/slurm/data_parser_v0_0_43.a lib/slurm/data_parser_v0_0_43.so lib/slurm/data_parser_v0_0_44.a lib/slurm/data_parser_v0_0_44.so lib/slurm/gpu_generic.a lib/slurm/gpu_generic.so lib/slurm/gpu_nrt.a lib/slurm/gpu_nrt.so lib/slurm/gpu_nvidia.a lib/slurm/gpu_nvidia.so %%HWLOC%%lib/slurm/gpu_oneapi.a %%HWLOC%%lib/slurm/gpu_oneapi.so lib/slurm/gres_gpu.a lib/slurm/gres_gpu.so lib/slurm/gres_mps.a lib/slurm/gres_mps.so lib/slurm/gres_nic.a lib/slurm/gres_nic.so lib/slurm/gres_shard.a lib/slurm/gres_shard.so lib/slurm/hash_k12.a lib/slurm/hash_k12.so lib/slurm/hash_sha3.a lib/slurm/hash_sha3.so lib/slurm/http_parser_libhttp_parser.a lib/slurm/http_parser_libhttp_parser.so lib/slurm/job_submit_all_partitions.a lib/slurm/job_submit_all_partitions.so lib/slurm/job_submit_defaults.a lib/slurm/job_submit_defaults.so lib/slurm/job_submit_logging.a lib/slurm/job_submit_logging.so lib/slurm/job_submit_lua.a lib/slurm/job_submit_lua.so lib/slurm/job_submit_partition.a lib/slurm/job_submit_partition.so lib/slurm/job_submit_pbs.a lib/slurm/job_submit_pbs.so lib/slurm/job_submit_require_timelimit.a lib/slurm/job_submit_require_timelimit.so lib/slurm/job_submit_throttle.a lib/slurm/job_submit_throttle.so lib/slurm/jobacct_gather_linux.a lib/slurm/jobacct_gather_linux.so %%CURL%%lib/slurm/jobcomp_elasticsearch.a %%CURL%%lib/slurm/jobcomp_elasticsearch.so lib/slurm/jobcomp_filetxt.a lib/slurm/jobcomp_filetxt.so lib/slurm/jobcomp_kafka.a lib/slurm/jobcomp_kafka.so lib/slurm/jobcomp_lua.a lib/slurm/jobcomp_lua.so lib/slurm/jobcomp_mysql.a lib/slurm/jobcomp_mysql.so lib/slurm/jobcomp_script.a lib/slurm/jobcomp_script.so lib/slurm/libslurm_pmi.a lib/slurm/libslurm_pmi.so lib/slurm/libslurmfull.a lib/slurm/libslurmfull.so lib/slurm/mcs_account.a lib/slurm/mcs_account.so lib/slurm/mcs_group.a lib/slurm/mcs_group.so lib/slurm/mcs_label.a lib/slurm/mcs_label.so lib/slurm/mcs_user.a lib/slurm/mcs_user.so lib/slurm/metrics_openmetrics.a lib/slurm/metrics_openmetrics.so lib/slurm/mpi_cray_shasta.a lib/slurm/mpi_cray_shasta.so lib/slurm/mpi_pmi2.a lib/slurm/mpi_pmi2.so lib/slurm/node_features_helpers.a lib/slurm/node_features_helpers.so lib/slurm/preempt_partition_prio.a lib/slurm/preempt_partition_prio.so lib/slurm/preempt_qos.a lib/slurm/preempt_qos.so lib/slurm/prep_script.a lib/slurm/prep_script.so lib/slurm/priority_basic.a lib/slurm/priority_basic.so lib/slurm/priority_multifactor.a lib/slurm/priority_multifactor.so lib/slurm/proctrack_linuxproc.a lib/slurm/proctrack_linuxproc.so lib/slurm/proctrack_pgid.a lib/slurm/proctrack_pgid.so lib/slurm/sched_backfill.a lib/slurm/sched_backfill.so lib/slurm/sched_builtin.a lib/slurm/sched_builtin.so lib/slurm/select_cons_tres.a lib/slurm/select_cons_tres.so lib/slurm/select_linear.a lib/slurm/select_linear.so lib/slurm/serializer_json.a lib/slurm/serializer_json.so lib/slurm/serializer_url_encoded.a lib/slurm/serializer_url_encoded.so lib/slurm/serializer_yaml.a lib/slurm/serializer_yaml.so lib/slurm/site_factor_example.a lib/slurm/site_factor_example.so lib/slurm/spank_pbs.a lib/slurm/spank_pbs.so lib/slurm/src/sattach/sattach.wrapper.c lib/slurm/src/srun/srun.wrapper.c lib/slurm/task_affinity.a lib/slurm/task_affinity.so lib/slurm/tls_none.a lib/slurm/tls_none.so lib/slurm/topology_block.a lib/slurm/topology_block.so lib/slurm/topology_flat.a lib/slurm/topology_flat.so lib/slurm/topology_tree.a lib/slurm/topology_tree.so +%%S2N%%lib/%%USERS%%/tls_s2n.a +%%S2N%%lib/%%USERS%%/tls_s2n.so sbin/sackd sbin/slurmctld sbin/slurmd sbin/slurmdbd sbin/slurmstepd share/man/man1/sacct.1.gz share/man/man1/sacctmgr.1.gz share/man/man1/salloc.1.gz share/man/man1/sattach.1.gz share/man/man1/sbatch.1.gz share/man/man1/sbcast.1.gz share/man/man1/scancel.1.gz share/man/man1/scontrol.1.gz share/man/man1/scrontab.1.gz share/man/man1/scrun.1.gz share/man/man1/sdiag.1.gz %%HDF5%%share/man/man1/sh5util.1.gz share/man/man1/sinfo.1.gz share/man/man1/slurm.1.gz share/man/man1/sprio.1.gz share/man/man1/squeue.1.gz share/man/man1/sreport.1.gz share/man/man1/srun.1.gz share/man/man1/sshare.1.gz share/man/man1/sstat.1.gz share/man/man1/strigger.1.gz %%GUI%%share/man/man1/sview.1.gz share/man/man5/acct_gather.conf.5.gz share/man/man5/burst_buffer.conf.5.gz share/man/man5/cgroup.conf.5.gz share/man/man5/gres.conf.5.gz share/man/man5/helpers.conf.5.gz share/man/man5/job_container.conf.5.gz share/man/man5/mpi.conf.5.gz share/man/man5/namespace.yaml.5.gz share/man/man5/oci.conf.5.gz share/man/man5/resources.yaml.5.gz share/man/man5/slurm.conf.5.gz share/man/man5/slurmdbd.conf.5.gz share/man/man5/topology.conf.5.gz share/man/man5/topology.yaml.5.gz share/man/man8/sackd.8.gz share/man/man8/slurmctld.8.gz share/man/man8/slurmd.8.gz share/man/man8/slurmdbd.8.gz share/man/man8/slurmrestd.8.gz share/man/man8/slurmstepd.8.gz share/man/man8/spank.8.gz @dir %%ETCDIR%% @dir(%%USERS%%,%%GROUPS%%,700) /var/spool/slurmctld