diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..91bbb62 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/opa-fm.tar.xz diff --git a/.opa-fm.metadata b/.opa-fm.metadata new file mode 100644 index 0000000..d60453a --- /dev/null +++ b/.opa-fm.metadata @@ -0,0 +1 @@ +591548254b59f217b9c771cbeb366fe243dc5d6e SOURCES/opa-fm.tar.xz diff --git a/README.md b/README.md deleted file mode 100644 index 98f42b4..0000000 --- a/README.md +++ /dev/null @@ -1,4 +0,0 @@ -The master branch has no content - -Look at the c7 branch if you are working with CentOS-7, or the c4/c5/c6 branch for CentOS-4, 5 or 6 -If you find this file in a distro specific branch, it means that no content has been checked in yet diff --git a/SOURCES/0001-Fix-well-known-tempfile-issue-in-script.patch b/SOURCES/0001-Fix-well-known-tempfile-issue-in-script.patch new file mode 100644 index 0000000..d7eb2af --- /dev/null +++ b/SOURCES/0001-Fix-well-known-tempfile-issue-in-script.patch @@ -0,0 +1,29 @@ +From 5c42875b9e217127bc6fb537e258f386aed2a23a Mon Sep 17 00:00:00 2001 +From: Brendan Cunningham +Date: Thu, 24 Sep 2015 11:10:45 -0400 +Subject: [PATCH 1/2] Fix well-known tempfile issue in script. + +--- + Esm/ib/src/linux/startup/sm_capture.sh | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/Esm/ib/src/linux/startup/sm_capture.sh b/Esm/ib/src/linux/startup/sm_capture.sh +index cf1e133..e3fbf4b 100755 +--- a/Esm/ib/src/linux/startup/sm_capture.sh ++++ b/Esm/ib/src/linux/startup/sm_capture.sh +@@ -46,8 +46,10 @@ fi + + + PROGNAME="$0" +-dirName="smdump-"`date '+%d%b%y%H%M%S'` +-dumpLocation="/tmp/$dirName" ++# Hedge against bash vs. sh ++dateStr=`date '+%d%b%y%H%M%S'` ++dumpLocation="`mktemp -d /tmp/smdump-${dateStr}-XXXXXX`" ++dirName=`basename $dumpLocation` + + usage() { + echo "Usage:" +-- +1.8.3.1 + diff --git a/SOURCES/0001-opafmd-larger-array-to-hold-program-path.patch b/SOURCES/0001-opafmd-larger-array-to-hold-program-path.patch new file mode 100644 index 0000000..d0fda32 --- /dev/null +++ b/SOURCES/0001-opafmd-larger-array-to-hold-program-path.patch @@ -0,0 +1,27 @@ +From acf86501b6f5ad3f04a2dca56a6b13b7925d875d Mon Sep 17 00:00:00 2001 +From: Michal Schmidt +Date: Wed, 26 Aug 2015 16:20:07 +0200 +Subject: [PATCH] opafmd: larger array to hold program path + +Since we're substituting /opt -> /usr/lib, char[25] is no longer +sufficient to hold the complete path. +--- + Esm/ib/src/linux/startup/opafmd.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Esm/ib/src/linux/startup/opafmd.c b/Esm/ib/src/linux/startup/opafmd.c +index a31ee001be..50a3f3fae1 100644 +--- a/Esm/ib/src/linux/startup/opafmd.c ++++ b/Esm/ib/src/linux/startup/opafmd.c +@@ -255,7 +255,7 @@ int parseInput(char *buf){ + */ + int spawn(const unsigned int instance, const int component, int *pids){ + int pid; +- char prog[25], name[6]; ++ char prog[50], name[6]; + if(instance >= 4){ + fprintf(stderr, "Invalid instance number.\n"); + return -1; +-- +2.4.3 + diff --git a/SOURCES/0002-Revert-Add-script-for-building-S-RPMs.patch b/SOURCES/0002-Revert-Add-script-for-building-S-RPMs.patch new file mode 100644 index 0000000..ffc7758 --- /dev/null +++ b/SOURCES/0002-Revert-Add-script-for-building-S-RPMs.patch @@ -0,0 +1,24 @@ +From d12979a8ed6e508a9c33972561a80c3af9cb6ae8 Mon Sep 17 00:00:00 2001 +From: Brendan Cunningham +Date: Thu, 24 Sep 2015 15:34:41 -0400 +Subject: [PATCH 2/2] Revert "Add script for building (S)RPMs" + +This reverts commit 3117bba5cf249fd9e721d7273b645fa7f49ca076. +--- + build_rpms.bash | 4 ---- + 1 file changed, 4 deletions(-) + delete mode 100755 build_rpms.bash + +diff --git a/build_rpms.bash b/build_rpms.bash +deleted file mode 100755 +index 1bfc2bf..0000000 +--- a/build_rpms.bash ++++ /dev/null +@@ -1,4 +0,0 @@ +-#!/bin/bash +-mkdir -p $HOME/rpmbuild/{SOURCES,RPMS,SRPMS} +-tar czf $HOME/rpmbuild/SOURCES/opa-fm.tar.gz --exclude-vcs . +-rpmbuild -ba ./opafm.spec +-- +1.8.3.1 + diff --git a/SPECS/opa-fm.spec b/SPECS/opa-fm.spec new file mode 100644 index 0000000..c9e2d52 --- /dev/null +++ b/SPECS/opa-fm.spec @@ -0,0 +1,149 @@ +Name: opa-fm +Version: 10.0.0.0 +Release: 444%{?dist} +Summary: Intel Omni-Path Fabric Management Software + +Group: System Environment/Daemons +License: BSD +Url: https://github.com/01org/opa-fm +# tarball created by: +# git clone https://github.com/01org/opa-fm.git +# cd opa-fm +# git archive --format=tar --prefix=opa-fm/ 5f4087aabb5d03c42738b320af0fc60e9df4d1f7 | xz > opa-fm.tar.xz +Source0: %{name}.tar.xz + +Patch0001: 0001-opafmd-larger-array-to-hold-program-path.patch +# bz1262327 needs Patch0002 and Patch0003 +Patch0002: 0001-Fix-well-known-tempfile-issue-in-script.patch +Patch0003: 0002-Revert-Add-script-for-building-S-RPMs.patch + +#BuildRequires: libibverbs-devel >= 1.1-1, libibumad-devel, libibmad-devel +BuildRequires: autoconf +BuildRequires: systemd +BuildRequires: zlib-devel, openssl-devel, expat-devel +BuildRequires: libibmad-devel, libibverbs-devel +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +ExclusiveArch: x86_64 + +%description +opa-fm contains Intel Omni-Path fabric management applications. This +includes: the Subnet Manager, Baseboard Manager, Performance Manager, +Fabric Executive, and some fabric management tools. + +%prep +%setup -q -n %{name} +%patch0001 -p1 +%patch0002 -p1 +%patch0003 -p1 + +# Make it possible to override hardcoded compiler flags +sed -i -r -e 's/(release_C(C)?OPT_Flags\s*)=/\1?=/' Makerules/Target.LINUX.GNU.* + +# A crude hack from necessity. Upstream hardcodes "/opt/opafm" in many places. +# Packaging guidelines disallow installation into /opt. +# Instead we'll use /usr/lib/opa-fm/ (NOT _libdir !) as this package's private +# directory. +sed -i -e 's#/opt/opafm#/usr/lib/opa-fm#g' $(grep -r -l '/opt/opafm' .) +# The same holds for opa-ff, which this package references: +sed -i -e 's#/opt/opa#/usr/lib/opa-ff#g' $(grep -r -l '/opt/opa' .) + +%build +export CFLAGS='%{optflags}' +export CXXFLAGS='%{optflags}' +export release_COPT_Flags='%{optflags}' +export release_CCOPT_Flags='%{optflags}' +cd Esm +./fmbuild -V %{version}.%{release} + +%install +install -D -m 755 stage.rpm/opafm.service %{buildroot}/%{_unitdir}/opafm.service +install -D -m 755 stage.rpm/opafmctrl.sh %{buildroot}/usr/lib/opa-fm/bin/opafmctrl.sh +install -D -m 755 stage.rpm/opafmd %{buildroot}/usr/lib/opa-fm/bin/opafmd + +install -D -m 644 stage.rpm/opafm.xml %{buildroot}%{_sysconfdir}/sysconfig/opafm.xml +install -D -m 755 stage.rpm/opafm.info %{buildroot}%{_sysconfdir}/sysconfig/opa/opafm.info + +install -D stage.rpm/fm_capture %{buildroot}/usr/lib/opa-fm/bin/fm_capture +install -D stage.rpm/fm_cmd %{buildroot}/usr/lib/opa-fm/bin/fm_cmd +install -D stage.rpm/fm_cmdall %{buildroot}/usr/lib/opa-fm/bin/fm_cmdall +install -D stage.rpm/smpoolsize %{buildroot}/usr/lib/opa-fm/bin/smpoolsize + +install -D stage.rpm/sm %{buildroot}/usr/lib/opa-fm/runtime/sm +install -D stage.rpm/fe %{buildroot}/usr/lib/opa-fm/runtime/fe + +install -D stage.rpm/config_check %{buildroot}/usr/lib/opa-fm/etc/config_check +install -D stage.rpm/config_convert %{buildroot}/usr/lib/opa-fm/etc/config_convert +install -D stage.rpm/config_diff %{buildroot}/usr/lib/opa-fm/etc/config_diff +install -D stage.rpm/config_generate %{buildroot}/usr/lib/opa-fm/etc/config_generate +install -D stage.rpm/opafm %{buildroot}/usr/lib/opa-fm/etc/opafm +install -D stage.rpm/opafm.arch %{buildroot}/usr/lib/opa-fm/etc/opafm.arch +install -D stage.rpm/opafm.info %{buildroot}/usr/lib/opa-fm/etc/opafm.info +install -D Esm/ib/src/linux/startup/opafm_src.xml %{buildroot}/usr/lib/opa-fm/etc/opafm_src.xml + +install -D stage.rpm/opafm.xml %{buildroot}/usr/lib/opa-fm/etc/opafm.xml +install -D stage.rpm/opaxmlextract %{buildroot}/usr/lib/opa-fm/etc/opaxmlextract +install -D stage.rpm/opaxmlfilter %{buildroot}/usr/lib/opa-fm/etc/opaxmlfilter + +mkdir -p %{buildroot}%{_sbindir} +ln -s /usr/lib/opa-fm/bin/fm_cmd %{buildroot}%{_sbindir}/opafmcmd +ln -s /usr/lib/opa-fm/bin/fm_cmdall %{buildroot}%{_sbindir}/opafmcmdall + +%post +%systemd_post opafm.service + +%preun +%systemd_preun opafm.service + +%postun +%systemd_postun_with_restart opafm.service + +%files +%doc Esm/README +%{_unitdir}/opafm.service +%config(noreplace) %{_sysconfdir}/sysconfig/opafm.xml +%{_sysconfdir}/sysconfig/opa/opafm.info +%{_prefix}/lib/opa-fm/bin/* +%{_prefix}/lib/opa-fm/etc/* +%{_prefix}/lib/opa-fm/runtime/* +%{_sbindir}/opafmcmd +%{_sbindir}/opafmcmdall + + +%changelog +* Mon Sep 28 2015 Honggang Li - 10.0.0.0-444 +- Update the N-V-R +- Related: bz1262327 + +* Mon Sep 28 2015 Honggang Li - 10.0.0.0-443 +- Apply one missed patch to fix various /tmp races +- Revert the script for building (S)RPMs +- Resolves: bz1262327 + +* Thu Sep 24 2015 Honggang Li - 10.0.0.0-442 +- Fix typo in changelog +- Related: bz1262327 + +* Wed Sep 23 2015 Honggang Li - 10.0.0.0-441 +- Fix various /tmp races +- Resolves: bz1262327 + +* Wed Aug 26 2015 Michal Schmidt - 10.0.0.0-440 +- Respect optflags. +- Avoid overflowing prog path due to /opt -> /usr/lib substitution. +- Resolves: bz1257087 +- Resolves: bz1257093 + +* Mon Aug 24 2015 Michal Schmidt - 10.0.0.0-439 +- Update to new upstream snapshot with unbundled expat. +- Related: bz1173302 + +* Tue Aug 18 2015 Michal Schmidt - 10.0.0.0-438 +- Initial packaging for RHEL, based on upstream spec file. +- Cleaned up spec. +- Moved /opt/opafm -> /usr/lib/opa-fm. +- Fix scriptlets. + +* Thu Oct 09 2014 Kaike Wan - 10.0.0.0-177 +- Initial version