From f2ec6964db208abbebdc3db2a958fd266eb50867 Mon Sep 17 00:00:00 2001 From: Jaka Hudoklin Date: Sat, 25 Apr 2015 15:33:08 +0200 Subject: openvswitch: export and fix ovs-monitor-ipsec script --- pkgs/os-specific/linux/openvswitch/default.nix | 67 ++++++++++++++++---------- 1 file changed, 41 insertions(+), 26 deletions(-) (limited to 'pkgs/os-specific/linux') 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/"; -- cgit 1.4.1