public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/slurm] epel10: Release of 17.11 series
@ 2026-07-22  7:54 Philip Kovacs
  0 siblings, 0 replies; only message in thread
From: Philip Kovacs @ 2026-07-22  7:54 UTC (permalink / raw)
  To: git-commits

            A new commit has been pushed.

            Repo   : rpms/slurm
            Branch : epel10
            Commit : bff578d171f38a5ee167edd6b6e9ef2e7d71d970
            Author : Philip Kovacs <pkdevel@yahoo.com>
            Date   : 2018-02-10T19:12:58-05:00
            Stats  : +413/-499 in 10 file(s)
            URL    : https://src.fedoraproject.org/rpms/slurm/c/bff578d171f38a5ee167edd6b6e9ef2e7d71d970?branch=epel10

            Log:
            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

---
diff --git a/slurm.conf b/slurm.conf
index 28bd7a8..577cc09 100644
--- a/slurm.conf
+++ b/slurm.conf
@@ -123,7 +123,7 @@ SelectType=select/linear
 AccountingStorageType=accounting_storage/none
 #AccountingStorageUser=
 AccountingStoreJobComment=YES
-ClusterName=local
+ClusterName=cluster
 #DebugFlags=
 #JobCompHost=
 #JobCompLoc=

diff --git a/slurm.spec b/slurm.spec
index ee757bf..5e8ad69 100644
--- a/slurm.spec
+++ b/slurm.spec
@@ -1,71 +1,74 @@
-# -------------
-# Base Packages
-# -------------
-# slurm
-# slurm-devel
-# slurm-doc
-# slurm-gui
-# slurm-libs
-# slurm-plugins
-# slurm-plugins-auth_none
-# slurm-plugins-lua
-# slurm-plugins-munge
-# slurm-plugins-mysql
-# slurm-plugins-pbs
-# slurm-plugins-rrdtool
-# slurm-slurmdbd
+# Obsolete EVR
+%global obs_evr 17.02.9-4
 
-# -----------------
-# Contribs Packages
-# -----------------
-# slurm-contribs
-# slurm-openlava
-# slurm-perlapi
-# slurm-plugins-pam_slurm
-# slurm-torque
+# Upstream tarballs use an additional release number
+%global ups_rel 2
+
+%if "%{ups_rel}" == "1"
+%global name_version %{name}-%{version}
+%else
+%global name_version %{name}-%{version}-%{ups_rel}
+%endif
+
+# Allow linkage with undefined symbols (disable -z,defs)
+%undefine _strict_symbol_defs_build
+
+# Allow dlopen with unresolved symbols (disable -z,now)
+%define _hardened_ldflags "-Wl,-z,lazy"
 
 Name:           slurm
-Version:        17.02.9
-Release:        4%{?dist}
+Version:        17.11.3
+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
+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 #2443: enable full relro operation
-Patch0:         slurm_weak_symbols.patch
+# Upstream bug #4449: release-style versioning of libslurmfull
+Patch0:         slurm_libslurmfull_version.patch
 
-# upstream bug #4362: link knl_generic plugin to libnuma if available
-Patch1:         slurm_knl_numa.patch
-
-# build-related patches
+# Build-related patches
 Patch10:        slurm_perlapi_rpaths.patch
 Patch11:        slurm_html_doc_path.patch
 Patch12:        slurm_doc_fix.patch
 
 # Fedora-related patches
-Patch20:        slurm_service_files.patch
+Patch20:        slurm_pmix_soname.patch
+Patch21:        slurm_service_files.patch
+
+BuildRequires:  autoconf
+BuildRequires:  automake
+BuildRequires:  environment(modules)
+BuildRequires:  desktop-file-utils
+BuildRequires:  gcc
+BuildRequires:  perl-ExtUtils-MakeMaker
+BuildRequires:  perl-podlators
+BuildRequires:  pkgconf
+BuildRequires:  pkgconfig(check)
+%{?systemd_requires}
+BuildRequires:  systemd
 
-BuildRequires:  pkgconfig(gtk+-2.0)
 BuildRequires:  hdf5-devel
+BuildRequires:  pam-devel
+BuildRequires:  pkgconfig(gtk+-2.0)
 BuildRequires:  pkgconfig(hwloc)
 BuildRequires:  pkgconfig(libfreeipmi)
 BuildRequires:  pkgconfig(libcurl)
+BuildRequires:  pkgconfig(librrd)
+BuildRequires:  pkgconfig(libssh2)
 BuildRequires:  pkgconfig(lua)
 BuildRequires:  pkgconfig(mariadb)
 BuildRequires:  pkgconfig(munge)
 BuildRequires:  pkgconfig(ncurses)
 BuildRequires:  pkgconfig(openssl)
-BuildRequires:  pam-devel
-BuildRequires:  pmix-devel
-BuildRequires:  readline-devel
-BuildRequires:  pkgconfig(librrd)
+BuildRequires:  pkgconfig(pmix) >= 2.0.0
 BuildRequires:  pkgconfig(zlib)
+BuildRequires:  readline-devel
 
 # follow arch exclusions for these devel packages
 %ifnarch s390 s390x %{arm}
@@ -74,19 +77,15 @@ BuildRequires:  libibumad-devel
 BuildRequires:  numactl-devel
 %endif
 
-BuildRequires:  autoconf
-BuildRequires:  automake
-BuildRequires:  desktop-file-utils
-BuildRequires:  gcc
-BuildRequires:  perl-ExtUtils-MakeMaker
-BuildRequires:  perl-podlators
-BuildRequires:  pkgconf
-%{?systemd_requires}
-BuildRequires:  systemd
-
-Requires:       %{name}-plugins%{?_isa} = %{version}-%{release}
-Requires:       %{name}-plugins-munge%{?_isa} = %{version}-%{release}
 Requires:       munge
+Requires:       pmix >= 2.0.0
+
+Obsoletes:      %{name} <= %{obs_evr}
+Obsoletes:      %{name}-plugins <= %{obs_evr}
+Obsoletes:      %{name}-plugins-auth_none <= %{obs_evr}
+Obsoletes:      %{name}-plugins-lua <= %{obs_evr}
+Obsoletes:      %{name}-plugins-munge <= %{obs_evr}
+Obsoletes:      %{name}-plugins-mysql <= %{obs_evr}
 
 %description
 Slurm is an open source, fault-tolerant, and highly scalable
@@ -119,57 +118,39 @@ and their respective man pages.
 
 %package libs
 Summary: Slurm shared libraries
+Provides: pmi
+Requires: environment(modules)
 %description libs
 Slurm shared libraries.
 
