openvswitch: export and fix ovs-monitor-ipsec script

This commit is contained in:
Jaka Hudoklin 2015-04-25 15:33:08 +02:00
parent b5114de4ac
commit f2ec6964db

View File

@ -1,37 +1,52 @@
{ stdenv, fetchurl, openssl, python27, iproute, perl, kernel ? null}:
{ stdenv, fetchurl, makeWrapper
, openssl, python27, iproute, perl, kernel ? null }:
with stdenv.lib;
let
version = "2.1.2";
skipKernelMod = kernel == null;
in
stdenv.mkDerivation {
version = "2.1.2";
_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 =
''