[dpdk-dev] Heads up: Fedora packaging plans

Neil Horman nhorman at tuxdriver.com
Mon May 19 15:18:55 CEST 2014


On Mon, May 19, 2014 at 12:11:35PM +0200, Thomas Monjalon wrote:
> Hi Neil,
> 
> Thanks for sharing your progress.
> 
No worries.

> My main concerns are about naming and extensions.
> We must keep "dpdk-core" naming in order to distinguish it from PMD 
> extensions.
I don't see why.  We can name packages whatever we want, as long as the spec and
srpm share the same name. It seems to me that the core should be the base name
of the package while the extensions should have some extension on their name.

> And then, packaging of memnic and non-uio paravirtualization PMDs 
> (virtio/vmxnet3) are missing.
> 
They're in separate repositories, I was planning on packaging them at a later
time separately, since their versioning and development is handled separately.

> 2014-05-13 15:08, Neil Horman:
> > My current effort to do so.  I've made some changes from the stock spec file
> > included in dpdk:
> 
> We should try to get .spec for Fedora and in-tree .spec as common as possible.
> There are probably some things to push.
> 
Ok, sure, just keep in mind that different distributions have different
packaging requirements that may affect the contents of the spec file, and so
attaining parity may not be possible (or even worthwhile).

> > * Modified the version and release values to be separate from the name.  I
> > did some reading on requirements for packaging and it seems we can be a bit
> > more lax with ABI version on a pre-release I think, so I setup the N-V-R to
> > use pre-release conventions, which makes sense, give that this is a 1.7.0
> > pre-release.  The git tag on the relase value will get bumped as we move
> > forward in the patch series.
> 
> I thought that we should put version in the name, in order to be able to 
> install many versions together. How is it handled by yum?
> 
So, I spent some time thinking about this, and I _really_ want to avoid the
inclusion of a version with the package name.  Doing so, while it allows yum to
install multiple versions side-by-side, is a real overhead for me, as it
requires that I go through a new pacakge review process for each released
version that we want to package.  I do not have time to do that.  If someone
from 6wind or intel wants to get involved in the Packaging process we can look
at that as a solution, but while I'm doing it, its really just too much
overhead.  This method will allow multiple version to be installed side by side
as well.  The tradeoff is that yum doesn't directly allow that, as it will just
preform an upgrade.  The multiple version solution will require that you
download older versions and install them directly using rpm commands.  I think
thats a fair tradeoff.

> > * Added config files to match desired configs for Fedora (i.e. disabled
> > PMD's that require out of tree kernel modules
> 
> It would be clearer to make your configuration changes with "sed -i".
> In a near future we would probably need a "configure" script to do it.
> 
I really disagree.  Its not clearer in my mind at all - in that the final config
file is a product of two pieces of information (the base config file, and the
sed scripts that you run on it), as opposed to one piece (the canonical modified
config specified in the source line).  Using sed also implies that you need to
list sed as a BuildRequires (minimal buildroots may not include sed when they
are spun up).

> So you don't package igb_uio but you build it because there is no option to 
> disable it currently. We should add such option.
> 
Not sure what you mean here.  The only uio code I see in the package is the uio
unbind script for igb, which should still work just fine (save for the fact that
we don't have a user space PMD to attach the hardware to).  I can certainly
remove the script though so it doesn't appear in the package until such time as
the LAD group integrates the uio code in the upstream driver.

> > * Moved the package target directories to include N-V of the package in the
> > path names.  This allows for multiple versions of the dpdk to be installed
> > in parallel (I.e. dpdk-1.7.0 files are in /lib/dpdk-1.7.0,
> > /usr/include/dpdk-1.7.0, etc).  This is how java packages allow for
> > multiple version installs, and makes sense given ABI instability in dpdk. 
> > It will require that developers add some -I / -L paths to their makefiles
> > to pull the proper version, but I think thats a fair tradeoff.
> 
> I don't see version for include directory and bin directory (testpmd).
> 
Yup, need to fix that.  Thank you!
Neil

> Thanks
> -- 
> Thomas
> 


More information about the dev mailing list