[slurm-users] RHEL8 support - Missing Symbols in SelectType libraries

Michael Jennings mej at lanl.gov
Fri Nov 1 17:37:37 UTC 2019

On Tuesday, 29 October 2019, at 15:11:38 (+0000),
Christopher Benjamin Coffey wrote:

> Brian, I've actually just started attempting to build slurm 19 on
> centos 8 yesterday. As you say, there are packages missing now from
> repos like:

They're not missing; they're just harder to get at now, for some

I have successfully built SLURM 19.05.3 on CentOS 8.  I'm still
verifying that everything works correctly, but here's my spec file
diff so far (safe to apply upstream, if desired...won't break other

--- slurm.spec.orig     2019-10-31 13:55:28.077658869 -0600
+++ slurm.spec  2019-11-01 10:57:28.921423048 -0600
@@ -62,14 +62,14 @@
 BuildRequires: systemd
 BuildRequires: munge-devel munge-libs
-BuildRequires: python
+BuildRequires: python%{?el8:2}
 BuildRequires: readline-devel
 Obsoletes: slurm-lua slurm-munge slurm-plugins
 # fake systemd support when building rpms on other platforms
 %{!?_unitdir: %global _unitdir /lib/systemd/systemd}
-%define use_mysql_devel %(perl -e '`rpm -q mariadb-devel`; print $?;')
+%{expand:%%global use_mysql_devel %(perl -e '`rpm -q mariadb-devel`; print $?;')}
 %if %{with mysql}
 %if %{use_mysql_devel}
@@ -124,12 +124,12 @@
 %if %{with pmix}
 BuildRequires: pmix
-%global pmix %(rpm -q pmix --qf "%{VERSION}")
+%{expand:%%global pmix %(rpm -q pmix --qf "%{VERSION}")}
 %if %{with ucx}
 BuildRequires: ucx-devel
-%global ucx_version %(rpm -q ucx-devel --qf "%{VERSION}")
+%{expand:%%global ucx_version %(rpm -q ucx-devel --qf "%{VERSION}")}
 #  Allow override of sysconfdir via _slurm_sysconfdir.
@@ -158,7 +158,7 @@
 # Should unpackaged files in a build root terminate a build?
 # Uncomment if needed again.
-#%define _unpackaged_files_terminate_build      0
+#define _unpackaged_files_terminate_build      0
 # Slurm may intentionally include empty manifest files, which will
 # cause errors with rpm 4.13 and on. Turn that check off.
@@ -265,7 +265,7 @@
 Obsoletes: slurm-sjobexit slurm-sjstat slurm-seff
 %description contribs
 seff is a mail program used directly by the Slurm daemons. On completion of a
-job, wait for it's accounting information to be available and include that
+job, wait for its accounting information to be available and include that
 information in the email body.
 sjobexit is a slurm job exit code management tool. It enables users to alter
 job exit code information for completed jobs
@@ -305,6 +305,7 @@
 # when the rel number is one, the tarball filename does not include it
 %setup -n %{slurm_source_dir}
+%{__sed} -i -e 's!env python$!env python2!' $(%{__grep} -Frl 'env python' .)
 %configure \

I build with Mezzanine, but the equivalent would roughly be this:

  rpmbuild -ts slurm-19.05.3-2.tar.bz2
  cat the_above_diff.patch | (cd ~/rpmbuild/SPECS ; patch -p0)
  rpmbuild --with x11 --with lua --with pmix ~/rpmbuild/SPECS/slurm.spec

In order for that to work, though, you need to configure your yum/dnf
setup, like so:

  dnf -y install dnf-utils
  dnf config-manager --set-enabled cr
  dnf config-manager --set-enabled PowerTools
  dnf -y install munge-devel lua-devel json-c-devel lz4-devel

Hope that helps!

Michael E. Jennings <mej at lanl.gov>
HPC Systems Team, Los Alamos National Laboratory
Bldg. 03-2327, Rm. 2341     W: +1 (505) 606-0605

More information about the slurm-users mailing list