aboutsummaryrefslogtreecommitdiffstats
path: root/community/icinga2/APKBUILD
blob: 7a04ea4721ad0ba4eafc4e75f41d8081e06cad46 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
# Contributor: Francesco Colista <fcolista@alpinelinux.org>
# Maintainer: Francesco Colista <fcolista@alpinelinux.org>
pkgname=icinga2
pkgver=2.13.3
pkgrel=0
pkgdesc="An open source host, service and network monitoring program"
url="https://icinga.com"
arch="all !armhf !armv7 !s390x"
license="GPL-2.0-only"
depends="monitoring-plugins"
makedepends="$depends_dev cmake bison flex boost-dev yajl-dev
	libpq-dev mariadb-connector-c-dev openssl1.1-compat-dev libedit-dev samurai"
install="$pkgname.pre-install $pkgname.post-install"
pkgusers="icinga"
pkggroups="icinga icingacmd"
subpackages="$pkgname-doc $pkgname-bash-completion:bashcomp:noarch $pkgname-vim::noarch $pkgname-openrc"
source="$pkgname-$pkgver.tar.gz::https://github.com/Icinga/icinga2/archive/v$pkgver.tar.gz
	$pkgname.initd
	avoid-bash-in-scripts.patch
	disable-failing-tests.patch
	"

[ "$CARCH" = "riscv64" ] && options="textrels"

# secfixes:
#   2.13.1-r0:
#     - CVE-2021-37698
#   2.11.3-r1:
#     - CVE-2020-14001

build() {
	if [ "$CBUILD" != "$CHOST" ]; then
		CMAKE_CROSSOPTS="-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_HOST_SYSTEM_NAME=Linux"
	fi
	cmake -B build \
		-DCMAKE_BUILD_TYPE=None \
		-DICINGA2_GIT_VERSION_INFO=OFF \
		-DICINGA2_UNITY_BUILD=FALSE \
		-DCMAKE_INSTALL_PREFIX=/usr \
		-DCMAKE_INSTALL_SYSCONFDIR=/etc \
		-DICINGA2_RUNDIR=/run \
		-DCMAKE_INSTALL_SBINDIR=/usr/sbin \
		-DCMAKE_INSTALL_LIBDIR=/usr/lib \
		-DCMAKE_INSTALL_LOCALSTATEDIR=/var \
		-DICINGA2_SYSCONFIGFILE=/etc/icinga2 \
		-DICINGA2_PLUGINDIR=/usr/lib/monitoring-plugins \
		-DICINGA2_USER=icinga \
		-DICINGA2_GROUP=icingacmd \
		-DICINGA2_COMMAND_GROUP=icingacmd \
		-DINSTALL_SYSTEMD_SERVICE_AND_INITSCRIPT=no \
		-GNinja \
		. $CMAKE_CROSSOPTS
	ninja -C build
}

check() {
	ninja -C build test
}

package() {
	cd "$builddir"/build
	DESTDIR="$pkgdir" ninja install
	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 ..

	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"

	chmod 750 "$pkgdir/etc/icinga2" \
		"$pkgdir/var/lib/icinga2" \
		"$pkgdir/var/spool/icinga2" \
		"$pkgdir/var/cache/icinga2" \
		"$pkgdir/var/log/icinga2"
	mkdir -p "$pkgdir/run/icinga2"
	chown -R icinga:icinga "$pkgdir"/etc/icinga2
	chown -R icinga:icinga "$pkgdir"/var/lib/icinga2
	chown icinga:icinga "$pkgdir"/var/spool/icinga2
	chown -R icinga:icingacmd "$pkgdir"/var/cache/icinga2
	chown -R icinga:icingacmd "$pkgdir"/var/log/icinga2
	chown -R icinga:icingacmd "$pkgdir"/run/icinga2

	install -Dm755 "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
	cat >"$pkgdir"/usr/share/doc/$pkgname/README.alpine <<EOF

Add the web server user to the icingacmd group in order to grant it write
permissions to the external command pipe and livestatus socket:

For nginx, as example:
# adduser nginx icingacmd

For Apache:
# adduser apache icingacmd

For lighttpd:
# adduser lighttpd icingacmd
EOF
}

bashcomp() {
	depends="bash"
	pkgdesc="Bash completions for $pkgname"

	mkdir -p "$subpkgdir"/usr/share/bash-completion/completions
	mv "$pkgdir"/etc/bash_completion.d/$pkgname "$subpkgdir"/usr/share/bash-completion/completions/$pkgname
}

vim() {
	pkgdesc="$pkgdesc (vim syntax)"
	depends=

	mkdir -p "$subpkgdir"/usr/share/vim
	cp -r "$builddir"/tools/syntax/vim "$subpkgdir"/usr/share/vim/vimfiles
}

sha512sums="
818eb565c6d46bfb538d70b9e33bb7424ab6fb98289da9eb947ec1f36b7e3b0e3869db789acd565b5e5b3d8b4819fe991000f4df362e28686dd9e3394cec3743  icinga2-2.13.3.tar.gz
46890756104563b1a4bc60b5952a2d63f5263883cfe702de7ccc4616dfe5b20d380ff1bc190482741a06bcfe7e662ad14a6965e26b9ce916ef56a1248d6b524c  icinga2.initd
523f93ab661e43915241bce70fbecfd6834830a38f5b3dce6f2c856712e2e5a58fe1b5f970d5f23295a1c5e0d811f7e3a5b54acdd74e31112b309e31a9dc05a6  avoid-bash-in-scripts.patch
11b204689b1907919c83ea665aacd358b3b47df4d87935ea11ebf3864174b2de418a75c4c732e66e0c85a856db1b226efd5757caa462efec4b2b3dadd9744f1a  disable-failing-tests.patch
"