Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE
dpdk.6534
dpdk.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File dpdk.spec of Package dpdk.6534
# # spec file for package dpdk # # Copyright (c) 2016 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 machine native %define machine2 default %ifarch x86_64 %define machine native %define target x86_64-%{machine}-linuxapp-gcc %endif %ifarch %ix86 %define machine native %define target i686-%{machine}-linuxapp-gcc %endif %ifarch aarch64 %define machine2 armv8a %define target arm64-%{machine2}-linuxapp-gcc %endif %ifarch ppc64le %define machine2 power8 %define target ppc_64-%{machine2}-linuxapp-gcc %endif %bcond_without examples %bcond_without shared # Add option to build without tools %bcond_without tools Name: dpdk Version: 2.2.0 Release: 0 Summary: Set of libraries and drivers for fast packet processing License: BSD-3-Clause and GPL-2.0 and LGPL-2.1 Group: System/Libraries Url: http://dpdk.org Source: http://fast.dpdk.org/rel/dpdk-%{version}.tar.xz Patch1: 0001-enic-fix-Type-punning-and-strict-aliasing-warning.patch Patch2: 0002-examples-ip_pipeline-fix-implicit-declaration-of-fun.patch Patch3: 0003-mk-fix-external-shared-library-dependencies-of-libraries.patch Patch4: 0004-54f9e32-vhost-handle-dirty-pages-logging-request.patch Patch5: 0005-d293dac-vhost-claim-support-of-guest-announce.patch Patch6: 0006-d639996-vhost-enable-log_shmfd-protocol-feature.patch #PATCH-FIX-UPSTREAM 0007-ixgbe-fix-VLAN-filter-missing-brackets.patch Patch7: 0007-ixgbe-fix-VLAN-filter-missing-brackets.patch #PATCH-FIX-UPSTREAM 0008-app-testpmd-handle-SIGINT-and-SIGTERM.patch Patch8: 0008-app-testpmd-handle-SIGINT-and-SIGTERM.patch #PATCH-FIX-UPSTREAM 0009-bonding-copy-entire-config-structure-in-mode-4.patch Patch9: 0009-bonding-copy-entire-config-structure-in-mode-4.patch #PATCH-FIX-UPSTREAM 0010-bonding-fix-active-slaves-with-no-primary.patch Patch10: 0010-bonding-fix-active-slaves-with-no-primary.patch #PATCH-FIX-UPSTREAM 0011-bonding-do-not-ignore-multicast-in-mode-4.patch Patch11: 0011-bonding-do-not-ignore-multicast-in-mode-4.patch #PATCH-FIX-UPSTREAM 0012-bonding-do-not-activate-slave-twice.patch Patch12: 0012-bonding-do-not-activate-slave-twice.patch #PATCH-FIX-UPSTREAM 0013-bonding-fix-crash-when-no-slave-device.patch Patch13: 0013-bonding-fix-crash-when-no-slave-device.patch #PATCH-FIX-UPSTREAM 0014-bonding-fix-detach-of-bonded-device.patch Patch14: 0014-bonding-fix-detach-of-bonded-device.patch #PATCH-FIX-UPSTREAM 0015-bonding-fix-detach-of-slave-devices.patch Patch15: 0015-bonding-fix-detach-of-slave-devices.patch #PATCH-FIX-UPSTREAM 0016-eal-linux-support-built-in-kernel-modules.patch Patch16: 0016-eal-linux-support-built-in-kernel-modules.patch #PATCH-FIX-UPSTREAM 0017-examples-l3fwd-handle-SIGINT-and-SIGTERM.patch Patch17: 0017-examples-l3fwd-handle-SIGINT-and-SIGTERM.patch #PATCH-FIX-UPSTREAM 0018-fm10k-fix-VLAN-flag-in-scattered-Rx.patch Patch18: 0018-fm10k-fix-VLAN-flag-in-scattered-Rx.patch #PATCH-FIX-UPSTREAM 0019-i40e-base-fix-driver-load-failure.patch Patch19: 0019-i40e-base-fix-driver-load-failure.patch #PATCH-FIX-UPSTREAM 0020-i40e-base-fix-missing-check-for-stopped-admin-queue.patch Patch20: 0020-i40e-base-fix-missing-check-for-stopped-admin-queue.patch #PATCH-FIX-UPSTREAM 0021-i40e-fix-inverted-check-for-no-refcount.patch Patch21: 0021-i40e-fix-inverted-check-for-no-refcount.patch #PATCH-FIX-UPSTREAM 0022-i40e-fix-overflow.patch Patch22: 0022-i40e-fix-overflow.patch #PATCH-FIX-UPSTREAM 0023-i40e-fix-VLAN-filtering.patch Patch23: 0023-i40e-fix-VLAN-filtering.patch #PATCH-FIX-UPSTREAM 0024-mempool-fix-leak-when-creation-fails.patch Patch24: 0024-mempool-fix-leak-when-creation-fails.patch #PATCH-FIX-UPSTREAM 0025-pcap-fix-captured-frame-length.patch Patch25: 0025-pcap-fix-captured-frame-length.patch #PATCH-FIX-UPSTREAM 0026-port-fix-crash-for-ethdev-writer-nodrop.patch Patch26: 0026-port-fix-crash-for-ethdev-writer-nodrop.patch #PATCH-FIX-UPSTREAM 0027-port-fix-crash-for-ring-writer-nodrop.patch Patch27: 0027-port-fix-crash-for-ring-writer-nodrop.patch #PATCH-FIX-UPSTREAM 0028-tools-fix-unbinding-failure-handling.patch Patch28: 0028-tools-fix-unbinding-failure-handling.patch #PATCH-FIX-UPSTREAM 0029-tools-support-Python-3-in-bind-script.patch Patch29: 0029-tools-support-Python-3-in-bind-script.patch #PATCH-FIX-UPSTREAM 0030-tools-support-binding-to-built-in-kernel-modules.patch Patch30: 0030-tools-support-binding-to-built-in-kernel-modules.patch #PATCH-FIX-UPSTREAM 0031-vhost-fix-leak-of-fds-and-mmaps.patch Patch31: 0031-vhost-fix-leak-of-fds-and-mmaps.patch #PATCH-FIX-UPSTREAM 0032-virtio-fix-crash-in-statistics-functions.patch Patch32: 0032-virtio-fix-crash-in-statistics-functions.patch #PATCH-FIX-UPSTREAM 0033-virtio-fix-descriptors-pointing-to-the-same-buffer.patch Patch33: 0033-virtio-fix-descriptors-pointing-to-the-same-buffer.patch #PATCH-FIX-UPSTREAM 0034-virtio-fix-restart.patch Patch34: 0034-virtio-fix-restart.patch #PATCH-FIX-OPENSUSE 0035-PAGE_SIZE-constant-is-not-defined-on-ARM-since-multi Patch35: 0035-PAGE_SIZE-constant-is-not-defined-on-ARM-since-multi.patch #PATCH-FIX-UPSTREAM 0036-examples-fix-build-dependencies Patch36: 0036-examples-fix-build-dependencies.patch #PATCH-FIX-UPSTREAM 0037-examples-ethtool-fix-build Patch37: 0037-examples-ethtool-fix-build.patch #PATCH-FIX-SLE 0038-aarch_drop_feature_crc Patch38: 0038-aarch_drop_feature_crc.patch BuildRequires: doxygen BuildRequires: fdupes BuildRequires: libnuma-devel BuildRequires: libpcap-devel BuildRequires: zlib-devel ExclusiveArch: aarch64 x86_64 %ix86 ppc64le %description The Data Plane Development Kit is a set of libraries and drivers for fast packet processing in the user space. %package devel Summary: Data Plane Development Kit development files Group: Development/Libraries/C and C++ Requires: %{name} = %{version} %description devel This package contains the headers and other files needed for developing applications with the Data Plane Development Kit. %package doc Summary: Data Plane Development Kit API documentation Group: System/Libraries BuildArch: noarch %description doc API programming documentation for the Data Plane Development Kit. %if %{with tools} %package tools Summary: Tools for setting up Data Plane Development Kit environment Group: System/Libraries Requires: %{name} = %{version} Requires: findutils Requires: iproute Requires: kmod Requires: pciutils %description tools This package contains tools for setting up Data Plane Development Kit environment %endif %if %{with examples} %package examples Summary: Data Plane Development Kit example applications Group: System/Libraries BuildRequires: libvirt-devel %description examples Example applications utilizing the Data Plane Development Kit, such as L2 and L3 forwarding. %endif %define sdkdir %{_datadir}/%{name} %define docdir %{_docdir}/%{name} %define incdir %{_includedir}/%{name} %define pmddir %{_libdir}/%{name}-pmds %prep %setup -q %patch1 -p1 -z .enic %patch2 -p1 -z .examples %patch3 -p1 -z .dtneeded %patch4 -p1 %patch5 -p1 %patch6 -p1 %patch7 -p1 %patch8 -p1 %patch9 -p1 %patch10 -p1 %patch11 -p1 %patch12 -p1 %patch13 -p1 %patch14 -p1 %patch15 -p1 %patch16 -p1 %patch17 -p1 %patch18 -p1 %patch19 -p1 %patch20 -p1 %patch21 -p1 %patch22 -p1 %patch23 -p1 %patch24 -p1 %patch25 -p1 %patch26 -p1 %patch27 -p1 %patch28 -p1 %patch29 -p1 %patch30 -p1 %patch31 -p1 %patch32 -p1 %patch33 -p1 %patch34 -p1 %patch35 -p1 %patch36 -p1 %patch37 -p1 %patch38 -p1 %build # set up a method for modifying the resulting .config file function setconf() { if grep -q ^$1= %{target}/.config; then sed -i "s:^$1=.*$:$1=$2:g" %{target}/.config else echo $1=$2 >> %{target}/.config fi } # In case dpdk-devel is installed, we should ignore its hints about the SDK directories unset RTE_SDK RTE_INCLUDE RTE_TARGET # For the release, '-Wno-error=array-bounds' is done to prevent a spurious error # generated by gcc 5.X against the 2.1 branch export EXTRA_CFLAGS="%{optflags} -Wformat -fPIC -Wno-error=array-bounds" # DPDK defaults to using builder-specific compiler flags. However, # the config has been changed by specifying CONFIG_RTE_MACHINE=default # in order to build for a more generic host. NOTE: It is possible that # the compiler flags used still won't work for all Fedora-supported # machines, but runtime checks in DPDK will catch those situations. make V=1 O=%{target} T=%{target} %{?_smp_mflags} config setconf CONFIG_RTE_MACHINE '"%{machine2}"' # Disable experimental features setconf CONFIG_RTE_NEXT_ABI n setconf CONFIG_RTE_LIBRTE_CRYPTODEV n setconf CONFIG_RTE_LIBRTE_MBUF_OFFLOAD n # Enable automatic driver loading from this path setconf CONFIG_RTE_EAL_PMD_PATH '"%{pmddir}"' setconf CONFIG_RTE_LIBRTE_BNX2X_PMD y setconf CONFIG_RTE_LIBRTE_PMD_PCAP y setconf CONFIG_RTE_LIBRTE_VHOST_NUMA y setconf CONFIG_RTE_EAL_IGB_UIO n setconf CONFIG_RTE_LIBRTE_KNI n setconf CONFIG_RTE_KNI_KMOD n setconf CONFIG_RTE_KNI_PREEMPT_DEFAULT n %if %{with shared} setconf CONFIG_RTE_BUILD_SHARED_LIB y %endif %ifarch aarch64 ppc64le setconf CONFIG_RTE_LIBRTE_DISTRIBUTOR n %endif %ifarch ppc64le setconf CONFIG_RTE_LIBRTE_PMD_RING n %endif make V=1 O=%{target} %{?_smp_mflags} make V=1 O=%{target} %{?_smp_mflags} doc-api-html %if %{with examples} make V=1 O=%{target}/examples T=%{target} %{?_smp_mflags} examples %endif %install # In case dpdk-devel is installed unset RTE_SDK RTE_INCLUDE RTE_TARGET %make_install O=%{target} prefix=%{_usr} libdir=%{_libdir} %if ! %{with tools} rm -rf %{buildroot}%{sdkdir}/tools rm -rf %{buildroot}%{_sbindir}/dpdk_nic_bind %endif rm -f %{buildroot}%{sdkdir}/tools/setup.sh %if %{with examples} find %{target}/examples/ -name "*.map" | xargs rm -f for f in %{target}/examples/*/%{target}/app/*; do bn=`basename ${f}` cp -p ${f} %{buildroot}%{_bindir}/dpdk_example_${bn} done %endif # Create a driver directory with symlinks to all pmds mkdir -p %{buildroot}/%{pmddir} for f in %{buildroot}/%{_libdir}/*_pmd_*.so.*; do bn=$(basename ${f}) ln -s ../${bn} %{buildroot}%{pmddir}/${bn} done # Setup RTE_SDK environment as expected by apps etc mkdir -p %{buildroot}/%{_sysconfdir}/profile.d cat << EOF > %{buildroot}/%{_sysconfdir}/profile.d/dpdk-sdk-%{_arch}.sh if [ -z "\${RTE_SDK}" ]; then export RTE_SDK="%{sdkdir}" export RTE_TARGET="%{target}" export RTE_INCLUDE="%{incdir}" fi EOF cat << EOF > %{buildroot}/%{_sysconfdir}/profile.d/dpdk-sdk-%{_arch}.csh if ( ! \$RTE_SDK ) then setenv RTE_SDK "%{sdkdir}" setenv RTE_TARGET "%{target}" setenv RTE_INCLUDE "%{incdir}" endif EOF # Fixup target machine mismatch sed -i -e 's:-%{machine}-:-%{machine2}-:g' %{buildroot}/%{_sysconfdir}/profile.d/dpdk-sdk* # Upstream has an option to build a combined library but it's bloatware which # wont work at all when library versions start moving, replace it with a # linker script which avoids these issues. Linking against the script during # build resolves into links to the actual used libraries which is just fine # for us, so this combined library is a build-time only construct now. %if %{with shared} libext=so %else libext=a %endif comblib=libdpdk.${libext} echo "GROUP (" > ${comblib} find %{buildroot}/%{_libdir}/ -name "*.${libext}" |\ sed -e "s:^%{buildroot}/: :g" >> ${comblib} echo ")" >> ${comblib} install -m 644 ${comblib} %{buildroot}/%{_libdir}/${comblib} #doc mkdir %{buildroot}%{_docdir}/ mv %{buildroot}%{_datadir}/doc/dpdk %{buildroot}%{_docdir}/ # Remove unwanted binaries "-f" so if the file # doesn't exist --> don't complain! rm -f %{buildroot}%{_bindir}/cmdline_test rm -f %{buildroot}%{_bindir}/test rm -f %{buildroot}%{_bindir}/testpipeline rm -f %{buildroot}%{_bindir}/testacl rm -f %{buildroot}%{_bindir}/*.map # Remove duplicates %fdupes %{buildroot}/%{_prefix} %post devel -p /sbin/ldconfig %postun devel -p /sbin/ldconfig %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %files %defattr(-,root,root) # BSD %{_bindir}/testpmd %{_bindir}/dpdk_proc_info %if %{with shared} %dir %{_libdir}/dpdk-pmds %{_libdir}/*.so.* %{pmddir}/ %endif %files doc %defattr(-,root,root) #BSD %docdir %doc LICENSE.GPL LICENSE.LGPL %files devel %defattr(-,root,root) #BSD %{incdir}/ %{sdkdir} %if %{with tools} %exclude %{sdkdir}/tools/ %endif %if %{with examples} %exclude %{sdkdir}/examples/ %endif %{_sysconfdir}/profile.d/dpdk-sdk-*.* %if ! %{with shared} %{_libdir}/*.a %else %{_libdir}/*.so %endif %if %{with tools} %files tools %defattr(-,root,root) %{sdkdir}/tools/ %{_sbindir}/dpdk_nic_bind %endif %if %{with examples} %files examples %defattr(-,root,root) %{_bindir}/dpdk_example_* %doc %{sdkdir}/examples %endif %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor