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 1FEE46A5B for ; Wed, 26 Feb 2014 14:06:21 +0100 (CET) Received: from int-mx02.intmail.prod.int.phx2.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s1QD7kwp014561 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 26 Feb 2014 08:07:46 -0500 Received: from lsx.localdomain (vpn1-7-117.ams2.redhat.com [10.36.7.117]) by int-mx02.intmail.prod.int.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s1QD7iN6022565; Wed, 26 Feb 2014 08:07:45 -0500 Message-ID: <530DE720.6090804@redhat.com> Date: Wed, 26 Feb 2014 14:07:44 +0100 From: Thomas Graf Organization: Red Hat, Inc. User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 MIME-Version: 1.0 To: Thomas Monjalon , dev@dpdk.org References: <1391529271-24606-1-git-send-email-thomas.monjalon@6wind.com> <1391529271-24606-4-git-send-email-thomas.monjalon@6wind.com> In-Reply-To: <1391529271-24606-4-git-send-email-thomas.monjalon@6wind.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.67 on 10.5.11.12 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: Wed, 26 Feb 2014 13:06:22 -0000 On 02/04/2014 04:54 PM, Thomas Monjalon 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 Thanks for getting this started! Some comments below. I'll be glad to help pushing this into Fedora. > +Name: dpdk > +Version: 1.5.2r1 > +Release: 1 What kind of upgrade strategy do you have in mind? I'm raising this because Fedora and other distributions will require a unique package name for every version of the package that is not backwards compatible. Typically libraries provide backwards compatible within a major release, i.e. all 1.x.x releases would be compatible. I realize that this might not be applicable yet but maybe 1.5.x? Depending on the versioning schema the name would be dpdk15, dpdk16, ... or dpdk152, dpdk153, ... > +BuildRequires: kernel-devel, kernel-headers, doxygen Is a python environment required as well? > +%description > +Dummy main package. Make only subpackages. I would just call the main package "libdpdk152" so you don't have to repeat the encoding versioning in all the subpackages. > + > +%package core-runtime What about calling it just "libdpdk"? > +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. > + > +%package core-static Based on the above: "libdpdk-static" Packages that link against dpdk statically will do: BuildRequire: libdpdk152-static > +%files core-runtime > +%dir %{datadir} > +%{datadir}/config > +%{datadir}/tools > +%{moddir}/* > +%{_sbindir}/* > +%{_bindir}/* > +%{_libdir}/*.so 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? 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} > +%files core-static > +%{_libdir}/*.a > + > +%files core-devel > +%{_includedir}/* > +%{datadir}/mk > +%{datadir}/%{target} > +%{datadir}/examples > +%doc %{docdir} > You'll also need for all packages and subpackages installing shared libraries: %post -p /sbin/ldconfig %postun -p /sbin/ldconfig