ibutils/ibutils.spec

186 lines
5.3 KiB
RPMSpec

#
# spec file
#
# Copyright (c) 2021 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%global flavor @BUILD_FLAVOR@%{nil}
%if "%flavor" == "ui"
%define pname_suff -ui
%endif
%define ibdm_major 1
%define upstream_ver 1.5.7
%define tar_rel 0.2
Name: ibutils%{?pname_suff}
Summary: OpenIB Mellanox InfiniBand Diagnostic Tools
License: BSD-3-Clause OR GPL-2.0-or-later
Group: Productivity/Networking/Diagnostic
Version: %upstream_ver.%tar_rel
Release: 0
Source0: https://www.openfabrics.org/downloads/ibutils/ibutils-%upstream_ver-%tar_rel.gbd7e502.tar.gz
Source1: ibutils-rpmlintrc
#PATCH-FIX-UPSTREAM Fix non-void functions returning no value
Patch1: ibutils-1.2-retval.patch
#PATCH-FIX-UPSTREAM Extend the check to include tk 8.6
Patch2: ibutils-tk-8.6.patch
#PATCH-FIX-UPSTREAM Prepare for autoreconf run
Patch4: ibutils-autotools.patch
#PATCH-FIX-UPSTREAM Do not link ibdmsh statically and remove rpath
Patch5: ibutils-no_special_ldflags_for_ibdmsh.patch
# Add --disable-ibdiagui option to allow for split builds
Patch6: ibutils-diagui.patch
Patch7: ibutils-fix-build-dependency.patch
Patch8: ibis-drop-multiple-definition-of-IbisObj.patch
Patch9: ibutils-ibis-PIE.patch
URL: http://www.openfabrics.org
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: chrpath
BuildRequires: fdupes
BuildRequires: gawk
BuildRequires: gcc-c++
BuildRequires: libibverbs-devel
BuildRequires: libtool
BuildRequires: opensm-devel
%if "%flavor" == "ui"
BuildRequires: graphviz-tcl
BuildRequires: swig
BuildRequires: tk-devel
Requires: graphviz-tcl
Requires: ibutils = %version
%else
BuildRequires: tcl-devel
%endif
%description
%if "%flavor" == ""
The ibutils package provides a set of diagnostic tools that check the health
of an InfiniBand fabric.
Package components:
ibis: IB interface - A TCL shell that provides interface for sending various
MADs on the IB fabric. This is the component that actually accesses
the IB Hardware.
ibdm: IB Data Model - A library that provides IB fabric analysis.
ibmgtsim: An IB fabric simulator. Useful for developing IB tools.
ibdiag: This package provides two tools which provide the user interface
to activate the above functionality:
- ibdiagnet: Performs various quality and health checks on the IB
fabric.
- ibdiagpath: Performs various fabric quality and health checks on
the given links and nodes in a specific path.
%else
The ibutils-ui package provides a set of graphical UI tools that check the health
of an InfiniBand fabric.
Package components:
ibdiag: This package provides one tool which provide the user interface
to activate the above functionality:
- ibdiagui: A GUI wrapper for ibdiagnet and ibdiagpath.
%endif
%package devel
Summary: SDK for OpenIB Mellanox InfiniBand Diagnostic Tools
Group: Development/Libraries/C and C++
Requires: %name = %version
Requires: libibdm%ibdm_major = %version
%description devel
ibutils provides IB network and path diagnostics.
%package -n libibdm%ibdm_major
Summary: Infiniband Data Model library
Group: System/Libraries
%description -n libibdm%ibdm_major
This package contains shared libraries for the IB utils.
%prep
%setup -q -n ibutils-%upstream_ver
%patch1
%patch2
%patch4
%patch5
%patch6
%patch7
%patch8
%patch9 -p1
%build
autoreconf -fi
./autogen.sh
%if "%flavor" == ""
%configure --with-graphviz-lib=%_libdir --disable-static --disable-ibdiagui
%make_build
%else
%configure --with-graphviz-lib=%_libdir --disable-static
%make_build -Cibdiag
%endif
%install
export NO_BRP_TCL_INDEX_CHECK=true
%if "%flavor" == ""
%make_install
%else
%make_install -Cibdiag/
rm -f %buildroot%_bindir/git_version.tcl %buildroot%_bindir/ibdiagnet %buildroot%_bindir/ibdiagpath
rm -Rf %buildroot%_libdir/ibdiagnet* %buildroot%_libdir/ibdiagpath*
rm -f %buildroot%_mandir/man1/ibdiagnet.1* %buildroot%_mandir/man1/ibdiagpath.1*
%endif
%fdupes -s %buildroot%_libdir
rm -f %buildroot%_libdir/*.la %buildroot%_libdir/*.a
%post -n libibdm%ibdm_major -p /sbin/ldconfig
%postun -n libibdm%ibdm_major -p /sbin/ldconfig
%if "%flavor" == ""
%files
%license COPYING
%_bindir/*
%_libdir/ibdiagnet%upstream_ver
%_libdir/ibdiagpath%upstream_ver
%files -n libibdm%ibdm_major
%_libdir/libibdm.so.*
%_libdir/libibdmcom.so.*
%_libdir/libibsysapi.so.*
%_libdir/ibdm%upstream_ver
%_libdir/ibis%upstream_ver
%files devel
%_includedir/ibdm
%_libdir/libibdm.so
%_libdir/libibdmcom.so
%_libdir/libibsysapi.so
%_mandir/man1/*
%else
%files
%license COPYING
%_bindir/ibdiagui
%_libdir/ibdiagui%upstream_ver
%_mandir/man1/ibdiagui*
%endif
%changelog