diff options
Diffstat (limited to 'linhes/zabbix/PKGBUILD')
-rw-r--r-- | linhes/zabbix/PKGBUILD | 240 |
1 files changed, 240 insertions, 0 deletions
diff --git a/linhes/zabbix/PKGBUILD b/linhes/zabbix/PKGBUILD new file mode 100644 index 0000000..88bd595 --- /dev/null +++ b/linhes/zabbix/PKGBUILD @@ -0,0 +1,240 @@ +# Maintainer: Bartłomiej Piotrowski <bpiotrowski@archlinux.org> +# Maintainer: Florian Pritz <bluewind@xinu.at> +# Maintainer: Robin Candau <antiz@archlinux.org> + +pkgbase=zabbix +pkgname=(zabbix-server zabbix-agent{,2} zabbix-proxy zabbix-frontend-php zabbix-web-service) +pkgver=6.4.12 +pkgrel=1 +arch=(x86_64) +url='https://www.zabbix.com/' +license=(GPL) +makedepends=(libxml2 unixodbc net-snmp mariadb-libs libldap libevent go pkgconfig pcre2 openipmi) +source=("https://cdn.zabbix.com/zabbix/sources/stable/${pkgver%.*}/zabbix-${pkgver}.tar.gz" + zabbix-agent.{service,sysusers,tmpfiles} + zabbix-agent2.service + zabbix-server-mysql.service zabbix-server.{sysusers,tmpfiles} + zabbix-proxy-mysql.service zabbix-proxy.{sysusers,tmpfiles} + zabbix-web-service.{service,sysusers,tmpfiles}) + +sha512sums=('f2da55ddd165ad1f126ddc65368bbcbe1cc36a057fc297f7c804bed7e6afc7688289f9e03d3f81962d6ae5c7b05d97389161aeca835cfd2abcbdec52ca7ef106' + '8c1fa2676bc0ef91bc39ec5f97b4d3ba5c365d063420455a3785121a54e120bc5afeacde42a48f4509c115f940dcc3b6c2f43044a7fbfb421182fc93b22a2444' + '3ab3ac1acc7e35c8896157aef601ebc30815237ac5252cbd0c1ecb26eeaf9eccf5c49938ae8c85bb79a6f95f607f082f6b80ed660829599ec03aa626cca6d3dc' + 'ca6b4779de23829dfdd80ee21e924fbe4e2754f4e693bed4b1a2aa846cd87d150e399b1169d7fe58d30c50ed837c1b8254e580de420267d0a1834d6dc409c43d' + 'c57dfcc13b290f4120d1185339bd2d6b1ea7a2ca0c98dca8632d4fd8fe462a42cb35e8a88895eb8ee390c55cf0ffb90b544f23fefbf059b49c06e5373d0b8af2' + '130497775093a4198b6b5f734c9da240f1e61800c4c13d9879213c7e62698f7fb885b42900c6186271a5da2d4db438b5c6e858be035bb42319f8fc0b8a8d3ce6' + '4254d3b13ff0d19a8e207f709c10ea59dbb6d4f333d862b1611a0fa4ced199e9a32313e88d8abadc129c1e4001b182c0545bcc84117d218116a8c524de88850e' + 'b6d548a26f845ef1a39724e3273aa521715272e20a0038144f86d377a26dfec6e3e129404cfda77632cad2f5cd6bab4a33f70a26c8c67b0d0b2abb3678ad2d83' + '94701f34fe5df4859c6a4d0459c16062374e8f89f4f51c414e71c9c2db14f61e087721e68dddb3e8d88bf1c097477c1a21e27ba4705fd07d88c60adb41acc1be' + '7c1072a8cd5837095f857b50124cb45d1bdbddbce108f6f067a35c3c9ebb1ad0502ef617dfa10f9c843631220177a6286a97b1c2a46539200be72fa83cb23b99' + '64042ddf511b56b2a5a311e34643f4e049c09d909ea65b7343a8a9637f33dc59f2b1342201290ca0774cbcbf616096b3696982047fb622b7d51afb5eceb298dd' + '545bb284ac28386f8b9f33f0c5066bb73b3634fab8760861bc172fe83897f22e54ecaf186970f0ef178256c9ff152a3e806636145a77af78964f7af0fdcec1a1' + '2766787aaeef2f48909c52deb411b47971931a972282f701c401f8315264c8817fc1f9f49a2672152c78a0ebba7d72329c18b441e134c5ec3db5f12681b6e590' + '309f55c8c381364eca6d31c4709a0ebb7e04cefad9e51f44173d839a58e7f8e95e3c678922f9e1fe42cff90dba5144cc7ee3a6e1c236b079b501c0e08ad2152d') + +prepare() { + cd $pkgbase-$pkgver + sed -i \ + -e '/^LogFile=.*/d' \ + -e 's/# LogType=file/LogType=system/' \ + conf/zabbix_{agentd,proxy,server}.conf src/go/conf/zabbix_web_service.conf + + autoreconf -fi + +} + +build() { + export GOPATH="$srcdir"/go + export AGENT_LDFLAGS="${LDFLAGS}" + + _configure_flags=( + --disable-static + --prefix=/usr + --infodir=/usr/share/info + --mandir=/usr/share/man + --sysconfdir=/etc/zabbix + --enable-agent + --enable-agent2 + --enable-ipv6 + --with-ldap + --with-libcurl + --with-libxml2 + --with-net-snmp + --with-openssl + --with-libpcre2 + --with-ssh2 + --with-unixodbc + --with-openipmi + --enable-webservice + ) + + cd $pkgbase-$pkgver + + # Make copies since `make clean` removes the files and they cannot be rebuilt easily + for db in mysql; do + mkdir -p ../copies/database/$db + cp database/$db/*.sql ../copies/database/$db/ + done + + for db in mysql; do + ./configure ${_configure_flags[@]} --enable-server --with-$db + make clean + make + mv src/zabbix_server/zabbix_server{,_$db} + done + + for db in mysql; do + ./configure ${_configure_flags[@]} --enable-proxy --with-$db + make clean + make + mv src/zabbix_proxy/zabbix_proxy{,_$db} + done +} + +package_zabbix-server() { + pkgdesc='Monitoring software for networks and applications' + depends=(net-snmp curl libxml2 unixodbc libldap libevent pcre2 openipmi) + optdepends=('mariadb-libs: for MariaDB support' + 'zabbix-web-service: for scheduled PDF report generation') + backup=(etc/zabbix/zabbix_server.conf) + + cd $pkgbase-$pkgver + + for db in mysql; do + install -Dm755 src/zabbix_server/zabbix_server_$db \ + "$pkgdir/usr/bin/zabbix_server_$db" + + install -d "$pkgdir/usr/share/$pkgname/$db" + install -m644 ../copies/database/$db/*.sql -t "$pkgdir/usr/share/$pkgname/$db" + done + install -Dm755 src/zabbix_get/zabbix_get "$pkgdir/usr/bin/zabbix_get" + + install -Dm644 man/zabbix_server.man "$pkgdir/usr/share/man/man8/zabbix_server.8" + install -Dm644 man/zabbix_get.man "$pkgdir/usr/share/man/man1/zabbix_get.1" + + install -Dm644 conf/zabbix_server.conf "$pkgdir/etc/zabbix/zabbix_server.conf" + chown 170:170 "$pkgdir/etc/zabbix/zabbix_server.conf" + + install -Dm644 "$srcdir/zabbix-server-mysql.service" \ + "$pkgdir/usr/lib/systemd/system/zabbix-server-mysql.service" + + install -Dm644 "$srcdir/zabbix-server.sysusers" \ + "$pkgdir/usr/lib/sysusers.d/zabbix-server.conf" + install -Dm644 "$srcdir/zabbix-server.tmpfiles" \ + "$pkgdir/usr/lib/tmpfiles.d/zabbix-server.conf" + + # Fix socket paths to avoid 10 day cleanup in /tmp + echo "d /run/$pkgname 750 $pkgname $pkgname" >> "$pkgdir/usr/lib/tmpfiles.d/$pkgname.conf" + sed -i \ + -e "s/# SocketDir=\/tmp/SocketDir=\/run\/$pkgname/" \ + "$pkgdir/etc/zabbix/"*.conf +} + +package_zabbix-agent() { + pkgdesc='Monitoring agent for Zabbix' + depends=(curl pcre2) + backup=(etc/zabbix/zabbix_agentd.conf) + + cd $pkgbase-$pkgver + install -Dm755 src/zabbix_agent/zabbix_agentd "$pkgdir/usr/bin/zabbix_agentd" + install -Dm755 src/zabbix_sender/zabbix_sender "$pkgdir/usr/bin/zabbix_sender" + + install -Dm644 conf/zabbix_agentd.conf "$pkgdir/etc/zabbix/zabbix_agentd.conf" + chown 172:172 "$pkgdir/etc/zabbix/zabbix_agentd.conf" + + install -Dm644 conf/zabbix_agentd/userparameter_examples.conf \ + "$pkgdir/usr/share/zabbix-agent/userparameter_examples.conf" + install -Dm644 conf/zabbix_agentd/userparameter_mysql.conf \ + "$pkgdir/usr/share/zabbix-agent/userparameter_mysql.conf" + + install -Dm644 man/zabbix_agentd.man \ + "$pkgdir/usr/share/man/man8/zabbix_agentd.8" + install -Dm644 man/zabbix_sender.man \ + "$pkgdir/usr/share/man/man1/zabbix_sender.1" + + install -Dm644 "$srcdir/zabbix-agent.service" \ + "$pkgdir/usr/lib/systemd/system/zabbix-agent.service" + install -Dm644 "$srcdir/zabbix-agent.sysusers" \ + "$pkgdir/usr/lib/sysusers.d/zabbix-agent.conf" + install -Dm644 "$srcdir/zabbix-agent.tmpfiles" \ + "$pkgdir/usr/lib/tmpfiles.d/zabbix-agent.conf" +} + +package_zabbix-agent2() { + pkgdesc='Experimental monitoring agent for Zabbix (Agent 2)' + depends=(zabbix-agent) + backup=(etc/zabbix/zabbix_agent2.conf) + + cd $pkgbase-$pkgver + install -Dm755 src/go/bin/zabbix_agent2 "$pkgdir/usr/bin/zabbix_agent2" + install -Dm644 src/go/conf/zabbix_agent2.conf "$pkgdir/etc/zabbix/zabbix_agent2.conf" + chown 172:172 "$pkgdir/etc/zabbix/zabbix_agent2.conf" + mkdir -p "$pkgdir/etc/zabbix/zabbix_agent2.d/plugins.d/" + chown 172:172 "$pkgdir/etc/zabbix/zabbix_agent2.d/plugins.d/" + + install -Dm644 man/zabbix_agent2.man \ + "$pkgdir/usr/share/man/man8/zabbix_agent2.8" + + install -Dm644 "$srcdir/zabbix-agent2.service" \ + "$pkgdir/usr/lib/systemd/system/zabbix-agent2.service" +} + +package_zabbix-proxy() { + pkgdesc='Data collecting proxy for Zabbix' + depends=(net-snmp curl libxml2 unixodbc libldap pcre2 libevent openipmi) + optdepends=('mariadb-libs: for MariaDB support') + backup=(etc/zabbix/zabbix_proxy.conf) + + cd $pkgbase-$pkgver + for db in mysql; do + install -Dm755 src/zabbix_proxy/zabbix_proxy_$db \ + "$pkgdir/usr/bin/zabbix_proxy_$db" + + install -d "$pkgdir/usr/share/$pkgname/$db" + install -m644 ../copies/database/$db/schema.sql -t "$pkgdir/usr/share/$pkgname/$db" + done + install -Dm644 conf/zabbix_proxy.conf "$pkgdir/etc/zabbix/zabbix_proxy.conf" + chown 171:171 "$pkgdir/etc/zabbix/zabbix_proxy.conf" + + install -Dm644 "$srcdir/zabbix-proxy-mysql.service" \ + "$pkgdir/usr/lib/systemd/system/zabbix-proxy-mysql.service" + + install -Dm644 "$srcdir/zabbix-proxy.sysusers" \ + "$pkgdir/usr/lib/sysusers.d/zabbix-proxy.conf" + install -Dm644 "$srcdir/zabbix-proxy.tmpfiles" \ + "$pkgdir/usr/lib/tmpfiles.d/zabbix-proxy.conf" + + # Fix socket paths to avoid 10 day cleanup in /tmp + echo "d /run/$pkgname 750 $pkgname $pkgname" >> "$pkgdir/usr/lib/tmpfiles.d/$pkgname.conf" + sed -i \ + -e "s/# SocketDir=\/tmp/SocketDir=\/run\/$pkgname/" \ + "$pkgdir/etc/zabbix/"*.conf +} + +package_zabbix-frontend-php() { + pkgdesc='PHP frontend for Zabbix' + depends=(zabbix-server php php-gd) + + cd $pkgbase-$pkgver + install -d "$pkgdir/usr/share/webapps/zabbix" + cp -a ui/* "$pkgdir/usr/share/webapps/zabbix" + chown 33:33 ${pkgdir}/usr/share/webapps/zabbix/conf/ # write access for http user +} + +package_zabbix-web-service() { + pkgdesc='Zabbix web service used to generate and send scheduled reports' + depends=(chromium) + backup=(etc/zabbix/zabbix_web_service.conf) + + cd $pkgbase-$pkgver + install -Dm755 src/go/bin/zabbix_web_service "$pkgdir/usr/bin/zabbix_web_service" + install -Dm644 src/go/conf/zabbix_web_service.conf "$pkgdir/etc/zabbix/zabbix_web_service.conf" + chown 173:173 "$pkgdir/etc/zabbix/zabbix_web_service.conf" + + install -Dm644 "$srcdir/zabbix-web-service.service" \ + "$pkgdir/usr/lib/systemd/system/zabbix-web-service.service" + install -Dm644 "$srcdir/zabbix-web-service.sysusers" \ + "$pkgdir/usr/lib/sysusers.d/zabbix-web-service.conf" + install -Dm644 "$srcdir/zabbix-web-service.tmpfiles" \ + "$pkgdir/usr/lib/tmpfiles.d/zabbix-web-service.conf" +} |