diff --git a/.gitignore b/.gitignore
index a33e76f..ba8757e 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
-SOURCES/openmpi-1.10.6.tar.bz2
+SOURCES/openmpi-1.10.7.tar.bz2
 SOURCES/openmpi-1.6.4-clean.tar.xz
+SOURCES/openmpi-3.0.0.tar.bz2
diff --git a/.openmpi.metadata b/.openmpi.metadata
index 4f3c94e..dc068e2 100644
--- a/.openmpi.metadata
+++ b/.openmpi.metadata
@@ -1,2 +1,3 @@
-cbb3121d30869ee89b5484af274b6b477d8ac72f SOURCES/openmpi-1.10.6.tar.bz2
+fe359d8caa4888625308cf03343d913dd5ac6198 SOURCES/openmpi-1.10.7.tar.bz2
 24ec0fd3b82c72df9086e5b6b6be6d0a72f70892 SOURCES/openmpi-1.6.4-clean.tar.xz
+fa63990db1aec88b36335a1d79abf47ac6348e23 SOURCES/openmpi-3.0.0.tar.bz2
diff --git a/SOURCES/0001-tests-disable-opal_fifo-test.patch b/SOURCES/0001-tests-disable-opal_fifo-test.patch
new file mode 100644
index 0000000..c1c042c
--- /dev/null
+++ b/SOURCES/0001-tests-disable-opal_fifo-test.patch
@@ -0,0 +1,133 @@
+From 666ed459887782994fa963f77f3144eb647e2b1e Mon Sep 17 00:00:00 2001
+From: Michal Schmidt <mschmidt@redhat.com>
+Date: Fri, 3 Nov 2017 10:34:07 +0100
+Subject: [PATCH] tests: disable opal_fifo test
+
+The opal_fifo test hangs on ppc64le.
+https://github.com/open-mpi/ompi/issues/2526
+https://github.com/open-mpi/ompi/issues/2966
+---
+ test/class/Makefile.am | 16 +++++++++-------
+ test/class/Makefile.in | 26 +++-----------------------
+ 2 files changed, 12 insertions(+), 30 deletions(-)
+
+diff --git a/test/class/Makefile.am b/test/class/Makefile.am
+index 4dc7daf24c..fc325ef96e 100644
+--- a/test/class/Makefile.am
++++ b/test/class/Makefile.am
+@@ -35,8 +35,7 @@ check_PROGRAMS = \
+ 	opal_list \
+ 	opal_value_array \
+ 	opal_pointer_array \
+-	opal_lifo \
+-	opal_fifo
++	opal_lifo
+ 
+ TESTS = $(check_PROGRAMS)
+ 
+@@ -95,11 +94,14 @@ opal_lifo_LDADD = \
+ 	$(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
+diff --git a/test/class/Makefile.in b/test/class/Makefile.in
+index c6c20f30b9..2ed128a77f 100644
+--- a/test/class/Makefile.in
++++ b/test/class/Makefile.in
+@@ -115,7 +115,7 @@ check_PROGRAMS = $(am__EXEEXT_1) opal_bitmap$(EXEEXT) \
+ 	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 \
+@@ -426,8 +426,6 @@ am__v_lt_0 = --silent
+ 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)
+@@ -477,12 +475,12 @@ am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
+ 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)
+@@ -1974,12 +1972,6 @@ opal_lifo_LDADD = \
+ 	$(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:
+@@ -2031,10 +2023,6 @@ opal_bitmap$(EXEEXT): $(opal_bitmap_OBJECTS) $(opal_bitmap_DEPENDENCIES) $(EXTRA
+ 	@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)
+@@ -2071,7 +2059,6 @@ distclean-compile:
+ 
+ @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@
+@@ -2366,13 +2353,6 @@ opal_lifo.log: opal_lifo$(EXEEXT)
+ 	--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='$<'; \
+ 	$(am__set_b); \
+-- 
+2.13.6
+
diff --git a/SOURCES/0002-btl-openib-fix-segmentation-fault.patch b/SOURCES/0002-btl-openib-fix-segmentation-fault.patch
new file mode 100644
index 0000000..725ba66
--- /dev/null
+++ b/SOURCES/0002-btl-openib-fix-segmentation-fault.patch
@@ -0,0 +1,37 @@
+From 5efe6f70f310858f554287bcf7883442380a0701 Mon Sep 17 00:00:00 2001
+From: Nathan Hjelm <hjelmn@lanl.gov>
+Date: Tue, 28 Jun 2016 10:26:16 -0600
+Subject: [PATCH] btl/openib: fix segmentation fault
+
+This commit fixes a segmentation fault that occurs if a device can be
+initialized but not used. In this case the devices_count is not equal
+to the number of usable devices in the devices pointer array.
+
+Thanks to @artpol84 for tracking this down.
+
+Fixes open-mpi/ompi#1823
+
+Signed-off-by: Nathan Hjelm <hjelmn@lanl.gov>
+(cherry picked from commit 8128c8eb29d6adde288fca5db3f71fb98e1727f6)
+---
+ ompi/mca/btl/openib/btl_openib_component.c | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/ompi/mca/btl/openib/btl_openib_component.c b/ompi/mca/btl/openib/btl_openib_component.c
+index 40831f2373..d1376e0a58 100644
+--- a/ompi/mca/btl/openib/btl_openib_component.c
++++ b/ompi/mca/btl/openib/btl_openib_component.c
+@@ -3630,7 +3630,9 @@ static int btl_openib_component_progress(void)
+     for(i = 0; i < mca_btl_openib_component.devices_count; i++) {
+         mca_btl_openib_device_t *device =
+             (mca_btl_openib_device_t *) opal_pointer_array_get_item(&mca_btl_openib_component.devices, i);
+-        count += progress_one_device(device);
++        if (NULL != device) {
++            count += progress_one_device(device);
++        }
+     }
+ 
+ #if OPAL_CUDA_SUPPORT /* CUDA_ASYNC_SEND */
+-- 
+2.13.5
+
diff --git a/SOURCES/macros.openmpi3 b/SOURCES/macros.openmpi3
new file mode 100644
index 0000000..7740881
--- /dev/null
+++ b/SOURCES/macros.openmpi3
@@ -0,0 +1,6 @@
+%_openmpi3_load \
+ . /etc/profile.d/modules.sh; \
+ module load mpi/openmpi3-%{_arch};
+%_openmpi3_unload \
+ . /etc/profile.d/modules.sh; \
+ module unload mpi/openmpi3-%{_arch};
diff --git a/SOURCES/openmpi3.module.in b/SOURCES/openmpi3.module.in
new file mode 100644
index 0000000..7a3479c
--- /dev/null
+++ b/SOURCES/openmpi3.module.in
@@ -0,0 +1,21 @@
+#%Module 1.0
+#
+#  OpenMPI module for use with 'environment-modules' package:
+#
+conflict		mpi
+prepend-path 		PATH 		@LIBDIR@/bin
+prepend-path 		LD_LIBRARY_PATH @LIBDIR@/lib
+prepend-path 		PKG_CONFIG_PATH	@LIBDIR@/lib/pkgconfig
+prepend-path		PYTHONPATH	@PY2SITEARCH@
+prepend-path		MANPATH		@MANDIR@
+setenv 			MPI_BIN		@LIBDIR@/bin
+setenv			MPI_SYSCONFIG	@ETCDIR@
+setenv			MPI_FORTRAN_MOD_DIR	@FMODDIR@
+setenv			MPI_INCLUDE	@INCDIR@
+setenv	 		MPI_LIB		@LIBDIR@/lib
+setenv			MPI_MAN		@MANDIR@
+setenv			MPI_PYTHON_SITEARCH	@PY2SITEARCH@
+setenv			MPI_PYTHON2_SITEARCH	@PY2SITEARCH@
+setenv			MPI_COMPILER	@COMPILER@
+setenv			MPI_SUFFIX	@SUFFIX@
+setenv	 		MPI_HOME	@LIBDIR@
diff --git a/SPECS/openmpi.spec b/SPECS/openmpi.spec
index 71d13f6..d8f3904 100644
--- a/SPECS/openmpi.spec
+++ b/SPECS/openmpi.spec
@@ -17,22 +17,24 @@
 # suffix in order to keep the names from conflicting.
 #global _cc_name_suffix -gcc
 
+%global macrosdir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d)
+
 %global majmin 1.10
