pktgen: 3.7.2 -> 19.12.0, build with meson, fix build

Building with make requires share/dpdk/mk/ from the make build of dpdk, which is
not installed by the meson build of dpdk.
This commit is contained in:
Orivej Desh 2019-12-23 07:17:02 +00:00
parent fdb16f3a77
commit 140ab69ae6
2 changed files with 31 additions and 15 deletions

View File

@ -0,0 +1,17 @@
1. librte_process_info does not exist.
2. lua5.3 library is liblua.
3. app/meson.build uses undeclared drivers_install_subdir.
--- a/lib/common/meson.build
+++ b/lib/common/meson.build
@@ -34,1 +34,1 @@
-libs = ['eal', 'kvargs', 'cmdline', 'process_info']
+libs = ['eal', 'kvargs', 'cmdline']
--- a/lib/lua/meson.build
+++ b/lib/lua/meson.build
@@ -31 +31 @@ endforeach
-ext_deps += cc.find_library('lua5.3', required: true)
+ext_deps += cc.find_library('lua', required: true)
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -0,0 +1,1 @@
+option('drivers_install_subdir', type: 'string', value: '')

View File

@ -1,41 +1,40 @@
{ stdenv, lib, fetchurl, pkgconfig
, dpdk, libpcap, lua5_3, numactl, utillinux
{ stdenv, lib, fetchurl, meson, ninja, pkgconfig
, dpdk, libbsd, libpcap, lua5_3, numactl, utillinux
, gtk2, which, withGtk ? false
}:
stdenv.mkDerivation rec {
pname = "pktgen";
version = "3.7.2";
version = "19.12.0";
src = fetchurl {
url = "http://dpdk.org/browse/apps/pktgen-dpdk/snapshot/${pname}-${version}.tar.xz";
sha256 = "03k7h4j2lsrh6b7477hgn87ljrjh2673ncffx9v261bx1ns54y7w";
sha256 = "1clfviz1qa4hysslcg6i29vsxwl9f6j1y7zf9wwx9br3yq08x956";
};
nativeBuildInputs = [ pkgconfig ];
nativeBuildInputs = [ meson ninja pkgconfig ];
buildInputs =
[ dpdk libpcap lua5_3 numactl which ]
[ dpdk libbsd libpcap lua5_3 numactl which ]
++ stdenv.lib.optionals withGtk [gtk2];
RTE_SDK = "${dpdk}/share/dpdk";
RTE_TARGET = "x86_64-native-linuxapp-gcc";
RTE_SDK = dpdk;
GUI = stdenv.lib.optionalString withGtk "true";
NIX_CFLAGS_COMPILE = [ "-msse3" ];
postPatch = let dpdkMajor = lib.versions.major dpdk.version; in ''
patches = [ ./configure.patch ];
postPatch = ''
substituteInPlace lib/common/lscpu.h --replace /usr/bin/lscpu ${utillinux}/bin/lscpu
'';
installPhase = ''
install -d $out/bin
install -m 0755 app/${RTE_TARGET}/pktgen $out/bin
install -m 0644 Pktgen.lua $out/bin
postInstall = ''
# meson installs unneeded files with conflicting generic names, such as
# include/cli.h and lib/liblua.so.
rm -rf $out/include $out/lib
'';
enableParallelBuilding = true;
meta = with stdenv.lib; {
description = "Traffic generator powered by DPDK";
homepage = http://dpdk.org/;