-%package plugins
-Summary: Slurm plugins (loadable shared objects)
-%description plugins
-Slurm plugins (loadable shared objects) supporting a wide variety of
-architectures and behaviors. These basically provide the building blocks
-with which Slurm can be configured. Note that some system specific plugins
-are in other packages.
-
-%package plugins-auth_none
-Summary: Slurm auth null implementation (no authentication)
-%description plugins-auth_none
-Slurm null authentication plugin.
-
-%package plugins-lua
-Summary: Slurm lua plugins
-%description plugins-lua
-Slurm proctrack/lua and job_submit/lua plugins.
-
-%package plugins-munge
-Summary: Slurm authentication and crypto plugins using Munge
-%description plugins-munge
-Slurm authentication and crypto implementation using Munge. Used to
-authenticate user originating an RPC, digitally sign and/or encrypt messages.
-
-%package plugins-mysql
-Summary: Slurm MySQL/MariaDb support
-%description plugins-mysql
-Slurm MySQL/MariaDb support plugins implementing interfaces to those
-databases for accounting storage and job completion.
-
-%package plugins-pbs
-Summary: Slurm torque (PBS) support
-%description plugins-pbs
-Slurm torque (PBS) support plugins.
-
-%package plugins-rrdtool
+%package rrdtool
 Summary: Slurm rrdtool external sensor plugin
-%description plugins-rrdtool
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Obsoletes: %{name}-plugins-rrdtool <= %{obs_evr}
+%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}
+Obsoletes: %{name} <= %{obs_evr}
+%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}
+Obsoletes: %{name} <= %{obs_evr}
+%description slurmd
+Slurm compute node daemon. Used to launch jobs on compute nodes
+
 %package slurmdbd
 Summary: Slurm database daemon
-# Use with auth_none or munge plugins for authentication
-Requires: %{name}-plugins-munge%{?_isa} = %{version}-%{release}
-Requires: %{name}-plugins-mysql%{?_isa} = %{version}-%{release}
-Requires: munge
+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.
@@ -200,29 +181,31 @@ Requires: %{name}-libs%{?_isa} = %{version}-%{release}
 Perl API package for Slurm.  This package includes the perl API to provide a
 helpful interface to Slurm through Perl.
 
-%package plugins-pam_slurm
+%package pam_slurm
 Summary: Slurm pam modules
 Requires: %{name}-libs%{?_isa} = %{version}-%{release}
-%description plugins-pam_slurm
+Obsoletes: %{name}-plugins-pam_slurm <= %{obs_evr}
+%description pam_slurm
 The pam_slurm module restricts access to compute nodes in a cluster where Slurm
 is in use.  Also includes the pam_slurm_adopt plugin for "adopting" connections
 into slurm jobs.
 
 %package torque
 Summary: Torque/PBS wrappers for transition from Torque/PBS to Slurm
+Requires: %{name}%{?_isa} = %{version}-%{release}
 Requires: %{name}-perlapi%{?_isa} = %{version}-%{release}
-Requires: %{name}-plugins-pbs%{?_isa} = %{version}-%{release}
+Obsoletes: %{name}-plugins-pbs <= %{obs_evr}
 %description torque
 Torque wrapper scripts used for helping migrate from Torque/PBS to Slurm.
 
 %prep
-%setup -q -n %{name}-%{version}
+%setup -q -n %{name_version}
 %patch0 -p1
-%patch1 -p1
 %patch10 -p1
 %patch11 -p1
 %patch12 -p1
 %patch20 -p1
+%patch21 -p1
 cp %SOURCE1 etc/slurm.conf
 cp %SOURCE1 etc/slurm.conf.example
 cp %SOURCE2 etc/slurmdbd.conf
@@ -232,7 +215,7 @@ 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/slurm-setuser.in
+cp %SOURCE5 extras/%{name}-setuser.in
 
 %build
 %{__aclocal} -I auxdir
@@ -242,28 +225,30 @@ cp %SOURCE5 extras/slurm-setuser.in
   --prefix=%{_prefix} \
   --sysconfdir=%{_sysconfdir}/%{name} \
   --with-pam_dir=%{_libdir}/security \
+  --with-pmix \
   --enable-shared \
+  --enable-x11 \
   --disable-static \
   --disable-debug \
   --disable-developer \
-  --disable-bluegene \
-  --disable-native-cray \
-  --disable-cray-network \
   --disable-salloc-background \
   --disable-multiple-slurmd \
   --disable-partial_attach \
-  --without-rpath \
+  --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 the extras/slurm-setuser script
+# 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/slurm-setuser.in > extras/slurm-setuser
+    extras/%{name}-setuser.in > extras/%{name}-setuser
 
 # build base packages
 %make_build V=1
@@ -273,7 +258,9 @@ s|^dir_tmpfiles_d=.*|dir_tmpfiles_d="%{_tmpfilesdir}"|g;' \
 PERL_MM_PARAMS="INSTALLDIRS=vendor" %make_build contrib V=1
 
 %check
-%{__make} check
+# The test binaries need LD_LIBRARY_PATH to find the compiled slurm library
+# in the build tree.
+LD_LIBRARY_PATH="%{buildroot}%{_libdir};%{_libdir}" %{__make} check
 
 %install
 %make_install
@@ -305,11 +292,11 @@ 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}/slurm.conf <<EOF
+cat  >%{buildroot}%{_tmpfilesdir}/%{name}.conf <<EOF
 D %{_rundir}/%{name} 0755 root root -
 EOF
 
-# logrotate.d file for /var/log/slurm logging possibilities
+# logrotate.d file for /var/log/slurm logging
 install -d -m 0755 %{buildroot}%{_var}/log/%{name}
 install -d -m 0755 %{buildroot}%{_sysconfdir}/logrotate.d
 cat >%{buildroot}%{_sysconfdir}/logrotate.d/%{name} <<EOF
@@ -329,32 +316,75 @@ touch %{buildroot}%{_rundir}/%{name}/slurmctld.pid
 touch %{buildroot}%{_rundir}/%{name}/slurmd.pid
 touch %{buildroot}%{_rundir}/%{name}/slurmdbd.pid
 
-# pkgconfig file
+# install pmi/slurm environment module file
+install -d -m 0755 %{buildroot}%{_modulesdir}/pmi
+cat >%{buildroot}%{_modulesdir}/pmi/%{name}-%{_arch} <<EOF
+#%%Module 1.0
+#
+#  pmi/slurm module for use with 'environment-modules' package:
+#
+conflict         pmi
+prepend-path     LD_LIBRARY_PATH    %{_libdir}/%{name}/lib
+prepend-path     PKG_CONFIG_PATH    %{_libdir}/%{name}/lib/pkgconfig
+EOF
+
+# install pkgconfig file slurm.pc
 install -d -m 0755 %{buildroot}%{_libdir}/pkgconfig
