diff --git a/sysutils/slurm-wlm/Makefile b/sysutils/slurm-wlm/Makefile index e79c304832ae..a676f4bb7ad2 100644 --- a/sysutils/slurm-wlm/Makefile +++ b/sysutils/slurm-wlm/Makefile @@ -1,173 +1,179 @@ PORTNAME= slurm DISTVERSION= 23.11.7 -PORTREVISION= 9 +PORTREVISION= 10 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= libjson-c.so:devel/json-c \ libsysinfo.so:devel/libsysinfo \ libmunge.so:security/munge \ liblz4.so:archivers/liblz4 \ libze_loader.so:devel/level-zero \ libhttp_parser.so:www/http-parser \ libunwind.so:devel/libunwind \ librdkafka.so:net/librdkafka \ libyaml.so:textproc/libyaml \ libdbus-1.so:devel/dbus \ libcheck.so:devel/check \ libtbb.so:devel/onetbb \ libjwt.so:www/libjwt USES= compiler:c11 cpe gmake gnome libtool localbase lua mysql:client \ perl5 pkgconfig python:build readline shebangfix ssl tar:bz2 USE_PERL5= build CPE_VENDOR= schedmd USE_LDCONFIG= yes USE_RC_SUBR= slurmctld slurmd USERS= slurm GROUPS= ${USERS} GNU_CONFIGURE= yes GNU_CONFIGURE_MANPREFIX=${PREFIX}/share INSTALL_TARGET= install-strip TEST_TARGET= check PLIST_SUB= PORTVERSION="${DISTVERSION}" VER="${DISTVERSION:R}" \ USERS=${USERS} GROUPS=${GROUPS} SHEBANG_FILES= doc/html/shtml2html.py doc/man/man2html.py PORTDOCS= * OPTIONS_DEFINE= CURL DOCS GUI HDF5 HWLOC IPMI RRD 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 RRD_DESC= RRD external sensor data collection DOCS_BUILD_DEPENDS= man2html:textproc/man2html CURL_LIB_DEPENDS= libcurl.so:ftp/curl CURL_CONFIGURE_WITH= libcurl GUI_USE= GNOME=cairo,gdkpixbuf,glib20,gtk20,pango GUI_LIB_DEPENDS= libfontconfig.so:x11-fonts/fontconfig \ libfreetype.so:print/freetype2 \ libharfbuzz.so:print/harfbuzz GUI_USES= gettext GUI_CONFIGURE_ENABLE= glibtest gtktest x11 HDF5_LIB_DEPENDS= libhdf5_cpp.so:science/hdf5 \ libsz.so:science/libaec HDF5_CONFIGURE_WITH= hdf5 HDF5_CONFIGURE_ENV= H5CC=${LOCALBASE}/bin/h5cc HWLOC_LIB_DEPENDS= libhwloc.so.15:devel/hwloc2 HWLOC_CONFIGURE_WITH= hwloc IPMI_LIB_DEPENDS= libfreeipmi.so:sysutils/freeipmi IPMI_CONFIGURE_WITH= freeipmi RRD_LIB_DEPENDS= librrd.so:databases/rrdtool RRD_CONFIGURE_WITH= rrdtool # FreeBSD Infiniband support is still experimental # slurmrestd does not build on FreeBSD CONFIGURE_ARGS= --disable-slurmrestd --with-mysql_config=${LOCALBASE}/bin \ --docdir=${DOCSDIR} --htmldir=${DOCSDIR} CFLAGS+= -I${WRKSRC}/slurm -I${LOCALBASE}/include \ -I${LOCALBASE}/include/level_zero \ -I${LOCALBASE}/include/librdkafka \ -fcommon -D__BSD_VISIBLE=1 LDFLAGS+= -L${LOCALBASE}/lib -lsysinfo -lprocstat -fcommon PROC2FIX= common/callerid.c common/fd.c common/fetch_config.c \ interfaces/proctrack.c \ plugins/acct_gather_energy/rapl/acct_gather_energy_rapl.c \ plugins/acct_gather_filesystem/lustre/acct_gather_filesystem_lustre.c \ plugins/burst_buffer/common/burst_buffer_common.c \ plugins/cgroup/v1/xcgroup.c plugins/cgroup/v2/cgroup_v2.c \ plugins/gpu/nvml/gpu_nvml.c \ plugins/job_container/tmpfs/job_container_tmpfs.c \ plugins/jobacct_gather/cgroup/jobacct_gather_cgroup.c \ plugins/jobacct_gather/common/common_jag.c \ plugins/jobacct_gather/linux/jobacct_gather_linux.c \ plugins/node_features/knl_generic/node_features_knl_generic.c \ plugins/proctrack/cgroup/proctrack_cgroup.c \ plugins/proctrack/cray_aries/proctrack_cray_aries.c \ plugins/proctrack/linuxproc/kill_tree.c \ plugins/proctrack/pgid/proctrack_pgid.c \ plugins/switch/cray_aries/scaling.c \ plugins/task/affinity/affinity.c slurmd/common/set_oomadj.c \ slurmd/common/xcpuinfo.c slurmd/slurmstepd/pdebug.c \ slurmctld/controller.c \ slurmd/slurmd/slurmd.c \ slurmd/slurmstepd/req.c LLD2FIX= api plugins/openapi sacctmgr sackd scontrol scrontab scrun \ slurmctld slurmd/slurmd squeue .include +post-extract: + @${MKDIR} ${WRKSRC}/src/plugins/task/pgid +# Use an existing plugin's Makefile.in as a template + @${CP} ${WRKSRC}/src/plugins/task/cray_aries/Makefile.in \ + ${WRKSRC}/src/plugins/task/pgid/Makefile.in + # 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 # 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|sched_setaffinity|cpuset_setaffinity|g' \ -e 's|%%LOCALBASE%%|${LOCALBASE}|' ${WRKSRC}/configure .for src in ${PROC2FIX} ${REINPLACE_CMD} -e 's|"/proc|"/compat/linux/proc|g' \ -e 's|(/proc)|(/compat/linux/proc)|g' \ ${WRKSRC}/src/${src} .endfor @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 .if ${ARCH} == powerpc64le ${FIND} ${LLD2FIX:C|^|${WRKSRC}/src/|} -name Makefile.in | ${XARGS} \ ${REINPLACE_CMD} -e 's|-r -o|-r -m elf64lppc -o|' .elif ${ARCH} == powerpc64 ${FIND} ${LLD2FIX:C|^|${WRKSRC}/src/|} -name Makefile.in | ${XARGS} \ ${REINPLACE_CMD} -e 's|-r -o|-r -m elf64ppc -o|' .elif ${ARCH} == aarch64 ${FIND} ${LLD2FIX:C|^|${WRKSRC}/src/|} -name Makefile.in | ${XARGS} \ ${REINPLACE_CMD} -e 's|-r -o|-r -m aarch64elf -o|' .else ${FIND} ${LLD2FIX:C|^|${WRKSRC}/src/|} -name Makefile.in | ${XARGS} \ ${REINPLACE_CMD} -e 's|-r -o|-r -m elf_${ARCH} -o|' .endif ${FIND} ${WRKSRC} -name Makefile.in | ${XARGS} \ ${REINPLACE_CMD} -e 's|htmldir = \$${datadir.*$$|htmldir = @htmldir@|' post-install: @${MKDIR} ${STAGEDIR}/var/spool/slurmctld @${CHMOD} 700 ${STAGEDIR}/var/spool/slurmctld ${INSTALL_DATA} ${WRKSRC}/etc/slurm.conf.example \ ${STAGEDIR}${PREFIX}/etc/slurm.conf.sample .include diff --git a/sysutils/slurm-wlm/files/patch-configure b/sysutils/slurm-wlm/files/patch-configure index 51cf89bd4981..f95b552a6dab 100644 --- a/sysutils/slurm-wlm/files/patch-configure +++ b/sysutils/slurm-wlm/files/patch-configure @@ -1,242 +1,251 @@ ---- configure.orig 2023-11-21 22:33:29 UTC +--- configure.orig 2024-05-21 17:19:51 UTC +++ configure @@ -5513,7 +5513,7 @@ _ACEOF /* end confdefs.h. */ $ac_c_conftest_c99_program _ACEOF -for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= +for ac_arg in '' -std=gnu99 -qlanglvl=extc1x -qlanglvl=extc99 do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" @@ -6659,7 +6659,7 @@ _ACEOF /* end confdefs.h. */ $ac_c_conftest_c99_program _ACEOF -for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= +for ac_arg in '' -std=gnu99 -qlanglvl=extc1x -qlanglvl=extc99 do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO" @@ -7270,7 +7270,7 @@ _ACEOF /* end confdefs.h. */ $ac_cxx_conftest_cxx98_program _ACEOF -for ac_arg in '' -std=gnu++98 -std=c++98 -qlanglvl=extended -AA +for ac_arg in '' -std=gnu++98 -qlanglvl=extended -AA do CXX="$ac_save_CXX $ac_arg" if ac_fn_cxx_try_compile "$LINENO" @@ -12320,7 +12320,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= @@ -12622,7 +12622,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 ;; @@ -12641,7 +12641,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 @@ -12670,7 +12670,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 @@ -12688,7 +12688,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 @@ -13344,7 +13344,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 @@ -14194,7 +14194,7 @@ freebsd* | dragonfly*) 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 @@ -15345,7 +15345,7 @@ printf %s "checking whether stripping libraries is pos old_striplib= { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 printf %s "checking whether stripping libraries is possible... " >&6; } -if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "strip" >/dev/null; then test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" test -z "$striplib" && striplib="$STRIP --strip-unneeded" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 @@ -15592,7 +15592,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 @@ -15806,7 +15806,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' @@ -16502,7 +16502,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= @@ -16510,7 +16510,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 @@ -16542,7 +16542,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 @@ -16553,7 +16553,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' @@ -16587,7 +16587,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 @@ -16655,7 +16655,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 @@ -18186,7 +18186,7 @@ freebsd* | dragonfly*) 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 @@ -21930,7 +21930,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) @@ -22897,24 +22897,19 @@ HDF5 support is being disabled (equivalent to --with-h with_hdf5="no" with_hdf5_fortran="no" else - HDF5_SHOW=$(eval $H5CC -show) + HDF5_SHOW=`$PKG_CONFIG --cflags hdf5 --libs hdf5` - HDF5_CC=$(eval $H5CC -show | head -n 1 | $AWK '{print $1}') - if test "$HDF5_CC" = "ccache"; then - HDF5_CC=$(eval $H5CC -show | head -n 1 | $AWK '{print $2}') - fi + HDF5_CC=$CC - HDF5_VERSION=$(eval $H5CC -showconfig | $GREP 'HDF5 Version:' \ - | $AWK '{print $3}') + HDF5_VERSION=`$GREP 'HDF5 Version:' /usr/local/lib/libhdf5.settings \ + | $AWK '{print $3}'` - HDF5_tmp_flags=$(eval $H5CC -showconfig \ - | $GREP 'FLAGS\|Extra libraries:' \ - | $AWK -F: '{printf("%s "), $2}' ) + HDF5_tmp_flags=`$GREP 'FLAGS\|Extra libraries:' /usr/local/lib/libhdf5.settings \ + | $AWK -F: '{printf("%s "), $2}'` - HDF5_tmp_inst=$(eval $H5CC -showconfig \ - | $GREP 'Installation point:' \ - | $AWK '{print $NF}' ) + HDF5_tmp_inst=`$GREP 'Installation point:' /usr/local/lib/libhdf5.settings \ + | $AWK '{print $NF}'` HDF5_CPPFLAGS="-I${HDF5_tmp_inst}/include" @@ -23062,7 +23057,7 @@ printf "%s\n" "$H5FC" >&6; } with_hdf5_fortran="yes" - for arg in `$H5FC -show` + for arg in `$PKG_CONFIG --cflags hdf5_fortran --libs hdf5_fortran` do case "$arg" in #( -I*) echo $HDF5_FFLAGS | $GREP -e "$arg" >/dev/null \ @@ -23172,7 +23167,7 @@ fi if test "$ax_compare_version" = "true" ; then -printf "%s\n" "#define H5_NO_DEPRECATED_SYMBOLS 1" >>confdefs.h +# Remove on FreeBSD ports because we use 1.12 with 1.10 API else printf "%s\n" "#define H5_USE_18_API 1" >>confdefs.h +@@ -28035,7 +28030,7 @@ printf "%s\n" "${x_ac_deprecated=no}" >&6; } + + + +-ac_config_files="$ac_config_files Makefile auxdir/Makefile contribs/Makefile contribs/cray/Makefile contribs/cray/csm/Makefile contribs/cray/slurmsmwd/Makefile contribs/lua/Makefile contribs/nss_slurm/Makefile contribs/openlava/Makefile contribs/pam/Makefile contribs/pam_slurm_adopt/Makefile contribs/perlapi/Makefile contribs/perlapi/libslurm/Makefile contribs/perlapi/libslurm/perl/Makefile.PL contribs/perlapi/libslurmdb/Makefile contribs/perlapi/libslurmdb/perl/Makefile.PL contribs/pmi/Makefile contribs/pmi2/Makefile contribs/seff/Makefile contribs/sgather/Makefile contribs/sjobexit/Makefile contribs/torque/Makefile doc/Makefile doc/html/Makefile doc/html/configurator.easy.html doc/html/configurator.html doc/man/Makefile doc/man/man1/Makefile doc/man/man5/Makefile doc/man/man8/Makefile etc/Makefile src/Makefile src/api/Makefile src/bcast/Makefile src/common/Makefile src/database/Makefile src/interfaces/Makefile src/lua/Makefile src/plugins/Makefile src/plugins/accounting_storage/Makefile src/plugins/accounting_storage/common/Makefile src/plugins/accounting_storage/mysql/Makefile src/plugins/accounting_storage/slurmdbd/Makefile src/plugins/acct_gather_energy/Makefile src/plugins/acct_gather_energy/gpu/Makefile src/plugins/acct_gather_energy/ibmaem/Makefile src/plugins/acct_gather_energy/ipmi/Makefile src/plugins/acct_gather_energy/pm_counters/Makefile src/plugins/acct_gather_energy/rapl/Makefile src/plugins/acct_gather_energy/xcc/Makefile src/plugins/acct_gather_filesystem/Makefile src/plugins/acct_gather_filesystem/lustre/Makefile src/plugins/acct_gather_interconnect/Makefile src/plugins/acct_gather_interconnect/ofed/Makefile src/plugins/acct_gather_interconnect/sysfs/Makefile src/plugins/acct_gather_profile/Makefile src/plugins/acct_gather_profile/hdf5/Makefile src/plugins/acct_gather_profile/hdf5/sh5util/Makefile src/plugins/acct_gather_profile/influxdb/Makefile src/plugins/auth/Makefile src/plugins/auth/jwt/Makefile src/plugins/auth/munge/Makefile src/plugins/auth/none/Makefile src/plugins/auth/slurm/Makefile src/plugins/burst_buffer/Makefile src/plugins/burst_buffer/common/Makefile src/plugins/burst_buffer/datawarp/Makefile src/plugins/burst_buffer/lua/Makefile src/plugins/cgroup/Makefile src/plugins/cgroup/common/Makefile src/plugins/cgroup/v1/Makefile src/plugins/cgroup/v2/Makefile src/plugins/cli_filter/Makefile src/plugins/cli_filter/common/Makefile src/plugins/cli_filter/lua/Makefile src/plugins/cli_filter/syslog/Makefile src/plugins/cli_filter/user_defaults/Makefile src/plugins/core_spec/Makefile src/plugins/core_spec/cray_aries/Makefile src/plugins/cred/Makefile src/plugins/cred/common/Makefile src/plugins/cred/munge/Makefile src/plugins/cred/none/Makefile src/plugins/data_parser/Makefile src/plugins/data_parser/v0.0.39/Makefile src/plugins/data_parser/v0.0.40/Makefile src/plugins/ext_sensors/Makefile src/plugins/ext_sensors/rrd/Makefile src/plugins/gpu/Makefile src/plugins/gpu/common/Makefile src/plugins/gpu/generic/Makefile src/plugins/gpu/nrt/Makefile src/plugins/gpu/nvml/Makefile src/plugins/gpu/oneapi/Makefile src/plugins/gpu/rsmi/Makefile src/plugins/gres/Makefile src/plugins/gres/common/Makefile src/plugins/gres/gpu/Makefile src/plugins/gres/mps/Makefile src/plugins/gres/nic/Makefile src/plugins/gres/shard/Makefile src/plugins/hash/Makefile src/plugins/hash/k12/Makefile src/plugins/job_container/Makefile src/plugins/job_container/cncu/Makefile src/plugins/job_container/tmpfs/Makefile src/plugins/job_submit/Makefile src/plugins/job_submit/all_partitions/Makefile src/plugins/job_submit/cray_aries/Makefile src/plugins/job_submit/defaults/Makefile src/plugins/job_submit/logging/Makefile src/plugins/job_submit/lua/Makefile src/plugins/job_submit/partition/Makefile src/plugins/job_submit/pbs/Makefile src/plugins/job_submit/require_timelimit/Makefile src/plugins/job_submit/throttle/Makefile src/plugins/jobacct_gather/Makefile src/plugins/jobacct_gather/cgroup/Makefile src/plugins/jobacct_gather/common/Makefile src/plugins/jobacct_gather/linux/Makefile src/plugins/jobcomp/Makefile src/plugins/jobcomp/common/Makefile src/plugins/jobcomp/elasticsearch/Makefile src/plugins/jobcomp/filetxt/Makefile src/plugins/jobcomp/kafka/Makefile src/plugins/jobcomp/lua/Makefile src/plugins/jobcomp/mysql/Makefile src/plugins/jobcomp/script/Makefile src/plugins/mcs/Makefile src/plugins/mcs/account/Makefile src/plugins/mcs/group/Makefile src/plugins/mcs/user/Makefile src/plugins/mpi/Makefile src/plugins/mpi/cray_shasta/Makefile src/plugins/mpi/pmi2/Makefile src/plugins/mpi/pmix/Makefile src/plugins/node_features/Makefile src/plugins/node_features/helpers/Makefile src/plugins/node_features/knl_cray/Makefile src/plugins/node_features/knl_generic/Makefile src/plugins/power/Makefile src/plugins/power/common/Makefile src/plugins/power/cray_aries/Makefile src/plugins/preempt/Makefile src/plugins/preempt/partition_prio/Makefile src/plugins/preempt/qos/Makefile src/plugins/prep/Makefile src/plugins/prep/script/Makefile src/plugins/priority/Makefile src/plugins/priority/basic/Makefile src/plugins/priority/multifactor/Makefile src/plugins/proctrack/Makefile src/plugins/proctrack/cgroup/Makefile src/plugins/proctrack/cray_aries/Makefile src/plugins/proctrack/linuxproc/Makefile src/plugins/proctrack/pgid/Makefile src/plugins/sched/Makefile src/plugins/sched/backfill/Makefile src/plugins/sched/builtin/Makefile src/plugins/select/Makefile src/plugins/select/cons_tres/Makefile src/plugins/select/cray_aries/Makefile src/plugins/select/linear/Makefile src/plugins/select/other/Makefile src/plugins/serializer/Makefile src/plugins/serializer/json/Makefile src/plugins/serializer/url-encoded/Makefile src/plugins/serializer/yaml/Makefile src/plugins/site_factor/Makefile src/plugins/site_factor/example/Makefile src/plugins/switch/Makefile src/plugins/switch/cray_aries/Makefile src/plugins/switch/hpe_slingshot/Makefile src/plugins/task/Makefile src/plugins/task/affinity/Makefile src/plugins/task/cgroup/Makefile src/plugins/task/cray_aries/Makefile src/plugins/topology/Makefile src/plugins/topology/3d_torus/Makefile src/plugins/topology/block/Makefile src/plugins/topology/common/Makefile src/plugins/topology/default/Makefile src/plugins/topology/tree/Makefile src/sacct/Makefile src/sackd/Makefile src/sacctmgr/Makefile src/salloc/Makefile src/sattach/Makefile src/scrun/Makefile src/sbatch/Makefile src/sbcast/Makefile src/scancel/Makefile src/scontrol/Makefile src/scrontab/Makefile src/sdiag/Makefile src/sinfo/Makefile src/slurmctld/Makefile src/slurmd/Makefile src/slurmd/common/Makefile src/slurmd/slurmd/Makefile src/slurmd/slurmstepd/Makefile src/slurmdbd/Makefile src/slurmrestd/Makefile src/slurmrestd/plugins/Makefile src/slurmrestd/plugins/auth/Makefile src/slurmrestd/plugins/auth/jwt/Makefile src/slurmrestd/plugins/auth/local/Makefile src/slurmrestd/plugins/openapi/Makefile src/slurmrestd/plugins/openapi/dbv0.0.38/Makefile src/slurmrestd/plugins/openapi/dbv0.0.39/Makefile src/slurmrestd/plugins/openapi/slurmctld/Makefile src/slurmrestd/plugins/openapi/slurmdbd/Makefile src/slurmrestd/plugins/openapi/v0.0.38/Makefile src/slurmrestd/plugins/openapi/v0.0.39/Makefile src/sprio/Makefile src/squeue/Makefile src/sreport/Makefile src/srun/Makefile src/sshare/Makefile src/sstat/Makefile src/strigger/Makefile src/sview/Makefile testsuite/Makefile testsuite/testsuite.conf.sample testsuite/expect/Makefile testsuite/slurm_unit/Makefile testsuite/slurm_unit/common/Makefile testsuite/slurm_unit/common/bitstring/Makefile testsuite/slurm_unit/common/hostlist/Makefile testsuite/slurm_unit/common/slurm_protocol_defs/Makefile testsuite/slurm_unit/common/slurm_protocol_pack/Makefile testsuite/slurm_unit/common/slurmdb_defs/Makefile testsuite/slurm_unit/common/slurmdb_pack/Makefile" ++ac_config_files="$ac_config_files Makefile auxdir/Makefile contribs/Makefile contribs/cray/Makefile contribs/cray/csm/Makefile contribs/cray/slurmsmwd/Makefile contribs/lua/Makefile contribs/nss_slurm/Makefile contribs/openlava/Makefile contribs/pam/Makefile contribs/pam_slurm_adopt/Makefile contribs/perlapi/Makefile contribs/perlapi/libslurm/Makefile contribs/perlapi/libslurm/perl/Makefile.PL contribs/perlapi/libslurmdb/Makefile contribs/perlapi/libslurmdb/perl/Makefile.PL contribs/pmi/Makefile contribs/pmi2/Makefile contribs/seff/Makefile contribs/sgather/Makefile contribs/sjobexit/Makefile contribs/torque/Makefile doc/Makefile doc/html/Makefile doc/html/configurator.easy.html doc/html/configurator.html doc/man/Makefile doc/man/man1/Makefile doc/man/man5/Makefile doc/man/man8/Makefile etc/Makefile src/Makefile src/api/Makefile src/bcast/Makefile src/common/Makefile src/database/Makefile src/interfaces/Makefile src/lua/Makefile src/plugins/Makefile src/plugins/accounting_storage/Makefile src/plugins/accounting_storage/common/Makefile src/plugins/accounting_storage/mysql/Makefile src/plugins/accounting_storage/slurmdbd/Makefile src/plugins/acct_gather_energy/Makefile src/plugins/acct_gather_energy/gpu/Makefile src/plugins/acct_gather_energy/ibmaem/Makefile src/plugins/acct_gather_energy/ipmi/Makefile src/plugins/acct_gather_energy/pm_counters/Makefile src/plugins/acct_gather_energy/rapl/Makefile src/plugins/acct_gather_energy/xcc/Makefile src/plugins/acct_gather_filesystem/Makefile src/plugins/acct_gather_filesystem/lustre/Makefile src/plugins/acct_gather_interconnect/Makefile src/plugins/acct_gather_interconnect/ofed/Makefile src/plugins/acct_gather_interconnect/sysfs/Makefile src/plugins/acct_gather_profile/Makefile src/plugins/acct_gather_profile/hdf5/Makefile src/plugins/acct_gather_profile/hdf5/sh5util/Makefile src/plugins/acct_gather_profile/influxdb/Makefile src/plugins/auth/Makefile src/plugins/auth/jwt/Makefile src/plugins/auth/munge/Makefile src/plugins/auth/none/Makefile src/plugins/auth/slurm/Makefile src/plugins/burst_buffer/Makefile src/plugins/burst_buffer/common/Makefile src/plugins/burst_buffer/datawarp/Makefile src/plugins/burst_buffer/lua/Makefile src/plugins/cgroup/Makefile src/plugins/cgroup/common/Makefile src/plugins/cgroup/v1/Makefile src/plugins/cgroup/v2/Makefile src/plugins/cli_filter/Makefile src/plugins/cli_filter/common/Makefile src/plugins/cli_filter/lua/Makefile src/plugins/cli_filter/syslog/Makefile src/plugins/cli_filter/user_defaults/Makefile src/plugins/core_spec/Makefile src/plugins/core_spec/cray_aries/Makefile src/plugins/cred/Makefile src/plugins/cred/common/Makefile src/plugins/cred/munge/Makefile src/plugins/cred/none/Makefile src/plugins/data_parser/Makefile src/plugins/data_parser/v0.0.39/Makefile src/plugins/data_parser/v0.0.40/Makefile src/plugins/ext_sensors/Makefile src/plugins/ext_sensors/rrd/Makefile src/plugins/gpu/Makefile src/plugins/gpu/common/Makefile src/plugins/gpu/generic/Makefile src/plugins/gpu/nrt/Makefile src/plugins/gpu/nvml/Makefile src/plugins/gpu/oneapi/Makefile src/plugins/gpu/rsmi/Makefile src/plugins/gres/Makefile src/plugins/gres/common/Makefile src/plugins/gres/gpu/Makefile src/plugins/gres/mps/Makefile src/plugins/gres/nic/Makefile src/plugins/gres/shard/Makefile src/plugins/hash/Makefile src/plugins/hash/k12/Makefile src/plugins/job_container/Makefile src/plugins/job_container/cncu/Makefile src/plugins/job_container/tmpfs/Makefile src/plugins/job_submit/Makefile src/plugins/job_submit/all_partitions/Makefile src/plugins/job_submit/cray_aries/Makefile src/plugins/job_submit/defaults/Makefile src/plugins/job_submit/logging/Makefile src/plugins/job_submit/lua/Makefile src/plugins/job_submit/partition/Makefile src/plugins/job_submit/pbs/Makefile src/plugins/job_submit/require_timelimit/Makefile src/plugins/job_submit/throttle/Makefile src/plugins/jobacct_gather/Makefile src/plugins/jobacct_gather/cgroup/Makefile src/plugins/jobacct_gather/common/Makefile src/plugins/jobacct_gather/linux/Makefile src/plugins/jobcomp/Makefile src/plugins/jobcomp/common/Makefile src/plugins/jobcomp/elasticsearch/Makefile src/plugins/jobcomp/filetxt/Makefile src/plugins/jobcomp/kafka/Makefile src/plugins/jobcomp/lua/Makefile src/plugins/jobcomp/mysql/Makefile src/plugins/jobcomp/script/Makefile src/plugins/mcs/Makefile src/plugins/mcs/account/Makefile src/plugins/mcs/group/Makefile src/plugins/mcs/user/Makefile src/plugins/mpi/Makefile src/plugins/mpi/cray_shasta/Makefile src/plugins/mpi/pmi2/Makefile src/plugins/mpi/pmix/Makefile src/plugins/node_features/Makefile src/plugins/node_features/helpers/Makefile src/plugins/node_features/knl_cray/Makefile src/plugins/node_features/knl_generic/Makefile src/plugins/power/Makefile src/plugins/power/common/Makefile src/plugins/power/cray_aries/Makefile src/plugins/preempt/Makefile src/plugins/preempt/partition_prio/Makefile src/plugins/preempt/qos/Makefile src/plugins/prep/Makefile src/plugins/prep/script/Makefile src/plugins/priority/Makefile src/plugins/priority/basic/Makefile src/plugins/priority/multifactor/Makefile src/plugins/proctrack/Makefile src/plugins/proctrack/cgroup/Makefile src/plugins/proctrack/cray_aries/Makefile src/plugins/proctrack/linuxproc/Makefile src/plugins/proctrack/pgid/Makefile src/plugins/sched/Makefile src/plugins/sched/backfill/Makefile src/plugins/sched/builtin/Makefile src/plugins/select/Makefile src/plugins/select/cons_tres/Makefile src/plugins/select/cray_aries/Makefile src/plugins/select/linear/Makefile src/plugins/select/other/Makefile src/plugins/serializer/Makefile src/plugins/serializer/json/Makefile src/plugins/serializer/url-encoded/Makefile src/plugins/serializer/yaml/Makefile src/plugins/site_factor/Makefile src/plugins/site_factor/example/Makefile src/plugins/switch/Makefile src/plugins/switch/cray_aries/Makefile src/plugins/switch/hpe_slingshot/Makefile src/plugins/task/Makefile src/plugins/task/affinity/Makefile src/plugins/task/cgroup/Makefile src/plugins/task/cray_aries/Makefile src/plugins/task/pgid/Makefile src/plugins/topology/Makefile src/plugins/topology/3d_torus/Makefile src/plugins/topology/block/Makefile src/plugins/topology/common/Makefile src/plugins/topology/default/Makefile src/plugins/topology/tree/Makefile src/sacct/Makefile src/sackd/Makefile src/sacctmgr/Makefile src/salloc/Makefile src/sattach/Makefile src/scrun/Makefile src/sbatch/Makefile src/sbcast/Makefile src/scancel/Makefile src/scontrol/Makefile src/scrontab/Makefile src/sdiag/Makefile src/sinfo/Makefile src/slurmctld/Makefile src/slurmd/Makefile src/slurmd/common/Makefile src/slurmd/slurmd/Makefile src/slurmd/slurmstepd/Makefile src/slurmdbd/Makefile src/slurmrestd/Makefile src/slurmrestd/plugins/Makefile src/slurmrestd/plugins/auth/Makefile src/slurmrestd/plugins/auth/jwt/Makefile src/slurmrestd/plugins/auth/local/Makefile src/slurmrestd/plugins/openapi/Makefile src/slurmrestd/plugins/openapi/dbv0.0.38/Makefile src/slurmrestd/plugins/openapi/dbv0.0.39/Makefile src/slurmrestd/plugins/openapi/slurmctld/Makefile src/slurmrestd/plugins/openapi/slurmdbd/Makefile src/slurmrestd/plugins/openapi/v0.0.38/Makefile src/slurmrestd/plugins/openapi/v0.0.39/Makefile src/sprio/Makefile src/squeue/Makefile src/sreport/Makefile src/srun/Makefile src/sshare/Makefile src/sstat/Makefile src/strigger/Makefile src/sview/Makefile testsuite/Makefile testsuite/testsuite.conf.sample testsuite/expect/Makefile testsuite/slurm_unit/Makefile testsuite/slurm_unit/common/Makefile testsuite/slurm_unit/common/bitstring/Makefile testsuite/slurm_unit/common/hostlist/Makefile testsuite/slurm_unit/common/slurm_protocol_defs/Makefile testsuite/slurm_unit/common/slurm_protocol_pack/Makefile testsuite/slurm_unit/common/slurmdb_defs/Makefile testsuite/slurm_unit/common/slurmdb_pack/Makefile" + + + cat >confcache <<\_ACEOF diff --git a/sysutils/slurm-wlm/files/patch-src_plugins_task_pgid_Makefile.in b/sysutils/slurm-wlm/files/patch-src_plugins_task_pgid_Makefile.in new file mode 100644 index 000000000000..39c103c910ac --- /dev/null +++ b/sysutils/slurm-wlm/files/patch-src_plugins_task_pgid_Makefile.in @@ -0,0 +1,97 @@ +--- src/plugins/task/pgid/Makefile.in.orig 2025-09-03 23:57:14 UTC ++++ src/plugins/task/pgid/Makefile.in +@@ -181,16 +181,16 @@ LTLIBRARIES = $(pkglib_LTLIBRARIES) + } + am__installdirs = "$(DESTDIR)$(pkglibdir)" + LTLIBRARIES = $(pkglib_LTLIBRARIES) +-task_cray_aries_la_LIBADD = +-am_task_cray_aries_la_OBJECTS = task_cray_aries.lo +-task_cray_aries_la_OBJECTS = $(am_task_cray_aries_la_OBJECTS) ++task_pgid_la_LIBADD = ++am_task_pgid_la_OBJECTS = task_pgid.lo ++task_pgid_la_OBJECTS = $(am_task_pgid_la_OBJECTS) + AM_V_lt = $(am__v_lt_@AM_V@) + am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) + am__v_lt_0 = --silent + am__v_lt_1 = +-task_cray_aries_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ ++task_pgid_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ +- $(AM_CFLAGS) $(CFLAGS) $(task_cray_aries_la_LDFLAGS) \ ++ $(AM_CFLAGS) $(CFLAGS) $(task_pgid_la_LDFLAGS) \ + $(LDFLAGS) -o $@ + AM_V_P = $(am__v_P_@AM_V@) + am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +@@ -207,7 +207,7 @@ am__maybe_remake_depfiles = depfiles + DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) -I$(top_builddir)/slurm + depcomp = $(SHELL) $(top_srcdir)/auxdir/depcomp + am__maybe_remake_depfiles = depfiles +-am__depfiles_remade = ./$(DEPDIR)/task_cray_aries.Plo ++am__depfiles_remade = ./$(DEPDIR)/task_pgid.Plo + am__mv = mv -f + COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +@@ -227,7 +227,7 @@ am__v_CCLD_1 = + am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) + am__v_CCLD_0 = @echo " CCLD " $@; + am__v_CCLD_1 = +-SOURCES = $(task_cray_aries_la_SOURCES) ++SOURCES = $(task_pgid_la_SOURCES) + am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ +@@ -514,12 +514,12 @@ PLUGIN_FLAGS = -module -avoid-version --export-dynamic + top_srcdir = @top_srcdir@ + AUTOMAKE_OPTIONS = foreign + PLUGIN_FLAGS = -module -avoid-version --export-dynamic +-AM_CPPFLAGS = -DSLURM_PLUGIN_DEBUG -I$(top_srcdir) -I$(top_srcdir)/src/common $(CRAY_TASK_CPPFLAGS) +-pkglib_LTLIBRARIES = task_cray_aries.la ++AM_CPPFLAGS = -DSLURM_PLUGIN_DEBUG -I$(top_srcdir) -I$(top_srcdir)/src/common $(CRAY_TASK_CPPFLAGS) -I$(top_srcdir)/src/interfaces -I$(top_srcdir)/src/plugins/task -I$(top_srcdir)/src/slurmd -I$(top_srcdir)/src/slurmd/slurmstepd ++pkglib_LTLIBRARIES = task_pgid.la + + # Null task plugin. +-task_cray_aries_la_SOURCES = task_cray_aries.c +-task_cray_aries_la_LDFLAGS = $(PLUGIN_FLAGS) $(CRAY_TASK_LDFLAGS) \ ++task_pgid_la_SOURCES = task_pgid.c ++task_pgid_la_LDFLAGS = $(PLUGIN_FLAGS) $(CRAY_TASK_LDFLAGS) \ + $(NUMA_LIBS) + + all: all-am +@@ -591,8 +591,8 @@ clean-pkglibLTLIBRARIES: + rm -f $${locs}; \ + } + +-task_cray_aries.la: $(task_cray_aries_la_OBJECTS) $(task_cray_aries_la_DEPENDENCIES) $(EXTRA_task_cray_aries_la_DEPENDENCIES) +- $(AM_V_CCLD)$(task_cray_aries_la_LINK) -rpath $(pkglibdir) $(task_cray_aries_la_OBJECTS) $(task_cray_aries_la_LIBADD) $(LIBS) ++task_pgid.la: $(task_pgid_la_OBJECTS) $(task_pgid_la_DEPENDENCIES) $(EXTRA_task_pgid_la_DEPENDENCIES) ++ $(AM_V_CCLD)$(task_pgid_la_LINK) -rpath $(pkglibdir) $(task_pgid_la_OBJECTS) $(task_pgid_la_LIBADD) $(LIBS) + + mostlyclean-compile: + -rm -f *.$(OBJEXT) +@@ -600,7 +600,7 @@ distclean-compile: + distclean-compile: + -rm -f *.tab.c + +-@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/task_cray_aries.Plo@am__quote@ # am--include-marker ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/task_pgid.Plo@am__quote@ # am--include-marker + + $(am__depfiles_remade): + @$(MKDIR_P) $(@D) +@@ -729,7 +729,7 @@ distclean: distclean-am + mostlyclean-am + + distclean: distclean-am +- -rm -f ./$(DEPDIR)/task_cray_aries.Plo ++ -rm -f ./$(DEPDIR)/task_pgid.Plo + -rm -f Makefile + distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags +@@ -775,7 +775,7 @@ maintainer-clean: maintainer-clean-am + installcheck-am: + + maintainer-clean: maintainer-clean-am +- -rm -f ./$(DEPDIR)/task_cray_aries.Plo ++ -rm -f ./$(DEPDIR)/task_pgid.Plo + -rm -f Makefile + maintainer-clean-am: distclean-am maintainer-clean-generic + diff --git a/sysutils/slurm-wlm/files/patch-src_plugins_task_pgid_task__pgid.c b/sysutils/slurm-wlm/files/patch-src_plugins_task_pgid_task__pgid.c new file mode 100644 index 000000000000..0433aeaab02f --- /dev/null +++ b/sysutils/slurm-wlm/files/patch-src_plugins_task_pgid_task__pgid.c @@ -0,0 +1,155 @@ +--- src/plugins/task/pgid/task_pgid.c.orig 2025-09-03 23:58:57 UTC ++++ src/plugins/task/pgid/task_pgid.c +@@ -0,0 +1,152 @@ ++#include "slurm_xlator.h" ++#include "log.h" ++#include "xmalloc.h" ++#include "task.h" /* interface declarations */ ++ ++/* these two pull in batch_job_launch_msg_t, launch_tasks_request_msg_t, ++ stepd_step_task_info_t, etc. */ ++#include "src/common/slurm_protocol_api.h" ++#include "src/slurmd/slurmstepd/slurmstepd_job.h" ++ ++#include ++#include ++#include ++#include ++#include ++ ++/* Required plugin identifiers (exported) */ ++__attribute__((visibility("default"))) const char plugin_name[] = "PGID task plugin for FreeBSD"; ++__attribute__((visibility("default"))) const char plugin_type[] = "task/pgid"; ++__attribute__((visibility("default"))) const uint32_t plugin_version = SLURM_VERSION_NUMBER; ++ ++/* Required generic plugin entry points */ ++int init(void) { slurm_info("task/pgid: init"); return SLURM_SUCCESS; } ++int fini(void) { slurm_info("task/pgid: fini"); return SLURM_SUCCESS; } ++ ++static pid_t job_pgid = -1; ++ ++/* ==== Required task_* API (must all be present) ==== */ ++ ++/* Called when slurmd receives a batch launch request */ ++int task_p_slurmd_batch_request(batch_job_launch_msg_t *req) ++{ ++ (void)req; ++ return SLURM_SUCCESS; ++} ++ ++/* Called when slurmd receives a general launch request */ ++int task_p_slurmd_launch_request(launch_tasks_request_msg_t *req, ++ uint32_t node_id, char **err_msg) ++{ ++ (void)req; (void)node_id; (void)err_msg; ++ return SLURM_SUCCESS; ++} ++ ++int task_p_slurmd_suspend_job(uint32_t job_id) ++{ ++ (void)job_id; ++ return SLURM_SUCCESS; ++} ++ ++int task_p_slurmd_resume_job(uint32_t job_id) ++{ ++ (void)job_id; ++ return SLURM_SUCCESS; ++} ++ ++/* Before setuid to the job user */ ++int task_p_pre_setuid(stepd_step_rec_t *step) ++{ ++ (void)step; ++ return SLURM_SUCCESS; ++} ++ ++/* Called in privileged context before launch */ ++int task_p_pre_launch_priv(stepd_step_rec_t *step, ++ uint32_t node_tid, uint32_t global_tid) ++{ ++ (void)step; (void)node_tid; (void)global_tid; ++ return SLURM_SUCCESS; ++} ++ ++int task_p_pre_launch(stepd_step_rec_t *step) ++{ ++ pid_t cur = getpid(); ++ ++ /* Case A: no PGID recorded yet for this step -> become the group leader */ ++ if (step->pgid <= 0) { ++ if (setpgid(0, 0) < 0) { ++ /* If a sibling beat us to it, join that PGID instead */ ++ if (errno == EACCES || errno == EPERM || errno == EEXIST) { ++ /* Someone created a group already; query our pgid and store it */ ++ pid_t pg = getpgid(0); ++ if (pg < 0) { ++ slurm_error("task/pgid: getpgid failed after race: %s", strerror(errno)); ++ return SLURM_ERROR; ++ } ++ step->pgid = pg; ++ slurm_debug("task/pgid: joined existing PGID %d (race)", step->pgid); ++ return SLURM_SUCCESS; ++ } ++ slurm_error("task/pgid: setpgid(0,0) failed for leader pid=%d: %s", (int)cur, strerror(errno)); ++ return SLURM_ERROR; ++ } ++ step->pgid = getpgid(0); ++ if (step->pgid < 0) { ++ slurm_error("task/pgid: getpgid failed after creating group: %s", strerror(errno)); ++ return SLURM_ERROR; ++ } ++ slurm_debug("task/pgid: created step PGID %d (leader pid=%d)", step->pgid, (int)cur); ++ return SLURM_SUCCESS; ++ } ++ ++ /* Case B: PGID exists -> join it */ ++ if (setpgid(0, step->pgid) < 0) { ++ /* ESRCH: parent/leader not visible yet; tiny retry helps on fast forks */ ++ if (errno == ESRCH) { ++ usleep(1000); /* 1 ms backoff */ ++ if (setpgid(0, step->pgid) == 0) { ++ slurm_debug("task/pgid: joined PGID %d after retry", step->pgid); ++ return SLURM_SUCCESS; ++ } ++ } ++ slurm_error("task/pgid: setpgid(0,%d) failed: %s", step->pgid, strerror(errno)); ++ return SLURM_ERROR; ++ } ++ slurm_debug("task/pgid: joined existing PGID %d", step->pgid); ++ return SLURM_SUCCESS; ++} ++ ++/* After a task terminates */ ++int task_p_post_term(stepd_step_rec_t *step, stepd_step_task_info_t *task) ++{ ++ (void)step; (void)task; ++ return SLURM_SUCCESS; ++} ++ ++/* After the whole step finishes */ ++int task_p_post_step(stepd_step_rec_t *step) ++{ ++ (void)step; ++ return SLURM_SUCCESS; ++} ++ ++/* Allow plugin to track additional PIDs if needed */ ++int task_p_add_pid(pid_t pid) ++{ ++ (void)pid; ++ return SLURM_SUCCESS; ++} ++ ++int task_p_signal(stepd_step_rec_t *step, int sig) ++{ ++ if (step && step->pgid > 1) { ++ slurm_debug("task/pgid: sending signal %d to PGID %d", sig, step->pgid); ++ if (killpg((pid_t)step->pgid, sig) < 0) { ++ slurm_error("task/pgid: killpg(%d) failed: %s", step->pgid, strerror(errno)); ++ return SLURM_ERROR; ++ } ++ } ++ return SLURM_SUCCESS; ++} ++int task_p_fini(stepd_step_rec_t *step) { (void)step; return SLURM_SUCCESS; }