diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..51448dd --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +SOURCES/mstflint-4.11.0-2.tar.gz diff --git a/.mstflint.metadata b/.mstflint.metadata new file mode 100644 index 0000000..19292e7 --- /dev/null +++ b/.mstflint.metadata @@ -0,0 +1 @@ +f5aa2812b7c57810779938cbf69bf87e967f782c SOURCES/mstflint-4.11.0-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..22bd73b --- /dev/null +++ b/SOURCES/0001-Fix-shebang-for-python-scripts.patch @@ -0,0 +1,119 @@ +From f355d4902890e5b4db15b87903a299697764bc8a Mon Sep 17 00:00:00 2001 +From: Honggang Li +Date: Fri, 8 Feb 2019 21:26:39 -0500 +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 +--- + mtcr_py/test.py | 2 +- + small_utils/mlxfwresetlib/mcra.py | 2 +- + small_utils/mlxfwresetlib/mlnx_peripheral_components.py | 2 +- + small_utils/mlxfwresetlib/mlxfwreset_mlnxdriver.py | 2 +- + small_utils/mlxfwresetlib/mlxfwreset_status_checker.py | 2 +- + small_utils/mlxfwresetlib/mlxfwreset_utils.py | 2 +- + small_utils/mlxfwresetlib/pci_device.py | 2 +- + small_utils/mstfwreset.py | 2 +- + 8 files changed, 8 insertions(+), 8 deletions(-) + +diff --git a/mtcr_py/test.py b/mtcr_py/test.py +index 74c5d28..1e44232 100755 +--- a/mtcr_py/test.py ++++ b/mtcr_py/test.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/env python ++#!/usr/bin/python3 + # Copyright (c) 2004-2010 Mellanox Technologies LTD. All rights reserved. + # + # This software is available to you under a choice of one of two +diff --git a/small_utils/mlxfwresetlib/mcra.py b/small_utils/mlxfwresetlib/mcra.py +index 2144d43..bc44356 100644 +--- a/small_utils/mlxfwresetlib/mcra.py ++++ b/small_utils/mlxfwresetlib/mcra.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + + # Copyright (c) 2004-2010 Mellanox Technologies LTD. All rights reserved. + # +diff --git a/small_utils/mlxfwresetlib/mlnx_peripheral_components.py b/small_utils/mlxfwresetlib/mlnx_peripheral_components.py +index 0ddf8d9..469e24b 100644 +--- a/small_utils/mlxfwresetlib/mlnx_peripheral_components.py ++++ b/small_utils/mlxfwresetlib/mlnx_peripheral_components.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + + # Copyright (c) 2004-2010 Mellanox Technologies LTD. All rights reserved. + # +diff --git a/small_utils/mlxfwresetlib/mlxfwreset_mlnxdriver.py b/small_utils/mlxfwresetlib/mlxfwreset_mlnxdriver.py +index 4971b00..1f34925 100755 +--- a/small_utils/mlxfwresetlib/mlxfwreset_mlnxdriver.py ++++ b/small_utils/mlxfwresetlib/mlxfwreset_mlnxdriver.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + + # Copyright (c) 2004-2010 Mellanox Technologies LTD. All rights reserved. + # +diff --git a/small_utils/mlxfwresetlib/mlxfwreset_status_checker.py b/small_utils/mlxfwresetlib/mlxfwreset_status_checker.py +index 1d614ac..153c87b 100755 +--- a/small_utils/mlxfwresetlib/mlxfwreset_status_checker.py ++++ b/small_utils/mlxfwresetlib/mlxfwreset_status_checker.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + + # Copyright (c) 2004-2010 Mellanox Technologies LTD. All rights reserved. + # +diff --git a/small_utils/mlxfwresetlib/mlxfwreset_utils.py b/small_utils/mlxfwresetlib/mlxfwreset_utils.py +index 9b07328..2c64044 100755 +--- a/small_utils/mlxfwresetlib/mlxfwreset_utils.py ++++ b/small_utils/mlxfwresetlib/mlxfwreset_utils.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + + # Copyright (c) 2004-2010 Mellanox Technologies LTD. All rights reserved. + # +diff --git a/small_utils/mlxfwresetlib/pci_device.py b/small_utils/mlxfwresetlib/pci_device.py +index 69a65ed..04a6c9a 100644 +--- a/small_utils/mlxfwresetlib/pci_device.py ++++ b/small_utils/mlxfwresetlib/pci_device.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + + # Copyright (c) 2004-2010 Mellanox Technologies LTD. All rights reserved. + # +diff --git a/small_utils/mstfwreset.py b/small_utils/mstfwreset.py +index 6d45200..f764de3 100755 +--- a/small_utils/mstfwreset.py ++++ b/small_utils/mstfwreset.py +@@ -1,4 +1,4 @@ +-#!/usr/bin/python ++#!/usr/bin/python3 + + # Copyright (c) 2004-2010 Mellanox Technologies LTD. All rights reserved. + # +-- +2.20.1 + diff --git a/SOURCES/0001-mstflint-crash-when-compiled-with-CXXFLAGS-Wp-D_GLIB.patch b/SOURCES/0001-mstflint-crash-when-compiled-with-CXXFLAGS-Wp-D_GLIB.patch new file mode 100644 index 0000000..45f7dc7 --- /dev/null +++ b/SOURCES/0001-mstflint-crash-when-compiled-with-CXXFLAGS-Wp-D_GLIB.patch @@ -0,0 +1,26 @@ +From cef28b2989c4df76869ca0d71322c099134774ab Mon Sep 17 00:00:00 2001 +From: root +Date: Sun, 10 Feb 2019 14:25:44 +0200 +Subject: [PATCH] mstflint crash when compiled with + 'CXXFLAGS='-Wp,-D_GLIBCXX_ASSERTIONS'' + +--- + mlxfwops/lib/fs3_ops.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/mlxfwops/lib/fs3_ops.cpp b/mlxfwops/lib/fs3_ops.cpp +index bfe8adb..55f2b71 100644 +--- a/mlxfwops/lib/fs3_ops.cpp ++++ b/mlxfwops/lib/fs3_ops.cpp +@@ -525,7 +525,7 @@ bool Fs3Operations::VerifyTOC(u_int32_t dtoc_addr, bool &bad_signature, VerifyCa + } + // Only when we have full verify or the info of this section should be collected for query + std::vector buffv(entry_size_in_bytes); +- u_int8_t *buff = (u_int8_t *)(&(buffv[0])); ++ u_int8_t *buff = (u_int8_t *)(buffv.size() ? (&(buffv[0])) : NULL); + if (show_itoc) { + cibfw_itoc_entry_dump(&toc_entry, stdout); + if (!DumpFs3CRCCheck(toc_entry.type, phys_addr, entry_size_in_bytes, 0, 0, true, verifyCallBackFunc)) { +-- +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..4d99c18 --- /dev/null +++ b/SOURCES/add-default-link-flags-for-shared-libraries.patch @@ -0,0 +1,52 @@ +diff --git a/cmdif/Makefile.am b/cmdif/Makefile.am +index d4f89a2..46604f5 100644 +--- a/cmdif/Makefile.am ++++ b/cmdif/Makefile.am +@@ -46,7 +46,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 907e5ce..a7e2249 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/reg_access/Makefile.am b/reg_access/Makefile.am +index 353fe02..7d70fd8 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/convert-format-for-mlxfwreset_status_checker.patch b/SOURCES/convert-format-for-mlxfwreset_status_checker.patch new file mode 100644 index 0000000..52a8f39 --- /dev/null +++ b/SOURCES/convert-format-for-mlxfwreset_status_checker.patch @@ -0,0 +1,180 @@ +diff --git a/small_utils/mlxfwresetlib/mlxfwreset_status_checker.py b/small_utils/mlxfwresetlib/mlxfwreset_status_checker.py +index 36b82ff..1d614ac 100755 +--- a/small_utils/mlxfwresetlib/mlxfwreset_status_checker.py ++++ b/small_utils/mlxfwresetlib/mlxfwreset_status_checker.py +@@ -1,87 +1,87 @@ +-#!/usr/bin/python +- +-# 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. +-#-- +- +-""" +-* $Id : fwreset_status_checker.py 2017-11-28 +-* $Authors : Ahmad Soboh (ahmads@mellanox.com) +-""" +- +-###################################################################### +-# Description: FirmwareResetStatusChecker +-# OS Support : Linux/Windows. +-###################################################################### +- +- +-class FirmwareResetStatusChecker(object): +- +- FirmwareUptimeStatusInit = 0x0 +- FirmwareUptimeStatusBeforeDone = 0x1 +- FirmwareUptimeStatusAfterDone = 0x2 +- FirmwareUptimeStatusError = 0x3 +- +- FirmwareResetStatusDone = 0x0 +- FirmwareResetStatusFailed = 0x1 +- FirmwareResetStatusUnknown = 0x2 +- +- def __init__(self, regAccessObj): +- self._RegAccessObj = regAccessObj +- self._UptimeBeforeReset = 0x0 +- self._UptimeBeforeStatus = FirmwareResetStatusChecker.FirmwareUptimeStatusInit +- self._UptimeAfterReset = 0x0 +- self._UptimeAfterStatus = FirmwareResetStatusChecker.FirmwareUptimeStatusInit +- +- def UpdateUptimeBeforeReset(self): +- try: +- self._UptimeBeforeReset = self._RegAccessObj.getFWUptime() +- self._UptimeBeforeStatus = FirmwareResetStatusChecker.FirmwareUptimeStatusBeforeDone +- except Exception as e: +- self._UptimeBeforeStatus = FirmwareResetStatusChecker.FirmwareUptimeStatusError +- +- def UpdateUptimeAfterReset(self): +- try: +- self._UptimeAfterReset = self._RegAccessObj.getFWUptime() +- self._UptimeAfterStatus = FirmwareResetStatusChecker.FirmwareUptimeStatusAfterDone +- except Exception as e: +- self._UptimeAfterStatus = FirmwareResetStatusChecker.FirmwareUptimeStatusError +- +- def GetStatus(self): +- if self._UptimeBeforeStatus == FirmwareResetStatusChecker.FirmwareUptimeStatusBeforeDone and\ +- self._UptimeAfterStatus == FirmwareResetStatusChecker.FirmwareUptimeStatusAfterDone: +- if self._UptimeAfterReset < self._UptimeBeforeReset: +- return FirmwareResetStatusChecker.FirmwareResetStatusDone +- else: +- if self._UptimeBeforeReset > 5: #5 seconds +- return FirmwareResetStatusChecker.FirmwareResetStatusFailed +- else: +- return FirmwareResetStatusChecker.FirmwareResetStatusUnknown +- return FirmwareResetStatusChecker.FirmwareResetStatusUnknown +\ No newline at end of file ++#!/usr/bin/python ++ ++# 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. ++#-- ++ ++""" ++* $Id : fwreset_status_checker.py 2017-11-28 ++* $Authors : Ahmad Soboh (ahmads@mellanox.com) ++""" ++ ++###################################################################### ++# Description: FirmwareResetStatusChecker ++# OS Support : Linux/Windows. ++###################################################################### ++ ++ ++class FirmwareResetStatusChecker(object): ++ ++ FirmwareUptimeStatusInit = 0x0 ++ FirmwareUptimeStatusBeforeDone = 0x1 ++ FirmwareUptimeStatusAfterDone = 0x2 ++ FirmwareUptimeStatusError = 0x3 ++ ++ FirmwareResetStatusDone = 0x0 ++ FirmwareResetStatusFailed = 0x1 ++ FirmwareResetStatusUnknown = 0x2 ++ ++ def __init__(self, regAccessObj): ++ self._RegAccessObj = regAccessObj ++ self._UptimeBeforeReset = 0x0 ++ self._UptimeBeforeStatus = FirmwareResetStatusChecker.FirmwareUptimeStatusInit ++ self._UptimeAfterReset = 0x0 ++ self._UptimeAfterStatus = FirmwareResetStatusChecker.FirmwareUptimeStatusInit ++ ++ def UpdateUptimeBeforeReset(self): ++ try: ++ self._UptimeBeforeReset = self._RegAccessObj.getFWUptime() ++ self._UptimeBeforeStatus = FirmwareResetStatusChecker.FirmwareUptimeStatusBeforeDone ++ except Exception as e: ++ self._UptimeBeforeStatus = FirmwareResetStatusChecker.FirmwareUptimeStatusError ++ ++ def UpdateUptimeAfterReset(self): ++ try: ++ self._UptimeAfterReset = self._RegAccessObj.getFWUptime() ++ self._UptimeAfterStatus = FirmwareResetStatusChecker.FirmwareUptimeStatusAfterDone ++ except Exception as e: ++ self._UptimeAfterStatus = FirmwareResetStatusChecker.FirmwareUptimeStatusError ++ ++ def GetStatus(self): ++ if self._UptimeBeforeStatus == FirmwareResetStatusChecker.FirmwareUptimeStatusBeforeDone and\ ++ self._UptimeAfterStatus == FirmwareResetStatusChecker.FirmwareUptimeStatusAfterDone: ++ if self._UptimeAfterReset < self._UptimeBeforeReset: ++ return FirmwareResetStatusChecker.FirmwareResetStatusDone ++ else: ++ if self._UptimeBeforeReset > 5: #5 seconds ++ return FirmwareResetStatusChecker.FirmwareResetStatusFailed ++ else: ++ return FirmwareResetStatusChecker.FirmwareResetStatusUnknown ++ return FirmwareResetStatusChecker.FirmwareResetStatusUnknown 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..ca4201f --- /dev/null +++ b/SOURCES/replace-mlxfwreset-with-mstfwreset-in-mstflint-message.patch @@ -0,0 +1,26 @@ +diff --git a/flint/subcommands.cpp b/flint/subcommands.cpp +index 8c85e55..0822e8b 100644 +--- a/flint/subcommands.cpp ++++ b/flint/subcommands.cpp +@@ -2997,7 +2997,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/mlxfwops/lib/flint_base.h b/mlxfwops/lib/flint_base.h +index eb434dc..e851085 100644 +--- a/mlxfwops/lib/flint_base.h ++++ b/mlxfwops/lib/flint_base.h +@@ -394,7 +394,7 @@ struct BOARD_ID { + #define TLV_FORMAT_SECT "TLVs format section" + #define TRACER_HASH_SECT "Tracer Hash section" + #define REBOOT_REQUIRED_STR "To load new FW run reboot machine." +-#define REBOOT_OR_FWRESET_REQUIRED_STR "To load new FW run mlxfwreset or reboot machine." ++#define REBOOT_OR_FWRESET_REQUIRED_STR "To load new FW run mstfwreset or reboot machine." + #define numbel(x) (sizeof(x) / sizeof((x)[0])) + + void report(const char *format, ...); diff --git a/SPECS/mstflint.spec b/SPECS/mstflint.spec new file mode 100644 index 0000000..4902fb7 --- /dev/null +++ b/SPECS/mstflint.spec @@ -0,0 +1,210 @@ +%global __remake_config 1 + +Name: mstflint +Summary: Mellanox firmware burning tool +Version: 4.11.0 +Release: 2%{?dist} +License: GPLv2+ or BSD +Group: Applications/System +Source: https://github.com/Mellanox/mstflint/releases/download/v4.11.0-2/mstflint-4.11.0-2.tar.gz +Patch1: convert-format-for-mlxfwreset_status_checker.patch +Patch2: 0001-Fix-shebang-for-python-scripts.patch +Patch3: extend-buffer.patch +Patch4: add-default-link-flags-for-shared-libraries.patch +Patch5: 0001-mstflint-crash-when-compiled-with-CXXFLAGS-Wp-D_GLIB.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 +%patch1 -p1 +%patch2 -p1 +%patch3 -p1 +%patch4 -p1 +%patch5 -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 +# python scripts with shebang should be installed as executable +find %{buildroot} -type f -name test.py -exec chmod -v a+x '{}' ';' +find %{buildroot} -type f -name mstfwreset.py -exec chmod -v a+x '{}' ';' +find %{buildroot} -type f -name mlxfwreset_mlnxdriver.py -exec chmod -v a+x '{}' ';' +find %{buildroot} -type f -name mlnx_peripheral_components.py -exec chmod -v a+x '{}' ';' +find %{buildroot} -type f -name mlxfwreset_status_checker.py -exec chmod -v a+x '{}' ';' +find %{buildroot} -type f -name mcra.py -exec chmod -v a+x '{}' ';' +find %{buildroot} -type f -name mlxfwreset_utils.py -exec chmod -v a+x '{}' ';' +find %{buildroot} -type f -name pci_device.py -exec chmod -v a+x '{}' ';' + +%files +%doc README +%_bindir/* +%{_sysconfdir}/mstflint +%{_libdir}/mstflint + +%{_datadir}/mstflint +%{_mandir}/man1/* + +%changelog +* 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