forked from pool/slurm
Egbert Eich
cbe6c9fcaa
- Fix security issue in accounting_storage/mysql plugin by always escaping strings within the slurmdbd. CVE-2018-7033 http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2018-7033 (bsc#1085240). - Update slurm to v17.11.5 (FATE#325451) Highlights of 17.11: * Support for federated clusters to manage a single work-flow across a set of clusters. * Support for heterogeneous job allocations (various processor types, memory sizes, etc. by job component). Support for heterogeneous job steps within a single MPI_COMM_WORLD is not yet supported for most configurations. * X11 support is now fully integrated with the main Slurm code. Remove any X11 plugin configured in your plugstack.conf file to avoid errors being logged about conflicting options. * Added new advanced reservation flag of "flex", which permits jobs requesting the reservation to begin prior to the reservation's start time and use resources inside or outside of the reservation. A typical use case is to prevent jobs not explicitly requesting the reservation from using those reserved resources rather than forcing jobs requesting the reservation to use those resources in the time frame reserved. * The sprio command has been modified to report a job's priority information for every partition the job has been submitted to. * Group ID lookup performed at job submit time to avoid lookup on all compute nodes. Enable with PrologFlags=SendGIDs configuration parameter. * Slurm commands and daemons dynamically link to libslurmfull.so instead of statically linking. This dramatically reduces the footprint of Slurm. OBS-URL: https://build.opensuse.org/request/show/587617 OBS-URL: https://build.opensuse.org/package/show/network:cluster/slurm?expand=0&rev=46
844 lines
25 KiB
RPMSpec
844 lines
25 KiB
RPMSpec
#
|
|
# spec file for package slurm
|
|
#
|
|
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
# Check file META in sources: update so_version to (API_CURRENT - API_AGE)
|
|
%define so_version 32
|
|
%define ver 17.11.5
|
|
# so-version is 0 and seems to be stable
|
|
%define pmi_so 0
|
|
|
|
# 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
|
|
%endif
|
|
|
|
%if 0%{?suse_version} >= 1220 || 0%{?sle_version} >= 120000
|
|
%define with_systemd 1
|
|
%endif
|
|
|
|
%if 0
|
|
%define have_netloc 1
|
|
%endif
|
|
|
|
%ifarch x86_64
|
|
%define have_libnuma 1
|
|
%else
|
|
%ifarch %{ix86}
|
|
%if 0%{?sle_version} >= 120200
|
|
%define have_libnuma 1
|
|
%endif
|
|
%endif
|
|
%endif
|
|
|
|
%if 0%{?with_systemd}
|
|
%define slurm_u %name
|
|
%define slurm_g %name
|
|
%else
|
|
%define slurm_u daemon
|
|
%define slurm_g root
|
|
%endif
|
|
|
|
%define libslurm libslurm%{so_version}
|
|
|
|
Name: slurm
|
|
Version: %{ver}
|
|
Release: 0
|
|
Summary: Simple Linux Utility for Resource Management
|
|
License: SUSE-GPL-2.0-with-openssl-exception
|
|
Group: Productivity/Clustering/Computing
|
|
Url: https://computing.llnl.gov/linux/slurm/
|
|
Source: https://download.schedmd.com/slurm/%{name}-%{ver}.tar.bz2
|
|
Source1: slurm-rpmlintrc
|
|
Patch0: slurm-2.4.4-rpath.patch
|
|
Patch1: slurm-2.4.4-init.patch
|
|
Patch2: pam_slurm-Initialize-arrays-and-pass-sizes.patch
|
|
Requires: slurm-config = %{version}
|
|
Requires: slurm-node = %{version}
|
|
%if 0%{?suse_version} <= 1140
|
|
Requires(pre): pwdutils
|
|
%else
|
|
Requires(pre): shadow
|
|
%endif
|
|
BuildRequires: fdupes
|
|
BuildRequires: gcc-c++
|
|
BuildRequires: gtk2-devel
|
|
BuildRequires: libbitmask-devel
|
|
BuildRequires: libcpuset-devel
|
|
BuildRequires: python
|
|
%if 0%{?have_libnuma}
|
|
BuildRequires: libnuma-devel
|
|
%endif
|
|
BuildRequires: mysql-devel >= 5.0.0
|
|
BuildRequires: ncurses-devel
|
|
BuildRequires: openssl-devel >= 0.9.6
|
|
BuildRequires: pkgconfig
|
|
BuildRequires: postgresql-devel >= 8.0.0
|
|
BuildRequires: readline-devel
|
|
%if 0%{?suse_version} > 1310 || 0%{?sle_version}
|
|
BuildRequires: libibmad-devel
|
|
BuildRequires: libibumad-devel
|
|
%endif
|
|
%if 0%{?suse_version} > 1140
|
|
BuildRequires: libhwloc-devel
|
|
%ifarch %{ix86} x86_64
|
|
BuildRequires: freeipmi-devel
|
|
%endif
|
|
%endif
|
|
%if 0%{?with_systemd}
|
|
%{?systemd_requires}
|
|
BuildRequires: systemd
|
|
%else
|
|
PreReq: %insserv_prereq %fillup_prereq
|
|
%endif
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|
Obsoletes: slurm-sched-wiki < %{version}
|
|
Obsoletes: slurmdb-direct < %{version}
|
|
|
|
%description
|
|
SLURM is a fault-tolerant scalable cluster management and job
|
|
scheduling system for Linux clusters containing up to 65,536 nodes.
|
|
Components include machine status, partition management, job
|
|
management, scheduling and accounting modules.
|
|
|
|
%package doc
|
|
Summary: Documentation for SLURM
|
|
Group: Documentation/HTML
|
|
|
|
%description doc
|
|
Documentation (HTML) for the SLURM cluster managment software.
|
|
|
|
%package -n perl-slurm
|
|
Summary: Perl API to SLURM
|
|
Group: Development/Languages/Perl
|
|
Requires: slurm = %{version}
|
|
%if 0%{?suse_version} < 1140
|
|
Requires: perl = %{perl_version}
|
|
%else
|
|
%{perl_requires}
|
|
%endif
|
|
|
|
%description -n perl-slurm
|
|
This package includes the Perl API to provide an interface to SLURM
|
|
through Perl.
|
|
|
|
%package -n %{libslurm}
|
|
Summary: Libraries for SLURM
|
|
Group: System/Libraries
|
|
|
|
%description -n %{libslurm}
|
|
This package contains the library needed to run programs dynamically linked
|
|
with SLURM.
|
|
|
|
|
|
%package -n libpmi%{pmi_so}
|
|
Summary: Libraries for SLURM
|
|
Group: System/Libraries
|
|
|
|
%description -n libpmi%{pmi_so}
|
|
This package contains the library needed to run programs dynamically linked
|
|
with SLURM.
|
|
|
|
|
|
%package devel
|
|
Summary: Development package for SLURM
|
|
Group: Development/Libraries/C and C++
|
|
Requires: %{libslurm} = %{version}
|
|
Requires: libpmi%{pmi_so} = %{version}
|
|
Requires: slurm = %{version}
|
|
|
|
%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
|
|
Requires: slurm = %{version}
|
|
|
|
%description auth-none
|
|
This package cobtains the SLURM NULL authentication module.
|
|
|
|
|
|
%package munge
|
|
Summary: SLURM authentication and crypto implementation using Munge
|
|
Group: Productivity/Clustering/Computing
|
|
Requires: munge
|
|
Requires: slurm-plugins = %{version}
|
|
BuildRequires: munge-devel
|
|
Obsoletes: slurm-auth-munge < %{version}
|
|
Provides: slurm-auth-munge = %{version}
|
|
|
|
%description munge
|
|
This package contains the SLURM authentication module for Chris Dunlap's Munge.
|
|
|
|
%package sview
|
|
Summary: SLURM graphical interface
|
|
Group: Productivity/Clustering/Computing
|
|
|
|
%description sview
|
|
sview is a graphical user interface to get and update state information for
|
|
jobs, partitions, and nodes managed by SLURM.
|
|
|
|
|
|
%package slurmdbd
|
|
Summary: SLURM database daemon
|
|
Group: Productivity/Clustering/Computing
|
|
Requires: slurm-plugins = %{version}
|
|
%if 0%{?with_systemd}
|
|
%{?systemd_requires}
|
|
%else
|
|
PreReq: %insserv_prereq %fillup_prereq
|
|
%endif
|
|
Obsoletes: slurm-sched-wiki < %{version}
|
|
Obsoletes: slurmdb-direct < %{version}
|
|
|
|
%description slurmdbd
|
|
The SLURM database daemon provides accounting of jobs in a database.
|
|
|
|
|
|
%package sql
|
|
Summary: Slurm SQL support
|
|
Group: Productivity/Clustering/Computing
|
|
|
|
%description sql
|
|
Contains interfaces to MySQL for use by SLURM.
|
|
|
|
|
|
%package plugins
|
|
Summary: SLURM plugins (loadable shared objects)
|
|
Group: Productivity/Clustering/Computing
|
|
|
|
%description plugins
|
|
This package contains the SLURM plugins (loadable shared objects)
|
|
|
|
%package torque
|
|
Summary: Wrappers for transitition from Torque/PBS to SLURM
|
|
Group: Productivity/Clustering/Computing
|
|
Requires: perl-slurm = %{version}
|
|
Provides: torque-client
|
|
|
|
%description torque
|
|
Wrapper scripts for aiding migration from Torque/PBS to SLURM.
|
|
|
|
%package openlava
|
|
Summary: Wrappers for transitition from OpenLava/LSF to Slurm
|
|
Group: Productivity/Clustering/Computing
|
|
Requires: perl-slurm = %{version}
|
|
|
|
%description openlava
|
|
Wrapper scripts for aiding migration from OpenLava/LSF to Slurm
|
|
|
|
%package seff
|
|
Summary: Mail tool that includes job statistics in user notification email
|
|
Group: Productivity/Clustering/Computing
|
|
Requires: perl-slurm = %{version}
|
|
|
|
%description seff
|
|
Mail program used directly by the SLURM daemons. On completion of a job,
|
|
it waits for accounting information to be available and includes that
|
|
information in the email body.
|
|
|
|
|
|
%package sjstat
|
|
Summary: Perl tool to print SLURM job state information
|
|
Group: Productivity/Clustering/Computing
|
|
Requires: slurm = %{version}
|
|
%if 0%{?suse_version} < 1140
|
|
Requires: perl = %{perl_version}
|
|
%else
|
|
%{perl_requires}
|
|
%endif
|
|
|
|
%description sjstat
|
|
This package contains a Perl tool to print SLURM job state information.
|
|
|
|
%package pam_slurm
|
|
Summary: PAM module for restricting access to compute nodes via SLURM
|
|
Group: Productivity/Clustering/Computing
|
|
Requires: slurm = %{version}
|
|
BuildRequires: pam-devel
|
|
|
|
%description pam_slurm
|
|
This module restricts access to compute nodes in a cluster where the Simple
|
|
Linux Utility for Resource Managment (SLURM) is in use. Access is granted
|
|
to root, any user with an SLURM-launched job currently running on the node,
|
|
or any user who has allocated resources on the node according to the SLURM.
|
|
|
|
%package lua
|
|
Summary: Lua API for SLURM
|
|
Group: Development/Languages/Other
|
|
Requires: slurm = %{version}
|
|
BuildRequires: lua-devel
|
|
|
|
%description lua
|
|
This package includes the Lua API to provide an interface to SLURM
|
|
through Lua.
|
|
|
|
%package node
|
|
Summary: Minimal slurm node
|
|
Group: Productivity/Clustering/Computing
|
|
Requires: slurm-config = %{version}
|
|
Requires: slurm-plugins = %{version}
|
|
Recommends: %{name}-munge
|
|
|
|
%description node
|
|
This package contains just the minmal code to run a compute node.
|
|
|
|
%package config
|
|
Summary: Config files and directories for slurm services
|
|
Group: Productivity/Clustering/Computing
|
|
|
|
%description config
|
|
This package contains the slurm config files necessary direcories
|
|
for the slurm daemons.
|
|
|
|
|
|
%prep
|
|
%setup -q -n %{name}-%{ver}
|
|
%patch0 -p1
|
|
%patch1 -p1
|
|
%patch2 -p1
|
|
|
|
%build
|
|
%configure --enable-shared \
|
|
--disable-static \
|
|
--without-rpath \
|
|
%{!?have_netloc:--without-netloc} \
|
|
--sysconfdir=%{_sysconfdir}/%{name}
|
|
make %{?_smp_mflags}
|
|
|
|
%install
|
|
%make_install
|
|
make install-contrib DESTDIR=%{buildroot} PERL_MM_PARAMS="INSTALLDIRS=vendor"
|
|
|
|
%if 0%{?with_systemd}
|
|
mkdir -p %{buildroot}%{_unitdir}
|
|
install -p -m644 etc/slurmd.service etc/slurmdbd.service etc/slurmctld.service %{buildroot}%{_unitdir}
|
|
ln -s /usr/sbin/service %{buildroot}%{_sbindir}/rcslurmd
|
|
ln -s /usr/sbin/service %{buildroot}%{_sbindir}/rcslurmdbd
|
|
ln -s /usr/sbin/service %{buildroot}%{_sbindir}/rcslurmctld
|
|
install -d -m 0755 %{buildroot}/%{_tmpfilesdir}/
|
|
cat <<-EOF > %{buildroot}/%{_tmpfilesdir}/%{name}.conf
|
|
# Create a directory with permissions 0700 owned by user slurm, group slurm
|
|
d /var/run/slurm 0700 slurm slurm
|
|
EOF
|
|
chmod 0644 %{buildroot}/%{_tmpfilesdir}/%{name}.conf
|
|
%else
|
|
install -D -m755 etc/init.d.slurm %{buildroot}%{_initrddir}/slurm
|
|
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
|
|
|
|
rm -f contribs/cray/opt_modulefiles_slurm
|
|
rm -f %{buildroot}%{_sysconfdir}/plugstack.conf.template
|
|
rm -f %{buildroot}%{_sysconfdir}/slurm.conf.template
|
|
rm -f %{buildroot}%{_sbindir}/capmc_suspend
|
|
rm -f %{buildroot}%{_sbindir}/capmc_resume
|
|
rm -f %{buildroot}%{_sbindir}/slurmconfgen.py
|
|
|
|
install -D -m644 etc/cgroup.conf.example %{buildroot}/%{_sysconfdir}/%{name}/cgroup.conf
|
|
install -D -m644 etc/cgroup_allowed_devices_file.conf.example %{buildroot}/%{_sysconfdir}/%{name}/cgroup_allowed_devices_file.conf
|
|
install -D -m644 etc/layouts.d.power.conf.example %{buildroot}/%{_sysconfdir}/%{name}/layouts.d/power.conf.example
|
|
install -D -m644 etc/layouts.d.power_cpufreq.conf.example %{buildroot}/%{_sysconfdir}/%{name}/layouts.d/power_cpufreq.conf.example
|
|
install -D -m644 etc/layouts.d.unit.conf.example %{buildroot}/%{_sysconfdir}/%{name}/layouts.d/unit.conf.example
|
|
install -D -m644 etc/slurm.conf.example %{buildroot}/%{_sysconfdir}/%{name}/slurm.conf%{?OHPC_BUILD:.example}
|
|
install -D -m755 etc/slurm.epilog.clean %{buildroot}%{_sysconfdir}/%{name}/slurm.epilog.clean
|
|
install -D -m644 etc/slurmdbd.conf.example %{buildroot}/%{_sysconfdir}/%{name}/slurmdbd.conf
|
|
install -D -m644 etc/slurmdbd.conf.example %{buildroot}%{_sysconfdir}/%{name}/slurmdbd.conf.example
|
|
install -D -m755 contribs/sjstat %{buildroot}%{_bindir}/sjstat
|
|
install -D -m755 contribs/sgather/sgather %{buildroot}%{_bindir}/sgather
|
|
|
|
%if 0%{?OHPC_BUILD}
|
|
# 6/16/15 karl.w.schulz@intel.com - do not package Slurm's version of libpmi with OpenHPC.
|
|
## rm -f %%{buildroot}/%%{_libdir}/libpmi*
|
|
## rm -f %%{buildroot}/%%{_libdir}/mpi_pmi2*
|
|
# 9/8/14 karl.w.schulz@intel.com - provide starting config file
|
|
head -n -2 %{buildroot}/%{_sysconfdir}/%{name}/slurm.conf.example | grep -v ReturnToService > %{buildroot}/%{_sysconfdir}/%{name}/slurm.conf
|
|
sed -i 's#\(StateSaveLocation=\).*#\1%_localstatedir/lib/slurm#' %{buildroot}/%{_sysconfdir}/%{name}/slurm.conf
|
|
sed -i 's#^\(SlurmdPidFile=\).*$#\1%{_localstatedir}/run/slurm/slurmd.pid#' %{buildroot}/%{_sysconfdir}/%{name}/slurm.conf
|
|
sed -i 's#^\(SlurmctldPidFile=\).*$#\1%{_localstatedir}/run/slurm/slurmctld.pid#' %{buildroot}/%{_sysconfdir}/%{name}/slurm.conf
|
|
sed -i 's#^\(SlurmdSpoolDir=\)/.*#\1%{_localstatedir}/spool/slurm#' %{buildroot}/%{_sysconfdir}/%{name}/slurm.conf
|
|
cat >>%{buildroot}/%{_sysconfdir}/%{name}/slurm.conf <<EOF
|
|
# SUSE default configuration
|
|
PropagateResourceLimitsExcept=MEMLOCK
|
|
Epilog=/etc/slurm/slurm.epilog.clean
|
|
NodeName=linux State=UNKNOWN
|
|
PartitionName=normal Nodes=linux Default=YES MaxTime=24:00:00 State=UP
|
|
EOF
|
|
# 9/17/14 karl.w.schulz@intel.com - Add option to drop VM cache during epilog
|
|
sed -i '/^# No other SLURM jobs,/i \\n# Drop clean caches (OpenHPC)\necho 3 > /proc/sys/vm/drop_caches\n\n#' %{buildroot}/%{_sysconfdir}/%{name}/slurm.epilog.clean
|
|
mkdir -p %{buildroot}/%_localstatedir/lib/slurm
|
|
sed -i -e "s@PIDFile=.*@PIDFile=%{_localstatedir}/run/slurm/slurmctld.pid@" %{buildroot}/%{_unitdir}/slurmctld.service
|
|
sed -i -e "s@PIDFile=.*@PIDFile=%{_localstatedir}/run/slurm/slurmd.pid@" %{buildroot}/%{_unitdir}/slurmd.service
|
|
%endif
|
|
|
|
# Delete unpackaged files:
|
|
test -s %{buildroot}/%{_perldir}/auto/Slurm/Slurm.bs ||
|
|
rm -f %{buildroot}/%{_perldir}/auto/Slurm/Slurm.bs
|
|
|
|
test -s %{buildroot}/%{_perldir}/auto/Slurmdb/Slurmdb.bs ||
|
|
rm -f %{buildroot}/%{_perldir}/auto/Slurmdb/Slurmdb.bs
|
|
|
|
rm -rf %{buildroot}/%{_libdir}/slurm/*.{a,la} \
|
|
%{buildroot}/%{_libdir}/*.la \
|
|
%{buildroot}/%_lib/security/*.la \
|
|
%{buildroot}/%{_mandir}/man5/bluegene*
|
|
|
|
rm -f %{buildroot}/%{_mandir}/man1/srun_cr* \
|
|
%{buildroot}/%{_bindir}/srun_cr \
|
|
%{buildroot}/%{_libexecdir}/slurm/cr_*
|
|
|
|
rm doc/html/shtml2html.py doc/html/Makefile*
|
|
|
|
rm -f %{buildroot}/%{perl_archlib}/perllocal.pod
|
|
rm -f %{buildroot}/%{perl_vendorarch}/auto/Slurm/.packlist
|
|
rm -f %{buildroot}/%{perl_vendorarch}/auto/Slurmdb/.packlist
|
|
|
|
# Build man pages that are generated directly by the tools
|
|
rm -f %{buildroot}/%{_mandir}/man1/sjobexitmod.1
|
|
%{buildroot}%{_bindir}/sjobexitmod --roff > %{buildroot}/%{_mandir}/man1/sjobexitmod.1
|
|
rm -f %{buildroot}/%{_mandir}/man1/sjstat.1
|
|
%{buildroot}%{_bindir}/sjstat --roff > %{buildroot}/%{_mandir}/man1/sjstat.1
|
|
|
|
# rpmlint reports wrong end of line for those files
|
|
sed -i 's/\r$//' %{buildroot}/%{_bindir}/qrerun
|
|
sed -i 's/\r$//' %{buildroot}/%{_bindir}/qalter
|
|
|
|
# avoid conflicts with other packages, make wrapper unique
|
|
mv %{buildroot}/%{_bindir}/mpiexec %{buildroot}/%{_bindir}/mpiexec.slurm
|
|
|
|
mkdir -p %{buildroot}/etc/ld.so.conf.d
|
|
echo '%{_libdir}
|
|
%{_libdir}/slurm' > %{buildroot}/etc/ld.so.conf.d/slurm.conf
|
|
chmod 644 %{buildroot}/etc/ld.so.conf.d/slurm.conf
|
|
|
|
# Make pkg-config file
|
|
mkdir -p %{buildroot}/%{_libdir}/pkgconfig
|
|
cat > %{buildroot}/%{_libdir}/pkgconfig/slurm.pc <<EOF
|
|
includedir=%{_prefix}/include
|
|
libdir=%{_libdir}
|
|
|
|
Cflags: -I\${includedir}
|
|
Libs: -L\${libdir} -lslurm
|
|
Description: Slurm API
|
|
Name: %{name}
|
|
Version: %{version}
|
|
EOF
|
|
|
|
%fdupes -s %{buildroot}
|
|
|
|
%pre
|
|
%if 0%{?with_systemd}
|
|
%service_add_pre slurmctld.service
|
|
%endif
|
|
|
|
%post
|
|
%if 0%{?with_systemd}
|
|
%service_add_post slurmctld.service
|
|
%else
|
|
%fillup_and_insserv slurm
|
|
%endif
|
|
|
|
%preun
|
|
%if 0%{?with_systemd}
|
|
%service_del_preun slurmctld.service
|
|
%endif
|
|
|
|
%postun
|
|
%if 0%{?with_systemd}
|
|
%service_del_postun slurmctld.service
|
|
%else
|
|
%insserv_cleanup
|
|
%endif
|
|
|
|
%if 0%{?with_systemd}
|
|
%pre slurmdbd
|
|
%service_add_pre slurmdbd.service
|
|
%endif
|
|
|
|
%post slurmdbd
|
|
%if 0%{?with_systemd}
|
|
%service_add_post slurmdbd.service
|
|
%else
|
|
%fillup_and_insserv slurmdbd
|
|
%endif
|
|
|
|
%preun slurmdbd
|
|
%if 0%{?with_systemd}
|
|
%service_del_preun slurmdbd.service
|
|
%else
|
|
%stop_on_removal slurmdbd
|
|
%endif
|
|
|
|
%postun slurmdbd
|
|
%if 0%{?with_systemd}
|
|
%service_del_postun slurmdbd.service
|
|
%else
|
|
%restart_on_update slurmdbd
|
|
%insserv_cleanup
|
|
%endif
|
|
|
|
%pre node
|
|
%if 0%{?with_systemd}
|
|
%service_add_pre slurmd.service
|
|
%endif
|
|
|
|
%post node
|
|
%if 0%{?with_systemd}
|
|
%service_add_post slurmd.service
|
|
%endif
|
|
|
|
%preun node
|
|
%if 0%{?with_systemd}
|
|
%service_del_preun slurmd.service
|
|
%else
|
|
%stop_on_removal slurmd
|
|
%endif
|
|
|
|
%postun node
|
|
%if 0%{?with_systemd}
|
|
%service_del_postun slurmd.service
|
|
%else
|
|
%restart_on_update slurmd
|
|
%insserv_cleanup
|
|
%endif
|
|
|
|
%pre config
|
|
%define slurmdir %{_sysconfdir}/slurm
|
|
%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
|
|
exit 0
|
|
|
|
%post config
|
|
%if 0%{?with_systemd}
|
|
%if 0%{?tmpfiles_create:1}
|
|
%tmpfiles_create slurm.conf
|
|
%else
|
|
systemd-tmpfiles --create slurm.conf
|
|
%endif
|
|
%endif
|
|
|
|
%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
|
|
|
|
%files
|
|
%defattr(-,root,root)
|
|
%doc AUTHORS NEWS RELEASE_NOTES DISCLAIMER COPYING
|
|
%doc doc/html
|
|
%{_bindir}/sacct
|
|
%{_bindir}/sacctmgr
|
|
%{_bindir}/salloc
|
|
%{_bindir}/sattach
|
|
%{_bindir}/sbatch
|
|
%{_bindir}/sbcast
|
|
%{_bindir}/scancel
|
|
%{_bindir}/scontrol
|
|
%{_bindir}/sdiag
|
|
%{_bindir}/sgather
|
|
%{_bindir}/sinfo
|
|
%{_bindir}/sjobexitmod
|
|
%{_bindir}/sprio
|
|
%{_bindir}/squeue
|
|
%{_bindir}/sreport
|
|
%{_bindir}/srun
|
|
%{_bindir}/smap
|
|
%{_bindir}/sshare
|
|
%{_bindir}/sstat
|
|
%{_bindir}/strigger
|
|
%{?have_netloc:%{_bindir}/netloc_to_topology}
|
|
%{_sbindir}/slurmctld
|
|
%{_mandir}/man1/sacct.1*
|
|
%{_mandir}/man1/sacctmgr.1*
|
|
%{_mandir}/man1/salloc.1*
|
|
%{_mandir}/man1/sattach.1*
|
|
%{_mandir}/man1/sbatch.1*
|
|
%{_mandir}/man1/sbcast.1*
|
|
%{_mandir}/man1/scancel.1*
|
|
%{_mandir}/man1/scontrol.1*
|
|
%{_mandir}/man1/sdiag.1.*
|
|
%{_mandir}/man1/sgather.1.*
|
|
%{_mandir}/man1/sinfo.1*
|
|
%{_mandir}/man1/slurm.1*
|
|
%{_mandir}/man1/smap.1*
|
|
%{_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*
|
|
%{_mandir}/man1/sjobexitmod.1.*
|
|
%{_mandir}/man1/sjstat.1.*
|
|
%{_mandir}/man5/acct_gather.conf.*
|
|
%{_mandir}/man5/burst_buffer.conf.*
|
|
%{_mandir}/man5/ext_sensors.conf.*
|
|
%{_mandir}/man5/slurm.*
|
|
%{_mandir}/man5/cgroup.*
|
|
%{_mandir}/man5/cray.*
|
|
%{_mandir}/man5/gres.*
|
|
%{_mandir}/man5/nonstop.conf.5.*
|
|
%{_mandir}/man5/topology.*
|
|
%{_mandir}/man5/knl.conf.5.*
|
|
%{_mandir}/man8/slurmctld.*
|
|
%{_mandir}/man8/spank*
|
|
%dir %{_libdir}/slurm/src
|
|
%if 0%{?with_systemd}
|
|
%{_unitdir}/slurmctld.service
|
|
%{_sbindir}/rcslurmctld
|
|
%endif
|
|
|
|
%files openlava
|
|
%defattr(-,root,root)
|
|
%{_bindir}/bjobs
|
|
%{_bindir}/bkill
|
|
%{_bindir}/bsub
|
|
%{_bindir}/lsid
|
|
|
|
%files seff
|
|
%defattr(-,root,root)
|
|
%{_bindir}/seff
|
|
%{_bindir}/smail
|
|
|
|
%files doc
|
|
%defattr(-,root,root)
|
|
%dir %{_datadir}/doc/%{name}-%{version}
|
|
%{_datadir}/doc/%{name}-%{version}/*
|
|
|
|
%files -n %{libslurm}
|
|
%defattr(-,root,root)
|
|
%{_libdir}/libslurm*.so.%{so_version}*
|
|
|
|
%files -n libpmi%{pmi_so}
|
|
%defattr(-,root,root)
|
|
%{_libdir}/libpmi*.so.%{pmi_so}*
|
|
|
|
%files devel
|
|
%defattr(-,root,root)
|
|
%{_prefix}/include/slurm
|
|
%{_libdir}/libpmi.so
|
|
%{_libdir}/libpmi2.so
|
|
%{_libdir}/libslurm.so
|
|
%{_libdir}/libslurmdb.so
|
|
%{_libdir}/slurm/src/*
|
|
%{_mandir}/man3/slurm_*
|
|
%{_libdir}/pkgconfig/slurm.pc
|
|
|
|
%files sview
|
|
%defattr(-,root,root)
|
|
%{_bindir}/sview
|
|
%{_mandir}/man1/sview.1*
|
|
|
|
%files auth-none
|
|
%defattr(-,root,root)
|
|
%{_libdir}/slurm/auth_none.so
|
|
|
|
%files munge
|
|
%defattr(-,root,root)
|
|
%{_libdir}/slurm/auth_munge.so
|
|
%{_libdir}/slurm/crypto_munge.so
|
|
|
|
%files -n perl-slurm
|
|
%defattr(-,root,root)
|
|
%{perl_vendorarch}/Slurm.pm
|
|
%{perl_vendorarch}/Slurm
|
|
%{perl_vendorarch}/auto/Slurm
|
|
%{perl_vendorarch}/Slurmdb.pm
|
|
%{perl_vendorarch}/auto/Slurmdb
|
|
%{_mandir}/man3/Slurm*.3pm.*
|
|
|
|
%files slurmdbd
|
|
%defattr(-,root,root)
|
|
%{_sbindir}/slurmdbd
|
|
%{_mandir}/man5/slurmdbd.*
|
|
%{_mandir}/man8/slurmdbd.*
|
|
%config(noreplace) %{_sysconfdir}/%{name}/slurmdbd.conf
|
|
%{_sysconfdir}/%{name}/slurmdbd.conf.example
|
|
%if 0%{?with_systemd}
|
|
%{_unitdir}/slurmdbd.service
|
|
%else
|
|
%{_initrddir}/slurmdbd
|
|
%endif
|
|
%{_sbindir}/rcslurmdbd
|
|
|
|
%files sql
|
|
%defattr(-,root,root)
|
|
%dir %{_libdir}/slurm
|
|
%{_libdir}/slurm/accounting_storage_mysql.so
|
|
%{_libdir}/slurm/jobcomp_mysql.so
|
|
|
|
%files plugins
|
|
%defattr(-,root,root)
|
|
%config %{_sysconfdir}/ld.so.conf.d/slurm.conf
|
|
%dir %{_libdir}/slurm
|
|
%{_libdir}/slurm/libslurmfull.so
|
|
%{_libdir}/slurm/accounting_storage_filetxt.so
|
|
%{_libdir}/slurm/accounting_storage_none.so
|
|
%{_libdir}/slurm/accounting_storage_slurmdbd.so
|
|
%{_libdir}/slurm/acct_gather_energy_cray.so
|
|
%{_libdir}/slurm/acct_gather_energy_ibmaem.so
|
|
%{_libdir}/slurm/acct_gather_energy_none.so
|
|
%{_libdir}/slurm/acct_gather_energy_rapl.so
|
|
%{_libdir}/slurm/acct_gather_filesystem_lustre.so
|
|
%{_libdir}/slurm/acct_gather_filesystem_none.so
|
|
%{_libdir}/slurm/acct_gather_interconnect_none.so
|
|
%{_libdir}/slurm/acct_gather_profile_none.so
|
|
%{_libdir}/slurm/burst_buffer_generic.so
|
|
%{_libdir}/slurm/checkpoint_none.so
|
|
%{_libdir}/slurm/checkpoint_ompi.so
|
|
%{_libdir}/slurm/core_spec_cray.so
|
|
%{_libdir}/slurm/core_spec_none.so
|
|
%{_libdir}/slurm/crypto_openssl.so
|
|
%{_libdir}/slurm/ext_sensors_none.so
|
|
%{_libdir}/slurm/gres_gpu.so
|
|
%{_libdir}/slurm/gres_mic.so
|
|
%{_libdir}/slurm/gres_nic.so
|
|
%{_libdir}/slurm/jobacct_gather_cgroup.so
|
|
%{_libdir}/slurm/jobacct_gather_linux.so
|
|
%{_libdir}/slurm/jobacct_gather_none.so
|
|
%{_libdir}/slurm/jobcomp_filetxt.so
|
|
%{_libdir}/slurm/jobcomp_none.so
|
|
%{_libdir}/slurm/jobcomp_script.so
|
|
%{_libdir}/slurm/job_container_cncu.so
|
|
%{_libdir}/slurm/job_container_none.so
|
|
%{_libdir}/slurm/job_submit_all_partitions.so
|
|
%{_libdir}/slurm/job_submit_cray.so
|
|
%{_libdir}/slurm/job_submit_defaults.so
|
|
%{_libdir}/slurm/job_submit_logging.so
|
|
%{_libdir}/slurm/job_submit_partition.so
|
|
%{_libdir}/slurm/job_submit_require_timelimit.so
|
|
%{_libdir}/slurm/job_submit_throttle.so
|
|
%{_libdir}/slurm/launch_slurm.so
|
|
%{_libdir}/slurm/layouts_power_cpufreq.so
|
|
%{_libdir}/slurm/layouts_power_default.so
|
|
%{_libdir}/slurm/layouts_unit_default.so
|
|
%{_libdir}/slurm/mcs_account.so
|
|
%{_libdir}/slurm/mcs_group.so
|
|
%{_libdir}/slurm/mcs_none.so
|
|
%{_libdir}/slurm/mcs_user.so
|
|
%{_libdir}/slurm/mpi_none.so
|
|
%{_libdir}/slurm/mpi_openmpi.so
|
|
%{_libdir}/slurm/mpi_pmi2.so
|
|
%{_libdir}/slurm/power_none.so
|
|
%{_libdir}/slurm/preempt_job_prio.so
|
|
%{_libdir}/slurm/preempt_none.so
|
|
%{_libdir}/slurm/preempt_partition_prio.so
|
|
%{_libdir}/slurm/preempt_qos.so
|
|
%{_libdir}/slurm/priority_basic.so
|
|
%{_libdir}/slurm/priority_multifactor.so
|
|
%{_libdir}/slurm/proctrack_cgroup.so
|
|
%{_libdir}/slurm/proctrack_linuxproc.so
|
|
%{_libdir}/slurm/proctrack_pgid.so
|
|
%{_libdir}/slurm/route_default.so
|
|
%{_libdir}/slurm/route_topology.so
|
|
%{_libdir}/slurm/sched_backfill.so
|
|
%{_libdir}/slurm/sched_builtin.so
|
|
%{_libdir}/slurm/sched_hold.so
|
|
%{_libdir}/slurm/select_alps.so
|
|
%{_libdir}/slurm/select_bluegene.so
|
|
%{_libdir}/slurm/select_cons_res.so
|
|
%{_libdir}/slurm/select_cray.so
|
|
%{_libdir}/slurm/select_linear.so
|
|
%{_libdir}/slurm/select_serial.so
|
|
%{_libdir}/slurm/slurmctld_nonstop.so
|
|
%{_libdir}/slurm/switch_cray.so
|
|
%{_libdir}/slurm/switch_generic.so
|
|
%{_libdir}/slurm/switch_none.so
|
|
%{_libdir}/slurm/task_affinity.so
|
|
%{_libdir}/slurm/task_cgroup.so
|
|
%{_libdir}/slurm/task_cray.so
|
|
%{_libdir}/slurm/task_none.so
|
|
%{_libdir}/slurm/topology_3d_torus.so
|
|
%{_libdir}/slurm/topology_hypercube.so
|
|
%{_libdir}/slurm/topology_node_rank.so
|
|
%{_libdir}/slurm/topology_none.so
|
|
%{_libdir}/slurm/topology_tree.so
|
|
%if 0%{?suse_version} > 1310
|
|
%{_libdir}/slurm/acct_gather_interconnect_ofed.so
|
|
%endif
|
|
%if 0%{?suse_version} > 1140
|
|
%ifarch %{ix86} x86_64
|
|
%{_libdir}/slurm/acct_gather_energy_ipmi.so
|
|
%endif
|
|
%endif
|
|
%{_libdir}/slurm/node_features_knl_generic.so
|
|
|
|
%files lua
|
|
%defattr(-,root,root)
|
|
%{_libdir}/slurm/job_submit_lua.so
|
|
%{_libdir}/slurm/proctrack_lua.so
|
|
|
|
%files torque
|
|
%defattr(-,root,root)
|
|
%{_bindir}/pbsnodes
|
|
%{_bindir}/qalter
|
|
%{_bindir}/qdel
|
|
%{_bindir}/qhold
|
|
%{_bindir}/qrls
|
|
%{_bindir}/qrerun
|
|
%{_bindir}/qstat
|
|
%{_bindir}/qsub
|
|
%{_bindir}/mpiexec.slurm
|
|
%{_bindir}/generate_pbs_nodefile
|
|
%{_libdir}/slurm/job_submit_pbs.so
|
|
%{_libdir}/slurm/spank_pbs.so
|
|
|
|
%files sjstat
|
|
%defattr(-,root,root)
|
|
%{_bindir}/sjstat
|
|
|
|
%files pam_slurm
|
|
%defattr(-,root,root)
|
|
/%_lib/security/pam_slurm.so
|
|
/%_lib/security/pam_slurm_adopt.so
|
|
|
|
%files node
|
|
%{_sbindir}/slurmd
|
|
%{_sbindir}/slurmstepd
|
|
%{_mandir}/man8/slurmd.*
|
|
%{_mandir}/man8/slurmstepd*
|
|
%if 0%{?with_systemd}
|
|
%{_sbindir}/rcslurmd
|
|
%{_unitdir}/slurmd.service
|
|
%else
|
|
%{_initrddir}/slurm
|
|
%{_sbindir}/rcslurm
|
|
%endif
|
|
|
|
%files config
|
|
%dir %{_sysconfdir}/%{name}
|
|
%dir %{_sysconfdir}/%{name}/layouts.d
|
|
%config(noreplace) %{_sysconfdir}/%{name}/slurm.conf
|
|
%{?OHPC_BUILD:%config %{_sysconfdir}/%{name}/slurm.conf.example}
|
|
%config(noreplace) %{_sysconfdir}/%{name}/cgroup.conf
|
|
%config(noreplace) %{_sysconfdir}/%{name}/cgroup_allowed_devices_file.conf
|
|
%config(noreplace) %{_sysconfdir}/%{name}/slurm.epilog.clean
|
|
%config(noreplace) %{_sysconfdir}/%{name}/layouts.d/power.conf.example
|
|
%config(noreplace) %{_sysconfdir}/%{name}/layouts.d/power_cpufreq.conf.example
|
|
%config(noreplace) %{_sysconfdir}/%{name}/layouts.d/unit.conf.example
|
|
%{?OHPC_BUILD:%attr(0755, %slurm_u, %slurm_g) %_localstatedir/lib/slurm}
|
|
%{?with_systemd:%{_tmpfilesdir}/%{name}.conf}
|
|
%dir %{_var}/spool/slurm
|
|
|
|
%changelog
|