aboutsummaryrefslogtreecommitdiff
path: root/pkgs/icinga2
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2018-12-11 18:10:48 +0300
committerIgor Pashev <pashev.igor@gmail.com>2018-12-11 18:10:48 +0300
commit8b0968b2054d3bb8d90b5ac056727f7c2ebeaed3 (patch)
treed03b70f693463fc836a8dbe4240424d2547530c8 /pkgs/icinga2
parentc4273035cf5876e3ba8ed2c6b492d31c2de290ee (diff)
downloadnixsap-8b0968b2054d3bb8d90b5ac056727f7c2ebeaed3.tar.gz
(* HUGE *) Use nixpkgs overlays
Diffstat (limited to 'pkgs/icinga2')
-rw-r--r--pkgs/icinga2/check_mysql_slave.patch41
-rw-r--r--pkgs/icinga2/default.nix69
2 files changed, 110 insertions, 0 deletions
diff --git a/pkgs/icinga2/check_mysql_slave.patch b/pkgs/icinga2/check_mysql_slave.patch
new file mode 100644
index 0000000..0658a8a
--- /dev/null
+++ b/pkgs/icinga2/check_mysql_slave.patch
@@ -0,0 +1,41 @@
+Index: icinga2-2.4.1/itl/command-plugins.conf
+===================================================================
+--- icinga2-2.4.1.orig/itl/command-plugins.conf
++++ icinga2-2.4.1/itl/command-plugins.conf
+@@ -1775,6 +1775,36 @@ object CheckCommand "mysql" {
+ vars.mysql_hostname = "$check_address$"
+ }
+
++object CheckCommand "mysql_slave" {
++ import "plugin-check-command"
++ import "ipv4-or-ipv6"
++
++ command = [ PluginDir + "/check_mysql_slave" ]
++
++ arguments = {
++ "-H" = "$mysql_hostname$"
++ "-P" = "$mysql_port$"
++ "-s" = "$mysql_socket$"
++ "-f" = "$mysql_file$"
++ "-g" = "$mysql_group$"
++ "-u" = "$mysql_username$"
++ "-p" = "$mysql_password$"
++ "-N" = "$mysql_connection_name$"
++ "-w" = "$mysql_warning$"
++ "-c" = "$mysql_critical$"
++ "-l" = {
++ set_if = "$mysql_ssl$"
++ }
++ "-C" = "$mysql_cacert$"
++ "-a" = "$mysql_cert$"
++ "-k" = "$mysql_key$"
++ "-D" = "$mysql_cadir$"
++ "-L" = "$mysql_ciphers$"
++ }
++
++ vars.mysql_hostname = "$check_address$"
++}
++
+ object CheckCommand "negate" {
+ import "plugin-check-command"
+
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
+ '';
+}