DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH v2 0/4] recipes for RPM packages
@ 2014-04-30  0:46 Thomas Monjalon
  2014-04-30  0:46 ` [dpdk-dev] [PATCH v2 1/4] pkg: add recipe for RPM Thomas Monjalon
                   ` (5 more replies)
  0 siblings, 6 replies; 13+ messages in thread
From: Thomas Monjalon @ 2014-04-30  0:46 UTC (permalink / raw)
  To: dev

The goal of this patch serie is to be able to package DPDK
for RPM-based distributions.

The file naming currently doesn't allow to install different DPDK versions.
But the packaging naming should be ready to manage different DPDK versions
having different API/ABI for different applications:
	- dpdk-core has full version in its name to manage API breaking
	- extensions have a number as name suffix to manage PMD API breaking.
When API/ABI will be stable, package names could be simpler.

I suggest to add these .spec files as a starting point for integration
in Linux distributions.

Changes since v1:
	- name of .spec file match package name
	- version in package name
	- no static library
	- ldconfig/depmod in scriplets

Thanks for your comments/reviews.
-- 
Thomas

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [dpdk-dev] [PATCH v2 1/4] pkg: add recipe for RPM
  2014-04-30  0:46 [dpdk-dev] [PATCH v2 0/4] recipes for RPM packages Thomas Monjalon
@ 2014-04-30  0:46 ` Thomas Monjalon
  2014-04-30  0:46 ` [dpdk-dev] [memnic PATCH v2 2/4] " Thomas Monjalon
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 13+ messages in thread
From: Thomas Monjalon @ 2014-04-30  0:46 UTC (permalink / raw)
  To: dev

Packages can be built with:
	RPM_BUILD_NCPUS=8 rpmbuild -ta dpdk-1.6.0r1.tar.gz

There are packages for runtime and development.
Once devel package is installed, it can be used like this:
	make -C /usr/share/dpdk/examples/helloworld RTE_SDK=/usr/share/dpdk

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
---
 pkg/dpdk-core.spec | 129 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 129 insertions(+)
 create mode 100644 pkg/dpdk-core.spec

