summary refs log tree commit diff
path: root/pkgs/tools/networking/snabb
diff options
context:
space:
mode:
authorDomen Kožar <domen@dev.si>2016-04-07 12:48:39 +0100
committerDomen Kožar <domen@dev.si>2016-04-07 12:49:11 +0100
commit009a9ceb88f2b1d6b03551244cdea9f70a5aba77 (patch)
tree23c7d0e7acf745d6c48f0f854988a0452fca5de1 /pkgs/tools/networking/snabb
parent1d421f477fa67c9b2590c511dd80d6c8bafc593e (diff)
downloadnixlib-009a9ceb88f2b1d6b03551244cdea9f70a5aba77.tar
nixlib-009a9ceb88f2b1d6b03551244cdea9f70a5aba77.tar.gz
nixlib-009a9ceb88f2b1d6b03551244cdea9f70a5aba77.tar.bz2
nixlib-009a9ceb88f2b1d6b03551244cdea9f70a5aba77.tar.lz
nixlib-009a9ceb88f2b1d6b03551244cdea9f70a5aba77.tar.xz
nixlib-009a9ceb88f2b1d6b03551244cdea9f70a5aba77.tar.zst
nixlib-009a9ceb88f2b1d6b03551244cdea9f70a5aba77.zip
snabbswitch: 2015.12 -> 2016.04, rename to snabb
Diffstat (limited to 'pkgs/tools/networking/snabb')
-rw-r--r--pkgs/tools/networking/snabb/default.nix50
1 files changed, 50 insertions, 0 deletions
diff --git a/pkgs/tools/networking/snabb/default.nix b/pkgs/tools/networking/snabb/default.nix
new file mode 100644
index 000000000000..8ba9cfa6dad8
--- /dev/null
+++ b/pkgs/tools/networking/snabb/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, lib, fetchFromGitHub, bash, makeWrapper, git, mariadb, diffutils, which, coreutils, procps, nettools }:
+
+stdenv.mkDerivation rec {
+  name = "snabb-${version}";
+  version = "2016.04";
+
+  src = fetchFromGitHub {
+    owner = "snabbco";
+    repo = "snabb";
+    rev = "v${version}";
+    sha256 = "1b5g477zy6cr5d9171xf8zrhhq6wxshg4cn78i5bki572q86kwlx";
+  };
+
+  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
+
+    # We need a way to pass $PATH to the scripts
+    sed -i '2iexport PATH=${git}/bin:${mariadb}/bin:${which}/bin:${procps}/bin:${coreutils}/bin' src/program/snabbnfv/neutron_sync_master/neutron_sync_master.sh.inc
+    sed -i '2iexport PATH=${git}/bin:${coreutils}/bin:${diffutils}/bin:${nettools}/bin' src/program/snabbnfv/neutron_sync_agent/neutron_sync_agent.sh.inc
+  '';
+
+  installPhase = ''
+    mkdir -p $out/bin
+    cp src/snabb $out/bin
+  '';
+
+  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;
+    maintainers = [ maintainers.lukego maintainers.iElectric ];
+  };
+}
+