diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..0027dda
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+SOURCES/libpsm2-10.3.58.tar.gz
diff --git a/.libpsm2.metadata b/.libpsm2.metadata
new file mode 100644
index 0000000..29682b7
--- /dev/null
+++ b/.libpsm2.metadata
@@ -0,0 +1 @@
+871dea07ad15f63f63b6d2ee43a9283b35abc113 SOURCES/libpsm2-10.3.58.tar.gz
diff --git a/SOURCES/0001-temporally-replace-g3-with-default-g.patch b/SOURCES/0001-temporally-replace-g3-with-default-g.patch
new file mode 100644
index 0000000..15b87d7
--- /dev/null
+++ b/SOURCES/0001-temporally-replace-g3-with-default-g.patch
@@ -0,0 +1,64 @@
+From 1def43055d3563ecfeddaa8881f3d910e7fd55a5 Mon Sep 17 00:00:00 2001
+From: Honggang Li <honli@redhat.com>
+Date: Mon, 24 Sep 2018 17:04:16 +0800
+Subject: [PATCH] temporally replace '-g3' with default '-g'
+
+rpm debugedit might corrupt the debug file strings when source files
+have been build with gcc -g3 which generates a .debug_macro section
+which shares strings with the .debuginfo section.
+
+https://bugzilla.redhat.com/show_bug.cgi?id=1630926
+
+When bz1630926 got fixed, we no longer need this workaround.
+
+Signed-off-by: Honggang Li <honli@redhat.com>
+---
+ buildflags.mak        | 6 +++---
+ compat/buildflags.mak | 4 ++--
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/buildflags.mak b/buildflags.mak
+index f59958c..633a010 100644
+--- a/buildflags.mak
++++ b/buildflags.mak
+@@ -147,9 +147,9 @@ ifneq (,${HFI_BRAKE_DEBUG})
+   BASECFLAGS += -DHFI_BRAKE_DEBUG
+ endif
+ ifneq (,${PSM_DEBUG})
+-  BASECFLAGS += -O -g3 -DPSM_DEBUG -D_HFI_DEBUGGING -funit-at-a-time -Wp,-D_FORTIFY_SOURCE=2
++  BASECFLAGS += -O -g -DPSM_DEBUG -D_HFI_DEBUGGING -funit-at-a-time -Wp,-D_FORTIFY_SOURCE=2
+ else
+-  BASECFLAGS += -O3 -g3
++  BASECFLAGS += -O3 -g
+ endif
+ ifneq (,${PSM_COVERAGE}) # This check must come after PSM_DEBUG to override optimization setting
+   BASECFLAGS += -O -fprofile-arcs -ftest-coverage
+@@ -185,7 +185,7 @@ else
+   BASECFLAGS += -DNVALGRIND
+ endif
+ 
+-ASFLAGS += -g3 -fpic
++ASFLAGS += -g -fpic
+ 
+ BASECFLAGS += ${OPA_CFLAGS}
+ 
+diff --git a/compat/buildflags.mak b/compat/buildflags.mak
+index b448e4e..ab501d5 100644
+--- a/compat/buildflags.mak
++++ b/compat/buildflags.mak
+@@ -84,10 +84,10 @@ BASECFLAGS +=-Wall $(WERROR)
+ 
+ BASECFLAGS += -fpic -fPIC
+ 
+-ASFLAGS += -g3 -fpic
++ASFLAGS += -g -fpic
+ 
+ ifeq (${CCARCH},icc)
+-    BASECFLAGS += -O3 -g3
++    BASECFLAGS += -O3 -g
+     LDFLAGS += -static-intel
+ else
+ 	ifeq (${CCARCH},gcc)
+-- 
+2.14.4
+
diff --git a/SOURCES/extend-fdesc-array.patch b/SOURCES/extend-fdesc-array.patch
new file mode 100644
index 0000000..4729057
--- /dev/null
+++ b/SOURCES/extend-fdesc-array.patch
@@ -0,0 +1,11 @@
+--- psm_utils.c.orig	2018-03-14 21:12:33.678607767 -0400
++++ psm_utils.c	2018-03-14 21:11:04.696909162 -0400
+@@ -951,7 +951,7 @@ struct psmi_faultinj_spec *psmi_faultinj
+ 		union psmi_envvar_val env_fi;
+ 		char fvals_str[128];
+ 		char fname[128];
+-		char fdesc[256];
++		char fdesc[512];
+ 
+ 		snprintf(fvals_str, sizeof(fvals_str) - 1, "%d:%d:1", num,
+ 			 denom);
diff --git a/SPECS/libpsm2.spec b/SPECS/libpsm2.spec
new file mode 100644
index 0000000..7e90d49
--- /dev/null
+++ b/SPECS/libpsm2.spec
@@ -0,0 +1,198 @@
+#
+#  This file is provided under a dual BSD/GPLv2 license.  When using or
+#  redistributing this file, you may do so under either license.
+#
+#  GPL LICENSE SUMMARY
+#
+#  Copyright(c) 2015 Intel Corporation.
+#
+#  This program is free software; you can redistribute it and/or modify
+#  it under the terms of version 2 of the GNU General Public License as
+#  published by the Free Software Foundation.
+#
+#  This program is distributed in the hope that it will be useful, but
+#  WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+#  General Public License for more details.
+#
+#  Contact Information:
+#  Intel Corporation, www.intel.com
+#
+#  BSD LICENSE
+#
+#  Copyright(c) 2015 Intel Corporation.
+#
+#  Redistribution and use in source and binary forms, with or without
+#  modification, are permitted provided that the following conditions
+#  are met:
+#
+#    * Redistributions of source code must retain the above copyright
+#      notice, this list of conditions and the following disclaimer.
+#    * Redistributions in binary form must reproduce the above copyright
+#      notice, this list of conditions and the following disclaimer in
+#      the documentation and/or other materials provided with the
+#      distribution.
+#    * Neither the name of Intel Corporation nor the names of its
+#      contributors may be used to endorse or promote products derived
+#      from this software without specific prior written permission.
+#
+#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+#  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+#  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+#  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+#  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+#  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+#  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+#  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+#  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+#  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+#  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#
+# Copyright (c) 2014-2015 Intel Corporation. All rights reserved.
+#
+Summary: Intel PSM Libraries
+Name: libpsm2
+Version: 10.3.58
+Release: 2%{?dist}
+License: BSD or GPLv2
+URL: https://github.com/01org/opa-psm2/
+
+# The tarball can be created by:
+# git clone https://github.com/01org/opa-psm2
+# cd opa-psm2
+# git checkout 0f9213e7af8d32c291d4657ff4a3279918de1e60
+# make dist
+Source0: %{name}-%{version}.tar.gz
+Patch1:  extend-fdesc-array.patch
+Patch2:  0001-temporally-replace-g3-with-default-g.patch
+
+# The OPA product is supported on x86 64 only:
+ExclusiveArch: x86_64
+BuildRequires: libuuid-devel
+BuildRequires: numactl-devel
+BuildRequires: systemd
+BuildRequires: gcc
+Obsoletes: hfi1-psm < 1.0.0
+
+%package devel
+Summary: Development files for Intel PSM
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: libuuid-devel
+
+%package compat
+Summary: Compat library for Intel PSM
+Requires: %{name}%{?_isa} = %{version}-%{release}
+Requires: systemd-udev
+
+%global _privatelibs libpsm_infinipath[.]so[.]1.*
+%global __provides_exclude ^(%{_privatelibs})$
+%global __requires_exclude ^(%{_privatelibs})$
+
+%description
+The PSM Messaging API, or PSM API, is the low-level
+user-level communications interface for the Intel OPA
+family of products. PSM users are enabled with mechanisms
+necessary to implement higher level communications
+interfaces in parallel environments.
+
+%description devel
+Development files for the Intel PSM library
+
+%description compat
+Support for MPIs linked with PSM versions < 2
+
+%prep
+%setup -q
+%patch1 -p0
+%patch2 -p1
+
+%build
+%{set_build_flags}
+make %{?_smp_mflags}
+
+%install
+%make_install
+rm -f %{buildroot}%{_libdir}/*.a
+
+%post -p /sbin/ldconfig
+%postun -p /sbin/ldconfig
+
+%files
+%license COPYING
+%{_libdir}/libpsm2.so.2.1
+%{_libdir}/libpsm2.so.2
+%if 0%{?rhel} >= 8
+%{_udevrulesdir}/40-psm.rules
+%endif
+
+
+%files devel
+%{_libdir}/libpsm2.so
+%{_includedir}/psm2.h
+%{_includedir}/psm2_mq.h
+%{_includedir}/psm2_am.h
+%{_includedir}/hfi1diag
+
+%files compat
+%{_libdir}/psm2-compat
+%{_udevrulesdir}/40-psm-compat.rules
+%{_prefix}/lib/libpsm2
+%if 0%{?fedora}
+%{_prefix}/lib/modprobe.d/libpsm2-compat.conf
+%endif
+%if 0%{?rhel} >= 8
+%{_sysconfdir}/modprobe.d/libpsm2-compat.conf
+%endif
+
+%changelog
+* Mon Sep 24 2018 Honggang Li <honli@redhat.com> - 10.3.58-2
+- Fix corrupted libpsm2 debuginfo file
+- Resolves: bz1630766
+
+* Fri Jun 22 2018 Honggang Li <honli@redhat.com> - 10.3.58-1
+- Rebase to latest upstream release 10.3.58.
+- Resolves: bz1594073
+
+* Thu Mar 15 2018 - 10.3.8-5
+- Fix partial injection of Fedora build flags.
+- Double the sizeof array fdesc to fix a gcc compiling issue.
+- Resolves: bz1556062
+
+* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 10.3.8-4
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Thu Jan  4 2018 Honggang Li <honli@redhat.com> - 10.3.8-3
+- Filter PSM1 library as private library
+- Resolves: bz1530979
+
+* Fri Dec 15 2017 Honggang Li <honli@redhat.com> - 10.3.8-2
+- Minor enhancement
+- Resolves: bz1526261
+
+* Tue Dec 12 2017 Honggang Li <honli@redhat.com> - 10.3.8-1
+- Rebase to latest upstream release
+- Resolves: bz1524846
+
+* Thu Aug 03 2017 Fedora Release Engineering <releng@fedoraproject.org> - 10.2.103_1-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
+
+* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 10.2.103_1-2
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Thu Apr 13 2017 Honggang Li <honli@redhat.com> - 10.2.103_1-1
+- Rebase to latest upstream master branch.
+- Fix build failures caught by gcc 7.x.
+- Resolves: bz1423872
+
+* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 10.2.2-3
+- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
+
+* Mon Jun 13 2016 Michal Schmidt <mschmidt@redhat.com> - 10.2.2-2
+- Remove redundant %%setup -n argument.
+- Packaging Guidelines: Never use "(R)" in description.
+
+* Tue Jun 07 2016 Paul Reger <paul.j.reger@intel.com> - 10.2.2-1
+- Fix build failures only.
+
+* Tue Apr 05 2016 Paul Reger <paul.j.reger@intel.com> - 10.2.1-1
+- Upstream PSM2 source code for Fedora.