-%global mainversion	%{majmin}.6
+%global mainversion	%{majmin}.7
 
 Name:			openmpi%{?_cc_name_suffix}
 Version:		%{mainversion}
-Release:		2%{?dist}
+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:		http://www.open-mpi.org/software/ompi/v%{majmin}/downloads/openmpi-%{mainversion}.tar.bz2
 Source1:		openmpi.module.in
 Source2:		macros.openmpi.in
 Patch1:			0001-Add-Chelsio-T6-adapter-device-parameters.patch
+Patch2:			0002-btl-openib-fix-segmentation-fault.patch
 
 # openmpi-1.6.4-clean.tar.xz was generated by taking the upstream tarball
 # and removing license-incompatible files:
@@ -47,6 +49,14 @@ Patch102:		openmpi-1.6.4-ppc64le.patch
 # Backport of gcc atomics needed for AArch64
 Patch103:		openmpi-1.6.4-aarch64.patch
 
+Source300:              https://www.open-mpi.org/software/ompi/v3.0/downloads/openmpi-3.0.0.tar.bz2
+Source301:              openmpi3.module.in
+Source302:              macros.openmpi3
+# Only for ppc64le
+# https://github.com/open-mpi/ompi/issues/2526
+# https://github.com/open-mpi/ompi/issues/2966
+Patch301:               0001-tests-disable-opal_fifo-test.patch
+
 BuildRequires:		gcc-gfortran
 #sparc 64 doesn't have valgrind
 %ifnarch %{sparc} s390
