Summary: Open Programmable Acceleration Engine (OPAE) SDK
Name: opae
Vendor: Intel Corporation
License: BSD
Version: 2.2.0
%define opae_release 1
%define patch_level 1
Release: %{opae_release}.%{patch_level}%{?dist}.1
URL: https://github.com/OPAE/%{name}-sdk
Source0: https://github.com/OPAE/opae-sdk/releases/download/%{version}-%{opae_release}/%{name}-%{version}-%{opae_release}.tar.gz
Group: Development/Libraries
ExclusiveArch: x86_64
BuildRequires: make
BuildRequires: cmake
BuildRequires: gcc
BuildRequires: gcc-c++
BuildRequires: json-c-devel
BuildRequires: libuuid-devel
BuildRequires: python3-devel
BuildRequires: python3-jsonschema
BuildRequires: python3-pip
BuildRequires: python3-setuptools
BuildRequires: python3-pyyaml
BuildRequires: python3-pybind11
BuildRequires: rpm-build
BuildRequires: systemd-devel
BuildRequires: systemd-rpm-macros
BuildRequires: tbb-devel
BuildRequires: hwloc-devel
BuildRequires: pybind11-devel
BuildRequires: cli11-devel
BuildRequires: spdlog-devel
BuildRequires: libedit-devel
%description
Open Programmable Acceleration Engine (OPAE) is a software framework
for managing and accessing programmable accelerators (FPGAs).
Its main parts are:
* OPAE Software Development Kit (OPAE SDK) (this package)
* OPAE Linux driver for Intel(R) PAC with Arria(R) 10 GX FPGA
* Intel(R) PAC N6000/D5005, Silicom FPGA SmartNIC N5010 Series,
* Intel FPGA Programmable Acceleration Card N6000
OPAE SDK is a collection of libraries and tools to facilitate the
development of software applications and accelerators using OPAE.
It provides a library implementing the OPAE C API for presenting a
streamlined and easy-to-use interface for software applications to
discover, access, and manage FPGA devices and accelerators using
the OPAE software stack.
%package devel
Summary: OPAE headers, sample source, and documentation
Requires: opae
Requires: libuuid-devel, %{name}%{?_isa} = %{version}-%{release}
Requires: openssl-devel
%description devel
OPAE headers, tools, sample source, and documentation
%package extra-tools
Summary: Additional OPAE tools
Requires: opae-devel
%description extra-tools
This package contains OPAE extra tools binaries,
software tools for accelerators
%{?python_disable_dependency_generator}
# Workaround a problem with pybind11 *.so not having build-id's
%undefine _missing_build_ids_terminate_build
%prep
%setup -q -n %{name}-%{version}-%{opae_release}
%build
%cmake -DCMAKE_INSTALL_PREFIX=/usr \
-DOPAE_PRESERVE_REPOS=ON \
-DOPAE_BUILD_PYTHON_DIST=ON \
-DOPAE_BUILD_FPGABIST=ON
%cmake_build
%install
mkdir -p %{buildroot}%{_datadir}/opae
cp RELEASE_NOTES.md %{buildroot}%{_datadir}/opae/RELEASE_NOTES.md
cp LICENSE %{buildroot}%{_datadir}/opae/LICENSE
cp COPYING %{buildroot}%{_datadir}/opae/COPYING
mkdir -p %{buildroot}%{_usr}/src/opae/cmake/modules
cp cmake/modules/*.cmake %{buildroot}%{_usr}/src/opae/cmake/modules
chmod a+x %{buildroot}%{_usr}/src/opae/cmake/modules/*.cmake
mkdir -p %{buildroot}%{_usr}/src/opae/samples
mkdir -p %{buildroot}%{_usr}/src/opae/samples/hello_fpga/
mkdir -p %{buildroot}%{_usr}/src/opae/samples/hello_events/
mkdir -p %{buildroot}%{_usr}/src/opae/samples/object_api/
mkdir -p %{buildroot}%{_usr}/src/opae/samples/n5010-test/
cp samples/hello_fpga/hello_fpga.c %{buildroot}%{_usr}/src/opae/samples/hello_fpga/
cp samples/hello_events/hello_events.c %{buildroot}%{_usr}/src/opae/samples/hello_events/
cp samples/object_api/object_api.c %{buildroot}%{_usr}/src/opae/samples/object_api/
cp samples/n5010-test/n5010-test.c %{buildroot}%{_usr}/src/opae/samples/n5010-test/
%cmake_install
prev=$PWD
pushd %{_topdir}/BUILD/%{name}-%{version}-%{opae_release}/binaries/opae.io
%{__python3} setup.py install --single-version-externally-managed --root=%{buildroot}
popd
pushd %{_topdir}/BUILD/%{name}-%{version}-%{opae_release}/binaries/hssi
%{__python3} setup.py install --single-version-externally-managed --root=%{buildroot}
popd
pushd %{_topdir}/BUILD/%{name}-%{version}-%{opae_release}/binaries/fpgadiag
%{__python3} setup.py install --single-version-externally-managed --root=%{buildroot}
popd
pushd %{_topdir}/BUILD/%{name}-%{version}-%{opae_release}/%__cmake_builddir/libraries/pyopae/stage
%{__python3} setup.py install --single-version-externally-managed --root=%{buildroot}
popd
pushd %{_topdir}/BUILD/%{name}-%{version}-%{opae_release}/%__cmake_builddir/libraries/pyopaeuio/stage
%{__python3} setup.py install --single-version-externally-managed --root=%{buildroot}
popd
pushd %{_topdir}/BUILD/%{name}-%{version}-%{opae_release}/python/opae.admin
%{__python3} setup.py install --single-version-externally-managed --root=%{buildroot}
popd
pushd %{_topdir}/BUILD/%{name}-%{version}-%{opae_release}/python/pacsign
%{__python3} setup.py install --single-version-externally-managed --root=%{buildroot}
popd
pushd %{_topdir}/BUILD/%{name}-%{version}-%{opae_release}/python/packager
%{__python3} setup.py install --single-version-externally-managed --root=%{buildroot}
popd
pushd %{_topdir}/BUILD/%{name}-%{version}-%{opae_release}/binaries/ofs.uio
%{__python3} setup.py install --single-version-externally-managed --root=%{buildroot}
popd
# Make rpmlint happy about install permissions
# admin tools
for file in %{buildroot}%{python3_sitelib}/opae/admin/tools/{fpgaflash,fpgaotsu,fpgaport,fpgasupdate,ihex2ipmi,rsu,super_rsu,bitstream_info,opaevfio,pci_device,fpgareg}.py; do
chmod a+x $file
done
# ethernet
for file in %{buildroot}%{python3_sitelib}/ethernet/{hssicommon,hssiloopback,hssimac,hssistats}.py; do
chmod a+x $file
done
# diag
for file in %{buildroot}%{python3_sitearch}/opae/diag/{common,fecmode,fpgadiag,fpgalpbk,fpgamac,fpgastats,fvlbypass,mactest,mux}.py; do
chmod a+x $file
done
# packager
for file in %{buildroot}%{python3_sitelib}/packager/tools/{afu_json_mgr,packager}.py; do
chmod a+x $file
done
%files
%dir %{_datadir}/opae
%doc %{_datadir}/opae/RELEASE_NOTES.md
%license %{_datadir}/opae/LICENSE
%license %{_datadir}/opae/COPYING
%{_datadir}/doc/opae.admin/LICENSE
%config(noreplace) %{_sysconfdir}/opae/opae.cfg*
%config(noreplace) %{_sysconfdir}/sysconfig/fpgad.conf*
%{_bindir}/fpgaconf
%{_bindir}/fpgad
%{_bindir}/fpgainfo
%{_bindir}/fpgasupdate
%{_bindir}/pci_device
%{_bindir}/rsu
%{_libdir}/libbitstream.so.*
%{_libdir}/libfpgad-api.so.*
%{_libdir}/libmml-srv.so.*
%{_libdir}/libmml-stream.so.*
%{_libdir}/libofs_cpeng.so.*
%{_libdir}/libofs.so.*
%{_libdir}/libopae-c++-nlb.so.*
%{_libdir}/libopae-c.so.*
%{_libdir}/libopae-c++-utils.so.*
%{_libdir}/libopae-cxx-core.so.*
%{_libdir}/libopaemem.so.*
%{_libdir}/libopaeuio.so.*
%{_libdir}/libopaevfio.so.*
%{_libdir}/opae/libboard_a10gx.so
%{_libdir}/opae/libboard_c6100.so
%{_libdir}/opae/libboard_d5005.so
%{_libdir}/opae/libboard_n3000.so
%{_libdir}/opae/libboard_n5010.so
%{_libdir}/opae/libboard_n6000.so
%{_libdir}/opae/libfpgad-vc.so
%{_libdir}/opae/libfpgad-xfpga.so
%{_libdir}/opae/libmodbmc.so
%{_libdir}/opae/libopae-v.so
%{_libdir}/opae/libxfpga.so
%{_unitdir}/fpgad.service
%{python3_sitelib}/opae.admin*
%{python3_sitelib}/opae/admin*
%post
%systemd_post fpgad.service
/sbin/ldconfig
%preun
%systemd_preun fpgad.service
%files devel
%dir %{_includedir}/opae
%dir %{_usr}/src/opae
%{_bindir}/afu_json_mgr
%{_bindir}/afu_platform_config
%{_bindir}/afu_platform_info
%{_bindir}/afu_synth_setup
%{_bindir}/bitstreaminfo
%{_bindir}/fpgaflash
%{_bindir}/fpgametrics
%{_bindir}/fpgaotsu
%{_bindir}/fpgaport
%{_bindir}/fpgareg
%{_bindir}/hello_cxxcore
%{_bindir}/hello_events
%{_bindir}/hello_fpga
%{_bindir}/hssiloopback
%{_bindir}/hssimac
%{_bindir}/hssistats
%{_bindir}/mmlink
%{_bindir}/n5010-ctl
%{_bindir}/n5010-test
%{_bindir}/nlb0
%{_bindir}/nlb3
%{_bindir}/nlb7
%{_bindir}/object_api
%{_bindir}/opaeuiotest
%{_bindir}/opaevfio
%{_bindir}/opaevfiotest
%{_bindir}/pac_hssi_config.py
%{_bindir}/packager
%{_bindir}/PACSign
%{_bindir}/regmap-debugfs
%{_bindir}/rtl_src_config
%{_bindir}/super-rsu
%{_bindir}/userclk
%{_bindir}/vabtool
%{_includedir}/mock/opae_std.h
%{_includedir}/opae/cxx/core.h
%{_includedir}/opae/cxx/core/*.h
%{_includedir}/opae/*.h
%{_includedir}/opae/plugin/*.h
%{_libdir}/libbitstream.so
%{_libdir}/libfpgad-api.so
%{_libdir}/libmml-srv.so
%{_libdir}/libmml-stream.so
%{_libdir}/libofs_cpeng.so
%{_libdir}/libofs.so
%{_libdir}/libopae-c++-nlb.so
%{_libdir}/libopae-c.so
%{_libdir}/libopae-c++-utils.so
%{_libdir}/libopae-cxx-core.so
%{_libdir}/libopaemem.so
%{_libdir}/libopaeuio.so
%{_libdir}/libopaevfio.so
%{_prefix}/lib/opae-%{version}
%{_usr}/share/opae/*
%{_usr}/src/opae/argsfilter/argsfilter.c
%{_usr}/src/opae/argsfilter/argsfilter.h
%{_usr}/src/opae/cmake/modules/*
%{_usr}/src/opae/samples/hello_events/hello_events.c
%{_usr}/src/opae/samples/hello_fpga/hello_fpga.c
%{_usr}/src/opae/samples/n5010-ctl/n5010-ctl.c
%{_usr}/src/opae/samples/n5010-test/n5010-test.c
%{_usr}/src/opae/samples/object_api/object_api.c
%{python3_sitearch}/libvfio*
%{python3_sitearch}/opae.fpga*
%{python3_sitearch}/opae/fpga*
%{python3_sitelib}/ethernet*
%{python3_sitelib}/hssi_ethernet*
%{python3_sitelib}/packager*
%{python3_sitelib}/pacsign*
%files extra-tools
%{_bindir}/bist
%{_bindir}/bist_app
%{_bindir}/bist_app.py
%{_bindir}/bist_common.py
%{_bindir}/bist_def.py
%{_bindir}/bist_dma.py
%{_bindir}/bist_nlb0.py
%{_bindir}/bist_nlb3.py
%{_bindir}/dummy_afu
%{_bindir}/fecmode
%{_bindir}/fpgabist
%{_bindir}/fpgadiag
%{_bindir}/fpga_dma_N3000_test
%{_bindir}/fpga_dma_test
%{_bindir}/fpgalpbk
%{_bindir}/fpgamac
%{_bindir}/fpgastats
%{_bindir}/fvlbypass
%{_bindir}/host_exerciser
%{_bindir}/hps
%{_bindir}/hssi
%{_bindir}/mactest
%{_bindir}/mem_tg
%{_bindir}/ofs.uio
%{_bindir}/opae.io
%{python3_sitearch}/opae.diag*
%{python3_sitearch}/opae/diag*
%{python3_sitearch}/opae.io*
%{python3_sitearch}/opae/io*
%{python3_sitearch}/pyopaeuio*
%{python3_sitelib}/ofs.uio*
%{python3_sitelib}/uio*
%changelog
* Thu Jun 15 2023 Python Maint <python-maint@redhat.com> - 2.2.0-1.1.1
- Rebuilt for Python 3.12
* Fri Mar 3 2023 Tom Rix <trix@redhat.com> - 2.2.0-1.1
- Update tarball to 2.2.0-1
- glob the cmake files to install
- disable a broken python module
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.0-2.2.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Thu Nov 03 2022 Vitaly Zaitsev <vitaly@easycoding.org> - 2.1.0-2.2
- Rebuilt due to spdlog update.
* Thu Aug 18 2022 Tom Rix <trix@redat.com> - 2.1.0-2.1
- Upstate tarball to 2.1.0-2
* Fri Jul 22 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.1.0-1.2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
* Mon Jun 13 2022 Python Maint <python-maint@redhat.com> - 2.1.0-1.1
- Rebuilt for Python 3.11
* Tue Mar 15 2022 The OPAE Dev Team <opae@lists.01.org> - 2.1.0-1
- Update OPAE spec file and tarball generation script.
- Added support to Intel FPGA DFL Driver that has been upstreamed to Linux Kernel v5.7-5.17.
- Added support to Intel FPGA PCIe N6000/D5005/N3000 series.
- Removed OPAE-SIM from OPAE-SDK.
- Various bug fixes
- Various Static code scan bug fixes.
- Updated OPAE documentation.
* Thu Jan 20 2022 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.0-2.8
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Sat Dec 04 2021 Tom Rix <trix@redhat.com> - 2.0.0-2.7
- Disable pacsign, the user user of the local libcrypto
- Remove the whole libcrypto directory in prep
- Remove python3-sphinx, doxygen from BuildRequires
* Fri Dec 03 2021 Tom Rix <trix@redhat.com> - 2.0.0-2.6
- Fix Source0 url
- Remove git from BuildRequires
- Remove libcrypto.so in prep stage
* Fri Dec 03 2021 Miro Hroncok <mhroncok@redhat.com> - 2.0.0-2.5
- Do not provide libcrypto.so.1.1()(64bit)
- Fixes rhbz#2028852
* Thu Jul 22 2021 Fedora Release Engineering <releng@fedoraproject.org> - 2.0.0-2.3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Sat Jul 10 2021 Bjorn Esser <besser82@fedoraproject.org> - 2.0.0-2.2
- Rebuild for versioned symbols in json-c
* Thu Jul 08 2021 Bjorn Esser <besser82@fedoraproject.org> - 2.0.0-2.1
- Fix automatic bump of the release tag
- Add a patch to replace the deprecated pthread_yield function
- Whitespace cleanup
- Use new-style cmake macros
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 2.0.0-2.2
- Rebuilt for Python 3.10
* Mon May 10 2021 Jonathan Wakely <jwakely@redhat.com> - 2.0.0-2.1
- Rebuilt for removed libstdc++ symbols (#1937698)
* Mon Dec 14 2020 The OPAE Dev Team <opae@lists.01.org> - 2.0.0-2
- Update OPAE spec file and tarball generation script
- Fix build errors
* Thu Sep 17 2020 Ananda Ravuri <ananda.ravuri@intel.com> 2.0.0-1
- Various Static code scan bug fixes
- Added support to FPGA Linux kernel Device Feature List (DFL) driver.
- Added support to PAC card N3000 series.
- Added PACSign, bitstream_info, fpgasudpate, rsu, fpgaotsu, fpgaport python tools.
- Added ethernet tools for PAC card N3000.
- Various bug fixes
- Various memory leak fixes.
- Various Static code scan bug fixes
- Added python3 support.
- OPAE USMG API are deprecated.
- Updated OPAE documentation.
* Tue Dec 17 2019 Korde Nakul <nakul.korde@intel.com> 1.4.0-1
- Added support to FPGA Linux kernel Device Feature List (DFL) driver patch set2.
- Increased test cases and test coverage
- Various bug fixes
- Various compiler warning fixes
- Various memory leak fixes
- Various Static code scan bug fixes
- Added new FPGA MMIO API to write 512 bits