diff options
author | bill-auger <mr.j.spam.me@gmail.com> | 2021-01-27 03:50:32 -0500 |
---|---|---|
committer | bill-auger <mr.j.spam.me@gmail.com> | 2021-01-28 08:25:12 -0500 |
commit | 140939d6f58db93a5132fbdc26918e47dde5bf87 (patch) | |
tree | a4a554c4323d33f8f58ca862706bb2f2ea20cb2e /pcr/icinga2/PKGBUILD | |
parent | f82e9c826ebf0e7d696549d27dcc953aa44c229b (diff) | |
download | abslibre-140939d6f58db93a5132fbdc26918e47dde5bf87.tar.gz abslibre-140939d6f58db93a5132fbdc26918e47dde5bf87.tar.bz2 abslibre-140939d6f58db93a5132fbdc26918e47dde5bf87.zip |
[icinga2]: upgrade to v2.12.3
Diffstat (limited to 'pcr/icinga2/PKGBUILD')
-rw-r--r-- | pcr/icinga2/PKGBUILD | 193 |
1 files changed, 117 insertions, 76 deletions
diff --git a/pcr/icinga2/PKGBUILD b/pcr/icinga2/PKGBUILD index 8ccb63719..8f2769cbd 100644 --- a/pcr/icinga2/PKGBUILD +++ b/pcr/icinga2/PKGBUILD @@ -1,28 +1,81 @@ -# Maintainer (AUR): Malte Rabenseifner <mail@malte-rabenseifner.de> -# Maintainer (AUR): Julian Brost <julian@0x4a42.net> -# Contributor (AUR): bebehei <bebe@bebehei.de> - -# parabola changes and rationale: -# - removed "open source" term from pkgdesc - -pkgname=('icinga2-common' 'icinga2' 'icinga-studio') -pkgbase=icinga2 -pkgver=2.8.1 -pkgrel=1 -pkgdesc="A libre host, service and network monitoring program" +# Maintainer (aur): Julian Brost <julian@0x4a42.net> +# Maintainer (aur): Malte Rabenseifner <mail@malte-rabenseifner.de> +# Contributor: bebehei <bebe@bebehei.de> + +pkgname=icinga2 +pkgver=2.12.3 +pkgrel=2 +pkgdesc="An open source host, service and network monitoring program" +pkgdesc="${pkgdesc/An open source host, service/Host, service,}" license=('GPL') -arch=('i686' 'x86_64' 'armv7h') +arch=('i686' 'x86_64') +arch+=('armv7h') url="http://www.icinga.org" -depends=('boost-libs' 'libedit' 'openssl' 'yajl') -makedepends=('boost' 'cmake' 'libmariadbclient' 'postgresql-libs' 'wxgtk') -source=("https://github.com/Icinga/$pkgbase/archive/v$pkgver.tar.gz") -sha256sums=('83930bf95a5c6562cc31c37ddb01b361665497ef7001e9cc8763fd499a4d709d') +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') +replaces+=('icinga-studio') +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/icingadb.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/init.d/icinga2 + etc/logrotate.d/icinga2) +install='icinga2.install' +changelog="icinga2.changelog" +source=($pkgname-$pkgver.tar.gz::https://github.com/Icinga/$pkgname/archive/v$pkgver.tar.gz + boost-1.74-8184.patch # https://patch-diff.githubusercontent.com/raw/Icinga/icinga2/pull/8184.patch + boost-1.74-8191.patch # https://patch-diff.githubusercontent.com/raw/Icinga/icinga2/pull/8191.patch + boost-1.74-8575.patch # https://patch-diff.githubusercontent.com/raw/Icinga/icinga2/pull/8575.patch + $pkgname.tmpfiles + $pkgname.sysusers) +sha256sums=('56387d5e047df04fd91fdb8db3124eb09325c7377fbcaa11ef063147db816dfb' + 'dc1a2530d1c2c311826443cebaaa3c307f400e6a995414c654f4e6b94ec8b885' + '297c38f5e682ebed1c399997fa3955dfd383b13ae1a9086e73a5272ab1c995cd' + '51578f037ae87ac5336473199ccf31f0097402eb57e73383fbe9899c09063da8' + '1302b333f49ead14f8808a379535971501d3a0c1ba02a7bf7b4406b7d27c754c' + '2f946a33ea50a3c4400a81acd778e6411ffe5e2257a98004288b84a64f382810') + +_is_nonsystemd_host=0 # set this to 1, if building on a non-systemd host (redmine #2969) + + +prepare() { + cd "$srcdir/$pkgname-$pkgver" + + patch -p1 < "$srcdir/8184.patch" + patch -p1 < "$srcdir/8191.patch" + patch -p1 < "$srcdir/8575.patch" +} 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 \ @@ -32,78 +85,66 @@ build() { -DICINGA2_SYSCONFIGFILE=/etc/default/icinga2 \ -DICINGA2_PLUGINDIR=/usr/lib/monitoring-plugins \ -DUSE_SYSTEMD=ON \ - -DICINGA2_WITH_STUDIO=ON \ - -DLOGROTATE_HAS_SU=OFF \ + -DINSTALL_SYSTEMD_SERVICE_AND_INITSCRIPT=ON \ + $( (( _is_nonsystemd_host )) && echo '-DSYSTEMD_INCLUDE_DIR=/usr/include/elogind/' ) \ + -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" } |