nixpkgs/pkgs/tools/networking/snabbswitch/default.nix

47 lines
1.4 KiB
Nix
Raw Normal View History

{ stdenv, lib, fetchurl, bash, makeWrapper, git, mariadb, diffutils }:
stdenv.mkDerivation rec {
2015-11-30 10:08:06 +01:00
name = "snabb-${version}";
2015-12-04 16:25:44 +01:00
version = "2015.12";
src = fetchurl {
2015-11-30 10:08:06 +01:00
url = "https://github.com/SnabbCo/snabbswitch/archive/v${version}.tar.gz";
2015-12-04 16:25:44 +01:00
sha256 = "1949a6d3hqdr2hdfmrr1na9gvjdwdahadbhmvz2pg7azmpq6ssmr";
};
2015-12-10 12:47:24 +01:00
buildInputs = [ makeWrapper ];
patchPhase = ''
patchShebangs .
# some hardcodeism
for f in $(find src/program/snabbnfv/ -type f); do
substituteInPlace $f --replace "/bin/bash" "${bash}/bin/bash"
done
'';
installPhase = ''
mkdir -p $out/bin
cp src/snabb $out/bin
2015-12-10 12:47:24 +01:00
wrapProgram $out/bin/snabb --prefix PATH : "${ lib.makeBinPath [ git mariadb diffutils ]}"
'';
2015-10-10 11:10:26 +02:00
meta = with stdenv.lib; {
homepage = https://github.com/SnabbCo/snabbswitch;
description = "Simple and fast packet networking toolkit";
longDescription = ''
Snabb Switch is a LuaJIT-based toolkit for writing high-speed
packet networking code (such as routing, switching, firewalling,
and so on). It includes both a scripting inteface for creating
new applications and also some built-in applications that are
ready to run.
It is especially intended for ISPs and other network operators.
'';
platforms = [ "x86_64-linux" ];
license = licenses.asl20;
2015-12-10 12:47:24 +01:00
maintainers = [ maintainers.lukego maintainers.iElectric ];
};
}