diff --git a/pkg/dpdk-core.spec b/pkg/dpdk-core.spec
new file mode 100644
index 0000000..77d6c76
--- /dev/null
+++ b/pkg/dpdk-core.spec
@@ -0,0 +1,129 @@
+# Copyright 2014 6WIND S.A.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# - Redistributions of source code must retain the above copyright
+#   notice, this list of conditions and the following disclaimer.
+#
+# - Redistributions in binary form must reproduce the above copyright
+#   notice, this list of conditions and the following disclaimer in
+#   the documentation and/or other materials provided with the
+#   distribution.
+#
+# - Neither the name of 6WIND S.A. nor the names of its
+#   contributors may be used to endorse or promote products derived
+#   from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+# OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# name includes full version because there is no ABI stability yet
+Name: dpdk-core-1.6.0
+Version: r1
+%define fullversion 1.6.0%{version}
+Release: 1
+Packager: packaging@6wind.com
+URL: http://dpdk.org
+Source: http://dpdk.org/browse/dpdk/snapshot/dpdk-%{fullversion}.tar.gz
+
+Summary: Intel(r) Data Plane Development Kit core
+Group: System Environment/Libraries
+License: BSD and LGPLv2 and GPLv2
+
+ExclusiveArch: i686, x86_64
+%define target %{_arch}-default-linuxapp-gcc
+%define machine default
+
+BuildRequires: kernel-devel, kernel-headers, doxygen
+
+%description
+Intel(r) DPDK core includes kernel modules, core libraries and tools.
+testpmd application allows to test fast packet processing environments
+on x86 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: Intel(r) Data Plane Development Kit core for development
+%description devel
+Intel(r) DPDK core-devel is a set of makefiles, headers, examples and documentation
+for fast packet processing on x86 platforms.
+More libraries are available as extensions in other packages.
+
+%define destdir %{buildroot}%{_prefix}
+%define moddir  /lib/modules/%(uname -r)/extra
+%define datadir %{_datadir}/dpdk
+%define docdir  %{_docdir}/dpdk
+
+%prep
+%setup -qn dpdk-%{fullversion}
+
+%build
+make O=%{target} T=%{target} config
+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=).*,\1y,' %{target}/.config
+make O=%{target} %{?_smp_mflags}
+make O=%{target} doc
+
+%install
+rm -rf %{buildroot}
+make           O=%{target}     DESTDIR=%{destdir}
+mkdir -p                               %{buildroot}%{moddir}
+mv    %{destdir}/%{target}/kmod/*.ko   %{buildroot}%{moddir}
+rmdir %{destdir}/%{target}/kmod
+mkdir -p                               %{buildroot}%{_sbindir}
+ln -s %{datadir}/tools/igb_uio_bind.py %{buildroot}%{_sbindir}/igb_uio_bind
+mkdir -p                               %{buildroot}%{_bindir}
+mv    %{destdir}/%{target}/app/testpmd %{buildroot}%{_bindir}
+rmdir %{destdir}/%{target}/app
+mv    %{destdir}/%{target}/include     %{buildroot}%{_includedir}
+mv    %{destdir}/%{target}/lib         %{buildroot}%{_libdir}
+mkdir -p                               %{buildroot}%{docdir}
+mv    %{destdir}/%{target}/doc/*       %{buildroot}%{docdir}
+rmdir %{destdir}/%{target}/doc
+mkdir -p                               %{buildroot}%{datadir}
+mv    %{destdir}/%{target}/.config     %{buildroot}%{datadir}/config
+mv    %{destdir}/%{target}             %{buildroot}%{datadir}
+mv    %{destdir}/mk                    %{buildroot}%{datadir}
+cp -a            examples              %{buildroot}%{datadir}
+cp -a            tools                 %{buildroot}%{datadir}
+ln -s            %{datadir}/config     %{buildroot}%{datadir}/%{target}/.config
+ln -s            %{_includedir}        %{buildroot}%{datadir}/%{target}/include
+ln -s            %{_libdir}            %{buildroot}%{datadir}/%{target}/lib
+
+%files
+%dir %{datadir}
+%{datadir}/config
+%{datadir}/tools
+%{moddir}/*
+%{_sbindir}/*
+%{_bindir}/*
+%{_libdir}/*
+
+%files devel
+%{_includedir}/*
+%{datadir}/mk
+%{datadir}/%{target}
+%{datadir}/examples
+%doc %{docdir}
+
+%post
+/sbin/ldconfig
+/sbin/depmod
+
+%postun
+/sbin/ldconfig
+/sbin/depmod
-- 
1.9.2

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [dpdk-dev] [memnic PATCH v2 2/4] pkg: add recipe for RPM
  2014-04-30  0:46 [dpdk-dev] [PATCH v2 0/4] recipes for RPM packages Thomas Monjalon
  2014-04-30  0:46 ` [dpdk-dev] [PATCH v2 1/4] pkg: add recipe for RPM Thomas Monjalon
@ 2014-04-30  0:46 ` Thomas Monjalon
  2014-04-30  0:46 ` [dpdk-dev] [vmxnet3-usermap PATCH v2 3/4] " Thomas Monjalon
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 13+ messages in thread
From: Thomas Monjalon @ 2014-04-30  0:46 UTC (permalink / raw)
  To: dev

Packages can be built with:
	rpmbuild -ta memnic-1.0.tar.gz

There are packages for kernel module and PMD versions.

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
---
 pkg/dpdk-memnic.spec | 107 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 107 insertions(+)
 create mode 100644 pkg/dpdk-memnic.spec

diff --git a/pkg/dpdk-memnic.spec b/pkg/dpdk-memnic.spec
new file mode 100644
index 0000000..656411f
--- /dev/null
+++ b/pkg/dpdk-memnic.spec
@@ -0,0 +1,107 @@
+# Copyright 2014 6WIND S.A.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# - Redistributions of source code must retain the above copyright
+#   notice, this list of conditions and the following disclaimer.
+#
+# - Redistributions in binary form must reproduce the above copyright
+#   notice, this list of conditions and the following disclaimer in
+#   the documentation and/or other materials provided with the
+#   distribution.
+#
+# - Neither the name of 6WIND S.A. nor the names of its
+#   contributors may be used to endorse or promote products derived
+#   from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+# OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Name: memnic
+Version: 1.0
+Release: 1
+Packager: packaging@6wind.com
+URL: http://dpdk.org/doc/memnic-pmd
+Source: http://dpdk.org/browse/memnic/snapshot/%{name}-%{version}.tar.gz
+
+Summary: MEMNIC
+Group: System Environment/Libraries
+License: BSD and GPLv2
+
+ExclusiveArch: i686, x86_64
+%define target %{_arch}-default-linuxapp-gcc
+
+%description
+Dummy main package. Make only subpackages.
+
+%package -n dpdk-memnic-1
+BuildRequires: dpdk-core-1.6.0-devel
+Requires: dpdk-core-1.6.0
+Summary: MEMNIC driver for Intel(r) Data Plane Development Kit
+%description -n dpdk-memnic-1
+MEMNIC is a paravirtualized network interface (PMD) based
+on memory copy and introduced by NEC.
+It has similar concepts to virtio-net, but does not use the vring framework.
+Instead, it is based on a queue of mailboxed packets which are copied
+in IVSHMEM between the host and the guest.
+
+%define datadir   %{_datadir}/dpdk
+%define docdir    %{_docdir}/dpdk
+
+%package kmod
+BuildRequires: kernel-devel
+Summary: MEMNIC kernel driver
+%description kmod
+MEMNIC is a paravirtualized network interface (netdevice driver) based
+on memory copy and introduced by NEC.
+It has similar concepts to virtio-net, but does not use the vring framework.
+Instead, it is based on a queue of mailboxed packets which are copied
+in IVSHMEM between the host and the guest.
+
+%define modroot   /lib/modules/%(uname -r)
+%define kerneldir %{modroot}/build
+%define moddir    %{modroot}/extra
+
+%prep
+%setup -qn %{name}-%{version}
+
+%build
+make %{?_smp_mflags} -C pmd RTE_INCLUDE=%{datadir}/%{target}/include
+make %{?_smp_mflags} -C %{kerneldir} M=$(pwd)/linux
+
+%install
+rm -rf %{buildroot}
+make install -C pmd DESTDIR=%{buildroot} libdir=%{_libdir} docdir=%{docdir}
+make modules_install -C %{kerneldir} M=$(pwd)/linux INSTALL_MOD_PATH=%{buildroot}
+rm -f %{buildroot}%{modroot}/modules.*
+
+%files -n dpdk-memnic-1
+%{_libdir}/*
+%doc %{docdir}
+
+%files kmod
+%{moddir}/*
+
+%post dpdk-memnic-1
+/sbin/ldconfig
+
+%postun dpdk-memnic-1
+/sbin/ldconfig
+
+%post kmod
+/sbin/depmod
+
+%postun kmod
+/sbin/depmod
-- 
1.9.2

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [dpdk-dev] [vmxnet3-usermap PATCH v2 3/4] pkg: add recipe for RPM
  2014-04-30  0:46 [dpdk-dev] [PATCH v2 0/4] recipes for RPM packages Thomas Monjalon
  2014-04-30  0:46 ` [dpdk-dev] [PATCH v2 1/4] pkg: add recipe for RPM Thomas Monjalon
  2014-04-30  0:46 ` [dpdk-dev] [memnic PATCH v2 2/4] " Thomas Monjalon
@ 2014-04-30  0:46 ` Thomas Monjalon
  2014-04-30  0:46 ` [dpdk-dev] [virtio-net-pmd PATCH v2 4/4] " Thomas Monjalon
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 13+ messages in thread
From: Thomas Monjalon @ 2014-04-30  0:46 UTC (permalink / raw)
  To: dev

Package can be built with:
	rpmbuild -ta vmxnet3-usermap-1.1.tar.gz

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
Acked-by: Chris Wright <chrisw@redhat.com>
---
 pkg/dpdk-vmxnet3.spec | 84 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 84 insertions(+)
 create mode 100644 pkg/dpdk-vmxnet3.spec

diff --git a/pkg/dpdk-vmxnet3.spec b/pkg/dpdk-vmxnet3.spec
new file mode 100644
index 0000000..e94fff8
--- /dev/null
+++ b/pkg/dpdk-vmxnet3.spec
@@ -0,0 +1,84 @@
+# Copyright 2014 6WIND S.A.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# - Redistributions of source code must retain the above copyright
+#   notice, this list of conditions and the following disclaimer.
+#
+# - Redistributions in binary form must reproduce the above copyright
+#   notice, this list of conditions and the following disclaimer in
+#   the documentation and/or other materials provided with the
+#   distribution.
+#
+# - Neither the name of 6WIND S.A. nor the names of its
+#   contributors may be used to endorse or promote products derived
+#   from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+# OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Name: dpdk-vmxnet3-1
+Version: 1.1
+Release: 1
+Packager: packaging@6wind.com
+URL: http://dpdk.org/doc/vmxnet3-usermap
+Source: http://dpdk.org/browse/vmxnet3-usermap/snapshot/vmxnet3-usermap-%{version}.tar.gz
+
+Summary: vmxnet3 driver for Intel(r) Data Plane Development Kit
+Group: System Environment/Libraries
+License: BSD and GPLv2
+
+ExclusiveArch: i686, x86_64
+%define target %{_arch}-default-linuxapp-gcc
+
+BuildRequires: dpdk-core-1.6.0-devel, kernel-devel, kernel-headers
+Requires: dpdk-core-1.6.0
+
+%description
+vmxnet3 is a paravirtualized network interface initially used in VMware ESXi,
+and has been introduced as PMD by 6WIND. It avoids security risk by not using
+UIO framework.
+
+%define datadir   %{_datadir}/dpdk
+%define docdir    %{_docdir}/dpdk
+%define modroot   /lib/modules/%(uname -r)
+%define kerneldir %{modroot}/build
+%define moddir    %{modroot}/extra
+
+%prep
+%setup -qn vmxnet3-usermap-%{version}
+
+%build
+make %{?_smp_mflags} -C pmd RTE_INCLUDE=%{datadir}/%{target}/include
+make %{?_smp_mflags} -C kmod HEADER_DIR=%{kerneldir}/include
+
+%install
+rm -rf %{buildroot}
+make install -C pmd DESTDIR=%{buildroot} libdir=%{_libdir} docdir=%{docdir}
+make modules_install -C %{kerneldir} M=$(pwd)/kmod INSTALL_MOD_PATH=%{buildroot}
+rm -f %{buildroot}%{modroot}/modules.*
+
+%files
+%{moddir}/*
+%{_libdir}/*
+%doc %{docdir}
+
+%post
+/sbin/ldconfig
+/sbin/depmod
+
+%postun
+/sbin/ldconfig
+/sbin/depmod
-- 
1.9.2

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [dpdk-dev] [virtio-net-pmd PATCH v2 4/4] pkg: add recipe for RPM
  2014-04-30  0:46 [dpdk-dev] [PATCH v2 0/4] recipes for RPM packages Thomas Monjalon
                   ` (2 preceding siblings ...)
  2014-04-30  0:46 ` [dpdk-dev] [vmxnet3-usermap PATCH v2 3/4] " Thomas Monjalon
@ 2014-04-30  0:46 ` Thomas Monjalon
  2014-04-30 10:52 ` [dpdk-dev] [PATCH v2 0/4] recipes for RPM packages Neil Horman
  2014-05-01 13:14 ` Neil Horman
  5 siblings, 0 replies; 13+ messages in thread
From: Thomas Monjalon @ 2014-04-30  0:46 UTC (permalink / raw)
  To: dev

Package can be built with:
	rpmbuild -ta virtio-net-pmd-1.1.tar.gz

Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
---
 pkg/dpdk-virtio.spec | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 73 insertions(+)
 create mode 100644 pkg/dpdk-virtio.spec

diff --git a/pkg/dpdk-virtio.spec b/pkg/dpdk-virtio.spec
new file mode 100644
index 0000000..97cd386
--- /dev/null
+++ b/pkg/dpdk-virtio.spec
@@ -0,0 +1,73 @@
+# Copyright 2014 6WIND S.A.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# - Redistributions of source code must retain the above copyright
+#   notice, this list of conditions and the following disclaimer.
+#
+# - Redistributions in binary form must reproduce the above copyright
+#   notice, this list of conditions and the following disclaimer in
+#   the documentation and/or other materials provided with the
+#   distribution.
+#
+# - Neither the name of 6WIND S.A. nor the names of its
+#   contributors may be used to endorse or promote products derived
+#   from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
+# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+# OF THE POSSIBILITY OF SUCH DAMAGE.
+
+Name: dpdk-virtio-1
+Version: 1.1
+Release: 1
+Packager: packaging@6wind.com
+URL: http://dpdk.org/doc/virtio-net-pmd
+Source: http://dpdk.org/browse/virtio-net-pmd/snapshot/virtio-net-pmd-%{version}.tar.gz
+
+Summary: virtio-net driver for Intel(r) Data Plane Development Kit
+Group: System Environment/Libraries
+License: BSD
+
+ExclusiveArch: i686, x86_64
+%define target %{_arch}-default-linuxapp-gcc
+
+BuildRequires: dpdk-core-1.6.0-devel, kernel-headers
+Requires: dpdk-core-1.6.0
+
+%description
+virtio-net is a paravirtualized network interface based on virtio framework,
+and has been introduced as PMD by 6WIND. It avoids security risk by not using
+UIO framework.
+
+%define datadir %{_datadir}/dpdk
+%define docdir  %{_docdir}/dpdk
+
+%prep
+%setup -qn virtio-net-pmd-%{version}
+
+%build
+make %{?_smp_mflags} RTE_INCLUDE=%{datadir}/%{target}/include
+
+%install
+rm -rf %{buildroot}
+make install DESTDIR=%{buildroot} libdir=%{_libdir} docdir=%{docdir}
+
+%files
+%{_libdir}/*
+%doc %{docdir}
+
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
-- 
1.9.2

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [dpdk-dev] [PATCH v2 0/4] recipes for RPM packages
  2014-04-30  0:46 [dpdk-dev] [PATCH v2 0/4] recipes for RPM packages Thomas Monjalon
                   ` (3 preceding siblings ...)
  2014-04-30  0:46 ` [dpdk-dev] [virtio-net-pmd PATCH v2 4/4] " Thomas Monjalon
@ 2014-04-30 10:52 ` Neil Horman
  2014-04-30 11:09   ` Thomas Monjalon
  2014-05-01 13:14 ` Neil Horman
  5 siblings, 1 reply; 13+ messages in thread
From: Neil Horman @ 2014-04-30 10:52 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev

On Wed, Apr 30, 2014 at 02:46:41AM +0200, Thomas Monjalon wrote:
> The goal of this patch serie is to be able to package DPDK
> for RPM-based distributions.
> 
> The file naming currently doesn't allow to install different DPDK versions.
> But the packaging naming should be ready to manage different DPDK versions
> having different API/ABI for different applications:
> 	- dpdk-core has full version in its name to manage API breaking
> 	- extensions have a number as name suffix to manage PMD API breaking.
> When API/ABI will be stable, package names could be simpler.
> 
> I suggest to add these .spec files as a starting point for integration
> in Linux distributions.
> 
> Changes since v1:
> 	- name of .spec file match package name
> 	- version in package name
> 	- no static library
> 	- ldconfig/depmod in scriplets
> 
> Thanks for your comments/reviews.
> -- 
> Thomas
> 
You should merge these into a single spec file so that you only have to build
once.  That also cleans up the need to adjust the version information in the
spec file once, and build packages all get the same versioning.

Neil

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [dpdk-dev] [PATCH v2 0/4] recipes for RPM packages
  2014-04-30 10:52 ` [dpdk-dev] [PATCH v2 0/4] recipes for RPM packages Neil Horman
@ 2014-04-30 11:09   ` Thomas Monjalon
  2014-04-30 15:22     ` Neil Horman
  0 siblings, 1 reply; 13+ messages in thread
From: Thomas Monjalon @ 2014-04-30 11:09 UTC (permalink / raw)
  To: Neil Horman; +Cc: dev

2014-04-30 06:52, Neil Horman:
> On Wed, Apr 30, 2014 at 02:46:41AM +0200, Thomas Monjalon wrote:
> > The goal of this patch serie is to be able to package DPDK
> > for RPM-based distributions.
> 
> You should merge these into a single spec file so that you only have to
> build once.  That also cleans up the need to adjust the version information
> in the spec file once, and build packages all get the same versioning.

The 4 spec files are used to build 4 different git trees with their own 
versioning:
	http://dpdk.org/browse
So I think it's saner to keep them in their repository.

-- 
Thomas

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [dpdk-dev] [PATCH v2 0/4] recipes for RPM packages
  2014-04-30 11:09   ` Thomas Monjalon
@ 2014-04-30 15:22     ` Neil Horman
  2014-05-01  6:53       ` Thomas Monjalon
  0 siblings, 1 reply; 13+ messages in thread
From: Neil Horman @ 2014-04-30 15:22 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev

On Wed, Apr 30, 2014 at 01:09:38PM +0200, Thomas Monjalon wrote:
> 2014-04-30 06:52, Neil Horman:
> > On Wed, Apr 30, 2014 at 02:46:41AM +0200, Thomas Monjalon wrote:
> > > The goal of this patch serie is to be able to package DPDK
> > > for RPM-based distributions.
> > 
> > You should merge these into a single spec file so that you only have to
> > build once.  That also cleans up the need to adjust the version information
> > in the spec file once, and build packages all get the same versioning.
> 
> The 4 spec files are used to build 4 different git trees with their own 
> versioning:
> 	http://dpdk.org/browse
> So I think it's saner to keep them in their repository.
> 
Ah, I thought these were the pmds that you were building that exist in
dpdk/lib/librte_<vmxnet3|virtio>, etc.

Yeah, if they're separate git trees, they can be separate specs.  That said
though, it strongly begs the question as to why you are keeping open source pmds
outside of the dpdk library?  That really doesn't make much sense,  whats
preventing that integration (followed by the integration of the spec files)?

Neil

> -- 
> Thomas
> 

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [dpdk-dev] [PATCH v2 0/4] recipes for RPM packages
  2014-04-30 15:22     ` Neil Horman
@ 2014-05-01  6:53       ` Thomas Monjalon
  2014-05-01 10:28         ` Neil Horman
  0 siblings, 1 reply; 13+ messages in thread
From: Thomas Monjalon @ 2014-05-01  6:53 UTC (permalink / raw)
  To: Neil Horman; +Cc: dev

2014-04-30 11:22, Neil Horman:
> On Wed, Apr 30, 2014 at 01:09:38PM +0200, Thomas Monjalon wrote:
> > The 4 spec files are used to build 4 different git trees with their own
> > versioning:
> > 	http://dpdk.org/browse
> > 
> > So I think it's saner to keep them in their repository.
[...]
> 
> Yeah, if they're separate git trees, they can be separate specs.  That said
> though, it strongly begs the question as to why you are keeping open source
> pmds outside of the dpdk library?  That really doesn't make much sense, 
> whats preventing that integration (followed by the integration of the spec
> files)?

These extensions have their own versioning.
They include PMD but also kernel modules (memnic and vmxnet3-usermap).
In case of memnic, the kernel module is an alternative to DPDK PMD. So there 
is no good reason to integrate it in DPDK. And it's better to host both 
drivers together in order to keep coherency and share some resources.
Extensions can also be a place to host some test applications related to its 
PMD.

If you see DPDK as a framework, it's really logical to have repositories 
hosting some projects which are (partly) using the framework.

-- 
Thomas

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [dpdk-dev] [PATCH v2 0/4] recipes for RPM packages
  2014-05-01  6:53       ` Thomas Monjalon
@ 2014-05-01 10:28         ` Neil Horman
  2014-05-01 15:13           ` Thomas Monjalon
  0 siblings, 1 reply; 13+ messages in thread
From: Neil Horman @ 2014-05-01 10:28 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev

On Thu, May 01, 2014 at 08:53:02AM +0200, Thomas Monjalon wrote:
> 2014-04-30 11:22, Neil Horman:
> > On Wed, Apr 30, 2014 at 01:09:38PM +0200, Thomas Monjalon wrote:
> > > The 4 spec files are used to build 4 different git trees with their own
> > > versioning:
> > > 	http://dpdk.org/browse
> > > 
> > > So I think it's saner to keep them in their repository.
> [...]
> > 
> > Yeah, if they're separate git trees, they can be separate specs.  That said
> > though, it strongly begs the question as to why you are keeping open source
> > pmds outside of the dpdk library?  That really doesn't make much sense, 
> > whats preventing that integration (followed by the integration of the spec
> > files)?
> 
> These extensions have their own versioning.
That doesn't seem to be a reason to keep them separately, in fact if anything
its a reason to merge them so that versioning can be merged.

> They include PMD but also kernel modules (memnic and vmxnet3-usermap).
Thats nothing new.  The DPDK houses several PMD's that require kernel modules
which are stored as part of the DPDK source tree, and built with it

> In case of memnic, the kernel module is an alternative to DPDK PMD. So there 
> is no good reason to integrate it in DPDK.
I don't see what you're saying here.  Just because a given pmd offers an
alternate implementation to simmilar functionality isn't  reason to keep them
separate, its a reason to bring them together.  Users interested in one may well
be interested in the other, and keeping them maintained together offers the
opportunity to merge functionaty more readily.  Regardless of being maintained
in one tree or two, they still offer the user the same thing, by maintaining
them in the same tree you just offer the user a more convienient choice.

> And it's better to host both 
> drivers together in order to keep coherency and share some resources.
Thats a reason to host them in the same tree, not just co-located on the same
server.

> Extensions can also be a place to host some test applications related to its 
> PMD.
> 
Once again, you already do this for the pmd's integrated to the dpdk in the
examples directory, why not do it for the external pmds that you're also
hosting?

> If you see DPDK as a framework, it's really logical to have repositories 
> hosting some projects which are (partly) using the framework.
> 
By your reasoning, if I see DPDK as a framework, none of the PMDs should be
integrated to the dpdk core repository because none of them use every aspect of
the library.  You could certainly do this, and it would be an ok organization,
but it would be a maintenece nightmare, because to update something in the core
library that affected the pmd's would necessitate cloning N git trees for all
the supported PMDs and updating them separately. No new contributors are going
to want that headache. 

All I'm saying here is, you've got several PMD's that are meant to be used with
(and only with) the DPDK, you co-host them on the same git server, their
licensing is compatible/identical, and you're maintaining them.  You're 95% of
the way there, go the extra 5% and integrate them.  What you have currently is
effectively 3 out of tree modules for your library.  As with any out of tree
module, you'll find that, as you grow in contributors maintenece will lag on
those modules, because contibutors wont know (or won't care) to go update the
additional git trees.  It effectively marks them as second class citizens.

Neil

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [dpdk-dev] [PATCH v2 0/4] recipes for RPM packages
  2014-04-30  0:46 [dpdk-dev] [PATCH v2 0/4] recipes for RPM packages Thomas Monjalon
                   ` (4 preceding siblings ...)
  2014-04-30 10:52 ` [dpdk-dev] [PATCH v2 0/4] recipes for RPM packages Neil Horman
@ 2014-05-01 13:14 ` Neil Horman
  2014-05-01 21:15   ` Thomas Monjalon
  5 siblings, 1 reply; 13+ messages in thread
From: Neil Horman @ 2014-05-01 13:14 UTC (permalink / raw)
  To: Thomas Monjalon; +Cc: dev

On Wed, Apr 30, 2014 at 02:46:41AM +0200, Thomas Monjalon wrote:
> The goal of this patch serie is to be able to package DPDK
> for RPM-based distributions.
> 
> The file naming currently doesn't allow to install different DPDK versions.
> But the packaging naming should be ready to manage different DPDK versions
> having different API/ABI for different applications:
> 	- dpdk-core has full version in its name to manage API breaking
> 	- extensions have a number as name suffix to manage PMD API breaking.
> When API/ABI will be stable, package names could be simpler.
> 
> I suggest to add these .spec files as a starting point for integration
> in Linux distributions.
> 
> Changes since v1:
> 	- name of .spec file match package name
> 	- version in package name
> 	- no static library
> 	- ldconfig/depmod in scriplets
> 
> Thanks for your comments/reviews.
> -- 
> Thomas
> 


I understand that this is holding up the 1.6.0r2 release, as well as the 1.7.0
integration.  As such, given that my concerns, while valid IMO, aren't required
for the release:

Acked-by: Neil Horman <nhorman@tuxdriver.com>

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [dpdk-dev] [PATCH v2 0/4] recipes for RPM packages
  2014-05-01 10:28         ` Neil Horman
@ 2014-05-01 15:13           ` Thomas Monjalon
  0 siblings, 0 replies; 13+ messages in thread
From: Thomas Monjalon @ 2014-05-01 15:13 UTC (permalink / raw)
  To: Neil Horman; +Cc: dev

2014-05-01 06:28, Neil Horman:
> On Thu, May 01, 2014 at 08:53:02AM +0200, Thomas Monjalon wrote:
> > 2014-04-30 11:22, Neil Horman:
> > > On Wed, Apr 30, 2014 at 01:09:38PM +0200, Thomas Monjalon wrote:
> > > > The 4 spec files are used to build 4 different git trees with their
> > > > own
> > > > 
> > > > versioning:
> > > > 	http://dpdk.org/browse
> > > > 
> > > > So I think it's saner to keep them in their repository.
> > 
> > [...]
> > 
> > > Yeah, if they're separate git trees, they can be separate specs.  That
> > > said
> > > though, it strongly begs the question as to why you are keeping open
> > > source
> > > pmds outside of the dpdk library?  That really doesn't make much sense,
> > > whats preventing that integration (followed by the integration of the
> > > spec
> > > files)?
> > 
> > These extensions have their own versioning.
> 
> That doesn't seem to be a reason to keep them separately, in fact if
> anything its a reason to merge them so that versioning can be merged.
> 
> > They include PMD but also kernel modules (memnic and vmxnet3-usermap).
> 
> Thats nothing new.  The DPDK houses several PMD's that require kernel
> modules which are stored as part of the DPDK source tree, and built with it
> > In case of memnic, the kernel module is an alternative to DPDK PMD. So
> > there is no good reason to integrate it in DPDK.
> 
> I don't see what you're saying here.  Just because a given pmd offers an
> alternate implementation to simmilar functionality isn't  reason to keep
> them separate, its a reason to bring them together.  Users interested in
> one may well be interested in the other, and keeping them maintained
> together offers the opportunity to merge functionaty more readily. 
> Regardless of being maintained in one tree or two, they still offer the
> user the same thing, by maintaining them in the same tree you just offer
> the user a more convienient choice.
> > And it's better to host both
> > drivers together in order to keep coherency and share some resources.
> 
> Thats a reason to host them in the same tree, not just co-located on the
> same server.
> 
> > Extensions can also be a place to host some test applications related to
> > its PMD.
> 
> Once again, you already do this for the pmd's integrated to the dpdk in the
> examples directory, why not do it for the external pmds that you're also
> hosting?
> 
> > If you see DPDK as a framework, it's really logical to have repositories
> > hosting some projects which are (partly) using the framework.
> 
> By your reasoning, if I see DPDK as a framework, none of the PMDs should be
> integrated to the dpdk core repository because none of them use every aspect
> of the library.  You could certainly do this, and it would be an ok
> organization, but it would be a maintenece nightmare, because to update
> something in the core library that affected the pmd's would necessitate
> cloning N git trees for all the supported PMDs and updating them
> separately. No new contributors are going to want that headache.
> 
> All I'm saying here is, you've got several PMD's that are meant to be used
> with (and only with) the DPDK, you co-host them on the same git server,
> their licensing is compatible/identical, and you're maintaining them. 
> You're 95% of the way there, go the extra 5% and integrate them.  What you
> have currently is effectively 3 out of tree modules for your library.  As
> with any out of tree module, you'll find that, as you grow in contributors
> maintenece will lag on those modules, because contibutors wont know (or
> won't care) to go update the additional git trees.  It effectively marks
> them as second class citizens.
> 
> Neil

OK I understand you points and I suggest you to open a new thread about it in 
few weeks. At the moment, I prefer to concentrate efforts on release 1.6.0r2 
and opening version 1.7.0.

Thank you for your involvement
-- 
Thomas

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [dpdk-dev] [PATCH v2 0/4] recipes for RPM packages
  2014-05-01 13:14 ` Neil Horman
@ 2014-05-01 21:15   ` Thomas Monjalon
  0 siblings, 0 replies; 13+ messages in thread
From: Thomas Monjalon @ 2014-05-01 21:15 UTC (permalink / raw)
  To: Neil Horman; +Cc: dev

2014-05-01 09:14, Neil Horman:
> On Wed, Apr 30, 2014 at 02:46:41AM +0200, Thomas Monjalon wrote:
> > The goal of this patch serie is to be able to package DPDK
> > for RPM-based distributions.
> > 
> > The file naming currently doesn't allow to install different DPDK
> > versions.
> > But the packaging naming should be ready to manage different DPDK versions
> > 
> > having different API/ABI for different applications:
> > 	- dpdk-core has full version in its name to manage API breaking
> > 	- extensions have a number as name suffix to manage PMD API breaking.
> > 
> > When API/ABI will be stable, package names could be simpler.
> > 
> > I suggest to add these .spec files as a starting point for integration
> > in Linux distributions.
> > 
> > Changes since v1:
> > 	- name of .spec file match package name
> > 	- version in package name
> > 	- no static library
> > 	- ldconfig/depmod in scriplets
> > 
> > Thanks for your comments/reviews.
> 
> I understand that this is holding up the 1.6.0r2 release, as well as the
> 1.7.0 integration.  As such, given that my concerns, while valid IMO,
> aren't required for the release:
> 
> Acked-by: Neil Horman <nhorman@tuxdriver.com>

Applied for dpdk-1.6.0r2, memnic-1.1, vmxnet3-usermap 1.2
and virtio-net-pmd-1.2.

Thanks Neil and other RedHat people for helping in this first step.

-- 
Thomas

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2014-05-01 21:15 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-04-30  0:46 [dpdk-dev] [PATCH v2 0/4] recipes for RPM packages Thomas Monjalon
2014-04-30  0:46 ` [dpdk-dev] [PATCH v2 1/4] pkg: add recipe for RPM Thomas Monjalon
2014-04-30  0:46 ` [dpdk-dev] [memnic PATCH v2 2/4] " Thomas Monjalon
2014-04-30  0:46 ` [dpdk-dev] [vmxnet3-usermap PATCH v2 3/4] " Thomas Monjalon
2014-04-30  0:46 ` [dpdk-dev] [virtio-net-pmd PATCH v2 4/4] " Thomas Monjalon
2014-04-30 10:52 ` [dpdk-dev] [PATCH v2 0/4] recipes for RPM packages Neil Horman
2014-04-30 11:09   ` Thomas Monjalon
2014-04-30 15:22     ` Neil Horman
2014-05-01  6:53       ` Thomas Monjalon
2014-05-01 10:28         ` Neil Horman
2014-05-01 15:13           ` Thomas Monjalon
2014-05-01 13:14 ` Neil Horman
2014-05-01 21:15   ` Thomas Monjalon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).