From e8275267544d2afebccf23077cdb55d208af5a12 Mon Sep 17 00:00:00 2001 From: Philip Kovacs Date: Wed, 6 Jan 2021 11:00:59 -0500 Subject: [PATCH 01/12] Release of 20.11.2 --- .gitignore | 2 + README.md | 3 - slurm-128x128.png | Bin 0 -> 5098 bytes slurm-setuser.in | 229 ++++++++ slurm-sview.desktop | 10 + slurm.abignore | 10 + slurm.conf | 159 ++++++ slurm.rpmlintrc | 8 + slurm.spec | 877 +++++++++++++++++++++++++++++++ slurm_html_doc_path.patch | 9 + slurm_libslurmfull_version.patch | 37 ++ slurm_perlapi_rpaths.patch | 26 + slurm_pmix_soname.patch | 35 ++ slurm_service_files.patch | 39 ++ slurm_to_python3.patch | 20 + slurm_without_cray.patch | 95 ++++ slurmdbd.conf | 44 ++ sources | 1 + 18 files changed, 1601 insertions(+), 3 deletions(-) create mode 100644 .gitignore delete mode 100644 README.md create mode 100644 slurm-128x128.png create mode 100644 slurm-setuser.in create mode 100644 slurm-sview.desktop create mode 100644 slurm.abignore create mode 100644 slurm.conf create mode 100644 slurm.rpmlintrc create mode 100644 slurm.spec create mode 100644 slurm_html_doc_path.patch create mode 100644 slurm_libslurmfull_version.patch create mode 100644 slurm_perlapi_rpaths.patch create mode 100644 slurm_pmix_soname.patch create mode 100644 slurm_service_files.patch create mode 100644 slurm_to_python3.patch create mode 100644 slurm_without_cray.patch create mode 100644 slurmdbd.conf create mode 100644 sources diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5bd3967 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/slurm-*.tar.bz2 +/slurm-*.src.rpm diff --git a/README.md b/README.md deleted file mode 100644 index 2d59d93..0000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# slurm - -The slurm package \ No newline at end of file diff --git a/slurm-128x128.png b/slurm-128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..e8a5104667994489d4275893fb6bdc1736796d3d GIT binary patch literal 5098 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 M07*qoM6N<$f)e|!wg3PC literal 0 HcmV?d00001 diff --git a/slurm-setuser.in b/slurm-setuser.in new file mode 100644 index 0000000..ae7e6c2 --- /dev/null +++ b/slurm-setuser.in @@ -0,0 +1,229 @@ +#!/bin/bash +# +# Copyright (c) 2017, Philip Kovacs +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +prog=`basename $0` +user=root +group=root +yesno=no + +red='\033[0;31m' +green='\033[0;32m' +nc='\033[0m' +pass="${green}[*]${nc}" +fail="${red}[!]${nc}" +ask="[?]" + +# the rpm spec configures these directory variables +dir_conf="%{_sysconfdir}/%{name}" +dir_log="%{_var}/log/%{name}" +dir_run="%{_rundir}/%{name}" +dir_spool="%{_var}/spool/%{name}" +dir_tmpfiles_d="%{_tmpfilesdir}" + +file_slurm_conf="${dir_conf}/slurm.conf" +file_slurmdbd_conf="${dir_conf}/slurmdbd.conf" +file_tmpfiles_d_conf="${dir_tmpfiles_d}/slurm.conf" + +function usage () +{ + echo -e "Sets the slurm installation on this node to run as the specified user and group\n" + echo "Usage: $prog [-u ] [-g ] [-h] [-y]" + echo " -u : the slurm file owner and SlurmUser ($user)" + echo " -g : the slurm file group ($group)" + echo " -y : answer yes to all questions ($yesno)" + echo " -h : print help" +} + +function answer () +{ + while true + do + if [ "${yesno}" = "yes" ]; then + echo -e "${ask} $1 [${yesno}]" + __answer="yes" + break; + fi + + echo -e -n "${ask} " + read -e -p "$1 [${yesno}] " yn + case $yn in + "") __answer=$yesno + break;; + [yY]*) __answer="yes" + break;; + [nN]*) __answer="no" + break;; + *) + echo "Please answer yes or no";; + esac + done +} + +# +# Parse options +# +while getopts "u:g:yh" opt +do + case "$opt" in + h) + usage + exit 2;; + u) + user=$OPTARG;; + g) + group=$OPTARG;; + y) + yesno=yes;; + *) + echo "" + usage + exit 2;; + esac +done + +# +# Run this script only as root +# +if [ $UID -eq 0 ]; then + echo -e "${pass} running as root... good" +else + echo -e "${fail} $prog must be run as root." + exit 1 +fi + +# +# Validate the user and group +# +valid_user="`getent passwd $user || :`" +if [ -n "$valid_user" ]; then + echo -e "${pass} found user $user... good" +else + echo -e "${fail} the specified user was not found... ${user}" + exit 2 +fi +valid_group="`getent group $group || :`" +if [ -n "$valid_group" ]; then + echo -e "${pass} found group $group... good" +else + echo -e "${fail} the specified group was not found... ${group}" + exit 2 +fi + +# +# Slurm services must not be running +# +slurmctld_running_pid="`ps -e | grep slurmctld | grep -v grep | awk '{print $1}'`" +if [ -z "$slurmctld_running_pid" ]; then + echo -e "${pass} slurmctld is not running... good" +else + echo -e "${fail} slurmctld is running... stop it with [systemctl stop slurmctld]" + exit 2 +fi +slurmd_running_pid="`ps -e | grep slurmd | grep -v grep | awk '{print $1}'`" +if [ -z "$slurmd_running_pid" ]; then + echo -e "${pass} slurmd is not running... good" +else + echo -e "${fail} slurmd is running... stop it with [systemctl stop slurmd]" + exit 2 +fi +slurmdbd_running_pid="`ps -e | grep slurmdbd | grep -v grep | awk '{print $1}'`" +if [ -z "$slurmdbd_running_pid" ]; then + echo -e "${pass} slurmdbd is not running... good" +else + echo -e "${fail} slurmdbd is running... stop it with [systemctl stop slurmdbd]" + exit 2 +fi + +# +# Update SlurmUser in the slurm configs +# +for file in "$file_slurm_conf" "$file_slurmdbd_conf" +do + if [ -f "$file" ]; then + answer "update SlurmUser in $file ?" + if [ "$__answer" = "yes" ]; then + sed -i "s|^SlurmUser=.*|SlurmUser=${user}|g" $file + if [ $? -eq 0 ]; then + echo -e "${pass} $file updated successfully" + else + echo -e "${fail} error updating $file" + exit 1 + fi + fi + fi +done + +# +# Update ownership of slurm directories that must be owned by the slurm user +# +for dir in "$dir_log" "$dir_run" "$dir_spool" "$dir_spool/ctld" +do + if [ -d "$dir" ]; then + answer "update ownership of $dir ?" + if [ "$__answer" = "yes" ]; then + chown ${user}:${group} $dir + if [ $? -eq 0 ]; then + echo -e "${pass} $dir updated successfully" + else + echo -e "${fail} error updating $dir" + exit 1 + fi + fi + fi +done + +# +# Update ownership of slurmctld spool files which are owned by the slurm user +# +if [ -d "${dir_spool}/ctld" ]; then + answer "update ownership of files in ${dir_spool}/ctld ?" + if [ "$__answer" = "yes" ]; then + if [ $? -eq 0 ]; then + find ${dir_spool}/ctld -mindepth 1 -exec chown ${user}:${group} {} \; + echo -e "${pass} ${dir_spool}/ctld files updated successfully" + else + echo -e "${fail} error updating ${dir_spool}/ctld files" + exit 1 + fi + fi +fi + +# +# Update the tmpfiles.d config file to the new slurm user +# +if [ -f "$file_tmpfiles_d_conf" ]; then + answer "update tmpfiles.d config $file_tmpfiles_d_conf ?" + if [ "$__answer" = "yes" ]; then + sed -i "s|0755 \(.*\) -$|0755 ${user} ${group} -|g" $file_tmpfiles_d_conf + if [ $? -eq 0 ]; then + echo -e "${pass} $file_tmpfiles_d_conf updated successfully" + else + echo -e "${fail} error updating $file_tmpfiles_d_conf" + exit 1 + fi + fi +fi + +exit 0 diff --git a/slurm-sview.desktop b/slurm-sview.desktop new file mode 100644 index 0000000..469bb9d --- /dev/null +++ b/slurm-sview.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=Slurm sview +Name[en]=Slurm sview +Comment=Slurm sview gui to view and modify slurm state +Comment[en]=Slurm sview gui to view and modify slurm state +Exec=sview +Icon=slurm +Terminal=false +Type=Application +Categories=GTK;Science;ParallelComputing;ComputerScience diff --git a/slurm.abignore b/slurm.abignore new file mode 100644 index 0000000..23bb574 --- /dev/null +++ b/slurm.abignore @@ -0,0 +1,10 @@ +[suppress_file] +# suppress abi check for anything not in /usr/lib or /usr/lib64 +filename_not_regexp = (/usr/lib/.*|/usr/lib64/.*) + +# suppress abi check for the slurm plugins +filename_regexp = (/usr/lib/slurm/.*|/usr/lib64/slurm/.*) + +[suppress_type] +# suppress abi check for the slurm internal library +soname_regexp = libslurmfull.* diff --git a/slurm.conf b/slurm.conf new file mode 100644 index 0000000..505b5f2 --- /dev/null +++ b/slurm.conf @@ -0,0 +1,159 @@ +# +# See the slurm.conf man page for more information. +# +ControlMachine=localhost +ControlAddr=127.0.0.1 +#BackupController= +#BackupAddr= +# +AuthType=auth/munge +#CheckpointType=checkpoint/none +CryptoType=crypto/munge +#DisableRootJobs=NO +#EnforcePartLimits=NO +#Epilog= +#EpilogSlurmctld= +#FirstJobId=1 +#MaxJobId=999999 +#GresTypes= +#GroupUpdateForce=0 +#GroupUpdateTime=600 +#JobCheckpointDir=/var/slurm/checkpoint +#JobCredentialPrivateKey= +#JobCredentialPublicCertificate= +#JobFileAppend=0 +#JobRequeue=1 +#JobSubmitPlugins= +#KillOnBadExit=0 +#LaunchType=launch/slurm +#Licenses=foo*4,bar +#MailProg=/bin/true +#MaxJobCount=5000 +#MaxStepCount=40000 +#MaxTasksPerNode=128 +MpiDefault=pmix +#MpiParams=ports=#-# +#PluginDir= +#PlugStackConfig= +#PrivateData=jobs +ProctrackType=proctrack/cgroup +#Prolog= +#PrologFlags= +#PrologSlurmctld= +#PropagatePrioProcess=0 +#PropagateResourceLimits= +#PropagateResourceLimitsExcept= +#RebootProgram= +ReturnToService=1 +#SallocDefaultCommand= +SlurmctldPidFile=/var/run/slurm/slurmctld.pid +SlurmctldPort=6817 +SlurmdPidFile=/var/run/slurm/slurmd.pid +SlurmdPort=6818 +SlurmdSpoolDir=/var/spool/slurm/d +SlurmUser=root +#SlurmdUser=root +#SrunEpilog= +#SrunProlog= +StateSaveLocation=/var/spool/slurm/ctld +SwitchType=switch/none +#TaskEpilog= +TaskPlugin=task/none +#TaskPluginParam= +#TaskProlog= +#TopologyPlugin=topology/tree +#TmpFS=/tmp +#TrackWCKey=no +#TreeWidth= +#UnkillableStepProgram= +#UsePAM=0 +# +# +# TIMERS +#BatchStartTimeout=10 +#CompleteWait=0 +#EpilogMsgTime=2000 +#GetEnvTimeout=2 +#HealthCheckInterval=0 +#HealthCheckProgram= +InactiveLimit=0 +KillWait=30 +#MessageTimeout=10 +#ResvOverRun=0 +MinJobAge=300 +#OverTimeLimit=0 +SlurmctldTimeout=120 +SlurmdTimeout=300 +#UnkillableStepTimeout=60 +#VSizeFactor=0 +Waittime=0 +# +# +# SCHEDULING +#DefMemPerCPU=0 +#FastSchedule=1 +#MaxMemPerCPU=0 +#SchedulerTimeSlice=30 +SchedulerType=sched/backfill +SelectType=select/linear +#SelectTypeParameters= +# +# +# JOB PRIORITY +#PriorityFlags= +#PriorityType=priority/basic +#PriorityDecayHalfLife= +#PriorityCalcPeriod= +#PriorityFavorSmall= +#PriorityMaxAge= +#PriorityUsageResetPeriod= +#PriorityWeightAge= +#PriorityWeightFairshare= +#PriorityWeightJobSize= +#PriorityWeightPartition= +#PriorityWeightQOS= +# +# +# LOGGING AND ACCOUNTING +#AccountingStorageEnforce=0 +#AccountingStorageHost= +#AccountingStorageLoc= +#AccountingStoragePass= +#AccountingStoragePort= +AccountingStorageType=accounting_storage/none +#AccountingStorageUser= +AccountingStoreJobComment=YES +ClusterName=cluster +#DebugFlags= +#JobCompHost= +#JobCompLoc= +#JobCompPass= +#JobCompPort= +JobCompType=jobcomp/none +#JobCompUser= +#JobContainerType=job_container/none +JobAcctGatherFrequency=30 +JobAcctGatherType=jobacct_gather/none +SlurmctldDebug=3 +#SlurmctldLogFile= +SlurmdDebug=3 +#SlurmdLogFile= +#SlurmSchedLogFile= +#SlurmSchedLogLevel= +# +# +# POWER SAVE SUPPORT FOR IDLE NODES (optional) +#SuspendProgram= +#ResumeProgram= +#SuspendTimeout= +#ResumeTimeout= +#ResumeRate= +#SuspendExcNodes= +#SuspendExcParts= +#SuspendRate= +#SuspendTime= +# +# +# COMPUTE NODES +NodeName=localhost CPUs=1 State=UNKNOWN +PartitionName=debug Nodes=localhost Default=YES MaxTime=INFINITE State=UP diff --git a/slurm.rpmlintrc b/slurm.rpmlintrc new file mode 100644 index 0000000..24fde8a --- /dev/null +++ b/slurm.rpmlintrc @@ -0,0 +1,8 @@ +addFilter("E: shared-lib-without-dependency-information") +addFilter("E: missing-dependency-to-logrotate") +addFilter("W: manual-page-warning") +addFilter("W: no-documentation") +addFilter("W: no-manual-page-for-binary") +addFilter("W: non-conffile-in-etc") +addFilter("W: shared-lib-calls-exit") +addFilter("W: spelling-error") diff --git a/slurm.spec b/slurm.spec new file mode 100644 index 0000000..721e9a9 --- /dev/null +++ b/slurm.spec @@ -0,0 +1,877 @@ +# Upstream tarballs use an additional release number +%global ups_rel 1 + +%if "%{ups_rel}" == "1" +%global name_version %{name}-%{version} +%else +%global name_version %{name}-%{version}-%{ups_rel} +%endif + +Name: slurm +Version: 20.11.2 +Release: 1%{?dist} +Summary: Simple Linux Utility for Resource Management +License: GPLv2 and BSD +URL: https://slurm.schedmd.com/ +Source0: http://www.schedmd.com/download/latest/%{name_version}.tar.bz2 +Source1: slurm.conf +Source2: slurmdbd.conf +Source3: slurm-sview.desktop +Source4: slurm-128x128.png +Source5: slurm-setuser.in + +# Upstream bug #4449: release-style versioning of libslurmfull +Patch0: slurm_libslurmfull_version.patch + +# Build-related patches +Patch10: slurm_perlapi_rpaths.patch +Patch11: slurm_html_doc_path.patch +Patch12: slurm_without_cray.patch + +# Fedora-related patches +Patch20: slurm_pmix_soname.patch +Patch21: slurm_to_python3.patch + +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: desktop-file-utils +BuildRequires: gcc +BuildRequires: perl-devel +BuildRequires: perl-ExtUtils-MakeMaker +BuildRequires: perl-interpreter +BuildRequires: perl-macros +BuildRequires: perl-podlators +BuildRequires: pkgconf +BuildRequires: pkgconfig(check) +BuildRequires: pkgconfig(lua) +BuildRequires: python3 +BuildRequires: systemd + +BuildRequires: freeipmi-devel +BuildRequires: gtk2-devel +BuildRequires: hdf5-devel +BuildRequires: hwloc-devel +BuildRequires: libcurl-devel +BuildRequires: libssh2-devel +BuildRequires: lz4-devel +BuildRequires: mariadb-devel +BuildRequires: munge-devel +BuildRequires: numactl-devel +BuildRequires: pam-devel +BuildRequires: pmix-devel +BuildRequires: rdma-core-devel +BuildRequires: readline-devel +BuildRequires: rrdtool-devel +BuildRequires: zlib-devel + +# exclude upstream-deprecated 32-bit architectures +ExcludeArch: armv7hl +ExcludeArch: i686 + +Requires: munge +Requires: pmix +%{?systemd_requires} + +%description +Slurm is an open source, fault-tolerant, and highly scalable +cluster management and job scheduling system for Linux clusters. +Components include machine status, partition management, +job management, scheduling and accounting modules. + +# ------------- +# Base Packages +# ------------- + +%package devel +Summary: Development package for Slurm +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +%description devel +Development package for Slurm. This package includes the header files +and libraries for the Slurm API. + +%package doc +Summary: Slurm documentation +%description doc +Documentation package for Slurm. Includes documentation and +html-based configuration tools for Slurm. + +%package gui +Summary: Slurm gui and visual tools +Requires: %{name}%{?_isa} = %{version}-%{release} +%description gui +This package contains the Slurm visual tool sview and +its respective man pages. + +%package libs +Summary: Slurm shared libraries +%description libs +Slurm shared libraries. + +%package pmi +Summary: The %{name} implementation of libpmi and libpmi2 +Requires: %{name}%{?_isa} = %{version}-%{release} +Conflicts: pmix-pmi +%description pmi +The %{name}-pmi package contains the %{name} implementation of +the libpmi and libpmi2 libraries. + +%package pmi-devel +Summary: Development files for %{name}-pmi +Requires: %{name}-pmi%{?_isa} = %{version}-%{release} +Conflicts: pmix-pmi-devel +%description pmi-devel +The %{name}-pmi-devel package contains the development files for +the libpmi and libpmi2 libraries. + +%package rrdtool +Summary: Slurm rrdtool external sensor plugin +Requires: %{name}%{?_isa} = %{version}-%{release} +%description rrdtool +Slurm external sensor plugin for rrdtool. This package is separated from +the base plugins package due to gui dependencies which are unneeded if not +using this plugin. + +%package slurmctld +Summary: Slurm controller daemon +Requires: %{name}%{?_isa} = %{version}-%{release} +%description slurmctld +Slurm controller daemon. Used to manage the job queue, schedule jobs, +and dispatch RPC messages to the slurmd processon the compute nodes +to launch jobs. + +%package slurmd +Summary: Slurm compute node daemon +Requires: %{name}%{?_isa} = %{version}-%{release} +%description slurmd +Slurm compute node daemon. Used to launch jobs on compute nodes + +%package slurmdbd +Summary: Slurm database daemon +Requires: %{name}%{?_isa} = %{version}-%{release} +%description slurmdbd +Slurm database daemon. Used to accept and process database RPCs and upload +database changes to slurmctld daemons on each cluster. + +# ----------------- +# Contribs Packages +# ----------------- + +%package contribs +Summary: Perl tools to print Slurm job state information +Requires: %{name}-perlapi%{?_isa} = %{version}-%{release} +%description contribs +Slurm contribution package which includes the programs seff, +sjobexitmod, sjstat and smail. See their respective man pages +for more information. + +%package nss_slurm +Summary: NSS plugin for slurm +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +%description nss_slurm +nss_slurm is an optional NSS plugin that can permit passwd and group resolution +for a job on the compute node to be serviced through the local slurmstepd +process, rather than through some alternate network-based service such as LDAP, +SSSD, or NSLCD. + +%package openlava +Summary: Openlava/LSF wrappers for transition from OpenLava/LSF to Slurm +Requires: %{name}-perlapi%{?_isa} = %{version}-%{release} +%description openlava +OpenLava wrapper scripts used for helping migrate from OpenLava/LSF to Slurm. + +%package pam_slurm +Summary: PAM module for restricting access to compute nodes via Slurm +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +%description pam_slurm +This module restricts access to compute nodes in a cluster where Slurm +is in use. Access is granted to root, any user with a Slurm-launched job +currently running on the node, or any user who has allocated resources +on the node according to Slurm. + +%package perlapi +Summary: Perl API to Slurm +Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version)) +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +%description perlapi +Perl API package for Slurm. This package includes the perl API to provide a +helpful interface to Slurm through Perl. + +%package torque +Summary: Torque/PBS wrappers for transition from Torque/PBS to Slurm +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-perlapi%{?_isa} = %{version}-%{release} +%description torque +Torque wrapper scripts used for helping migrate from Torque/PBS to Slurm. + +%prep +%autosetup -p1 -n %{name_version} +cp %SOURCE1 etc/slurm.conf +cp %SOURCE1 etc/slurm.conf.example +cp %SOURCE2 etc/slurmdbd.conf +cp %SOURCE2 etc/slurmdbd.conf.example +mkdir -p share/applications +mkdir -p share/icons/hicolor/128x128/apps +cp %SOURCE3 share/applications/%{name}-sview.desktop +cp %SOURCE4 share/icons/hicolor/128x128/apps/%{name}.png +mkdir -p extras +cp %SOURCE5 extras/%{name}-setuser.in + +%build +aclocal -I auxdir +autoconf +automake --no-force +# use -fcommon for gcc 10 to avoid multiple definition errors +export CFLAGS="%{build_cflags} -fcommon" +# use -z lazy to allow dlopen with unresolved symbols +export LDFLAGS="%{build_ldflags} -Wl,-z,lazy" +%configure \ + --prefix=%{_prefix} \ + --sysconfdir=%{_sysconfdir}/%{name} \ + --with-pam_dir=%{_libdir}/security \ + --enable-shared \ + --enable-x11 \ + --disable-static \ + --disable-debug \ + --disable-developer \ + --disable-salloc-background \ + --disable-multiple-slurmd \ + --disable-partial_attach \ + --with-shared-libslurm \ + --without-rpath +# patch libtool to remove rpaths +sed -i 's|^hardcode_into_libs=.*|hardcode_into_libs=no|g' libtool +sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool +sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool + +# configure extras/slurm-setuser script +sed -r ' +s|^dir_conf=.*|dir_conf="%{_sysconfdir}/%{name}"|g; +s|^dir_log=.*|dir_log="%{_var}/log/%{name}"|g; +s|^dir_run=.*|dir_run="%{_rundir}/%{name}"|g; +s|^dir_spool=.*|dir_spool="%{_var}/spool/%{name}"|g; +s|^dir_tmpfiles_d=.*|dir_tmpfiles_d="%{_tmpfilesdir}"|g;' \ + extras/%{name}-setuser.in > extras/%{name}-setuser + +# build base packages +%make_build + +# build contribs packages +# INSTALLDIRS=vendor so perlapi goes to vendor_perl directory +%make_build PERL_MM_PARAMS="INSTALLDIRS=vendor" contrib + +%check +# The test binaries need LD_LIBRARY_PATH to find the compiled slurm library +# in the build tree. +%make_build LD_LIBRARY_PATH="%{buildroot}%{_libdir};%{_libdir}" check + +%install +%make_install +%make_build DESTDIR=%{buildroot} install-contrib + +install -d -m 0755 %{buildroot}%{_sysconfdir}/%{name} +install -d -m 0755 %{buildroot}%{_unitdir} +install -m 0644 -p etc/cgroup.conf.example \ + %{buildroot}%{_sysconfdir}/%{name} +install -m 0644 -p etc/cgroup.conf.example \ + %{buildroot}%{_sysconfdir}/%{name}/cgroup.conf +install -m 0644 -p etc/slurm.conf %{buildroot}%{_sysconfdir}/%{name} +install -m 0644 -p etc/slurm.conf.example %{buildroot}%{_sysconfdir}/%{name} +install -m 0600 -p etc/slurmdbd.conf %{buildroot}%{_sysconfdir}/%{name} +install -m 0600 -p etc/slurmdbd.conf.example %{buildroot}%{_sysconfdir}/%{name} +install -m 0644 -p etc/slurmctld.service %{buildroot}%{_unitdir} +install -m 0644 -p etc/slurmd.service %{buildroot}%{_unitdir} +install -m 0644 -p etc/slurmdbd.service %{buildroot}%{_unitdir} + +# tmpfiles.d file for creating /run/slurm dir after reboot +install -d -m 0755 %{buildroot}%{_tmpfilesdir} +cat >%{buildroot}%{_tmpfilesdir}/%{name}.conf <%{buildroot}%{_sysconfdir}/logrotate.d/%{name} < %{buildroot}%{_mandir}/man1/${prog}.1 +done + +# contribs docs +install -d -m 0755 %{buildroot}%{_docdir}/%{name}/contribs/lua +install -m 0644 contribs/README %{buildroot}%{_docdir}/%{name}/contribs +install -m 0644 contribs/lua/*.lua %{buildroot}%{_docdir}/%{name}/contribs/lua + +# remove libtool archives +find %{buildroot} -name \*.a -o -name \*.la | xargs rm -f +# remove libslurmfull, libslurm_pmi symlinks (non-development, internal libraries) +rm -rf %{buildroot}%{_libdir}/libslurmfull.so +rm -rf %{buildroot}%{_libdir}/libslurm_pmi.so +# remove auth_none plugin +rm -f %{buildroot}%{_libdir}/%{name}/auth_none.so +# remove example plugins +rm -f %{buildroot}%{_libdir}/%{name}/job_submit_defaults.so +rm -f %{buildroot}%{_libdir}/%{name}/job_submit_logging.so +rm -f %{buildroot}%{_libdir}/%{name}/job_submit_partition.so +# remove cray files +rm -f %{buildroot}%{_mandir}/man5/cray* +# remove perl cruft +rm -f %{buildroot}%{perl_vendorarch}/auto/Slurm*/.packlist +rm -f %{buildroot}%{perl_vendorarch}/auto/Slurm*/Slurm*.bs +rm -f %{buildroot}%{perl_archlib}/perllocal.pod + +%ldconfig_scriptlets devel +%ldconfig_scriptlets libs + +# ----- +# Slurm +# ----- + +%files +%doc CONTRIBUTING.md DISCLAIMER META NEWS README.rst RELEASE_NOTES +%license COPYING LICENSE.OpenSSL +%dir %{_libdir}/%{name} +%dir %{_rundir}/%{name} +%dir %{_sysconfdir}/%{name} +%dir %{_var}/log/%{name} +%dir %{_var}/spool/%{name} +%dir %{_var}/spool/%{name}/ctld +%dir %{_var}/spool/%{name}/d +%config(noreplace) %{_sysconfdir}/%{name}/cgroup.conf +%config(noreplace) %{_sysconfdir}/%{name}/slurm.conf +%{_bindir}/{sacct,sacctmgr,salloc,sattach,sbatch,sbcast} +%{_bindir}/{scancel,scontrol,scrontab,sdiag,sh5util,sinfo,sprio} +%{_bindir}/{squeue,sreport,srun,sshare,sstat,strigger} +%{_bindir}/%{name}-setuser +%{_libdir}/%{name}/accounting_storage_{filetxt,none,slurmdbd}.so +%{_libdir}/%{name}/acct_gather_energy_{ibmaem,ipmi,none,pm_counters,rapl,xcc}.so +%{_libdir}/%{name}/acct_gather_filesystem_{lustre,none}.so +%{_libdir}/%{name}/acct_gather_interconnect_{none,ofed}.so +%{_libdir}/%{name}/acct_gather_profile_{hdf5,influxdb,none}.so +%{_libdir}/%{name}/auth_munge.so +%{_libdir}/%{name}/burst_buffer_generic.so +%{_libdir}/%{name}/cli_filter_{lua,none,syslog,user_defaults}.so +%{_libdir}/%{name}/core_spec_none.so +%{_libdir}/%{name}/cred_{munge,none}.so +%{_libdir}/%{name}/ext_sensors_none.so +%{_libdir}/%{name}/gres_{gpu,mic,mps,nic}.so +%{_libdir}/%{name}/gpu_generic.so +%{_libdir}/%{name}/job_container_{cncu,none}.so +%{_libdir}/%{name}/job_submit_all_partitions.so +%{_libdir}/%{name}/job_submit_lua.so +%{_libdir}/%{name}/job_submit_require_timelimit.so +%{_libdir}/%{name}/job_submit_throttle.so +%{_libdir}/%{name}/jobacct_gather_{cgroup,linux,none}.so +%{_libdir}/%{name}/jobcomp_{elasticsearch,filetxt,lua,mysql,none,script}.so +%{_libdir}/%{name}/launch_slurm.so +%{_libdir}/%{name}/mcs_{account,group,none,user}.so +%{_libdir}/%{name}/mpi_{none,openmpi,pmi2,pmix*}.so +%{_libdir}/%{name}/node_features_knl_generic.so +%{_libdir}/%{name}/power_none.so +%{_libdir}/%{name}/preempt_{job_prio,none,partition_prio,qos}.so +%{_libdir}/%{name}/prep_script.so +%{_libdir}/%{name}/priority_{basic,multifactor}.so +%{_libdir}/%{name}/proctrack_{cgroup,linuxproc,lua,pgid}.so +%{_libdir}/%{name}/route_{default,topology}.so +%{_libdir}/%{name}/sched_{backfill,builtin,hold}.so +%{_libdir}/%{name}/select_{cons_res,cons_tres,linear,serial}.so +%{_libdir}/%{name}/site_factor_none.so +%{_libdir}/%{name}/slurmctld_nonstop.so +%{_libdir}/%{name}/switch_{generic,none}.so +%{_libdir}/%{name}/task_{affinity,cgroup,none}.so +%{_libdir}/%{name}/topology_{3d_torus,hypercube,node_rank,none,tree}.so +%{_mandir}/man1/{sacct,sacctmgr,salloc,sattach,sbatch,sbcast}.1* +%{_mandir}/man1/{scancel,scontrol,scrontab,sdiag,sh5util,sinfo,sprio}.1* +%{_mandir}/man1/{squeue,sreport,srun,sshare,sstat,strigger}.1* +%{_mandir}/man1/slurm.1* +%{_mandir}/man5/acct_gather.conf.5* +%{_mandir}/man5/burst_buffer.conf.5* +%{_mandir}/man5/cgroup.conf.5* +%{_mandir}/man5/ext_sensors.conf.5* +%{_mandir}/man5/gres.conf.5* +%{_mandir}/man5/knl.conf.5* +%{_mandir}/man5/nonstop.conf.5* +%{_mandir}/man5/slurm.conf.5* +%{_mandir}/man5/topology.conf.5* +%{_mandir}/man8/slurmrestd.8* +%{_mandir}/man8/spank.8* +%{_sysconfdir}/logrotate.d/%{name} +%{_sysconfdir}/%{name}/cgroup*.conf.example +%{_sysconfdir}/%{name}/slurm.conf.example +%{_tmpfilesdir}/slurm.conf + +# ----------- +# Slurm-devel +# ----------- + +%files devel +%dir %{_includedir}/%{name} +%dir %{_libdir}/%{name}/src +%dir %{_libdir}/%{name}/src/sattach +%dir %{_libdir}/%{name}/src/srun +%{_includedir}/%{name}/slurm.h +%{_includedir}/%{name}/slurm_errno.h +%{_includedir}/%{name}/slurmdb.h +%{_includedir}/%{name}/smd_ns.h +%{_includedir}/%{name}/spank.h +%{_libdir}/lib{slurm,slurmdb}.so +%{_libdir}/%{name}/src/sattach/sattach.wrapper.c +%{_libdir}/%{name}/src/srun/srun.wrapper.c +%{_mandir}/man3/*.3.* + +# --------- +# Slurm-doc +# --------- + +%files doc +%dir %{_docdir}/%{name} +%dir %{_docdir}/%{name}/html +%{_docdir}/%{name}/html/* + +# --------- +# Slurm-gui +# --------- + +%files gui +%{_bindir}/sview +%{_datadir}/applications/*.desktop +%{_datadir}/icons/hicolor/*/apps/%{name}.png +%{_mandir}/man1/sview.1* + +# ---------- +# Slurm-libs +# ---------- + +%files libs +%{_libdir}/libslurm.so.* +%{_libdir}/libslurmfull-*.so +%{_libdir}/libslurm_pmi-*.so + +# --------- +# Slurm-pmi +# --------- + +%files pmi +%{_libdir}/libpmi.so.0* +%{_libdir}/libpmi2.so.0* + +# --------------- +# Slurm-pmi-devel +# --------------- + +%files pmi-devel +%{_includedir}/%{name}/pmi*.h +%{_libdir}/libpmi.so +%{_libdir}/libpmi2.so + +# ------------- +# Slurm-rrdtool +# ------------- + +%files rrdtool +%{_libdir}/%{name}/ext_sensors_rrd.so + +# --------- +# Slurmctld +# --------- + +%files slurmctld +%{_mandir}/man8/slurmctld.8* +%{_sbindir}/slurmctld +%{_unitdir}/slurmctld.service +%ghost %{_rundir}/%{name}/slurmctld.pid + +# ------ +# Slurmd +# ------ + +%files slurmd +%{_mandir}/man8/slurmd.8* +%{_mandir}/man8/slurmstepd.8* +%{_sbindir}/slurmd +%{_sbindir}/slurmstepd +%{_unitdir}/slurmd.service +%ghost %{_rundir}/%{name}/slurmd.pid + +# -------- +# Slurmdbd +# -------- + +%files slurmdbd +%config(noreplace) %{_sysconfdir}/%{name}/slurmdbd.conf +%{_libdir}/%{name}/accounting_storage_mysql.so +%{_mandir}/man5/slurmdbd.conf.5* +%{_mandir}/man8/slurmdbd.8* +%{_sbindir}/slurmdbd +%{_sysconfdir}/%{name}/slurmdbd.conf.example +%{_unitdir}/slurmdbd.service +%ghost %{_rundir}/%{name}/slurmdbd.pid + +# -------------- +# Slurm-contribs +# -------------- + +%files contribs +%dir %{_docdir}/%{name} +%dir %{_docdir}/%{name}/contribs +%dir %{_docdir}/%{name}/contribs/lua +%{_docdir}/%{name}/contribs/README +%{_docdir}/%{name}/contribs/lua/*.lua +%{_bindir}/seff +%{_bindir}/sgather +%{_bindir}/sjobexitmod +%{_bindir}/sjstat +%{_bindir}/smail +%{_mandir}/man1/sgather.1* +%{_mandir}/man1/sjobexitmod.1* +%{_mandir}/man1/sjstat.1* + +# --------------- +# Slurm-nss_slurm +# --------------- + +%files nss_slurm +%{_libdir}/libnss_slurm.so.2 + +# -------------- +# Slurm-openlava +# -------------- + +%files openlava +%{_bindir}/bjobs +%{_bindir}/bkill +%{_bindir}/bsub +%{_bindir}/lsid +%{_mandir}/man1/bjobs.1* +%{_mandir}/man1/bkill.1* +%{_mandir}/man1/bsub.1* +%{_mandir}/man1/lsid.1* + +# --------------- +# Slurm-pam_slurm +# --------------- + +%files pam_slurm +%{_libdir}/security/pam_slurm.so +%{_libdir}/security/pam_slurm_adopt.so + +# ------------- +# Slurm-perlapi +# ------------- + +%files perlapi +%dir %{perl_vendorarch}/Slurm +%dir %{perl_vendorarch}/auto/Slurm +%dir %{perl_vendorarch}/auto/Slurmdb +%{_mandir}/man3/Slurm*.3pm* +%{perl_vendorarch}/Slurm.pm +%{perl_vendorarch}/Slurm/*.pm +%{perl_vendorarch}/Slurmdb.pm +%{perl_vendorarch}/auto/Slurm/Slurm.so +%{perl_vendorarch}/auto/Slurmdb/Slurmdb.so +%{perl_vendorarch}/auto/Slurmdb/autosplit.ix + +# ------------ +# Slurm-torque +# ------------ + +%files torque +%{_bindir}/generate_pbs_nodefile +%{_bindir}/mpiexec +%{_bindir}/pbsnodes +%{_bindir}/qalter +%{_bindir}/qdel +%{_bindir}/qhold +%{_bindir}/qrerun +%{_bindir}/qrls +%{_bindir}/qstat +%{_bindir}/qsub +%{_libdir}/%{name}/job_submit_pbs.so +%{_libdir}/%{name}/spank_pbs.so +%{_mandir}/man1/pbsnodes.1* +%{_mandir}/man1/qalter.1* +%{_mandir}/man1/qdel.1* +%{_mandir}/man1/qhold.1* +%{_mandir}/man1/qrerun.1* +%{_mandir}/man1/qrls.1* +%{_mandir}/man1/qstat.1* +%{_mandir}/man1/qsub.1* +%{_mandir}/man1/mpiexec.1* + +%post slurmctld +%systemd_post slurmctld.service + +%preun slurmctld +%systemd_preun slurmctld.service + +%postun slurmctld +%systemd_postun_with_restart slurmctld.service + +%post slurmd +%systemd_post slurmd.service + +%preun slurmd +%systemd_preun slurmd.service + +%postun slurmd +%systemd_postun_with_restart slurmd.service + +%post slurmdbd +%systemd_post slurmdbd.service + +%preun slurmdbd +%systemd_preun slurmdbd.service + +%postun slurmdbd +%systemd_postun_with_restart slurmdbd.service + +%changelog +* Tue Jan 5 2021 Philip Kovacs - 20.11.2-1 +- Release of 20.11.2 + +* Tue Nov 17 2020 Philip Kovacs - 20.02.6-1 +- Release of 20.02.6 +- Closes security issues CVE-2020-27745 and CVE-2020-27746 + +* Wed Jul 29 2020 Fedora Release Engineering - 20.02.3-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Sat Jun 27 2020 Jitka Plesnikova - 20.02.3-4 +- Perl 5.32 re-rebuild updated packages + +* Thu Jun 25 2020 Orion Poplawski - 20.02.3-3 +- Rebuild for hdf5 1.10.6 + +* Mon Jun 22 2020 Jitka Plesnikova - 20.02.3-2 +- Perl 5.32 rebuild + +* Mon May 25 2020 Philip Kovacs - 20.02.3-1 +- Release of 20.02.3 + +* Tue May 5 2020 Philip Kovacs - 20.02.2-1 +- Release of 20.02.2 + +* Mon Mar 30 2020 Philip Kovacs - 19.05.6-1 +- Release of 19.05.6 + +* Thu Jan 30 2020 Fedora Release Engineering - 19.05.5-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Jan 22 2020 Philip Kovacs - 19.05.5-2 +- Use cflag -fcommon to allow for building with gcc 10 + +* Mon Dec 23 2019 Philip Kovacs - 19.05.5-1 +- Release of 19.05.5 +- Closes security issues CVE-2019-19727, CVE-2019-19728 + +* Mon Nov 18 2019 Philip Kovacs - 19.05.4-1 +- Release of 19.05.4 + +* Mon Oct 7 2019 Philip Kovacs - 19.05.3-1 +- Release of 19.05.3 + +* Sun Aug 25 2019 Zbigniew Jędrzejewski-Szmek - 19.05.2-2 +- Rebuilt for hwloc-2.0 + +* Tue Aug 13 2019 Philip Kovacs - 19.05.2-1 +- Release of 19.05.2 + +* Fri Jul 26 2019 Fedora Release Engineering - 19.05.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sun Jul 21 2019 Philip Kovacs - 19.05.1-2 +- Create slurm-pmi and slurm-pmi-devel subpackages for pmi/pmi2 libs +- Remove rpm-generated pkgconfig files until upstream provides them +- Do not pull dependencies with pkgconfig unless package uses it + +* Mon Jul 15 2019 Philip Kovacs - 19.05.1-1 +- Release of 19.05.1 +- Closes security issue (CVE-2019-12838) +- Configure for UCX support on supported arches + +* Tue Jul 2 2019 Philip Kovacs - 19.05.0-5 +- Do not install slurm implementation of libpmi/pmi2 libraries +- in favor of the faster implementation provided by pmix +- Remove pmi environment module formerly used to select the slurm +- vs pmix implementations of libpmi/pmi2 + +* Wed Jun 19 2019 Philip Kovacs - 19.05.0-4 +- Correct the configure for pmix +- Correct the slurm_pmix_soname patch + +* Wed Jun 19 2019 Philip Kovacs - 19.05.0-3 +- Stop using autotools macros that were removed from rpm + +* Sun Jun 9 2019 Philip Kovacs - 19.05.0-2 +- Exclude upstream-deprecated 32-bit architectures + +* Sun Jun 9 2019 Philip Kovacs - 19.05.0-1 +- Release of 19.05.0 +- Added nss_plugin subpackage for optional nss plugin +- Added patch to fix 19.05.0 testsuite +- Adjusted cray patch to remove all cray, cray_aries plugins +- Reflect all upstream plugin additions/deletions +- Remove openssl build dependency + +* Thu May 30 2019 Jitka Plesnikova - 18.08.7-2 +- Perl 5.30 rebuild + +* Fri Apr 12 2019 Philip Kovacs - 18.08.7-1 +- Release of 18.08.7 + +* Sat Mar 16 2019 Orion Poplawski - 18.08.6-2 +- Rebuild for hdf5 1.10.5 + +* Thu Mar 7 2019 Philip Kovacs - 18.08.6-1 +- Release of 18.08.6 + +* Sun Feb 17 2019 Igor Gnatenko - 18.08.5-2 +- Rebuild for readline 8.0 + +* Thu Jan 31 2019 Philip Kovacs - 18.08.5-1 +- Release of 18.08.5 + +* Thu Jan 31 2019 Philip Kovacs - 17.11.13-2 +- Fix build issue on 32-bit architectures + +* Wed Jan 30 2019 Philip Kovacs - 17.11.13-1 +- Release of 17.11.13 +- Closes security issue CVE-2019-6438 + +* Wed Oct 24 2018 Philip Kovacs - 17.11.12-1 +- Release of 17.11.12 + +* Sat Oct 20 2018 Philip Kovacs - 17.11.11-1 +- Release of 17.11.11 + +* Thu Oct 11 2018 Yu Watanabe - 17.11.10-1 +- Release of 17.11.10 + +* Fri Sep 28 2018 Philip Kovacs - 17.11.9-2 +- Release of 17.11.9-2 (new upstream tarball) + +* Fri Aug 10 2018 Philip Kovacs - 17.11.9-1 +- Release of 17.11.9 + +* Fri Jul 20 2018 Philip Kovacs - 17.11.8-1 +- Release of 17.11.8 + +* Sat Jul 14 2018 Fedora Release Engineering - 17.11.7-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Jun 27 2018 Jitka Plesnikova - 17.11.7-2 +- Perl 5.28 rebuild + +* Fri Jun 1 2018 Philip Kovacs - 17.11.7-1 +- Release of 17.11.7 +- Closes security issue CVE-2018-10995 + +* Sat May 12 2018 Philip Kovacs - 17.11.6-1 +- Release of 17.11.6 +- Added patch to avoid building contribs/cray (Yu Watanabe) +- Added lz4 support via new BuildRequires (Yu Watanabe) +- Replaced obsolete packages libibmad-devel and libibumad-devel + with rdma-core-devel (Yu Watanabe) +- Updated package descriptions (Yu Watanabe) + +* Fri Mar 16 2018 Philip Kovacs - 17.11.5-1 +- Release of 17.11.5 +- Closes security issue CVE-2018-7033 + +* Sat Mar 3 2018 Philip Kovacs - 17.11.4-1 +- Release of 17.11.4 +- Add perl-devel, python3 to build requirements +- Add patch to convert python references to python3 +- Use LDFLAGS to disable -z now instaed of _hardened_ldflags + +* Thu Feb 15 2018 Philip Kovacs - 17.11.3-3 +- Add perl-interpreter to BuildRequires + +* Thu Feb 15 2018 Philip Kovacs - 17.11.3-2 +- Rebuild for libevent soname bump + +* Sat Feb 10 2018 Philip Kovacs - 17.11.3-1 +- Release of 17.11 series +- Re-aligned rpm packaging to be closer to upstream +- Enabled new slurm native X11 support using ssh2 +- Enabled new shared libslurm for smaller code size +- Enabled `check` unit testing via check-devel +- Added environment module support for pmi/slurm +- Add dependency to pmix +- Removed gtk-update-icon-cache scriptlets +- Use new ldconfig_scriptlets macro + +* Fri Feb 09 2018 Fedora Release Engineering - 17.02.9-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Nov 16 2017 Philip Kovacs - 17.02.9-3 +- Added patch to enable full relro builds and operation +- Added patch to link knl_generic plugin to libnuma if available +- Remove the following cray or bluegene-only plugins +- job_container/cncu, select/alps, select/bluegene +- Rename slurm_setuser to slurm-setuser +- Minor corrections to slurm.conf + +* Wed Nov 1 2017 Philip Kovacs - 17.02.9-2 +- Correct desktop categories for rpmgrill.desktop-lint + +* Wed Nov 1 2017 Philip Kovacs - 17.02.9-1 +- Version bump to close CVE-2017-15566 +- Adjusted patches per closure of upstream bug #3942 +- Added desktop categories per rpmgrill.desktop-lint + +* Wed Oct 25 2017 Philip Kovacs - 17.02.8-1 +- Version bump, patches adjusted + +* Thu Oct 5 2017 Philip Kovacs - 17.02.7-4 +- Patch changes per resolution of upstream bug #4101: +- salloc/sbatch/srun: must be root to use --uid/--gid options +- salloc: supplemental groups dropped after setuid + +* Thu Oct 5 2017 Philip Kovacs - 17.02.7-3 +- Added BuildRequires gcc and minor packaging conformance items + +* Sat Sep 16 2017 Philip Kovacs - 17.02.7-2 +- Removed unneeded Requires(pre) + +* Thu Sep 14 2017 Philip Kovacs - 17.02.7-1 +- Packaging for Fedora diff --git a/slurm_html_doc_path.patch b/slurm_html_doc_path.patch new file mode 100644 index 0000000..04c1475 --- /dev/null +++ b/slurm_html_doc_path.patch @@ -0,0 +1,9 @@ +--- a/doc/html/Makefile.am 2017-10-25 15:55:38.622808585 -0400 ++++ b/doc/html/Makefile.am 2017-10-25 15:56:07.236582868 -0400 +@@ -1,5 +1,5 @@ + +-htmldir = ${datadir}/doc/${PACKAGE}-${SLURM_VERSION_STRING}/html ++htmldir = ${datadir}/doc/${PACKAGE}/html + + generated_html = \ + accounting.html \ diff --git a/slurm_libslurmfull_version.patch b/slurm_libslurmfull_version.patch new file mode 100644 index 0000000..a51e4c6 --- /dev/null +++ b/slurm_libslurmfull_version.patch @@ -0,0 +1,37 @@ +diff --git a/src/api/Makefile.am b/src/api/Makefile.am +index 53af7f8d7f..81d41c1161 100644 +--- a/src/api/Makefile.am ++++ b/src/api/Makefile.am +@@ -46,14 +46,7 @@ current = $(SLURM_API_CURRENT) + age = $(SLURM_API_AGE) + rev = $(SLURM_API_REVISION) + +-lib_LTLIBRARIES = libslurm.la +- +-# The ABI of libslurmfull can easily change from 1 micro version to another. +-# To avoid issue we will install this lib alongside the plugins to protect +-# from version issues. +-# +-# The unversioned libslurm_pmi is hidden there as well. +-pkglib_LTLIBRARIES = libslurmfull.la libslurm_pmi.la ++lib_LTLIBRARIES = libslurm.la libslurmfull.la libslurm_pmi.la + + # BUILT_SOURCES tells automake that when "make" is called, these targets + # need to be built before anything else. +@@ -158,14 +151,14 @@ libslurmfull_la_SOURCES = + libslurmfull_la_LIBADD = $(convenience_libs) + libslurmfull_la_LDFLAGS = \ + $(LIB_LDFLAGS) \ +- -avoid-version \ ++ -release $(SLURM_VERSION_STRING) \ + $(FULL_OTHER_FLAGS) + + libslurm_pmi_la_SOURCES = + libslurm_pmi_la_LIBADD = $(convenience_libs) + libslurm_pmi_la_LDFLAGS = \ + $(LIB_LDFLAGS) \ +- -avoid-version \ ++ -release $(SLURM_VERSION_STRING) \ + $(SLURM_PMI_OTHER_FLAGS) + + # This was made so we could export all symbols from libcommon diff --git a/slurm_perlapi_rpaths.patch b/slurm_perlapi_rpaths.patch new file mode 100644 index 0000000..f20bd54 --- /dev/null +++ b/slurm_perlapi_rpaths.patch @@ -0,0 +1,26 @@ +diff --git a/contribs/perlapi/libslurm/perl/Makefile.PL.in b/contribs/perlapi/libslurm/perl/Makefile.PL.in +index fcae43796d..34c1ad1411 100644 +--- a/contribs/perlapi/libslurm/perl/Makefile.PL.in ++++ b/contribs/perlapi/libslurm/perl/Makefile.PL.in +@@ -77,7 +77,7 @@ DESTDIR_BUG + # AIX has problems with not always having the correct + # flags so we have to add some :) + my $os = lc(`uname`); +-my $other_ld_flags = "-Wl,-rpath,@top_builddir@/src/api/.libs -Wl,-rpath,@prefix@/lib"; ++my $other_ld_flags = ""; + $other_ld_flags = " -brtl -G -bnoentry -bgcbypass:1000 -bexpfull" + if $os =~ "aix"; + +diff --git a/contribs/perlapi/libslurmdb/perl/Makefile.PL.in b/contribs/perlapi/libslurmdb/perl/Makefile.PL.in +index 2db028c113..d143c20190 100644 +--- a/contribs/perlapi/libslurmdb/perl/Makefile.PL.in ++++ b/contribs/perlapi/libslurmdb/perl/Makefile.PL.in +@@ -76,7 +76,7 @@ DESTDIR_BUG + # AIX has problems with not always having the correct + # flags so we have to add some :) + my $os = lc(`uname`); +-my $other_ld_flags = "-Wl,-rpath,@top_builddir@/src/db_api/.libs -Wl,-rpath,@prefix@/lib"; ++my $other_ld_flags = ""; + $other_ld_flags = " -brtl -G -bnoentry -bgcbypass:1000 -bexpfull" + if $os =~ "aix"; + diff --git a/slurm_pmix_soname.patch b/slurm_pmix_soname.patch new file mode 100644 index 0000000..39ee74f --- /dev/null +++ b/slurm_pmix_soname.patch @@ -0,0 +1,35 @@ +diff --git a/src/plugins/mpi/pmix/mpi_pmix.c b/src/plugins/mpi/pmix/mpi_pmix.c +index 1bf287ff44..8702a2bd17 100644 +--- a/src/plugins/mpi/pmix/mpi_pmix.c ++++ b/src/plugins/mpi/pmix/mpi_pmix.c +@@ -109,7 +109,7 @@ static void *_libpmix_open(void) + #elif defined PMIXP_V3_LIBPATH + xstrfmtcat(full_path, "%s/", PMIXP_V3_LIBPATH); + #endif +- xstrfmtcat(full_path, "libpmix.so"); ++ xstrfmtcat(full_path, "libpmix.so.2"); + + lib_plug = dlopen(full_path, RTLD_LAZY | RTLD_GLOBAL); + xfree(full_path); +diff --git a/src/plugins/mpi/pmix/pmixp_dconn_ucx.c b/src/plugins/mpi/pmix/pmixp_dconn_ucx.c +index f6c91adc93..6021faa01e 100644 +--- a/src/plugins/mpi/pmix/pmixp_dconn_ucx.c ++++ b/src/plugins/mpi/pmix/pmixp_dconn_ucx.c +@@ -167,7 +167,7 @@ static int _load_ucx_lib() + * we have from autoconf + */ + char *full_path = NULL; +- xstrfmtcat(full_path, "%s/libucp.so", PMIXP_UCX_LIBPATH); ++ xstrfmtcat(full_path, "%s/libucp.so.0", PMIXP_UCX_LIBPATH); + _ucx_lib_handler = dlopen(full_path, RTLD_LAZY | RTLD_GLOBAL); + xfree(full_path); + if (_ucx_lib_handler) { +@@ -178,7 +178,7 @@ static int _load_ucx_lib() + * known by dynamic linker. + */ + #endif +- _ucx_lib_handler = dlopen("libucp.so", RTLD_LAZY | RTLD_GLOBAL); ++ _ucx_lib_handler = dlopen("libucp.so.0", RTLD_LAZY | RTLD_GLOBAL); + if (!_ucx_lib_handler) { + char *err = dlerror(); + PMIXP_ERROR("Cannot open UCX lib: %s", (err) ? err : "unknown"); diff --git a/slurm_service_files.patch b/slurm_service_files.patch new file mode 100644 index 0000000..fc328c4 --- /dev/null +++ b/slurm_service_files.patch @@ -0,0 +1,39 @@ +diff --git a/etc/slurmctld.service.in b/etc/slurmctld.service.in +index 6f175ad651..82a128ac0a 100644 +--- a/etc/slurmctld.service.in ++++ b/etc/slurmctld.service.in +@@ -8,7 +8,7 @@ Type=forking + EnvironmentFile=-/etc/sysconfig/slurmctld + ExecStart=@sbindir@/slurmctld $SLURMCTLD_OPTIONS + ExecReload=/bin/kill -HUP $MAINPID +-PIDFile=/var/run/slurmctld.pid ++PIDFile=/var/run/slurm/slurmctld.pid + LimitNOFILE=65536 + @SYSTEMD_TASKSMAX_OPTION@ + +diff --git a/etc/slurmd.service.in b/etc/slurmd.service.in +index b36433dd7d..146b6574d2 100644 +--- a/etc/slurmd.service.in ++++ b/etc/slurmd.service.in +@@ -8,7 +8,7 @@ Type=forking + EnvironmentFile=-/etc/sysconfig/slurmd + ExecStart=@sbindir@/slurmd $SLURMD_OPTIONS + ExecReload=/bin/kill -HUP $MAINPID +-PIDFile=/var/run/slurmd.pid ++PIDFile=/var/run/slurm/slurmd.pid + KillMode=process + LimitNOFILE=131072 + LimitMEMLOCK=infinity +diff --git a/etc/slurmdbd.service.in b/etc/slurmdbd.service.in +index c80feb9d7c..97a95c0e57 100644 +--- a/etc/slurmdbd.service.in ++++ b/etc/slurmdbd.service.in +@@ -8,7 +8,7 @@ Type=forking + EnvironmentFile=-/etc/sysconfig/slurmdbd + ExecStart=@sbindir@/slurmdbd $SLURMDBD_OPTIONS + ExecReload=/bin/kill -HUP $MAINPID +-PIDFile=/var/run/slurmdbd.pid ++PIDFile=/var/run/slurm/slurmdbd.pid + LimitNOFILE=65536 + @SYSTEMD_TASKSMAX_OPTION@ + diff --git a/slurm_to_python3.patch b/slurm_to_python3.patch new file mode 100644 index 0000000..841e773 --- /dev/null +++ b/slurm_to_python3.patch @@ -0,0 +1,20 @@ +diff --git a/contribs/cray/csm/slurmconfgen_smw.py b/contribs/cray/csm/slurmconfgen_smw.py +index 1d1aadedaf..b2f65c242b 100644 +--- a/contribs/cray/csm/slurmconfgen_smw.py ++++ b/contribs/cray/csm/slurmconfgen_smw.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # + # Copyright 2015-2016 Hewlett Packard Enterprise Development LP + """ A script to generate slurm.conf and gres.conf for a +diff --git a/contribs/cray/slurmconfgen.py.in b/contribs/cray/slurmconfgen.py.in +index 31de1a0c28..269b1d55a7 100644 +--- a/contribs/cray/slurmconfgen.py.in ++++ b/contribs/cray/slurmconfgen.py.in +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + # + # Copyright 2013 Hewlett Packard Enterprise Development LP + # diff --git a/slurm_without_cray.patch b/slurm_without_cray.patch new file mode 100644 index 0000000..6ebc6da --- /dev/null +++ b/slurm_without_cray.patch @@ -0,0 +1,95 @@ +diff --git a/contribs/Makefile.am b/contribs/Makefile.am +index 3f6fac0a85..6c466b4eb5 100644 +--- a/contribs/Makefile.am ++++ b/contribs/Makefile.am +@@ -1 +1 @@ +-SUBDIRS = cray lua mic nss_slurm openlava pam pam_slurm_adopt perlapi pmi pmi2 seff sgather sgi sjobexit torque ++SUBDIRS = lua mic nss_slurm openlava pam pam_slurm_adopt perlapi pmi pmi2 seff sgather sgi sjobexit torque +diff --git a/src/plugins/core_spec/Makefile.am b/src/plugins/core_spec/Makefile.am +index 44b1ed67c0..f06bc541d7 100644 +--- a/src/plugins/core_spec/Makefile.am ++++ b/src/plugins/core_spec/Makefile.am +@@ -1,3 +1,3 @@ + # Makefile for core specialization plugins + +-SUBDIRS = cray_aries none ++SUBDIRS = none +diff --git a/src/plugins/job_submit/Makefile.am b/src/plugins/job_submit/Makefile.am +index e393bcfb1c..b98cf2e000 100644 +--- a/src/plugins/job_submit/Makefile.am ++++ b/src/plugins/job_submit/Makefile.am +@@ -2,7 +2,6 @@ + + SUBDIRS = \ + all_partitions \ +- cray_aries \ + defaults \ + logging \ + lua \ +diff --git a/src/plugins/mpi/Makefile.am b/src/plugins/mpi/Makefile.am +index 4d055e2030..1a44dfb2ab 100644 +--- a/src/plugins/mpi/Makefile.am ++++ b/src/plugins/mpi/Makefile.am +@@ -1,6 +1,6 @@ + # Makefile for mpi plugins + +-SUBDIRS = cray_shasta none pmi2 ++SUBDIRS = none pmi2 + if HAVE_PMIX + SUBDIRS += pmix + endif +diff --git a/src/plugins/node_features/Makefile.am b/src/plugins/node_features/Makefile.am +index f5ef036303..d955c51ba1 100644 +--- a/src/plugins/node_features/Makefile.am ++++ b/src/plugins/node_features/Makefile.am +@@ -1,3 +1,3 @@ + # Makefile for node_features plugins + +-SUBDIRS = knl_cray knl_generic ++SUBDIRS = knl_generic +diff --git a/src/plugins/power/Makefile.am b/src/plugins/power/Makefile.am +index ccde44c322..c6171740c1 100644 +--- a/src/plugins/power/Makefile.am ++++ b/src/plugins/power/Makefile.am +@@ -1,3 +1,3 @@ + # Makefile for power management plugins + +-SUBDIRS = common cray_aries none ++SUBDIRS = common none +diff --git a/src/plugins/select/Makefile.am b/src/plugins/select/Makefile.am +index 38bae0ff5c..ca7133f43f 100644 +--- a/src/plugins/select/Makefile.am ++++ b/src/plugins/select/Makefile.am +@@ -1,7 +1,7 @@ + # Makefile for node selection plugins + + # NOTE: other must be in the list before cray_aries lest the build break +-SUBDIRS = other cons_common cons_res cons_tres cray_aries linear ++SUBDIRS = other cons_common cons_res cons_tres linear + + # Each plugin here needs a plugin_id. + # Here are the current plugin_ids for each plugin. +diff --git a/src/plugins/switch/Makefile.am b/src/plugins/switch/Makefile.am +index 365f5b8d93..dc56a01a55 100644 +--- a/src/plugins/switch/Makefile.am ++++ b/src/plugins/switch/Makefile.am +@@ -1,7 +1,3 @@ + # Makefile for switch plugins + + SUBDIRS = none +- +-if WITH_SWITCH_CRAY_ARIES +-SUBDIRS += cray_aries +-endif +diff --git a/src/plugins/task/Makefile.am b/src/plugins/task/Makefile.am +index f79282f3e6..356cdcd500 100644 +--- a/src/plugins/task/Makefile.am ++++ b/src/plugins/task/Makefile.am +@@ -1,6 +1,6 @@ + # Makefile for task plugins + +-SUBDIRS = affinity cray_aries none ++SUBDIRS = affinity none + + if WITH_CGROUP + SUBDIRS += cgroup diff --git a/slurmdbd.conf b/slurmdbd.conf new file mode 100644 index 0000000..edcb4a8 --- /dev/null +++ b/slurmdbd.conf @@ -0,0 +1,44 @@ +# +# See the slurmdbd.conf man page for more information. +# +# Archive info +#ArchiveJobs=yes +#ArchiveDir="/tmp" +#ArchiveSteps=yes +#ArchiveScript= +#JobPurge=12 +#StepPurge=1 +# +# Authentication info +AuthType=auth/munge +#AuthInfo=/var/run/munge/munge.socket.2 +# +# slurmdbd info +DebugLevel=4 +#DefaultQOS=normal,standby +DbdAddr=localhost +DbdHost=localhost +#DbdPort=6819 +#LogFile= +#MessageTimeout=300 +PidFile=/var/run/slurm/slurmdbd.pid +#PluginDir= +#PrivateData=accounts,users,usage,jobs +PurgeEventAfter=1month +PurgeJobAfter=1month +PurgeResvAfter=1month +PurgeStepAfter=1month +PurgeSuspendAfter=1month +PurgeTXNAfter=1month +PurgeUsageAfter=1month +SlurmUser=root +#TrackWCKey=yes +# +# Database info +StorageType=accounting_storage/mysql +#StorageHost=localhost +#StoragePort=1234 +StoragePass=password +StorageUser=root +#StorageLoc=slurm_acct_db + diff --git a/sources b/sources new file mode 100644 index 0000000..5231d00 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (slurm-20.11.2.tar.bz2) = 6743b8125733006e0e5ef0491b950efbeb05af0cf45f54a2c142ddbb57ea639615539bc1bcbd1985a850c20d268b8a995c81c5547a02404f9b6a61fee19f68ed From d8df1c6f488a8fdbe1123c5c9a3fff0eaa77c7ee Mon Sep 17 00:00:00 2001 From: Philip Kovacs Date: Wed, 6 Jan 2021 13:40:07 -0500 Subject: [PATCH 02/12] Release of 20.11.2 --- .gitignore | 2 + README.md | 3 - slurm-128x128.png | Bin 0 -> 5098 bytes slurm-setuser.in | 229 ++++++++++ slurm-sview.desktop | 10 + slurm.abignore | 10 + slurm.conf | 159 +++++++ slurm.rpmlintrc | 8 + slurm.spec | 840 ++++++++++++++++++++++++++++++++++++ slurm_check_version.patch | 13 + slurm_html_doc_path.patch | 9 + slurm_perlapi_rpaths.patch | 26 ++ slurm_pmix_soname.patch | 35 ++ slurm_release_version.patch | 37 ++ slurm_service_files.patch | 39 ++ slurm_to_python3.patch | 20 + slurm_without_cray.patch | 95 ++++ slurmdbd.conf | 44 ++ sources | 1 + 19 files changed, 1577 insertions(+), 3 deletions(-) create mode 100644 .gitignore delete mode 100644 README.md create mode 100644 slurm-128x128.png create mode 100644 slurm-setuser.in create mode 100644 slurm-sview.desktop create mode 100644 slurm.abignore create mode 100644 slurm.conf create mode 100644 slurm.rpmlintrc create mode 100644 slurm.spec create mode 100644 slurm_check_version.patch create mode 100644 slurm_html_doc_path.patch create mode 100644 slurm_perlapi_rpaths.patch create mode 100644 slurm_pmix_soname.patch create mode 100644 slurm_release_version.patch create mode 100644 slurm_service_files.patch create mode 100644 slurm_to_python3.patch create mode 100644 slurm_without_cray.patch create mode 100644 slurmdbd.conf create mode 100644 sources diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5bd3967 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/slurm-*.tar.bz2 +/slurm-*.src.rpm diff --git a/README.md b/README.md deleted file mode 100644 index 2d59d93..0000000 --- a/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# slurm - -The slurm package \ No newline at end of file diff --git a/slurm-128x128.png b/slurm-128x128.png new file mode 100644 index 0000000000000000000000000000000000000000..e8a5104667994489d4275893fb6bdc1736796d3d GIT binary patch literal 5098 zcmV9A}m1HupIyZ6L(2O zK~#9!?VWj)9L0UdKh?9+A_?6Ky}QjBZp?jyo&lR9Cc%!?iwMW#3J@DGCIoZYaqI*K z83+!+evYvr#xX~prEOyl6R;x=J79CzU?31cl9B11X^BhHO3UufOy!TN@%Hw1_s;Yj zJ2UF8`HhSHG)%^((;^0L$^ZB=U0taWSyXB##e*yc@*VT-$uR-TOwg|KR7g z192PhXBED>68H<(HeYGy{xRCQaWigz6%dCf7<_$c?t4Z zkaOC(k2>0002moyUKJ8@dtiFX0a{zfsiuumUnv2kNC_ZCN&qQR0!Wcs0b2@WN&s6n zL`ne7gWmp}5JE(aiF9pK)?pkYnLw|TLm-R<^+^e!Qds@Da}nY!U}l6K^S8Uj}F-8bt#vtcJLkV?|?5;hDT1qUIVuI zTHyUp0{18U{Mi(^+g)N7$B5DE1ztulf0B0#K)-97f0vt?wh0pT+l#l| z*yCisXkg@k3xKUADP=@)4Ec4}?#_lxnC&ZQz;wefx_}KS0VI=9B7vBiFx9hm&n950 z<>YP#(K*Tcqriu*-JSXY+6}JVJ)&oLidN78QluQ9M#|*cPAD!0aVoHNjD0V(+4nGT zw`-g0QvzslbT1p|0Qt8duCG9gI2ky^a=b6Nw)tKv0;UMX8kCXAWR3%_ujnPEdY%WI zU^!kjzLF$LY)SxQl{1Eb%@w?|VLa>4b^tq9QH4cXWcV$Nbrrmy2b!9LG*kpwj`uO( za$rGVg6DyIT-&^Tyw+~!dmZm70Us%|uK!U~W?YGcI)JV!s=N;{1K3!qkLBck1l&}{ z#FoJ8u5G?Qp&$Bl$0EcvjCXAd;6vax*EW~89RXO5w+HY~z>yJ;>}xsRde=6W`EL%` z=EatiTMxn}+=(NAA>az&ne6yQ7=iN0)r>>BcJ~^~@eTpLr-@63&V0!)+&=T%kbc+~ zxD(hh;+s2KPHvrRcR$f?9AIx?*O=eu0EYt0LOT6g%kjP{L#Ca+QIL=yXw(W^f#)$e z3_*tsr$~tr>2Ek*bHFI<2x2#&?Fc|r^Neeo!_6W$-6dv8Y~>TYK5bInOEzvLxn;~i zt3MYh>*TJ`%Hw2!k!2dM4f=Q1Gs${2jK^|7dDxfhHFC=wrUDx{R69SPtqU?ArA zA>d8_jc#XPR=^Q68O)G2)lj1nhTbn&E~XpCct3=c@@130_|Z{Mxn6d^`71+XsZW zw)rM-I`9DHFEIWZINr6*-?V%GG*kriI=PbsVkyuQ7>p4l-*WrRo9ajepR)RM9Y{Gn zPOp$cj1Kg5*EMWRhpK-gpx_$7CgA$uqF7rHfaQ1xYI}bF2!Z=W%kkcGZSxMly;MsU z<@R+ab>9Zf*~F%=<#@*c-yu46%~veP8*pv&r|l*J{)G6D>Y2cv<11HjJiuU`+aM#f z_bB9n;BxRGsD-acQ&vi8wWA2AINgd`fA^lH{CI#LQuN0IjGK9T0q3E%bH&ZrcYxbn z+x%@reURu;zIEa52Dgjj?g4lmG&}W{ODuFd2g6_*K zCwG+$T_%$tDS{Xs=$knBmg6k~en92fzHTt!72u%>Y(j`L}u z0L$?VV74wx0)={nQ@eKeaDuvJv|f=k)!Si~RUof*5GsmwI4sKeG3ySEs`U&sWvpBKK;1} zi$H)NE*>CHf`I2<$NMtykAd5(EXO#P*(`Q;4xa?)h=HR38f=zK;-(PpFUJG2mg#$$c(@ z!k+{_i23Z>z^Xv|=L)q&KFqQ@YAQv5(6cr;6N;$NC%^Laiq-F3i;!Of5p)C%OXRl) z?CyIe&NS~bt#wbfB;02?-Y%|fu1dgp%0hN=54}#VTO$8QASPMU5XW1NcaUqFf91bB zV4Kfbj&~05FIsf^`*Ki9dE-D|_liJaTWQV_w$we%!o$UEekIWDGgnkhv4XQHHy%K8 ziPi62s9jsO4m5yLQjUz+`v~IG`Dnz@}acs5l-#(2b~Tn+#y5 z3ZCx-qpO+wxTy)C+IWCELDc#AN?Vjq%KmF10$u=K1NI8s{}u332n#(A_;7y{6?cexelA^yCcP672;1Zk?>xk89tQTq*}FjvZnJBPHFv*wPcrd|xH0Sel` zkhH>^sm(6+AVE&D7)0wV2K74L$pVh`byNnp)3wc)rhdK^@{n0q#YjCFLO`O1gI$T< z&;{~J-?pI+;Kf3ruspY{;1DV%pxha|X}pN) zEn1HE3M#&Dn+iWZ3OpO|wI_)O_@GAA{04{#$KPZ!nR&p!PL&xrGlGZ;Mh&8WU3WG=w)s4;gm^b}5SxH=T-*HbKv{W^%gdBx5?Jlp=DRhR{U*`Qu(@>+ z0hZ$#6pOPJOE(PQ9rqNonr}_EBPLX#bZzrI%khSRPY|8taTK_!2v2207GYf5e8O^a zM@T7-1m?%cbpZ?s!PBm7{vqO#)xgoH`~dTb$`7EnkA=kpjFh2QRH6fjpetB!TwO@9 zC=o~mn_atSxKa^t4~DS>m9-)R{1lb8HJL&sc~J;n1GbHLsg*XGkZ$U+Oi11a=hJ9xpn-jX~$Jlqk%qiwRV7NQHoeG>8;t1L-;l2Uee7X`*?M}RPoF3cK_Q$y zfb+|IJUCVxiAY!15kYZlEXTVL*l$dh$Y;}GXc?S=N=B8}+~N%_cFJPw^~M5JkY-R$ zy_ZC(O3`|F1hwqB-go6tJ7!We7*nw?AfpwTtpZj@dW78+AU!W2C4dwu0i;L?AVo?5 zDN+JRkrF_PlmJqs1dw72LD2gq0)MMPEyBR#qH2pZBKUIZnY3Su3ENgL$iUw}62L6f zmaT*Jzl|Dv=xVAz_T)I=T2%N{snQwXWz_irmEc5QSq0x9yn;#|6@}A)Q&CYDmAI=n zqw*(&;WNO=sK}^Hg9%^*a6fQ6@L}mxEtlkJRH8mKzXs(jKy9NA?vzQgYPb+MkjkQH z9bj?7xeekACbi$Fx_~M-anu2ObP&DS0w7CBhO9DmfK4q-05geCOEZGn zn;)m;2irfL@Ekw>GT)Br&rV>wkl)@#Z9fwcmc|@nGNnanwWC_|y{`(3pp_Fn#F=NS zwKBPWlD-iYn0+tnG7AyU6oJD~Y3#%Fiko9h+*zpfa+jBD7nii(U-~|tG#cxnN-;%We5Vpci=DX9kwDXd$(7^srWx z-c7r=H3*;(!|r<$lzAX|@gIZ4Cmrr%psL zH|^fm&;dqJYr~hJ7C`2eX_rbp%de$A89q}q*b2y_j(C5og7;rWEha4`exV~pi}?X6 zL6$0xXiw4l1Rz?Zt)hkM+EN5CoA{W5dW)`dF`xJ&TT=o^i2bSLSeM#h4AM@0Csp+ZW~es~2Pp*ZBujfaN+S56svNmGCM>2mzd3r?P9Y#5ojG&TMKE zwYx>TtLqsLkgGu%Z)-nAJ+Uz*fcoI68kF%S^$#w+Hzk1j$nKxjpqxSAchoOpW)S#( zN&vN$`zy6#I8>qEAgV5>0L!SYv#E#*lH5P0E>ZQ#RMFR>iZbJ(wWszBle|9*6{R&Ac=xR`^sP?Raeeb?O#ESr6e&`qNRc8%iWDhQ0K1~{;w*^x zeIe?A$At~3OYp?5Ef$U38@LB58%Z1ioDuVTE!%ufN&t-~fC6J%pu-?h3qOt6Rz6C5 zZeMQ-0%-QIt9Hy?AgUpN>rnpo5_Uu-Ebwpa*o(0pM5iz@k%2^|n(Nj7el76KjVM>A z4Eg@gfd^4J2>^!mw^xRIXBaqLKlcT~6Dmkl^iL;nXW$u$3MA=_AcA?QGl7He1pogU zustf%)-w_HD4jCi13VDXXJ6IN*fDMSgns5*5oJ7xI*xZgl$*PhoT79|##TH}*U$X1 z9D|8x1eREFF~GiuHKqM2@Xsj!f0w>WKIvJSfOgjnU#Ne-7Uc`~Q|jJ&knhsU;T#`( zJ^_`UrrTG>0#q2-b-oVi@?G2LI^By(Fxd$l3LJsjq*5y5M%})!S+f($SAU}ZI}4SN z@+-bFdQeBOo~jAqcwZe$*S5NCXXr_>N!M?I{(X*CcrVo7eK7ETm#+V%z)AX<^EENd z^R;DX)Edmrz?Hh~+n{{@^L=e8J%0jlg}&bfbaf8yLS} zG^oor7|RqoI2B5u)Ps2!a5!pZYfTm9orPK=_H<`@y1b4C$=re_f_wBt$oa07x*p}~ z8jE~w$mxO310Scdj3k9hb-hL&)s_c#&@5`Dp20~8DWhfZnM^zq{+kU_^75#-2cZY> zr9g*2T7h!53vdT;P2j!_99zNQ@1RAe2$^T@;ZF7*-uG9J2@X{m=RIga?-BP*2>Z6 zQNa~`!1EC-wiwb7e`HM|fx(9p> zU8_08{sB?3A1c^%6tx@aCR9Gd=|08qT;Kvh($ M07*qoM6N<$f)e|!wg3PC literal 0 HcmV?d00001 diff --git a/slurm-setuser.in b/slurm-setuser.in new file mode 100644 index 0000000..ae7e6c2 --- /dev/null +++ b/slurm-setuser.in @@ -0,0 +1,229 @@ +#!/bin/bash +# +# Copyright (c) 2017, Philip Kovacs +# All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are met: +# +# 1. Redistributions of source code must retain the above copyright notice, this +# list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the above copyright notice, +# this list of conditions and the following disclaimer in the documentation +# and/or other materials provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +# ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND +# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +prog=`basename $0` +user=root +group=root +yesno=no + +red='\033[0;31m' +green='\033[0;32m' +nc='\033[0m' +pass="${green}[*]${nc}" +fail="${red}[!]${nc}" +ask="[?]" + +# the rpm spec configures these directory variables +dir_conf="%{_sysconfdir}/%{name}" +dir_log="%{_var}/log/%{name}" +dir_run="%{_rundir}/%{name}" +dir_spool="%{_var}/spool/%{name}" +dir_tmpfiles_d="%{_tmpfilesdir}" + +file_slurm_conf="${dir_conf}/slurm.conf" +file_slurmdbd_conf="${dir_conf}/slurmdbd.conf" +file_tmpfiles_d_conf="${dir_tmpfiles_d}/slurm.conf" + +function usage () +{ + echo -e "Sets the slurm installation on this node to run as the specified user and group\n" + echo "Usage: $prog [-u ] [-g ] [-h] [-y]" + echo " -u : the slurm file owner and SlurmUser ($user)" + echo " -g : the slurm file group ($group)" + echo " -y : answer yes to all questions ($yesno)" + echo " -h : print help" +} + +function answer () +{ + while true + do + if [ "${yesno}" = "yes" ]; then + echo -e "${ask} $1 [${yesno}]" + __answer="yes" + break; + fi + + echo -e -n "${ask} " + read -e -p "$1 [${yesno}] " yn + case $yn in + "") __answer=$yesno + break;; + [yY]*) __answer="yes" + break;; + [nN]*) __answer="no" + break;; + *) + echo "Please answer yes or no";; + esac + done +} + +# +# Parse options +# +while getopts "u:g:yh" opt +do + case "$opt" in + h) + usage + exit 2;; + u) + user=$OPTARG;; + g) + group=$OPTARG;; + y) + yesno=yes;; + *) + echo "" + usage + exit 2;; + esac +done + +# +# Run this script only as root +# +if [ $UID -eq 0 ]; then + echo -e "${pass} running as root... good" +else + echo -e "${fail} $prog must be run as root." + exit 1 +fi + +# +# Validate the user and group +# +valid_user="`getent passwd $user || :`" +if [ -n "$valid_user" ]; then + echo -e "${pass} found user $user... good" +else + echo -e "${fail} the specified user was not found... ${user}" + exit 2 +fi +valid_group="`getent group $group || :`" +if [ -n "$valid_group" ]; then + echo -e "${pass} found group $group... good" +else + echo -e "${fail} the specified group was not found... ${group}" + exit 2 +fi + +# +# Slurm services must not be running +# +slurmctld_running_pid="`ps -e | grep slurmctld | grep -v grep | awk '{print $1}'`" +if [ -z "$slurmctld_running_pid" ]; then + echo -e "${pass} slurmctld is not running... good" +else + echo -e "${fail} slurmctld is running... stop it with [systemctl stop slurmctld]" + exit 2 +fi +slurmd_running_pid="`ps -e | grep slurmd | grep -v grep | awk '{print $1}'`" +if [ -z "$slurmd_running_pid" ]; then + echo -e "${pass} slurmd is not running... good" +else + echo -e "${fail} slurmd is running... stop it with [systemctl stop slurmd]" + exit 2 +fi +slurmdbd_running_pid="`ps -e | grep slurmdbd | grep -v grep | awk '{print $1}'`" +if [ -z "$slurmdbd_running_pid" ]; then + echo -e "${pass} slurmdbd is not running... good" +else + echo -e "${fail} slurmdbd is running... stop it with [systemctl stop slurmdbd]" + exit 2 +fi + +# +# Update SlurmUser in the slurm configs +# +for file in "$file_slurm_conf" "$file_slurmdbd_conf" +do + if [ -f "$file" ]; then + answer "update SlurmUser in $file ?" + if [ "$__answer" = "yes" ]; then + sed -i "s|^SlurmUser=.*|SlurmUser=${user}|g" $file + if [ $? -eq 0 ]; then + echo -e "${pass} $file updated successfully" + else + echo -e "${fail} error updating $file" + exit 1 + fi + fi + fi +done + +# +# Update ownership of slurm directories that must be owned by the slurm user +# +for dir in "$dir_log" "$dir_run" "$dir_spool" "$dir_spool/ctld" +do + if [ -d "$dir" ]; then + answer "update ownership of $dir ?" + if [ "$__answer" = "yes" ]; then + chown ${user}:${group} $dir + if [ $? -eq 0 ]; then + echo -e "${pass} $dir updated successfully" + else + echo -e "${fail} error updating $dir" + exit 1 + fi + fi + fi +done + +# +# Update ownership of slurmctld spool files which are owned by the slurm user +# +if [ -d "${dir_spool}/ctld" ]; then + answer "update ownership of files in ${dir_spool}/ctld ?" + if [ "$__answer" = "yes" ]; then + if [ $? -eq 0 ]; then + find ${dir_spool}/ctld -mindepth 1 -exec chown ${user}:${group} {} \; + echo -e "${pass} ${dir_spool}/ctld files updated successfully" + else + echo -e "${fail} error updating ${dir_spool}/ctld files" + exit 1 + fi + fi +fi + +# +# Update the tmpfiles.d config file to the new slurm user +# +if [ -f "$file_tmpfiles_d_conf" ]; then + answer "update tmpfiles.d config $file_tmpfiles_d_conf ?" + if [ "$__answer" = "yes" ]; then + sed -i "s|0755 \(.*\) -$|0755 ${user} ${group} -|g" $file_tmpfiles_d_conf + if [ $? -eq 0 ]; then + echo -e "${pass} $file_tmpfiles_d_conf updated successfully" + else + echo -e "${fail} error updating $file_tmpfiles_d_conf" + exit 1 + fi + fi +fi + +exit 0 diff --git a/slurm-sview.desktop b/slurm-sview.desktop new file mode 100644 index 0000000..469bb9d --- /dev/null +++ b/slurm-sview.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Name=Slurm sview +Name[en]=Slurm sview +Comment=Slurm sview gui to view and modify slurm state +Comment[en]=Slurm sview gui to view and modify slurm state +Exec=sview +Icon=slurm +Terminal=false +Type=Application +Categories=GTK;Science;ParallelComputing;ComputerScience diff --git a/slurm.abignore b/slurm.abignore new file mode 100644 index 0000000..23bb574 --- /dev/null +++ b/slurm.abignore @@ -0,0 +1,10 @@ +[suppress_file] +# suppress abi check for anything not in /usr/lib or /usr/lib64 +filename_not_regexp = (/usr/lib/.*|/usr/lib64/.*) + +# suppress abi check for the slurm plugins +filename_regexp = (/usr/lib/slurm/.*|/usr/lib64/slurm/.*) + +[suppress_type] +# suppress abi check for the slurm internal library +soname_regexp = libslurmfull.* diff --git a/slurm.conf b/slurm.conf new file mode 100644 index 0000000..505b5f2 --- /dev/null +++ b/slurm.conf @@ -0,0 +1,159 @@ +# +# See the slurm.conf man page for more information. +# +ControlMachine=localhost +ControlAddr=127.0.0.1 +#BackupController= +#BackupAddr= +# +AuthType=auth/munge +#CheckpointType=checkpoint/none +CryptoType=crypto/munge +#DisableRootJobs=NO +#EnforcePartLimits=NO +#Epilog= +#EpilogSlurmctld= +#FirstJobId=1 +#MaxJobId=999999 +#GresTypes= +#GroupUpdateForce=0 +#GroupUpdateTime=600 +#JobCheckpointDir=/var/slurm/checkpoint +#JobCredentialPrivateKey= +#JobCredentialPublicCertificate= +#JobFileAppend=0 +#JobRequeue=1 +#JobSubmitPlugins= +#KillOnBadExit=0 +#LaunchType=launch/slurm +#Licenses=foo*4,bar +#MailProg=/bin/true +#MaxJobCount=5000 +#MaxStepCount=40000 +#MaxTasksPerNode=128 +MpiDefault=pmix +#MpiParams=ports=#-# +#PluginDir= +#PlugStackConfig= +#PrivateData=jobs +ProctrackType=proctrack/cgroup +#Prolog= +#PrologFlags= +#PrologSlurmctld= +#PropagatePrioProcess=0 +#PropagateResourceLimits= +#PropagateResourceLimitsExcept= +#RebootProgram= +ReturnToService=1 +#SallocDefaultCommand= +SlurmctldPidFile=/var/run/slurm/slurmctld.pid +SlurmctldPort=6817 +SlurmdPidFile=/var/run/slurm/slurmd.pid +SlurmdPort=6818 +SlurmdSpoolDir=/var/spool/slurm/d +SlurmUser=root +#SlurmdUser=root +#SrunEpilog= +#SrunProlog= +StateSaveLocation=/var/spool/slurm/ctld +SwitchType=switch/none +#TaskEpilog= +TaskPlugin=task/none +#TaskPluginParam= +#TaskProlog= +#TopologyPlugin=topology/tree +#TmpFS=/tmp +#TrackWCKey=no +#TreeWidth= +#UnkillableStepProgram= +#UsePAM=0 +# +# +# TIMERS +#BatchStartTimeout=10 +#CompleteWait=0 +#EpilogMsgTime=2000 +#GetEnvTimeout=2 +#HealthCheckInterval=0 +#HealthCheckProgram= +InactiveLimit=0 +KillWait=30 +#MessageTimeout=10 +#ResvOverRun=0 +MinJobAge=300 +#OverTimeLimit=0 +SlurmctldTimeout=120 +SlurmdTimeout=300 +#UnkillableStepTimeout=60 +#VSizeFactor=0 +Waittime=0 +# +# +# SCHEDULING +#DefMemPerCPU=0 +#FastSchedule=1 +#MaxMemPerCPU=0 +#SchedulerTimeSlice=30 +SchedulerType=sched/backfill +SelectType=select/linear +#SelectTypeParameters= +# +# +# JOB PRIORITY +#PriorityFlags= +#PriorityType=priority/basic +#PriorityDecayHalfLife= +#PriorityCalcPeriod= +#PriorityFavorSmall= +#PriorityMaxAge= +#PriorityUsageResetPeriod= +#PriorityWeightAge= +#PriorityWeightFairshare= +#PriorityWeightJobSize= +#PriorityWeightPartition= +#PriorityWeightQOS= +# +# +# LOGGING AND ACCOUNTING +#AccountingStorageEnforce=0 +#AccountingStorageHost= +#AccountingStorageLoc= +#AccountingStoragePass= +#AccountingStoragePort= +AccountingStorageType=accounting_storage/none +#AccountingStorageUser= +AccountingStoreJobComment=YES +ClusterName=cluster +#DebugFlags= +#JobCompHost= +#JobCompLoc= +#JobCompPass= +#JobCompPort= +JobCompType=jobcomp/none +#JobCompUser= +#JobContainerType=job_container/none +JobAcctGatherFrequency=30 +JobAcctGatherType=jobacct_gather/none +SlurmctldDebug=3 +#SlurmctldLogFile= +SlurmdDebug=3 +#SlurmdLogFile= +#SlurmSchedLogFile= +#SlurmSchedLogLevel= +# +# +# POWER SAVE SUPPORT FOR IDLE NODES (optional) +#SuspendProgram= +#ResumeProgram= +#SuspendTimeout= +#ResumeTimeout= +#ResumeRate= +#SuspendExcNodes= +#SuspendExcParts= +#SuspendRate= +#SuspendTime= +# +# +# COMPUTE NODES +NodeName=localhost CPUs=1 State=UNKNOWN +PartitionName=debug Nodes=localhost Default=YES MaxTime=INFINITE State=UP diff --git a/slurm.rpmlintrc b/slurm.rpmlintrc new file mode 100644 index 0000000..24fde8a --- /dev/null +++ b/slurm.rpmlintrc @@ -0,0 +1,8 @@ +addFilter("E: shared-lib-without-dependency-information") +addFilter("E: missing-dependency-to-logrotate") +addFilter("W: manual-page-warning") +addFilter("W: no-documentation") +addFilter("W: no-manual-page-for-binary") +addFilter("W: non-conffile-in-etc") +addFilter("W: shared-lib-calls-exit") +addFilter("W: spelling-error") diff --git a/slurm.spec b/slurm.spec new file mode 100644 index 0000000..ddcef81 --- /dev/null +++ b/slurm.spec @@ -0,0 +1,840 @@ +# Upstream tarballs use an additional release number +%global ups_rel 1 + +%if "%{ups_rel}" == "1" +%global name_version %{name}-%{version} +%else +%global name_version %{name}-%{version}-%{ups_rel} +%endif + +Name: slurm +Version: 20.11.2 +Release: 1%{?dist} +Summary: Simple Linux Utility for Resource Management +License: GPLv2 and BSD +URL: https://slurm.schedmd.com/ +Source0: http://www.schedmd.com/download/latest/%{name_version}.tar.bz2 +Source1: slurm.conf +Source2: slurmdbd.conf +Source3: slurm-sview.desktop +Source4: slurm-128x128.png +Source5: slurm-setuser.in + +# Release-style versioning of libslurmfull/libslurm_pmi +Patch0: slurm_release_version.patch + +# Build-related patches +Patch10: slurm_perlapi_rpaths.patch +Patch11: slurm_html_doc_path.patch +Patch12: slurm_without_cray.patch +Patch13: slurm_check_version.patch + +# Other patches +Patch20: slurm_pmix_soname.patch +Patch21: slurm_to_python3.patch + +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: desktop-file-utils +BuildRequires: gcc +BuildRequires: perl-devel +BuildRequires: perl-ExtUtils-MakeMaker +BuildRequires: perl-interpreter +BuildRequires: perl-macros +BuildRequires: perl-podlators +BuildRequires: pkgconfig +BuildRequires: pkgconfig(check) +BuildRequires: pkgconfig(lua) +BuildRequires: python3 +BuildRequires: systemd + +BuildRequires: freeipmi-devel +BuildRequires: gtk2-devel +BuildRequires: hdf5-devel +BuildRequires: hwloc-devel +BuildRequires: libcurl-devel +BuildRequires: libssh2-devel +BuildRequires: lz4-devel +BuildRequires: mariadb-devel +BuildRequires: munge-devel +BuildRequires: numactl-devel +BuildRequires: pam-devel +BuildRequires: pmix-devel +BuildRequires: rdma-core-devel +BuildRequires: readline-devel +BuildRequires: rrdtool-devel +BuildRequires: zlib-devel + +# exclude upstream-deprecated 32-bit architectures +ExcludeArch: armv7hl +ExcludeArch: i686 + +Requires: munge +Requires: pmix +%{?systemd_requires} + +%description +Slurm is an open source, fault-tolerant, and highly scalable +cluster management and job scheduling system for Linux clusters. +Components include machine status, partition management, +job management, scheduling and accounting modules. + +# ------------- +# Base Packages +# ------------- + +%package devel +Summary: Development package for Slurm +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +%description devel +Development package for Slurm. This package includes the header files +and libraries for the Slurm API. + +%package doc +Summary: Slurm documentation +%description doc +Documentation package for Slurm. Includes documentation and +html-based configuration tools for Slurm. + +%package gui +Summary: Slurm gui and visual tools +Requires: %{name}%{?_isa} = %{version}-%{release} +%description gui +This package contains the Slurm visual tool sview and +its respective man pages. + +%package libs +Summary: Slurm shared libraries +%description libs +Slurm shared libraries. + +%package pmi +Summary: The %{name} implementation of libpmi and libpmi2 +Requires: %{name}%{?_isa} = %{version}-%{release} +Conflicts: pmix-pmi +%description pmi +The %{name}-pmi package contains the %{name} implementation of +the libpmi and libpmi2 libraries. + +%package pmi-devel +Summary: Development files for %{name}-pmi +Requires: %{name}-pmi%{?_isa} = %{version}-%{release} +Conflicts: pmix-pmi-devel +%description pmi-devel +The %{name}-pmi-devel package contains the development files for +the libpmi and libpmi2 libraries. + +%package rrdtool +Summary: Slurm rrdtool external sensor plugin +Requires: %{name}%{?_isa} = %{version}-%{release} +%description rrdtool +Slurm external sensor plugin for rrdtool. This package is separated from +the base plugins package due to gui dependencies which are unneeded if not +using this plugin. + +%package slurmctld +Summary: Slurm controller daemon +Requires: %{name}%{?_isa} = %{version}-%{release} +%description slurmctld +Slurm controller daemon. Used to manage the job queue, schedule jobs, +and dispatch RPC messages to the slurmd processon the compute nodes +to launch jobs. + +%package slurmd +Summary: Slurm compute node daemon +Requires: %{name}%{?_isa} = %{version}-%{release} +%description slurmd +Slurm compute node daemon. Used to launch jobs on compute nodes + +%package slurmdbd +Summary: Slurm database daemon +Requires: %{name}%{?_isa} = %{version}-%{release} +%description slurmdbd +Slurm database daemon. Used to accept and process database RPCs and upload +database changes to slurmctld daemons on each cluster. + +# ----------------- +# Contribs Packages +# ----------------- + +%package contribs +Summary: Perl tools to print Slurm job state information +Requires: %{name}-perlapi%{?_isa} = %{version}-%{release} +%description contribs +Slurm contribution package which includes the programs seff, +sjobexitmod, sjstat and smail. See their respective man pages +for more information. + +%package nss_slurm +Summary: NSS plugin for slurm +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +%description nss_slurm +nss_slurm is an optional NSS plugin that can permit passwd and group resolution +for a job on the compute node to be serviced through the local slurmstepd +process, rather than through some alternate network-based service such as LDAP, +SSSD, or NSLCD. + +%package openlava +Summary: Openlava/LSF wrappers for transition from OpenLava/LSF to Slurm +Requires: %{name}-perlapi%{?_isa} = %{version}-%{release} +%description openlava +OpenLava wrapper scripts used for helping migrate from OpenLava/LSF to Slurm. + +%package pam_slurm +Summary: PAM module for restricting access to compute nodes via Slurm +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +%description pam_slurm +This module restricts access to compute nodes in a cluster where Slurm +is in use. Access is granted to root, any user with a Slurm-launched job +currently running on the node, or any user who has allocated resources +on the node according to Slurm. + +%package perlapi +Summary: Perl API to Slurm +Requires: perl(:MODULE_COMPAT_%(eval "`perl -V:version`"; echo $version)) +Requires: %{name}-libs%{?_isa} = %{version}-%{release} +%description perlapi +Perl API package for Slurm. This package includes the perl API to provide a +helpful interface to Slurm through Perl. + +%package torque +Summary: Torque/PBS wrappers for transition from Torque/PBS to Slurm +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-perlapi%{?_isa} = %{version}-%{release} +%description torque +Torque wrapper scripts used for helping migrate from Torque/PBS to Slurm. + +%prep +%autosetup -p1 -n %{name_version} +cp %SOURCE1 etc/slurm.conf +cp %SOURCE1 etc/slurm.conf.example +cp %SOURCE2 etc/slurmdbd.conf +cp %SOURCE2 etc/slurmdbd.conf.example +mkdir -p share/applications +mkdir -p share/icons/hicolor/128x128/apps +cp %SOURCE3 share/applications/%{name}-sview.desktop +cp %SOURCE4 share/icons/hicolor/128x128/apps/%{name}.png +mkdir -p extras +cp %SOURCE5 extras/%{name}-setuser.in + +%build +aclocal -I auxdir +autoconf +automake --no-force +# use -fcommon for gcc 10 to avoid multiple definition errors +export CFLAGS="%{build_cflags} -fcommon" +# use -z lazy to allow dlopen with unresolved symbols +export LDFLAGS="%{build_ldflags} -Wl,-z,lazy" +%configure \ + --prefix=%{_prefix} \ + --sysconfdir=%{_sysconfdir}/%{name} \ + --with-pam_dir=%{_libdir}/security \ + --enable-shared \ + --enable-x11 \ + --disable-static \ + --disable-debug \ + --disable-developer \ + --disable-salloc-background \ + --disable-multiple-slurmd \ + --disable-partial_attach \ + --with-shared-libslurm \ + --without-rpath +# patch libtool to remove rpaths +sed -i 's|^hardcode_into_libs=.*|hardcode_into_libs=no|g' libtool +sed -i 's|^hardcode_libdir_flag_spec=.*|hardcode_libdir_flag_spec=""|g' libtool +sed -i 's|^runpath_var=LD_RUN_PATH|runpath_var=DIE_RPATH_DIE|g' libtool + +# configure extras/slurm-setuser script +sed -r ' +s|^dir_conf=.*|dir_conf="%{_sysconfdir}/%{name}"|g; +s|^dir_log=.*|dir_log="%{_var}/log/%{name}"|g; +s|^dir_run=.*|dir_run="%{_rundir}/%{name}"|g; +s|^dir_spool=.*|dir_spool="%{_var}/spool/%{name}"|g; +s|^dir_tmpfiles_d=.*|dir_tmpfiles_d="%{_tmpfilesdir}"|g;' \ + extras/%{name}-setuser.in > extras/%{name}-setuser + +# build base packages +%make_build + +# build contribs packages +# INSTALLDIRS=vendor so perlapi goes to vendor_perl directory +%make_build PERL_MM_PARAMS="INSTALLDIRS=vendor" contrib + +%check +# The test binaries need LD_LIBRARY_PATH to find the compiled slurm library +# in the build tree. +%make_build LD_LIBRARY_PATH="%{buildroot}%{_libdir};%{_libdir}" check + +%install +%make_install +%make_build DESTDIR=%{buildroot} install-contrib + +install -d -m 0755 %{buildroot}%{_sysconfdir}/%{name} +install -d -m 0755 %{buildroot}%{_unitdir} +install -m 0644 -p etc/cgroup.conf.example \ + %{buildroot}%{_sysconfdir}/%{name} +install -m 0644 -p etc/cgroup.conf.example \ + %{buildroot}%{_sysconfdir}/%{name}/cgroup.conf +install -m 0644 -p etc/slurm.conf %{buildroot}%{_sysconfdir}/%{name} +install -m 0644 -p etc/slurm.conf.example %{buildroot}%{_sysconfdir}/%{name} +install -m 0600 -p etc/slurmdbd.conf %{buildroot}%{_sysconfdir}/%{name} +install -m 0600 -p etc/slurmdbd.conf.example %{buildroot}%{_sysconfdir}/%{name} +install -m 0644 -p etc/slurmctld.service %{buildroot}%{_unitdir} +install -m 0644 -p etc/slurmd.service %{buildroot}%{_unitdir} +install -m 0644 -p etc/slurmdbd.service %{buildroot}%{_unitdir} + +# tmpfiles.d file for creating /run/slurm dir after reboot +install -d -m 0755 %{buildroot}%{_tmpfilesdir} +cat >%{buildroot}%{_tmpfilesdir}/%{name}.conf <%{buildroot}%{_sysconfdir}/logrotate.d/%{name} < %{buildroot}%{_mandir}/man1/${prog}.1 +done + +# contribs docs +install -d -m 0755 %{buildroot}%{_docdir}/%{name}/contribs/lua +install -m 0644 contribs/README %{buildroot}%{_docdir}/%{name}/contribs +install -m 0644 contribs/lua/*.lua %{buildroot}%{_docdir}/%{name}/contribs/lua + +# remove libtool archives +find %{buildroot} -name \*.a -o -name \*.la | xargs rm -f +# remove libslurmfull, libslurm_pmi symlinks (non-development, internal libraries) +rm -rf %{buildroot}%{_libdir}/libslurmfull.so +rm -rf %{buildroot}%{_libdir}/libslurm_pmi.so +# remove auth_none plugin +rm -f %{buildroot}%{_libdir}/%{name}/auth_none.so +# remove example plugins +rm -f %{buildroot}%{_libdir}/%{name}/job_submit_defaults.so +rm -f %{buildroot}%{_libdir}/%{name}/job_submit_logging.so +rm -f %{buildroot}%{_libdir}/%{name}/job_submit_partition.so +# remove cray files +rm -f %{buildroot}%{_mandir}/man5/cray* +# remove perl cruft +rm -f %{buildroot}%{perl_vendorarch}/auto/Slurm*/.packlist +rm -f %{buildroot}%{perl_vendorarch}/auto/Slurm*/Slurm*.bs +rm -f %{buildroot}%{perl_archlib}/perllocal.pod + +%ldconfig_scriptlets devel +%ldconfig_scriptlets libs + +# ----- +# Slurm +# ----- + +%files +%doc CONTRIBUTING.md DISCLAIMER META NEWS README.rst RELEASE_NOTES +%license COPYING LICENSE.OpenSSL +%dir %{_libdir}/%{name} +%dir %{_rundir}/%{name} +%dir %{_sysconfdir}/%{name} +%dir %{_var}/log/%{name} +%dir %{_var}/spool/%{name} +%dir %{_var}/spool/%{name}/ctld +%dir %{_var}/spool/%{name}/d +%config(noreplace) %{_sysconfdir}/%{name}/cgroup.conf +%config(noreplace) %{_sysconfdir}/%{name}/slurm.conf +%{_bindir}/s* +%{_bindir}/%{name}-setuser +%{_libdir}/%{name}/*.so +%{_mandir}/man1/*.1* +%{_mandir}/man5/*.5* +%{_mandir}/man8/*.8* +%{_sysconfdir}/logrotate.d/%{name} +%{_sysconfdir}/%{name}/cgroup*.conf.example +%{_sysconfdir}/%{name}/slurm.conf.example +%{_tmpfilesdir}/slurm.conf + +# ----------- +# Slurm-devel +# ----------- + +%files devel +%dir %{_includedir}/%{name} +%dir %{_libdir}/%{name}/src +%dir %{_libdir}/%{name}/src/sattach +%dir %{_libdir}/%{name}/src/srun +%{_includedir}/%{name}/slurm.h +%{_includedir}/%{name}/slurm_errno.h +%{_includedir}/%{name}/slurmdb.h +%{_includedir}/%{name}/smd_ns.h +%{_includedir}/%{name}/spank.h +%{_libdir}/libslurm*.so +%{_libdir}/%{name}/src/sattach/sattach.wrapper.c +%{_libdir}/%{name}/src/srun/srun.wrapper.c +%{_mandir}/man3/*.3.* + +# --------- +# Slurm-doc +# --------- + +%files doc +%dir %{_docdir}/%{name} +%dir %{_docdir}/%{name}/html +%{_docdir}/%{name}/html/* + +# --------- +# Slurm-gui +# --------- + +%files gui +%{_bindir}/sview +%{_datadir}/applications/*.desktop +%{_datadir}/icons/hicolor/*/apps/%{name}.png +%{_mandir}/man1/sview.1* + +%post gui +/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || : + +%postun gui +if [ $1 -eq 0 ] ; then + /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null + /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : +fi + +%posttrans gui +/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : + +# ---------- +# Slurm-libs +# ---------- + +%files libs +%{_libdir}/libslurm.so.* +%{_libdir}/libslurmfull-*.so +%{_libdir}/libslurm_pmi-*.so + +# --------- +# Slurm-pmi +# --------- + +%files pmi +%{_libdir}/libpmi.so.0* +%{_libdir}/libpmi2.so.0* + +# --------------- +# Slurm-pmi-devel +# --------------- + +%files pmi-devel +%{_includedir}/%{name}/pmi*.h +%{_libdir}/libpmi.so +%{_libdir}/libpmi2.so + +# ------------- +# Slurm-rrdtool +# ------------- + +%files rrdtool +%{_libdir}/%{name}/ext_sensors_rrd.so + +# --------- +# Slurmctld +# --------- + +%files slurmctld +%{_mandir}/man8/slurmctld.8* +%{_sbindir}/slurmctld +%{_unitdir}/slurmctld.service +%ghost %{_rundir}/%{name}/slurmctld.pid + +# ------ +# Slurmd +# ------ + +%files slurmd +%{_mandir}/man8/slurmd.8* +%{_mandir}/man8/slurmstepd.8* +%{_sbindir}/slurmd +%{_sbindir}/slurmstepd +%{_unitdir}/slurmd.service +%ghost %{_rundir}/%{name}/slurmd.pid + +# -------- +# Slurmdbd +# -------- + +%files slurmdbd +%config(noreplace) %{_sysconfdir}/%{name}/slurmdbd.conf +%{_libdir}/%{name}/accounting_storage_mysql.so +%{_mandir}/man5/slurmdbd.conf.5* +%{_mandir}/man8/slurmdbd.8* +%{_sbindir}/slurmdbd +%{_sysconfdir}/%{name}/slurmdbd.conf.example +%{_unitdir}/slurmdbd.service +%ghost %{_rundir}/%{name}/slurmdbd.pid + +# -------------- +# Slurm-contribs +# -------------- + +%files contribs +%dir %{_docdir}/%{name} +%dir %{_docdir}/%{name}/contribs +%dir %{_docdir}/%{name}/contribs/lua +%{_docdir}/%{name}/contribs/README +%{_docdir}/%{name}/contribs/lua/*.lua +%{_bindir}/seff +%{_bindir}/sgather +%{_bindir}/sjobexitmod +%{_bindir}/sjstat +%{_bindir}/smail +%{_mandir}/man1/sgather.1* +%{_mandir}/man1/sjobexitmod.1* +%{_mandir}/man1/sjstat.1* + +# --------------- +# Slurm-nss_slurm +# --------------- + +%files nss_slurm +%{_libdir}/libnss_slurm.so.2 + +# -------------- +# Slurm-openlava +# -------------- + +%files openlava +%{_bindir}/bjobs +%{_bindir}/bkill +%{_bindir}/bsub +%{_bindir}/lsid +%{_mandir}/man1/bjobs.1* +%{_mandir}/man1/bkill.1* +%{_mandir}/man1/bsub.1* +%{_mandir}/man1/lsid.1* + +# --------------- +# Slurm-pam_slurm +# --------------- + +%files pam_slurm +%{_libdir}/security/pam_slurm.so +%{_libdir}/security/pam_slurm_adopt.so + +# ------------- +# Slurm-perlapi +# ------------- + +%files perlapi +%dir %{perl_vendorarch}/Slurm +%dir %{perl_vendorarch}/auto/Slurm +%dir %{perl_vendorarch}/auto/Slurmdb +%{_mandir}/man3/Slurm*.3pm* +%{perl_vendorarch}/Slurm.pm +%{perl_vendorarch}/Slurm/*.pm +%{perl_vendorarch}/Slurmdb.pm +%{perl_vendorarch}/auto/Slurm/Slurm.so +%{perl_vendorarch}/auto/Slurmdb/Slurmdb.so +%{perl_vendorarch}/auto/Slurmdb/autosplit.ix + +# ------------ +# Slurm-torque +# ------------ + +%files torque +%{_bindir}/generate_pbs_nodefile +%{_bindir}/mpiexec +%{_bindir}/pbsnodes +%{_bindir}/qalter +%{_bindir}/qdel +%{_bindir}/qhold +%{_bindir}/qrerun +%{_bindir}/qrls +%{_bindir}/qstat +%{_bindir}/qsub +%{_libdir}/%{name}/job_submit_pbs.so +%{_libdir}/%{name}/spank_pbs.so +%{_mandir}/man1/pbsnodes.1* +%{_mandir}/man1/qalter.1* +%{_mandir}/man1/qdel.1* +%{_mandir}/man1/qhold.1* +%{_mandir}/man1/qrerun.1* +%{_mandir}/man1/qrls.1* +%{_mandir}/man1/qstat.1* +%{_mandir}/man1/qsub.1* +%{_mandir}/man1/mpiexec.1* + +%post slurmctld +%systemd_post slurmctld.service + +%preun slurmctld +%systemd_preun slurmctld.service + +%postun slurmctld +%systemd_postun_with_restart slurmctld.service + +%post slurmd +%systemd_post slurmd.service + +%preun slurmd +%systemd_preun slurmd.service + +%postun slurmd +%systemd_postun_with_restart slurmd.service + +%post slurmdbd +%systemd_post slurmdbd.service + +%preun slurmdbd +%systemd_preun slurmdbd.service + +%postun slurmdbd +%systemd_postun_with_restart slurmdbd.service + +%changelog +* Tue Jan 5 2021 Philip Kovacs - 20.11.2-1 +- Release of 20.11.2 + +* Tue Nov 17 2020 Philip Kovacs - 20.02.6-1 +- Release of 20.02.6 +- Closes security issues CVE-2020-27745 and CVE-2020-27746 + +* Wed Jul 29 2020 Fedora Release Engineering - 20.02.3-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Sat Jun 27 2020 Jitka Plesnikova - 20.02.3-4 +- Perl 5.32 re-rebuild updated packages + +* Thu Jun 25 2020 Orion Poplawski - 20.02.3-3 +- Rebuild for hdf5 1.10.6 + +* Mon Jun 22 2020 Jitka Plesnikova - 20.02.3-2 +- Perl 5.32 rebuild + +* Mon May 25 2020 Philip Kovacs - 20.02.3-1 +- Release of 20.02.3 + +* Tue May 5 2020 Philip Kovacs - 20.02.2-1 +- Release of 20.02.2 + +* Mon Mar 30 2020 Philip Kovacs - 19.05.6-1 +- Release of 19.05.6 + +* Thu Jan 30 2020 Fedora Release Engineering - 19.05.5-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Jan 22 2020 Philip Kovacs - 19.05.5-2 +- Use cflag -fcommon to allow for building with gcc 10 + +* Mon Dec 23 2019 Philip Kovacs - 19.05.5-1 +- Release of 19.05.5 +- Closes security issues CVE-2019-19727, CVE-2019-19728 + +* Mon Nov 18 2019 Philip Kovacs - 19.05.4-1 +- Release of 19.05.4 + +* Mon Oct 7 2019 Philip Kovacs - 19.05.3-1 +- Release of 19.05.3 + +* Sun Aug 25 2019 Zbigniew Jędrzejewski-Szmek - 19.05.2-2 +- Rebuilt for hwloc-2.0 + +* Tue Aug 13 2019 Philip Kovacs - 19.05.2-1 +- Release of 19.05.2 + +* Fri Jul 26 2019 Fedora Release Engineering - 19.05.1-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild + +* Sun Jul 21 2019 Philip Kovacs - 19.05.1-2 +- Create slurm-pmi and slurm-pmi-devel subpackages for pmi/pmi2 libs +- Remove rpm-generated pkgconfig files until upstream provides them +- Do not pull dependencies with pkgconfig unless package uses it + +* Mon Jul 15 2019 Philip Kovacs - 19.05.1-1 +- Release of 19.05.1 +- Closes security issue (CVE-2019-12838) +- Configure for UCX support on supported arches + +* Tue Jul 2 2019 Philip Kovacs - 19.05.0-5 +- Do not install slurm implementation of libpmi/pmi2 libraries +- in favor of the faster implementation provided by pmix +- Remove pmi environment module formerly used to select the slurm +- vs pmix implementations of libpmi/pmi2 + +* Wed Jun 19 2019 Philip Kovacs - 19.05.0-4 +- Correct the configure for pmix +- Correct the slurm_pmix_soname patch + +* Wed Jun 19 2019 Philip Kovacs - 19.05.0-3 +- Stop using autotools macros that were removed from rpm + +* Sun Jun 9 2019 Philip Kovacs - 19.05.0-2 +- Exclude upstream-deprecated 32-bit architectures + +* Sun Jun 9 2019 Philip Kovacs - 19.05.0-1 +- Release of 19.05.0 +- Added nss_plugin subpackage for optional nss plugin +- Added patch to fix 19.05.0 testsuite +- Adjusted cray patch to remove all cray, cray_aries plugins +- Reflect all upstream plugin additions/deletions +- Remove openssl build dependency + +* Thu May 30 2019 Jitka Plesnikova - 18.08.7-2 +- Perl 5.30 rebuild + +* Fri Apr 12 2019 Philip Kovacs - 18.08.7-1 +- Release of 18.08.7 + +* Sat Mar 16 2019 Orion Poplawski - 18.08.6-2 +- Rebuild for hdf5 1.10.5 + +* Thu Mar 7 2019 Philip Kovacs - 18.08.6-1 +- Release of 18.08.6 + +* Sun Feb 17 2019 Igor Gnatenko - 18.08.5-2 +- Rebuild for readline 8.0 + +* Thu Jan 31 2019 Philip Kovacs - 18.08.5-1 +- Release of 18.08.5 + +* Thu Jan 31 2019 Philip Kovacs - 17.11.13-2 +- Fix build issue on 32-bit architectures + +* Wed Jan 30 2019 Philip Kovacs - 17.11.13-1 +- Release of 17.11.13 +- Closes security issue CVE-2019-6438 + +* Wed Oct 24 2018 Philip Kovacs - 17.11.12-1 +- Release of 17.11.12 + +* Sat Oct 20 2018 Philip Kovacs - 17.11.11-1 +- Release of 17.11.11 + +* Thu Oct 11 2018 Yu Watanabe - 17.11.10-1 +- Release of 17.11.10 + +* Fri Sep 28 2018 Philip Kovacs - 17.11.9-2 +- Release of 17.11.9-2 (new upstream tarball) + +* Fri Aug 10 2018 Philip Kovacs - 17.11.9-1 +- Release of 17.11.9 + +* Fri Jul 20 2018 Philip Kovacs - 17.11.8-1 +- Release of 17.11.8 + +* Sat Jul 14 2018 Fedora Release Engineering - 17.11.7-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild + +* Wed Jun 27 2018 Jitka Plesnikova - 17.11.7-2 +- Perl 5.28 rebuild + +* Fri Jun 1 2018 Philip Kovacs - 17.11.7-1 +- Release of 17.11.7 +- Closes security issue CVE-2018-10995 + +* Sat May 12 2018 Philip Kovacs - 17.11.6-1 +- Release of 17.11.6 +- Added patch to avoid building contribs/cray (Yu Watanabe) +- Added lz4 support via new BuildRequires (Yu Watanabe) +- Replaced obsolete packages libibmad-devel and libibumad-devel + with rdma-core-devel (Yu Watanabe) +- Updated package descriptions (Yu Watanabe) + +* Fri Mar 16 2018 Philip Kovacs - 17.11.5-1 +- Release of 17.11.5 +- Closes security issue CVE-2018-7033 + +* Sat Mar 3 2018 Philip Kovacs - 17.11.4-1 +- Release of 17.11.4 +- Add perl-devel, python3 to build requirements +- Add patch to convert python references to python3 +- Use LDFLAGS to disable -z now instaed of _hardened_ldflags + +* Thu Feb 15 2018 Philip Kovacs - 17.11.3-3 +- Add perl-interpreter to BuildRequires + +* Thu Feb 15 2018 Philip Kovacs - 17.11.3-2 +- Rebuild for libevent soname bump + +* Sat Feb 10 2018 Philip Kovacs - 17.11.3-1 +- Release of 17.11 series +- Re-aligned rpm packaging to be closer to upstream +- Enabled new slurm native X11 support using ssh2 +- Enabled new shared libslurm for smaller code size +- Enabled `check` unit testing via check-devel +- Added environment module support for pmi/slurm +- Add dependency to pmix +- Removed gtk-update-icon-cache scriptlets +- Use new ldconfig_scriptlets macro + +* Fri Feb 09 2018 Fedora Release Engineering - 17.02.9-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Thu Nov 16 2017 Philip Kovacs - 17.02.9-3 +- Added patch to enable full relro builds and operation +- Added patch to link knl_generic plugin to libnuma if available +- Remove the following cray or bluegene-only plugins +- job_container/cncu, select/alps, select/bluegene +- Rename slurm_setuser to slurm-setuser +- Minor corrections to slurm.conf + +* Wed Nov 1 2017 Philip Kovacs - 17.02.9-2 +- Correct desktop categories for rpmgrill.desktop-lint + +* Wed Nov 1 2017 Philip Kovacs - 17.02.9-1 +- Version bump to close CVE-2017-15566 +- Adjusted patches per closure of upstream bug #3942 +- Added desktop categories per rpmgrill.desktop-lint + +* Wed Oct 25 2017 Philip Kovacs - 17.02.8-1 +- Version bump, patches adjusted + +* Thu Oct 5 2017 Philip Kovacs - 17.02.7-4 +- Patch changes per resolution of upstream bug #4101: +- salloc/sbatch/srun: must be root to use --uid/--gid options +- salloc: supplemental groups dropped after setuid + +* Thu Oct 5 2017 Philip Kovacs - 17.02.7-3 +- Added BuildRequires gcc and minor packaging conformance items + +* Sat Sep 16 2017 Philip Kovacs - 17.02.7-2 +- Removed unneeded Requires(pre) + +* Thu Sep 14 2017 Philip Kovacs - 17.02.7-1 +- Packaging for Fedora diff --git a/slurm_check_version.patch b/slurm_check_version.patch new file mode 100644 index 0000000..5b13045 --- /dev/null +++ b/slurm_check_version.patch @@ -0,0 +1,13 @@ +diff --git a/configure.ac b/configure.ac +index d69d47348a..90f82536ce 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -240,7 +240,7 @@ X_AC_CGROUP + # Tests for Check + # + +-PKG_CHECK_MODULES([CHECK], [check >= 0.9.8], [ac_have_check="yes"], [ac_have_check="no"]) ++PKG_CHECK_MODULES([CHECK], [check >= 0.9.10], [ac_have_check="yes"], [ac_have_check="no"]) + AM_CONDITIONAL(HAVE_CHECK, test "x$ac_have_check" = "xyes") + + # diff --git a/slurm_html_doc_path.patch b/slurm_html_doc_path.patch new file mode 100644 index 0000000..04c1475 --- /dev/null +++ b/slurm_html_doc_path.patch @@ -0,0 +1,9 @@ +--- a/doc/html/Makefile.am 2017-10-25 15:55:38.622808585 -0400 ++++ b/doc/html/Makefile.am 2017-10-25 15:56:07.236582868 -0400 +@@ -1,5 +1,5 @@ + +-htmldir = ${datadir}/doc/${PACKAGE}-${SLURM_VERSION_STRING}/html ++htmldir = ${datadir}/doc/${PACKAGE}/html + + generated_html = \ + accounting.html \ diff --git a/slurm_perlapi_rpaths.patch b/slurm_perlapi_rpaths.patch new file mode 100644 index 0000000..f20bd54 --- /dev/null +++ b/slurm_perlapi_rpaths.patch @@ -0,0 +1,26 @@ +diff --git a/contribs/perlapi/libslurm/perl/Makefile.PL.in b/contribs/perlapi/libslurm/perl/Makefile.PL.in +index fcae43796d..34c1ad1411 100644 +--- a/contribs/perlapi/libslurm/perl/Makefile.PL.in ++++ b/contribs/perlapi/libslurm/perl/Makefile.PL.in +@@ -77,7 +77,7 @@ DESTDIR_BUG + # AIX has problems with not always having the correct + # flags so we have to add some :) + my $os = lc(`uname`); +-my $other_ld_flags = "-Wl,-rpath,@top_builddir@/src/api/.libs -Wl,-rpath,@prefix@/lib"; ++my $other_ld_flags = ""; + $other_ld_flags = " -brtl -G -bnoentry -bgcbypass:1000 -bexpfull" + if $os =~ "aix"; + +diff --git a/contribs/perlapi/libslurmdb/perl/Makefile.PL.in b/contribs/perlapi/libslurmdb/perl/Makefile.PL.in +index 2db028c113..d143c20190 100644 +--- a/contribs/perlapi/libslurmdb/perl/Makefile.PL.in ++++ b/contribs/perlapi/libslurmdb/perl/Makefile.PL.in +@@ -76,7 +76,7 @@ DESTDIR_BUG + # AIX has problems with not always having the correct + # flags so we have to add some :) + my $os = lc(`uname`); +-my $other_ld_flags = "-Wl,-rpath,@top_builddir@/src/db_api/.libs -Wl,-rpath,@prefix@/lib"; ++my $other_ld_flags = ""; + $other_ld_flags = " -brtl -G -bnoentry -bgcbypass:1000 -bexpfull" + if $os =~ "aix"; + diff --git a/slurm_pmix_soname.patch b/slurm_pmix_soname.patch new file mode 100644 index 0000000..39ee74f --- /dev/null +++ b/slurm_pmix_soname.patch @@ -0,0 +1,35 @@ +diff --git a/src/plugins/mpi/pmix/mpi_pmix.c b/src/plugins/mpi/pmix/mpi_pmix.c +index 1bf287ff44..8702a2bd17 100644 +--- a/src/plugins/mpi/pmix/mpi_pmix.c ++++ b/src/plugins/mpi/pmix/mpi_pmix.c +@@ -109,7 +109,7 @@ static void *_libpmix_open(void) + #elif defined PMIXP_V3_LIBPATH + xstrfmtcat(full_path, "%s/", PMIXP_V3_LIBPATH); + #endif +- xstrfmtcat(full_path, "libpmix.so"); ++ xstrfmtcat(full_path, "libpmix.so.2"); + + lib_plug = dlopen(full_path, RTLD_LAZY | RTLD_GLOBAL); + xfree(full_path); +diff --git a/src/plugins/mpi/pmix/pmixp_dconn_ucx.c b/src/plugins/mpi/pmix/pmixp_dconn_ucx.c +index f6c91adc93..6021faa01e 100644 +--- a/src/plugins/mpi/pmix/pmixp_dconn_ucx.c ++++ b/src/plugins/mpi/pmix/pmixp_dconn_ucx.c +@@ -167,7 +167,7 @@ static int _load_ucx_lib() + * we have from autoconf + */ + char *full_path = NULL; +- xstrfmtcat(full_path, "%s/libucp.so", PMIXP_UCX_LIBPATH); ++ xstrfmtcat(full_path, "%s/libucp.so.0", PMIXP_UCX_LIBPATH); + _ucx_lib_handler = dlopen(full_path, RTLD_LAZY | RTLD_GLOBAL); + xfree(full_path); + if (_ucx_lib_handler) { +@@ -178,7 +178,7 @@ static int _load_ucx_lib() + * known by dynamic linker. + */ + #endif +- _ucx_lib_handler = dlopen("libucp.so", RTLD_LAZY | RTLD_GLOBAL); ++ _ucx_lib_handler = dlopen("libucp.so.0", RTLD_LAZY | RTLD_GLOBAL); + if (!_ucx_lib_handler) { + char *err = dlerror(); + PMIXP_ERROR("Cannot open UCX lib: %s", (err) ? err : "unknown"); diff --git a/slurm_release_version.patch b/slurm_release_version.patch new file mode 100644 index 0000000..a51e4c6 --- /dev/null +++ b/slurm_release_version.patch @@ -0,0 +1,37 @@ +diff --git a/src/api/Makefile.am b/src/api/Makefile.am +index 53af7f8d7f..81d41c1161 100644 +--- a/src/api/Makefile.am ++++ b/src/api/Makefile.am +@@ -46,14 +46,7 @@ current = $(SLURM_API_CURRENT) + age = $(SLURM_API_AGE) + rev = $(SLURM_API_REVISION) + +-lib_LTLIBRARIES = libslurm.la +- +-# The ABI of libslurmfull can easily change from 1 micro version to another. +-# To avoid issue we will install this lib alongside the plugins to protect +-# from version issues. +-# +-# The unversioned libslurm_pmi is hidden there as well. +-pkglib_LTLIBRARIES = libslurmfull.la libslurm_pmi.la ++lib_LTLIBRARIES = libslurm.la libslurmfull.la libslurm_pmi.la + + # BUILT_SOURCES tells automake that when "make" is called, these targets + # need to be built before anything else. +@@ -158,14 +151,14 @@ libslurmfull_la_SOURCES = + libslurmfull_la_LIBADD = $(convenience_libs) + libslurmfull_la_LDFLAGS = \ + $(LIB_LDFLAGS) \ +- -avoid-version \ ++ -release $(SLURM_VERSION_STRING) \ + $(FULL_OTHER_FLAGS) + + libslurm_pmi_la_SOURCES = + libslurm_pmi_la_LIBADD = $(convenience_libs) + libslurm_pmi_la_LDFLAGS = \ + $(LIB_LDFLAGS) \ +- -avoid-version \ ++ -release $(SLURM_VERSION_STRING) \ + $(SLURM_PMI_OTHER_FLAGS) + + # This was made so we could export all symbols from libcommon diff --git a/slurm_service_files.patch b/slurm_service_files.patch new file mode 100644 index 0000000..fc328c4 --- /dev/null +++ b/slurm_service_files.patch @@ -0,0 +1,39 @@ +diff --git a/etc/slurmctld.service.in b/etc/slurmctld.service.in +index 6f175ad651..82a128ac0a 100644 +--- a/etc/slurmctld.service.in ++++ b/etc/slurmctld.service.in +@@ -8,7 +8,7 @@ Type=forking + EnvironmentFile=-/etc/sysconfig/slurmctld + ExecStart=@sbindir@/slurmctld $SLURMCTLD_OPTIONS + ExecReload=/bin/kill -HUP $MAINPID +-PIDFile=/var/run/slurmctld.pid ++PIDFile=/var/run/slurm/slurmctld.pid + LimitNOFILE=65536 + @SYSTEMD_TASKSMAX_OPTION@ + +diff --git a/etc/slurmd.service.in b/etc/slurmd.service.in +index b36433dd7d..146b6574d2 100644 +--- a/etc/slurmd.service.in ++++ b/etc/slurmd.service.in +@@ -8,7 +8,7 @@ Type=forking + EnvironmentFile=-/etc/sysconfig/slurmd + ExecStart=@sbindir@/slurmd $SLURMD_OPTIONS + ExecReload=/bin/kill -HUP $MAINPID +-PIDFile=/var/run/slurmd.pid ++PIDFile=/var/run/slurm/slurmd.pid + KillMode=process + LimitNOFILE=131072 + LimitMEMLOCK=infinity +diff --git a/etc/slurmdbd.service.in b/etc/slurmdbd.service.in +index c80feb9d7c..97a95c0e57 100644 +--- a/etc/slurmdbd.service.in ++++ b/etc/slurmdbd.service.in +@@ -8,7 +8,7 @@ Type=forking + EnvironmentFile=-/etc/sysconfig/slurmdbd + ExecStart=@sbindir@/slurmdbd $SLURMDBD_OPTIONS + ExecReload=/bin/kill -HUP $MAINPID +-PIDFile=/var/run/slurmdbd.pid ++PIDFile=/var/run/slurm/slurmdbd.pid + LimitNOFILE=65536 + @SYSTEMD_TASKSMAX_OPTION@ + diff --git a/slurm_to_python3.patch b/slurm_to_python3.patch new file mode 100644 index 0000000..841e773 --- /dev/null +++ b/slurm_to_python3.patch @@ -0,0 +1,20 @@ +diff --git a/contribs/cray/csm/slurmconfgen_smw.py b/contribs/cray/csm/slurmconfgen_smw.py +index 1d1aadedaf..b2f65c242b 100644 +--- a/contribs/cray/csm/slurmconfgen_smw.py ++++ b/contribs/cray/csm/slurmconfgen_smw.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/env python3 + # + # Copyright 2015-2016 Hewlett Packard Enterprise Development LP + """ A script to generate slurm.conf and gres.conf for a +diff --git a/contribs/cray/slurmconfgen.py.in b/contribs/cray/slurmconfgen.py.in +index 31de1a0c28..269b1d55a7 100644 +--- a/contribs/cray/slurmconfgen.py.in ++++ b/contribs/cray/slurmconfgen.py.in +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + # + # Copyright 2013 Hewlett Packard Enterprise Development LP + # diff --git a/slurm_without_cray.patch b/slurm_without_cray.patch new file mode 100644 index 0000000..6ebc6da --- /dev/null +++ b/slurm_without_cray.patch @@ -0,0 +1,95 @@ +diff --git a/contribs/Makefile.am b/contribs/Makefile.am +index 3f6fac0a85..6c466b4eb5 100644 +--- a/contribs/Makefile.am ++++ b/contribs/Makefile.am +@@ -1 +1 @@ +-SUBDIRS = cray lua mic nss_slurm openlava pam pam_slurm_adopt perlapi pmi pmi2 seff sgather sgi sjobexit torque ++SUBDIRS = lua mic nss_slurm openlava pam pam_slurm_adopt perlapi pmi pmi2 seff sgather sgi sjobexit torque +diff --git a/src/plugins/core_spec/Makefile.am b/src/plugins/core_spec/Makefile.am +index 44b1ed67c0..f06bc541d7 100644 +--- a/src/plugins/core_spec/Makefile.am ++++ b/src/plugins/core_spec/Makefile.am +@@ -1,3 +1,3 @@ + # Makefile for core specialization plugins + +-SUBDIRS = cray_aries none ++SUBDIRS = none +diff --git a/src/plugins/job_submit/Makefile.am b/src/plugins/job_submit/Makefile.am +index e393bcfb1c..b98cf2e000 100644 +--- a/src/plugins/job_submit/Makefile.am ++++ b/src/plugins/job_submit/Makefile.am +@@ -2,7 +2,6 @@ + + SUBDIRS = \ + all_partitions \ +- cray_aries \ + defaults \ + logging \ + lua \ +diff --git a/src/plugins/mpi/Makefile.am b/src/plugins/mpi/Makefile.am +index 4d055e2030..1a44dfb2ab 100644 +--- a/src/plugins/mpi/Makefile.am ++++ b/src/plugins/mpi/Makefile.am +@@ -1,6 +1,6 @@ + # Makefile for mpi plugins + +-SUBDIRS = cray_shasta none pmi2 ++SUBDIRS = none pmi2 + if HAVE_PMIX + SUBDIRS += pmix + endif +diff --git a/src/plugins/node_features/Makefile.am b/src/plugins/node_features/Makefile.am +index f5ef036303..d955c51ba1 100644 +--- a/src/plugins/node_features/Makefile.am ++++ b/src/plugins/node_features/Makefile.am +@@ -1,3 +1,3 @@ + # Makefile for node_features plugins + +-SUBDIRS = knl_cray knl_generic ++SUBDIRS = knl_generic +diff --git a/src/plugins/power/Makefile.am b/src/plugins/power/Makefile.am +index ccde44c322..c6171740c1 100644 +--- a/src/plugins/power/Makefile.am ++++ b/src/plugins/power/Makefile.am +@@ -1,3 +1,3 @@ + # Makefile for power management plugins + +-SUBDIRS = common cray_aries none ++SUBDIRS = common none +diff --git a/src/plugins/select/Makefile.am b/src/plugins/select/Makefile.am +index 38bae0ff5c..ca7133f43f 100644 +--- a/src/plugins/select/Makefile.am ++++ b/src/plugins/select/Makefile.am +@@ -1,7 +1,7 @@ + # Makefile for node selection plugins + + # NOTE: other must be in the list before cray_aries lest the build break +-SUBDIRS = other cons_common cons_res cons_tres cray_aries linear ++SUBDIRS = other cons_common cons_res cons_tres linear + + # Each plugin here needs a plugin_id. + # Here are the current plugin_ids for each plugin. +diff --git a/src/plugins/switch/Makefile.am b/src/plugins/switch/Makefile.am +index 365f5b8d93..dc56a01a55 100644 +--- a/src/plugins/switch/Makefile.am ++++ b/src/plugins/switch/Makefile.am +@@ -1,7 +1,3 @@ + # Makefile for switch plugins + + SUBDIRS = none +- +-if WITH_SWITCH_CRAY_ARIES +-SUBDIRS += cray_aries +-endif +diff --git a/src/plugins/task/Makefile.am b/src/plugins/task/Makefile.am +index f79282f3e6..356cdcd500 100644 +--- a/src/plugins/task/Makefile.am ++++ b/src/plugins/task/Makefile.am +@@ -1,6 +1,6 @@ + # Makefile for task plugins + +-SUBDIRS = affinity cray_aries none ++SUBDIRS = affinity none + + if WITH_CGROUP + SUBDIRS += cgroup diff --git a/slurmdbd.conf b/slurmdbd.conf new file mode 100644 index 0000000..edcb4a8 --- /dev/null +++ b/slurmdbd.conf @@ -0,0 +1,44 @@ +# +# See the slurmdbd.conf man page for more information. +# +# Archive info +#ArchiveJobs=yes +#ArchiveDir="/tmp" +#ArchiveSteps=yes +#ArchiveScript= +#JobPurge=12 +#StepPurge=1 +# +# Authentication info +AuthType=auth/munge +#AuthInfo=/var/run/munge/munge.socket.2 +# +# slurmdbd info +DebugLevel=4 +#DefaultQOS=normal,standby +DbdAddr=localhost +DbdHost=localhost +#DbdPort=6819 +#LogFile= +#MessageTimeout=300 +PidFile=/var/run/slurm/slurmdbd.pid +#PluginDir= +#PrivateData=accounts,users,usage,jobs +PurgeEventAfter=1month +PurgeJobAfter=1month +PurgeResvAfter=1month +PurgeStepAfter=1month +PurgeSuspendAfter=1month +PurgeTXNAfter=1month +PurgeUsageAfter=1month +SlurmUser=root +#TrackWCKey=yes +# +# Database info +StorageType=accounting_storage/mysql +#StorageHost=localhost +#StoragePort=1234 +StoragePass=password +StorageUser=root +#StorageLoc=slurm_acct_db + diff --git a/sources b/sources new file mode 100644 index 0000000..5231d00 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +SHA512 (slurm-20.11.2.tar.bz2) = 6743b8125733006e0e5ef0491b950efbeb05af0cf45f54a2c142ddbb57ea639615539bc1bcbd1985a850c20d268b8a995c81c5547a02404f9b6a61fee19f68ed From 4f134750300b7bd800572d5b48d0c5fe7d50d0e5 Mon Sep 17 00:00:00 2001 From: Philip Kovacs Date: Wed, 6 Jan 2021 14:04:57 -0500 Subject: [PATCH 03/12] Simplify spec; add check package version patch --- slurm.spec | 69 +++---------------- slurm_check_version.patch | 13 ++++ ...rsion.patch => slurm_release_version.patch | 0 3 files changed, 23 insertions(+), 59 deletions(-) create mode 100644 slurm_check_version.patch rename slurm_libslurmfull_version.patch => slurm_release_version.patch (100%) diff --git a/slurm.spec b/slurm.spec index 721e9a9..0864f5f 100644 --- a/slurm.spec +++ b/slurm.spec @@ -20,15 +20,16 @@ Source3: slurm-sview.desktop Source4: slurm-128x128.png Source5: slurm-setuser.in -# Upstream bug #4449: release-style versioning of libslurmfull -Patch0: slurm_libslurmfull_version.patch +# Release-style versioning of libslurmfull/libslurm_pmi +Patch0: slurm_release_version.patch # Build-related patches Patch10: slurm_perlapi_rpaths.patch Patch11: slurm_html_doc_path.patch Patch12: slurm_without_cray.patch +Patch13: slurm_check_version.patch -# Fedora-related patches +# Other patches Patch20: slurm_pmix_soname.patch Patch21: slurm_to_python3.patch @@ -378,62 +379,12 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod %dir %{_var}/spool/%{name}/d %config(noreplace) %{_sysconfdir}/%{name}/cgroup.conf %config(noreplace) %{_sysconfdir}/%{name}/slurm.conf -%{_bindir}/{sacct,sacctmgr,salloc,sattach,sbatch,sbcast} -%{_bindir}/{scancel,scontrol,scrontab,sdiag,sh5util,sinfo,sprio} -%{_bindir}/{squeue,sreport,srun,sshare,sstat,strigger} +%{_bindir}/s* %{_bindir}/%{name}-setuser -%{_libdir}/%{name}/accounting_storage_{filetxt,none,slurmdbd}.so -%{_libdir}/%{name}/acct_gather_energy_{ibmaem,ipmi,none,pm_counters,rapl,xcc}.so -%{_libdir}/%{name}/acct_gather_filesystem_{lustre,none}.so -%{_libdir}/%{name}/acct_gather_interconnect_{none,ofed}.so -%{_libdir}/%{name}/acct_gather_profile_{hdf5,influxdb,none}.so -%{_libdir}/%{name}/auth_munge.so -%{_libdir}/%{name}/burst_buffer_generic.so -%{_libdir}/%{name}/cli_filter_{lua,none,syslog,user_defaults}.so -%{_libdir}/%{name}/core_spec_none.so -%{_libdir}/%{name}/cred_{munge,none}.so -%{_libdir}/%{name}/ext_sensors_none.so -%{_libdir}/%{name}/gres_{gpu,mic,mps,nic}.so -%{_libdir}/%{name}/gpu_generic.so -%{_libdir}/%{name}/job_container_{cncu,none}.so -%{_libdir}/%{name}/job_submit_all_partitions.so -%{_libdir}/%{name}/job_submit_lua.so -%{_libdir}/%{name}/job_submit_require_timelimit.so -%{_libdir}/%{name}/job_submit_throttle.so -%{_libdir}/%{name}/jobacct_gather_{cgroup,linux,none}.so -%{_libdir}/%{name}/jobcomp_{elasticsearch,filetxt,lua,mysql,none,script}.so -%{_libdir}/%{name}/launch_slurm.so -%{_libdir}/%{name}/mcs_{account,group,none,user}.so -%{_libdir}/%{name}/mpi_{none,openmpi,pmi2,pmix*}.so -%{_libdir}/%{name}/node_features_knl_generic.so -%{_libdir}/%{name}/power_none.so -%{_libdir}/%{name}/preempt_{job_prio,none,partition_prio,qos}.so -%{_libdir}/%{name}/prep_script.so -%{_libdir}/%{name}/priority_{basic,multifactor}.so -%{_libdir}/%{name}/proctrack_{cgroup,linuxproc,lua,pgid}.so -%{_libdir}/%{name}/route_{default,topology}.so -%{_libdir}/%{name}/sched_{backfill,builtin,hold}.so -%{_libdir}/%{name}/select_{cons_res,cons_tres,linear,serial}.so -%{_libdir}/%{name}/site_factor_none.so -%{_libdir}/%{name}/slurmctld_nonstop.so -%{_libdir}/%{name}/switch_{generic,none}.so -%{_libdir}/%{name}/task_{affinity,cgroup,none}.so -%{_libdir}/%{name}/topology_{3d_torus,hypercube,node_rank,none,tree}.so -%{_mandir}/man1/{sacct,sacctmgr,salloc,sattach,sbatch,sbcast}.1* -%{_mandir}/man1/{scancel,scontrol,scrontab,sdiag,sh5util,sinfo,sprio}.1* -%{_mandir}/man1/{squeue,sreport,srun,sshare,sstat,strigger}.1* -%{_mandir}/man1/slurm.1* -%{_mandir}/man5/acct_gather.conf.5* -%{_mandir}/man5/burst_buffer.conf.5* -%{_mandir}/man5/cgroup.conf.5* -%{_mandir}/man5/ext_sensors.conf.5* -%{_mandir}/man5/gres.conf.5* -%{_mandir}/man5/knl.conf.5* -%{_mandir}/man5/nonstop.conf.5* -%{_mandir}/man5/slurm.conf.5* -%{_mandir}/man5/topology.conf.5* -%{_mandir}/man8/slurmrestd.8* -%{_mandir}/man8/spank.8* +%{_libdir}/%{name}/*.so +%{_mandir}/man1/*.1* +%{_mandir}/man5/*.5* +%{_mandir}/man8/*.8* %{_sysconfdir}/logrotate.d/%{name} %{_sysconfdir}/%{name}/cgroup*.conf.example %{_sysconfdir}/%{name}/slurm.conf.example @@ -453,7 +404,7 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod %{_includedir}/%{name}/slurmdb.h %{_includedir}/%{name}/smd_ns.h %{_includedir}/%{name}/spank.h -%{_libdir}/lib{slurm,slurmdb}.so +%{_libdir}/libslurm*.so %{_libdir}/%{name}/src/sattach/sattach.wrapper.c %{_libdir}/%{name}/src/srun/srun.wrapper.c %{_mandir}/man3/*.3.* diff --git a/slurm_check_version.patch b/slurm_check_version.patch new file mode 100644 index 0000000..5b13045 --- /dev/null +++ b/slurm_check_version.patch @@ -0,0 +1,13 @@ +diff --git a/configure.ac b/configure.ac +index d69d47348a..90f82536ce 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -240,7 +240,7 @@ X_AC_CGROUP + # Tests for Check + # + +-PKG_CHECK_MODULES([CHECK], [check >= 0.9.8], [ac_have_check="yes"], [ac_have_check="no"]) ++PKG_CHECK_MODULES([CHECK], [check >= 0.9.10], [ac_have_check="yes"], [ac_have_check="no"]) + AM_CONDITIONAL(HAVE_CHECK, test "x$ac_have_check" = "xyes") + + # diff --git a/slurm_libslurmfull_version.patch b/slurm_release_version.patch similarity index 100% rename from slurm_libslurmfull_version.patch rename to slurm_release_version.patch From d78aa883e7e495347fdc29da5de69cdd700f8503 Mon Sep 17 00:00:00 2001 From: Philip Kovacs Date: Wed, 6 Jan 2021 14:43:30 -0500 Subject: [PATCH 04/12] remove unneeded patch file --- slurm_service_files.patch | 39 --------------------------------------- 1 file changed, 39 deletions(-) delete mode 100644 slurm_service_files.patch diff --git a/slurm_service_files.patch b/slurm_service_files.patch deleted file mode 100644 index fc328c4..0000000 --- a/slurm_service_files.patch +++ /dev/null @@ -1,39 +0,0 @@ -diff --git a/etc/slurmctld.service.in b/etc/slurmctld.service.in -index 6f175ad651..82a128ac0a 100644 ---- a/etc/slurmctld.service.in -+++ b/etc/slurmctld.service.in -@@ -8,7 +8,7 @@ Type=forking - EnvironmentFile=-/etc/sysconfig/slurmctld - ExecStart=@sbindir@/slurmctld $SLURMCTLD_OPTIONS - ExecReload=/bin/kill -HUP $MAINPID --PIDFile=/var/run/slurmctld.pid -+PIDFile=/var/run/slurm/slurmctld.pid - LimitNOFILE=65536 - @SYSTEMD_TASKSMAX_OPTION@ - -diff --git a/etc/slurmd.service.in b/etc/slurmd.service.in -index b36433dd7d..146b6574d2 100644 ---- a/etc/slurmd.service.in -+++ b/etc/slurmd.service.in -@@ -8,7 +8,7 @@ Type=forking - EnvironmentFile=-/etc/sysconfig/slurmd - ExecStart=@sbindir@/slurmd $SLURMD_OPTIONS - ExecReload=/bin/kill -HUP $MAINPID --PIDFile=/var/run/slurmd.pid -+PIDFile=/var/run/slurm/slurmd.pid - KillMode=process - LimitNOFILE=131072 - LimitMEMLOCK=infinity -diff --git a/etc/slurmdbd.service.in b/etc/slurmdbd.service.in -index c80feb9d7c..97a95c0e57 100644 ---- a/etc/slurmdbd.service.in -+++ b/etc/slurmdbd.service.in -@@ -8,7 +8,7 @@ Type=forking - EnvironmentFile=-/etc/sysconfig/slurmdbd - ExecStart=@sbindir@/slurmdbd $SLURMDBD_OPTIONS - ExecReload=/bin/kill -HUP $MAINPID --PIDFile=/var/run/slurmdbd.pid -+PIDFile=/var/run/slurm/slurmdbd.pid - LimitNOFILE=65536 - @SYSTEMD_TASKSMAX_OPTION@ - From d98b269492b69bfe45a8b7315c6aca076385a17a Mon Sep 17 00:00:00 2001 From: Philip Kovacs Date: Wed, 6 Jan 2021 14:43:55 -0500 Subject: [PATCH 05/12] remove unneeded patch file --- slurm_service_files.patch | 39 --------------------------------------- 1 file changed, 39 deletions(-) delete mode 100644 slurm_service_files.patch diff --git a/slurm_service_files.patch b/slurm_service_files.patch deleted file mode 100644 index fc328c4..0000000 --- a/slurm_service_files.patch +++ /dev/null @@ -1,39 +0,0 @@ -diff --git a/etc/slurmctld.service.in b/etc/slurmctld.service.in -index 6f175ad651..82a128ac0a 100644 ---- a/etc/slurmctld.service.in -+++ b/etc/slurmctld.service.in -@@ -8,7 +8,7 @@ Type=forking - EnvironmentFile=-/etc/sysconfig/slurmctld - ExecStart=@sbindir@/slurmctld $SLURMCTLD_OPTIONS - ExecReload=/bin/kill -HUP $MAINPID --PIDFile=/var/run/slurmctld.pid -+PIDFile=/var/run/slurm/slurmctld.pid - LimitNOFILE=65536 - @SYSTEMD_TASKSMAX_OPTION@ - -diff --git a/etc/slurmd.service.in b/etc/slurmd.service.in -index b36433dd7d..146b6574d2 100644 ---- a/etc/slurmd.service.in -+++ b/etc/slurmd.service.in -@@ -8,7 +8,7 @@ Type=forking - EnvironmentFile=-/etc/sysconfig/slurmd - ExecStart=@sbindir@/slurmd $SLURMD_OPTIONS - ExecReload=/bin/kill -HUP $MAINPID --PIDFile=/var/run/slurmd.pid -+PIDFile=/var/run/slurm/slurmd.pid - KillMode=process - LimitNOFILE=131072 - LimitMEMLOCK=infinity -diff --git a/etc/slurmdbd.service.in b/etc/slurmdbd.service.in -index c80feb9d7c..97a95c0e57 100644 ---- a/etc/slurmdbd.service.in -+++ b/etc/slurmdbd.service.in -@@ -8,7 +8,7 @@ Type=forking - EnvironmentFile=-/etc/sysconfig/slurmdbd - ExecStart=@sbindir@/slurmdbd $SLURMDBD_OPTIONS - ExecReload=/bin/kill -HUP $MAINPID --PIDFile=/var/run/slurmdbd.pid -+PIDFile=/var/run/slurm/slurmdbd.pid - LimitNOFILE=65536 - @SYSTEMD_TASKSMAX_OPTION@ - From a4bdfb4575134e338d6db0d3a9dcebc7bd1ed2c1 Mon Sep 17 00:00:00 2001 From: Philip Kovacs Date: Wed, 6 Jan 2021 20:11:21 -0500 Subject: [PATCH 06/12] Add to EPEL7 --- slurm.spec | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 86 insertions(+), 7 deletions(-) diff --git a/slurm.spec b/slurm.spec index ddcef81..518dfb4 100644 --- a/slurm.spec +++ b/slurm.spec @@ -9,7 +9,7 @@ Name: slurm Version: 20.11.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Simple Linux Utility for Resource Management License: GPLv2 and BSD URL: https://slurm.schedmd.com/ @@ -379,12 +379,88 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod %dir %{_var}/spool/%{name}/d %config(noreplace) %{_sysconfdir}/%{name}/cgroup.conf %config(noreplace) %{_sysconfdir}/%{name}/slurm.conf -%{_bindir}/s* +%{_bindir}/sacct +%{_bindir}/sacctmgr +%{_bindir}/salloc +%{_bindir}/sattach +%{_bindir}/sbatch +%{_bindir}/sbcast +%{_bindir}/scancel +%{_bindir}/scontrol +%{_bindir}/scrontab +%{_bindir}/sdiag +%{_bindir}/sh5util +%{_bindir}/sinfo +%{_bindir}/sprio +%{_bindir}/squeue +%{_bindir}/sreport +%{_bindir}/srun +%{_bindir}/sshare +%{_bindir}/sstat +%{_bindir}/strigger %{_bindir}/%{name}-setuser -%{_libdir}/%{name}/*.so -%{_mandir}/man1/*.1* -%{_mandir}/man5/*.5* -%{_mandir}/man8/*.8* +%{_libdir}/%{name}/accounting_storage_*.so +%{_libdir}/%{name}/acct_gather_*.so +%{_libdir}/%{name}/auth_munge.so +%{_libdir}/%{name}/burst_buffer_generic.so +%{_libdir}/%{name}/cli_filter_*.so +%{_libdir}/%{name}/core_spec_none.so +%{_libdir}/%{name}/cred_*.so +%{_libdir}/%{name}/ext_sensors_none.so +%{_libdir}/%{name}/gres_*.so +%{_libdir}/%{name}/gpu_generic.so +%{_libdir}/%{name}/job_container_*.so +%{_libdir}/%{name}/job_submit_*.so +%{_libdir}/%{name}/jobacct_gather_*.so +%{_libdir}/%{name}/jobcomp_*.so +%{_libdir}/%{name}/launch_slurm.so +%{_libdir}/%{name}/mcs_*.so +%{_libdir}/%{name}/mpi_*.so +%{_libdir}/%{name}/node_features_knl_generic.so +%{_libdir}/%{name}/power_none.so +%{_libdir}/%{name}/preempt_*.so +%{_libdir}/%{name}/prep_script.so +%{_libdir}/%{name}/priority_*.so +%{_libdir}/%{name}/proctrack_*.so +%{_libdir}/%{name}/route_*.so +%{_libdir}/%{name}/sched_*.so +%{_libdir}/%{name}/select_*.so +%{_libdir}/%{name}/site_factor_none.so +%{_libdir}/%{name}/slurmctld_nonstop.so +%{_libdir}/%{name}/switch_*.so +%{_libdir}/%{name}/task_*.so +%{_libdir}/%{name}/topology_*.so +%{_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/scrontab.1* +%{_mandir}/man1/sdiag.1* +%{_mandir}/man1/sh5util.1* +%{_mandir}/man1/sinfo.1* +%{_mandir}/man1/slurm.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}/man5/acct_gather.conf.5* +%{_mandir}/man5/burst_buffer.conf.5* +%{_mandir}/man5/cgroup.conf.5* +%{_mandir}/man5/ext_sensors.conf.5* +%{_mandir}/man5/gres.conf.5* +%{_mandir}/man5/knl.conf.5* +%{_mandir}/man5/nonstop.conf.5* +%{_mandir}/man5/slurm.conf.5* +%{_mandir}/man5/topology.conf.5* +%{_mandir}/man8/slurmrestd.8* +%{_mandir}/man8/spank.8* %{_sysconfdir}/logrotate.d/%{name} %{_sysconfdir}/%{name}/cgroup*.conf.example %{_sysconfdir}/%{name}/slurm.conf.example @@ -404,7 +480,7 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod %{_includedir}/%{name}/slurmdb.h %{_includedir}/%{name}/smd_ns.h %{_includedir}/%{name}/spank.h -%{_libdir}/libslurm*.so +%{_libdir}/libslurm.so %{_libdir}/%{name}/src/sattach/sattach.wrapper.c %{_libdir}/%{name}/src/srun/srun.wrapper.c %{_mandir}/man3/*.3.* @@ -628,6 +704,9 @@ fi %systemd_postun_with_restart slurmdbd.service %changelog +* Wed Jan 6 2021 Philip Kovacs - 20.11.2-2 +- Add to EPEL7 + * Tue Jan 5 2021 Philip Kovacs - 20.11.2-1 - Release of 20.11.2 From 7227cd8f91dae1aa215865bddae43d9838678199 Mon Sep 17 00:00:00 2001 From: Philip Kovacs Date: Wed, 6 Jan 2021 20:32:28 -0500 Subject: [PATCH 07/12] Add to EPEL8 --- slurm.spec | 93 ++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 86 insertions(+), 7 deletions(-) diff --git a/slurm.spec b/slurm.spec index 0864f5f..5736c3e 100644 --- a/slurm.spec +++ b/slurm.spec @@ -9,7 +9,7 @@ Name: slurm Version: 20.11.2 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Simple Linux Utility for Resource Management License: GPLv2 and BSD URL: https://slurm.schedmd.com/ @@ -379,12 +379,88 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod %dir %{_var}/spool/%{name}/d %config(noreplace) %{_sysconfdir}/%{name}/cgroup.conf %config(noreplace) %{_sysconfdir}/%{name}/slurm.conf -%{_bindir}/s* +%{_bindir}/sacct +%{_bindir}/sacctmgr +%{_bindir}/salloc +%{_bindir}/sattach +%{_bindir}/sbatch +%{_bindir}/sbcast +%{_bindir}/scancel +%{_bindir}/scontrol +%{_bindir}/scrontab +%{_bindir}/sdiag +%{_bindir}/sh5util +%{_bindir}/sinfo +%{_bindir}/sprio +%{_bindir}/squeue +%{_bindir}/sreport +%{_bindir}/srun +%{_bindir}/sshare +%{_bindir}/sstat +%{_bindir}/strigger %{_bindir}/%{name}-setuser -%{_libdir}/%{name}/*.so -%{_mandir}/man1/*.1* -%{_mandir}/man5/*.5* -%{_mandir}/man8/*.8* +%{_libdir}/%{name}/accounting_storage_*.so +%{_libdir}/%{name}/acct_gather_*.so +%{_libdir}/%{name}/auth_munge.so +%{_libdir}/%{name}/burst_buffer_generic.so +%{_libdir}/%{name}/cli_filter_*.so +%{_libdir}/%{name}/core_spec_none.so +%{_libdir}/%{name}/cred_*.so +%{_libdir}/%{name}/ext_sensors_none.so +%{_libdir}/%{name}/gres_*.so +%{_libdir}/%{name}/gpu_generic.so +%{_libdir}/%{name}/job_container_*.so +%{_libdir}/%{name}/job_submit_*.so +%{_libdir}/%{name}/jobacct_gather_*.so +%{_libdir}/%{name}/jobcomp_*.so +%{_libdir}/%{name}/launch_slurm.so +%{_libdir}/%{name}/mcs_*.so +%{_libdir}/%{name}/mpi_*.so +%{_libdir}/%{name}/node_features_knl_generic.so +%{_libdir}/%{name}/power_none.so +%{_libdir}/%{name}/preempt_*.so +%{_libdir}/%{name}/prep_script.so +%{_libdir}/%{name}/priority_*.so +%{_libdir}/%{name}/proctrack_*.so +%{_libdir}/%{name}/route_*.so +%{_libdir}/%{name}/sched_*.so +%{_libdir}/%{name}/select_*.so +%{_libdir}/%{name}/site_factor_none.so +%{_libdir}/%{name}/slurmctld_nonstop.so +%{_libdir}/%{name}/switch_*.so +%{_libdir}/%{name}/task_*.so +%{_libdir}/%{name}/topology_*.so +%{_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/scrontab.1* +%{_mandir}/man1/sdiag.1* +%{_mandir}/man1/sh5util.1* +%{_mandir}/man1/sinfo.1* +%{_mandir}/man1/slurm.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}/man5/acct_gather.conf.5* +%{_mandir}/man5/burst_buffer.conf.5* +%{_mandir}/man5/cgroup.conf.5* +%{_mandir}/man5/ext_sensors.conf.5* +%{_mandir}/man5/gres.conf.5* +%{_mandir}/man5/knl.conf.5* +%{_mandir}/man5/nonstop.conf.5* +%{_mandir}/man5/slurm.conf.5* +%{_mandir}/man5/topology.conf.5* +%{_mandir}/man8/slurmrestd.8* +%{_mandir}/man8/spank.8* %{_sysconfdir}/logrotate.d/%{name} %{_sysconfdir}/%{name}/cgroup*.conf.example %{_sysconfdir}/%{name}/slurm.conf.example @@ -404,7 +480,7 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod %{_includedir}/%{name}/slurmdb.h %{_includedir}/%{name}/smd_ns.h %{_includedir}/%{name}/spank.h -%{_libdir}/libslurm*.so +%{_libdir}/libslurm.so %{_libdir}/%{name}/src/sattach/sattach.wrapper.c %{_libdir}/%{name}/src/srun/srun.wrapper.c %{_mandir}/man3/*.3.* @@ -616,6 +692,9 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod %systemd_postun_with_restart slurmdbd.service %changelog +* Wed Jan 6 2021 Philip Kovacs - 20.11.2-2 +- Add to EPEL8 + * Tue Jan 5 2021 Philip Kovacs - 20.11.2-1 - Release of 20.11.2 From 32f6925842b094535ecca14ef986386fc62601d1 Mon Sep 17 00:00:00 2001 From: Philip Kovacs Date: Thu, 1 Apr 2021 14:56:03 -0400 Subject: [PATCH 08/12] Release of 20.11.5 --- slurm.spec | 8 ++++++-- sources | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/slurm.spec b/slurm.spec index 518dfb4..525702f 100644 --- a/slurm.spec +++ b/slurm.spec @@ -8,8 +8,8 @@ %endif Name: slurm -Version: 20.11.2 -Release: 2%{?dist} +Version: 20.11.5 +Release: 1%{?dist} Summary: Simple Linux Utility for Resource Management License: GPLv2 and BSD URL: https://slurm.schedmd.com/ @@ -455,6 +455,7 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod %{_mandir}/man5/cgroup.conf.5* %{_mandir}/man5/ext_sensors.conf.5* %{_mandir}/man5/gres.conf.5* +%{_mandir}/man5/job_container.conf.5* %{_mandir}/man5/knl.conf.5* %{_mandir}/man5/nonstop.conf.5* %{_mandir}/man5/slurm.conf.5* @@ -704,6 +705,9 @@ fi %systemd_postun_with_restart slurmdbd.service %changelog +* Thu Apr 1 2021 Philip Kovacs - 20.11.5-1 +- Release of 20.11.5 + * Wed Jan 6 2021 Philip Kovacs - 20.11.2-2 - Add to EPEL7 diff --git a/sources b/sources index 5231d00..4b4d573 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (slurm-20.11.2.tar.bz2) = 6743b8125733006e0e5ef0491b950efbeb05af0cf45f54a2c142ddbb57ea639615539bc1bcbd1985a850c20d268b8a995c81c5547a02404f9b6a61fee19f68ed +SHA512 (slurm-20.11.5.tar.bz2) = 99a59797f860c4042f99ad5b9850159c4d5df11bd4cb6a63359370e51a475f550f32033eeaf7537b2bcd6a6e62ccc6f0378028f2e136f8d6d0191376e3cf8512 From 6478987c337b5023596158cc17fb5cf7b228fd5a Mon Sep 17 00:00:00 2001 From: Philip Kovacs Date: Thu, 1 Apr 2021 15:07:03 -0400 Subject: [PATCH 09/12] Release of 20.11.5 --- slurm.spec | 8 ++++++-- sources | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/slurm.spec b/slurm.spec index 5736c3e..d442ad0 100644 --- a/slurm.spec +++ b/slurm.spec @@ -8,8 +8,8 @@ %endif Name: slurm -Version: 20.11.2 -Release: 2%{?dist} +Version: 20.11.5 +Release: 1%{?dist} Summary: Simple Linux Utility for Resource Management License: GPLv2 and BSD URL: https://slurm.schedmd.com/ @@ -455,6 +455,7 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod %{_mandir}/man5/cgroup.conf.5* %{_mandir}/man5/ext_sensors.conf.5* %{_mandir}/man5/gres.conf.5* +%{_mandir}/man5/job_container.conf.5* %{_mandir}/man5/knl.conf.5* %{_mandir}/man5/nonstop.conf.5* %{_mandir}/man5/slurm.conf.5* @@ -692,6 +693,9 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod %systemd_postun_with_restart slurmdbd.service %changelog +* Thu Apr 1 2021 Philip Kovacs - 20.11.5-1 +- Release of 20.11.5 + * Wed Jan 6 2021 Philip Kovacs - 20.11.2-2 - Add to EPEL8 diff --git a/sources b/sources index 5231d00..4b4d573 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (slurm-20.11.2.tar.bz2) = 6743b8125733006e0e5ef0491b950efbeb05af0cf45f54a2c142ddbb57ea639615539bc1bcbd1985a850c20d268b8a995c81c5547a02404f9b6a61fee19f68ed +SHA512 (slurm-20.11.5.tar.bz2) = 99a59797f860c4042f99ad5b9850159c4d5df11bd4cb6a63359370e51a475f550f32033eeaf7537b2bcd6a6e62ccc6f0378028f2e136f8d6d0191376e3cf8512 From 95770722b5a19b9d343db96e527537e11660f455 Mon Sep 17 00:00:00 2001 From: Philip Kovacs Date: Sun, 31 Oct 2021 21:36:06 -0400 Subject: [PATCH 10/12] Correct log rotation problems (#2016683, #2018508) --- slurm.spec | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/slurm.spec b/slurm.spec index 87a7c7a..676d6ed 100644 --- a/slurm.spec +++ b/slurm.spec @@ -16,7 +16,7 @@ Name: slurm Version: 20.11.8 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Simple Linux Utility for Resource Management License: GPLv2 and BSD URL: https://slurm.schedmd.com/ @@ -333,7 +333,7 @@ EOF install -d -m 0755 %{buildroot}%{_var}/log/%{name} install -d -m 0755 %{buildroot}%{_sysconfdir}/logrotate.d cat >%{buildroot}%{_sysconfdir}/logrotate.d/%{name} < - 20.11.8-2 +- Correct log rotation problems (#2016683, #2018508) + * Sat Jul 3 2021 Philip Kovacs - 20.11.8-1 - Update to 20.11.8 From 86a2e6ed30b8a809fdd3193d0125092cf619c0e4 Mon Sep 17 00:00:00 2001 From: Carl George Date: Thu, 5 May 2022 18:34:54 -0500 Subject: [PATCH 11/12] Update to 20.11.9, resolves: rhbz#2081896 - Fix CVE-2022-29500, resolves: rhbz#2082285 - Fix CVE-2022-29501, resolves: rhbz#2082288 --- slurm.spec | 9 +++++++-- slurm_without_cray.patch | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/slurm.spec b/slurm.spec index 676d6ed..5940837 100644 --- a/slurm.spec +++ b/slurm.spec @@ -15,8 +15,8 @@ %endif Name: slurm -Version: 20.11.8 -Release: 2%{?dist} +Version: 20.11.9 +Release: 1%{?dist} Summary: Simple Linux Utility for Resource Management License: GPLv2 and BSD URL: https://slurm.schedmd.com/ @@ -769,6 +769,11 @@ fi %systemd_postun_with_restart slurmdbd.service %changelog +* Thu May 05 2022 Carl George - 20.11.9-1 +- Update to 20.11.9, resolves: rhbz#2081896 +- Fix CVE-2022-29500, resolves: rhbz#2082285 +- Fix CVE-2022-29501, resolves: rhbz#2082288 + * Sun Oct 31 2021 Philip Kovacs - 20.11.8-2 - Correct log rotation problems (#2016683, #2018508) diff --git a/slurm_without_cray.patch b/slurm_without_cray.patch index c05191a..5154fed 100644 --- a/slurm_without_cray.patch +++ b/slurm_without_cray.patch @@ -11,7 +11,7 @@ index c187bb83bd..aabd7f3fe8 100644 +++ b/src/plugins/burst_buffer/Makefile.am @@ -2,6 +2,3 @@ - SUBDIRS = generic + SUBDIRS = common generic -if WITH_JSON_PARSER -SUBDIRS += datawarp From af4bfd6cbe0282d8d127f810a3c1ea7743e4223e Mon Sep 17 00:00:00 2001 From: Carl George Date: Thu, 5 May 2022 18:47:02 -0500 Subject: [PATCH 12/12] Update sources for previous commit --- sources | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sources b/sources index 1d786b3..3af4fa1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (slurm-20.11.8.tar.bz2) = f67e6ebafef07eda9776a4545f0bf28a926f3c2e1269ce22a422a708d6d743df93e5fd87fa454f652f1e933ff9e233a49b8c27afa04d5717266d690098d88a06 +SHA512 (slurm-20.11.9.tar.bz2) = 5f54f61eebcf8acad073d6d46b019db00c431f35a5f945bbb35ee593fa90348af06383370c17fc3b9cf4c1bf838502abe9910fca05f508100e14703af7f36e21