From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 5469658F9 for ; Mon, 24 Feb 2014 17:56:50 +0100 (CET) Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s1OGwDI9026509 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 24 Feb 2014 11:58:13 -0500 Received: from x220.localdomain (ovpn-113-201.phx2.redhat.com [10.3.113.201]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with SMTP id s1OGTEYp016129; Mon, 24 Feb 2014 11:29:15 -0500 Date: Mon, 24 Feb 2014 08:29:14 -0800 From: Chris Wright To: Thomas Monjalon Message-ID: <20140224162914.GD27503@x220.localdomain> References: <1391529271-24606-1-git-send-email-thomas.monjalon@6wind.com> <1391529271-24606-4-git-send-email-thomas.monjalon@6wind.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1391529271-24606-4-git-send-email-thomas.monjalon@6wind.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 Cc: dev@dpdk.org Subject: Re: [dpdk-dev] [PATCH 03/16] pkg: add recipe for RPM X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 Feb 2014 16:56:50 -0000 * 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 > --- > 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