@@ -80,7 +90,7 @@ Provides:		libmpi_usempi.so.1
 %endif
 
 # Private openmpi libraries
-%global __provides_exclude_from %{_libdir}/(openmpi|compat-openmpi16)/lib/(lib(mca|ompi|open-(pal|rte|trace))|openmpi/).*.so
+%global __provides_exclude_from %{_libdir}/(openmpi3|openmpi|compat-openmpi16)/lib/(lib(mca|ompi|open-(pal|rte|trace))|openmpi/).*.so
 %global __requires_exclude lib(mca|ompi|open-(pal|rte|trace)|vt).*
 
 %description
@@ -102,12 +112,61 @@ Obsoletes:	openmpi-psm-devel
 %description devel
 Contains development headers and libraries for openmpi
 
+%ifnarch ppc ppc64
+%package -n openmpi3%{?_cc_name_suffix}
+Summary:        Open Message Passing Interface 3
+Group:          Development/Libraries
+Version:        3.0.0
+Release:        1%{?dist}
+Provides:       mpi
+Requires:       environment-modules
+Requires:       openssh-clients
+
+%description -n openmpi3%{?_cc_name_suffix}
+The Open MPI Project is an open source Message Passing Interface implementation
+that is developed and maintained by a consortium of academic, research, and
+industry partners. Open MPI is therefore able to combine the expertise,
+technologies, and resources from all across the High Performance Computing
+community in order to build the best MPI library available. Open MPI offers
+advantages for system and software vendors, application developers and computer
+science researchers.
+Features implemented or in short-term development for Open MPI include:
+ * Full MPI-3.1 standards conformance
+ * Thread safety and concurrency
+ * Dynamic process spawning
+ * Network and process fault tolerance
+ * Support network heterogeneity
+ * Single library supports all networks
+ * Run-time instrumentation
+ * Many job schedulers supported
+ * Many OS's supported (32 and 64 bit)
+ * Production quality software
+ * High performance on all platforms
+ * Portable and maintainable
+ * Tunable by installers and end-users
+ * Component-based design, documented APIs
+ * Active, responsive mailing list
+ * Open source license based on the BSD license
+
+%package -n openmpi3%{?_cc_name_suffix}-devel
+Summary:        Development files for openmpi3
+Group:          Development/Libraries
+Version:        3.0.0
+Release:        %{release}
+Requires:       openmpi3%{?_cc_name_suffix}%{?_isa} = %{version}-%{release}, gcc-gfortran
+Provides:       mpi-devel
+
+%description -n openmpi3%{?_cc_name_suffix}-devel
+Contains development headers and libraries for openmpi3.
+
+%endif
+
 %ifnarch s390 s390x
 %package -n compat-openmpi16%{?_cc_name_suffix}
 Summary:        Open MPI 1.6 compat library
 Group:          Development/Libraries
 Version:        1.6.4
