summary refs log tree commit diff
path: root/pkgs/os-specific/linux/openvswitch/default.nix
blob: 13b41ebe9c89a7585457d086d79ecf85752528ad (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
{ stdenv, fetchurl, openssl, python27, iproute, perl510, kernel ? null}:
let

    version = "2.1.2";

    skipKernelMod = kernel == null;

in
stdenv.mkDerivation {
    version = "2.1.2";
    name = "openvswitch-${version}";
    src = fetchurl {
        url = "http://openvswitch.org/releases/openvswitch-2.1.2.tar.gz";
        sha256 = "16q7faqrj2pfchhn0x5s9ggi5ckcg9n62f6bnqaih064aaq2jm47";
    };
    kernel = if skipKernelMod then null else kernel.dev;
    buildInputs = [
        openssl
        python27
        perl510
    ];
    configureFlags = [
        "--localstatedir=/var"
        "--sharedstatedir=/var"
        "--sbindir=$(out)/bin"
    ] ++ (if skipKernelMod then [] else ["--with-linux"]);
    # Leave /var out of this!
    installFlags = [
        "LOGDIR=$(TMPDIR)/dummy"
        "RUNDIR=$(TMPDIR)/dummy"
        "PKIDIR=$(TMPDIR)/dummy"
    ];
    meta = {
        platforms = stdenv.lib.platforms.linux;
        description = "A multilayer virtual switch";
        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 
            to VMware's vNetwork distributed vswitch or Cisco's Nexus 1000V.
        '';
        homepage = "http://openvswitch.org/";
        licence = "Apache 2.0";
    };
}