Compare commits

...
Sign in to create a new pull request.

19 commits

Author SHA1 Message Date
Philip Kovacs
80183677d5 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
2019-07-21 08:40:31 -04:00
Philip Kovacs
3571158c5e Merge branch 'f29' into f30 2019-07-15 17:51:35 -04:00
Philip Kovacs
535d6fb55a Release of 18.08.8
Closes security issue (CVE-2019-12838)
Configure for UCX support on supported arches
2019-07-15 17:50:49 -04:00
Philip Kovacs
5299d7c004 Merge branch 'f29' into f30 2019-07-05 13:45:46 -04:00
Philip Kovacs
51c811baec do not build/install pmi/pmi2 2019-07-05 13:43:58 -04:00
Philip Kovacs
f15abda984 Merge branch 'f29' into f30 2019-07-05 12:11:30 -04:00
Philip Kovacs
c63769b20f Revert "Merge branch 'f30'"
This reverts commit 94164896cb, reversing
changes made to a93547103f.
2019-07-05 11:43:12 -04:00
Philip Kovacs
cc99a557b8 fix bad merge (cnt'd) 2019-07-05 10:48:41 -04:00
Philip Kovacs
8f4e4663ab fix bad merge 2019-07-05 10:40:05 -04:00
Philip Kovacs
77f0f529c5 use pmix as default mpi 2019-07-05 09:57:18 -04:00
Philip Kovacs
94164896cb Merge branch 'f30' 2019-07-02 03:22:23 -04:00
Philip Kovacs
1173b391dc 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
2019-07-02 02:18:07 -04:00
Philip Kovacs
24291ca62c Correct the configure for pmix
Correct the slurm_pmix_soname patch
2019-06-19 20:41:50 -04:00
Philip Kovacs
d2a9192464 Use make_build macro instead of make
Signed-off-by: Philip Kovacs <pkdevel@yahoo.com>
2019-06-19 16:48:42 -04:00
Philip Kovacs
a4e1fabcab Stop using autotools macros that were removed from rpm 2019-06-19 00:31:49 -04:00
Jitka Plesnikova
f36519459d Use perl-macros, because in rpm 4.15 perl macros are no longer defined 2019-06-12 17:23:22 +02:00
Philip Kovacs
8cb979feb9 Exclude upstream-deprecated 32-bit architectures 2019-06-09 18:43:43 -04:00
Philip Kovacs
b8cc3a5172 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
2019-06-09 18:11:56 -04:00
Jitka Plesnikova
81b8fc4a09 Perl 5.30 rebuild 2019-05-30 13:52:44 +02:00
5 changed files with 185 additions and 68 deletions

9
.rpmlint Normal file
View 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")

View file

@ -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

View file

@ -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");

View file

@ -1 +1 @@
SHA512 (slurm-18.08.7.tar.bz2) = d0047086f1b716877cc5bb39539bf96a8fd08b1851c85fd85112c6432c1ce2a0f29fc9dd8803094c8fa44d063cec5f417e6bed231b6d338934ff4b48424a5a93
SHA512 (slurm-18.08.8.tar.bz2) = a5557cd043c2a48e652cbbca993420a756ecda80e40ed4ca2f55733050cf4b04477cfb5c8059db67168f5fa6d3fb93ac2c92f8b52b079971f634bd1956173ea0