diff options
-rw-r--r-- | .SRCINFO | 31 | ||||
-rw-r--r-- | PKGBUILD | 153 | ||||
-rw-r--r-- | icinga2.changelog | 6 | ||||
-rw-r--r-- | icinga2.install | 12 | ||||
-rw-r--r-- | icinga2.sysusers | 3 | ||||
-rw-r--r-- | icinga2.tmpfiles | 2 |
6 files changed, 113 insertions, 94 deletions
@@ -1,8 +1,9 @@ pkgbase = icinga2 pkgdesc = An open source host, service and network monitoring program - pkgver = 2.8.4 + pkgver = 2.9.0 pkgrel = 1 url = http://www.icinga.org + install = icinga2.install changelog = icinga2.changelog arch = i686 arch = x86_64 @@ -11,29 +12,23 @@ pkgbase = icinga2 makedepends = cmake makedepends = libmariadbclient makedepends = postgresql-libs - makedepends = wxgtk + makedepends = systemd depends = boost-libs depends = libedit + depends = libsystemd depends = openssl depends = yajl - source = https://github.com/Icinga/icinga2/archive/v2.8.4.tar.gz - sha256sums = 36f6ae3ccd5d93599459ee093011e6b64f0c56cc16bc28d37e2e6acd0c63aae6 - -pkgname = icinga2-common - pkgdesc = Common files for Icinga2 - -pkgname = icinga2 - install = icinga2.install - depends = icinga2-common optdepends = monitoring-plugins: plugins needed for icinga checks optdepends = libmariadbclient: for MySQL support optdepends = postgresql-libs: for PostgreSQL support + replaces = icinga2-common backup = etc/default/icinga2 backup = etc/icinga2/features-available/api.conf backup = etc/icinga2/features-available/checker.conf backup = etc/icinga2/features-available/command.conf backup = etc/icinga2/features-available/compatlog.conf backup = etc/icinga2/features-available/debuglog.conf + backup = etc/icinga2/features-available/elasticsearch.conf backup = etc/icinga2/features-available/gelf.conf backup = etc/icinga2/features-available/graphite.conf backup = etc/icinga2/features-available/ido-mysql.conf @@ -48,12 +43,16 @@ pkgname = icinga2 backup = etc/icinga2/features-available/syslog.conf backup = etc/icinga2/constants.conf backup = etc/icinga2/icinga2.conf - backup = etc/icinga2/init.conf + backup = etc/icinga2/scripts/mail-host-notification.sh + backup = etc/icinga2/scripts/mail-service-notification.sh backup = etc/icinga2/zones.conf backup = etc/logrotate.d/icinga2 + source = https://github.com/Icinga/icinga2/archive/v2.9.0.tar.gz + source = icinga2.tmpfiles + source = icinga2.sysusers + sha256sums = 74fe8a14c315f5a01831cca88bd7382a0e6e8ecbb90a1c58054a1bcca622f40d + sha256sums = 1302b333f49ead14f8808a379535971501d3a0c1ba02a7bf7b4406b7d27c754c + sha256sums = 2f946a33ea50a3c4400a81acd778e6411ffe5e2257a98004288b84a64f382810 -pkgname = icinga-studio - pkgdesc = Graphical tool for debugging and testing the Icinga2 API - depends = icinga2-common - depends = wxgtk +pkgname = icinga2 @@ -1,26 +1,59 @@ -# Maintainer: Malte Rabenseifner <mail@malte-rabenseifner.de> # Maintainer: Julian Brost <julian@0x4a42.net> +# Contributor: Malte Rabenseifner <mail@malte-rabenseifner.de> # Contributor: bebehei <bebe@bebehei.de> -pkgname=('icinga2-common' 'icinga2' 'icinga-studio') -pkgbase=icinga2 -pkgver=2.8.4 +pkgname='icinga2' +pkgver=2.9.0 pkgrel=1 pkgdesc="An open source host, service and network monitoring program" license=('GPL') arch=('i686' 'x86_64') url="http://www.icinga.org" -depends=('boost-libs' 'libedit' 'openssl' 'yajl') -makedepends=('boost' 'cmake' 'libmariadbclient' 'postgresql-libs' 'wxgtk') +depends=('boost-libs' 'libedit' 'libsystemd' 'openssl' 'yajl') +optdepends=('monitoring-plugins: plugins needed for icinga checks' + 'libmariadbclient: for MySQL support' + 'postgresql-libs: for PostgreSQL support') +makedepends=('boost' 'cmake' 'libmariadbclient' 'postgresql-libs' 'systemd') +replaces=('icinga2-common') +backup=(etc/default/icinga2 + etc/icinga2/features-available/api.conf + etc/icinga2/features-available/checker.conf + etc/icinga2/features-available/command.conf + etc/icinga2/features-available/compatlog.conf + etc/icinga2/features-available/debuglog.conf + etc/icinga2/features-available/elasticsearch.conf + etc/icinga2/features-available/gelf.conf + etc/icinga2/features-available/graphite.conf + etc/icinga2/features-available/ido-mysql.conf + etc/icinga2/features-available/ido-pgsql.conf + etc/icinga2/features-available/influxdb.conf + etc/icinga2/features-available/livestatus.conf + etc/icinga2/features-available/mainlog.conf + etc/icinga2/features-available/notification.conf + etc/icinga2/features-available/opentsdb.conf + etc/icinga2/features-available/perfdata.conf + etc/icinga2/features-available/statusdata.conf + etc/icinga2/features-available/syslog.conf + etc/icinga2/constants.conf + etc/icinga2/icinga2.conf + etc/icinga2/scripts/mail-host-notification.sh + etc/icinga2/scripts/mail-service-notification.sh + etc/icinga2/zones.conf + etc/logrotate.d/icinga2) +install='icinga2.install' changelog="icinga2.changelog" -source=("https://github.com/Icinga/$pkgbase/archive/v$pkgver.tar.gz") -sha256sums=('36f6ae3ccd5d93599459ee093011e6b64f0c56cc16bc28d37e2e6acd0c63aae6') +source=("https://github.com/Icinga/$pkgname/archive/v$pkgver.tar.gz" + "$pkgname.tmpfiles" + "$pkgname.sysusers") +sha256sums=('74fe8a14c315f5a01831cca88bd7382a0e6e8ecbb90a1c58054a1bcca622f40d' + '1302b333f49ead14f8808a379535971501d3a0c1ba02a7bf7b4406b7d27c754c' + '2f946a33ea50a3c4400a81acd778e6411ffe5e2257a98004288b84a64f382810') build() { - mkdir -p "$srcdir/$pkgbase-$pkgver/build" - cd "$srcdir/$pkgbase-$pkgver/build" + mkdir -p "$srcdir/$pkgname-$pkgver/build" + cd "$srcdir/$pkgname-$pkgver/build" - cmake "$srcdir/$pkgbase-$pkgver" \ + cmake "$srcdir/$pkgname-$pkgver" \ -DCMAKE_INSTALL_PREFIX=/usr \ -DCMAKE_INSTALL_SYSCONFDIR=/etc \ -DICINGA2_RUNDIR=/run \ @@ -30,78 +63,64 @@ build() { -DICINGA2_SYSCONFIGFILE=/etc/default/icinga2 \ -DICINGA2_PLUGINDIR=/usr/lib/monitoring-plugins \ -DUSE_SYSTEMD=ON \ - -DICINGA2_WITH_STUDIO=ON \ - -DLOGROTATE_HAS_SU=OFF \ + -DLOGROTATE_HAS_SU=OFF make } -package_icinga2-common() { - pkgdesc="Common files for Icinga2" - - cd "$srcdir/$pkgbase-$pkgver/build" - make DESTDIR="$pkgdir" install - rm -r $pkgdir/{etc,run,var} - rm -r $pkgdir/usr/{bin,share} - rm -r $pkgdir/usr/lib/monitoring-plugins - rm -r $pkgdir/usr/lib/systemd - rm -r $pkgdir/usr/lib/icinga2/{prepare-dirs,safe-reload,sbin} -} - -package_icinga2() { - depends=('icinga2-common') - optdepends=('monitoring-plugins: plugins needed for icinga checks' - 'libmariadbclient: for MySQL support' - 'postgresql-libs: for PostgreSQL support') - backup=(etc/default/icinga2 - etc/icinga2/features-available/{api,checker,command,compatlog}.conf - etc/icinga2/features-available/{debuglog,gelf,graphite}.conf - etc/icinga2/features-available/{ido-mysql,ido-pgsql,influxdb,livestatus,mainlog}.conf - etc/icinga2/features-available/{notification,opentsdb,perfdata,statusdata,syslog}.conf - etc/icinga2/{constants,icinga2,init,zones}.conf - etc/logrotate.d/icinga2) - install='icinga2.install' - - cd "$srcdir/$pkgbase-$pkgver/build" +package() { + cd "$srcdir/$pkgname-$pkgver/build" make DESTDIR="$pkgdir" install + # move default config to conf.d.example mv "$pkgdir/etc/icinga2/conf.d" "$pkgdir/etc/icinga2/conf.d.example" mkdir "$pkgdir/etc/icinga2/conf.d" - rm "$pkgdir/etc/icinga2/features-enabled/checker.conf" - rm "$pkgdir/etc/icinga2/features-enabled/mainlog.conf" - rm "$pkgdir/etc/icinga2/features-enabled/notification.conf" - rm -r "$pkgdir/run" - - mkdir -p "$pkgdir/usr/lib/tmpfiles.d" - cat > "$pkgdir/usr/lib/tmpfiles.d/icinga2.conf" <<- EOF - d /run/icinga2 0750 icinga icingacmd - - d /run/icinga2/cmd 2750 icinga icingacmd - - EOF - - cd "$srcdir/$pkgbase-$pkgver" - - install -Dm644 tools/syntax/vim/ftdetect/icinga2.vim "$pkgdir/usr/share/vim/vimfiles/ftdetect/icinga2.vim" - install -Dm644 tools/syntax/vim/syntax/icinga2.vim "$pkgdir/usr/share/vim/vimfiles/syntax/icinga2.vim" - install -Dm644 tools/syntax/nano/icinga2.nanorc "$pkgdir/usr/share/nano/icinga2.nanorc" + # restrict some filesystem locations by default chmod 750 "$pkgdir/etc/icinga2" \ "$pkgdir/var/lib/icinga2" \ "$pkgdir/var/spool/icinga2" \ "$pkgdir/var/cache/icinga2" \ "$pkgdir/var/log/icinga2" - rm -r $pkgdir/usr/lib/icinga2/lib* - rm $pkgdir/usr/bin/icinga-studio -} + # config files for creating users, groups and tmp files/dirs + install -Dm644 "$srcdir/$pkgname.tmpfiles" "$pkgdir/usr/lib/tmpfiles.d/$pkgname.conf" + install -Dm644 "$srcdir/$pkgname.sysusers" "$pkgdir/usr/lib/sysusers.d/$pkgname.conf" -package_icinga-studio() { - pkgdesc="Graphical tool for debugging and testing the Icinga2 API" - depends=('icinga2-common' 'wxgtk') + # install syntax highlighting for vim and nano + cd "$srcdir/$pkgname-$pkgver" + install -Dm644 tools/syntax/vim/ftdetect/icinga2.vim "$pkgdir/usr/share/vim/vimfiles/ftdetect/icinga2.vim" + install -Dm644 tools/syntax/vim/syntax/icinga2.vim "$pkgdir/usr/share/vim/vimfiles/syntax/icinga2.vim" + install -Dm644 tools/syntax/nano/icinga2.nanorc "$pkgdir/usr/share/nano/icinga2.nanorc" - cd "$srcdir/$pkgbase-$pkgver/build" - make DESTDIR="$pkgdir" install - rm -r $pkgdir/{etc,run,var} - rm -r $pkgdir/usr/{lib,share} - rm $pkgdir/usr/bin/icinga2 + # remove features-enabled symlink from the package so that they are not + # recreated on package upgrades. they are initially set-up in the + # post_install script. + rm "$pkgdir/etc/icinga2/features-enabled/checker.conf" + rm "$pkgdir/etc/icinga2/features-enabled/mainlog.conf" + rm "$pkgdir/etc/icinga2/features-enabled/notification.conf" + # ensure that nothing it left in features enables. make sure to keep the list + # above in sync with post_install. rmdir && mkdir seems to be the easiest way + # to check if the directory was actually empty. + rmdir "$pkgdir/etc/icinga2/features-enabled" && mkdir "$pkgdir/etc/icinga2/features-enabled" || { + error 'Features enabled by make install are inconsistent with those in package().' + ls -l "$pkgdir/etc/icinga2/features-enabled" + return 1 + } + + # check that the backup array contains all files in /etc except those explicitly excluded in the command below. + diff -u \ + <(printf '%s\n' "${backup[@]}" | sort) \ + <(find "$pkgdir/etc" '(' \ + -path "$pkgdir/etc/bash_completion.d" -o \ + -path "$pkgdir/etc/icinga2/conf.d.example" -o \ + -path "$pkgdir/etc/icinga2/zones.d/README" \ + ')' -prune -o -type f -printf 'etc/%P\n' | sort) || { + error 'Backup array and file installed to /etc are inconsistent.' + return 1 + } + + # some cleanup + rm -r "$pkgdir/run" } diff --git a/icinga2.changelog b/icinga2.changelog index 01db0bc094e0..04711d81199b 100644 --- a/icinga2.changelog +++ b/icinga2.changelog @@ -1,3 +1,9 @@ +2.9.0-1 + - New upstream version 2.9.0 + - Icinga Studio was removed from upstream + - The package is no longer a split package as most of the libs are now linked + into the icinga2 binary + 2.8.2-1 - New upstream version 2.8.2, including security fixes for: - CVE-2017-16933: chmod on user-writable symlinks, allowing privilege diff --git a/icinga2.install b/icinga2.install index 14ec50e3d0c8..961c2609826b 100644 --- a/icinga2.install +++ b/icinga2.install @@ -1,7 +1,5 @@ post_install() { - /usr/bin/getent group icinga &> /dev/null || /usr/bin/groupadd -r icinga &> /dev/null - /usr/bin/getent group icingacmd &> /dev/null || /usr/bin/groupadd -r icingacmd &> /dev/null - /usr/bin/getent passwd icinga &> /dev/null || /usr/bin/useradd -r -c "icinga" -M -d /var/spool/icinga2 -g icinga -G icingacmd -s /usr/bin/nologin icinga &> /dev/null + /usr/bin/systemd-sysusers icinga2.conf /usr/bin/chown -R icinga:icinga \ /etc/icinga2 \ @@ -12,8 +10,6 @@ post_install() { /var/cache/icinga2 \ /var/log/icinga2 - /usr/bin/systemd-tmpfiles --create icinga2.conf - /usr/bin/icinga2 feature enable checker &> /dev/null /usr/bin/icinga2 feature enable mainlog &> /dev/null /usr/bin/icinga2 feature enable notification &> /dev/null @@ -25,12 +21,6 @@ pre_remove() { [ -f "/etc/icinga2/features-enabled/notification.conf" ] && /usr/bin/icinga2 feature disable notification &> /dev/null } -post_remove() { - /usr/bin/getent passwd icinga &> /dev/null && /usr/bin/userdel icinga &> /dev/null - /usr/bin/getent group icinga &> /dev/null && /usr/bin/groupdel icinga &> /dev/null - /usr/bin/getent group icingacmd &> /dev/null && /usr/bin/groupdel icingacmd &> /dev/null -} - post_upgrade() { if [[ "$(vercmp "$2" '2.8.0')" -lt 0 ]]; then cat << EOF diff --git a/icinga2.sysusers b/icinga2.sysusers new file mode 100644 index 000000000000..d258789a46fc --- /dev/null +++ b/icinga2.sysusers @@ -0,0 +1,3 @@ +u icinga - "Icinga Monitoring User" /var/spool/icinga2 +g icingacmd - - +m icinga icingacmd diff --git a/icinga2.tmpfiles b/icinga2.tmpfiles new file mode 100644 index 000000000000..d6fe4766c00f --- /dev/null +++ b/icinga2.tmpfiles @@ -0,0 +1,2 @@ +d /run/icinga2 0750 icinga icingacmd - +d /run/icinga2/cmd 2750 icinga icingacmd - |