summary refs log tree commit diff
path: root/pkgs/servers/corosync/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/servers/corosync/default.nix')
-rw-r--r--pkgs/servers/corosync/default.nix50
1 files changed, 50 insertions, 0 deletions
diff --git a/pkgs/servers/corosync/default.nix b/pkgs/servers/corosync/default.nix
new file mode 100644
index 00000000000..5e8f2fd0caa
--- /dev/null
+++ b/pkgs/servers/corosync/default.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchurl, makeWrapper, pkgconfig, nss, nspr, libqb
+, dbus ? null
+, librdmacm ? null, libibverbs ? null
+, libstatgrab ? null
+, net_snmp ? null
+}:
+
+with stdenv.lib;
+stdenv.mkDerivation rec {
+  name = "corosync-2.3.4";
+
+  src = fetchurl {
+    url = "http://build.clusterlabs.org/corosync/releases/${name}.tar.gz";
+    sha256 = "1m276b060fjghr93hdzfag81whi5ph65dc2ka8ln1igm3kxr7bix";
+  };
+
+  buildInputs = [
+    makeWrapper pkgconfig nss nspr libqb
+    dbus librdmacm libibverbs libstatgrab net_snmp
+  ];
+
+  # Remove when rdma libraries gain pkgconfig support
+  ibverbs_CFLAGS = optionalString (libibverbs != null)
+    "-I${libibverbs}/include/infiniband";
+  ibverbs_LIBS = optionalString (libibverbs != null) "-libverbs";
+  rdmacm_CFLAGS = optionalString (librdmacm != null)
+    "-I${librdmacm}/include/rdma";
+  rdmacm_LIBS = optionalString (librdmacm != null) "-lrdmacm";
+
+  configureFlags = [
+    "--enable-watchdog"
+    "--enable-qdevices"
+  ] ++ optional (dbus != null) "--enable-dbus"
+    ++ optional (librdmacm != null && libibverbs != null) "--enable-rdma"
+    ++ optional (libstatgrab != null) "--enable-monitoring"
+    ++ optional (net_snmp != null) "--enable-snmp";
+
+  postInstall = ''
+    wrapProgram $out/bin/corosync-blackbox \
+      --prefix PATH ":" "$out/sbin:${libqb}/sbin"
+  '';
+
+  meta = {
+    homepage = http://corosync.org/;
+    description = "A Group Communication System with features for implementing high availability within applications";
+    license = licenses.bsd3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ wkennington ];
+  };
+}