aboutsummaryrefslogtreecommitdiff
path: root/pkgs/icinga2/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/icinga2/default.nix')
-rw-r--r--pkgs/icinga2/default.nix69
1 files changed, 69 insertions, 0 deletions
diff --git a/pkgs/icinga2/default.nix b/pkgs/icinga2/default.nix
new file mode 100644
index 0000000..9805ca4
--- /dev/null
+++ b/pkgs/icinga2/default.nix
@@ -0,0 +1,69 @@
+{ stdenv, fetchurl
+, bison, boost, cmake, flex
+, libedit, mariadb, postgresql
+, openssl, yajl, pkgconfig
+, makeWrapper
+}:
+
+stdenv.mkDerivation rec {
+ version = "2.10.1";
+ name = "icinga2-${version}";
+
+ src = fetchurl {
+ url = "https://github.com/Icinga/icinga2/archive/v${version}.tar.gz";
+ sha256 = "0hwpf080w7y4lhw7fl71npf2dscnqnccsii1iqibqb46g3cxqalk";
+ };
+
+ buildInputs = [
+ bison boost cmake flex libedit makeWrapper mariadb.client openssl
+ pkgconfig postgresql yajl
+ ];
+
+ patches = [
+ ./check_mysql_slave.patch
+ ];
+
+ cmakeFlags = [
+ "-DCMAKE_INSTALL_LOCALSTATEDIR=/icinga2"
+ "-DCMAKE_INSTALL_SYSCONFDIR=/icinga2/etc" # this will need runtime support
+ "-DICINGA2_COMMAND_GROUP=icingacmd"
+ "-DICINGA2_GROUP=icinga"
+ "-DICINGA2_RUNDIR=/run"
+ "-DICINGA2_USER=icinga"
+ "-DMYSQL_INCLUDE_DIR=${mariadb.client.dev}/include/mysql"
+ ];
+
+ # XXX Without DESTDIR it tries to write to /icinga2 and /run:
+ installPhase = ''
+ rm -rf tmp
+ mkdir -p tmp
+ make install DESTDIR=$(pwd)/tmp
+ mv -v tmp/$out $out
+ mv -v tmp/icinga2 $out/icinga2
+
+ rm -rvf \
+ $out/icinga2/cache \
+ $out/icinga2/etc/icinga2/features-enabled \
+ $out/icinga2/etc/init.d \
+ $out/icinga2/etc/logrotate.d \
+ $out/icinga2/log \
+ $out/icinga2/spool \
+ $out/run \
+ $out/share/doc/icinga2/markdown
+
+ for s in $out/icinga2/etc/icinga2/scripts/* ; do
+ substituteInPlace $s --replace /usr/bin/printf printf
+ done
+
+ wrapProgram $out/lib/icinga2/sbin/icinga2 \
+ --prefix LD_LIBRARY_PATH : $out/lib/icinga2
+
+ rm -vf $out/sbin/icinga2
+ ln -svf $out/lib/icinga2/sbin/icinga2 $out/sbin/icinga2
+ test -x $out/sbin/icinga2
+ '';
+
+ buildPhase = ''
+ make VERBOSE=1
+ '';
+}