From 8cf4509374df515e210a4556babb130d2b4a1706 Mon Sep 17 00:00:00 2001 From: Orion Poplawski Date: Sat, 24 Nov 2018 13:46:24 -0700 Subject: [PATCH] Update to 3.1.3 Drop ppc64le patch fixed upstream Use external libevent and pmix Fix EPEL7 builds --- .gitignore | 1 + openmpi-2.1.1-disable-fifo-test.patch | 103 -------------------------- openmpi.spec | 64 ++++++++-------- sources | 2 +- 4 files changed, 37 insertions(+), 133 deletions(-) delete mode 100644 openmpi-2.1.1-disable-fifo-test.patch diff --git a/.gitignore b/.gitignore index 1f03cfb..683340a 100644 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,4 @@ openmpi-1.4.1-RH.tar.bz2 /openmpi-2.1.1.tar.bz2 /openmpi-2.1.5.tar.bz2 /openmpi-2.1.6rc1.tar.bz2 +/openmpi-3.1.3.tar.bz2 diff --git a/openmpi-2.1.1-disable-fifo-test.patch b/openmpi-2.1.1-disable-fifo-test.patch deleted file mode 100644 index 697111f..0000000 --- a/openmpi-2.1.1-disable-fifo-test.patch +++ /dev/null @@ -1,103 +0,0 @@ ---- openmpi-2.1.1/test/class/Makefile.am 2017-05-10 08:41:36.000000000 -0700 -+++ openmpi-2.1.1/test/class/Makefile.am.new 2017-08-24 09:07:12.539374461 -0700 -@@ -95,11 +95,14 @@ - $(top_builddir)/test/support/libsupport.a - opal_lifo_DEPENDENCIES = $(opal_lifo_LDADD) - --opal_fifo_SOURCES = opal_fifo.c --opal_fifo_LDADD = \ -- $(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la \ -- $(top_builddir)/test/support/libsupport.a --opal_fifo_DEPENDENCIES = $(opal_fifo_LDADD) -+# Disabled due to: -+# https://github.com/open-mpi/ompi/issues/2526 -+# https://github.com/open-mpi/ompi/issues/2966 -+#opal_fifo_SOURCES = opal_fifo.c -+#opal_fifo_LDADD = \ -+# $(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la \ -+# $(top_builddir)/test/support/libsupport.a -+#opal_fifo_DEPENDENCIES = $(opal_fifo_LDADD) - - clean-local: - rm -f opal_bitmap_test_out.txt opal_hash_table_test_out.txt opal_proc_table_test_out.txt ---- openmpi-2.1.1/test/class/Makefile.in 2017-05-10 09:01:13.000000000 -0700 -+++ openmpi-2.1.1/test/class/Makefile.in.new 2017-08-24 09:07:12.539374461 -0700 -@@ -115,7 +115,7 @@ - opal_hash_table$(EXEEXT) opal_proc_table$(EXEEXT) \ - opal_tree$(EXEEXT) opal_list$(EXEEXT) \ - opal_value_array$(EXEEXT) opal_pointer_array$(EXEEXT) \ -- opal_lifo$(EXEEXT) opal_fifo$(EXEEXT) -+ opal_lifo$(EXEEXT) - subdir = test/class - ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 - am__aclocal_m4_deps = $(top_srcdir)/config/c_get_alignment.m4 \ -@@ -411,8 +411,6 @@ - am__v_lt_1 = - am_opal_bitmap_OBJECTS = opal_bitmap.$(OBJEXT) - opal_bitmap_OBJECTS = $(am_opal_bitmap_OBJECTS) --am_opal_fifo_OBJECTS = opal_fifo.$(OBJEXT) --opal_fifo_OBJECTS = $(am_opal_fifo_OBJECTS) - am_opal_hash_table_OBJECTS = opal_hash_table.$(OBJEXT) - opal_hash_table_OBJECTS = $(am_opal_hash_table_OBJECTS) - am_opal_lifo_OBJECTS = opal_lifo.$(OBJEXT) -@@ -462,12 +460,12 @@ - am__v_CCLD_0 = @echo " CCLD " $@; - am__v_CCLD_1 = - SOURCES = $(ompi_rb_tree_SOURCES) $(opal_bitmap_SOURCES) \ -- $(opal_fifo_SOURCES) $(opal_hash_table_SOURCES) \ -+ $(opal_hash_table_SOURCES) \ - $(opal_lifo_SOURCES) $(opal_list_SOURCES) \ - $(opal_pointer_array_SOURCES) $(opal_proc_table_SOURCES) \ - $(opal_tree_SOURCES) $(opal_value_array_SOURCES) - DIST_SOURCES = $(ompi_rb_tree_SOURCES) $(opal_bitmap_SOURCES) \ -- $(opal_fifo_SOURCES) $(opal_hash_table_SOURCES) \ -+ $(opal_hash_table_SOURCES) \ - $(opal_lifo_SOURCES) $(opal_list_SOURCES) \ - $(opal_pointer_array_SOURCES) $(opal_proc_table_SOURCES) \ - $(opal_tree_SOURCES) $(opal_value_array_SOURCES) -@@ -1900,12 +1898,6 @@ - $(top_builddir)/test/support/libsupport.a - - opal_lifo_DEPENDENCIES = $(opal_lifo_LDADD) --opal_fifo_SOURCES = opal_fifo.c --opal_fifo_LDADD = \ -- $(top_builddir)/opal/lib@OPAL_LIB_PREFIX@open-pal.la \ -- $(top_builddir)/test/support/libsupport.a -- --opal_fifo_DEPENDENCIES = $(opal_fifo_LDADD) - all: all-am - - .SUFFIXES: -@@ -1957,10 +1949,6 @@ - @rm -f opal_bitmap$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(opal_bitmap_OBJECTS) $(opal_bitmap_LDADD) $(LIBS) - --opal_fifo$(EXEEXT): $(opal_fifo_OBJECTS) $(opal_fifo_DEPENDENCIES) $(EXTRA_opal_fifo_DEPENDENCIES) -- @rm -f opal_fifo$(EXEEXT) -- $(AM_V_CCLD)$(LINK) $(opal_fifo_OBJECTS) $(opal_fifo_LDADD) $(LIBS) -- - opal_hash_table$(EXEEXT): $(opal_hash_table_OBJECTS) $(opal_hash_table_DEPENDENCIES) $(EXTRA_opal_hash_table_DEPENDENCIES) - @rm -f opal_hash_table$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(opal_hash_table_OBJECTS) $(opal_hash_table_LDADD) $(LIBS) -@@ -1997,7 +1985,6 @@ - - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ompi_rb_tree.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/opal_bitmap.Po@am__quote@ --@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/opal_fifo.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/opal_hash_table.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/opal_lifo.Po@am__quote@ - @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/opal_list.Po@am__quote@ -@@ -2291,13 +2278,6 @@ - $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ - --log-file $$b.log --trs-file $$b.trs \ - $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ -- "$$tst" $(AM_TESTS_FD_REDIRECT) --opal_fifo.log: opal_fifo$(EXEEXT) -- @p='opal_fifo$(EXEEXT)'; \ -- b='opal_fifo'; \ -- $(am__check_pre) $(LOG_DRIVER) --test-name "$$f" \ -- --log-file $$b.log --trs-file $$b.trs \ -- $(am__common_driver_flags) $(AM_LOG_DRIVER_FLAGS) $(LOG_DRIVER_FLAGS) -- $(LOG_COMPILE) \ - "$$tst" $(AM_TESTS_FD_REDIRECT) - .test.log: - @p='$<'; \ diff --git a/openmpi.spec b/openmpi.spec index 5829f11..61617b7 100644 --- a/openmpi.spec +++ b/openmpi.spec @@ -20,25 +20,20 @@ %global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d) Name: openmpi%{?_cc_name_suffix} -Version: 2.1.6 -Release: 0.1.rc1%{?dist} +Version: 3.1.3 +Release: 1%{?dist} Summary: Open Message Passing Interface Group: Development/Libraries License: BSD and MIT and Romio URL: http://www.open-mpi.org/ # We can't use %{name} here because of _cc_name_suffix -Source0: https://www.open-mpi.org/software/ompi/v2.1/downloads/openmpi-%{version}rc1.tar.bz2 +Source0: https://www.open-mpi.org/software/ompi/v3.1/downloads/openmpi-%{version}.tar.bz2 Source1: openmpi.module.in Source2: openmpi.pth.py2 Source3: openmpi.pth.py3 Source4: macros.openmpi -# Only for ppc64le -# https://github.com/open-mpi/ompi/issues/2526 -# https://github.com/open-mpi/ompi/issues/2966 -Patch0: openmpi-2.1.1-disable-fifo-test.patch - BuildRequires: gcc-c++ BuildRequires: gcc-gfortran %ifnarch s390 s390x @@ -56,6 +51,7 @@ BuildRequires: hwloc-devel # So configure can find lstopo BuildRequires: hwloc-gui BuildRequires: java-devel +BuildRequires: libevent-devel %ifnarch s390 s390x BuildRequires: libfabric-devel BuildRequires: papi-devel @@ -65,7 +61,7 @@ BuildRequires: perl(Getopt::Long) BuildRequires: pmix-devel BuildRequires: python2 BuildRequires: python2-devel -BuildRequires: python3-devel +BuildRequires: python%{python3_pkgversion}-devel %ifarch x86_64 BuildRequires: infinipath-psm-devel BuildRequires: libpsm2-devel @@ -75,13 +71,14 @@ BuildRequires: zlib-devel BuildRequires: rpm-mpi-hooks Provides: mpi +%if 0%{?rhel} +Requires: environment-modules +%else Requires: environment(modules) +%endif # openmpi currently requires ssh to run # https://svn.open-mpi.org/trac/ompi/ticket/4228 Requires: openssh-clients -# We have problems using the system libevent - openmpi's is modified -# https://bugzilla.redhat.com/show_bug.cgi?id=1235044 -Provides: bundled(libevent) = 2.0.22 # Private openmpi libraries %global __provides_exclude_from %{_libdir}/openmpi/lib/(lib(mca|ompi|open-(pal|rte|trace))|openmpi/).*.so @@ -140,20 +137,17 @@ Requires: %{name} = %{version}-%{release} %description -n python2-openmpi OpenMPI support for Python 2. -%package -n python3-openmpi +%package -n python%{python3_pkgversion}-openmpi Summary: OpenMPI support for Python 3 Group: Development/Libraries Requires: %{name} = %{version}-%{release} -%description -n python3-openmpi +%description -n python%{python3_pkgversion}-openmpi OpenMPI support for Python 3. %prep -%setup -q -n openmpi-%{version}rc1 -%ifarch ppc64le -%patch0 -p1 -%endif +%setup -q -n openmpi-%{version} %build ./configure --prefix=%{_libdir}/%{name} \ @@ -173,21 +167,19 @@ OpenMPI support for Python 3. --enable-memchecker \ %endif --with-hwloc=/usr \ + --with-libevent=external \ + --with-pmix=external \ CC=%{opt_cc} CXX=%{opt_cxx} \ LDFLAGS='%{__global_ldflags}' \ CFLAGS="%{?opt_cflags} %{!?opt_cflags:$RPM_OPT_FLAGS}" \ CXXFLAGS="%{?opt_cxxflags} %{!?opt_cxxflags:$RPM_OPT_FLAGS}" \ FC=%{opt_fc} FCFLAGS="%{?opt_fcflags} %{!?opt_fcflags:$RPM_OPT_FLAGS}" -# This fails - https://github.com/open-mpi/ompi/issues/2616 -# --with-hwloc=external \ -# We cannot use external pmix without external libevent -# --with-pmix=external \ # --with-contrib-vt-flags='CXXFLAGS="-I%{_includedir}/dyninst -L%{_libdir}/dyninst"' \ -make %{?_smp_mflags} V=1 +%make_build V=1 %install -make install DESTDIR=%{buildroot} +%make_install find %{buildroot}%{_libdir}/%{name}/lib -name \*.la | xargs rm find %{buildroot}%{_mandir}/%{namearch} -type f | xargs gzip -9 ln -s mpicc.1.gz %{buildroot}%{_mandir}/%{namearch}/man1/mpiCC.1.gz @@ -241,7 +233,7 @@ install -pDm0644 %{SOURCE3} %{buildroot}/%{python3_sitearch}/openmpi.pth make check %files -%license LICENSE opal/mca/event/libevent2022/libevent/LICENSE +%license LICENSE %dir %{_libdir}/%{name} %dir %{_sysconfdir}/%{namearch} %dir %{_libdir}/%{name}/bin @@ -255,14 +247,20 @@ make check %{_libdir}/%{name}/bin/orte[-dr_]* %{_libdir}/%{name}/bin/oshmem_info %{_libdir}/%{name}/bin/oshrun +%{_libdir}/%{name}/bin/prun %{_libdir}/%{name}/bin/shmemrun -%{_libdir}/%{name}/lib/*.so.* +%{_libdir}/%{name}/lib/*.so.40* +%{_libdir}/%{name}/lib/libmca*.so.41* +%{_libdir}/%{name}/lib/libmca*.so.50* %{_mandir}/%{namearch}/man1/mpi[er]* %{_mandir}/%{namearch}/man1/ompi* %{_mandir}/%{namearch}/man1/orte[-dr_]* %{_mandir}/%{namearch}/man1/oshmem_info* %{_mandir}/%{namearch}/man1/oshrun* +%{_mandir}/%{namearch}/man1/prun* %{_mandir}/%{namearch}/man1/shmemrun* +%{_mandir}/%{namearch}/man7/ompi_* +%{_mandir}/%{namearch}/man7/opal_* %{_mandir}/%{namearch}/man7/orte* %{_libdir}/%{name}/lib/openmpi/* %{_datadir}/modulefiles/mpi/ @@ -276,11 +274,13 @@ make check %files devel %dir %{_includedir}/%{namearch} +%{_libdir}/%{name}/bin/aggregate_profile.pl %{_libdir}/%{name}/bin/mpi[cCf]* %{_libdir}/%{name}/bin/opal_* %{_libdir}/%{name}/bin/orte[cCf]* -%{_libdir}/%{name}/bin/osh[cf]* -%{_libdir}/%{name}/bin/shmem[cf]* +%{_libdir}/%{name}/bin/osh[cCf]* +%{_libdir}/%{name}/bin/profile2mat.pl +%{_libdir}/%{name}/bin/shmem[cCf]* %{_includedir}/%{namearch}/* %{_fmoddir}/%{name}/ %{_libdir}/%{name}/lib/*.so @@ -310,12 +310,18 @@ make check %dir %{python2_sitearch}/%{name} %{python2_sitearch}/openmpi.pth -%files -n python3-openmpi +%files -n python%{python3_pkgversion}-openmpi %dir %{python3_sitearch}/%{name} %{python3_sitearch}/openmpi.pth %changelog +* Sat Dec 15 2018 Orion Poplawski - 3.1.3-1 +- Update to 3.1.3 +- Drop ppc64le patch fixed upstream +- Use external libevent and pmix +- Fix EPEL7 builds + * Wed Nov 28 2018 Orion Poplawski - 2.1.6-0.1.rc1 - Update to 2.1.6rc1 diff --git a/sources b/sources index 3c95616..edcaaa5 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (openmpi-2.1.6rc1.tar.bz2) = 7e0cc0cc0326f2ab7cf9689afa6954cb9e894a14900a0c0287502e5ce12bcf61349806052c6cf16e670d6973f914874ebe6633d5471bfe2416fea8f4cd3feaac +SHA512 (openmpi-3.1.3.tar.bz2) = 700821df676de5f85ce2793298242dcaea73f585f89540e30999792a568f193545a9f9b2bcb3ea22effa3bf14744531c4eb5fc4c84a8d7bbe5e5fdd76ab3a04a