# # spec file for package opa-ff # # Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany. # # 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 http://bugs.opensuse.org/ # %define git_ver .0.131.0.3ca3fd5 %define opamgt_major 0 %define opasadb_major 1_0_0 %define pseudo_opt %{_prefix}/lib/opa-ff/ %define opasysconfdir %{_sysconfdir}/opa/sysconfig Name: opa-ff Version: 10.6.0 Release: 0 Summary: Intel Omni-Path basic tools and libraries for fabric managment License: BSD-3-Clause or GPL-2.0 Group: Productivity/Networking/System Url: http://www.intel.com/ Source0: %{name}-%{version}%{git_ver}.tar.gz Source1: opa-ff.rpmlintrc Patch1: opa-ff-add-shebang-for-exp-files.patch Patch2: opa-ff-suse-build-fixes.patch BuildRequires: gcc-c++ BuildRequires: infiniband-diags-devel BuildRequires: libexpat-devel BuildRequires: libopenssl-devel BuildRequires: librdmacm1 BuildRequires: ncurses-devel BuildRequires: rdma-core-devel BuildRequires: tcl-devel BuildRequires: zlib-devel BuildRoot: %{_tmppath}/%{name}-%{version}-build #Currently ONLY builds on x86_64 ExclusiveArch: x86_64 %description The %{name} contains basic tools and libraries for Intel Omni-Path fabric management applications. This includes: the opa-fastfabric opa-basic-tools, opa-address-resolution %package -n opa-basic-tools Summary: OmniPath managment level tools and scripts Group: Productivity/Networking/System Requires: rdma %description -n opa-basic-tools Contains basic tools for fabric managment necessary on all compute nodes. %package -n opa-fastfabric Summary: OmniPath management level tools and scripts Group: Productivity/Networking/System Requires: opa-basic-tools %if 0%{?rhel} Requires: atlas %endif %description -n opa-fastfabric Contains tools for managing fabric on a managment node. %package -n libopasadb%{opasadb_major} Summary: OmniPath Subnet Administrator database library Group: System/Libraries %description -n libopasadb%{opasadb_major} This is to be filled out more concisely later. %package -n opa-address-resolution Summary: OmniPath Address Resolution manager Group: Productivity/Networking/System Requires: opa-basic-tools %description -n opa-address-resolution This is to be filled out more concisely later. %package -n opa-address-resolution-devel Summary: Development files for the OmniPath Address Resolution manager Group: Development/Libraries/C and C++ Requires: libopasadb%{opasadb_major} = %{version} Requires: opa-address-resolution = %{version} Requires: opa-basic-tools %description -n opa-address-resolution-devel This package contains the include files and libraries required to develop programs for the opa-address-resolution package. %package -n libopamgt%{opamgt_major} Summary: Omni-Path management API library Group: System/Libraries %description -n libopamgt%{opamgt_major} This package contains the library necessary to build applications that interface with an Omni-Path FM. %package -n libopamgt-devel Summary: Omni-Path library development headers Group: Development/Libraries/C and C++ Requires: libopamgt%{opamgt_major} %description -n libopamgt-devel This package contains the necessary headers for opamgt development. %prep %setup -q -n %{name}-%{version}%{git_ver} %patch1 %patch2 %build export RPM_OPT_FLAGS if [ -d OpenIb_Host ] then cd OpenIb_Host && ./ff_build.sh %{_builddir} $FF_BUILD_ARGS else ./ff_build.sh %{_builddir} $FF_BUILD_ARGS fi %install . OpenIb_Host/ff_filegroups.sh %define release_string IntelOPA-Tools-FF.$BUILD_TARGET_OS_ID.$MODULEVERSION #rm -rf $RPM_BUILD_ROOT mkdir -p %{buildroot}%{_bindir} mkdir -p %{buildroot}%{_sbindir} mkdir -p %{buildroot}%{pseudo_opt}/{tools,fm_tools,help,samples,samples/opamgt} mkdir -p %{buildroot}%{_libdir}/ibacm mkdir -p %{buildroot}%{_sysconfdir}/rdma mkdir -p %{buildroot}%{_sysconfdir}/opa mkdir -p %{buildroot}%{opasysconfdir} mkdir -p %{buildroot}%{_includedir}/infiniband mkdir -p %{buildroot}%{_includedir}/opamgt/iba/public mkdir -p %{buildroot}%{_mandir}/man1 mkdir -p %{buildroot}%{_mandir}/man8 mkdir -p %{buildroot}%{_sysconfdir}/sysconfig mkdir -p %{buildroot}%{_sysconfdir}/sysconfig/opa #Binaries and scripts installing (basic tools) #cd builtbin.OPENIB_FF.release cd $(cat %{_builddir}/RELEASE_PATH) cd bin cp -t %{buildroot}%{_sbindir} ${basic_tools_sbin} cp -t %{buildroot}/%{pseudo_opt}/tools/ ${basic_tools_opt} ln -s ./opaportinfo %{buildroot}%{_sbindir}/opaportconfig ln -s ./opasmaquery %{buildroot}%{_sbindir}/opapmaquery cd ../opasadb cp -t %{buildroot}%{_bindir} ${opasadb_bin} cp -t %{buildroot}%{_includedir}/infiniband ${opasadb_header} cd ../opamgt cp -t %{buildroot}%{_includedir}/opamgt $opamgt_headers cp -t %{buildroot}%{_includedir}/opamgt/iba $opamgt_iba_headers cp -t %{buildroot}%{_includedir}/opamgt/iba/public $opamgt_iba_public_headers cp -t %{buildroot}%{pseudo_opt}/samples/opamgt $opamgt_examples cd ../bin cp -t %{buildroot}/%{pseudo_opt}/tools/ ${ff_tools_opt} cd ../fastfabric cp -t %{buildroot}%{_sbindir} ${ff_tools_sbin} cp -t %{buildroot}%{pseudo_opt}tools/ ${ff_tools_misc} cp -t %{buildroot}%{pseudo_opt}help ${help_doc} cd ../etc cp -t %{buildroot}/%{pseudo_opt}fm_tools/ ${ff_tools_fm} ln -s %{pseudo_opt}/fm_tools/config_check %{buildroot}%{_sbindir}/opafmconfigcheck ln -s %{pseudo_opt}/fm_tools/config_diff %{buildroot}%{_sbindir}/opafmconfigdiff cd ../fastfabric/samples cp -t %{buildroot}%{pseudo_opt}samples ${ff_iba_samples} cd .. cd ../fastfabric/tools chmod 755 *.exp cp -t %{buildroot}%{pseudo_opt}tools/ ${ff_tools_exp} cp -t %{buildroot}%{pseudo_opt}tools/ ${ff_libs_misc} cp -t %{buildroot}%{pseudo_opt}tools/ osid_wrapper cp -t %{buildroot}%{opasysconfdir} allhosts chassis esm_chassis hosts ports switches opaff.xml cd .. cd ../man/man1 cp -t %{buildroot}%{_mandir}/man1 ${basic_mans} cp -t %{buildroot}%{_mandir}/man1 ${opasadb_mans} cd ../man8 cp -t %{buildroot}%{_mandir}/man8 ${ff_mans} cd .. #Config files cd ../config cp -t %{buildroot}%{_sysconfdir}/rdma dsap.conf cp -t %{buildroot}/%{opasysconfdir} opamon.conf opamon.si.conf #Libraries installing cd $(cat %{_builddir}/LIB_PATH) cp -t %{buildroot}%{_libdir} libopasadb.so.* ln -s libopasadb.so.* %{buildroot}%{_libdir}/libopasadb.so cp -t %{buildroot}%{_libdir}/ibacm libdsap.so.* ln -s libdsap.so.* %{buildroot}%{_libdir}/ibacm/libdsap.so cp -t %{buildroot}%{_libdir}/ libopamgt.so.* ln -s libopamgt.so.* %{buildroot}%{_libdir}/libopamgt.so ln -s /etc/opa/sysconfig/allhosts %{buildroot}/etc/sysconfig/opa/allhosts ln -s /etc/opa/sysconfig/chassis %{buildroot}/etc/sysconfig/opa/chassis ln -s /etc/opa/sysconfig/esm_chassis %{buildroot}//etc/sysconfig/opa/esm_chassis ln -s /etc/opa/sysconfig/hosts %{buildroot}/etc/sysconfig/opa/hosts ln -s /etc/opa/sysconfig/opafastfabric.conf %{buildroot}/etc/sysconfig/opa/opafastfabric.conf ln -s /etc/opa/sysconfig/opaff.xml %{buildroot}/etc/sysconfig/opa/opaff.xml ln -s /etc/opa/sysconfig/opamon.conf %{buildroot}/etc/sysconfig/opa/opamon.conf ln -s /etc/opa/sysconfig/opamon.si.conf %{buildroot}/etc/sysconfig/opa/opamon.si.conf ln -s /etc/opa/sysconfig/ports %{buildroot}/etc/sysconfig/opa/ports ln -s /etc/opa/sysconfig/switches %{buildroot}/etc/sysconfig/opa/switches # Now that we've put everything in the buildroot, copy any default config files to their expected location for user # to edit. To prevent nuking existing user configs, the files section of this spec file will reference these as noreplace # config files. cp %{buildroot}%{pseudo_opt}tools/opafastfabric.conf.def %{buildroot}/%{opasysconfdir}/opafastfabric.conf #Now we do a bunch of work to build the file listing of what belongs to each RPM # List for basic ( #Basic tools sbin for file in ${basic_tools_sbin} ${basic_tools_sbin_sym}; do echo "%{_sbindir}/${file}" done #Basic tools opt for file in ${basic_tools_opt}; do echo "%{pseudo_opt}tools/${file}" done #Basic man pages for file in ${basic_mans}; do # Extra wildcard to accept .1.gz echo "%{_mandir}/man1/${file}*" done ) > %{_builddir}/basic_file.list # List for opa-fastfabric ( #FF tools opt for file in ${ff_tools_opt}; do echo "%{pseudo_opt}tools/${file}" done #FF exp files opt for file in ${ff_tools_exp}; do echo "%{pseudo_opt}tools/${file}" done #FF misc files opt for file in ${ff_tools_misc}; do echo "%{pseudo_opt}tools/${file}" done #FF libs misc for file in ${ff_libs_misc}; do echo "%{pseudo_opt}tools/${file}" done #FF iba samples for file in ${ff_iba_samples}; do echo "%{pseudo_opt}samples/${file}" done #FF tools to FM configuration for file in ${ff_tools_fm}; do echo "%{pseudo_opt}fm_tools/${file}" done #FF man pages for file in ${ff_mans}; do # Extra wildcard to accept .8.gz echo "%{_mandir}/man8/${file}*" done #FF tools help doc for file in ${help_doc}; do echo "%{pseudo_opt}help/${file}" done #FF tools sbin for file in ${ff_tools_sbin}; do echo "%{_sbindir}/${file}" done ) > %{_builddir}/ff_file.list %post -n libopasadb%{opasadb_major} -p /sbin/ldconfig %postun -n libopasadb%{opasadb_major} -p /sbin/ldconfig %post -n libopamgt%{opamgt_major} -p /sbin/ldconfig %postun -n libopamgt%{opamgt_major} -p /sbin/ldconfig %files -n opa-basic-tools -f %{_builddir}/basic_file.list %defattr(-,root,root,-) %dir %{pseudo_opt} %dir %{pseudo_opt}tools/ %doc README LICENSE %files -n opa-fastfabric -f %{_builddir}/ff_file.list %defattr(-,root,root,0755) %dir %{pseudo_opt} %dir %{pseudo_opt}fm_tools %dir %{pseudo_opt}help %dir %{pseudo_opt}samples %dir %{pseudo_opt}tools %dir %{_sysconfdir}/opa %dir %{opasysconfdir} %dir %{_sysconfdir}/sysconfig/opa /etc/sysconfig/opa/* %config(noreplace) %{opasysconfdir}/opafastfabric.conf %config(noreplace) %{opasysconfdir}/opamon.conf %config(noreplace) %{opasysconfdir}/allhosts %config(noreplace) %{opasysconfdir}/chassis %config(noreplace) %{opasysconfdir}/esm_chassis %config(noreplace) %{opasysconfdir}/hosts %config(noreplace) %{opasysconfdir}/ports %config(noreplace) %{opasysconfdir}/switches %config(noreplace) %{opasysconfdir}/opaff.xml %config(noreplace) %{opasysconfdir}/opamon.si.conf %{pseudo_opt}tools/osid_wrapper %{_sbindir}/opafmconfigcheck %{_sbindir}/opafmconfigdiff # /opt/opa %files -n libopasadb%{opasadb_major} %defattr(-,root,root) %{_libdir}/libopasadb.so.1* %files -n opa-address-resolution %defattr(-,root,root,-) %dir %{_sysconfdir}/rdma/ %dir %{_libdir}/ibacm/ #Everything under the bin directory belongs exclusively to opasadb at this time. %{_bindir}/* %{_libdir}/ibacm/*.so.* %{_mandir}/man1/opa_osd_dump.1* %{_mandir}/man1/opa_osd_exercise.1* %{_mandir}/man1/opa_osd_perf.1* %{_mandir}/man1/opa_osd_query.1* %config(noreplace) %{_sysconfdir}/rdma/dsap.conf %files -n opa-address-resolution-devel %{_includedir}/infiniband %{_libdir}/libopasadb.so %{_libdir}/ibacm/libdsap.so %files -n libopamgt%{opamgt_major} %{_libdir}/libopamgt.so.0* %files -n libopamgt-devel %{_libdir}/libopamgt.so %{_includedir}/opamgt %{pseudo_opt}/samples/opamgt %changelog