2020-07-20 16:17:42 +00:00
# $NetBSD: Makefile $
2020-08-19 22:10:37 +00:00
GITHUB_TAG = v${ PKGVERSION_NOREV }
2020-07-20 16:17:42 +00:00
DISTNAME = icinga2-2.9.1
PKGREVISION = 1
CATEGORIES = net sysutils
2020-08-19 22:10:37 +00:00
MASTER_SITES = ${ MASTER_SITE_GITHUB : =icinga/ }
2020-07-20 16:17:42 +00:00
MAINTAINER = ef@math.uni-bonn.de
HOMEPAGE = https://www.icinga.com/products/icinga-2/
COMMENT = Monitoring system
LICENSE = gnu-gpl-v2
ICINGA2_USER ?= icinga
ICINGA2_GROUP ?= icinga
ICINGA2_COMMAND_GROUP ?= icingacmd
PLUGINDIR = ${ PREFIX } /libexec/nagios
PKG_USERS = ${ ICINGA2_USER } :${ ICINGA2_GROUP }
PKG_GROUPS = ${ ICINGA2_GROUP } ${ ICINGA2_COMMAND_GROUP }
PKG_USERS_VARS += ICINGA2_USER
PKG_GROUPS_VARS += ICINGA2_GROUP ICINGA2_COMMAND_GROUP
2020-08-19 22:10:37 +00:00
BUILD_DEFS += ICINGA2_USER ICINGA2_GROUP ICINGA2_COMMAND_GROUP VARBASE PKG_SYSCONFBASE
2020-07-20 16:17:42 +00:00
USE_LANGUAGES = c c++ c++11
USE_CMAKE = yes
USE_TOOLS += flex bison
PKG_RCD_SCRIPTS = YES
RCD_SCRIPTS = icinga2
FILES_SUBST += ICINGA2_USER = ${ ICINGA2_USER }
FILES_SUBST += ICINGA2_GROUP = ${ ICINGA2_GROUP } ICINGA2_COMMAND_GROUP = ${ ICINGA2_COMMAND_GROUP }
FILES_SUBST += NAGIOS_PLUGIN_STATE_DIRECTORY = ${ VARBASE } /spool/nagios
FILES_SUBST += RUNDIR = ${ RUNDIR }
PKG_SYSCONFSUBDIR = icinga2
EGDIR_PARENT = ${ PREFIX } /share/examples
EGDIR = ${ EGDIR_PARENT } /icinga2
DOCDIR = ${ PREFIX } /share/doc/icinga2
INSTALLATION_DIRS += ${ EGDIR } ${ DOCDIR }
INSTALLATION_DIRS += ${ EGDIR_PARENT } /bash_completion.d
#! intall into BASHCOMPDIR=${PREFIX}/share/bash-completion/completions?
INSTALLATION_DIRS += ${ EGDIR } /conf.d
INSTALLATION_DIRS += ${ EGDIR } /features-available
INSTALLATION_DIRS += ${ EGDIR } /scripts
INSTALLATION_DIRS += ${ EGDIR } /zones.d
. i n c l u d e "../../mk/bsd.prefs.mk"
. i n c l u d e "options.mk"
RUNDIR_PARENT = ${ VARBASE } /run
RUNDIR = ${ RUNDIR_PARENT } /icinga2
2020-08-19 22:10:37 +00:00
SPOOLDIR_PARENT = ${ VARBASE } /spool
SPOOLDIR = ${ SPOOLDIR_PARENT } /icinga2
PKG_HOME.${ICINGA2_USER} = ${ SPOOLDIR }
2020-07-20 16:17:42 +00:00
# All the _PERMS values are chosen to mimic what icinga2.spec says
MAKE_DIRS += ${ VARBASE } /cache
OWN_DIRS_PERMS += ${ VARBASE } /cache/icinga2 ${ ICINGA2_USER } ${ ICINGA2_COMMAND_GROUP } 0750
MAKE_DIRS += ${ VARBASE } /log
OWN_DIRS_PERMS += ${ VARBASE } /log/icinga2 ${ ICINGA2_USER } ${ ICINGA2_COMMAND_GROUP } 0755 # spec: 0750
OWN_DIRS_PERMS += ${ VARBASE } /log/icinga2/crash ${ ICINGA2_USER } ${ ICINGA2_GROUP } 0750
.if !empty(PKG_OPTIONS : Micinga 2-compat )
OWN_DIRS_PERMS += ${ VARBASE } /log/icinga2/compat ${ ICINGA2_USER } ${ ICINGA2_COMMAND_GROUP } 0750
OWN_DIRS_PERMS += ${ VARBASE } /log/icinga2/archive ${ ICINGA2_USER } ${ ICINGA2_COMMAND_GROUP } 0750
. e n d i f
MAKE_DIRS += ${ VARBASE } /lib
OWN_DIRS_PERMS += ${ VARBASE } /lib/icinga2 ${ ICINGA2_USER } ${ ICINGA2_COMMAND_GROUP } 0750
#OWN_DIRS+= ${VARBASE}/lib/icinga2/api
#OWN_DIRS+= ${VARBASE}/lib/icinga2/api/log
#OWN_DIRS+= ${VARBASE}/lib/icinga2/api/repository
#OWN_DIRS+= ${VARBASE}/lib/icinga2/api/zones
# These need to be created in the RC script since RUNDIR may reside on a tempfs
#MAKE_DIRS+= ${RUNDIR_PARENT}
#OWN_DIRS_PERMS+= ${RUNDIR} ${ICINGA2_USER} ${ICINGA2_COMMAND_GROUP} 0751 # spec: 0750
#OWN_DIRS_PERMS+= ${RUNDIR}/cmd ${ICINGA2_USER} ${ICINGA2_COMMAND_GROUP} 2750
MAKE_DIRS += ${ SPOOLDIR_PARENT }
OWN_DIRS_PERMS += ${ SPOOLDIR } ${ ICINGA2_USER } ${ ICINGA2_GROUP } 0750
.if !empty(PKG_OPTIONS : Micinga 2-perfdata )
OWN_DIRS_PERMS += ${ SPOOLDIR } /perfdata ${ ICINGA2_USER } ${ ICINGA2_GROUP } 0770
. e n d i f
OWN_DIRS_PERMS += ${ SPOOLDIR } /tmp ${ ICINGA2_USER } ${ ICINGA2_GROUP } 0750
#OWN_DIRS_PERMS+= ${PKG_SYSCONFDIR} ${REAL_ROOT_USER} ${ICINGA2_GROUP} 0750
OWN_DIRS_PERMS += ${ PKG_SYSCONFDIR } /conf.d ${ ICINGA2_USER } ${ ICINGA2_GROUP } 0750
. f o r f i n a p p c o m m a n d s d o w n t i m e s g r o u p s h o s t s n o t i f i c a t i o n s s e r v i c e s t e m p l a t e s t i m e p e r i o d s u s e r s
CONF_FILES_PERMS += ${ EGDIR } /conf.d/${ f } .conf ${ PKG_SYSCONFDIR } /conf.d/${ f } .conf ${ ICINGA2_USER } ${ ICINGA2_GROUP } 0640
. e n d f o r
OWN_DIRS_PERMS += ${ PKG_SYSCONFDIR } /features-available ${ ICINGA2_USER } ${ ICINGA2_GROUP } 0750
OWN_DIRS_PERMS += ${ PKG_SYSCONFDIR } /features-enabled ${ ICINGA2_USER } ${ ICINGA2_GROUP } 0750
FEATURES = api debuglog mainlog syslog
.if !empty(PKG_OPTIONS : Micinga 2-checker )
FEATURES += checker
. e n d i f
.if !empty(PKG_OPTIONS : Micinga 2-compat )
FEATURES += command compatlog statusdata
. e n d i f
.if !empty(PKG_OPTIONS : Micinga 2-livestatus )
FEATURES += livestatus
. e n d i f
.if !empty(PKG_OPTIONS : Micinga 2-mysql )
FEATURES += ido-mysql
. e n d i f
.if !empty(PKG_OPTIONS : Micinga 2-notification )
FEATURES += notification
. e n d i f
.if !empty(PKG_OPTIONS : Micinga 2-perfdata )
FEATURES += elasticsearch gelf graphite influxdb opentsdb perfdata
. e n d i f
.if !empty(PKG_OPTIONS : Micinga 2-pgsql )
FEATURES += ido-pgsql
. e n d i f
. f o r f i n $ { F E A T U R E S }
CONF_FILES_PERMS += ${ EGDIR } /features-available/${ f } .conf ${ PKG_SYSCONFDIR } /features-available/${ f } .conf ${ ICINGA2_USER } ${ ICINGA2_GROUP } 0640
. e n d f o r
OWN_DIRS += ${ PKG_SYSCONFDIR } /scripts
. f o r f i n m a i l - h o s t - n o t i f i c a t i o n . s h m a i l - s e r v i c e - n o t i f i c a t i o n . s h
CONF_FILES_PERMS += ${ EGDIR } /scripts/${ f } ${ PKG_SYSCONFDIR } /scripts/${ f } ${ ICINGA2_USER } ${ ICINGA2_GROUP } 0755
. e n d f o r
OWN_DIRS_PERMS += ${ PKG_SYSCONFDIR } /zones.d ${ ICINGA2_USER } ${ ICINGA2_GROUP } 0750
. f o r f i n c o n s t a n t s . c o n f i c i n g a 2 . c o n f z o n e s . c o n f z o n e s . d / R E A D M E
CONF_FILES_PERMS += ${ EGDIR } /${ f } ${ PKG_SYSCONFDIR } /${ f } ${ ICINGA2_USER } ${ ICINGA2_GROUP } 0640
. e n d f o r
#OWN_DIRS+= ${PKG_SYSCONFDIR}/keys
#OWN_DIRS+= ${PKG_SYSCONFDIR}/pki
CMAKE_ARGS += -DICINGA2_USER= ${ ICINGA2_USER } -DICINGA2_GROUP= ${ ICINGA2_GROUP }
CMAKE_ARGS += -DICINGA2_GIT_VERSION_INFO= OFF
CMAKE_ARGS += -DICINGA2_COMMAND_GROUP= ${ ICINGA2_COMMAND_GROUP }
#CMAKE_ARGS+= -DICINGA2_UNITY_BUILD=??? # Whether to perform a unity build; defaults to `ON`
#CMAKE_ARGS+= -DICINGA2_LTO_BUILD=??? # Whether to use link time optimization (LTO); defaults to `OFF`
CMAKE_ARGS += -DICINGA2_PLUGINDIR= ${ PLUGINDIR }
CMAKE_ARGS += -DICINGA2_RUNDIR= ${ RUNDIR_PARENT }
CMAKE_ARGS += -DCMAKE_INSTALL_SYSCONFDIR= ${ PKG_SYSCONFBASE } # not PKG_SYSCONFDIR!
#CMAKE_ARGS+= -DICINGA2_SYSCONFIGFILE=??? # Where to put the config file the initscript/systemd pulls it's dirs from; defaults to `CMAKE_INSTALL_PREFIX/etc/sysconfig/icinga2`
CMAKE_ARGS += -DCMAKE_INSTALL_LOCALSTATEDIR= ${ VARBASE }
# For ICINGA2_WITH_XXX see options.mk
CMAKE_ARGS += -DICINGA2_WITH_TESTS= OFF
# The configuration files are installed in etc/icinga2. You can't tell CMAKE
# to put them elsewhere because the program and the config files contain
# references to the config dir. So move them to share/examples after
# installation.
post-install :
${ MV } ${ DESTDIR } ${ PKG_SYSCONFDIR } /* ${ DESTDIR } ${ EGDIR }
CHECK_FILES_SKIP = ${ PREFIX } /etc/bash_completion.d/icinga2
CHECK_FILES_SKIP += ${ PREFIX } /share/examples/icinga2/features-enabled/checker.conf
CHECK_FILES_SKIP += ${ PREFIX } /share/examples/icinga2/features-enabled/mainlog.conf
CHECK_FILES_SKIP += ${ PREFIX } /share/examples/icinga2/features-enabled/notification.conf
#CMAKE_ARGS+= -DCMAKE_SKIP_BUILD_RPATH=FALSE
#CMAKE_ARGS+= -DCMAKE_BUILD_WITH_INSTALL_RPATH=FALSE
#CMAKE_ARGS+= -DCMAKE_INSTALL_RPATH=${PREFIX}/lib/icinga2
#CMAKE_ARGS+= -DCMAKE_INSTALL_RPATH_USE_LINK_PATH=FALSE
LDFLAGS += ${ COMPILER_RPATH_FLAG } ${ PREFIX } /lib/icinga2
. i n c l u d e "../../devel/libexecinfo/buildlink3.mk"
. i n c l u d e "../../security/openssl/buildlink3.mk"
. i n c l u d e "../../devel/yajl/buildlink3.mk"
. i n c l u d e "../../devel/boost-libs/buildlink3.mk"
. i n c l u d e "../../mk/bsd.pkg.mk"