%global name_version %{name}-%{version} Name: pmix Version: 3.1.6 Release: rhel7 Summary: Process Management Interface Exascale (PMIx) License: BSD URL: https://pmix.org/ Source0: https://github.com/pmix/%{name}/releases/download/v%{version}/%{name_version}.tar.bz2 BuildRequires: autoconf BuildRequires: automake BuildRequires: flex BuildRequires: gcc BuildRequires: hwloc-devel BuildRequires: libevent-devel BuildRequires: libtool BuildRequires: munge-devel BuildRequires: perl-interpreter %description The Process Management Interface (PMI) has been used for quite some time as a means of exchanging wireup information needed for interprocess communication. Two versions (PMI-1 and PMI-2) have been released as part of the MPICH effort. While PMI-2 demonstrates better scaling properties than its PMI-1 predecessor, attaining rapid launch and wireup of the roughly 1M processes executing across 100k nodes expected for exascale operations remains challenging. PMI Exascale (PMIx) represents an attempt to resolve these questions by providing an extended version of the PMI standard specifically designed to support clusters up to and including exascale sizes. The overall objective of the project is not to branch the existing pseudo-standard definitions - in fact, PMIx fully supports both of the existing PMI-1 and PMI-2 APIs - but rather to (a) augment and extend those APIs to eliminate some current restrictions that impact scalability, and (b) provide a reference implementation of the PMI-server that demonstrates the desired level of scalability. %package devel Summary: Development files for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} %description devel The %{name}-devel package contains libraries and header files for developing applications that use %{name}. %package pmi Summary: The %{name} implementation of libpmi and libpmi2 Requires: %{name}%{?_isa} = %{version}-%{release} Conflicts: slurm-pmi %description pmi The %{name}-pmi package contains the %{name} implementation of the libpmi and libpmi2 backward-compatibility libraries. %package pmi-devel Summary: Development files for %{name}-pmi Requires: %{name}-pmi%{?_isa} = %{version}-%{release} Conflicts: slurm-pmi-devel %description pmi-devel The %{name}-pmi-devel package contains the development files for the libpmi and libpmi2 backward-compatibility libraries. %package tools Summary: Tools for %{name} Requires: %{name}%{?_isa} = %{version}-%{release} %description tools The %{name}-tools package contains for use with PMIx-based RMs and language- based starters (e.g., mpirun). * pinfo - show MCA params, build info, etc. * pps - get list of active nspaces, retrieve status of jobs/nodes/procs * pevent - inject an event into the system %prep %setup -q -n %{name_version} # touch lexer sources to recompile them find src -name \*.l -print -exec touch --no-create {} \; %build %{_builddir}/%{name_version}/autogen.pl %configure \ --prefix=%{_prefix} \ --sysconfdir=%{_sysconfdir}/%{name} \ --disable-static \ --disable-silent-rules \ --enable-shared \ --enable-pmi-backward-compatibility \ --with-munge %make_build %check %make_build check %install %make_install # remove libtool archives find %{buildroot} -name '*.la' | xargs rm -f %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %license LICENSE %doc README %dir %{_datadir}/%{name} %dir %{_libdir}/%{name} %dir %{_sysconfdir}/%{name} %config(noreplace) %{_sysconfdir}/%{name}/*.conf %{_datadir}/%{name}/*.txt %{_libdir}/libmca_common_dstore.so.1* %{_libdir}/libpmix.so.2* %{_libdir}/%{name}/*.so %files devel %{_datadir}/%{name}/*.supp %{_includedir}/pmix*.h %{_libdir}/libmca_common_dstore.so %{_libdir}/libpmix.so %files pmi %{_libdir}/libpmi.so.1* %{_libdir}/libpmi2.so.1* %files pmi-devel %{_includedir}/pmi.h %{_includedir}/pmi2.h %{_libdir}/libpmi.so %{_libdir}/libpmi2.so %files tools %{_bindir}/* %changelog * Mon Feb 01 2021 Antonio J. Russo - 3.1.6 - Initial version