-Release:        10.5%{?dist}
+Release:        10.6%{?dist}
 Provides:       mpi
 Requires:       environment-modules
 
@@ -165,8 +224,15 @@ Contains development headers and libraries for compat-openmpi16
 %endif
 
 %prep
-%setup -q -n openmpi-%{mainversion} -b 100
+%setup -q -n openmpi-%{mainversion} -b 100 -b 300
 %patch1 -p1
+%patch2 -p1
+cd ..
+
+cd openmpi-3.0.0
+%ifarch ppc64le
+%patch301 -p1
+%endif
 cd ..
 
 cd openmpi-1.6.4
@@ -222,6 +288,39 @@ cd ..
 make %{?_smp_mflags}
 cd ..
 
+%ifnarch ppc ppc64
+%global variant openmpi3
+%global libname %{variant}%{?_cc_name_suffix}
+%global namearch %{variant}-%{_arch}%{?_cc_name_suffix}
+
+cd openmpi-3.0.0
+./configure --prefix=%{_libdir}/%{libname} \
+	--mandir=%{_mandir}/%{namearch} \
+	--includedir=%{_includedir}/%{namearch} \
+	--sysconfdir=%{_sysconfdir}/%{namearch} \
+	--disable-silent-rules \
+	--enable-builtin-atomics \
+	--enable-mpi-cxx \
+	--with-sge \
+%ifnarch s390
+	--with-valgrind \
+	--enable-memchecker \
+%endif
+	--with-hwloc=/usr \
+	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 \
+
+make %{?_smp_mflags}
+cd ..
+%endif
+
 %ifnarch s390 s390x
 %global variant compat-openmpi16
 %global libname %{variant}%{?_cc_name_suffix}
@@ -292,7 +391,17 @@ mkdir %{buildroot}%{_mandir}/%{namearch}/man{2,4,5,6,8,9,n}
 # Make the environment-modules file
 mkdir -p %{buildroot}%{_sysconfdir}/modulefiles/mpi
 # Since we're doing our own substitution here, use our own definitions.
-sed 's#@LIBDIR@#'%{_libdir}/%{libname}'#g;s#@ETCDIR@#'%{_sysconfdir}/%{namearch}'#g;s#@FMODDIR@#'%{_fmoddir}/%{namearch}'#g;s#@INCDIR@#'%{_includedir}/%{namearch}'#g;s#@MANDIR@#'%{_mandir}/%{namearch}'#g;s#@PYSITEARCH@#'%{python_sitearch}/%{libname}'#g;s#@COMPILER@#%{variant}-'%{_arch}%{?_cc_name_suffix}'#g;s#@SUFFIX@#'%{?_cc_name_suffix}'_%{variant}#g' < %SOURCE1 > %{buildroot}%{_sysconfdir}/modulefiles/mpi/%{namearch}
+sed 's#@LIBDIR@#'%{_libdir}/%{libname}'#g;
+     s#@ETCDIR@#'%{_sysconfdir}/%{namearch}'#g;
+     s#@FMODDIR@#'%{_fmoddir}/%{namearch}'#g;
+     s#@INCDIR@#'%{_includedir}/%{namearch}'#g;
+     s#@MANDIR@#'%{_mandir}/%{namearch}'#g;
+     s#@PYSITEARCH@#'%{python_sitearch}/%{libname}'#g;
+     s#@COMPILER@#%{variant}-'%{_arch}%{?_cc_name_suffix}'#g;
+     s#@SUFFIX@#'%{?_cc_name_suffix}'_%{variant}#g' \
+     < %SOURCE1 \
+     > %{buildroot}%{_sysconfdir}/modulefiles/mpi/%{namearch}
+
 # make the rpm config file
 mkdir -p %{buildroot}/%{_sysconfdir}/rpm
 LIBNAME="%{libname}"
