aboutsummaryrefslogblamecommitdiffstats
path: root/community/zabbix/APKBUILD
blob: 705fa6e2a7ed0db334a670f4b708d0f7960690ab (plain) (tree)
1
2
3
4
5
6
7
8
9
                                                   
                                           
                                                      
                                                   
              
            
        
                                                             
                           
          
                          
               
         
                                                                          
                                                                       
                                                                       
                                                                       
                                                                             
                                                            
                      
                              

                  
                                     
                                                                                      
                                                                    
                                                           
                                                                          
                           
                           

                           



                               
                                

         
                                   



                       

           


                       

                                           
                                                             

                                                                                      
                                                                    
            


         
                                     
                                   
                                                  
                                                 
                                                   



                                         
                                        
                                        

                                         
                                     
                                     
                         




                                               
                                              


                                                               
                                  





                                                         
                                                   






                                                         

                                                   
                    
                    
            

 


                                        
                                                                


                                                                
                                                                

                                                                
                                               
                                                                 
                                                               
                                                       

                                                             
                                                      
            
                                                         
                                                  
 
 


                                             
                                              
                                                              



                                                        
                             
                
                                      
                                      
                                                                   
                                             
          
                                                         
                                     
                                                              
                                                      
                      




                                                              


                


                                                                




                                         
                                                             
                                    
                                                                   




                                            
                               

                                                     
                                                 

 



                                                 












                                                                       
                                                               


                                                          

 
                                                                                                                                                                 






                                                                                                                                                         
                                                                                                                                                           
# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Contributor: Jeff Bilyk <jbilyk at gmail>
# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=zabbix
pkgver=4.0.9
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"
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/$pkgname/$pkgname-$pkgver.tar.gz
	zabbix-server.initd
	zabbix-server.confd
	zabbix-agentd.initd
	zabbix-proxy.initd

	zabbix-getloadavg.patch
	automake.patch
	musl-fix-includes.patch
	zabbix_server.conf.patch
	"

builddir="$srcdir"/$pkgname-$pkgver

# 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
			"
	# 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
	for i in agentd proxy server; 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
	mv "$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
		mv "$builddir-$1"/src/zabbix_server/zabbix_server \
			"$subpkgdir"/usr/sbin
	fi
	mv "$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%/*}
		mv "$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
	mv "$builddir-postgresql"/src/zabbix_get/zabbix_get \
		"$subpkgdir"/usr/bin
        mv "$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
	mv "$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
	mv "$builddir-postgresql"/src/zabbix_agent/zabbix_agentd \
		"$subpkgdir"/usr/sbin
}

agent_openrc() {
	pkgdesc="Zabbix Network Monitoring Agent (OpenRC init scripts)"
	depends=openrc
	install_if="openrc $pkgname-agent=$pkgver-r$pkgrel"

	install -D -m0644 "$builddir"/conf/zabbix_agentd.conf \
		"$subpkgdir"/etc/zabbix/zabbix_agentd.conf
	install -D -m0755 "$srcdir"/zabbix-agentd.initd \
		"$subpkgdir"/etc/init.d/zabbix-agentd
}

sha512sums="4e04d80490f43d2e7833a4e11dbc7ce0ed70dc1f43653eeff923f5bfa16bbeedf37597599d68e0de3194820501d896d785a20d6ae0dce9328c458fd711a6a7bf  zabbix-4.0.9.tar.gz
9998ee172a28002d98bacc3f76038ff52b8cf2b206e101418d76b4ca3de94afaf92cb4f7a6235ecf177f74beb9dd3ea1f3983c4f164b4f60bb601acba65aa175  zabbix-server.initd
9c06527bf653c40585fa7eeb3f7a0b2fc454031d24cd0d1633aed87b78a681c5227a193c5b9fcfcea0839135874e27ba7dd9b198573f905f680a2856f79e9512  zabbix-server.confd
523013cab3ba79cbc00db92f09d4c5d514fd6aa9cbebf8f29227dc91fbc19d2f8375af74c21d2037e4f3380a818f808194dbc94e69709ef2cf90f66e715895c4  zabbix-agentd.initd
a26e7ac422ff60a4b8eed3603022c3a1bde640870bb9286ab061c3cb5c2fd7e91ddb317cb3d1cf61034adda0a080fc212ad416c9e2853a1deb03c5279753f4e2  zabbix-proxy.initd
9fc413b11a01c8202c7ee1c7950d6ca3de2d2d6cd01bea994cd4bc412533b53c4e4b1f58fc3c8df16ea70902053e278e2c5dcc936ce3e0a686a6eac62310ef53  zabbix-getloadavg.patch
7f70dfd602aa164ec8cc65ebb7e8274c685975f6aea9051933928051b8d9b6e368e5a673a07e7084a2105468c5085d72fa7b9f934460f10648d594f28f031a91  automake.patch
72709df7624d99b2eaab8d91d95167580e80da10b3ac65b7f27f12d858f0d051d4f9143bcabceae2bfd51aeb7c4ca93e2b74670637ec0925b026e3c52475d52b  musl-fix-includes.patch
183e2d99800d8eebb932cb31c5a3e8742ce6a15e87aec50dc49d9c20b35840eb7ede9920aa62d2c7a5e3f584f5c3df398aa08e93f98fa537a3ba6db63b472a1f  zabbix_server.conf.patch"