%define opae_release 1 Summary: Open Programmable Acceleration Engine (OPAE) SDK Name: opae Version: 2.1.0 Release: %{opae_release}%{?dist} License: BSD ExclusiveArch: x86_64 Group: Development/Libraries Vendor: Intel Corporation Requires: uuid Requires: json-c Requires: python3 Requires: systemd Requires: tbb Requires: hwloc Requires: spdlog Requires: libedit 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 BuildRequires: make BuildRequires: cmake BuildRequires: git 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: 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 for s in \ FindCLI11.cmake \ FindCap.cmake \ FindHwloc.cmake \ FindSphinx.cmake \ FindTbb.cmake \ FindUUID.cmake \ FindUdev.cmake \ Findedit.cmake \ Findjson-c.cmake \ Findspdlog.cmake \ OFS.cmake \ OPAE.cmake \ OPAECompiler.cmake \ OPAEExternal.cmake \ OPAEGit.cmake \ OPAEPackaging.cmake \ OPAETest.cmake do cp "cmake/modules/${s}" %{buildroot}%{_usr}/src/opae/cmake/modules chmod a+x %{buildroot}%{_usr}/src/opae/cmake/modules/$s done 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}/libraries/pyopaeuio %{__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 # 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 %{_libdir}/libopae-c.so.* %{_libdir}/libbitstream.so.* %{_libdir}/libopae-c++-nlb.so.* %{_libdir}/libopae-cxx-core.so.* %{_libdir}/libopae-c++-utils.so.* %{_libdir}/libfpgad-api.so.* %{_libdir}/libmml-srv.so.* %{_libdir}/libmml-stream.so.* %{_libdir}/libofs.so.* %{_libdir}/libopaemem.so.* %{_libdir}/libopaeuio.so.* %{_libdir}/libopaevfio.so.* %{_libdir}/libofs_cpeng.so.* %{_libdir}/opae/libxfpga.so %{_libdir}/opae/libopae-v.so %{_libdir}/opae/libmodbmc.so %{_libdir}/opae/libfpgad-xfpga.so %{_libdir}/opae/libfpgad-vc.so %{_libdir}/opae/libboard_a10gx.so %{_libdir}/opae/libboard_n3000.so %{_libdir}/opae/libboard_d5005.so %{_libdir}/opae/libboard_n5010.so %{_libdir}/opae/libboard_n6000.so %{_bindir}/fpgad %{_bindir}/fpgaconf %{_bindir}/fpgainfo %{_bindir}/fpgasupdate %{_bindir}/rsu %{_bindir}/pci_device %{python3_sitelib}/opae.admin* %{python3_sitelib}/opae/admin* %config(noreplace) %{_sysconfdir}/opae/fpgad.cfg* %config(noreplace) %{_sysconfdir}/sysconfig/fpgad.conf* %{_datadir}/doc/opae.admin/LICENSE %{_unitdir}/fpgad.service %post %systemd_post fpgad.service /sbin/ldconfig %preun %systemd_preun fpgad.service %files devel %dir %{_includedir}/opae %{_includedir}/opae/*.h %{_includedir}/opae/cxx/core.h %{_includedir}/opae/cxx/core/*.h %dir %{_usr}/src/opae %{_usr}/src/opae/samples/hello_fpga/hello_fpga.c %{_usr}/src/opae/samples/hello_events/hello_events.c %{_usr}/src/opae/samples/object_api/object_api.c %{_usr}/src/opae/samples/n5010-test/n5010-test.c %{_usr}/src/opae/samples/n5010-ctl/n5010-ctl.c %{_usr}/src/opae/cmake/modules/* %{_usr}/src/opae/argsfilter/argsfilter.c %{_usr}/src/opae/argsfilter/argsfilter.h %{_libdir}/libfpgad-api.so %{_libdir}/libopae-c++-nlb.so %{_libdir}/libopae-cxx-core.so %{_libdir}/libopae-c++-utils.so %{_libdir}/libopae-c.so %{_libdir}/libbitstream.so %{_libdir}/libmml-stream.so %{_libdir}/libmml-srv.so %{_libdir}/libofs.so %{_libdir}/libofs_cpeng.so %{_libdir}/libopaemem.so %{_libdir}/libopaeuio.so %{_libdir}/libopaevfio.so %{_bindir}/bitstreaminfo %{_bindir}/fpgaflash %{_bindir}/fpgaotsu %{_bindir}/fpgaport %{_bindir}/super-rsu %{_bindir}/mmlink %{_bindir}/userclk %{_bindir}/hello_fpga %{_bindir}/object_api %{_bindir}/hello_events %{_bindir}/hello_cxxcore %{_bindir}/afu_json_mgr %{_bindir}/packager %{_bindir}/fpgametrics %{_bindir}/n5010-test %{_bindir}/n5010-ctl %{_bindir}/PACSign %{_bindir}/opaevfio %{_bindir}/opaevfiotest %{_bindir}/regmap-debugfs %{_bindir}/fpgareg %{_bindir}/afu_platform_config %{_bindir}/afu_platform_info %{_bindir}/afu_synth_setup %{_bindir}/hssiloopback %{_bindir}/hssimac %{_bindir}/hssistats %{_bindir}/opaeuiotest %{_bindir}/pac_hssi_config.py %{_bindir}/rtl_src_config %{_bindir}/nlb0 %{_bindir}/nlb3 %{_bindir}/nlb7 %{_bindir}/vabtool %{_usr}/share/opae/* %{python3_sitelib}/ethernet* %{python3_sitelib}/hssi_ethernet* %{python3_sitelib}/pacsign* %{python3_sitelib}/packager* %{python3_sitearch}/libvfio* %{python3_sitearch}/opae.fpga* %{python3_sitearch}/opae/fpga* %{python3_sitearch}/opae* %files extra-tools %{_bindir}/bist_app %{_bindir}/dummy_afu %{_bindir}/bist_app.py %{_bindir}/bist_common.py %{_bindir}/bist_dma.py %{_bindir}/bist_def.py %{_bindir}/bist_nlb3.py %{_bindir}/bist_nlb0.py %{_bindir}/fpgabist %{_bindir}/fecmode %{_bindir}/fpgamac %{_bindir}/fvlbypass %{_bindir}/mactest %{_bindir}/fpgadiag %{_bindir}/fpgalpbk %{_bindir}/fpgastats %{_bindir}/fpga_dma_N3000_test %{_bindir}/fpga_dma_test %{_bindir}/host_exerciser %{_bindir}/bist %{_bindir}/hps %{_bindir}/hssi %{_bindir}/opae.io %{_bindir}/mem_tg %{python3_sitearch}/opae.diag* %{python3_sitearch}/opae/diag* %{python3_sitearch}/opae.io* %{python3_sitearch}/opae/io* %{python3_sitearch}/pyopaeuio* %changelog * Tue Mar 15 2022 The OPAE Dev Team - 2.1.0-1 - Update OPAE spec file and tarball generation script. - Added support to FPGA Linux kernel DFL driver patchset-6. - Added support to Intel FPGA PCIe N6000/D5005/N3000 series. - Various bug fixes - Various Static code scan bug fixes. - Updated OPAE documentation. * Thu Jan 20 2022 Fedora Release Engineering - 2.0.0-2.8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild * Sat Dec 04 2021 Tom Rix - 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 - 2.0.0-2.6 - Fix Source0 url - Remove git from BuildRequires - Remove libcrypto.so in prep stage * Fri Dec 03 2021 Miro Hroncok - 2.0.0-2.5 - Do not provide libcrypto.so.1.1()(64bit) - Fixes rhbz#2028852 * Thu Jul 22 2021 Fedora Release Engineering - 2.0.0-2.3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild * Sat Jul 10 2021 Bjorn Esser - 2.0.0-2.2 - Rebuild for versioned symbols in json-c * Thu Jul 08 2021 Bjorn Esser - 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 - 2.0.0-2.2 - Rebuilt for Python 3.10 * Mon May 10 2021 Jonathan Wakely - 2.0.0-2.1 - Rebuilt for removed libstdc++ symbols (#1937698) * Mon Dec 14 2020 The OPAE Dev Team - 2.0.0-2 - Update OPAE spec file and tarball generation script - Fix build errors * Thu Sep 17 2020 Ananda Ravuri 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 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