@ -1,5 +1,5 @@
{ stdenv , lib , fetchFromGitHub , fetchpatch , cmake , flex , bison , systemd
, boost , openssl , patchelf , mariadb-connector-c , postgresql , zlib
{ stdenv , runCommand , lib , fetchFromGitHub , fetchpatch , cmake , flex , bison , systemd
, boost , openssl , patchelf , mariadb-connector-c , postgresql , zlib , tzdata
# Databases
, withMysql ? true , withPostgresql ? false
# Features
@ -22,11 +22,6 @@ stdenv.mkDerivation rec {
./etc-icinga2.patch # Makes /etc/icinga2 relative to / instead of the store path
./no-systemd-service.patch # Prevent systemd service from being written to /usr
./no-var-directories.patch # Prevent /var directories from being created
# Fix the non-unity build
( fetchpatch {
url = " h t t p s : / / g i t h u b . c o m / I c i n g a / i c i n g a 2 / c o m m i t / 2 a d 0 a 4 b 8 c 3 8 5 2 a d 9 3 7 f e c 9 f c 8 5 7 8 0 2 3 0 2 5 7 c 8 2 1 e . p a t c h " ;
sha256 = " s h a 2 5 6 : 0 6 q n 7 x 7 3 z b c c m d 8 y c j 4 6 a 2 9 x 2 r r 6 q j w g 0 r r 8 3 1 w c 2 g c 6 q 2 k 9 d 2 g 0 " ;
} )
] ;
cmakeFlags = let
@ -40,7 +35,7 @@ stdenv.mkDerivation rec {
" - D M Y S Q L _ I N C L U D E _ D I R = ${ mariadb-connector-c . dev } / i n c l u d e / m a r i a d b "
" - D M Y S Q L _ L I B = ${ mariadb-connector-c . out } / l i b / m a r i a d b / l i b m y s q l c l i e n t . a "
" - D I C I N G A 2 _ P L U G I N D I R = b i n "
" - D I C I N G A 2 _ U N I T Y _ B U I L D = n o "
" - D I C I N G A 2 _ L T O _ B U I L D = y e s "
# Features
( mkFeatureFlag " M Y S Q L " withMysql )
( mkFeatureFlag " P G S Q L " withPostgresql )
@ -54,23 +49,28 @@ stdenv.mkDerivation rec {
" - D I C I N G A 2 _ U S E R = i c i n g a 2 "
" - D I C I N G A 2 _ G R O U P = i c i n g a 2 "
" - D I C I N G A 2 _ G I T _ V E R S I O N _ I N F O = O F F "
" - D I C I N G A 2 _ W I T H _ T E S T S = O F F "
" - D U S E _ S Y S T E M D = O N "
] ;
outputs = [ " o u t " " d o c " ] ;
buildInputs = [ boost openssl systemd ]
++ lib . optional withPostgresql postgresql ;
nativeBuildInputs = [ cmake flex bison patchelf ] ;
doCheck = true ;
checkInputs = [ tzdata ] ; # legacytimeperiod/dst needs this
postFixup = ''
rm - r $ out/etc/logrotate.d $ out/etc/sysconfig $ out/lib/icinga2/prepare-dirs
# Fix hardcoded paths
sed - i ' s:/usr/bin/::g' $ out/etc/icinga2/scripts /*
# Cleanup sbin
# Get rid of sbin
sed - i ' s/sbin/bin/g ' $ out/lib/icinga2/safe-reload
sed - i ' s/sbin/bin/g ' $ out/bin/icinga2
rm $ out/sbin
$ { lib . optionalString withMysql ''
@ -83,18 +83,10 @@ stdenv.mkDerivation rec {
'' }
'' ;
vim = stdenv . mkDerivation {
pname = " v i m - i c i n g a 2 " ;
inherit version src ;
dontConfigure = true ;
dontBuild = true ;
installPhase = ''
mkdir - p $ out/share/vim-plugins
cp - r tools/syntax/vim $ out/share/vim-plugins/icinga2
'' ;
} ;
vim = runCommand " v i m - i c i n g a 2 - ${ version } " { } ''
mkdir - p $ out/share/vim-plugins
cp - r " ${ src } / t o o l s / s y n t a x / v i m " $ out/share/vim-plugins/icinga2
'' ;
meta = {
description = " O p e n s o u r c e m o n i t o r i n g s y s t e m " ;