-cat >%{buildroot}%{_libdir}/pkgconfig/slurm.pc <<EOF
-includedir=%{_prefix}/include
+cat >%{buildroot}%{_libdir}/pkgconfig/%{name}.pc <<EOF
+includedir=%{_includedir}/%{name}
 libdir=%{_libdir}
 
+Name: %{name}
+Version: %{version}
+Description: Slurm development library
 Cflags: -I\${includedir}
 Libs: -L\${libdir} -lslurm
-Description: Slurm API
-Name: %{name}
+EOF
+
+# install pkgconfig file pmi.pc for environment module usage
+install -d -m 0755 %{buildroot}%{_libdir}/%{name}/lib/pkgconfig
+cat >%{buildroot}%{_libdir}/%{name}/lib/pkgconfig/pmi.pc <<EOF
+includedir=%{_includedir}/%{name}
+libdir=%{_libdir}/%{name}/lib
+
+Name: pmi
 Version: %{version}
+Description: Slurm PMI development library
+Cflags: -I\${includedir}
+Libs: -L\${libdir} -lpmi
 EOF
 
-# desktop file for sview GTK+ program
+# install pkgconfig file pmi2.pc for environment module usage
+install -d -m 0755 %{buildroot}%{_libdir}/%{name}/lib/pkgconfig
+cat >%{buildroot}%{_libdir}/%{name}/lib/pkgconfig/pmi2.pc <<EOF
+includedir=%{_includedir}/%{name}
+libdir=%{_libdir}/%{name}/lib
+
+Name: pmi2
+Version: %{version}
+Description: Slurm PMI2 development library
+Cflags: -I\${includedir}
+Libs: -L\${libdir} -lpmi2
+EOF
+
+# install desktop file for sview GTK+ program
 desktop-file-install \
     --dir=%{buildroot}%{_datadir}/applications \
     share/applications/%{name}-sview.desktop
 
-# desktop icon for sview GTK+ program
+# install desktop icon for sview GTK+ program
 install -d -m 0755 %{buildroot}%{_datadir}/icons/hicolor/128x128/apps
 install -m 0644 share/icons/hicolor/128x128/apps/%{name}.png \
     %{buildroot}%{_datadir}/icons/hicolor/128x128/apps/%{name}.png
 
 # install the extras/slurm-setuser script
-install -m 0755 extras/slurm-setuser \
-    %{buildroot}%{_bindir}/slurm-setuser
+install -m 0755 extras/%{name}-setuser \
+    %{buildroot}%{_bindir}/%{name}-setuser
+
+# move libpmi/libpmi2 to pmi/slurm environment module location
+install -d -m 0755 %{buildroot}%{_libdir}/%{name}/lib
+mv %{buildroot}%{_libdir}/libpmi.so* %{buildroot}%{_libdir}/%{name}/lib
+mv %{buildroot}%{_libdir}/libpmi2.so* %{buildroot}%{_libdir}/%{name}/lib
 
 install -m 0755 contribs/sjstat %{buildroot}%{_bindir}/sjstat
 
@@ -377,19 +407,17 @@ install -m 0644 contribs/lua/proctrack.lua %{buildroot}%{_docdir}/%{name}/contri
 
 # remove libtool archives
 find %{buildroot} -name \*.a -o -name \*.la | xargs rm -f
+# remove libslurmfull symlink (non-development, internal library)
+rm -rf %{buildroot}%{_libdir}/libslurmfull.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 bluegene files
-rm -f %{buildroot}%{_libdir}/%{name}/libsched_if.so
-rm -f %{buildroot}%{_libdir}/%{name}/libsched_if64.so
-rm -f %{buildroot}%{_libdir}/%{name}/runjob_plugin.so
 rm -f %{buildroot}%{_libdir}/%{name}/select_bluegene.so
 rm -f %{buildroot}%{_mandir}/man5/bluegene*
-rm -f %{buildroot}%{_sbindir}/sfree
-rm -f %{buildroot}%{_sbindir}/slurm_epilog
-rm -f %{buildroot}%{_sbindir}/slurm_prolog
 # remove cray files
 rm -f %{buildroot}%{_libdir}/%{name}/acct_gather_energy_cray.so
 rm -f %{buildroot}%{_libdir}/%{name}/core_spec_cray.so
@@ -400,17 +428,13 @@ rm -f %{buildroot}%{_libdir}/%{name}/select_cray.so
 rm -f %{buildroot}%{_libdir}/%{name}/switch_cray.so
 rm -f %{buildroot}%{_libdir}/%{name}/task_cray.so
 rm -f %{buildroot}%{_mandir}/man5/cray*
-# remove percs files
-rm -f %{buildroot}%{_libdir}/%{name}/launch_poe.so
-rm -f %{buildroot}%{_libdir}/%{name}/libpermapi.so
-rm -f %{buildroot}%{_libdir}/%{name}/switch_nrt.so
 # 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
 
-# filter unneeded dependencies
-%global __requires_exclude ^libpmix.so|libevent
+%ldconfig_scriptlets -n devel
+%ldconfig_scriptlets -n lib
 
 # -----
 # Slurm
@@ -419,28 +443,58 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod
 %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 %{_sysconfdir}/%{name}/layouts.d
-%{_sysconfdir}/logrotate.d/%{name}
+%dir %{_var}/log/%{name}
+%dir %{_var}/spool/%{name}
+%dir %{_var}/spool/%{name}/ctld
+%dir %{_var}/spool/%{name}/d
+%attr(0755,root,root) %{_sysconfdir}/%{name}/slurm.epilog.clean
 %config(noreplace) %{_sysconfdir}/%{name}/cgroup*.conf
-%{_sysconfdir}/%{name}/cgroup*.conf.example
 %config(noreplace) %{_sysconfdir}/%{name}/slurm.conf
