DPDK patches and discussions
 help / color / mirror / Atom feed
From: Chris Wright <chrisw@redhat.com>
To: Thomas Monjalon <thomas.monjalon@6wind.com>
Cc: dev@dpdk.org
Subject: Re: [dpdk-dev] [PATCH 03/16] pkg: add recipe for RPM
Date: Mon, 24 Feb 2014 08:29:14 -0800	[thread overview]
Message-ID: <20140224162914.GD27503@x220.localdomain> (raw)
In-Reply-To: <1391529271-24606-4-git-send-email-thomas.monjalon@6wind.com>

* Thomas Monjalon (thomas.monjalon@6wind.com) wrote:
> Packages can be built with:
> 	RPM_BUILD_NCPUS=8 rpmbuild -ta dpdk-1.5.2r2.tar.gz
> 
> There are packages for runtime, static libraries and development.
> Once devel package 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/rpm.spec |  143 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

This should be dpdk.spec

>  1 file changed, 143 insertions(+)
>  create mode 100644 pkg/rpm.spec
> 
> diff --git a/pkg/rpm.spec b/pkg/rpm.spec
> new file mode 100644
> index 0000000..d806d55
> --- /dev/null
> +++ b/pkg/rpm.spec
> @@ -0,0 +1,143 @@
> +Name: dpdk
> +Version: 1.5.2r1

need to check of NVR properly increases.  looks ok, I used the tool
'rpmdev-vercmp' to verify 

> +Release: 1
> +Packager: packaging at 6wind.com
> +URL: http://dpdk.org
> +Source: http://dpdk.org/browse/dpdk/snapshot/dpdk-%{version}.tar.gz
> +
> +Summary: Intel(r) Data Plane Development Kit
> +Group: System Environment/Libraries
> +License: BSD and LGPLv2 and GPLv2
> +
> +ExclusiveArch: i686, x86_64
> +%define target %{_arch}-default-linuxapp-gcc

Why this?

> +%define machine default
> +
> +BuildRequires: kernel-devel, kernel-headers, doxygen
> +
> +%description
> +Dummy main package. Make only subpackages.

Why not make the core package include .so?
The -devel package would then include headers, and I don't htink you
need a static (.a) package because it's not encouraged to ship static
libraries:

https://fedoraproject.org/wiki/Packaging:Guidelines#Packaging_Static_Libraries

If you had to update a .a file, e.g. due to security issue, any
applications using static library would not receive the update w/out
rebuilding.

> +%package core-runtime
> +Summary: Intel(r) Data Plane Development Kit core for runtime
> +%description core-runtime
> +Intel(r) DPDK runtime 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.

This is an unusual name.  I don't have a better suggestion right now,
will think about it for the moment.

> +%package core-static
> +Requires: %{name}-core-runtime
> +Summary: Intel(r) Data Plane Development Kit core as static libraries
> +%description core-static
> +Intel(r) DPDK static provides static version of the core libraries
> +for fast packet processing on x86 platforms.
> +More libraries are available as extensions in other packages.

Think we can eliminate this one.

> +%package core-devel
> +Requires: %{name}-core-static
> +Summary: Intel(r) Data Plane Development Kit core for development
> +%description core-devel
> +Intel(r) DPDK 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.

This looks fine to keep (often it's just headers, but in this case the
makefiles and examples are part of 'how to develop' a dpdk app).

> +# debuginfo packaging is broken
> +%define debug_package %{nil}
> +
> +%define destdir %{buildroot}%{_prefix}
> +%define moddir  /lib/modules/%(uname -r)/extra
> +%define datadir %{_datadir}/%{name}
> +%define docdir  %{_docdir}/%{name}
> +
> +%prep
> +%setup -q
> +
> +%build
> +make O=%{target} T=%{target} config

Have you considering fixing the build system to allow writing directly
to the RPM_BUILD_ROOT?  (this would eliminate all the cp/rmdir below at
%install stage).

