Blame packages/e/eth-ff/eth-ff.spec

05d200
#
05d200
# spec file for package eth-ff
05d200
#
Bernhard M. Wiedemann 514c2a
# Copyright (c) 2023 SUSE LLC
05d200
#
05d200
# All modifications and additions to the file contributed by third parties
05d200
# remain the property of their copyright owners, unless otherwise agreed
05d200
# upon. The license for this file, and modifications and additions to the
05d200
# file, is the same license as for the pristine package itself (unless the
05d200
# license for the pristine package is not an Open Source License, in which
05d200
# case the license is the MIT License). An "Open Source License" is a
05d200
# license that conforms to the Open Source Definition (Version 1.9)
05d200
# published by the Open Source Initiative.
05d200
05d200
# Please submit bugfixes or comments via https://bugs.opensuse.org/
05d200
#
05d200
05d200
0dcda8
%define git_ver .0.e2d1dd8cde0e
05d200
05d200
%define pseudo_opt %{_prefix}/lib/eth-tools/
05d200
%define ethsysconfdir %{_sysconfdir}/eth-tools/
05d200
05d200
Name:           eth-ff
0dcda8
Version:        11.3.0.0
05d200
Release:        0
05d200
Summary:        Intel Ethernet Fabric Suite basic tools and libraries for fabric management
05d200
License:        BSD-3-Clause OR GPL-2.0-only
05d200
Group:          Productivity/Networking/System
05d200
URL:            https://github.com/intel/eth-fast-fabric
05d200
Source0:        %{name}-%{version}%{git_ver}.tar.gz
05d200
Source1:        eth-ff.rpmlintrc
05d200
Patch1:         eth-ff-suse-build-fixes.patch
05d200
Patch2:         eth-ff-add-shebang-for-exp-files.patch
Bernhard M. Wiedemann 514c2a
Patch3:         topology-fix-support-for-disabled-MD5-authentication.patch
05d200
BuildRequires:  gcc-c++
05d200
BuildRequires:  infiniband-diags-devel
05d200
BuildRequires:  libexpat-devel
05d200
BuildRequires:  libopenssl-devel
05d200
BuildRequires:  librdmacm1
05d200
BuildRequires:  ncurses-devel
05d200
BuildRequires:  net-snmp-devel
05d200
BuildRequires:  rdma-core-devel
05d200
BuildRequires:  tcl-devel
05d200
BuildRequires:  zlib-devel
05d200
05d200
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
05d200
#Currently ONLY builds on x86_64
05d200
ExclusiveArch:  x86_64
05d200
05d200
%description
05d200
The %{name} contains basic tools and libraries  to manage an Intel Ethernet fabric.
05d200
05d200
%package     -n eth-basic-tools
05d200
Summary:        Management level tools and scripts
05d200
Group:          Productivity/Networking/System
05d200
Requires:       rdma
05d200
05d200
%description -n eth-basic-tools
05d200
Contains basic tools for fabric management necessary on all compute nodes.
05d200
05d200
%package -n eth-fastfabric
05d200
Summary:        Management level tools and scripts
05d200
Group:          Productivity/Networking/System
05d200
Requires:       cron
05d200
Requires:       eth-basic-tools
05d200
05d200
%description -n eth-fastfabric
05d200
Contains tools for managing fabric on a management node.
05d200
05d200
%prep
05d200
%setup -q -n  %{name}-%{version}%{git_ver}
05d200
%patch1
05d200
%patch2
Bernhard M. Wiedemann 514c2a
%patch3
05d200
05d200
%build
05d200
export RPM_OPT_FLAGS="$RPM_OPT_FLAGS -Wno-address-of-packed-member"
05d200
cd OpenIb_Host && ./ff_build.sh %{_builddir} $FF_BUILD_ARGS
05d200
05d200
%install
05d200
. OpenIb_Host/ff_filegroups.sh
05d200
05d200
mkdir -p %{buildroot}%{_bindir}
05d200
mkdir -p %{buildroot}%{_sbindir}
05d200
mkdir -p %{buildroot}%{pseudo_opt}/
05d200
mkdir -p %{buildroot}%{pseudo_opt}samples
05d200
mkdir -p %{buildroot}%{ethsysconfdir}
05d200
mkdir -p %{buildroot}%{_mandir}/man1
05d200
mkdir -p %{buildroot}%{_mandir}/man8
05d200
mkdir -p %{buildroot}%{_sysconfdir}/sysconfig
05d200
mkdir -p %{buildroot}%{_sysconfdir}/sysconfig/eth-tools
05d200
05d200
#Binaries and scripts installing (basic tools)
05d200
cd $(cat %{_builddir}/RELEASE_PATH)
05d200
05d200
cd bin
05d200
cp -t %{buildroot}%{_sbindir} ${basic_tools_sbin}
05d200
cp -t %{buildroot}/%{pseudo_opt}/ ${basic_tools_opt}
05d200
05d200
cd ../fastfabric
05d200
cp -t %{buildroot}%{_sbindir} ${ff_tools_sbin}
05d200
cp -t %{buildroot}%{pseudo_opt} ${ff_tools_misc}
05d200
cp -t %{buildroot}%{ethsysconfdir} ${basic_configs}
05d200
05d200
cd ../fastfabric/samples
05d200
cp -t %{buildroot}%{pseudo_opt}samples ${ff_iba_samples} ${basic_samples}
05d200
cd ..
05d200
05d200
cd ../fastfabric/tools
05d200
chmod 755 *.exp
05d200
cp -t %{buildroot}%{pseudo_opt}/ ${ff_tools_exp}
05d200
cp -t %{buildroot}%{pseudo_opt}/ ${ff_libs_misc}
05d200
cp -t %{buildroot}%{pseudo_opt}/ osid_wrapper
05d200
cp -t %{buildroot}%{ethsysconfdir}  allhosts hosts switches
05d200
cd ..
05d200
05d200
cd ../man/man1
05d200
cp -t %{buildroot}%{_mandir}/man1 ${basic_mans}
05d200
cd ../man8
05d200
cp -t %{buildroot}%{_mandir}/man8 ${ff_mans}
05d200
cd ..
05d200
05d200
#Config files
05d200
cd ../config
05d200
cp -t %{buildroot}/%{ethsysconfdir} ethmon.conf ethmon.si.conf
05d200
05d200
# Now that we've put everything in the buildroot, copy any default config files to their expected location for user
05d200
# to edit. To prevent nuking existing user configs, the files section of this spec file will reference these as noreplace
05d200
# config files.
05d200
cp %{buildroot}%{pseudo_opt}/ethfastfabric.conf.def %{buildroot}/%{ethsysconfdir}/ethfastfabric.conf
05d200
05d200
for file in $(ls  %{buildroot}/%{ethsysconfdir}); do
05d200
	ln -s %{ethsysconfdir}/$file %{buildroot}/etc/sysconfig/eth-tools/$file