-%{_sysconfdir}/%{name}/slurm.conf.example
-%{_sysconfdir}/%{name}/layouts.d/*.example
-%attr(0755,root,root) %{_sysconfdir}/%{name}/slurm.epilog.clean
-%dir %{_rundir}/%{name}
-%ghost %{_rundir}/%{name}/slurmctld.pid
-%ghost %{_rundir}/%{name}/slurmd.pid
 %{_bindir}/{sacct,sacctmgr,salloc,sattach,sbatch,sbcast}
 %{_bindir}/{scancel,scontrol,sdiag,sh5util,sinfo,sprio}
 %{_bindir}/{squeue,sreport,srun,sshare,sstat,strigger}
-%{_bindir}/slurm-setuser
-%{_unitdir}/slurmctld.service
-%{_unitdir}/slurmd.service
-%{_tmpfilesdir}/slurm.conf
-%{_sbindir}/slurmctld
-%{_sbindir}/slurmd
-%{_sbindir}/slurmstepd
+%{_bindir}/%{name}-setuser
+%{_libdir}/%{name}/accounting_storage_{filetxt,none,slurmdbd}.so
+%{_libdir}/%{name}/acct_gather_energy_{ibmaem,ipmi,none,rapl}.so
+%{_libdir}/%{name}/acct_gather_filesystem_{lustre,none}.so
+%{_libdir}/%{name}/acct_gather_interconnect_{none,ofed}.so
+%{_libdir}/%{name}/acct_gather_profile_{hdf5,none}.so
+%{_libdir}/%{name}/auth_munge.so
+%{_libdir}/%{name}/burst_buffer_generic.so
+%{_libdir}/%{name}/checkpoint_{none,ompi}.so
+%{_libdir}/%{name}/core_spec_none.so
+%{_libdir}/%{name}/crypto_munge.so
+%{_libdir}/%{name}/crypto_openssl.so
+%{_libdir}/%{name}/ext_sensors_none.so
+%{_libdir}/%{name}/gres_{gpu,mic,nic}.so
+%{_libdir}/%{name}/job_container_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,mysql,none,script}.so
+%{_libdir}/%{name}/launch_slurm.so
+%{_libdir}/%{name}/layouts_power_{cpufreq,default}.so
+%{_libdir}/%{name}/layouts_unit_default.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}/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,linear,serial}.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,sdiag,sh5util,sinfo,sprio}.1*
 %{_mandir}/man1/{squeue,sreport,srun,sshare,sstat,strigger}.1*
@@ -454,35 +508,34 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod
 %{_mandir}/man5/nonstop.conf.5*
 %{_mandir}/man5/slurm.conf.5*
 %{_mandir}/man5/topology.conf.5*
-%{_mandir}/man8/slurmctld.8*
-%{_mandir}/man8/slurmd.8*
-%{_mandir}/man8/slurmstepd.8*
 %{_mandir}/man8/spank.8*
-%dir %{_var}/log/%{name}
-%dir %{_var}/spool/%{name}
-%dir %{_var}/spool/%{name}/ctld
-%dir %{_var}/spool/%{name}/d
+%{_sysconfdir}/logrotate.d/%{name}
+%{_sysconfdir}/%{name}/cgroup*.conf.example
+%{_sysconfdir}/%{name}/layouts.d/*.example
+%{_sysconfdir}/%{name}/slurm.conf.example
+%{_tmpfilesdir}/slurm.conf
 
 # -----------
 # Slurm-devel
 # -----------
 
 %files devel
-%dir %{_prefix}/include/%{name}
-%{_prefix}/include/%{name}/pmi*.h
-%{_prefix}/include/%{name}/slurm.h
-%{_prefix}/include/%{name}/slurm_errno.h
-%{_prefix}/include/%{name}/slurmdb.h
-%{_prefix}/include/%{name}/smd_ns.h
-%{_prefix}/include/%{name}/spank.h
-%{_libdir}/libpmi*.so
-%{_libdir}/libslurm.so
-%{_libdir}/libslurmdb.so
-%{_libdir}/pkgconfig/%{name}.pc
+%dir %{_includedir}/%{name}
+%dir %{_libdir}/%{name}/lib/pkgconfig
 %dir %{_libdir}/%{name}/src
 %dir %{_libdir}/%{name}/src/sattach
-%{_libdir}/%{name}/src/sattach/sattach.wrapper.c
 %dir %{_libdir}/%{name}/src/srun
+%{_includedir}/%{name}/pmi*.h
+%{_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}/pkgconfig/%{name}.pc
+%{_libdir}/%{name}/lib/libpmi*.so
+%{_libdir}/%{name}/lib/pkgconfig/*.pc
+%{_libdir}/%{name}/src/sattach/sattach.wrapper.c
 %{_libdir}/%{name}/src/srun/srun.wrapper.c
 %{_mandir}/man3/*.3.*
 
@@ -512,126 +565,68 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod
 # ----------
 
 %files libs
-%{_libdir}/libpmi*.so.*
+%dir %{_libdir}/%{name}
+%dir %{_libdir}/%{name}/lib
+%dir %{_modulesdir}/pmi
 %{_libdir}/libslurm.so.*
 %{_libdir}/libslurmdb.so.*
+%{_libdir}/libslurmfull-*.so
+%{_libdir}/%{name}/lib/libpmi*.so.*
+%{_modulesdir}/pmi/*
 
 # -------------
-# Slurm-plugins
+# Slurm-rrdtool
 # -------------
 
-%files plugins
-%dir %{_libdir}/%{name}
-%{_libdir}/%{name}/accounting_storage_{filetxt,none,slurmdbd}.so
-%{_libdir}/%{name}/acct_gather_energy_{ibmaem,ipmi,none,rapl}.so
-%{_libdir}/%{name}/acct_gather_filesystem_{lustre,none}.so
-%{_libdir}/%{name}/acct_gather_infiniband_{none,ofed}.so
-%{_libdir}/%{name}/acct_gather_profile_{hdf5,none}.so
-%{_libdir}/%{name}/burst_buffer_generic.so
-%{_libdir}/%{name}/checkpoint_{none,ompi}.so
-%{_libdir}/%{name}/core_spec_none.so
-%{_libdir}/%{name}/crypto_openssl.so
-%{_libdir}/%{name}/ext_sensors_none.so
-%{_libdir}/%{name}/gres_{gpu,mic,nic}.so
-%{_libdir}/%{name}/job_container_none.so
-%{_libdir}/%{name}/job_submit_all_partitions.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,none,script}.so
-%{_libdir}/%{name}/launch_slurm.so
-%{_libdir}/%{name}/layouts_power_{cpufreq,default}.so
-%{_libdir}/%{name}/layouts_unit_default.so
-%{_libdir}/%{name}/mcs_{account,group,none,user}.so
-%{_libdir}/%{name}/mpi_{lam,mpich1_p4,mpich1_shmem,mpichgm,mpichmx}.so
-%{_libdir}/%{name}/mpi_{mvapich,none,openmpi,pmi2,pmix,pmix_v1}.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}/priority_{basic,multifactor}.so
-%{_libdir}/%{name}/proctrack_{cgroup,linuxproc,pgid}.so
-%{_libdir}/%{name}/route_{default,topology}.so
-%{_libdir}/%{name}/sched_{backfill,builtin,hold}.so
-%{_libdir}/%{name}/select_{cons_res,linear,serial}.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
-
-# -----------------------
-# Slurm-plugins-auth_none
-# -----------------------
-
-%files plugins-auth_none
-%dir %{_libdir}/%{name}
-%{_libdir}/%{name}/auth_none.so
-
-# -----------------
-# Slurm-plugins-lua
-# -----------------
-
-%files plugins-lua
-%dir %{_libdir}/%{name}
-%{_libdir}/%{name}/job_submit_lua.so
-%{_libdir}/%{name}/proctrack_lua.so
-
-# -------------------
-# Slurm-plugins-munge
-# -------------------
-
-%files plugins-munge
-%dir %{_libdir}/%{name}
-%{_libdir}/%{name}/auth_munge.so
-%{_libdir}/%{name}/crypto_munge.so
-
-# -------------------
-# Slurm-plugins-mysql
-# -------------------
-
-%files plugins-mysql
-%dir %{_libdir}/%{name}
-%{_libdir}/%{name}/accounting_storage_mysql.so
-%{_libdir}/%{name}/jobcomp_mysql.so
+%files rrdtool
+%{_libdir}/%{name}/ext_sensors_rrd.so
 
-# -----------------
-# Slurm-plugins-pbs
-# -----------------
+# ---------
+# Slurmctld
+# ---------
 
-%files plugins-pbs
-%dir %{_libdir}/%{name}
-%{_libdir}/%{name}/job_submit_pbs.so
-%{_libdir}/%{name}/spank_pbs.so
+%files slurmctld
+%{_mandir}/man8/slurmctld.8*
+%{_sbindir}/slurmctld
+%{_unitdir}/slurmctld.service
+%ghost %{_rundir}/%{name}/slurmctld.pid
 
-# ---------------------
-# Slurm-plugins-rrdtool
-# ---------------------
+# ------
+# Slurmd
+# ------
 
-%files plugins-rrdtool
-%dir %{_libdir}/%{name}
-%{_libdir}/%{name}/ext_sensors_rrd.so
+%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
-%dir %{_sysconfdir}/%{name}
 %config(noreplace) %{_sysconfdir}/%{name}/slurmdbd.conf
-%{_sysconfdir}/%{name}/slurmdbd.conf.example
-%dir %{_rundir}/%{name}
-%ghost %{_rundir}/%{name}/slurmdbd.pid
-%{_bindir}/slurm-setuser
-%{_unitdir}/slurmdbd.service
-%{_tmpfilesdir}/slurm.conf
-%{_sbindir}/slurmdbd
+%{_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/proctrack.lua
 %{_bindir}/seff
 %{_bindir}/sgather
 %{_bindir}/sjobexitmod
@@ -640,11 +635,6 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod
 %{_mandir}/man1/sgather.1*
 %{_mandir}/man1/sjobexitmod.1*
 %{_mandir}/man1/sjstat.1*
-%dir %{_docdir}/%{name}
-%dir %{_docdir}/%{name}/contribs
-%{_docdir}/%{name}/contribs/README
-%dir %{_docdir}/%{name}/contribs/lua
-%{_docdir}/%{name}/contribs/lua/proctrack.lua
 
 # --------------
 # Slurm-openlava
@@ -665,23 +655,22 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod
 # -------------
 
 %files perlapi
-%{perl_vendorarch}/Slurm.pm
 %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
-%dir %{perl_vendorarch}/auto/Slurm
 %{perl_vendorarch}/auto/Slurm/Slurm.so
-%dir %{perl_vendorarch}/auto/Slurmdb
 %{perl_vendorarch}/auto/Slurmdb/Slurmdb.so
 %{perl_vendorarch}/auto/Slurmdb/autosplit.ix
-%{_mandir}/man3/Slurm*.3pm*
 
 # ---------------
 # Slurm-pam_slurm
 # ---------------
 
-%files plugins-pam_slurm
-%dir %{_libdir}/%{name}
+%files pam_slurm
 %{_libdir}/security/pam_slurm.so
 %{_libdir}/security/pam_slurm_adopt.so
 
@@ -700,6 +689,8 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod
 %{_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*
@@ -710,37 +701,23 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod
 %{_mandir}/man1/qsub.1*
 %{_mandir}/man1/mpiexec.1*
 
-%post
-%systemd_post slurmd.service
+%post slurmctld
 %systemd_post slurmctld.service
 
-%preun
-%systemd_preun slurmd.service
+%preun slurmctld
 %systemd_preun slurmctld.service
 
-%postun
-%systemd_postun_with_restart slurmd.service
-%systemd_postun_with_restart slurmctld.service
-
-%post devel -p /sbin/ldconfig
+%postun slurmctld
+%systemd_postun_with_restart slurmcltd.service
 
-%postun devel -p /sbin/ldconfig
-
-%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 || :
+%post slurmd
+%systemd_post slurmd.service
 
-%post libs -p /sbin/ldconfig
+%preun slurmd
+%systemd_preun slurmd.service
 
-%postun libs -p /sbin/ldconfig
+%postun slurmd
+%systemd_postun_with_restart slurmd.service
 
 %post slurmdbd
 %systemd_post slurmdbd.service
@@ -752,38 +729,49 @@ fi
 %systemd_postun_with_restart slurmdbd.service
 
 %changelog
+* Sat Feb 10 2018 Philip Kovacs <pkdevel@yahoo.com> - 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 <releng@fedoraproject.org> - 17.02.9-4
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
 
 * Thu Nov 16 2017 Philip Kovacs <pkdevel@yahoo.com> - 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.
+- 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 <pkdevel@yahoo.com> - 17.02.9-2
-- Correct desktop categories for rpmgrill.desktop-lint.
+- Correct desktop categories for rpmgrill.desktop-lint
 
 * Wed Nov 1 2017 Philip Kovacs <pkdevel@yahoo.com> - 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.
+- 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 <pkdevel@yahoo.com> - 17.02.8-1
-- Version bump, patches adjusted.
+- Version bump, patches adjusted
 
 * Thu Oct 5 2017 Philip Kovacs <pkdevel@yahoo.com> - 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.
+- salloc/sbatch/srun: must be root to use --uid/--gid options
+- salloc: supplemental groups dropped after setuid
 
 * Thu Oct 5 2017 Philip Kovacs <pkdevel@yahoo.com> - 17.02.7-3
-- Added BuildRequires gcc and minor packaging conformance items.
+- Added BuildRequires gcc and minor packaging conformance items
 
 * Sat Sep 16 2017 Philip Kovacs <pkdevel@yahoo.com> - 17.02.7-2
-- Removed unneeded Requires(pre).
+- Removed unneeded Requires(pre)
 
 * Thu Sep 14 2017 Philip Kovacs <pkdevel@yahoo.com> - 17.02.7-1
-- Packaging for Fedora.
+- Packaging for Fedora

diff --git a/slurm_doc_fix.patch b/slurm_doc_fix.patch
index ae4a4da..6a968b9 100644
--- a/slurm_doc_fix.patch
+++ b/slurm_doc_fix.patch
@@ -1,11 +1,13 @@
---- a/doc/man/man5/burst_buffer.conf.5	2017-08-15 23:22:24.333180212 -0400
-+++ b/doc/man/man5/burst_buffer.conf.5	2017-08-15 23:23:45.224298397 -0400
-@@ -31,18 +31,18 @@
+diff --git a/doc/man/man5/burst_buffer.conf.5 b/doc/man/man5/burst_buffer.conf.5
+index 34ee651513..01f47c1383 100644
+--- a/doc/man/man5/burst_buffer.conf.5
++++ b/doc/man/man5/burst_buffer.conf.5
+@@ -31,18 +31,18 @@ The configuration parameters available include:
  \fBAllowUsers\fR
  Comma separated list of user names and/or IDs permitted to use burst buffers.
  The options \fBAllowUsers\fR and \fBDenyUsers\fR can not both be specified.
 -By default all users are permitted to use burst buffers.
-+By default all users are permitted to use burst buffers.  Possible future 
++By default all users are permitted to use burst buffers.  Possible future
 +enhancement for generic plugin.
  
 -.\ Possible future enhancement for generic plugin
@@ -30,7 +32,7 @@
  
  .TP
  \fBCreateBuffer\fR
-@@ -195,8 +195,8 @@
+@@ -193,8 +193,8 @@ By default there is a 5 second timeout for the validation operations.
  AllowUsers=alan,brenda
  .br
  PrivateData=true
@@ -41,3 +43,29 @@
  .br
  #
  .br
+diff --git a/doc/man/man5/slurm.conf.5 b/doc/man/man5/slurm.conf.5
+index 6a9c753f51..56da9b7573 100644
+--- a/doc/man/man5/slurm.conf.5
++++ b/doc/man/man5/slurm.conf.5
+@@ -3434,7 +3434,7 @@
+ \fB\-D\fR command line option) the \fBSlurmdSyslogDebug\fR configuration
+ parameter will be ignored.
+ The default value is \fBquiet\fR unless there is no configured
+-\fBSlurmdLogFile\fR, in which case the default value will be \fBfatal\fR so
++\fBSlurmdLogFile\fR, in which case the default value will be \fBfatal\fRso
+ that fatal errors are logged somewhere.
+ 
+ .RS
+diff --git a/doc/man/man5/slurmdbd.conf.5 b/doc/man/man5/slurmdbd.conf.5
+index d8e2ebe286..1dc4f789a7 100644
+--- a/doc/man/man5/slurmdbd.conf.5
++++ b/doc/man/man5/slurmdbd.conf.5
+@@ -276,7 +276,7 @@ If the slurmdbd daemon is run in the foreground (started with the \fB\-D\fR
+ command line option) the \fBDebugLevelSyslog\fR configuration parameter
+ will be ignored.
+ The default value is \fBquiet\fR unless there is no configured
+-\fBSlurmdLogFile\fR, in which case the default value will be \fBfatal\bR so
++\fBSlurmdLogFile\fR, in which case the default value will be \fBfatal\bRso
+ that fatal errors are logged somewhere.
+ 
+ .RS

diff --git a/slurm_knl_numa.patch b/slurm_knl_numa.patch
deleted file mode 100644
index d13a683..0000000
--- a/slurm_knl_numa.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/src/plugins/node_features/knl_generic/Makefile.am b/src/plugins/node_features/knl_generic/Makefile.am
-index 11da24c075..4633e2de46 100644
---- a/src/plugins/node_features/knl_generic/Makefile.am
-+++ b/src/plugins/node_features/knl_generic/Makefile.am
-@@ -8,7 +8,7 @@ AM_CPPFLAGS = -I$(top_srcdir) -I$(top_srcdir)/src/common
- 
- pkglib_LTLIBRARIES = node_features_knl_generic.la
- node_features_knl_generic_la_SOURCES = node_features_knl_generic.c
--node_features_knl_generic_la_LDFLAGS = $(SO_LDFLAGS) $(PLUGIN_FLAGS)
-+node_features_knl_generic_la_LDFLAGS = $(SO_LDFLAGS) $(NUMA_LIBS) $(PLUGIN_FLAGS)
- 
- force:
- $(node_features_knl_generic_la_LIBADD) : force

diff --git a/slurm_libslurmfull_version.patch b/slurm_libslurmfull_version.patch
new file mode 100644
index 0000000..9f65ebf
--- /dev/null
+++ b/slurm_libslurmfull_version.patch
@@ -0,0 +1,27 @@
+diff --git a/src/api/Makefile.am b/src/api/Makefile.am
+index 80c5c60f12..c7334fe9f8 100644
+--- a/src/api/Makefile.am
++++ b/src/api/Makefile.am
+@@ -61,12 +61,7 @@ libpmi_current = 0
+ libpmi_age     = 0
+ libpmi_rev     = 0
+ 
+-lib_LTLIBRARIES = libslurm.la libpmi.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.
+-pkglib_LTLIBRARIES = libslurmfull.la
++lib_LTLIBRARIES = libslurm.la libpmi.la libslurmfull.la
+ 
+ # BUILT_SOURCES tells automake that when "make" is called, these targets
+ # need to be built before anything else.  For instance, this takes care
+@@ -156,7 +151,7 @@ libslurmfull_la_SOURCES =
+ libslurmfull_la_LIBADD = $(convenience_libs)
+ libslurmfull_la_LDFLAGS        = \
+         $(LIB_LDFLAGS) \
+-	-avoid-version \
++	-release $(SLURM_VERSION_STRING) \
+         $(FULL_OTHER_FLAGS)
+ #
+ # The libpmi_la_LIBADD specification below causes libpmi.la to relink

diff --git a/slurm_pmix_soname.patch b/slurm_pmix_soname.patch
new file mode 100644
index 0000000..d598016
--- /dev/null
+++ b/slurm_pmix_soname.patch
@@ -0,0 +1,24 @@
+diff --git a/src/plugins/mpi/pmix/mpi_pmix.c b/src/plugins/mpi/pmix/mpi_pmix.c
+index 2d4c5d9dc9..dedb983f92 100644
+--- a/src/plugins/mpi/pmix/mpi_pmix.c
++++ b/src/plugins/mpi/pmix/mpi_pmix.c
+@@ -79,8 +79,10 @@ const char plugin_name[] = "PMIx plugin";
+ 
+ #if (HAVE_PMIX_VER == 1)
+ const char plugin_type[] = "mpi/pmix_v1";
++const char libpmix_soname[] = "libpmix.so.1";
+ #elif (HAVE_PMIX_VER == 2)
+ const char plugin_type[] = "mpi/pmix_v2";
++const char libpmix_soname[] = "libpmix.so.2";
+ #endif
+ 
+ const uint32_t plugin_version = SLURM_VERSION_NUMBER;
+@@ -103,7 +105,7 @@ static void *_libpmix_open(void)
+ #elif defined PMIXP_V2_LIBPATH
+ 	xstrfmtcat(full_path, "%s/", PMIXP_V2_LIBPATH);
+ #endif
+-	xstrfmtcat(full_path, "libpmix.so");
++	xstrfmtcat(full_path, libpmix_soname);
+ 	lib_plug = dlopen(full_path, RTLD_LAZY | RTLD_GLOBAL);
+ 	xfree(full_path);
+ 

diff --git a/slurm_service_files.patch b/slurm_service_files.patch
index a164ef4..1f3087b 100644
--- a/slurm_service_files.patch
+++ b/slurm_service_files.patch
@@ -1,17 +1,21 @@
---- a/etc/slurmctld.service.in	2017-08-14 13:48:43.000000000 -0400
-+++ b/etc/slurmctld.service.in	2017-08-21 13:35:26.472209176 -0400
-@@ -8,7 +8,7 @@
+diff --git a/etc/slurmctld.service.in b/etc/slurmctld.service.in
+index ebf92b0da4..d13a653339 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
+ @SYSTEMD_TASKSMAX_OPTION@
  
  [Install]
- WantedBy=multi-user.target
---- a/etc/slurmd.service.in	2017-08-14 13:48:43.000000000 -0400
-+++ b/etc/slurmd.service.in	2017-08-21 14:45:23.485061312 -0400
-@@ -8,7 +8,7 @@
+diff --git a/etc/slurmd.service.in b/etc/slurmd.service.in
+index 2e20bb33a3..263bd8aa77 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
@@ -20,14 +24,16 @@
  KillMode=process
  LimitNOFILE=51200
  LimitMEMLOCK=infinity
---- a/etc/slurmdbd.service.in	2017-08-14 13:48:43.000000000 -0400
-+++ b/etc/slurmdbd.service.in	2017-08-21 14:47:56.134071820 -0400
-@@ -8,7 +8,7 @@
+diff --git a/etc/slurmdbd.service.in b/etc/slurmdbd.service.in
+index 5f8f73c7f1..a0aede6feb 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
+ @SYSTEMD_TASKSMAX_OPTION@
  
  [Install]
- WantedBy=multi-user.target

diff --git a/slurm_weak_symbols.patch b/slurm_weak_symbols.patch
deleted file mode 100644
index 02507e2..0000000
--- a/slurm_weak_symbols.patch
+++ /dev/null
@@ -1,153 +0,0 @@
-diff --git a/src/plugins/accounting_storage/slurmdbd/accounting_storage_slurmdbd.c b/src/plugins/accounting_storage/slurmdbd/accounting_storage_slurmdbd.c
-index ca0341c1eb..08d7baaa61 100644
---- a/src/plugins/accounting_storage/slurmdbd/accounting_storage_slurmdbd.c
-+++ b/src/plugins/accounting_storage/slurmdbd/accounting_storage_slurmdbd.c
-@@ -60,6 +60,15 @@
- 
- #define BUFFER_SIZE 4096
- 
-+/* Declare these functions as weak in order to support full relro builds. */
-+#if defined(__GNUC__) && defined(__ELF__)
-+/* TEST_CASE: sacct vs slurmctld */
-+void build_array_str(struct job_record *job_ptr) __attribute__((weak));
-+struct job_record *find_job_record(uint32_t job_id) __attribute__((weak));
-+void lock_slurmctld (slurmctld_lock_t lock_levels) __attribute__((weak));
-+void unlock_slurmctld (slurmctld_lock_t lock_levels) __attribute__((weak));
-+#endif
-+
- /* These are defined here so when we link with something other than
-  * the slurmctld we will have these symbols defined.  They will get
-  * overwritten when linking with the slurmctld.
-diff --git a/src/plugins/jobacct_gather/cgroup/jobacct_gather_cgroup.h b/src/plugins/jobacct_gather/cgroup/jobacct_gather_cgroup.h
-index 33f9bcb05e..7bbd99f93d 100644
---- a/src/plugins/jobacct_gather/cgroup/jobacct_gather_cgroup.h
-+++ b/src/plugins/jobacct_gather/cgroup/jobacct_gather_cgroup.h
-@@ -39,6 +39,9 @@
-  *  Copyright (C) 2002 The Regents of the University of California.
- \*****************************************************************************/
- 
-+#ifndef __JOBACCT_GATHER_CGROUP_H__
-+#define __JOBACCT_GATHER_CGROUP_H__
-+
- #include "src/common/slurm_jobacct_gather.h"
- #include "src/common/xcgroup_read_config.h"
- #include "src/slurmd/common/xcgroup.h"
-@@ -76,3 +79,31 @@ extern int jobacct_gather_cgroup_memory_attach_task(
- /* 	pid_t pid, jobacct_id_t *jobacct_id); */
- 
- extern char* jobacct_cgroup_create_slurm_cg (xcgroup_ns_t* ns);
-+
-+/* Declare these functions as weak in order to support full relro builds. */
-+#if defined(__GNUC__) && defined(__ELF__)
-+/* TEST_CASE: slurmctld vs slurmd */
-+int xcgroup_add_pids(xcgroup_t* cg, pid_t* pids, int npids)
-+	__attribute__((weak));
-+int xcgroup_create(xcgroup_ns_t* cgns, xcgroup_t* cg,
-+	char* uri, uid_t uid, gid_t gid) __attribute__((weak));
-+int xcgroup_delete(xcgroup_t* cg) __attribute__((weak));
-+void xcgroup_destroy(xcgroup_t* cg) __attribute__((weak));
-+int xcgroup_get_param(xcgroup_t* cg, char* param, char **content,
-+	size_t *csize) __attribute__((weak));
-+int xcgroup_ns_create(slurm_cgroup_conf_t *conf,
-+	xcgroup_ns_t* cgns, char* mnt_args, char* subsys)
-+	__attribute__((weak));
-+int xcgroup_instantiate(xcgroup_t* cg) __attribute__((weak));
-+int xcgroup_lock(xcgroup_t* cg) __attribute__((weak));
-+void xcgroup_ns_destroy(xcgroup_ns_t* cgns) __attribute__((weak));
-+int xcgroup_set_param(xcgroup_t* cg, char* parameter, char* content)
-+	__attribute__((weak));
-+int xcgroup_set_uint32_param(xcgroup_t* cg, char* parameter, uint32_t value)
-+	__attribute__((weak));
-+int xcgroup_unlock(xcgroup_t* cg) __attribute__((weak));
-+int xcpuinfo_fini(void) __attribute__((weak));
-+int xcpuinfo_init(void) __attribute__((weak));
-+#endif
-+
-+#endif /* __JOBACCT_GATHER_CGROUP_H__ */
-diff --git a/src/plugins/jobacct_gather/common/common_jag.h b/src/plugins/jobacct_gather/common/common_jag.h
-index eff761638e..6a28a40af2 100644
---- a/src/plugins/jobacct_gather/common/common_jag.h
-+++ b/src/plugins/jobacct_gather/common/common_jag.h
-@@ -74,4 +74,11 @@ extern void jag_common_poll_data(
- 	List task_list, bool pgid_plugin, uint64_t cont_id,
- 	jag_callbacks_t *callbacks, bool profile);
- 
-+/* Declare these functions as weak in order to support full relro builds. */
-+#if defined(__GNUC__) && defined(__ELF__)
-+/* TEST_CASE: slurmctld vs slurmd */
-+int proctrack_g_get_pids(uint64_t cont_id, pid_t **pids, int *npids)
-+	__attribute__((weak));
-+#endif
-+
- #endif
-diff --git a/src/plugins/node_features/knl_generic/node_features_knl_generic.c b/src/plugins/node_features/knl_generic/node_features_knl_generic.c
-index f87a685bfc..fb6b879896 100644
---- a/src/plugins/node_features/knl_generic/node_features_knl_generic.c
-+++ b/src/plugins/node_features/knl_generic/node_features_knl_generic.c
-@@ -113,6 +113,12 @@
- #define DEFAULT_MCDRAM_SIZE ((uint64_t) 16 * 1024 * 1024 * 1024)
- #endif
- 
-+/* Declare these functions as weak in order to support full relro builds. */
-+#if defined(__GNUC__) && defined(__ELF__)
-+/* TEST_CASE: slurmctld vs slurmd */
-+int ume_notify(void) __attribute__((weak));
-+#endif
-+
- /* These are defined here so when we link with something other than
-  * the slurmctld we will have these symbols defined.  They will get
-  * overwritten when linking with the slurmctld.
-diff --git a/src/plugins/select/cons_res/select_cons_res.h b/src/plugins/select/cons_res/select_cons_res.h
-index 0038d1c075..356a17950c 100644
---- a/src/plugins/select/cons_res/select_cons_res.h
-+++ b/src/plugins/select/cons_res/select_cons_res.h
-@@ -122,4 +122,15 @@ extern void cr_sort_part_rows(struct part_res_record *p_ptr);
- extern uint32_t cr_get_coremap_offset(uint32_t node_index);
- extern int cr_cpus_per_core(struct job_details *details, int node_inx);
- 
-+/* Declare these functions as weak in order to support full relro builds. */
-+#if defined(__GNUC__) && defined(__ELF__)
-+/* TEST_CASE: slurmd vs srun */
-+int drain_nodes(char *nodes, char *reason, uint32_t reason_uid)
-+	__attribute__((weak));
-+uint32_t powercap_get_cluster_current_cap(void) __attribute__((weak));
-+uint16_t slurm_job_preempt_mode(struct job_record *job_ptr)
-+       __attribute__((weak));
-+int which_power_layout(void) __attribute__((weak));
-+#endif
-+
- #endif /* !_CONS_RES_H */
-diff --git a/src/plugins/select/linear/select_linear.h b/src/plugins/select/linear/select_linear.h
-index a9b3bd2bf3..f06f580ccc 100644
---- a/src/plugins/select/linear/select_linear.h
-+++ b/src/plugins/select/linear/select_linear.h
-@@ -83,4 +83,11 @@ struct cr_record {
- 	uint16_t tot_job_len;		/* length of tot_job_ids array */
- };
- 
-+/* Declare these functions as weak in order to support full relro builds. */
-+#if defined(__GNUC__) && defined(__ELF__)
-+/* TEST_CASE: slurmd vs srun */
-+uint16_t slurm_job_preempt_mode(struct job_record *job_ptr)
-+	__attribute__((weak));
-+#endif
-+
- #endif /* !_SELECT_LINEAR_H */
-diff --git a/src/plugins/select/serial/select_serial.h b/src/plugins/select/serial/select_serial.h
-index e88c49850b..7bea876bd1 100644
---- a/src/plugins/select/serial/select_serial.h
-+++ b/src/plugins/select/serial/select_serial.h
-@@ -111,4 +111,13 @@ extern struct node_use_record *select_node_usage;
- extern void cr_sort_part_rows(struct part_res_record *p_ptr);
- extern uint32_t cr_get_coremap_offset(uint32_t node_index);
- 
-+/* Declare these functions as weak in order to support full relro builds. */
-+#if defined(__GNUC__) && defined(__ELF__)
-+/* TEST_CASE: slurmd vs srun */
-+int drain_nodes(char *nodes, char *reason, uint32_t reason_uid)
-+       __attribute__((weak));
-+uint16_t slurm_job_preempt_mode(struct job_record *job_ptr)
-+       __attribute__((weak));
-+#endif
-+
- #endif /* !_SELECT_SERIAL_H */

diff --git a/slurmdbd.conf b/slurmdbd.conf
index 32eb78f..edcb4a8 100644
--- a/slurmdbd.conf
+++ b/slurmdbd.conf
@@ -13,18 +13,25 @@
 AuthType=auth/munge
 #AuthInfo=/var/run/munge/munge.socket.2
 #
-# slurmDBD info
-DbdAddr=localhost
-DbdHost=localhost
-#DbdPort=7031
-SlurmUser=root
-#MessageTimeout=300
+# 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
@@ -32,6 +39,6 @@ StorageType=accounting_storage/mysql
 #StorageHost=localhost
 #StoragePort=1234
 StoragePass=password
-StorageUser=slurm
+StorageUser=root
 #StorageLoc=slurm_acct_db
 

diff --git a/sources b/sources
index f90903c..66ed738 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (slurm-17.02.9.tar.bz2) = 9a0b502a16b1fe61fd42ef92cb9cdc0eaa5abb4e9a3b0b6d87337ca0597223c4e132632f22b13a4a5109c03a3f422dd49df6421b637c446973e6d521fb23075c
+SHA512 (slurm-17.11.3-2.tar.bz2) = 38a8edd09fe24f08e712a296a1ecb34e207daacdf0e8f57444e35d0329e6b26ecb7f34fecbcc8f46c40df37adf40a1c1d33f2bdb5c48d5882de5b8dfaf5a5b9c

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-07-22  7:54 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-22  7:54 [rpms/slurm] epel10: Release of 17.11 series Philip Kovacs

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox