diff --git a/sysutils/slurm-wlm/Makefile b/sysutils/slurm-wlm/Makefile --- a/sysutils/slurm-wlm/Makefile +++ b/sysutils/slurm-wlm/Makefile @@ -1,6 +1,5 @@ PORTNAME= slurm -DISTVERSION= 23.11.7 -PORTREVISION= 12 +DISTVERSION= 25.05.3 CATEGORIES= sysutils MASTER_SITES= https://download.schedmd.com/slurm/ PKGNAMESUFFIX= -wlm @@ -12,43 +11,61 @@ LICENSE= GPLv2+ LICENSE_FILE= ${WRKSRC}/COPYING -NOT_FOR_ARCHS= armv6 armv7 i386 mips powerpc powerpcspe +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 \ + libjwt.so:www/libjwt \ liblz4.so:archivers/liblz4 \ - libze_loader.so:devel/level-zero \ - libhttp_parser.so:www/http-parser \ - libunwind.so:devel/libunwind \ + libmunge.so:security/munge \ 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 + 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 -USERS= slurm -GROUPS= ${USERS} +SHEBANG_FILES= doc/html/shtml2html.py doc/man/man2html.py GNU_CONFIGURE= yes -GNU_CONFIGURE_MANPREFIX=${PREFIX}/share + +# 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 -PLIST_SUB= PORTVERSION="${DISTVERSION}" VER="${DISTVERSION:R}" \ - USERS=${USERS} GROUPS=${GROUPS} -SHEBANG_FILES= doc/html/shtml2html.py doc/man/man2html.py + +CFLAGS+= -I${WRKSRC}/slurm +LDFLAGS+= -lsysinfo -lprocstat -fcommon + +DOCSDIR= ${PREFIX}/share/doc/${PORTNAME}-${PORTVERSION} + +SUB_FILES= pkg-message +SUB_LIST= DOCSDIR=${DOCSDIR} \ + ETCDIR=${ETCDIR} + +USERS= ${PORTNAME} +GROUPS= ${PORTNAME} + +PLIST_SUB+= GROUPS=${GROUPS} \ + PORTVERSION="${DISTVERSION}" \ + USERS=${USERS} \ + VER="${DISTVERSION:R}" PORTDOCS= * -OPTIONS_DEFINE= CURL DOCS GUI HDF5 HWLOC IPMI RRD +OPTIONS_DEFINE= CURL DOCS GUI HDF5 HWLOC IPMI OPTIONS_DEFAULT= HDF5 HWLOC OPTIONS_SUB= yes @@ -57,96 +74,49 @@ 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 +DOCS_BUILD_DEPENDS= man2html:textproc/man2html +GUI_BUILD_DEPENDS= itstool:textproc/itstool +GUI_USES= gnome GUI_CONFIGURE_ENABLE= glibtest gtktest x11 -HDF5_LIB_DEPENDS= libhdf5_cpp.so:science/hdf5 \ - libsz.so:science/libaec +HDF5_LIB_DEPENDS= libhdf5.so:science/hdf5 \ + libhdf5_hl.so:science/hdf5 HDF5_CONFIGURE_WITH= hdf5 -HDF5_CONFIGURE_ENV= H5CC=${LOCALBASE}/bin/h5cc +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 +IPMI_LIB_DEPENDS= libfreeipmi.so:sysutils/freeipmi \ + libipmimonitoring.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 +_ARCH= ${ARCH:S|aarch64|aarch64elf|:S|amd64|elf_amd64|:S|powerpc64|elf64ppc|:S|powerpc64le|elf64lppc|:S|riscv64|elf64lriscv|} .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 +# Make /proc → /compat/linux/proc edits only in files that exist & contain "/proc" +post-patch: + @cd ${WRKSRC} && \ + ${GREP} -RIl '"/proc' src | ${XARGS} ${REINPLACE_CMD} \ + -e 's|"/proc|"/compat/linux/proc|g' \ + -e 's|(/proc)|(/compat/linux/proc)|g' +# 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|' # 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."; \ @@ -154,26 +124,12 @@ ${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} \ + ${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 + @${MKDIR} ${STAGEDIR}/var/spool/slurmctld \ + ${STAGEDIR}${ETCDIR} ${INSTALL_DATA} ${WRKSRC}/etc/slurm.conf.example \ - ${STAGEDIR}${PREFIX}/etc/slurm.conf.sample - + ${STAGEDIR}${ETCDIR}/slurm.conf.sample; .include diff --git a/sysutils/slurm-wlm/distinfo b/sysutils/slurm-wlm/distinfo --- a/sysutils/slurm-wlm/distinfo +++ b/sysutils/slurm-wlm/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1716405702 -SHA256 (slurm-23.11.7.tar.bz2) = 09d07c7f625c0fdf4eb9116b3be4f15e7a1bfe83a0744bddf98cbd82ee2fb6b4 -SIZE (slurm-23.11.7.tar.bz2) = 7397601 +TIMESTAMP = 1759282692 +SHA256 (slurm-25.05.3.tar.bz2) = c7c8678f5fede6cdcaa2ad3ff39d7321f1ece9a0b36c433eaef104f55dfa8936 +SIZE (slurm-25.05.3.tar.bz2) = 7228038 diff --git a/sysutils/slurm-wlm/files/patch-configure b/sysutils/slurm-wlm/files/patch-configure deleted file mode 100644 --- a/sysutils/slurm-wlm/files/patch-configure +++ /dev/null @@ -1,251 +0,0 @@ ---- 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-etc_slurm.conf.example b/sysutils/slurm-wlm/files/patch-etc_slurm.conf.example deleted file mode 100644 --- a/sysutils/slurm-wlm/files/patch-etc_slurm.conf.example +++ /dev/null @@ -1,116 +0,0 @@ ---- etc/slurm.conf.example.orig 2023-11-21 22:33:29 UTC -+++ etc/slurm.conf.example -@@ -8,8 +8,9 @@ - # Put this file on all nodes of your cluster. - # See the slurm.conf man page for more information. - # --ClusterName=cluster --SlurmctldHost=linux0 -+ClusterName=Beastie -+# Short hostname of the head node -+SlurmctldHost=head - #SlurmctldHost= - # - #DisableRootJobs=NO -@@ -41,7 +42,7 @@ ProctrackType=proctrack/cgroup - #PrologFlags= - #PrologSlurmctld= - #PropagatePrioProcess=0 --#PropagateResourceLimits= -+PropagateResourceLimits=NONE - #PropagateResourceLimitsExcept= - #RebootProgram= - ReturnToService=1 -@@ -58,6 +59,8 @@ TaskPlugin=task/affinity - SwitchType=switch/none - #TaskEpilog= - TaskPlugin=task/affinity -+TaskPluginParam=cores -+# For debugging: TaskPluginParam=cores,verbose - #TaskProlog= - #TopologyPlugin=topology/tree - #TmpFS=/tmp -@@ -88,11 +91,12 @@ Waittime=0 - # - # - # SCHEDULING --#DefMemPerCPU=0 -+DefMemPerCPU=256 - #MaxMemPerCPU=0 - #SchedulerTimeSlice=30 - SchedulerType=sched/backfill - SelectType=select/cons_tres -+SelectTypeParameters=CR_Core_Memory - # - # - # JOB PRIORITY -@@ -115,9 +119,11 @@ SelectType=select/cons_tres - #AccountingStorageHost= - #AccountingStoragePass= - #AccountingStoragePort= --AccountingStorageType=accounting_storage/none -+#AccountingStorageType=accounting_storage/slurmdb -+#AccountingStorageLoc=/home/slurm/Accounting -+#AccountingStoreJobComment=YES - #AccountingStorageUser= --#AccountingStoreFlags= -+AccountingStoreFlags=job_comment - #JobCompHost= - #JobCompLoc= - #JobCompPass= -@@ -128,9 +134,9 @@ SlurmctldDebug=info - JobAcctGatherFrequency=30 - JobAcctGatherType=jobacct_gather/none - SlurmctldDebug=info --SlurmctldLogFile=/var/log/slurmctld.log -+SlurmctldLogFile=/var/log/slurm/slurmctld - SlurmdDebug=info --SlurmdLogFile=/var/log/slurmd.log -+SlurmdLogFile=/var/log/slurm/slurmd - #SlurmSchedLogFile= - #SlurmSchedLogLevel= - #DebugFlags= -@@ -148,6 +154,41 @@ SlurmdLogFile=/var/log/slurmd.log - #SuspendTime= - # - # -+ -+############################################################################ -+# Enable power saving if remote IPMI power-on is available on compute nodes. -+# If unavailable on some nodes, list them in SuspendExcNodes. -+# SlurmUser must be a member of operator and wheel and have a valid -+# login shell in order to execute shutdown on compute nodes. -+# If you prefer to control power manually, see the following scripts -+# from the SPCM port: -+ # -+# auto-ipmi-remote-power -+# cluster-power-saver -+# cluster-power-waster -+# cluster-ipmi-power-on -+############################################################################ -+ -+# SuspendProgram=/usr/local/etc/spcm/slurm-node-suspend -+# SuspendTime should be >= SuspendTimeout + ResumeTimeout. -+# SuspendTime=600 -+# SuspendTimeout=60 -+# -+# ResumeProgram=/usr/local/etc/spcm/slurm-node-resume -+# ResumeTimeout=300 -+# BatchStartTimeout=300 -+# -+# Exempt compute nodes that double as file servers or don't have IPMI -+# remote power-on enabled. -+# -+# SuspendExcNodes=compute-001 -+ -+# - # COMPUTE NODES --NodeName=linux[1-32] CPUs=1 State=UNKNOWN --PartitionName=debug Nodes=ALL Default=YES MaxTime=INFINITE State=UP -+# Set RealMemory < avail memory in /var/run/dmesg.boot -+# Note that it may change slightly following freebsd-update -+NodeName=compute-[001-002] Sockets=2 CoresPerSocket=6 RealMemory=30000 State=UNKNOWN -+# NodeName=compute-256g-[001-002] Sockets=2 CoresPerSocket=6 RealMemory=250000 State=UNKNOWN -+# PartitionName=debug Nodes=ALL Default=NO MaxTime=INFINITE State=UP -+PartitionName=batch Nodes=compute-[001-002] Default=YES MaxTime=INFINITE State=UP -+# PartitionName=256g Nodes=compute-256g-[001-002] Default=NO MaxTime=INFINITE State=UP diff --git a/sysutils/slurm-wlm/files/patch-src_common_callerid.h b/sysutils/slurm-wlm/files/patch-src_common_callerid.h deleted file mode 100644 --- a/sysutils/slurm-wlm/files/patch-src_common_callerid.h +++ /dev/null @@ -1,10 +0,0 @@ ---- src/common/callerid.h.orig 2023-06-15 19:16:14 UTC -+++ src/common/callerid.h -@@ -43,6 +43,7 @@ - #ifdef __FreeBSD__ - #include - #include -+#include - #endif - - typedef struct { diff --git a/sysutils/slurm-wlm/files/patch-src_common_conmgr.c b/sysutils/slurm-wlm/files/patch-src_common_conmgr.c deleted file mode 100644 --- a/sysutils/slurm-wlm/files/patch-src_common_conmgr.c +++ /dev/null @@ -1,49 +0,0 @@ ---- src/common/conmgr.c.orig 2024-05-21 17:19:51 UTC -+++ src/common/conmgr.c -@@ -47,6 +47,8 @@ - #include - #include - #include -+#include -+#include - #include - #include - -@@ -2616,8 +2618,15 @@ static int _create_socket(void *x, void *arg) - - /* set value of socket path */ - strlcpy(addr.sun_path, unixsock, sizeof(addr.sun_path)); -- if ((rc = bind(fd, (const struct sockaddr *) &addr, -- sizeof(addr)))) -+ /* Bind UNIX socket: compute correct length */ -+ { -+ socklen_t len = SUN_LEN(&addr); -+ #if defined(__FreeBSD__) -+ addr.sun_len = (uint8_t)len; -+ #endif -+ rc = bind(fd, (const struct sockaddr *)&addr, len); -+ } -+ if (rc) - fatal("%s: [%s] Unable to bind UNIX socket: %m", - __func__, hostport); - -@@ -2675,6 +2684,19 @@ static int _create_socket(void *x, void *arg) - &one, sizeof(one))) - fatal("%s: [%s] setsockopt(SO_REUSEADDR) failed: %m", - __func__, addrinfo_to_string(addr)); -+ -+ /* For INET/INET6, set *_len on FreeBSD; ai_addrlen is already correct */ -+ #if defined(__FreeBSD__) -+ if (addr->ai_addr) { -+ if (addr->ai_addr->sa_family == AF_INET) { -+ ((struct sockaddr_in *)addr->ai_addr)->sin_len = -+ (uint8_t)sizeof(struct sockaddr_in); -+ } else if (addr->ai_addr->sa_family == AF_INET6) { -+ ((struct sockaddr_in6 *)addr->ai_addr)->sin6_len = -+ (uint8_t)sizeof(struct sockaddr_in6); -+ } -+ } -+ #endif - - if (bind(fd, addr->ai_addr, addr->ai_addrlen) != 0) - fatal("%s: [%s] Unable to bind socket: %m", diff --git a/sysutils/slurm-wlm/files/patch-src_common_net.c b/sysutils/slurm-wlm/files/patch-src_common_net.c deleted file mode 100644 --- a/sysutils/slurm-wlm/files/patch-src_common_net.c +++ /dev/null @@ -1,68 +0,0 @@ ---- src/common/net.c.orig 2024-05-21 17:19:51 UTC -+++ src/common/net.c -@@ -75,6 +75,29 @@ - #include "src/common/xstring.h" - - /* -+ * Compute correct namelen + sa_len for AF_INET/AF_INET6 -+ */ -+#if defined(__FreeBSD__) -+static inline socklen_t _bsd_sockaddr_len_fix(struct sockaddr *sa) -+{ -+ if (!sa) return 0; -+ switch (sa->sa_family) { -+ case AF_INET: { -+ struct sockaddr_in *in = (struct sockaddr_in *)sa; -+ in->sin_len = (uint8_t)sizeof(*in); -+ return sizeof(*in); -+ } -+ case AF_INET6: { -+ struct sockaddr_in6 *in6 = (struct sockaddr_in6 *)sa; -+ in6->sin6_len = (uint8_t)sizeof(*in6); -+ return sizeof(*in6); -+ } -+ default: return sizeof(*sa); -+ } -+} -+#endif -+ -+/* - * Define slurm-specific aliases for use by plugins, see slurm_xlator.h - * for details. - */ -@@ -96,12 +119,18 @@ int net_stream_listen(int *fd, uint16_t *port) - /* bind ephemeral port */ - slurm_setup_addr(&sin, 0); - -+#if defined(__FreeBSD__) -+ socklen_t blen = _bsd_sockaddr_len_fix((struct sockaddr *)&sin); -+#else -+ socklen_t blen = sizeof(sin); -+#endif - if ((*fd = socket(sin.ss_family, SOCK_STREAM, IPPROTO_TCP)) < 0) - return -1; - - if (setsockopt(*fd, SOL_SOCKET, SO_REUSEADDR, &val, sizeof(val)) < 0) - goto cleanup; -- if (bind(*fd, (struct sockaddr *) &sin, len) < 0) -+ /* Single bind(): pass platform-correct namelen */ -+ if (bind(*fd, (struct sockaddr *) &sin, blen) < 0) - goto cleanup; - if (getsockname(*fd, (struct sockaddr *) &sin, &len) < 0) - goto cleanup; -@@ -219,7 +248,15 @@ static bool _is_port_ok(int s, uint16_t port, bool loc - return false; - } - -+/* -+ * compute correct socket length and pass it to bind() as blen on FreeBSD -+ */ -+#if defined(__FreeBSD__) -+ socklen_t blen = _bsd_sockaddr_len_fix((struct sockaddr *)&addr); -+ if (bind(s, (struct sockaddr *) &addr, blen) < 0) { -+#else - if (bind(s, (struct sockaddr *) &addr, sizeof(addr)) < 0) { -+#endif - 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 deleted file mode 100644 --- a/sysutils/slurm-wlm/files/patch-src_common_sack__api.c +++ /dev/null @@ -1,28 +0,0 @@ ---- src/common/sack_api.c.orig 2024-05-21 17:19:51 UTC -+++ src/common/sack_api.c -@@ -38,6 +38,8 @@ - #include - #include - #include -+#include -+#include - #include - - #include "src/common/fd.h" -@@ -63,7 +65,15 @@ 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; -+ -+/* FreeBSD requires sun_len and a correct namelen */ -+#if defined(__FreeBSD__) -+ len = (socklen_t)SUN_LEN(addr); -+ addr->sun_len = (uint8_t)len; -+#else -+ len = (socklen_t)(strlen(addr->sun_path) + 1 + sizeof(addr->sun_family)); -+#endif - - if ((fd = socket(AF_UNIX, SOCK_STREAM, 0)) < 0) { - debug3("%s: socket() failed: %m", __func__); 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 --- a/sysutils/slurm-wlm/files/patch-src_common_slurm__protocol__socket.c +++ b/sysutils/slurm-wlm/files/patch-src_common_slurm__protocol__socket.c @@ -1,16 +1,14 @@ ---- src/common/slurm_protocol_socket.c.orig 2024-05-21 17:19:51 UTC +--- src/common/slurm_protocol_socket.c.orig 2025-10-06 00:48:47 UTC +++ src/common/slurm_protocol_socket.c -@@ -53,7 +53,9 @@ - #include - #include - #include -+#include +@@ -56,6 +56,7 @@ + #include + #include #include +#include #include "slurm/slurm_errno.h" - #include "src/common/read_config.h" -@@ -74,6 +76,28 @@ + #include "src/common/fd.h" +@@ -79,6 +80,28 @@ #define RANDOM_USER_PORT ((uint16_t) ((lrand48() % \ (MAX_USER_PORT - MIN_USER_PORT + 1)) + MIN_USER_PORT)) @@ -39,21 +37,21 @@ /* Static functions */ static int _slurm_connect(int __fd, struct sockaddr const * __addr, socklen_t __len); -@@ -115,8 +139,13 @@ static void _sock_bind_wild(int sockfd) +@@ -106,8 +129,13 @@ static void _sock_bind_wild(int sockfd) slurm_setup_addr(&sin, RANDOM_USER_PORT); + socklen_t blen = _bsd_sockaddr_len_fix((struct sockaddr *)&sin); for (retry=0; retry < PORT_RETRIES ; retry++) { -+ #if defined(__FreeBSD__) ++ #if defined(__FreeBSD__) + rc = bind(sockfd, (struct sockaddr *) &sin, blen); -+ #else ++ #else rc = bind(sockfd, (struct sockaddr *) &sin, sizeof(sin)); -+ #endif ++ #endif if (rc >= 0) break; slurm_set_port(&sin, RANDOM_USER_PORT); -@@ -511,7 +540,13 @@ extern int slurm_init_msg_engine(slurm_addr_t *addr, b +@@ -565,7 +593,13 @@ extern int slurm_init_msg_engine(slurm_addr_t *addr, b goto error; } @@ -68,12 +66,12 @@ if (rc < 0) { format_print(log_lvl, "Error binding slurm stream socket: %m"); goto error; -@@ -666,7 +701,27 @@ static int _slurm_connect (int __fd, struct sockaddr c +@@ -770,7 +804,27 @@ static int _slurm_connect (int __fd, struct sockaddr c if (fcntl(__fd, F_SETFL, flags | O_NONBLOCK) < 0) error("%s: fcntl(F_SETFL) error: %m", __func__); +/* FreeBSD requires correct sa_len/namelen; recompute here */ -+#if defined(__FreeBSD__) ++ #if defined(__FreeBSD__) + { + struct sockaddr *sa = (struct sockaddr *)__addr; + socklen_t namelen; @@ -90,9 +88,9 @@ + } + rc = connect(__fd, sa, namelen); + } -+#else ++ #else rc = connect(__fd , __addr , __len); -+#endif ++ #endif if ((rc < 0) && (errno != EINPROGRESS)) return errno; if (rc == 0) diff --git a/sysutils/slurm-wlm/files/patch-src_common_stepd__api.c b/sysutils/slurm-wlm/files/patch-src_common_stepd__api.c deleted file mode 100644 --- a/sysutils/slurm-wlm/files/patch-src_common_stepd__api.c +++ /dev/null @@ -1,36 +0,0 @@ ---- src/common/stepd_api.c.orig 2024-05-21 17:19:51 UTC -+++ src/common/stepd_api.c -@@ -48,6 +48,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -146,7 +147,7 @@ _step_connect(const char *directory, const char *noden - slurm_step_id_t *step_id) - { - int fd; -- int len; -+ socklen_t len; - struct sockaddr_un addr; - char *name = NULL, *pos = NULL; - uint32_t stepid = step_id->step_id; -@@ -177,7 +178,15 @@ _step_connect(const char *directory, const char *noden - 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); -+ -+#if defined(__FreeBSD__) -+ /* Compute exact namelen from the populated path */ -+ len = (socklen_t)SUN_LEN(&addr); -+ /* FreeBSD requires sun_len to match the exact length */ -+ addr.sun_len = (uint8_t)len; -+#else -+ len = (socklen_t)(strlen(addr.sun_path) + 1 + sizeof(addr.sun_family)); -+#endif - - if (connect(fd, (struct sockaddr *) &addr, len) < 0) { - /* Can indicate race condition at step termination */ diff --git a/sysutils/slurm-wlm/files/patch-src_common_xsystemd.c b/sysutils/slurm-wlm/files/patch-src_common_xsystemd.c deleted file mode 100644 --- a/sysutils/slurm-wlm/files/patch-src_common_xsystemd.c +++ /dev/null @@ -1,25 +0,0 @@ ---- src/common/xsystemd.c.orig 2024-05-21 17:19:51 UTC -+++ src/common/xsystemd.c -@@ -36,6 +36,9 @@ - - #include - #include -+#include -+#include -+#include - - #include "src/common/log.h" - #include "src/common/slurm_protocol_defs.h" -@@ -57,7 +60,12 @@ extern void xsystemd_change_mainpid(pid_t pid) - } - - strlcpy(addr.sun_path, notify_socket, sizeof(addr.sun_path)); -+#if defined(__FreeBSD__) -+ len = (socklen_t)SUN_LEN(&addr); -+ addr.sun_len = (uint8_t)len; -+#else - len = strlen(addr.sun_path) + 1 + sizeof(addr.sun_family); -+#endif - - if ((fd = socket(AF_UNIX, SOCK_DGRAM, 0)) < 0) { - error("%s: socket() failed: %m", __func__); diff --git a/sysutils/slurm-wlm/files/patch-src_interfaces_cgroup.c b/sysutils/slurm-wlm/files/patch-src_interfaces_cgroup.c deleted file mode 100644 --- a/sysutils/slurm-wlm/files/patch-src_interfaces_cgroup.c +++ /dev/null @@ -1,18 +0,0 @@ ---- src/interfaces/cgroup.c.orig 2024-05-21 17:19:51 UTC -+++ src/interfaces/cgroup.c -@@ -421,6 +421,7 @@ extern char *autodetect_cgroup_version(void) - struct statfs fs; - int cgroup_ver = -1; - -+#ifndef __FreeBSD__ - if (statfs("/sys/fs/cgroup/", &fs) < 0) { - error("cgroup filesystem not mounted in /sys/fs/cgroup/"); - return NULL; -@@ -453,6 +454,7 @@ extern char *autodetect_cgroup_version(void) - error("Unknown filesystem type mounted on /sys/fs/cgroup"); - return NULL; - } -+#endif - - log_flag(CGROUP, "%s: using cgroup version %d", __func__, cgroup_ver); - diff --git a/sysutils/slurm-wlm/files/patch-src_plugins_auth_slurm_net__aliases.c b/sysutils/slurm-wlm/files/patch-src_plugins_auth_slurm_net__aliases.c deleted file mode 100644 --- a/sysutils/slurm-wlm/files/patch-src_plugins_auth_slurm_net__aliases.c +++ /dev/null @@ -1,13 +0,0 @@ ---- src/plugins/auth/slurm/net_aliases.c.orig 2023-12-13 21:49:39 UTC -+++ src/plugins/auth/slurm/net_aliases.c -@@ -40,6 +40,10 @@ - #include - #include - #include -+#if defined(__FreeBSD__) -+#include -+#include -+#endif - - #include "slurm/slurm.h" - #include "slurm/slurm_errno.h" 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 deleted file mode 100644 --- a/sysutils/slurm-wlm/files/patch-src_plugins_auth_slurm_sack.c +++ /dev/null @@ -1,17 +0,0 @@ ---- src/plugins/auth/slurm/sack.c.orig 2024-05-21 17:19:51 UTC -+++ src/plugins/auth/slurm/sack.c -@@ -278,8 +278,12 @@ extern void init_sack_conmgr(void) - - /* set value of socket path */ - mask = umask(0); -- if ((rc = bind(fd, (const struct sockaddr *) &addr, -- sizeof(addr)))) -+/* AF_UNIX length handling */ -+ socklen_t len = SUN_LEN(&addr); -+#if defined(__FreeBSD__) -+ addr.sun_len = (uint8_t)len; -+#endif -+ if ((rc = bind(fd, (const struct sockaddr *)&addr, len))) - fatal("%s: [%s] Unable to bind UNIX socket: %m", - __func__, addr.sun_path); - umask(mask); diff --git a/sysutils/slurm-wlm/files/patch-src_plugins_certgen_script_Makefile.in b/sysutils/slurm-wlm/files/patch-src_plugins_certgen_script_Makefile.in new file mode 100644 --- /dev/null +++ b/sysutils/slurm-wlm/files/patch-src_plugins_certgen_script_Makefile.in @@ -0,0 +1,48 @@ +--- src/plugins/certgen/script/Makefile.in.orig 2025-10-06 00:05:22 UTC ++++ src/plugins/certgen/script/Makefile.in +@@ -539,8 +539,8 @@ REF = certgen.sh.txt keygen.sh.txt + certgen_script_la_SOURCES = certgen_script.c + certgen_script_la_LDFLAGS = $(PLUGIN_FLAGS) + REF = certgen.sh.txt keygen.sh.txt +-CLEANFILES = *.bino +-BIN_REF = $(REF:.txt=.bino) ++CLEANFILES = *.o *.S ++BIN_REF = $(REF:.txt=.o) + LIB_REF = lib_ref.la + + # a blank lib_ref_la_SOURCES is needed for 'make cscope' to work correctly. +@@ -853,9 +853,18 @@ uninstall-am: uninstall-pkglibLTLIBRARIES + .PRECIOUS: Makefile + + +-%.bino: %.txt +- $(AM_V_GEN)curr_dir=$(shell pwd); cd $(abs_srcdir); $(LD) -r -o "$(abs_builddir)/$*.bino" -z noexecstack --format=binary "$(notdir $<)"; cd $$curr_dir +- $(AM_V_at)@OBJCOPY@ --rename-section .data=.rodata,alloc,load,readonly,data,contents "$*.bino" ++# Embed *.txt as *.o without GNU ld/objcopy ++%.o: %.txt ++ $(AM_V_GEN){ \ ++ echo ' .section .rodata'; \ ++ echo ' .globl _binary_'$*'_start'; \ ++ echo ' .globl _binary_'$*'_end'; \ ++ echo '_binary_'$*'_start:'; \ ++ echo ' .incbin "$(abs_srcdir)/$(notdir $<)"'; \ ++ echo '_binary_'$*'_end:'; \ ++ echo ' .byte 0'; \ ++ } > $@.S ++ $(AM_V_at)$(CC) -c -x assembler-with-cpp -o $@ $@.S && rm -f $@.S + + lib_ref.lo: $(BIN_REF) + $(AM_V_at)echo "# $@ - a libtool object file" >"$@" +@@ -864,6 +873,12 @@ lib_ref.lo: $(BIN_REF) + $(AM_V_at)echo "#" >>"$@" + $(AM_V_at)echo "# Please DO NOT delete this file!" >>"$@" + $(AM_V_at)echo "# It is necessary for linking the library." >>"$@" ++ $(AM_V_at)echo >>"$@" ++ $(AM_V_at)echo "# Name of the PIC object." >>"$@" ++ $(AM_V_at)echo "pic_object='$(BIN_REF)'" >>"$@" ++ $(AM_V_at)echo >>"$@" ++ $(AM_V_at)echo "# Name of the non-PIC object" >>"$@" ++ $(AM_V_at)echo "non_pic_object=''" >>"$@" + $(AM_V_at)echo >>"$@" + $(AM_V_at)echo "# Name of the PIC object." >>"$@" + $(AM_V_at)echo "pic_object='$(BIN_REF)'" >>"$@" diff --git a/sysutils/slurm-wlm/files/patch-src_plugins_cli__filter_user__defaults_cli__filter__user__defaults.c b/sysutils/slurm-wlm/files/patch-src_plugins_cli__filter_user__defaults_cli__filter__user__defaults.c deleted file mode 100644 --- a/sysutils/slurm-wlm/files/patch-src_plugins_cli__filter_user__defaults_cli__filter__user__defaults.c +++ /dev/null @@ -1,10 +0,0 @@ ---- src/plugins/cli_filter/user_defaults/cli_filter_user_defaults.c.orig 2023-03-28 20:19:41 UTC -+++ src/plugins/cli_filter/user_defaults/cli_filter_user_defaults.c -@@ -45,6 +45,7 @@ - #include - #include - #include -+#include - - #include "slurm/slurm_errno.h" - #include "src/common/slurm_xlator.h" diff --git a/sysutils/slurm-wlm/files/patch-src_plugins_job__container_tmpfs_job__container__tmpfs.c b/sysutils/slurm-wlm/files/patch-src_plugins_job__container_tmpfs_job__container__tmpfs.c deleted file mode 100644 --- a/sysutils/slurm-wlm/files/patch-src_plugins_job__container_tmpfs_job__container__tmpfs.c +++ /dev/null @@ -1,11 +0,0 @@ ---- src/plugins/job_container/tmpfs/job_container_tmpfs.c.orig 2023-11-21 22:33:29 UTC -+++ src/plugins/job_container/tmpfs/job_container_tmpfs.c -@@ -612,7 +612,7 @@ static int _create_ns(uint32_t job_id, stepd_step_rec_ - goto exit1; - } - -- xstrfmtcat(proc_path, "/proc/%u/ns/mnt", cpid); -+ xstrfmtcat(proc_path, "/compat/linux/proc/%u/ns/mnt", cpid); - - /* - * Bind mount /proc/pid/ns/mnt to hold namespace active diff --git a/sysutils/slurm-wlm/files/patch-src_plugins_jobacct__gather_common_common__jag.c b/sysutils/slurm-wlm/files/patch-src_plugins_jobacct__gather_common_common__jag.c deleted file mode 100644 --- a/sysutils/slurm-wlm/files/patch-src_plugins_jobacct__gather_common_common__jag.c +++ /dev/null @@ -1,85 +0,0 @@ ---- src/plugins/jobacct_gather/common/common_jag.c.orig 2023-11-21 22:33:29 UTC -+++ src/plugins/jobacct_gather/common/common_jag.c -@@ -233,7 +233,7 @@ static int _get_sys_interface_freq_line(uint32_t cpu, - } else { - /* frequency scaling not enabled */ - if (!cpunfo_frequency) { -- snprintf(freq_file, 14, "/proc/cpuinfo"); -+ snprintf(freq_file, 14, "/compat/linux/proc/cpuinfo"); - log_flag(JAG, "filename = %s (cpu scaling not enabled)", - freq_file); - if ((sys_fp = fopen(freq_file, "r")) != NULL) { -@@ -250,6 +250,11 @@ static int _get_sys_interface_freq_line(uint32_t cpu, - return 0; - } - -+/* -+ * Check for lightweight processes (POSIX threads) -+ * Should be rewritten for FreeBSD so it doesn't depend on /proc -+ */ -+ - static int _is_a_lwp(uint32_t pid) - { - char *filename = NULL; -@@ -259,8 +264,12 @@ static int _is_a_lwp(uint32_t pid) - char *tgids = NULL; - pid_t tgid = -1; - -- xstrfmtcat(filename, "/proc/%u/status", pid); -+ // Disable check for now, this will only skew process accounting -+ // slightly by including threads -+ return 0; - -+ xstrfmtcat(filename, "/compat/linux/proc/%u/status", pid); -+ - fd = open(filename, O_RDONLY); - if (fd < 0) { - xfree(filename); -@@ -503,7 +512,7 @@ void _set_smaps_file(char **proc_smaps_file, pid_t pid - static int use_smaps_rollup = -1; - - if (use_smaps_rollup == -1) { -- xstrfmtcat(*proc_smaps_file, "/proc/%d/smaps_rollup", pid); -+ xstrfmtcat(*proc_smaps_file, "/compat/linux/proc/%d/smaps_rollup", pid); - FILE *fd = fopen(*proc_smaps_file, "r"); - if (fd) { - fclose(fd); -@@ -514,9 +523,9 @@ void _set_smaps_file(char **proc_smaps_file, pid_t pid - } - - if (use_smaps_rollup) -- xstrfmtcat(*proc_smaps_file, "/proc/%d/smaps_rollup", pid); -+ xstrfmtcat(*proc_smaps_file, "/compat/linux/proc/%d/smaps_rollup", pid); - else -- xstrfmtcat(*proc_smaps_file, "/proc/%d/smaps", pid); -+ xstrfmtcat(*proc_smaps_file, "/compat/linux/proc/%d/smaps", pid); - } - - static void _handle_stats(pid_t pid, jag_callbacks_t *callbacks, int tres_count) -@@ -551,7 +560,7 @@ static void _handle_stats(pid_t pid, jag_callbacks_t * - disable_gpu_acct = 0; - } - -- xstrfmtcat(proc_file, "/proc/%u/stat", pid); -+ xstrfmtcat(proc_file, "/compat/linux/proc/%u/stat", pid); - if (!(stat_fp = fopen(proc_file, "r"))) - return; /* Assume the process went away */ - /* -@@ -598,7 +607,7 @@ static void _handle_stats(pid_t pid, jag_callbacks_t * - /* Remove shared data from rss */ - if (no_share_data) { - xfree(proc_file); -- xstrfmtcat(proc_file, "/proc/%u/statm", pid); -+ xstrfmtcat(proc_file, "/compat/linux/proc/%u/statm", pid); - if (!_remove_share_data(proc_file, prec)) - goto bail_out; - } -@@ -612,7 +621,7 @@ static void _handle_stats(pid_t pid, jag_callbacks_t * - } - - xfree(proc_file); -- xstrfmtcat(proc_file, "/proc/%u/io", pid); -+ xstrfmtcat(proc_file, "/compat/linux/proc/%u/io", pid); - if ((io_fp = fopen(proc_file, "r"))) { - fd2 = fileno(io_fp); - if (fcntl(fd2, F_SETFD, FD_CLOEXEC) == -1) diff --git a/sysutils/slurm-wlm/files/patch-src_plugins_mpi_cray__shasta_mpi__cray__shasta.c b/sysutils/slurm-wlm/files/patch-src_plugins_mpi_cray__shasta_mpi__cray__shasta.c deleted file mode 100644 --- a/sysutils/slurm-wlm/files/patch-src_plugins_mpi_cray__shasta_mpi__cray__shasta.c +++ /dev/null @@ -1,10 +0,0 @@ ---- src/plugins/mpi/cray_shasta/mpi_cray_shasta.c.orig 2023-03-28 20:19:41 UTC -+++ src/plugins/mpi/cray_shasta/mpi_cray_shasta.c -@@ -46,6 +46,7 @@ - #include - #include - #include -+#include - - #include "slurm/slurm_errno.h" - #include "src/common/slurm_xlator.h" diff --git a/sysutils/slurm-wlm/files/patch-src_plugins_task_Makefile.in b/sysutils/slurm-wlm/files/patch-src_plugins_task_Makefile.in deleted file mode 100644 --- a/sysutils/slurm-wlm/files/patch-src_plugins_task_Makefile.in +++ /dev/null @@ -1,11 +0,0 @@ ---- src/plugins/task/Makefile.in.orig 2025-09-08 23:07:24 UTC -+++ src/plugins/task/Makefile.in -@@ -465,7 +465,7 @@ top_srcdir = @top_srcdir@ - top_build_prefix = @top_build_prefix@ - top_builddir = @top_builddir@ - top_srcdir = @top_srcdir@ --SUBDIRS = affinity cray_aries $(am__append_1) -+SUBDIRS = affinity cray_aries pgid $(am__append_1) - all: all-recursive - - .SUFFIXES: 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 deleted file mode 100644 --- a/sysutils/slurm-wlm/files/patch-src_plugins_task_pgid_Makefile.in +++ /dev/null @@ -1,97 +0,0 @@ ---- 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 deleted file mode 100644 --- a/sysutils/slurm-wlm/files/patch-src_plugins_task_pgid_task__pgid.c +++ /dev/null @@ -1,155 +0,0 @@ ---- 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; } diff --git a/sysutils/slurm-wlm/files/patch-src_sacct_Makefile.in b/sysutils/slurm-wlm/files/patch-src_sacct_Makefile.in new file mode 100644 --- /dev/null +++ b/sysutils/slurm-wlm/files/patch-src_sacct_Makefile.in @@ -0,0 +1,35 @@ +--- src/sacct/Makefile.in.orig 2025-10-05 20:06:50 UTC ++++ src/sacct/Makefile.in +@@ -528,8 +528,8 @@ REF = help.txt + sacct.h + + REF = help.txt +-CLEANFILES = *.bino +-BIN_REF = $(REF:.txt=.bino) ++CLEANFILES = help.o help.o.S ++BIN_REF = help.o + LIB_REF = lib_ref.la + + # a blank lib_ref_la_SOURCES is needed for 'make cscope' to work correctly. +@@ -862,9 +862,18 @@ uninstall-am: uninstall-binPROGRAMS + .PRECIOUS: Makefile + + +-%.bino: %.txt +- $(AM_V_GEN)curr_dir=$(shell pwd); cd $(abs_srcdir); $(LD) -r -o "$(abs_builddir)/$*.bino" -z noexecstack --format=binary "$(notdir $<)"; cd $$curr_dir +- $(AM_V_at)@OBJCOPY@ --rename-section .data=.rodata,alloc,load,readonly,data,contents "$*.bino" ++# Embed help.txt as an object without GNU ld/objcopy ++help.o: help.txt ++ $(AM_V_GEN){ \ ++ echo ' .section .rodata'; \ ++ echo ' .globl _binary_help_txt_start'; \ ++ echo ' .globl _binary_help_txt_end'; \ ++ echo '_binary_help_txt_start:'; \ ++ echo ' .incbin "$(abs_srcdir)/help.txt"'; \ ++ echo '_binary_help_txt_end:'; \ ++ echo ' .byte 0'; \ ++ } > $@.S ++ $(AM_V_at)$(CC) -c -x assembler-with-cpp -o $@ $@.S && rm -f $@.S + + lib_ref.lo: $(BIN_REF) + $(AM_V_at)echo "# $@ - a libtool object file" >"$@" diff --git a/sysutils/slurm-wlm/files/patch-src_sacctmgr_Makefile.in b/sysutils/slurm-wlm/files/patch-src_sacctmgr_Makefile.in new file mode 100644 --- /dev/null +++ b/sysutils/slurm-wlm/files/patch-src_sacctmgr_Makefile.in @@ -0,0 +1,35 @@ +--- src/sacctmgr/Makefile.in.orig 2025-10-14 00:14:39 UTC ++++ src/sacctmgr/Makefile.in +@@ -562,8 +562,8 @@ REF = usage.txt + + sacctmgr_LDFLAGS = -export-dynamic $(CMD_LDFLAGS) + REF = usage.txt +-CLEANFILES = *.bino +-BIN_REF = $(REF:.txt=.bino) ++CLEANFILES = usage.o usage.o.S ++BIN_REF = usage.o + LIB_REF = lib_ref.la + + # a blank lib_ref_la_SOURCES is needed for 'make cscope' to work correctly. +@@ -947,9 +947,18 @@ uninstall-am: uninstall-binPROGRAMS + .PRECIOUS: Makefile + + +-%.bino: %.txt +- $(AM_V_GEN)curr_dir=$(shell pwd); cd $(abs_srcdir); $(LD) -r -o "$(abs_builddir)/$*.bino" -z noexecstack --format=binary "$(notdir $<)"; cd $$curr_dir +- $(AM_V_at)@OBJCOPY@ --rename-section .data=.rodata,alloc,load,readonly,data,contents "$*.bino" ++# Embed usage.txt as an object without GNU ld/objcopy (portable) ++usage.o: usage.txt ++ $(AM_V_GEN){ \ ++ echo ' .section .rodata'; \ ++ echo ' .globl _binary_usage_txt_start'; \ ++ echo ' .globl _binary_usage_txt_end'; \ ++ echo '_binary_usage_txt_start:'; \ ++ echo ' .incbin "$(abs_srcdir)/usage.txt"'; \ ++ echo '_binary_usage_txt_end:'; \ ++ echo ' .byte 0'; \ ++ } > $@.S ++ $(AM_V_at)$(CC) -c -x assembler-with-cpp -o $@ $@.S && rm -f $@.S + + lib_ref.lo: $(BIN_REF) + $(AM_V_at)echo "# $@ - a libtool object file" >"$@" diff --git a/sysutils/slurm-wlm/files/patch-src_sackd_Makefile.in b/sysutils/slurm-wlm/files/patch-src_sackd_Makefile.in new file mode 100644 --- /dev/null +++ b/sysutils/slurm-wlm/files/patch-src_sackd_Makefile.in @@ -0,0 +1,35 @@ +--- src/sackd/Makefile.in.orig 2025-10-14 00:19:33 UTC ++++ src/sackd/Makefile.in +@@ -517,8 +517,8 @@ REF = usage.txt + sackd_LDFLAGS = $(CMD_LDFLAGS) + sackd_LDADD = $(LIB_SLURM) $(LIB_REF) + REF = usage.txt +-CLEANFILES = *.bino +-BIN_REF = $(REF:.txt=.bino) ++CLEANFILES = usage.o usage.o.S ++BIN_REF = usage.o + LIB_REF = lib_ref.la + + # a blank lib_ref_la_SOURCES is needed for 'make cscope' to work correctly. +@@ -842,9 +842,18 @@ uninstall-am: uninstall-sbinPROGRAMS + .PRECIOUS: Makefile + + +-%.bino: %.txt +- $(AM_V_GEN)curr_dir=$(shell pwd); cd $(abs_srcdir); $(LD) -r -o "$(abs_builddir)/$*.bino" -z noexecstack --format=binary "$(notdir $<)"; cd $$curr_dir +- $(AM_V_at)@OBJCOPY@ --rename-section .data=.rodata,alloc,load,readonly,data,contents "$*.bino" ++# Embed usage.txt as an object without GNU ld/objcopy (portable) ++usage.o: usage.txt ++ $(AM_V_GEN){ \ ++ echo ' .section .rodata'; \ ++ echo ' .globl _binary_usage_txt_start'; \ ++ echo ' .globl _binary_usage_txt_end'; \ ++ echo '_binary_usage_txt_start:'; \ ++ echo ' .incbin "$(abs_srcdir)/usage.txt"'; \ ++ echo '_binary_usage_txt_end:'; \ ++ echo ' .byte 0'; \ ++ } > $@.S ++ $(AM_V_at)$(CC) -c -x assembler-with-cpp -o $@ $@.S && rm -f $@.S + + lib_ref.lo: $(BIN_REF) + $(AM_V_at)echo "# $@ - a libtool object file" >"$@" diff --git a/sysutils/slurm-wlm/files/patch-src_scontrol_Makefile.in b/sysutils/slurm-wlm/files/patch-src_scontrol_Makefile.in new file mode 100644 --- /dev/null +++ b/sysutils/slurm-wlm/files/patch-src_scontrol_Makefile.in @@ -0,0 +1,37 @@ +--- src/scontrol/Makefile.in.orig 2025-09-04 18:44:26 UTC ++++ src/scontrol/Makefile.in +@@ -550,8 +550,8 @@ REF = usage.txt + scontrol_DEPENDENCIES = $(LIB_SLURM_BUILD) + scontrol_LDFLAGS = -export-dynamic $(CMD_LDFLAGS) + REF = usage.txt +-CLEANFILES = *.bino +-BIN_REF = $(REF:.txt=.bino) ++CLEANFILES = *.o ++BIN_REF = $(REF:.txt=.o) + LIB_REF = lib_ref.la + + # a blank lib_ref_la_SOURCES is needed for 'make cscope' to work correctly. +@@ -923,9 +923,20 @@ uninstall-am: uninstall-binPROGRAMS + .PRECIOUS: Makefile + + +-%.bino: %.txt +- $(AM_V_GEN)curr_dir=$(shell pwd); cd $(abs_srcdir); $(LD) -r -o "$(abs_builddir)/$*.bino" -z noexecstack --format=binary "$(notdir $<)"; cd $$curr_dir +- $(AM_V_at)@OBJCOPY@ --rename-section .data=.rodata,alloc,load,readonly,data,contents "$*.bino" ++%.o: %.txt ++ $(AM_V_GEN) { \ ++ printf '%s\n' \ ++ '.section .rodata' \ ++ '.globl _binary_'$*'_txt_start' \ ++ '.globl _binary_'$*'_txt_end' \ ++ '_binary_'$*'_txt_start:' \ ++ ' .incbin "$(abs_srcdir)/$(notdir $<)"' \ ++ '_binary_'$*'_txt_end:' \ ++ ' .byte 0' \ ++ > $*.S; \ ++ $(CC) -c -x assembler-with-cpp -o $@ $*.S; \ ++ rm -f $*.S; \ ++ } + + lib_ref.lo: $(BIN_REF) + $(AM_V_at)echo "# $@ - a libtool object file" >"$@" diff --git a/sysutils/slurm-wlm/files/patch-src_scrontab_Makefile.in b/sysutils/slurm-wlm/files/patch-src_scrontab_Makefile.in new file mode 100644 --- /dev/null +++ b/sysutils/slurm-wlm/files/patch-src_scrontab_Makefile.in @@ -0,0 +1,35 @@ +--- src/scrontab/Makefile.in.orig 2025-10-14 00:31:29 UTC ++++ src/scrontab/Makefile.in +@@ -525,8 +525,8 @@ REF = default_crontab.txt usage.txt + scrontab_LDFLAGS = $(CMD_LDFLAGS) + scrontab_LDADD = $(LIB_SLURM) $(LIB_REF) + REF = default_crontab.txt usage.txt +-CLEANFILES = *.bino +-BIN_REF = $(REF:.txt=.bino) ++CLEANFILES = $(REF:.txt=.o) $(REF:.txt=.o.S) ++BIN_REF = $(REF:.txt=.o) + LIB_REF = lib_ref.la + + # a blank lib_ref_la_SOURCES is needed for 'make cscope' to work correctly. +@@ -859,9 +859,18 @@ uninstall-am: uninstall-binPROGRAMS + .PRECIOUS: Makefile + + +-%.bino: %.txt +- $(AM_V_GEN)curr_dir=$(shell pwd); cd $(abs_srcdir); $(LD) -r -o "$(abs_builddir)/$*.bino" -z noexecstack --format=binary "$(notdir $<)"; cd $$curr_dir +- $(AM_V_at)@OBJCOPY@ --rename-section .data=.rodata,alloc,load,readonly,data,contents "$*.bino" ++# Embed *.txt as objects without GNU ld/objcopy (portable) ++%.o: %.txt ++ $(AM_V_GEN){ \ ++ echo ' .section .rodata'; \ ++ echo ' .globl _binary_$*_txt_start'; \ ++ echo ' .globl _binary_$*_txt_end'; \ ++ echo '_binary_$*_txt_start:'; \ ++ echo ' .incbin "$(abs_srcdir)/$*.txt"'; \ ++ echo '_binary_$*_txt_end:'; \ ++ echo ' .byte 0'; \ ++ } > $@.S ++ $(AM_V_at)$(CC) -c -x assembler-with-cpp -o $@ $@.S && rm -f $@.S + + lib_ref.lo: $(BIN_REF) + $(AM_V_at)echo "# $@ - a libtool object file" >"$@" diff --git a/sysutils/slurm-wlm/files/patch-src_scrun_anchor.c b/sysutils/slurm-wlm/files/patch-src_scrun_anchor.c deleted file mode 100644 --- a/sysutils/slurm-wlm/files/patch-src_scrun_anchor.c +++ /dev/null @@ -1,27 +0,0 @@ ---- src/scrun/anchor.c.orig 2023-11-21 22:33:29 UTC -+++ src/scrun/anchor.c -@@ -43,7 +43,12 @@ - #include - #include - #include -+#ifdef __FreeBSD__ -+#include -+#include -+#else - #include -+#endif - #include - #include - #include -@@ -1034,7 +1039,11 @@ static void _set_proctitle() - - setproctitle("%s", state.id); - xstrfmtcat(thread_name, "scrun:%s", state.id); -+#ifdef __FreeBSD__ -+ if (pthread_setname_np(pthread_self(), thread_name) < 0) { -+#else - if (prctl(PR_SET_NAME, thread_name, NULL, NULL, NULL) < 0) { -+#endif - fatal("Unable to set process name"); - } - xfree(thread_name); diff --git a/sysutils/slurm-wlm/files/patch-src_scrun_commands.c b/sysutils/slurm-wlm/files/patch-src_scrun_commands.c deleted file mode 100644 --- a/sysutils/slurm-wlm/files/patch-src_scrun_commands.c +++ /dev/null @@ -1,13 +0,0 @@ ---- src/scrun/commands.c.orig 2023-11-21 22:33:29 UTC -+++ src/scrun/commands.c -@@ -39,6 +39,10 @@ - #include - #include - -+#ifdef __FreeBSD__ -+#include -+#endif -+ - #include "src/common/daemonize.h" - #include "src/common/fd.h" - #include "src/common/log.h" diff --git a/sysutils/slurm-wlm/files/patch-src_scrun_scrun.c b/sysutils/slurm-wlm/files/patch-src_scrun_scrun.c deleted file mode 100644 --- a/sysutils/slurm-wlm/files/patch-src_scrun_scrun.c +++ /dev/null @@ -1,24 +0,0 @@ ---- src/scrun/scrun.c.orig 2023-03-28 20:15:54 UTC -+++ src/scrun/scrun.c -@@ -45,6 +45,9 @@ - #include - #include - #include -+#ifdef __FreeBSD__ -+#include -+#endif - - #include "src/common/data.h" - #include "src/common/log.h" -@@ -186,7 +189,11 @@ static void _parse_create(int argc, char **argv) - } - - if (!state.bundle) { -+#ifdef __FreeBSD__ -+ char *dir = getcwd(NULL, PATH_MAX); -+#else - char *dir = get_current_dir_name(); -+#endif - state.bundle = xstrdup(dir); - free(dir); - } diff --git a/sysutils/slurm-wlm/files/patch-src_scrun_srun.c b/sysutils/slurm-wlm/files/patch-src_scrun_srun.c deleted file mode 100644 --- a/sysutils/slurm-wlm/files/patch-src_scrun_srun.c +++ /dev/null @@ -1,12 +0,0 @@ ---- src/scrun/srun.c.orig 2023-03-28 20:15:54 UTC -+++ src/scrun/srun.c -@@ -40,7 +40,9 @@ - - #include - #include -+#ifndef __FreeBSD__ - #include -+#endif - #include - #include - #include diff --git a/sysutils/slurm-wlm/files/patch-src_sinfo_Makefile.in b/sysutils/slurm-wlm/files/patch-src_sinfo_Makefile.in new file mode 100644 --- /dev/null +++ b/sysutils/slurm-wlm/files/patch-src_sinfo_Makefile.in @@ -0,0 +1,36 @@ +--- src/sinfo/Makefile.in.orig 2025-09-04 18:44:26 UTC ++++ src/sinfo/Makefile.in +@@ -522,8 +522,8 @@ REF = help.txt usage.txt + noinst_HEADERS = sinfo.h print.h + sinfo_SOURCES = sinfo.c opts.c print.c sort.c + REF = help.txt usage.txt +-CLEANFILES = *.bino +-BIN_REF = $(REF:.txt=.bino) ++CLEANFILES = *.o *.S ++BIN_REF = $(REF:.txt=.o) + LIB_REF = lib_ref.la + + # a blank lib_ref_la_SOURCES is needed for 'make cscope' to work correctly. +@@ -856,10 +856,18 @@ uninstall-am: uninstall-binPROGRAMS + + .PRECIOUS: Makefile + +- +-%.bino: %.txt +- $(AM_V_GEN)curr_dir=$(shell pwd); cd $(abs_srcdir); $(LD) -r -o "$(abs_builddir)/$*.bino" -z noexecstack --format=binary "$(notdir $<)"; cd $$curr_dir +- $(AM_V_at)@OBJCOPY@ --rename-section .data=.rodata,alloc,load,readonly,data,contents "$*.bino" ++# Embed *.txt as *.o without GNU ld/objcopy ++%.o: %.txt ++ $(AM_V_GEN){ \ ++ echo ' .section .rodata'; \ ++ echo ' .globl _binary_'$*'_txt_start'; \ ++ echo ' .globl _binary_'$*'_txt_end'; \ ++ echo '_binary_'$*'_txt_start:'; \ ++ echo ' .incbin "$(abs_srcdir)/$(notdir $<)"'; \ ++ echo '_binary_'$*'_txt_end:'; \ ++ echo ' .byte 0'; \ ++ } > $@.S ++ $(AM_V_at)$(CC) -c -x assembler-with-cpp -o $@ $@.S && rm -f $@.S + + lib_ref.lo: $(BIN_REF) + $(AM_V_at)echo "# $@ - a libtool object file" >"$@" diff --git a/sysutils/slurm-wlm/files/patch-src_slurmd_slurmd_slurmd.h b/sysutils/slurm-wlm/files/patch-src_slurmd_slurmd_slurmd.h deleted file mode 100644 --- a/sysutils/slurm-wlm/files/patch-src_slurmd_slurmd_slurmd.h +++ /dev/null @@ -1,10 +0,0 @@ ---- src/slurmd/slurmd/slurmd.h.orig 2023-12-13 21:49:39 UTC -+++ src/slurmd/slurmd/slurmd.h -@@ -43,6 +43,7 @@ - #include - #include - #include -+#include - - #include "src/common/log.h" - #include "src/common/list.h" diff --git a/sysutils/slurm-wlm/files/patch-src_slurmd_slurmd_slurmd.c b/sysutils/slurm-wlm/files/patch-src_slurmd_slurmd_slurmd.c deleted file mode 100644 --- a/sysutils/slurm-wlm/files/patch-src_slurmd_slurmd_slurmd.c +++ /dev/null @@ -1,50 +0,0 @@ ---- src/slurmd/slurmd/slurmd.c.orig 2024-05-21 17:19:51 UTC -+++ src/slurmd/slurmd/slurmd.c -@@ -2191,10 +2191,17 @@ _slurmd_init(void) - build_all_frontend_info(true); - - /* -+ * cgroups is unsupported on FreeBSD and would prevent slurmd from starting -+ */ -+#if defined(__FreeBSD__) -+ info("FreeBSD: Skipping cgroup_conf_init() - cgroups unsupported"); -+#else -+ /* - * This needs to happen before _read_config where we will try to read - * cgroup.conf values - */ - cgroup_conf_init(); -+#endif - - xcpuinfo_refresh_hwloc(original); - -@@ -2214,6 +2221,10 @@ _slurmd_init(void) - * defaults and command line. - */ - _read_config(); -+ -+#if defined(__FreeBSD__) -+ info("FreeBSD: Skipping cgroup_g_init() - cgroups unsupported"); -+#else - /* - * This needs to happen before _resource_spec_init where we will try to - * attach the slurmd pid to system cgroup, and after _read_config to -@@ -2223,6 +2234,7 @@ _slurmd_init(void) - error("Unable to initialize cgroup plugin"); - return SLURM_ERROR; - } -+#endif - - #ifndef HAVE_FRONT_END - if (!find_node_record(conf->node_name)) -@@ -2562,6 +2574,10 @@ static int _resource_spec_init(void) - */ - static int _resource_spec_init(void) - { -+#if defined(__FreeBSD__) -+ debug("FreeBSD: Skipping system cpuset and memory cgroup setup"); -+ return SLURM_SUCCESS; -+#endif - fini_system_cgroup(); /* Prevent memory leak */ - if (_core_spec_init() != SLURM_SUCCESS) - error("Resource spec: core specialization disabled"); diff --git a/sysutils/slurm-wlm/files/patch-src_slurmd_slurmstepd_req.c b/sysutils/slurm-wlm/files/patch-src_slurmd_slurmstepd_req.c deleted file mode 100644 --- a/sysutils/slurm-wlm/files/patch-src_slurmd_slurmstepd_req.c +++ /dev/null @@ -1,15 +0,0 @@ ---- src/slurmd/slurmstepd/req.c.orig 2024-05-21 17:19:51 UTC -+++ src/slurmd/slurmstepd/req.c -@@ -176,7 +176,11 @@ _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); -+/* AF_UNIX length handling */ -+ len = SUN_LEN(&addr); -+#if defined(__FreeBSD__) -+ addr.sun_len = (uint8_t)len; -+#endif - - /* bind the name to the descriptor */ - if (bind(fd, (struct sockaddr *) &addr, len) < 0) { diff --git a/sysutils/slurm-wlm/files/patch-src_sprio_Makefile.in b/sysutils/slurm-wlm/files/patch-src_sprio_Makefile.in new file mode 100644 --- /dev/null +++ b/sysutils/slurm-wlm/files/patch-src_sprio_Makefile.in @@ -0,0 +1,35 @@ +--- src/sprio/Makefile.in.orig 2025-09-04 18:44:26 UTC ++++ src/sprio/Makefile.in +@@ -522,8 +522,8 @@ REF = help.txt usage.txt + noinst_HEADERS = sprio.h print.h + sprio_SOURCES = sprio.c print.c opts.c sort.c filter.c + REF = help.txt usage.txt +-CLEANFILES = *.bino +-BIN_REF = $(REF:.txt=.bino) ++CLEANFILES = *.o *.S ++BIN_REF = $(REF:.txt=.o) + LIB_REF = lib_ref.la + + # a blank lib_ref_la_SOURCES is needed for 'make cscope' to work correctly. +@@ -860,9 +860,18 @@ uninstall-am: uninstall-binPROGRAMS + .PRECIOUS: Makefile + + +-%.bino: %.txt +- $(AM_V_GEN)curr_dir=$(shell pwd); cd $(abs_srcdir); $(LD) -r -o "$(abs_builddir)/$*.bino" -z noexecstack --format=binary "$(notdir $<)"; cd $$curr_dir +- $(AM_V_at)@OBJCOPY@ --rename-section .data=.rodata,alloc,load,readonly,data,contents "$*.bino" ++# Embed *.txt as *.o without GNU ld/objcopy ++%.o: %.txt ++ $(AM_V_GEN){ \ ++ echo ' .section .rodata'; \ ++ echo ' .globl _binary_'$*'_txt_start'; \ ++ echo ' .globl _binary_'$*'_txt_end'; \ ++ echo '_binary_'$*'_txt_start:'; \ ++ echo ' .incbin "$(abs_srcdir)/$(notdir $<)"'; \ ++ echo '_binary_'$*'_txt_end:'; \ ++ echo ' .byte 0'; \ ++ } > $@.S ++ $(AM_V_at)$(CC) -c -x assembler-with-cpp -o $@ $@.S && rm -f $@.S + + lib_ref.lo: $(BIN_REF) + $(AM_V_at)echo "# $@ - a libtool object file" >"$@" diff --git a/sysutils/slurm-wlm/files/patch-src_squeue_Makefile.in b/sysutils/slurm-wlm/files/patch-src_squeue_Makefile.in new file mode 100644 --- /dev/null +++ b/sysutils/slurm-wlm/files/patch-src_squeue_Makefile.in @@ -0,0 +1,35 @@ +--- src/squeue/Makefile.in.orig 2025-09-04 18:44:26 UTC ++++ src/squeue/Makefile.in +@@ -523,8 +523,8 @@ REF = help.txt usage.txt + squeue_SOURCES = squeue.c print.c opts.c sort.c + squeue_LDFLAGS = $(CMD_LDFLAGS) + REF = help.txt usage.txt +-CLEANFILES = *.bino +-BIN_REF = $(REF:.txt=.bino) ++CLEANFILES = *.o *.S ++BIN_REF = $(REF:.txt=.o) + LIB_REF = lib_ref.la + + # a blank lib_ref_la_SOURCES is needed for 'make cscope' to work correctly. +@@ -857,9 +857,18 @@ uninstall-am: uninstall-binPROGRAMS + .PRECIOUS: Makefile + + +-%.bino: %.txt +- $(AM_V_GEN)curr_dir=$(shell pwd); cd $(abs_srcdir); $(LD) -r -o "$(abs_builddir)/$*.bino" -z noexecstack --format=binary "$(notdir $<)"; cd $$curr_dir +- $(AM_V_at)@OBJCOPY@ --rename-section .data=.rodata,alloc,load,readonly,data,contents "$*.bino" ++# Embed *.txt as *.o without GNU ld/objcopy ++%.o: %.txt ++ $(AM_V_GEN){ \ ++ echo ' .section .rodata'; \ ++ echo ' .globl _binary_'$*'_txt_start'; \ ++ echo ' .globl _binary_'$*'_txt_end'; \ ++ echo '_binary_'$*'_txt_start:'; \ ++ echo ' .incbin "$(abs_srcdir)/$(notdir $<)"'; \ ++ echo '_binary_'$*'_txt_end:'; \ ++ echo ' .byte 0'; \ ++ } > $@.S ++ $(AM_V_at)$(CC) -c -x assembler-with-cpp -o $@ $@.S && rm -f $@.S + + lib_ref.lo: $(BIN_REF) + $(AM_V_at)echo "# $@ - a libtool object file" >"$@" diff --git a/sysutils/slurm-wlm/files/pkg-message.in b/sysutils/slurm-wlm/files/pkg-message.in new file mode 100644 --- /dev/null +++ b/sysutils/slurm-wlm/files/pkg-message.in @@ -0,0 +1,32 @@ +[ + { + type: install, + message: <