summary refs log tree commit diff
path: root/pkgs/os-specific/linux/openvswitch
diff options
context:
space:
mode:
authorJaka Hudoklin <jakahudoklin@gmail.com>2015-04-25 15:33:08 +0200
committerJaka Hudoklin <jakahudoklin@gmail.com>2015-04-25 15:33:08 +0200
commitf2ec6964db208abbebdc3db2a958fd266eb50867 (patch)
treeb1fb50ea583facc5e9cd9b56f7d3cadf7bf7def0 /pkgs/os-specific/linux/openvswitch
parentb5114de4acaf65f0a7daebed1b45a9f97c834698 (diff)
downloadnixpkgs-f2ec6964db208abbebdc3db2a958fd266eb50867.tar
nixpkgs-f2ec6964db208abbebdc3db2a958fd266eb50867.tar.gz
nixpkgs-f2ec6964db208abbebdc3db2a958fd266eb50867.tar.bz2
nixpkgs-f2ec6964db208abbebdc3db2a958fd266eb50867.tar.lz
nixpkgs-f2ec6964db208abbebdc3db2a958fd266eb50867.tar.xz
nixpkgs-f2ec6964db208abbebdc3db2a958fd266eb50867.tar.zst
nixpkgs-f2ec6964db208abbebdc3db2a958fd266eb50867.zip
openvswitch: export and fix ovs-monitor-ipsec script
Diffstat (limited to 'pkgs/os-specific/linux/openvswitch')
-rw-r--r--pkgs/os-specific/linux/openvswitch/default.nix67
1 files changed, 41 insertions, 26 deletions
diff --git a/pkgs/os-specific/linux/openvswitch/default.nix b/pkgs/os-specific/linux/openvswitch/default.nix
index 2e25c0383b7..67cbbd13826 100644
--- a/pkgs/os-specific/linux/openvswitch/default.nix
+++ b/pkgs/os-specific/linux/openvswitch/default.nix
@@ -1,47 +1,62 @@
-{ stdenv, fetchurl, openssl, python27, iproute, perl, kernel ? null}:
-let
-
-  version = "2.1.2";
+{ stdenv, fetchurl, makeWrapper
+, openssl, python27, iproute, perl, kernel ? null }:
 
-  skipKernelMod = kernel == null;
+with stdenv.lib;
 
-in
-stdenv.mkDerivation {
-  version = "2.1.2";
+let
+  _kernel = kernel;
+in stdenv.mkDerivation rec {
+  version = "2.3.1";
   name = "openvswitch-${version}";
+
   src = fetchurl {
-    url = "http://openvswitch.org/releases/openvswitch-2.1.2.tar.gz";
-    sha256 = "16q7faqrj2pfchhn0x5s9ggi5ckcg9n62f6bnqaih064aaq2jm47";
+    url = "http://openvswitch.org/releases/${name}.tar.gz";
+    sha256 = "1lmwyhm5wmdv1l4v1v5xd36d5ra21jz9ix57nh1lgm8iqc0lj5r1";
   };
-  kernel = if skipKernelMod then null else kernel.dev;
-  buildInputs = [
-    openssl
-    python27
-    perl
-  ];
+
+  kernel = optional (_kernel != null) _kernel.dev;
+
+  buildInputs = [ makeWrapper openssl python27 perl ];
+
   configureFlags = [
     "--localstatedir=/var"
     "--sharedstatedir=/var"
     "--sbindir=$(out)/bin"
-  ] ++ (if skipKernelMod then [] else ["--with-linux"]);
+  ] ++ (optionals (_kernel != null) ["--with-linux"]);
+
   # Leave /var out of this!
   installFlags = [
     "LOGDIR=$(TMPDIR)/dummy"
     "RUNDIR=$(TMPDIR)/dummy"
     "PKIDIR=$(TMPDIR)/dummy"
   ];
+
+  postInstall = ''
+    cp debian/ovs-monitor-ipsec $out/share/openvswitch/scripts
+    makeWrapper \
+      $out/share/openvswitch/scripts/ovs-monitor-ipsec \
+      $out/bin/ovs-monitor-ipsec \
+      --prefix PYTHONPATH : "$out/share/openvswitch/python"
+    substituteInPlace $out/share/openvswitch/scripts/ovs-monitor-ipsec \
+      --replace "UnixctlServer.create(None)" "UnixctlServer.create(os.environ['UNIXCTLPATH'])"
+    substituteInPlace $out/share/openvswitch/scripts/ovs-monitor-ipsec \
+      --replace "self.psk_file" "root_prefix + self.psk_file"
+    substituteInPlace $out/share/openvswitch/scripts/ovs-monitor-ipsec \
+      --replace "self.cert_dir" "root_prefix + self.cert_dir"
+  '';
+
   meta = {
-    platforms = stdenv.lib.platforms.linux;
+    platforms = platforms.linux;
     description = "A multilayer virtual switch";
-    longDescription = 
+    longDescription =
       ''
-      Open vSwitch is a production quality, multilayer virtual switch 
-      licensed under the open source Apache 2.0 license. It is 
-      designed to enable massive network automation through 
-      programmatic extension, while still supporting standard 
-      management interfaces and protocols (e.g. NetFlow, sFlow, SPAN, 
-      RSPAN, CLI, LACP, 802.1ag). In addition, it is designed to 
-      support distribution across multiple physical servers similar 
+      Open vSwitch is a production quality, multilayer virtual switch
+      licensed under the open source Apache 2.0 license. It is
+      designed to enable massive network automation through
+      programmatic extension, while still supporting standard
+      management interfaces and protocols (e.g. NetFlow, sFlow, SPAN,
+      RSPAN, CLI, LACP, 802.1ag). In addition, it is designed to
+      support distribution across multiple physical servers similar
       to VMware's vNetwork distributed vswitch or Cisco's Nexus 1000V.
       '';
     homepage = "http://openvswitch.org/";