diff --git a/changelog b/changelog index 8694ffe..d94dfb2 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,8 @@ +* Fri Dec 22 2023 Neil Hanlon - 22.05.11-1 +- Update to 22.05.11 (#2155310) +- Closes CVE-2023-49933 through CVE-2023-49938; RHBZ bugs: +- #2254496, #2254499, #2254502, #2254505, #2254507, #2254509 + * Sat Oct 21 2023 Philip Kovacs - 22.05.10-1 - Update to 22.05.10 - Use mariadb-connector-c-devel not mariadb-devel for builds diff --git a/slurm-24.05.2-perlapi_vendor_installpath.patch b/slurm-24.05.2-perlapi_vendor_installpath.patch new file mode 100644 index 0000000..a17d9e5 --- /dev/null +++ b/slurm-24.05.2-perlapi_vendor_installpath.patch @@ -0,0 +1,38 @@ +Subject: [PATCH] Switch perl site install path to vendor +--- +Index: contribs/perlapi/libslurm/Makefile.am +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +diff --git a/contribs/perlapi/libslurm/Makefile.am b/contribs/perlapi/libslurm/Makefile.am +--- a/contribs/perlapi/libslurm/Makefile.am (revision ca885c43cd9c6deae7800619282573c421933bc1) ++++ b/contribs/perlapi/libslurm/Makefile.am (revision 8dd9898e73e3c890092e133068d143e842ab40ba) +@@ -62,8 +62,7 @@ + fi + @cd $(perl_dir) && $(perlpath) Makefile.PL $(PERL_MM_PARAMS) \ + prefix=${prefix} libdir=${libdir} INSTALL_BASE= PERL_MM_OPT= \ +- INSTALLDIRS=site INSTALLSITELIB=${_perlsitedir} \ +- INSTALLSITEARCH=${_perlsitedir} \ ++ INSTALLDIRS=vendor \ + INSTALLSITEMAN1DIR=$(mandir)/man1 \ + INSTALLSITEMAN3DIR=$(mandir)/man3 + +Index: contribs/perlapi/libslurmdb/Makefile.am +IDEA additional info: +Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP +<+>UTF-8 +=================================================================== +diff --git a/contribs/perlapi/libslurmdb/Makefile.am b/contribs/perlapi/libslurmdb/Makefile.am +--- a/contribs/perlapi/libslurmdb/Makefile.am (revision ca885c43cd9c6deae7800619282573c421933bc1) ++++ b/contribs/perlapi/libslurmdb/Makefile.am (revision 8dd9898e73e3c890092e133068d143e842ab40ba) +@@ -34,8 +34,7 @@ + fi + @cd $(perl_dir) && $(perlpath) Makefile.PL $(PERL_MM_PARAMS) \ + prefix=${prefix} INSTALL_BASE= PERL_MM_OPT= \ +- INSTALLDIRS=site INSTALLSITELIB=${_perlsitedir} \ +- INSTALLSITEARCH=${_perlsitedir} \ ++ INSTALLDIRS=vendor \ + INSTALLSITEMAN1DIR=$(mandir)/man1 \ + INSTALLSITEMAN3DIR=$(mandir)/man3 + diff --git a/slurm.spec b/slurm.spec index f7398e3..16261b5 100644 --- a/slurm.spec +++ b/slurm.spec @@ -15,7 +15,7 @@ %endif Name: slurm -Version: 22.05.10 +Version: 24.05.2 Release: %autorelease Summary: Simple Linux Utility for Resource Management # ./src/common/log.c: BSD 2-Clause License @@ -34,14 +34,9 @@ Source5: slurm-setuser.in Patch0: slurm_release_version.patch # Build-related patches -Patch10: slurm_check_version.patch Patch11: slurm_html_doc_path.patch Patch12: slurm_perlapi_rpaths.patch - -# Other patches -# https://bugs.schedmd.com/show_bug.cgi?id=14868 -Patch20: slurm_runtime_linking.patch -Patch21: slurm_to_python3.patch +Patch13: slurm-24.05.2-perlapi_vendor_installpath.patch BuildRequires: autoconf BuildRequires: automake @@ -55,11 +50,7 @@ BuildRequires: perl-ExtUtils-MakeMaker BuildRequires: perl-interpreter BuildRequires: perl-generators BuildRequires: perl-podlators -%if (0%{?rhel} != 7) BuildRequires: pkgconf -%else -BuildRequires: pkgconfig -%endif BuildRequires: pkgconfig(check) BuildRequires: pkgconfig(lua) BuildRequires: python3 @@ -83,20 +74,16 @@ BuildRequires: pam-devel BuildRequires: pmix-devel BuildRequires: rdma-core-devel BuildRequires: readline-devel -BuildRequires: rrdtool-devel BuildRequires: zlib-devel %if 0%{?fedora} && %{with ucx} BuildRequires: ucx-devel %endif -# create slurm-slurmrestd package for Fedora and EPEL7/8/9 -%if 0%{?fedora} || (0%{?rhel} >= 7) BuildRequires: http-parser-devel BuildRequires: json-c-devel BuildRequires: libjwt-devel BuildRequires: libyaml-devel -%endif # exclude upstream-deprecated 32-bit architectures ExcludeArch: armv7hl @@ -145,14 +132,6 @@ Summary: Slurm shared libraries %description libs Slurm shared libraries. -%package rrdtool -Summary: Slurm rrdtool external sensor plugin -Requires: %{name}%{?_isa} = %{version}-%{release} -%description rrdtool -Slurm external sensor plugin for rrdtool. This package is separated from -the base plugins package due to gui dependencies which are unneeded if not -using this plugin. - %package slurmctld Summary: Slurm controller daemon Requires: %{name}%{?_isa} = %{version}-%{release} @@ -174,14 +153,19 @@ Requires: %{name}%{?_isa} = %{version}-%{release} Slurm database daemon. Used to accept and process database RPCs and upload database changes to slurmctld daemons on each cluster. -%if 0%{?fedora} || (0%{?rhel} >= 7) %package slurmrestd Summary: Slurm REST API deamon Requires: %{name}%{?_isa} = %{version}-%{release} %description slurmrestd Slurm REST API daemon. The slurmrestd daemon is designed to allow clients to communicate with Slurm via a REST API. -%endif + +%package sackd +Summary: Slurm Auth and Cred Kiosk daemon +Requires: %{name}%{?_isa} = %{version}-%{release} +%description sackd +Slurm Auth and Cred Kiosk daemon. It can be used on login nodes that are not +running slurmd daemons to allow authentication to the cluster. # ----------------- # Contribs Packages @@ -233,6 +217,7 @@ Requires: %{name}-perlapi%{?_isa} = %{version}-%{release} %description torque Torque wrapper scripts used for helping migrate from Torque/PBS to Slurm. + %prep %autosetup -p1 -n %{name_version} cp %SOURCE1 etc/slurm.conf @@ -246,6 +231,7 @@ cp %SOURCE4 share/icons/hicolor/128x128/apps/%{name}.png mkdir -p extras cp %SOURCE5 extras/%{name}-setuser.in + %build aclocal -I auxdir autoconf @@ -255,12 +241,8 @@ export CFLAGS="%{build_cflags} -fcommon" # use -z lazy to allow dlopen with unresolved symbols export LDFLAGS="%{build_ldflags} -Wl,-z,lazy" %configure \ - --prefix=%{_prefix} \ --sysconfdir=%{_sysconfdir}/%{name} \ --with-pam_dir=%{_libdir}/security \ -%if 0%{?fedora} && %{with ucx} - --with-ucx=%{_prefix} \ -%endif --enable-pam \ --enable-really-no-cray \ --enable-shared \ @@ -270,6 +252,7 @@ export LDFLAGS="%{build_ldflags} -Wl,-z,lazy" --disable-salloc-background \ --disable-partial_attach \ --with-oneapi=no \ + --with-pmix=%{_prefix} \ --with-shared-libslurm \ --without-rpath # patch libtool to remove rpaths @@ -286,17 +269,15 @@ s|^dir_spool=.*|dir_spool="%{_var}/spool/%{name}"|g; s|^dir_tmpfiles_d=.*|dir_tmpfiles_d="%{_tmpfilesdir}"|g;' \ extras/%{name}-setuser.in > extras/%{name}-setuser +# patch the test files +sed -i 's|"PluginDir=" SLURM_PREFIX "/lib/slurm/\\n"|"PluginDir=%{buildroot}%{_libdir}/%{name}/\\n"|g' testsuite/slurm_unit/common/serializer-test.c + # build base packages %make_build # build contribs packages -# INSTALLDIRS=vendor so perlapi goes to vendor_perl directory -%make_build PERL_MM_PARAMS="INSTALLDIRS=vendor" contrib +%make_build contrib -%check -# The test binaries need LD_LIBRARY_PATH to find the compiled slurm library -# in the build tree. -%make_build LD_LIBRARY_PATH="%{buildroot}%{_libdir};%{_libdir}" check %install %make_install @@ -397,10 +378,19 @@ rm -f %{buildroot}%{_sbindir}/slurmsmwd* rm -f %{buildroot}%{perl_vendorarch}/auto/Slurm*/.packlist rm -f %{buildroot}%{perl_vendorarch}/auto/Slurm*/Slurm*.bs rm -f %{buildroot}%{perl_archlib}/perllocal.pod +# remove other example stuff +rm -f %{buildroot}%{_libdir}/%{name}/site_factor_example.so %ldconfig_scriptlets devel %ldconfig_scriptlets libs + +%check +# The test binaries need LD_LIBRARY_PATH to find the compiled slurm library +# in the build tree. +%make_build LD_LIBRARY_PATH="%{buildroot}%{_libdir}" check + + # ----- # Slurm # ----- @@ -427,6 +417,7 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod %{_bindir}/scancel %{_bindir}/scontrol %{_bindir}/scrontab +%{_bindir}/scrun %{_bindir}/sdiag %{_bindir}/sh5util %{_bindir}/sinfo @@ -440,41 +431,35 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod %{_bindir}/%{name}-setuser %{_libdir}/%{name}/accounting_storage_*.so %{_libdir}/%{name}/acct_gather_*.so -%if 0%{?fedora} || (0%{?rhel} >= 7) %{_libdir}/%{name}/auth_jwt.so -%endif %{_libdir}/%{name}/auth_munge.so +%{_libdir}/%{name}/auth_slurm.so %{_libdir}/%{name}/burst_buffer_lua.so %{_libdir}/%{name}/cgroup_v1.so %{_libdir}/%{name}/cgroup_v2.so %{_libdir}/%{name}/cli_filter_*.so -%{_libdir}/%{name}/core_spec_none.so %{_libdir}/%{name}/cred_*.so -%{_libdir}/%{name}/ext_sensors_none.so +%{_libdir}/%{name}/data_parser_*.so +%{_libdir}/%{name}/gpu_*.so %{_libdir}/%{name}/gres_*.so -%{_libdir}/%{name}/gpu_generic.so -%{_libdir}/%{name}/hash_k12.so +%{_libdir}/%{name}/hash_*.so %{_libdir}/%{name}/job_container_*.so %{_libdir}/%{name}/job_submit_*.so %{_libdir}/%{name}/jobacct_gather_*.so %{_libdir}/%{name}/jobcomp_*.so -%{_libdir}/%{name}/launch_slurm.so %{_libdir}/%{name}/mcs_*.so %{_libdir}/%{name}/mpi_*.so %{_libdir}/%{name}/node_features_*.so -%{_libdir}/%{name}/power_none.so %{_libdir}/%{name}/preempt_*.so %{_libdir}/%{name}/prep_script.so %{_libdir}/%{name}/priority_*.so %{_libdir}/%{name}/proctrack_*.so -%{_libdir}/%{name}/route_*.so %{_libdir}/%{name}/sched_*.so %{_libdir}/%{name}/select_*.so %{_libdir}/%{name}/serializer_*.so -%{_libdir}/%{name}/site_factor_none.so -%{_libdir}/%{name}/slurmctld_nonstop.so %{_libdir}/%{name}/switch_*.so %{_libdir}/%{name}/task_*.so +%{_libdir}/%{name}/tls_none.so %{_libdir}/%{name}/topology_*.so %{_mandir}/man1/sacct.1* %{_mandir}/man1/sacctmgr.1* @@ -485,6 +470,7 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod %{_mandir}/man1/scancel.1* %{_mandir}/man1/scontrol.1* %{_mandir}/man1/scrontab.1* +%{_mandir}/man1/scrun.1* %{_mandir}/man1/sdiag.1* %{_mandir}/man1/sh5util.1* %{_mandir}/man1/sinfo.1* @@ -499,13 +485,11 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod %{_mandir}/man5/acct_gather.conf.5* %{_mandir}/man5/burst_buffer.conf.5* %{_mandir}/man5/cgroup.conf.5* -%{_mandir}/man5/ext_sensors.conf.5* %{_mandir}/man5/gres.conf.5* %{_mandir}/man5/helpers.conf.5* %{_mandir}/man5/job_container.conf.5* %{_mandir}/man5/knl.conf.5* %{_mandir}/man5/mpi.conf.5* -%{_mandir}/man5/nonstop.conf.5* %{_mandir}/man5/oci.conf.5* %{_mandir}/man5/slurm.conf.5* %{_mandir}/man5/topology.conf.5* @@ -529,7 +513,6 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod %{_includedir}/%{name}/slurm_errno.h %{_includedir}/%{name}/slurm_version.h %{_includedir}/%{name}/slurmdb.h -%{_includedir}/%{name}/smd_ns.h %{_includedir}/%{name}/spank.h %{_libdir}/libpmi.so %{_libdir}/libpmi2.so @@ -543,6 +526,12 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod %files doc %{_docdir} +%exclude %{_docdir}/%{name}/CONTRIBUTING.md +%exclude %{_docdir}/%{name}/DISCLAIMER +%exclude %{_docdir}/%{name}/META +%exclude %{_docdir}/%{name}/NEWS +%exclude %{_docdir}/%{name}/README.rst +%exclude %{_docdir}/%{name}/RELEASE_NOTES # --------- # Slurm-gui @@ -554,20 +543,6 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod %{_datadir}/icons/hicolor/*/apps/%{name}.png %{_mandir}/man1/sview.1* -%if (0%{?rhel} == 7) -%post gui -/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : - -%postun gui -if [ $1 -eq 0 ] ; then - /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null - /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : -fi - -%posttrans gui -/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : -%endif - # ---------- # Slurm-libs # ---------- @@ -579,13 +554,6 @@ fi %{_libdir}/libslurmfull-*.so %{_libdir}/libslurm_pmi-*.so -# ------------- -# Slurm-rrdtool -# ------------- - -%files rrdtool -%{_libdir}/%{name}/ext_sensors_rrd.so - # --------------- # Slurm-slurmctld # --------------- @@ -626,13 +594,19 @@ fi # Slurm-slurmrestd # ---------------- -%if 0%{?fedora} || (0%{?rhel} >= 7) %files slurmrestd %{_libdir}/%{name}/openapi*.so %{_libdir}/%{name}/rest*.so %{_sbindir}/slurmrestd %{_unitdir}/slurmrestd.service -%endif + +# ---------------- +# Slurm-sackd +# ---------------- + +%files sackd +%{_sbindir}/sackd +%{_mandir}/man8/sackd.8* # -------------- # Slurm-contribs diff --git a/slurm_check_version.patch b/slurm_check_version.patch deleted file mode 100644 index 5b13045..0000000 --- a/slurm_check_version.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/configure.ac b/configure.ac -index d69d47348a..90f82536ce 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -240,7 +240,7 @@ X_AC_CGROUP - # Tests for Check - # - --PKG_CHECK_MODULES([CHECK], [check >= 0.9.8], [ac_have_check="yes"], [ac_have_check="no"]) -+PKG_CHECK_MODULES([CHECK], [check >= 0.9.10], [ac_have_check="yes"], [ac_have_check="no"]) - AM_CONDITIONAL(HAVE_CHECK, test "x$ac_have_check" = "xyes") - - # diff --git a/slurm_perlapi_rpaths.patch b/slurm_perlapi_rpaths.patch index f20bd54..88b42b4 100644 --- a/slurm_perlapi_rpaths.patch +++ b/slurm_perlapi_rpaths.patch @@ -2,11 +2,11 @@ diff --git a/contribs/perlapi/libslurm/perl/Makefile.PL.in b/contribs/perlapi/li index fcae43796d..34c1ad1411 100644 --- a/contribs/perlapi/libslurm/perl/Makefile.PL.in +++ b/contribs/perlapi/libslurm/perl/Makefile.PL.in -@@ -77,7 +77,7 @@ DESTDIR_BUG +@@ -68,7 +68,7 @@ DESTDIR_BUG # AIX has problems with not always having the correct # flags so we have to add some :) my $os = lc(`uname`); --my $other_ld_flags = "-Wl,-rpath,@top_builddir@/src/api/.libs -Wl,-rpath,@prefix@/lib"; +-my $other_ld_flags = '-Wl,-rpath,@top_builddir@/src/api/.libs -Wl,-rpath,@libdir@'; +my $other_ld_flags = ""; $other_ld_flags = " -brtl -G -bnoentry -bgcbypass:1000 -bexpfull" if $os =~ "aix"; @@ -15,11 +15,11 @@ diff --git a/contribs/perlapi/libslurmdb/perl/Makefile.PL.in b/contribs/perlapi/ index 2db028c113..d143c20190 100644 --- a/contribs/perlapi/libslurmdb/perl/Makefile.PL.in +++ b/contribs/perlapi/libslurmdb/perl/Makefile.PL.in -@@ -76,7 +76,7 @@ DESTDIR_BUG +@@ -68,7 +68,7 @@ DESTDIR_BUG # AIX has problems with not always having the correct # flags so we have to add some :) my $os = lc(`uname`); --my $other_ld_flags = "-Wl,-rpath,@top_builddir@/src/db_api/.libs -Wl,-rpath,@prefix@/lib"; +-my $other_ld_flags = '-Wl,-rpath,@top_builddir@/src/db_api/.libs -Wl,-rpath,@libdir@'; +my $other_ld_flags = ""; $other_ld_flags = " -brtl -G -bnoentry -bgcbypass:1000 -bexpfull" if $os =~ "aix"; diff --git a/slurm_runtime_linking.patch b/slurm_runtime_linking.patch deleted file mode 100644 index e4435e9..0000000 --- a/slurm_runtime_linking.patch +++ /dev/null @@ -1,35 +0,0 @@ -diff --git a/src/plugins/mpi/pmix/mpi_pmix.c b/src/plugins/mpi/pmix/mpi_pmix.c -index 626065f269..d2623695be 100644 ---- a/src/plugins/mpi/pmix/mpi_pmix.c -+++ b/src/plugins/mpi/pmix/mpi_pmix.c -@@ -137,7 +137,7 @@ static void *_libpmix_open(void) - #elif defined PMIXP_V4_LIBPATH - xstrfmtcat(full_path, "%s/", PMIXP_V4_LIBPATH); - #endif -- xstrfmtcat(full_path, "libpmix.so"); -+ xstrfmtcat(full_path, "libpmix.so.2"); - - lib_plug = dlopen(full_path, RTLD_LAZY | RTLD_GLOBAL); - xfree(full_path); -diff --git a/src/plugins/mpi/pmix/pmixp_dconn_ucx.c b/src/plugins/mpi/pmix/pmixp_dconn_ucx.c -index 44013246e3..96c40b5c3a 100644 ---- a/src/plugins/mpi/pmix/pmixp_dconn_ucx.c -+++ b/src/plugins/mpi/pmix/pmixp_dconn_ucx.c -@@ -169,7 +169,7 @@ static int _load_ucx_lib() - * we have from autoconf - */ - char *full_path = NULL; -- xstrfmtcat(full_path, "%s/libucp.so", PMIXP_UCX_LIBPATH); -+ xstrfmtcat(full_path, "%s/libucp.so.0", PMIXP_UCX_LIBPATH); - _ucx_lib_handler = dlopen(full_path, RTLD_LAZY | RTLD_GLOBAL); - xfree(full_path); - if (_ucx_lib_handler) { -@@ -180,7 +180,7 @@ static int _load_ucx_lib() - * known by dynamic linker. - */ - #endif -- _ucx_lib_handler = dlopen("libucp.so", RTLD_LAZY | RTLD_GLOBAL); -+ _ucx_lib_handler = dlopen("libucp.so.0", RTLD_LAZY | RTLD_GLOBAL); - if (!_ucx_lib_handler) { - char *err = dlerror(); - PMIXP_ERROR("Cannot open UCX lib: %s", (err) ? err : "unknown"); diff --git a/slurm_to_python3.patch b/slurm_to_python3.patch deleted file mode 100644 index 841e773..0000000 --- a/slurm_to_python3.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/contribs/cray/csm/slurmconfgen_smw.py b/contribs/cray/csm/slurmconfgen_smw.py -index 1d1aadedaf..b2f65c242b 100644 ---- a/contribs/cray/csm/slurmconfgen_smw.py -+++ b/contribs/cray/csm/slurmconfgen_smw.py -@@ -1,4 +1,4 @@ --#!/usr/bin/env python -+#!/usr/bin/env python3 - # - # Copyright 2015-2016 Hewlett Packard Enterprise Development LP - """ A script to generate slurm.conf and gres.conf for a -diff --git a/contribs/cray/slurmconfgen.py.in b/contribs/cray/slurmconfgen.py.in -index 31de1a0c28..269b1d55a7 100644 ---- a/contribs/cray/slurmconfgen.py.in -+++ b/contribs/cray/slurmconfgen.py.in -@@ -1,4 +1,4 @@ --#!/usr/bin/python -+#!/usr/bin/python3 - # - # Copyright 2013 Hewlett Packard Enterprise Development LP - # diff --git a/sources b/sources index af4dd75..821f3fe 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (slurm-22.05.10.tar.bz2) = a1746e749c1ff703076fc9e02d2b73d9e5ab23e0d503164dfa01011d24f37a1f7fa01170cc7ec526c82082fe9766aeceb2be14067293967e69daca502e8e549a +SHA512 (slurm-24.05.2.tar.bz2) = d00b7420690f0067a53e6c52cf9ec103411766437d9677f9968fdb81859ad4c839ba7d3dbfa046f6b06b753262a25d12ff7e8e019b14fc8f7b1e1cbbe60ed819