diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5991ecf --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/mstflint-4.13.3-2.tar.gz diff --git a/.mstflint.metadata b/.mstflint.metadata new file mode 100644 index 0000000..7236b73 --- /dev/null +++ b/.mstflint.metadata @@ -0,0 +1 @@ +d77fe8bf03a63ef51ff362c9f6367c2657e0b2c9 SOURCES/mstflint-4.13.3-2.tar.gz diff --git a/SOURCES/0001-Fix-shebang-for-python-scripts.patch b/SOURCES/0001-Fix-shebang-for-python-scripts.patch new file mode 100644 index 0000000..e55a6d1 --- /dev/null +++ b/SOURCES/0001-Fix-shebang-for-python-scripts.patch @@ -0,0 +1,42 @@ +From 8a54316a15c76154d307ba53be5d98b8503a5d5f Mon Sep 17 00:00:00 2001 +From: Honggang Li +Date: Thu, 13 Jun 2019 20:58:50 -0400 +Subject: [PATCH] Fix shebang for python scripts + +rhel-8 does not support python2. User '#!/usr/bin/python3' for all +python scripts which with a shebang. + +The substitution was done with following bash script. + +==== + +pys=$(find . -type f -name '*.py') + +for f in $pys; do + sed -ne '1p' $f | grep -q -E '^#!/usr/bin' + if [ $? -eq 0 ]; then + echo $f + sed -e '/^#!\/usr\/bin/d' -i $f + sed -e '1 i\#!/usr/bin/python3' -i $f + fi +done +=== + +Signed-off-by: Honggang Li +--- + tracers/fwtrace/mstfwtrace.py | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tracers/fwtrace/mstfwtrace.py b/tracers/fwtrace/mstfwtrace.py +index 3c3ef8f..5193a31 100755 +--- a/tracers/fwtrace/mstfwtrace.py ++++ b/tracers/fwtrace/mstfwtrace.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/python3 + # -- + # + # Copyright (C) 2019 Mellanox Technologies Ltd. All rights reserved. +-- +2.20.1 + diff --git a/SOURCES/add-default-link-flags-for-shared-libraries.patch b/SOURCES/add-default-link-flags-for-shared-libraries.patch new file mode 100644 index 0000000..1ba9e8a --- /dev/null +++ b/SOURCES/add-default-link-flags-for-shared-libraries.patch @@ -0,0 +1,179 @@ +diff --git a/cmdif/Makefile.am b/cmdif/Makefile.am +index 0d8f53b..d800302 100644 +--- a/cmdif/Makefile.am ++++ b/cmdif/Makefile.am +@@ -50,7 +50,7 @@ libcmdif_a_SOURCES = tools_cif.c tools_cif.h icmd_cif_common.c icmd_cif_common.h + cmdif_pylibdir = $(libdir)/mstflint/python_tools/ + cmdif_pylib_DATA = ${CCMDIF_SO} cmdif.py + ${CCMDIF_SO}: libcmdif.a +- $(CC) -g -Wall -pthread -shared ${CFLAGS} *.o -o ${CCMDIF_SO} \ ++ $(CC) -g -Wall -pthread -shared ${CFLAGS} ${LDFLAGS} *.o -o ${CCMDIF_SO} \ + -L$(USER_DIR)/tools_layouts -ltools_layouts -L$(USER_DIR)/${MTCR_CONF_DIR} -lmtcr_ul + + CLEANFILES = ${CCMDIF_SO} +diff --git a/dev_mgt/Makefile.am b/dev_mgt/Makefile.am +index 3118b85..e708ad8 100644 +--- a/dev_mgt/Makefile.am ++++ b/dev_mgt/Makefile.am +@@ -50,7 +50,7 @@ dev_mgt_pylib_DATA = c_dev_mgt.so dev_mgt.py + dist_dev_mgt_pylib_DATA = dev_mgt.py + + c_dev_mgt.so: libdev_mgt.a +- $(CC) -g -Wall -pthread -shared ${CFLAGS} tools_dev_types.o -o c_dev_mgt.so \ ++ $(CC) -g -Wall -pthread -shared ${CFLAGS} ${LDFLAGS} tools_dev_types.o -o c_dev_mgt.so \ + -L$(USER_DIR)/reg_access -lreg_access \ + -L$(USER_DIR)/tools_layouts -ltools_layouts \ + -L$(USER_DIR)/${MTCR_CONF_DIR} -lmtcr_ul +diff --git a/mtcr_py/Makefile.am b/mtcr_py/Makefile.am +index 5f5677d..566a870 100644 +--- a/mtcr_py/Makefile.am ++++ b/mtcr_py/Makefile.am +@@ -39,7 +39,7 @@ MTCR_DIR = $(USER_DIR)/${MTCR_CONF_DIR} + mtcr_pylib_DATA = cmtcr.so mtcr.py + dist_mtcr_pylib_DATA = mtcr.py + cmtcr.so: +- $(CC) -g -Wall -pthread -shared ${CFLAGS} $(MTCR_DIR)/*.o -o cmtcr.so ++ $(CC) -g -Wall -pthread -shared ${CFLAGS} ${LDFLAGS} $(MTCR_DIR)/*.o -o cmtcr.so + + CLEANFILES = cmtcr.so + +diff --git a/mvpd/Makefile.am b/mvpd/Makefile.am +index e9fa5c6..fab1599 100755 +--- a/mvpd/Makefile.am ++++ b/mvpd/Makefile.am +@@ -1,61 +1,61 @@ +-#-- +-# Copyright (c) 2004-2010 Mellanox Technologies LTD. All rights reserved. +-# +-# This software is available to you under a choice of one of two +-# licenses. You may choose to be licensed under the terms of the GNU +-# General Public License (GPL) Version 2, available from the file +-# COPYING in the main directory of this source tree, or the +-# OpenIB.org BSD license below: +-# +-# 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. +-# +-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +-# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +-# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +-# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS +-# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +-# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +-# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +-# SOFTWARE. +-#-- +- +-# Makefile.am -- Process this file with automake to produce Makefile.in +-MTCR_DIR = $(top_srcdir)/${MTCR_CONF_DIR} +-COMMON_DIR = $(top_srcdir)/common +-LAYOUTS_DIR = $(top_srcdir)/tools_layouts +-USER_DIR = $(top_srcdir) +- +-AM_CPPFLAGS = -I. -I$(USER_DIR) -I$(srcdir) -I$(LAYOUTS_DIR) -I$(USER_DIR)/include/mtcr_ul +-AM_CFLAGS = -W -Wall -g -MP -MD $(COMPILER_FPIC) +- +-noinst_LTLIBRARIES = libmvpd.a +- +-libmvpd_a_SOURCES = mvpd.c mvpd.h +- +-libmvpd_a_DEPENDENCIES = $(MTCR_DIR)/libmtcr_ul.a +-libmvpd_a_LIBADD = $(libmvpd_a_DEPENDENCIES) +- +-RMVPD_SO = rmvpd.so +- +- +-LDADD= ../${MTCR_CONF_DIR}/libmtcr_ul.a ${LDL} +- +- +-noinst_HEADERS = mvpd.h +- +-${RMVPD_SO}: libmvpd.a +- $(CC) -g -Wall -pthread -shared ${CFLAGS} *.o -o ${RMVPD_SO} \ +- -L$(MTCR_DIR) -lmtcr_ul +- +-CLEANFILES = ${RMVPD_SO} ++#-- ++# Copyright (c) 2004-2010 Mellanox Technologies LTD. All rights reserved. ++# ++# This software is available to you under a choice of one of two ++# licenses. You may choose to be licensed under the terms of the GNU ++# General Public License (GPL) Version 2, available from the file ++# COPYING in the main directory of this source tree, or the ++# OpenIB.org BSD license below: ++# ++# 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. ++# ++# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, ++# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF ++# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND ++# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS ++# BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ++# ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN ++# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE ++# SOFTWARE. ++#-- ++ ++# Makefile.am -- Process this file with automake to produce Makefile.in ++MTCR_DIR = $(top_srcdir)/${MTCR_CONF_DIR} ++COMMON_DIR = $(top_srcdir)/common ++LAYOUTS_DIR = $(top_srcdir)/tools_layouts ++USER_DIR = $(top_srcdir) ++ ++AM_CPPFLAGS = -I. -I$(USER_DIR) -I$(srcdir) -I$(LAYOUTS_DIR) -I$(USER_DIR)/include/mtcr_ul ++AM_CFLAGS = -W -Wall -g -MP -MD $(COMPILER_FPIC) ++ ++noinst_LTLIBRARIES = libmvpd.a ++ ++libmvpd_a_SOURCES = mvpd.c mvpd.h ++ ++libmvpd_a_DEPENDENCIES = $(MTCR_DIR)/libmtcr_ul.a ++libmvpd_a_LIBADD = $(libmvpd_a_DEPENDENCIES) ++ ++RMVPD_SO = rmvpd.so ++ ++ ++LDADD= ../${MTCR_CONF_DIR}/libmtcr_ul.a ${LDL} ++ ++ ++noinst_HEADERS = mvpd.h ++ ++${RMVPD_SO}: libmvpd.a ++ $(CC) -g -Wall -pthread -shared ${CFLAGS} ${LDFLAGS} *.o -o ${RMVPD_SO} \ ++ -L$(MTCR_DIR) -lmtcr_ul ++ ++CLEANFILES = ${RMVPD_SO} +diff --git a/reg_access/Makefile.am b/reg_access/Makefile.am +index f28290e..a141704 100644 +--- a/reg_access/Makefile.am ++++ b/reg_access/Makefile.am +@@ -53,7 +53,7 @@ reg_access_pylib_DATA = ${RREG_ACCESS_SO} regaccess.py + dist_reg_access_pylib_DATA = regaccess.py + + ${RREG_ACCESS_SO}: libreg_access.a +- $(CC) -g -Wall -pthread -shared ${CFLAGS} *.o -o ${RREG_ACCESS_SO} \ ++ $(CC) -g -Wall -pthread -shared ${CFLAGS} ${LDFLAGS} *.o -o ${RREG_ACCESS_SO} \ + -L$(USER_DIR)/tools_layouts -ltools_layouts -L$(MTCR_DIR) -lmtcr_ul + + CLEANFILES = ${RREG_ACCESS_SO} diff --git a/SOURCES/extend-buffer.patch b/SOURCES/extend-buffer.patch new file mode 100644 index 0000000..99136a3 --- /dev/null +++ b/SOURCES/extend-buffer.patch @@ -0,0 +1,13 @@ +diff --git a/ext_libs/iniParser/iniparser.c b/ext_libs/iniParser/iniparser.c +index 8bc0a18..f981775 100644 +--- a/ext_libs/iniParser/iniparser.c ++++ b/ext_libs/iniParser/iniparser.c +@@ -572,7 +572,7 @@ dictionary * iniparser_load(const char * ininame) + char line [ASCIILINESZ+1] ; + char section [ASCIILINESZ+1] ; + char key [ASCIILINESZ+1] ; +- char tmp [ASCIILINESZ+1] ; ++ char tmp [(ASCIILINESZ+1)*2] ; + char val [ASCIILINESZ+1] ; + + int last=0 ; diff --git a/SOURCES/replace-mlxfwreset-with-mstfwreset-in-mstflint-message.patch b/SOURCES/replace-mlxfwreset-with-mstfwreset-in-mstflint-message.patch new file mode 100644 index 0000000..3d30269 --- /dev/null +++ b/SOURCES/replace-mlxfwreset-with-mstfwreset-in-mstflint-message.patch @@ -0,0 +1,13 @@ +diff --git a/flint/subcommands.cpp b/flint/subcommands.cpp +index 9dd3afd..076879a 100755 +--- a/flint/subcommands.cpp ++++ b/flint/subcommands.cpp +@@ -3103,7 +3103,7 @@ FlintStatus SgSubCommand::sgFs2() + return FLINT_SUCCESS; + } + +-#define FW_RESET_MSG "To load new configuration run mlxfwreset or reboot machine" ++#define FW_RESET_MSG "To load new configuration run mstfwreset or reboot machine" + + FlintStatus SgSubCommand::sgFs3() + { diff --git a/SPECS/mstflint.spec b/SPECS/mstflint.spec new file mode 100644 index 0000000..d4d171f --- /dev/null +++ b/SPECS/mstflint.spec @@ -0,0 +1,209 @@ +%global __remake_config 1 + +Name: mstflint +Summary: Mellanox firmware burning tool +Version: 4.13.3 +Release: 2%{?dist} +License: GPLv2+ or BSD +Group: Applications/System +Source: https://github.com/Mellanox/mstflint/releases/download/v4.13.3-2/mstflint-4.13.3-2.tar.gz +Patch2: 0001-Fix-shebang-for-python-scripts.patch +Patch3: extend-buffer.patch +Patch4: add-default-link-flags-for-shared-libraries.patch +Patch6: replace-mlxfwreset-with-mstfwreset-in-mstflint-message.patch +Url: https://github.com/Mellanox/mstflint +BuildRequires: libstdc++-devel, zlib-devel, libibmad-devel, gcc-c++, gcc +BuildRequires: libcurl-devel, boost-devel, libxml2-devel, openssl-devel +%if %{__remake_config} +BuildRequires: libtool, autoconf, automake +%endif +Obsoletes: openib-mstflint <= 1.4 openib-tvflash <= 0.9.2 tvflash <= 0.9.0 +ExcludeArch: s390 s390x %{arm} +Requires: python3 + +%description +This package contains firmware update tool, vpd dump and register dump tools +for network adapters based on Mellanox Technologies chips. + +%prep +%setup -q +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch6 -p1 +find . -type f -iname '*.[ch]' -exec chmod a-x '{}' ';' +find . -type f -iname '*.cpp' -exec chmod a-x '{}' ';' + +%build +%if %{__remake_config} +./autogen.sh +%endif +%configure --enable-fw-mgr +%make_build + +%install +make DESTDIR=%{buildroot} install +# Remove the devel files that we don't ship +rm -fr %{buildroot}%{_includedir} +find %{buildroot} -type f -name '*.la' -delete +find %{buildroot} -type f -name '*.a' -delete + +%files +%doc README +%_bindir/* +%{_sysconfdir}/mstflint +%{_libdir}/mstflint + +%{_datadir}/mstflint +%{_mandir}/man1/* + +%changelog +* Thu Jan 16 2020 Honggang Li - 4.13.3-2 +- Rebase to latest upstream release v4.13.3-2 +- Resolves: bz1788927 + +* Wed Oct 30 2019 Honggang Li - 4.13.1-1 +- Rebase to latest upstream release v4.13.1-1 +- Resolves: bz1722258 + +* Thu Jun 13 2019 Honggang Li - 4.12.0-1 +- Rebase to latest upstream release v4.12.0-1 +- Resolves: bz1683083 + +* Fri Feb 1 2019 Honggang Li - 4.11.0-2 +- Rebase to latest upstream release v4.11.0-2 +- Resolves: bz1634777 + +* Thu Sep 27 2018 Honggang Li - 4.10.0.3 +- Fix annocheck issues +- Resolves: bz1630599 + +* Sun Aug 12 2018 Honggang Li - 4.10.0.2 +- Rebase to latest upstream release v4.10.0-2 +- Fix license issue of mtcr_ul.c +- Resolves: bz1541741 + +* Tue Jul 10 2018 Honggang Li - 4.10.0-1 +- Rebase to latest upstream release v4.10.0-1 +- Resolves: bz1550400 + +* Thu Feb 08 2018 Fedora Release Engineering - 4.8.0-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Tue Jan 23 2018 Jonathan Wakely - 4.8.0-4 +- Rebuilt for Boost 1.66 + +* Fri Dec 15 2017 Honggang Li - 4.8.0-3 +- Rebase mstflint to latest upstream release v4.8.0-2 +- Resolves: bz1526293 + +* Thu Aug 03 2017 Fedora Release Engineering - 4.6.0-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild + +* Wed Jul 26 2017 Fedora Release Engineering - 4.6.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild + +* Mon Feb 27 2017 Honggang Li - 4.6.0-2 +- Add man pages. +- Resolves: bz1427063 + +* Wed Feb 22 2017 Honggang Li - 4.6.0-1 +- Rebase to latest upstream release 4.6.0. +- Update mstflint package from github. +- Resolves: bz1423970 + +* Fri Feb 10 2017 Fedora Release Engineering - 4.4.0-2.12.gd1edd58.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Wed Aug 24 2016 Honggang Li - 4.4.0-1.12.gd1edd58.1 +- Rebase to latest upstream release 4.4.0-1.12.gd1edd58 (bz1369683). + +* Fri Apr 8 2016 Honggang Li - 4.3.0-1.49.g9b9af70.1 +- Rebase to latest upstream version 4.3.0-1.49.g9b9af70. + +* Thu Feb 04 2016 Fedora Release Engineering - 4.1.0-0.47.gb1cdaf7.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Dec 02 2015 Doug Ledford - 4.1.0-0.46.gb1cdaf7.1 +- Update to latest upstream sources (enables ConnectX-4 support) +- Drop patch that no longer applies + +* Wed Jun 17 2015 Fedora Release Engineering - 3.0-0.11.g6961daa.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Sat May 02 2015 Kalev Lember - 3.0-0.10.g6961daa.1 +- Rebuilt for GCC 5 C++11 ABI change + +* Sun Aug 17 2014 Fedora Release Engineering - 3.0-0.9.g6961daa.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Fri Jun 20 2014 Yaakov Selkowitz - 3.0-0.8.g6961daa.1 +- Fix FTBFS with -Werror=format-security (#1037207, #1106248) +- ExcludeArch: %%arm aarch64 +- Cleanup spec + +* Sat Jun 07 2014 Fedora Release Engineering - 3.0-0.7.g6961daa.1 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Fri Aug 16 2013 Doug Ledford - 3.0-0.6.g6961daa.1 +- Update to latest upstream version, which resovles some licensing issues + on some of the source files + +* Fri Aug 09 2013 Doug Ledford - 3.0-0.5.gff93670.1 +- Update to latest upstream version, which include ConnectIB support + +* Sat Aug 03 2013 Fedora Release Engineering - 1.4-10 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Thu Feb 14 2013 Fedora Release Engineering - 1.4-9 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild + +* Fri Jul 20 2012 Fedora Release Engineering - 1.4-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Fri Jan 13 2012 Doug Ledford - 1.4-7 +- The upstream tarball as provided is broken. Clean up the tarball so + the package builds properly + +* Fri Jan 06 2012 Doug Ledford - 1.4-6 +- Initial import into Fedora + +* Wed Oct 26 2011 Doug Ledford - 1.4-5.el6 +- Update to a version that will support the latest Mellanox CX3 hardware +- Resolves: bz748244 + +* Mon Aug 08 2011 Doug Ledford - 1.4-4.el6 +- Fix a bug in mmio space unmapping +- Resolves: bz729061 +- Related: bz725016 + +* Fri Feb 19 2010 Doug Ledford - 1.4-3.el6 +- Don't include mtcr.h as we don't really expect anything to need Mellanox + card register definitions except this program, and we already have the + file. +- Change to ExcludeArch instead of ExclusiveArch so we build in all the right + places. +- Related: bz543948 + +* Mon Jan 25 2010 Doug Ledford - 1.4-2.el6 +- Update to tarball from URL instead of from OFED +- Minor tweaks for pkgwrangler import +- Related: bz543948 + +* Sat Apr 18 2009 Doug Ledford - 1.4-1.el5 +- Update to ofed 1.4.1-rc3 version +- Related: bz459652 + +* Tue Apr 01 2008 Doug Ledford - 1.3-1 +- Update to OFED 1.3 final bits +- Related: bz428197 + +* Sun Jan 27 2008 Doug Ledford - 1.2-2 +- Obsolete the old openib-mstflint package + +* Fri Jan 25 2008 Doug Ledford - 1.2-1 +- Initial import into CVS +- Related: bz428197 + +* Thu Jul 19 2007 - Vladimir Sokolovsky vlad@mellanox.co.il +- Initial Package, Version 1.2