Compare commits
19 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
80183677d5 | ||
|
|
3571158c5e | ||
|
|
535d6fb55a | ||
|
|
5299d7c004 | ||
|
|
51c811baec | ||
|
|
f15abda984 | ||
|
|
c63769b20f | ||
|
|
cc99a557b8 | ||
|
|
8f4e4663ab | ||
|
|
77f0f529c5 | ||
|
|
94164896cb | ||
|
|
1173b391dc | ||
|
|
24291ca62c | ||
|
|
d2a9192464 | ||
|
|
a4e1fabcab | ||
|
|
f36519459d | ||
|
|
8cb979feb9 | ||
|
|
b8cc3a5172 | ||
|
|
81b8fc4a09 |
5 changed files with 185 additions and 68 deletions
9
.rpmlint
Normal file
9
.rpmlint
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
from Config import *
|
||||
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")
|
||||
154
slurm.spec
154
slurm.spec
|
|
@ -7,12 +7,19 @@
|
|||
%global name_version %{name}-%{version}-%{ups_rel}
|
||||
%endif
|
||||
|
||||
# follow arch-inclusions for ucx
|
||||
%ifarch aarch64 ppc64le x86_64
|
||||
%bcond_without ucx
|
||||
%else
|
||||
%bcond_with ucx
|
||||
%endif
|
||||
|
||||
# Allow linkage with undefined symbols (disable -z,defs)
|
||||
%undefine _strict_symbol_defs_build
|
||||
|
||||
Name: slurm
|
||||
Version: 18.08.7
|
||||
Release: 3%{?dist}
|
||||
Version: 18.08.8
|
||||
Release: 2%{?dist}
|
||||
Summary: Simple Linux Utility for Resource Management
|
||||
License: GPLv2 and BSD
|
||||
URL: https://slurm.schedmd.com/
|
||||
|
|
@ -30,7 +37,7 @@ Patch0: slurm_libslurmfull_version.patch
|
|||
Patch10: slurm_perlapi_rpaths.patch
|
||||
Patch11: slurm_html_doc_path.patch
|
||||
Patch12: slurm_doc_fix.patch
|
||||
Patch13: slurm_do_not_build_cray.patch
|
||||
Patch13: slurm_without_cray.patch
|
||||
|
||||
# Fedora-related patches
|
||||
Patch20: slurm_pmix_soname.patch
|
||||
|
|
@ -44,38 +51,45 @@ 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: ncurses-devel
|
||||
BuildRequires: pam-devel
|
||||
BuildRequires: pkgconfig(gtk+-2.0)
|
||||
BuildRequires: pkgconfig(hwloc)
|
||||
BuildRequires: pkgconfig(libcurl)
|
||||
BuildRequires: pkgconfig(libfreeipmi)
|
||||
BuildRequires: pkgconfig(liblz4)
|
||||
BuildRequires: pkgconfig(librrd)
|
||||
BuildRequires: pkgconfig(libssh2)
|
||||
BuildRequires: pkgconfig(lua)
|
||||
BuildRequires: pkgconfig(mariadb)
|
||||
BuildRequires: pkgconfig(munge)
|
||||
BuildRequires: pkgconfig(ncurses)
|
||||
BuildRequires: pkgconfig(openssl)
|
||||
BuildRequires: pkgconfig(pmix) >= 2.0.0
|
||||
BuildRequires: pkgconfig(zlib)
|
||||
BuildRequires: readline-devel
|
||||
|
||||
# follow arch exclusions for these devel packages
|
||||
%ifnarch s390 s390x %{arm}
|
||||
BuildRequires: pmix-devel
|
||||
BuildRequires: rdma-core-devel
|
||||
BuildRequires: readline-devel
|
||||
BuildRequires: rrdtool-devel
|
||||
BuildRequires: zlib-devel
|
||||
|
||||
%if %{with ucx}
|
||||
BuildRequires: ucx-devel
|
||||
%endif
|
||||
|
||||
# follow arch exclusions for numa
|
||||
%ifnarch %{arm}
|
||||
BuildRequires: numactl-devel
|
||||
%endif
|
||||
|
||||
Requires: munge
|
||||
Requires: pmix >= 2.0.0
|
||||
Requires: pmix
|
||||
%if %{with ucx}
|
||||
Requires: ucx
|
||||
%endif
|
||||
%{?systemd_requires}
|
||||
|
||||
%description
|
||||
|
|
@ -113,6 +127,22 @@ 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}
|
||||
|
|
@ -160,14 +190,6 @@ Requires: %{name}-perlapi%{?_isa} = %{version}-%{release}
|
|||
%description openlava
|
||||
OpenLava wrapper scripts used for helping migrate from OpenLava/LSF 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 pam_slurm
|
||||
Summary: PAM module for restricting access to compute nodes via Slurm
|
||||
Requires: %{name}-libs%{?_isa} = %{version}-%{release}
|
||||
|
|
@ -177,6 +199,14 @@ 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}
|
||||
|
|
@ -215,6 +245,9 @@ automake --no-force
|
|||
--prefix=%{_prefix} \
|
||||
--sysconfdir=%{_sysconfdir}/%{name} \
|
||||
--with-pam_dir=%{_libdir}/security \
|
||||
%if %{with ucx}
|
||||
--with-ucx=%{_prefix} \
|
||||
%endif
|
||||
--enable-shared \
|
||||
--enable-x11 \
|
||||
--disable-static \
|
||||
|
|
@ -302,19 +335,6 @@ touch %{buildroot}%{_rundir}/%{name}/slurmctld.pid
|
|||
touch %{buildroot}%{_rundir}/%{name}/slurmd.pid
|
||||
touch %{buildroot}%{_rundir}/%{name}/slurmdbd.pid
|
||||
|
||||
# install pkgconfig file slurm.pc
|
||||
install -d -m 0755 %{buildroot}%{_libdir}/pkgconfig
|
||||
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
|
||||
EOF
|
||||
|
||||
# install desktop file for sview GTK+ program
|
||||
desktop-file-install \
|
||||
--dir=%{buildroot}%{_datadir}/applications \
|
||||
|
|
@ -350,10 +370,6 @@ 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 pmi/pmi2 headers which are provided by pmix dependency
|
||||
rm -rf %{buildroot}%{_includedir}/%{name}/pmi*.h
|
||||
# remove libpmi/pmi2 libraries which are provided by pmix dependency
|
||||
rm -rf %{buildroot}%{_libdir}/libpmi*.so*
|
||||
# remove libslurmfull symlink (non-development, internal library)
|
||||
rm -rf %{buildroot}%{_libdir}/libslurmfull.so
|
||||
# remove auth_none plugin
|
||||
|
|
@ -476,7 +492,6 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod
|
|||
%{_includedir}/%{name}/smd_ns.h
|
||||
%{_includedir}/%{name}/spank.h
|
||||
%{_libdir}/lib{slurm,slurmdb}.so
|
||||
%{_libdir}/pkgconfig/%{name}.pc
|
||||
%{_libdir}/%{name}/src/sattach/sattach.wrapper.c
|
||||
%{_libdir}/%{name}/src/srun/srun.wrapper.c
|
||||
%{_mandir}/man3/*.3.*
|
||||
|
|
@ -511,6 +526,23 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod
|
|||
%{_libdir}/libslurmdb.so.*
|
||||
%{_libdir}/libslurmfull-*.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
|
||||
# -------------
|
||||
|
|
@ -587,6 +619,14 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod
|
|||
%{_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
|
||||
# -------------
|
||||
|
|
@ -603,14 +643,6 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod
|
|||
%{perl_vendorarch}/auto/Slurmdb/Slurmdb.so
|
||||
%{perl_vendorarch}/auto/Slurmdb/autosplit.ix
|
||||
|
||||
# ---------------
|
||||
# Slurm-pam_slurm
|
||||
# ---------------
|
||||
|
||||
%files pam_slurm
|
||||
%{_libdir}/security/pam_slurm.so
|
||||
%{_libdir}/security/pam_slurm_adopt.so
|
||||
|
||||
# ------------
|
||||
# Slurm-torque
|
||||
# ------------
|
||||
|
|
@ -666,6 +698,16 @@ rm -f %{buildroot}%{perl_archlib}/perllocal.pod
|
|||
%systemd_postun_with_restart slurmdbd.service
|
||||
|
||||
%changelog
|
||||
* Sun Jul 21 2019 Philip Kovacs <pkdevel@yahoo.com> - 18.08.8-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 <pkdevel@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@yahoo.com> - 18.08.7-3
|
||||
- Do not install slurm implementation of libpmi/pmi2 libraries
|
||||
- in favor of the faster implementation provided by pmix
|
||||
|
|
|
|||
|
|
@ -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");
|
||||
|
|
|
|||
2
sources
2
sources
|
|
@ -1 +1 @@
|
|||
SHA512 (slurm-18.08.7.tar.bz2) = d0047086f1b716877cc5bb39539bf96a8fd08b1851c85fd85112c6432c1ce2a0f29fc9dd8803094c8fa44d063cec5f417e6bed231b6d338934ff4b48424a5a93
|
||||
SHA512 (slurm-18.08.8.tar.bz2) = a5557cd043c2a48e652cbbca993420a756ecda80e40ed4ca2f55733050cf4b04477cfb5c8059db67168f5fa6d3fb93ac2c92f8b52b079971f634bd1956173ea0
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue