diff --git a/pkgs/servers/corosync/default.nix b/pkgs/servers/corosync/default.nix index d04a1d124faa..dc2f0f6fd709 100644 --- a/pkgs/servers/corosync/default.nix +++ b/pkgs/servers/corosync/default.nix @@ -1,50 +1,61 @@ { stdenv, fetchurl, makeWrapper, pkgconfig, nss, nspr, libqb -, dbus ? null -, librdmacm ? null, libibverbs ? null -, libstatgrab ? null -, net_snmp ? null +, dbus, librdmacm, libibverbs, libstatgrab, net_snmp +, enableDbus ? false +, enableInfiniBandRdma ? false +, enableMonitoring ? false +, enableSnmp ? false }: with stdenv.lib; + stdenv.mkDerivation rec { - name = "corosync-2.4.1"; + name = "corosync-2.4.2"; src = fetchurl { url = "http://build.clusterlabs.org/corosync/releases/${name}.tar.gz"; - sha256 = "0w8m97ih7a2g99pmjsckw4xwbgzv96xdgg62s2a4qbgnw4yl637y"; + sha256 = "1aab380mv4ivy5icmwvk7941jbs6ikm21p5ijk7brr4z608k0vpj"; }; - buildInputs = [ - makeWrapper pkgconfig nss nspr libqb - dbus librdmacm libibverbs libstatgrab net_snmp - ]; + nativeBuildInputs = [ makeWrapper pkgconfig ]; - # 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"; + buildInputs = [ + nss nspr libqb + ] ++ optional enableDbus dbus + ++ optional enableInfiniBandRdma [ librdmacm libibverbs ] + ++ optional enableMonitoring libstatgrab + ++ optional enableSnmp net_snmp; configureFlags = [ + "--sysconfdir=/etc" + "--localstatedir=/var" + "--with-logdir=/var/log/corosync" "--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"; + ] ++ 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" + ]; 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 ]; + maintainers = with maintainers; [ wkennington montag451 ]; }; }