commit
8a8d340798
BIN
dpdk-19.11.tar.xz
Normal file
BIN
dpdk-19.11.tar.xz
Normal file
Binary file not shown.
160
dpdk.spec
Normal file
160
dpdk.spec
Normal file
@ -0,0 +1,160 @@
|
||||
Name: dpdk
|
||||
Version: 19.11
|
||||
Release: 0
|
||||
Packager: packaging@6wind.com
|
||||
URL: http://dpdk.org
|
||||
%global source_version 19.11
|
||||
Source: %{name}-%{version}.tar.xz
|
||||
|
||||
Summary: Data Plane Development Kit core
|
||||
Group: System Environment/Libraries
|
||||
License: BSD and LGPLv2 and GPLv2
|
||||
|
||||
ExclusiveArch: i686 x86_64 aarch64
|
||||
%ifarch aarch64
|
||||
%global machine armv8a
|
||||
%global target arm64-%{machine}-linux-gcc
|
||||
%global config arm64-%{machine}-linux-gcc
|
||||
%else
|
||||
%global machine native
|
||||
%global target x86_64-%{machine}-linux-gcc
|
||||
%global config x86_64-%{machine}-linux-gcc
|
||||
%endif
|
||||
|
||||
BuildRequires: kernel-devel, kernel, libpcap-devel
|
||||
BuildRequires: kernel-source
|
||||
BuildRequires: numactl-devel libconfig-devel
|
||||
BuildRequires: module-init-tools uname-build-checks libnl3 libmnl
|
||||
BuildRequires: glibc glibc-devel libibverbs libibverbs-devel libmnl-devel
|
||||
BuildRequires: texlive
|
||||
%define kern_devel_ver %(uname -r)
|
||||
%description
|
||||
DPDK core includes kernel modules, core libraries and tools.
|
||||
testpmd application allows to test fast packet processing environments
|
||||
on arm64 platforms. For instance, it can be used to check that environment
|
||||
can support fast path applications such as 6WINDGate, pktgen, rumptcpip, etc.
|
||||
More libraries are available as extensions in other packages.
|
||||
|
||||
%package devel
|
||||
Summary: Data Plane Development Kit for development
|
||||
Requires: %{name}%{?_isa} = %{version}-%{release}
|
||||
%description devel
|
||||
DPDK devel is a set of makefiles, headers and examples
|
||||
for fast packet processing on arm64 platforms.
|
||||
|
||||
%package doc
|
||||
Summary: Data Plane Development Kit API documentation
|
||||
BuildArch: noarch
|
||||
%description doc
|
||||
DPDK doc is divided in two parts: API details in doxygen HTML format
|
||||
and guides in sphinx HTML/PDF formats.
|
||||
|
||||
%package tools
|
||||
Summary: dpdk pdump tool
|
||||
Group : Applications/System
|
||||
Requires: dpdk = %{version}
|
||||
%description tools
|
||||
This package contains the pdump tool for capture the dpdk network packets.
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
|
||||
%build
|
||||
namer=%{kern_devel_ver}
|
||||
export RTE_KERNELDIR=/lib/modules/${namer}/build
|
||||
make O=%{target} T=%{config} config
|
||||
#make .so libraries for spdk
|
||||
sed -ri 's,(CONFIG_RTE_BUILD_SHARED_LIB=).*,\1y,' %{target}/.config
|
||||
sed -ri 's,(CONFIG_RTE_LIB_LIBOS=).*,\1n,' %{target}/.config
|
||||
make O=%{target} %{?_smp_mflags}
|
||||
|
||||
%install
|
||||
namer=%{kern_devel_ver}
|
||||
rm -rf %{buildroot}
|
||||
make install O=%{target} RTE_KERNELDIR=/lib/modules/${namer}/build \
|
||||
kerneldir=/lib/modules/${namer}/extra/dpdk DESTDIR=%{buildroot} \
|
||||
prefix=%{_prefix} bindir=%{_bindir} sbindir=%{_sbindir} \
|
||||
includedir=%{_includedir}/dpdk libdir=%{_libdir} \
|
||||
datadir=%{_datadir}/dpdk docdir=%{_docdir}/dpdk
|
||||
|
||||
mkdir -p $RPM_BUILD_ROOT/lib64/
|
||||
cp -ar ./%{target}/lib/librte_eal.so* $RPM_BUILD_ROOT/lib64/
|
||||
cp -ar ./%{target}/lib/librte_mempool.so* $RPM_BUILD_ROOT/lib64/
|
||||
cp -ar ./%{target}/lib/librte_ring.so* $RPM_BUILD_ROOT/lib64/
|
||||
cp -ar ./%{target}/lib/librte_mempool_ring.so* $RPM_BUILD_ROOT/lib64/
|
||||
cp -ar ./%{target}/lib/librte_pci.so* $RPM_BUILD_ROOT/lib64/
|
||||
cp -ar ./%{target}/lib/librte_bus_pci.so* $RPM_BUILD_ROOT/lib64/
|
||||
cp -ar ./%{target}/lib/librte_kvargs.so* $RPM_BUILD_ROOT/lib64/
|
||||
cp -ar ./%{target}/lib/librte_acl.so* $RPM_BUILD_ROOT/lib64/
|
||||
cp -ar ./%{target}/lib/librte_ethdev.so* $RPM_BUILD_ROOT/lib64/
|
||||
cp -ar ./%{target}/lib/librte_mbuf.so* $RPM_BUILD_ROOT/lib64/
|
||||
cp -ar ./%{target}/lib/librte_cmdline.so* $RPM_BUILD_ROOT/lib64/
|
||||
cp -ar ./%{target}/lib/librte_net.so* $RPM_BUILD_ROOT/lib64/
|
||||
|
||||
sed -ri 's,(RTE_MACHINE=).*,\1%{machine},' %{target}/.config
|
||||
sed -ri 's,(RTE_APP_TEST=).*,\1n,' %{target}/.config
|
||||
sed -ri 's,(RTE_BUILD_SHARED_LIB=).*,\1n,' %{target}/.config
|
||||
sed -ri 's,(RTE_NEXT_ABI=).*,\1n,' %{target}/.config
|
||||
sed -ri 's,(LIBRTE_VHOST=).*,\1y,' %{target}/.config
|
||||
#sed -ri 's,(LIBRTE_PMD_PCAP=).*,\1y,' %{target}/.config
|
||||
sed -ri 's,(CONFIG_RTE_BUILD_SHARED_LIB=).*,\1n,' %{target}/.config
|
||||
make O=%{target} %{?_smp_mflags}
|
||||
#make O=%{target} doc
|
||||
|
||||
make install O=%{target} RTE_KERNELDIR=/lib/modules/${namer}/build \
|
||||
kerneldir=/lib/modules/${namer}/extra/dpdk DESTDIR=%{buildroot} \
|
||||
prefix=%{_prefix} bindir=%{_bindir} sbindir=%{_sbindir} \
|
||||
includedir=%{_includedir}/dpdk libdir=%{_libdir} \
|
||||
datadir=%{_datadir}/dpdk docdir=%{_docdir}/dpdk
|
||||
|
||||
mkdir -p $RPM_BUILD_ROOT/usr/include/%{name}-%{version}/
|
||||
ln -s /usr/share/dpdk/mk $RPM_BUILD_ROOT/usr/include/%{name}-%{version}/
|
||||
ln -s /usr/share/dpdk/%{target} $RPM_BUILD_ROOT/usr/include/%{name}-%{version}/
|
||||
|
||||
mkdir -p $RPM_BUILD_ROOT/usr/include/dpdk/
|
||||
ln -s /usr/share/dpdk/%{target} $RPM_BUILD_ROOT/usr/include/dpdk/
|
||||
|
||||
mkdir -p $RPM_BUILD_ROOT/usr/bin
|
||||
cp ./%{target}/app/dpdk-pdump $RPM_BUILD_ROOT/usr/bin
|
||||
|
||||
strip -g $RPM_BUILD_ROOT/lib/modules/${namer}/extra/dpdk/igb_uio.ko
|
||||
strip -g $RPM_BUILD_ROOT/lib/modules/${namer}/extra/dpdk/rte_kni.ko
|
||||
|
||||
%define _unpackaged_files_terminate_build 0
|
||||
|
||||
%files
|
||||
%dir %{_datadir}/dpdk
|
||||
%{_datadir}/dpdk/usertools/*.py
|
||||
%{_datadir}/dpdk/usertools/*.sh
|
||||
/lib/modules/%{kern_devel_ver}/extra/dpdk/*
|
||||
/lib64/librte*.so*
|
||||
|
||||
%files devel
|
||||
%{_includedir}/dpdk
|
||||
%{_datadir}/dpdk/mk
|
||||
%{_datadir}/dpdk/buildtools
|
||||
%{_datadir}/dpdk/%{target}
|
||||
%{_datadir}/dpdk/examples
|
||||
%{_sbindir}/*
|
||||
%{_bindir}/*
|
||||
%{_libdir}/*
|
||||
%dir /usr/include/%{name}-%{version}/
|
||||
/usr/include/%{name}-%{version}/*
|
||||
%dir /usr/include/dpdk/
|
||||
/usr/include/dpdk/*
|
||||
|
||||
%files doc
|
||||
#%doc %{_docdir}/dpdk
|
||||
|
||||
%files tools
|
||||
/usr/bin/dpdk-pdump
|
||||
|
||||
%post
|
||||
/sbin/ldconfig
|
||||
/usr/sbin/depmod
|
||||
|
||||
%postun
|
||||
/sbin/ldconfig
|
||||
/usr/sbin/depmod
|
||||
|
||||
%changelog
|
||||
Loading…
x
Reference in New Issue
Block a user