about summary refs log tree commit diff
path: root/nixpkgs/pkgs/servers/corosync/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/servers/corosync/default.nix')
-rw-r--r--nixpkgs/pkgs/servers/corosync/default.nix72
1 files changed, 72 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/servers/corosync/default.nix b/nixpkgs/pkgs/servers/corosync/default.nix
new file mode 100644
index 000000000000..d1dd7c05929d
--- /dev/null
+++ b/nixpkgs/pkgs/servers/corosync/default.nix
@@ -0,0 +1,72 @@
+{ stdenv, fetchurl, makeWrapper, pkgconfig, nss, nspr, libqb
+, dbus, rdma-core, libstatgrab, net_snmp
+, enableDbus ? false
+, enableInfiniBandRdma ? false
+, enableMonitoring ? false
+, enableSnmp ? false
+}:
+
+with stdenv.lib;
+
+stdenv.mkDerivation rec {
+  name = "corosync-2.4.3";
+
+  src = fetchurl {
+    url = "http://build.clusterlabs.org/corosync/releases/${name}.tar.gz";
+    sha256 = "15y5la04qn2lh1gabyifygzpa4dx3ndk5yhmaf7azxyjx0if9rxi";
+  };
+
+  nativeBuildInputs = [ makeWrapper pkgconfig ];
+
+  buildInputs = [
+    nss nspr libqb
+  ] ++ optional enableDbus dbus
+    ++ optional enableInfiniBandRdma rdma-core
+    ++ optional enableMonitoring libstatgrab
+    ++ optional enableSnmp net_snmp;
+
+  configureFlags = [
+    "--sysconfdir=/etc"
+    "--localstatedir=/var"
+    "--with-logdir=/var/log/corosync"
+    "--enable-watchdog"
+    "--enable-qdevices"
+  ] ++ optional enableDbus "--enable-dbus"
+    ++ optional enableInfiniBandRdma "--enable-rdma"
+    ++ optional enableMonitoring "--enable-monitoring"
+    ++ optional enableSnmp "--enable-snmp";
+
+  installFlags = [
+    "sysconfdir=$(out)/etc"
+    "localstatedir=$(out)/var"
+    "COROSYSCONFDIR=$(out)/etc/corosync"
+    "INITDDIR=$(out)/etc/init.d"
+    "LOGROTATEDIR=$(out)/etc/logrotate.d"
+  ];
+
+  preConfigure = optionalString enableInfiniBandRdma ''
+    # configure looks for the pkg-config files
+    # of librdmacm and libibverbs
+    # Howver, rmda-core does not provide a pkg-config file
+    # We give the flags manually here:
+    export rdmacm_LIBS=-lrdmacm
+    export rdmacm_CFLAGS=" "
+    export ibverbs_LIBS=-libverbs
+    export ibverbs_CFLAGS=" "
+  '';
+
+  postInstall = ''
+    wrapProgram $out/bin/corosync-blackbox \
+      --prefix PATH ":" "$out/sbin:${libqb}/sbin"
+  '';
+
+  enableParallelBuilding = true;
+
+  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 montag451 ];
+  };
+}