05d200
done
05d200
05d200
#Now we do a bunch of work to build the file listing of what belongs to each RPM
05d200
05d200
# List for basic
05d200
(
05d200
	#Basic tools sbin
05d200
	for file in ${basic_tools_sbin} ${basic_tools_sbin_sym}; do
05d200
		echo "%{_sbindir}/${file}"
05d200
	done
05d200
	#Basic tools opt
05d200
	for file in ${basic_tools_opt}; do
05d200
		echo "%{pseudo_opt}/${file}"
05d200
	done
05d200
	#Basic man pages
05d200
	for file in ${basic_mans}; do
05d200
		# Extra wildcard to accept .1.gz
05d200
		echo "%{_mandir}/man1/${file}*"
05d200
	done
05d200
	#Basic config pages
05d200
	for file in ${basic_configs}; do
05d200
		echo "%config(noreplace) %{ethsysconfdir}${file}"
05d200
	done
05d200
) >  %{_builddir}/basic_file.list
05d200
05d200
# List for eth-fastfabric
05d200
(
05d200
	#FF tools opt
05d200
	for file in ${ff_tools_opt}; do
05d200
		echo "%{pseudo_opt}/${file}"
05d200
	done
05d200
05d200
	#FF exp files opt
05d200
	for file in ${ff_tools_exp}; do
05d200
		echo "%{pseudo_opt}/${file}"
05d200
	done
05d200
05d200
	#FF misc files opt
05d200
	for file in ${ff_tools_misc}; do
05d200
		echo "%{pseudo_opt}/${file}"
05d200
	done
05d200
05d200
	#FF libs misc
05d200
	for file in ${ff_libs_misc}; do
05d200
		echo "%{pseudo_opt}/${file}"
05d200
	done
05d200
05d200
	#FF iba samples
05d200
	for file in ${ff_iba_samples} ${basic_samples}; do
05d200
		echo "%{pseudo_opt}samples/${file}"
05d200
	done
05d200
05d200
	#FF tools to FM configuration
05d200
	for file in ${ff_tools_fm}; do
05d200
		echo "%{pseudo_opt}fm_tools/${file}"
05d200
	done
05d200
05d200
	#FF man pages
05d200
	for file in ${ff_mans}; do
05d200
		# Extra wildcard to accept .8.gz
05d200
		echo "%{_mandir}/man8/${file}*"
05d200
	done
05d200
05d200
	#FF tools help doc
05d200
	for file in ${help_doc}; do
05d200
		echo "%{pseudo_opt}help/${file}"
05d200
	done
05d200
05d200
	#FF tools sbin
05d200
	for file in ${ff_tools_sbin}; do
05d200
		echo "%{_sbindir}/${file}"
05d200
	done
05d200
05d200
) > %{_builddir}/ff_file.list
05d200
05d200
%files -n eth-basic-tools -f %{_builddir}/basic_file.list
05d200
%defattr(-,root,root,-)
05d200
%dir %{pseudo_opt}
05d200
%dir %{ethsysconfdir}
05d200
05d200
%doc README
05d200
%license LICENSE
05d200
05d200
%files -n eth-fastfabric -f %{_builddir}/ff_file.list
05d200
%defattr(-,root,root,0755)
05d200
%dir %{pseudo_opt}
05d200
%dir %{pseudo_opt}samples
05d200
%{pseudo_opt}/osid_wrapper
05d200
05d200
%dir %{_sysconfdir}/sysconfig/eth-tools
05d200
%dir %{ethsysconfdir}
05d200
%{_sysconfdir}/sysconfig/eth-tools/*
05d200
05d200
%config(noreplace) %{ethsysconfdir}/ethfastfabric.conf
05d200
%config(noreplace) %{ethsysconfdir}/ethmon.conf
05d200
%config(noreplace) %{ethsysconfdir}/ethmon.si.conf
05d200
%config(noreplace) %{ethsysconfdir}/allhosts
05d200
%config(noreplace) %{ethsysconfdir}/hosts
05d200
%config(noreplace) %{ethsysconfdir}/switches
05d200
05d200
%changelog