forked from pool/slurm
Egbert Eich
903545a8b9
OBS-URL: https://build.opensuse.org/package/show/network:cluster/slurm?expand=0&rev=42
871 lines
26 KiB
RPMSpec
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
|