diff --git a/slurm-18.08.8.tar.bz2 b/slurm-18.08.8.tar.bz2 deleted file mode 100644 index c858bb3..0000000 --- a/slurm-18.08.8.tar.bz2 +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:043a048ac8a6fb6f6bf7c66434b05ed8b5b871e5e86e407c063d0c8cb4cb6e0d -size 6208426 diff --git a/slurm-18.08.9.tar.bz2 b/slurm-18.08.9.tar.bz2 new file mode 100644 index 0000000..ecaf0a0 --- /dev/null +++ b/slurm-18.08.9.tar.bz2 @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7103b45c58565b580f94cd68bc546344ffaa7dd0e349d23ec849e5acebff9ad +size 6210190 diff --git a/slurm.changes b/slurm.changes index d1e7950..3c77217 100644 --- a/slurm.changes +++ b/slurm.changes @@ -1,3 +1,59 @@ +------------------------------------------------------------------- +Thu Jan 2 09:14:56 UTC 2020 - Egbert Eich + +- Deprecate "ControlMachine" only for SLURM version upgrades and + products newer than 1501. This ensures that the original setting + is retained for the SLURM version shipped origianlly with SLE-15-SP1 + or Leap 15.1. + +------------------------------------------------------------------- +Sat Dec 21 09:07:42 UTC 2019 - Egbert Eich + +- Update to v18.08.9 for fixing CVE-2019-19728 (bsc#1159692). + * Wrap END_TIMER{,2,3} macro definition in "do {} while (0)" block. + * Make sview work with glib2 v2.62. + * Make Slurm compile on linux after sys/sysctl.h was deprecated. + * Install slurmdbd.conf.example with 0600 permissions to encourage secure + use. CVE-2019-19727. + * srun - do not continue with job launch if --uid fails. CVE-2019-19728. + +------------------------------------------------------------------- +Wed Dec 11 18:23:46 UTC 2019 - Christian Goll + +- added pmix support jsc#SLE-10800 + +------------------------------------------------------------------- +Sun Dec 8 11:33:42 UTC 2019 - Egbert Eich + +- Use --with-shared-libslurm to build slurm binaries using libslurm. +- Make libslurm depend on slurm-config. + +------------------------------------------------------------------- +Fri Dec 6 17:06:32 UTC 2019 - Egbert Eich + +- Fix ownership of /var/spool/slurm on new installations + and upgrade (boo#1158696). + +------------------------------------------------------------------- +Thu Oct 31 10:18:21 UTC 2019 - Egbert Eich + +- Fix permissions of slurmdbd.conf (bsc#1155784, CVE-2019-19727). +- Fix %posttrans macro _res_update to cope with added newline + (bsc#1153259). + +------------------------------------------------------------------- +Mon Oct 21 15:54:43 UTC 2019 - Egbert Eich + +- Add package slurm-webdoc which sets up a web server to provide + the documentation for the version shipped. + +------------------------------------------------------------------- +Mon Oct 7 15:39:43 UTC 2019 - Egbert Eich + +- Move srun from 'slurm' to 'slurm-node': srun is required on the + nodes as well so sbatch will work. 'slurm-node' is a requirement + when 'slurm' is installed (bsc#1153095). + ------------------------------------------------------------------- Wed Oct 2 08:26:02 UTC 2019 - Egbert Eich diff --git a/slurm.spec b/slurm.spec index 1efffb7..d7e7221 100644 --- a/slurm.spec +++ b/slurm.spec @@ -1,7 +1,7 @@ # # spec file for package slurm # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -18,7 +18,7 @@ # Check file META in sources: update so_version to (API_CURRENT - API_AGE) %define so_version 33 -%define ver 18.08.8 +%define ver 18.08.9 %define _ver _18_08 %define dl_ver %{ver} # so-version is 0 and seems to be stable @@ -43,6 +43,13 @@ %define upgrade 1 %endif +# Build with PMIx only for SLE >= 15.2 and TW +%if 0%{?sle_version} >= 150200 || 0%{suse_version} >= 1550 +%{bcond_without pmix} +%else +%{bcond_with pmix} +%endif + # For anything newer than Leap 42.1 and SLE-12-SP1 build compatible to OpenHPC. %if 0%{suse_version} > 1320 || 0%{?sle_version} >= 120200 %define OHPC_BUILD 1 @@ -51,10 +58,14 @@ %if 0%{?suse_version} >= 1220 || 0%{?sle_version} >= 120000 %define with_systemd 1 %endif + %if 0%{?suse_version:1} && 0%{?suse_version} <= 1140 %define comp_at %defattr(-,root,root) %else %define have_json_c 1 + %if 0%{?sle_version} >= 150000 || 0%{?is_opensuse} + %define have_apache_rpm_macros 1 + %endif %endif %if 0 @@ -97,7 +108,7 @@ Release: 0 Summary: Simple Linux Utility for Resource Management License: SUSE-GPL-2.0-with-openssl-exception Group: Productivity/Clustering/Computing -Url: https://www.schedmd.com +URL: https://www.schedmd.com Source: https://download.schedmd.com/slurm/%{pname}-%{dl_ver}.tar.bz2 Source1: slurm-rpmlintrc Patch0: slurm-2.4.4-rpath.patch @@ -141,6 +152,7 @@ BuildRequires: libnuma-devel %endif BuildRequires: mysql-devel >= 5.0.0 BuildRequires: ncurses-devel +%{?with_pmix:BuildRequires: pmix-devel} BuildRequires: openssl-devel >= 0.9.6 BuildRequires: pkgconfig BuildRequires: postgresql-devel >= 8.0.0 @@ -190,6 +202,20 @@ Group: Documentation/HTML %{?upgrade:Provides: %{pname}-doc = %{version}} %{?upgrade:Conflicts: %{pname}-doc} +%package webdoc +Summary: Set up SLURM Documentation Server +Group: Productivity/Clustering/Computing +%if 0%{?have_apache_rpm_macros} +BuildRequires: apache-rpm-macros +%else +%define apache_sysconfdir /etc/apache2 +%endif +Requires: slurm-doc = %{version} +Requires(pre): apache2 + +%description webdoc +Set up HTTP server for SLURM configuration. + %description doc Documentation (HTML) for the SLURM cluster managment software. @@ -213,17 +239,20 @@ through Perl. %package -n %{libslurm} Summary: Libraries for SLURM Group: System/Libraries +Requires: %{name}-config = %{version} %description -n %{libslurm} This package contains the library needed to run programs dynamically linked with SLURM. -%package -n libpmi%{pmi_so} +%package -n libpmi%{pmi_so}%{?upgrade:%{_ver}} Summary: Libraries for SLURM Group: System/Libraries +%{?upgrade:Provides: libpmi%{pmi_so} = %{version}} +%{?upgrade:Conflicts: libpmi%{pmi_so}} -%description -n libpmi%{pmi_so} +%description -n libpmi%{pmi_so}%{?upgrade:%{_ver}} This package contains the library needed to run programs dynamically linked with SLURM. @@ -233,14 +262,13 @@ Summary: Development package for SLURM Group: Development/Libraries/C and C++ Requires: %{libslurm} = %{version} Requires: %{name} = %{version} -Requires: libpmi%{pmi_so} = %{version} +Requires: libpmi%{pmi_so}%{?upgrade:%{_ver}} = %{version} %{?upgrade:Provides: %{pname}-devel = %{version}} %{?upgrade:Conflicts: %{pname}-devel} %description devel This package includes the header files for the SLURM API. - %package auth-none Summary: SLURM auth NULL implementation (no authentication) Group: Productivity/Clustering/Computing @@ -486,6 +514,7 @@ Contains also cray specific documentation. --disable-static \ --without-rpath \ --without-datawarp \ + --with-shared-libslurm \ %{!?have_netloc:--without-netloc} \ --sysconfdir=%{_sysconfdir}/%{pname} \ %{!?have_hdf5:--without-hdf5} \ @@ -516,7 +545,7 @@ install -D -m755 etc/init.d.slurmdbd %{buildroot}%{_initrddir}/slurmdbd ln -sf %{_initrddir}/slurm %{buildroot}%{_sbindir}/rcslurm ln -sf %{_initrddir}/slurmdbd %{buildroot}%{_sbindir}/rcslurmdbd %endif -mkdir -p %{buildroot}%{_var}/spool/slurm +mkdir -p %{buildroot}%{_localstatedir}/spool/slurm rm -f contribs/cray/opt_modulefiles_slurm rm -f %{buildroot}%{_sysconfdir}/plugstack.conf.template @@ -530,8 +559,8 @@ install -D -m644 etc/layouts.d.power.conf.example %{buildroot}/%{_sysconfdir}/%{ install -D -m644 etc/layouts.d.power_cpufreq.conf.example %{buildroot}/%{_sysconfdir}/%{pname}/layouts.d/power_cpufreq.conf.example install -D -m644 etc/layouts.d.unit.conf.example %{buildroot}/%{_sysconfdir}/%{pname}/layouts.d/unit.conf.example install -D -m644 etc/slurm.conf.example %{buildroot}/%{_sysconfdir}/%{pname}/slurm.conf%{?OHPC_BUILD:.example} -install -D -m644 etc/slurmdbd.conf.example %{buildroot}/%{_sysconfdir}/%{pname}/slurmdbd.conf -install -D -m644 etc/slurmdbd.conf.example %{buildroot}%{_sysconfdir}/%{pname}/slurmdbd.conf.example +install -D -m600 etc/slurmdbd.conf.example %{buildroot}/%{_sysconfdir}/%{pname}/slurmdbd.conf +install -D -m600 etc/slurmdbd.conf.example %{buildroot}%{_sysconfdir}/%{pname}/slurmdbd.conf.example install -D -m755 contribs/sjstat %{buildroot}%{_bindir}/sjstat install -D -m755 contribs/sgather/sgather %{buildroot}%{_bindir}/sgather @@ -544,11 +573,13 @@ sed -i 's#\(StateSaveLocation=\).*#\1%_localstatedir/lib/slurm#' %{buildroot}/% sed -i 's#^\(SlurmdPidFile=\).*$#\1%{_localstatedir}/run/slurm/slurmd.pid#' %{buildroot}/%{_sysconfdir}/%{pname}/slurm.conf sed -i 's#^\(SlurmctldPidFile=\).*$#\1%{_localstatedir}/run/slurm/slurmctld.pid#' %{buildroot}/%{_sysconfdir}/%{pname}/slurm.conf sed -i 's#^\(SlurmdSpoolDir=\)/.*#\1%{_localstatedir}/spool/slurm#' %{buildroot}/%{_sysconfdir}/%{pname}/slurm.conf +%if 0%{?upgrade} || 0%{suse_version} > 1501 sed -i -e '/^ControlMachine=/i# Ordered List of Control Nodes' \ -e 's#ControlMachine=\(.*\)$#SlurmctldHost=\1(10.0.10.20)#' \ -e 's#BackupController=.*#SlurmctldHost=linux1(10.0.10.21)#' \ -e '/.*ControlAddr=.*/d' \ -e '/.*BackupAddr=.*/d' %{buildroot}/%{_sysconfdir}/%{pname}/slurm.conf +%endif cat >>%{buildroot}/%{_sysconfdir}/%{pname}/slurm.conf < %{buildroot}/%{_sysconfdir}/logrotate.d/${service}.conf } EOF done +mkdir -p %{buildroot}/%{apache_sysconfdir}/conf.d +cat > %{buildroot}/%{apache_sysconfdir}/conf.d/slurm.conf < + AllowOverride None + DirectoryIndex slurm.html + # Controls who can get stuff from this server. + + Require all granted + + + Order allow,deny + Allow from all + + +EOF %fdupes -s %{buildroot} +%define fixperm() [ $1 -eq 1 -a -e %2 ] && /bin/chmod %1 %2 + %pre %if 0%{?with_systemd} %service_add_pre slurmctld.service @@ -677,6 +726,8 @@ done %endif %post slurmdbd +%{fixperm 0600 %{_sysconfdir}/%{pname}/slurmdbd.conf} +%{fixperm 0600 %{_sysconfdir}/%{pname}/slurmdbd.conf.example} %if 0%{?with_systemd} %service_add_post slurmdbd.service %else @@ -691,6 +742,8 @@ done %endif %postun slurmdbd +%{fixperm 0600 %{_sysconfdir}/%{pname}/slurmdbd.conf} +%{fixperm 0600 %{_sysconfdir}/%{pname}/slurmdbd.conf.example} %if 0%{?with_systemd} %service_del_postun -n slurmdbd.service %else @@ -728,6 +781,7 @@ done %define slurmdescr "SLURM workload manager" getent group %slurm_g >/dev/null || groupadd -r %slurm_g getent passwd %slurm_u >/dev/null || useradd -r -g %slurm_g -d %slurmdir -s /bin/false -c %{slurmdescr} %slurm_u +[ -d %{_localstatedir}/spool/slurm ] && /bin/chown -h %slurm_u:%slurm_g %{_localstatedir}/spool/slurm exit 0 %post config @@ -742,8 +796,8 @@ exit 0 %post -n %{libslurm} -p /sbin/ldconfig %postun -n %{libslurm} -p /sbin/ldconfig -%post -n libpmi%{pmi_so} -p /sbin/ldconfig -%postun -n libpmi%{pmi_so} -p /sbin/ldconfig +%post -n libpmi%{pmi_so}%{?upgrade:%{_ver}} -p /sbin/ldconfig +%postun -n libpmi%{pmi_so}%{?upgrade:%{_ver}} -p /sbin/ldconfig %{!?nil: # On update the %%postun code of the old package restarts the @@ -768,8 +822,12 @@ exit 0 %define _rest() %{?with_systemd:[ -e /run/%{1}.rst ] && { systemctl status %{1} &>/dev/null || systemctl restart %{1}; }; rm -f /run/%{1}.rst;} %{!?nil: # Until a posttrans macro has been added to macros.systemd, we need this +# Do NOT delete the line breaks in the macro definition: they help +# to cope with different versions of the %_restart_on_update. +} +%define _res_update() %{?with_systemd: + %{expand:%%_restart_on_update %{?*}} } -%define _res_update() %{?with_systemd:%{expand:%%_restart_on_update %{?*}};} %pretrans -p %_test_rest slurmctld @@ -817,7 +875,6 @@ exit 0 %{_bindir}/sprio %{_bindir}/squeue %{_bindir}/sreport -%{_bindir}/srun %{_bindir}/smap %{_bindir}/sshare %{_bindir}/sstat @@ -846,7 +903,6 @@ exit 0 %{_mandir}/man1/sprio.1* %{_mandir}/man1/squeue.1* %{_mandir}/man1/sreport.1* -%{_mandir}/man1/srun.1* %{_mandir}/man1/sshare.1* %{_mandir}/man1/sstat.1* %{_mandir}/man1/strigger.1* @@ -872,11 +928,15 @@ exit 0 %dir %{_datadir}/doc/%{pname}-%{dl_ver} %{_datadir}/doc/%{pname}-%{dl_ver}/* +%files webdoc +%{?comp_at} +%{apache_sysconfdir}/conf.d/slurm.conf + %files -n %{libslurm} %{?comp_at} %{_libdir}/libslurm*.so.%{so_version}* -%files -n libpmi%{pmi_so} +%files -n libpmi%{pmi_so}%{?upgrade:%{_ver}} %{?comp_at} %{_libdir}/libpmi*.so.%{pmi_so}* @@ -919,8 +979,8 @@ exit 0 %{_sbindir}/slurmdbd %{_mandir}/man5/slurmdbd.* %{_mandir}/man8/slurmdbd.* -%config(noreplace) %{_sysconfdir}/%{pname}/slurmdbd.conf -%{_sysconfdir}/%{pname}/slurmdbd.conf.example +%config(noreplace) %attr(0600,%slurm_u,%slurm_g) %{_sysconfdir}/%{pname}/slurmdbd.conf +%attr(0600,%slurm_u,%slurm_g) %{_sysconfdir}/%{pname}/slurmdbd.conf.example %if 0%{?with_systemd} %{_unitdir}/slurmdbd.service %else @@ -983,6 +1043,10 @@ exit 0 %{_libdir}/slurm/mpi_none.so %{_libdir}/slurm/mpi_openmpi.so %{_libdir}/slurm/mpi_pmi2.so +%if %{with pmix} +%{_libdir}/slurm/mpi_pmix.so +%{_libdir}/slurm/mpi_pmix_v3.so +%endif %{_libdir}/slurm/power_none.so %{_libdir}/slurm/preempt_none.so %{_libdir}/slurm/preempt_partition_prio.so @@ -1068,6 +1132,9 @@ exit 0 %{?comp_at} %{_sbindir}/slurmd %{_sbindir}/slurmstepd +# bsc#1153095 +%{_bindir}/srun +%{_mandir}/man1/srun.1* %{_mandir}/man8/slurmd.* %{_mandir}/man8/slurmstepd* %if 0%{?with_systemd} @@ -1090,7 +1157,7 @@ exit 0 %config(noreplace) %{_sysconfdir}/%{pname}/layouts.d/unit.conf.example %{?OHPC_BUILD:%attr(0755, %slurm_u, %slurm_g) %_localstatedir/lib/slurm} %{?with_systemd:%{_tmpfilesdir}/%{pname}.conf} -%dir %{_var}/spool/slurm +%dir %attr(0755, %slurm_u, %slurm_g)%{_localstatedir}/spool/slurm %config(noreplace) %{_sysconfdir}/logrotate.d/slurm* %files config-man