summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorJulian Brost2018-07-22 12:55:58 +0200
committerJulian Brost2018-07-22 12:55:58 +0200
commit7d0cd9d10d67c270be3f3c5052cab5a4af3622f3 (patch)
tree84fada0f6bb717380b744dcec8ff7458f42ef887
parentbef0d0eee91505fd70c01879e3e54549036c386b (diff)
downloadaur-7d0cd9d10d67c270be3f3c5052cab5a4af3622f3.tar.gz
new version 2.9.0-1
-rw-r--r--.SRCINFO31
-rw-r--r--PKGBUILD153
-rw-r--r--icinga2.changelog6
-rw-r--r--icinga2.install12
-rw-r--r--icinga2.sysusers3
-rw-r--r--icinga2.tmpfiles2
6 files changed, 113 insertions, 94 deletions
diff --git a/.SRCINFO b/.SRCINFO
index ad26a9e87fe4..d0ae0674008e 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
diff --git a/PKGBUILD b/PKGBUILD
index 099ff6fd8dab..3c654cb073b9 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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 -