DPDK patches and discussions
 help / color / mirror / Atom feed
From: Thomas Graf <tgraf@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: Wed, 02 Apr 2014 13:04:18 +0200	[thread overview]
Message-ID: <533BEEB2.1060903@redhat.com> (raw)
In-Reply-To: <2489854.B9BgBzrlJE@xps13>

On 04/02/2014 11:53 AM, Thomas Monjalon wrote:
> 2014-02-26 14:07, Thomas Graf:
>>> +BuildRequires: kernel-devel, kernel-headers, doxygen
>>
>> Is a python environment required as well?
>
> Python is only needed to run some tools on the target. But is is optional.
> Do you think it should be written somewhere?

Not sure what target is in this context. You only need to list it if
a python environment must be present at build time.

>> What about calling it just "libdpdk"?
>
> In this case, it should be libdpdk-core in order to distinguish it from dpdk
> extensions. But the name of the project is dpdk so it seems simpler to call it
> dpdk-core.
> Is the "lib" prefix mandatory for libraries?

Not at all. You are free to name the package. The mandatory part is that
runtime and development files must be separated and the development
files such as headers will go into a -devel package.

dpdk-core
dpdk-core-devel

>> This brings up the question of multiple parallel DPDK installations.
>> A specific application linking to library version X will also require
>> tools of version X, right? A second application linking against version
>> Y will require tools version Y. Right now, these could not be installed
>> in parallel. Any chance we can make the runtime version independent?
>
> Are you thinking about installing different major versions? In my
> understanding, we cannot install 2 different minor versions of a package.
> As long as there is no stable API, there is no major versions defined.
> So don't you think we should speak about it later?

That's right, you can't install multiple versions of the same package
unless you name them differently. This is why we need to come up with a
strategy how to handle naming and upgrades now, before we push it into
Fedora.

Example:
Let's assume we push DPDK 1.6.0 into Fedora as 'dpdk-core' with NVR
dpdk-core-1.6.0-1. Let's assume we later push Open vSwitch 2.2 into
Fedora which will consume DPDK 1.6.0 via "Requires: dpdk-core = 1.6.0"
We can't do dpdk-core >= 1.6.0 because there is no compatibility.
DPDK 1.6.1 gets released and we push it as dpdk-core-1.6.1-1. We then
push dpdk-pktgen into Fedora which is based on DPDK 1.6.1 and requires
"dpdk-core = 1.6.1". Users won't be able to install both OVS and
dpdk-ptkgen in parallel at this point because they can't install both
1.6.0 and 1.6.1.

Fedora inclusion will require a strategy to resolve this. A unique name
for each release is an option (Every DPDK release is currently a new
major release). This can slowly transform into compatible releases once
stable ABIs are in place.

Unique names is not enough though as multiple packages would still
attempt to install the same file, e.g. header files. This would be
typically resolved by installing headers and other non versioned files
with a prefix as outlined below. This leaves the problems of tool
versioning as they also seem to be bound to specific DPDK versions but
can't be prefixed as they need to be part of $PATH.

So while we don't have to enforce stable ABIs at this point we have to
account for the lack of it in the packaging names and packaging
structure.

Packages could be named

dpdk-1.6.0-core
dpdk-1.6.0-core-devel
....

https://fedoraproject.org/wiki/Packaging:NamingGuidelines#General_Naming


>> Same applies to header files. A good option here would be to install
>> them to /usr/include/libdpdk{version}/ and have a dpdk-1.5.2.pc which
>> provides Cflags: -I${includedir}/libdpdk${version}
>
> Yes same applies :)
> I agree that a .pc file would be a good idea. But we also must allow to build
> with the DPDK framework.

Definitely.

  reply	other threads:[~2014-04-02 11:02 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
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 [this message]
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=533BEEB2.1060903@redhat.com \
    --to=tgraf@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).