The package rpms/slurm.git has added or updated architecture specific content in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/slurm.git/commit/?id=535d6fb55aea....
Change:
+%ifarch aarch64 ppc64le x86_64
Thanks.
Full change:
============
commit 535d6fb55aea9196c4c13b14f5f837af787c7ac3
Author: Philip Kovacs <pkdevel(a)yahoo.com>
Date: Mon Jul 15 17:50:49 2019 -0400
Release of 18.08.8
Closes security issue (CVE-2019-12838)
Configure for UCX support on supported arches
diff --git a/slurm.spec b/slurm.spec
index dfe4fe5..e55a376 100644
--- a/slurm.spec
+++ b/slurm.spec
@@ -11,8 +11,8 @@
%undefine _strict_symbol_defs_build
Name: slurm
-Version: 18.08.7
-Release: 3%{?dist}
+Version: 18.08.8
+Release: 1%{?dist}
Summary: Simple Linux Utility for Resource Management
License: GPLv2 and BSD
URL:
https://slurm.schedmd.com/
@@ -53,6 +53,7 @@ BuildRequires: systemd
BuildRequires: hdf5-devel
BuildRequires: pam-devel
+BuildRequires: rdma-core-devel
BuildRequires: pkgconfig(gtk+-2.0)
BuildRequires: pkgconfig(hwloc)
BuildRequires: pkgconfig(libcurl)
@@ -69,14 +70,21 @@ BuildRequires: pkgconfig(pmix) >= 2.0.0
BuildRequires: pkgconfig(zlib)
BuildRequires: readline-devel
-# follow arch exclusions for these devel packages
-%ifnarch s390 s390x %{arm}
-BuildRequires: rdma-core-devel
+# follow arch exclusions for numa
+%ifnarch %{arm}
BuildRequires: numactl-devel
%endif
+# follow arch-inclusions for ucx
+%ifarch aarch64 ppc64le x86_64
+BuildRequires: pkgconfig(ucx)
+%endif
+
Requires: munge
Requires: pmix >= 2.0.0
+%ifarch aarch64 ppc64le x86_64
+Requires: ucx
+%endif
%{?systemd_requires}
%description
@@ -217,6 +225,9 @@ automake --no-force
--prefix=%{_prefix} \
--sysconfdir=%{_sysconfdir}/%{name} \
--with-pam_dir=%{_libdir}/security \
+%ifarch aarch64 ppc64le x86_64
+ --with-ucx=%{_prefix} \
+%endif
--enable-shared \
--enable-x11 \
--disable-static \
@@ -664,6 +675,11 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod
%systemd_postun_with_restart slurmdbd.service
%changelog
+* Mon Jul 15 2019 Philip Kovacs <pkdevel(a)yahoo.com> - 18.08.8-1
+- Release of 18.08.8
+- Closes security issue (CVE-2019-12838)
+- Configure for UCX support on supported arches
+
* Tue Jul 2 2019 Philip Kovacs <pkdevel(a)yahoo.com> - 18.08.7-3
- Do not install slurm implementation of libpmi/pmi2 libraries
- in favor of the faster implementation provided by pmix
diff --git a/slurm_pmix_soname.patch b/slurm_pmix_soname.patch
index 7557569..cb5f88e 100644
--- a/slurm_pmix_soname.patch
+++ b/slurm_pmix_soname.patch
@@ -1,23 +1,89 @@
diff --git a/src/plugins/mpi/pmix/mpi_pmix.c b/src/plugins/mpi/pmix/mpi_pmix.c
-index bbb947616c..65ec00ad73 100644
+index bbb947616c..b284af63f2 100644
--- a/src/plugins/mpi/pmix/mpi_pmix.c
+++ b/src/plugins/mpi/pmix/mpi_pmix.c
-@@ -105,10 +105,17 @@ static void *_libpmix_open(void)
+@@ -89,6 +89,8 @@ const uint32_t plugin_version = SLURM_VERSION_NUMBER;
+
+ void *libpmix_plug = NULL;
+
++static const char *pmix_libraries[] = { "libpmix.so",
"libpmix.so.2", "libpmix.so.1" };
++
+ static void _libpmix_close(void *lib_plug)
+ {
+ xassert(lib_plug);
+@@ -99,15 +101,20 @@ static void *_libpmix_open(void)
+ {
+ void *lib_plug = NULL;
+ char *full_path = NULL;
++ size_t sz = 0;
+
+ #ifdef PMIXP_V1_LIBPATH
+ xstrfmtcat(full_path, "%s/", PMIXP_V1_LIBPATH);
#elif defined PMIXP_V2_LIBPATH
xstrfmtcat(full_path, "%s/", PMIXP_V2_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);
-
-+ if (!lib_plug) {
-+ dlerror();
-+ xstrfmtcat(full_path, "libpmix.so.1");
+- lib_plug = dlopen(full_path, RTLD_LAZY | RTLD_GLOBAL);
+- xfree(full_path);
++
++ while (!lib_plug && (sz < sizeof(pmix_libraries)/sizeof(pmix_libraries[0])))
{
++ xstrfmtcat(full_path, "%s", pmix_libraries[sz]);
+ lib_plug = dlopen(full_path, RTLD_LAZY | RTLD_GLOBAL);
+ xfree(full_path);
++ ++sz;
+ }
-+
+
if (lib_plug && (HAVE_PMIX_VER != pmixp_lib_get_version())) {
PMIXP_ERROR("pmi/pmix: incorrect PMIx library version loaded %d was loaded,
required %d version",
- pmixp_lib_get_version(), (int)HAVE_PMIX_VER);
+diff --git a/src/plugins/mpi/pmix/pmixp_dconn_ucx.c
b/src/plugins/mpi/pmix/pmixp_dconn_ucx.c
+index f6c91adc93..650fb7d5ff 100644
+--- a/src/plugins/mpi/pmix/pmixp_dconn_ucx.c
++++ b/src/plugins/mpi/pmix/pmixp_dconn_ucx.c
+@@ -140,6 +140,8 @@ static struct io_operations _progress_ops = {
+ .handle_read = _progress_read
+ };
+
++static const char *ucx_libraries[] = { "libucp.so", "libucp.so.0"
};
++
+ static void *_ucx_init(int nodeid, pmixp_p2p_data_t direct_hdr);
+ static void _ucx_fini(void *_priv);
+ static int _ucx_connect(void *_priv, void *ep_data, size_t ep_len,
+@@ -161,15 +163,20 @@ static int _load_ucx_lib()
+ setenv("UCX_MEM_MALLOC_RELOC", "no", 1);
+ setenv("UCX_MEM_EVENTS", "no", 1);
+
++ size_t sz = 0;
++
+ #ifdef PMIXP_UCX_LIBPATH
+ /* If this Slurm build doesn't allow RPATH's
+ * try to open library by it's full path that
+ * we have from autoconf
+ */
+ char *full_path = NULL;
+- xstrfmtcat(full_path, "%s/libucp.so", PMIXP_UCX_LIBPATH);
+- _ucx_lib_handler = dlopen(full_path, RTLD_LAZY | RTLD_GLOBAL);
+- xfree(full_path);
++ while (!_ucx_lib_handler && (sz <
sizeof(ucx_libraries)/sizeof(ucx_libraries[0]))) {
++ xstrfmtcat(full_path, "%s/%s", PMIXP_UCX_LIBPATH, ucx_libraries[sz]);
++ _ucx_lib_handler = dlopen(full_path, RTLD_LAZY | RTLD_GLOBAL);
++ xfree(full_path);
++ ++sz;
++ }
+ if (_ucx_lib_handler) {
+ /* successful, exit now */
+ return SLURM_SUCCESS;
+@@ -178,7 +185,13 @@ static int _load_ucx_lib()
+ * known by dynamic linker.
+ */
+ #endif
+- _ucx_lib_handler = dlopen("libucp.so", RTLD_LAZY | RTLD_GLOBAL);
++ sz = 0;
++ while (!_ucx_lib_handler && (sz <
sizeof(ucx_libraries)/sizeof(ucx_libraries[0]))) {
++ xstrfmtcat(full_path, "%s", ucx_libraries[sz]);
++ _ucx_lib_handler = dlopen(full_path, RTLD_LAZY | RTLD_GLOBAL);
++ xfree(full_path);
++ ++sz;
++ }
+ if (!_ucx_lib_handler) {
+ char *err = dlerror();
+ PMIXP_ERROR("Cannot open UCX lib: %s", (err) ? err : "unknown");
diff --git a/sources b/sources
index dff51b9..873076a 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (slurm-18.08.7.tar.bz2) =
d0047086f1b716877cc5bb39539bf96a8fd08b1851c85fd85112c6432c1ce2a0f29fc9dd8803094c8fa44d063cec5f417e6bed231b6d338934ff4b48424a5a93
+SHA512 (slurm-18.08.8.tar.bz2) =
a5557cd043c2a48e652cbbca993420a756ecda80e40ed4ca2f55733050cf4b04477cfb5c8059db67168f5fa6d3fb93ac2c92f8b52b079971f634bd1956173ea0