SHA256
1
0
forked from pool/slurm
slurm/slurm.spec

871 lines
26 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 31
%define ver 17.02.9
# 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
Patch0: slurm-2.4.4-rpath.patch
Patch1: slurm-2.4.4-init.patch
Patch2: slurmd-Fix-slurmd-for-new-API-in-hwloc-2.0.patch
Patch3: plugins-cgroup-Fix-slurmd-for-new-API-in-hwloc-2.0.patch
Patch4: pam_slurm-Initialize-arrays-and-pass-sizes.patch
Patch5: slurmctld-service-var-run-path.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
Requires: %{libslurm} = %version
%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
%patch3 -p1
%patch4 -p1
%patch5 -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}
# Fix up User/Group of slurmd/slurmctld service.
for i in slurmd.service slurmctld.service;
do
grep -Eq "^Group=" %{buildroot}%{_unitdir}/$i && \
sed-i -e "s/Group=.*/User=%slurm_g/" %{buildroot}%{_unitdir}/$i || \
sed -i -e "/\[Service\]/aGroup=%slurm_g" %{buildroot}%{_unitdir}/$i
grep -Eq "^User=" %{buildroot}%{_unitdir}/$i && \
sed -i -e "s/User=.*/User=%slurm_u/" %{buildroot}%{_unitdir}/$i || \
sed -i -e "/\[Service\]/aUser=%slurm_u" %{buildroot}%{_unitdir}/$i
done
%if "%slurm_u" != "root"
%define slurmlogdir %{_localstatedir}/log/%{name}
install -d -m 755 %{buildroot}%{slurmlogdir}
%endif
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_u %slurm_g
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
%{?slurmlogdir:sed -i 's#^\(SlurmctldLogFile=\)/.*#\1%{slurmlogdir}#' %{buildroot}/%{_sysconfdir}/%{name}/slurm.conf}
%{?slurmlogdir:sed -i 's#^\(SlurmLogFile=\)/.*#\1%{slurmlogdir}#' %{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
%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%{?sle_version} >= 120200
%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}
%config %{_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)
%{_sysconfdir}/ld.so.conf.d/slurm.conf
%dir %{_libdir}/slurm
%{_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_infiniband_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_lam.so
%{_libdir}/slurm/mpi_mpich1_p4.so
%{_libdir}/slurm/mpi_mpich1_shmem.so
%{_libdir}/slurm/mpi_mpichgm.so
%{_libdir}/slurm/mpi_mpichmx.so
%{_libdir}/slurm/mpi_mvapich.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_infiniband_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}
%{?slurmlogdir:%dir %attr(-,%conman_u,%conman_g) %{slurmlogdir}}
%{?with_systemd:%{_tmpfilesdir}/%{name}.conf}
%dir %{_var}/spool/slurm
%changelog