diff options
Diffstat (limited to 'nixpkgs/pkgs/servers/corosync/default.nix')
-rw-r--r-- | nixpkgs/pkgs/servers/corosync/default.nix | 80 |
1 files changed, 80 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..f1d81aae92fa --- /dev/null +++ b/nixpkgs/pkgs/servers/corosync/default.nix @@ -0,0 +1,80 @@ +{ lib, stdenv, fetchurl, makeWrapper, pkg-config, kronosnet, nss, nspr, libqb +, systemd, dbus, rdma-core, libstatgrab, net-snmp +, enableDbus ? false +, enableInfiniBandRdma ? false +, enableMonitoring ? false +, enableSnmp ? false +, nixosTests +}: + +with lib; + +stdenv.mkDerivation rec { + pname = "corosync"; + version = "3.1.8"; + + src = fetchurl { + url = "http://build.clusterlabs.org/corosync/releases/${pname}-${version}.tar.gz"; + sha256 = "sha256-cCNUT6O7NsALvKvZk1tyabQdiWc4oQjtMuqbnJsn7D0="; + }; + + nativeBuildInputs = [ makeWrapper pkg-config ]; + + buildInputs = [ + kronosnet nss nspr libqb systemd.dev + ] ++ 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" + # allows Type=notify in the systemd service + "--enable-systemd" + ] ++ 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" + ]; + + enableParallelBuilding = true; + + 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" + ''; + + passthru.tests = { + inherit (nixosTests) pacemaker; + }; + + 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; [ montag451 ryantm ]; + }; +} |