@@ -312,6 +421,56 @@ ln -s libmpi_usempi.so.5 %{buildroot}/%{_libdir}/%{libname}/lib/libmpi_usempi.so
 
 cd ..
 
+%ifnarch ppc ppc64
+%global variant openmpi3
+%global libname %{variant}%{?_cc_name_suffix}
+%global namearch %{variant}-%{_arch}%{?_cc_name_suffix}
+
+cd openmpi-3.0.0
+make install DESTDIR=%{buildroot}
+find %{buildroot}%{_libdir}/%{libname}/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
+# Remove dangling symlink
+rm %{buildroot}%{_mandir}/%{namearch}/man1/mpiCC.1
+mkdir %{buildroot}%{_mandir}/%{namearch}/man{2,4,5,6,8,9,n}
+
+# Make the environment-modules file
+mkdir -p %{buildroot}%{_sysconfdir}/modulefiles/mpi
+# Since we're doing our own substitution here, use our own definitions.
+sed 's#@LIBDIR@#%{_libdir}/%{libname}#;
+     s#@ETCDIR@#%{_sysconfdir}/%{namearch}#;
+     s#@FMODDIR@#%{_fmoddir}/%{libname}#;
+     s#@INCDIR@#%{_includedir}/%{namearch}#;
+     s#@MANDIR@#%{_mandir}/%{namearch}#;
+     s#@PY2SITEARCH@#%{python_sitearch}/%{libname}#;
+     s#@COMPILER@#%{variant}-'%{_arch}%{?_cc_name_suffix}'#g;
+     s#@SUFFIX@#'%{?_cc_name_suffix}'_%{variant}#g' \
+     <%{SOURCE301} \
+     >%{buildroot}%{_sysconfdir}/modulefiles/mpi/%{namearch}
+
+# make the rpm config file
+install -Dpm 644 %{SOURCE302} %{buildroot}/%{macrosdir}/macros.%{namearch}
+
+# Link the fortran module to proper location
+mkdir -p %{buildroot}%{_fmoddir}/%{libname}
+for mod in %{buildroot}%{_libdir}/%{libname}/lib/*.mod
+do
+  modname=$(basename $mod)
+  ln -s ../../../%{libname}/lib/${modname} %{buildroot}/%{_fmoddir}/%{libname}/
+done
+
+mkdir -p %{buildroot}/%{python_sitearch}/%{libname}
+
+# Link the pkgconfig files into the main namespace as well
+mkdir -p %{buildroot}%{_libdir}/pkgconfig
+cd %{buildroot}%{_libdir}/pkgconfig
+ln -s ../%{libname}/lib/pkgconfig/*.pc .
+cd -
+
+cd ..
+%endif
+
 %ifnarch s390 s390x
 %global variant compat-openmpi16
 %global libname %{variant}%{?_cc_name_suffix}
@@ -350,6 +509,12 @@ cd ..
 make check
 cd ..
 
+%ifnarch ppc ppc64
+cd openmpi-3.0.0
+make check
+cd ..
+%endif
+
 %ifnarch s390 s390x
 cd openmpi-1.6.4
 make check
@@ -423,6 +588,75 @@ cd ..
 %{_libdir}/%{name}/share/vampirtrace/*
 %{_sysconfdir}/rpm/macros.%{namearch}
 
+%ifnarch ppc ppc64
+%global variant openmpi3
+%global libname %{variant}%{?_cc_name_suffix}
+%global namearch %{variant}-%{_arch}%{?_cc_name_suffix}
+
+%files -n openmpi3%{?_cc_name_suffix}
+%dir %{_libdir}/%{libname}
+%dir %{_sysconfdir}/%{namearch}
+%dir %{_libdir}/%{libname}/bin
+%dir %{_libdir}/%{libname}/lib
+%dir %{_libdir}/%{libname}/lib/openmpi
+%dir %{_libdir}/%{libname}/lib/pmix
+%dir %{_mandir}/%{namearch}
+%dir %{_mandir}/%{namearch}/man*
+%dir %{_fmoddir}/%{libname}
+%dir %{_sysconfdir}/modulefiles/mpi
+%dir %{python_sitearch}/%{libname}
+%config(noreplace) %{_sysconfdir}/%{namearch}/*
+%{_libdir}/%{libname}/bin/mpi[er]*
+%{_libdir}/%{libname}/bin/ompi*
+%{_libdir}/%{libname}/bin/orte[-dr_]*
+%{_libdir}/%{libname}/bin/oshmem_info
+%{_libdir}/%{libname}/bin/oshrun
+%{_libdir}/%{libname}/bin/shmemrun
+%{_libdir}/%{libname}/lib/*.so.*
+%{_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/shmemrun*
+%{_mandir}/%{namearch}/man7/orte*
+%{_mandir}/%{namearch}/man7/ompi*
+%{_mandir}/%{namearch}/man7/opal*
+%{_libdir}/%{libname}/lib/openmpi/*
+%{_libdir}/%{libname}/lib/pmix/*.so
+%{_sysconfdir}/modulefiles/mpi/%{namearch}
+%dir %{_libdir}/%{libname}/share
+%dir %{_libdir}/%{libname}/share/openmpi
+%dir %{_libdir}/%{libname}/share/pmix
+%{_libdir}/%{libname}/share/openmpi/amca-param-sets
+%{_libdir}/%{libname}/share/openmpi/help*.txt
+%{_libdir}/%{libname}/share/pmix/help*.txt
+%{_libdir}/%{libname}/share/openmpi/mca-btl-openib-device-params.ini
+
+%files -n openmpi3%{?_cc_name_suffix}-devel
+%dir %{_includedir}/%{namearch}
+%{_libdir}/%{libname}/bin/mpi[cCf]*
+%{_libdir}/%{libname}/bin/opal_*
+%{_libdir}/%{libname}/bin/orte[cCf]*
+%{_libdir}/%{libname}/bin/osh[cCf]*
+%{_libdir}/%{libname}/bin/shmem[cCf]*
+%{_includedir}/%{namearch}/*
+%{_fmoddir}/%{libname}/
+%{_libdir}/%{libname}/lib/*.so
+%{_libdir}/%{libname}/lib/*.mod
+%{_libdir}/%{libname}/lib/pkgconfig/
+%{_libdir}/pkgconfig/*.pc
+%{_mandir}/%{namearch}/man1/mpi[cCf]*
+%{_mandir}/%{namearch}/man1/osh[cCf]*
+%{_mandir}/%{namearch}/man1/shmem[cCf]*
+%{_mandir}/%{namearch}/man1/opal_*
+%{_mandir}/%{namearch}/man3/*
+%{_libdir}/%{libname}/share/openmpi/openmpi-valgrind.supp
+%{_libdir}/%{libname}/share/pmix/pmix-valgrind.supp
+%{_libdir}/%{libname}/share/openmpi/*-wrapper-data.txt
+%{macrosdir}/macros.%{namearch}
+%endif
+
 %ifnarch s390 s390x
 %global variant compat-openmpi16
 %global libname %{variant}%{?_cc_name_suffix}
@@ -485,6 +719,15 @@ cd ..
 %endif
 
 %changelog
+* Fri Nov 03 2017 Michal Schmidt <mschmidt@redhat.com> - 1.10.7-1
+- Update to upstream release 1.10.7.
+- Add Open MPI 3.0.0 subpackage (openmpi3).
+- Resolves: #1452826
+
+* Fri Sep 15 2017 Michal Schmidt <mschmidt@redhat.com> - 1.10.6-3
+- Fix openib segfault when not all devices are usable.
+- Resolves: #1475835
+
 * Wed Apr 19 2017 Michal Schmidt <mschmidt@redhat.com> - 1.10.6-2
 - Add Chelsio T6 adapter device parameters.
 - Fix License tag format.