> +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}
> +cp %{target}/lib/*.so %{target}
> +sed -ri 's,(RTE_BUILD_SHARED_LIB=).*,\1n,' %{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}

usually the install command is used (install -d will create directories)

I'm pulling depedencies to do a test build, will comment if anything
further comes up.

thanks,
-chris

  reply	other threads:[~2014-02-24 16:56 UTC|newest]

Thread overview: 52+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-04 15:54 [dpdk-dev] [PATCH 00/16] recipes for RPM packages Thomas Monjalon
2014-02-04 15:54 ` [dpdk-dev] [PATCH 01/16] tools: rename pci_unbind script Thomas Monjalon
2014-02-24 16:03   ` Chris Wright
2014-03-20 17:06     ` Thomas Monjalon
2014-02-04 15:54 ` [dpdk-dev] [PATCH 02/16] virtio: rename library Thomas Monjalon
2014-02-24 16:05   ` Chris Wright
2014-03-20 17:06     ` Thomas Monjalon
2014-02-04 15:54 ` [dpdk-dev] [PATCH 03/16] pkg: add recipe for RPM Thomas Monjalon
2014-02-24 16:29   ` Chris Wright [this message]
2014-02-24 16:52   ` Chris Wright
2014-04-02  9:01     ` Thomas Monjalon
2014-04-02 11:11       ` Thomas Graf
2014-02-26 13:07   ` Thomas Graf
2014-02-26 16:19     ` Chris Wright
2014-04-02  9:53     ` Thomas Monjalon
2014-04-02 11:04       ` Thomas Graf
2014-04-02 11:29       ` Neil Horman
2014-02-04 15:54 ` [dpdk-dev] [vmxnet3-usermap PATCH 04/16] pmd: add make help Thomas Monjalon
2014-02-24 18:17   ` Chris Wright
2014-03-26 21:59     ` Thomas Monjalon
2014-02-04 15:54 ` [dpdk-dev] [vmxnet3-usermap PATCH 05/16] pmd: allow to build outside of the source directory Thomas Monjalon
2014-02-24 18:13   ` Chris Wright
2014-03-26 21:59     ` Thomas Monjalon
2014-02-04 15:54 ` [dpdk-dev] [vmxnet3-usermap PATCH 06/16] pmd: allow to install lib and doc Thomas Monjalon
2014-03-26 22:00   ` Thomas Monjalon
2014-02-04 15:54 ` [dpdk-dev] [vmxnet3-usermap PATCH 07/16] pkg: add recipe for RPM Thomas Monjalon
2014-02-26 13:22   ` Thomas Graf
2014-04-02 10:08     ` Thomas Monjalon
2014-04-02 11:07       ` Thomas Graf
2014-02-04 15:54 ` [dpdk-dev] [virtio-net-pmd PATCH 08/16] pmd: fix initialization of Tx queue header Thomas Monjalon
2014-03-27  8:23   ` Olivier MATZ
2014-03-27  9:34     ` Thomas Monjalon
2014-02-04 15:54 ` [dpdk-dev] [virtio-net-pmd PATCH 09/16] mk: minor fixes Thomas Monjalon
2014-03-27  8:26   ` Olivier MATZ
2014-03-27  9:35     ` Thomas Monjalon
2014-02-04 15:54 ` [dpdk-dev] [virtio-net-pmd PATCH 10/16] mk: allow to build outside of the source directory Thomas Monjalon
2014-03-27  8:31   ` Olivier MATZ
2014-03-27  9:35     ` Thomas Monjalon
2014-02-04 15:54 ` [dpdk-dev] [virtio-net-pmd PATCH 11/16] mk: allow to install lib and doc Thomas Monjalon
2014-03-27  8:32   ` Olivier MATZ
2014-03-27  9:35     ` Thomas Monjalon
2014-02-04 15:54 ` [dpdk-dev] [virtio-net-pmd PATCH 12/16] pkg: add recipe for RPM Thomas Monjalon
2014-02-04 15:54 ` [dpdk-dev] [memnic PATCH 13/16] pmd: rename doc when installing Thomas Monjalon
2014-03-27  8:36   ` Olivier MATZ
2014-03-27 10:29     ` Thomas Monjalon
2014-02-04 15:54 ` [dpdk-dev] [memnic PATCH 14/16] pmd: fix doc uninstalling Thomas Monjalon
2014-03-27  8:45   ` Olivier MATZ
2014-03-27 10:30     ` Thomas Monjalon
2014-02-04 15:54 ` [dpdk-dev] [memnic PATCH 15/16] pmd: remove useless makefile variables Thomas Monjalon
2014-03-27  8:45   ` Olivier MATZ
2014-03-27 10:30     ` Thomas Monjalon
2014-02-04 15:54 ` [dpdk-dev] [memnic PATCH 16/16] pkg: add recipe for RPM Thomas Monjalon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140224162914.GD27503@x220.localdomain \
    --to=chrisw@redhat.com \
    --cc=dev@dpdk.org \
    --cc=thomas.monjalon@6wind.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).