# Contributor: Ɓukasz Jendrysik # Contributor: Jeff Bilyk # Contributor: Leonardo Arena # Maintainer: Kevin Daudt pkgname=zabbix pkgver=4.4.4 pkgrel=0 pkgdesc="Enterprise-class open source distributed monitoring" url="http://www.zabbix.com" arch="all" license="GPL-2.0-or-later" depends="fping" _php=php7 _php_depends="$_php $_php-gd $_php-curl $_php-bcmath $_php-sockets $_php-iconv $_php-xmlreader $_php-xmlwriter $_php-ctype $_php-gettext $_php-session $_php-simplexml $_php-json $_php-fileinfo " makedepends="postgresql-dev curl-dev net-snmp-dev libevent-dev pcre-dev sqlite-dev mariadb-connector-c-dev curl-dev openipmi-dev unixodbc-dev libxml2-dev autoconf automake libssh2-dev gnutls-dev $_php_depends" install="$pkgname.pre-install" pkgusers="zabbix" pkggroups="zabbix" options="!check" # no tests available subpackages="$pkgname-doc $pkgname-agent $pkgname-pgsql $pkgname-mysql $pkgname-sqlite $pkgname-webif::noarch $pkgname-utils $pkgname-setup::noarch $pkgname-openrc $pkgname-agent-openrc:agent_openrc" source="https://downloads.sourceforge.net/zabbix/zabbix-$pkgver.tar.gz zabbix-server.initd zabbix-server.confd zabbix-agentd.initd zabbix-agent2.initd zabbix-proxy.initd zabbix-getloadavg.patch automake.patch musl-fix-includes.patch zabbix_server.conf.patch zabbix_agent2.conf.patch " # Agent2 does not build on x86 atm case $CARCH in x86|armhf|armv7) _build_agent2=false;; *) subpackages="$subpackages $pkgname-agent2 $pkgname-agent2-openrc:agent2_openrc" makedepends="$makedepends go" _build_agent2=true;; esac # security fixes: # 3.0.4-r0: # - CVE N/A ZBX-11023 prepare() { default_prepare autoreconf -fvi # Fix config file locations for file in server agentd proxy; do sed -i "$builddir"/conf/zabbix_$file.conf \ -e 's|SNMPTrapperFile=/tmp|SNMPTrapperFile=/var/log/zabbix|' \ -e 's|PidFile=/tmp|PidFile=/var/run/zabbix|' \ -e 's|LogFile=/tmp|LogFile=/var/log/zabbix|' done } build() { # set default configure flags _configure="--prefix=/usr \ --sysconfdir=/etc/zabbix \ --mandir=/usr/share/man \ --infodir=/usr/share/info \ --enable-agent \ --enable-proxy \ --enable-ipv6 \ --with-net-snmp \ --with-libcurl \ --with-libxml2 \ --with-openipmi \ --with-unixodbc \ --with-ssh2 \ --with-gnutls " if $_build_agent2; then _configure="$_configure --enable-agent2" fi export GOPATH="$builddir" # pass --export-dynamic to the linker # to make zabbix loadable modules work LDFLAGS="$LDFLAGS -Wl,--export-dynamic" # we run build for each db type # make sure prepare is same for each db for db in postgresql mysql sqlite3; do cd "$srcdir" msg "Building for $db" cp -r "$pkgname-$pkgver" "$pkgname-$pkgver-$db" cd "$builddir-$db" case $db in sqlite3) ./configure \ --build=$CBUILD \ --host=$CHOST \ --with-$db \ $_configure ;; *) ./configure \ --build=$CBUILD \ --host=$CHOST \ --enable-server \ --with-$db \ $_configure ;; esac make done } package() { # doing manual install components="agentd proxy server"; if $_build_agent2; then msg "Packaging agent2" components="$components agent2" fi for i in $components; do install -D -m755 "$builddir"/man/zabbix_$i.man \ "$pkgdir"/usr/share/man/man8/zabbix_$i.8 done for i in get sender; do install -D -m755 "$builddir"/man/zabbix_$i.man \ "$pkgdir"/usr/share/man/man1/zabbix_$i.1 done install -d -m0750 -o zabbix -g zabbix \ "$pkgdir"/var/run/zabbix "$pkgdir"/var/log/zabbix install -D -m0644 "$builddir"/conf/zabbix_server.conf \ "$pkgdir"/etc/zabbix/zabbix_server.conf for i in server proxy; do install -D -m0755 "$srcdir"/zabbix-$i.initd \ "$pkgdir"/etc/init.d/zabbix-$i done install -D -m0644 "$srcdir"/zabbix-server.confd \ "$pkgdir"/etc/conf.d/zabbix-server } setup() { pkgdesc="Zabbix images and sql files" depends= mkdir -p "$subpkgdir"/usr/share/zabbix cp -r "$builddir"/database "$subpkgdir"/usr/share/zabbix/ } _do_db() { pkgdesc="Zabbix server with $1 database support" depends="$pkgname $2" local i= mkdir -p "$subpkgdir"/usr/sbin if [ "$1" != "sqlite3" ]; then cp "$builddir-$1"/src/zabbix_server/zabbix_server \ "$subpkgdir"/usr/sbin fi cp "$builddir-$1"/src/zabbix_proxy/zabbix_proxy \ "$subpkgdir"/usr/sbin install -D -m0644 "$builddir"/conf/zabbix_proxy.conf \ "$pkgdir"/etc/zabbix/zabbix_proxy.conf cd "$builddir" for i in upgrades/dbpatches/*/"$1"; do [ -e $i ] || continue mkdir -p "$subpkgdir"/usr/share/zabbix/${i%/*} cp "$i" "$subpkgdir"/usr/share/zabbix/$i done return 0 } pgsql() { _do_db postgresql "!$pkgname-mysql !$pkgname-sqlite";} mysql() { _do_db mysql "!$pkgname-pgsql !$pkgname-sqlite";} sqlite() { _do_db sqlite3 "!$pkgname-pgsql !$pkgname-mysql";} utils() { pkgdesc="Zabbix client utilities" depends= mkdir -p "$subpkgdir"/usr/bin cp "$builddir-postgresql"/src/zabbix_get/zabbix_get \ "$subpkgdir"/usr/bin cp "$builddir-postgresql"/src/zabbix_sender/zabbix_sender \ "$subpkgdir"/usr/bin } webif() { pkgdesc="Zabbix web-interface" depends="$_php_depends" _wwwdir="$subpkgdir"/usr/share/webapps/zabbix mkdir -p $_wwwdir cp -r "$builddir"/frontends/php/* "$_wwwdir" } agent() { pkgdesc="Zabbix Network Monitoring Agent" depends= install="$subpkgname.pre-install" install -d -m0750 -o zabbix -g zabbix \ "$subpkgdir"/var/run/zabbix "$subpkgdir"/var/log/zabbix mkdir -p "$subpkgdir"/usr/sbin cp "$builddir-postgresql"/src/zabbix_agent/zabbix_agentd \ "$subpkgdir"/usr/sbin install -D -m0644 "$builddir"/conf/zabbix_agentd.conf \ "$subpkgdir"/etc/zabbix/zabbix_agentd.conf } agent_openrc() { pkgdesc="Zabbix Network Monitoring Agent (OpenRC init scripts)" depends=openrc install_if="openrc $pkgname-agent=$pkgver-r$pkgrel" install -D -m0755 "$srcdir"/zabbix-agentd.initd \ "$subpkgdir"/etc/init.d/zabbix-agentd } agent2() { pkgdesc="Zabbix Network Monitoring Agent (version 2)" depends= install="$subpkgname.pre-install" install -d -m0750 -o zabbix -g zabbix \ "$subpkgdir"/var/run/zabbix "$subpkgdir"/var/log/zabbix mkdir -p "$subpkgdir"/usr/sbin cp "$builddir-postgresql"/src/go/bin/zabbix_agent2 \ "$subpkgdir"/usr/sbin/zabbix_agent2 install -D -m0644 "$builddir"/src/go/conf/zabbix_agent2.conf \ "$subpkgdir"/etc/zabbix/zabbix_agent2.conf } agent2_openrc() { pkgdesc="Zabbix Network Monitoring Agent 2 (OpenRC init scripts)" depends=openrc install_if="openrc $pkgname-agent2=$pkgver-r$pkgrel" install -D -m0755 "$srcdir"/zabbix-agent2.initd \ "$subpkgdir"/etc/init.d/zabbix-agent2 } sha512sums="deed67b6074f140c189e1e046d6200c1a9d7e7832664b70a6314baf1458a79c8d1ff4923572a492285f3751946640dfbbd198f3545b26dc8e180ab2ec6bc3ef8 zabbix-4.4.4.tar.gz 9998ee172a28002d98bacc3f76038ff52b8cf2b206e101418d76b4ca3de94afaf92cb4f7a6235ecf177f74beb9dd3ea1f3983c4f164b4f60bb601acba65aa175 zabbix-server.initd 9c06527bf653c40585fa7eeb3f7a0b2fc454031d24cd0d1633aed87b78a681c5227a193c5b9fcfcea0839135874e27ba7dd9b198573f905f680a2856f79e9512 zabbix-server.confd 0d50795233ee469e36e9788f8685b16207a37f8a9370e6591688906176e7cb8387ce06f132d7e582a1757fdea7c584a70ccfac39a604da315d71121fa629cbb7 zabbix-agentd.initd fad1bbe50ae42e02b73bcae8f7d91c7e18fb387eba551f9216c844c298003290aaec3bc17239590210cc100d6f39e25a5bba539e99df605de9a98abf5418be66 zabbix-agent2.initd a26e7ac422ff60a4b8eed3603022c3a1bde640870bb9286ab061c3cb5c2fd7e91ddb317cb3d1cf61034adda0a080fc212ad416c9e2853a1deb03c5279753f4e2 zabbix-proxy.initd 9fc413b11a01c8202c7ee1c7950d6ca3de2d2d6cd01bea994cd4bc412533b53c4e4b1f58fc3c8df16ea70902053e278e2c5dcc936ce3e0a686a6eac62310ef53 zabbix-getloadavg.patch 7f70dfd602aa164ec8cc65ebb7e8274c685975f6aea9051933928051b8d9b6e368e5a673a07e7084a2105468c5085d72fa7b9f934460f10648d594f28f031a91 automake.patch 72709df7624d99b2eaab8d91d95167580e80da10b3ac65b7f27f12d858f0d051d4f9143bcabceae2bfd51aeb7c4ca93e2b74670637ec0925b026e3c52475d52b musl-fix-includes.patch 183e2d99800d8eebb932cb31c5a3e8742ce6a15e87aec50dc49d9c20b35840eb7ede9920aa62d2c7a5e3f584f5c3df398aa08e93f98fa537a3ba6db63b472a1f zabbix_server.conf.patch 84cc513fb5593d571e06e13afd0f6cfef78cbca71824f4d79dbaac71dcb7f8c4708a78b354fa4b9b814abc7edc170f513cebd7c247182c200e5fde4f928aa085 zabbix_agent2.conf.patch"