1 # Created by: Pakhom Golynga <pg@pakhom.spb.ru>
7 MASTER_SITES= https://cdn.zabbix.com/zabbix/sources/stable/${PORTVERSION:R}/
8 PKGNAMESUFFIX?= -server
9 DISTNAME= zabbix-${PORTVERSION}
11 MAINTAINER= pg@pakhom.spb.ru
12 COMMENT= Enterprise-class open source distributed monitoring (${PKGNAMESUFFIX:S/^-//}) LTS
15 LICENSE_FILE= ${WRKSRC}/COPYING
17 LIB_DEPENDS= libpcre.so:devel/pcre
19 CONFLICTS_INSTALL= zabbix[0-35-9]${PKGNAMESUFFIX} \
20 zabbix[0-9][0-9]${PKGNAMESUFFIX}
22 ZABBIX_BUILD= ${PKGNAMESUFFIX:S/^-//}
24 .if ${ZABBIX_BUILD} != "frontend" # frontend only needs the version/distribution settings
25 .if ${ZABBIX_BUILD} != "agent"
26 CONFIGURE_ARGS+= --cache-file=${WRKSRC}/config.cache \
27 --with-libevent=${LOCALBASE}
28 LIB_DEPENDS+= libevent.so:devel/libevent
29 USE_RC_SUBR= zabbix_${ZABBIX_BUILD}
31 USE_RC_SUBR= zabbix_${ZABBIX_BUILD}d
39 .if ${ZABBIX_BUILD} != "proxy"
40 PLIST_SUB= PROXY="@comment "
45 .if ${ZABBIX_BUILD} == "server"
48 PLIST_SUB+= SERVER="@comment "
51 PLIST_SUB+= PORTVERSION=${PORTVERSION} \
52 ZABBIX_BUILD=${ZABBIX_BUILD}
53 SUB_LIST= ZABBIX_BUILD=${ZABBIX_BUILD}
55 MAKE_ARGS+= ARCH=freebsd
57 CONFIGURE_ARGS+= --datadir=${ETCDIR} \
58 --enable-${ZABBIX_BUILD} \
59 --sysconfdir=${ETCDIR} \
60 --with-iconv=${ICONV_PREFIX}
62 .if ${ZABBIX_BUILD} != "agent" && ${ZABBIX_BUILD} != "java"
63 LIB_DEPENDS+= libnetsnmp.so:net-mgmt/net-snmp
65 CPPFLAGS+= -I${LOCALBASE}/include
67 SUB_FILES= pkg-message
69 CONFIGURE_ARGS+= --with-net-snmp
71 OPTIONS_DEFINE= CURL FPING IPMI IPV6 JABBER LDAP LIBXML2 NMAP SSH UNIXODBC
73 OPTIONS_DEFAULT= CURL FPING MYSQL OPENSSL UNIXODBC
76 FPING_DESC= Build/install fping for ping checks
77 IPMI_DESC= Support for IPMI checks
78 JABBER_DESC= Support for Jabber media type
79 LDAP_DESC= Support for LDAP server checks
80 NMAP_DESC= Build/install nmap for o/s detection
81 SSH_DESC= Support for SSH-based checks
82 UNIXODBC_DESC= Support for database checks via ODBC
83 LIBXML2_DESC= Support for libxml2 (required by monitoring VMware)
85 OPTIONS_SINGLE= DB SSL
86 OPTIONS_SINGLE_DB?= MYSQL ORACLE PGSQL
87 OPTIONS_SINGLE_SSL= GNUTLS OPENSSL
89 MYSQL_CONFIGURE_WITH= mysql
90 MYSQL_USES+= compiler:c11 mysql
92 PGSQL_CONFIGURE_WITH= postgresql
95 SQLITE_CONFIGURE_WITH= sqlite3
96 SQLITE_USES+= sqlite:3
98 ORACLE_CONFIGURE_WITH= oracle
100 LDAP_CONFIGURE_WITH= ldap
101 LDAP_USE= OPENLDAP=yes
103 IPMI_CONFIGURE_WITH= openipmi
104 IPMI_LIB_DEPENDS= libOpenIPMI.so:sysutils/openipmi
106 JABBER_CONFIGURE_WITH= jabber
107 JABBER_LIB_DEPENDS= libiksemel.so:textproc/iksemel
109 FPING_RUN_DEPENDS= fping:net/fping
111 SSH_CONFIGURE_WITH= ssh2
112 SSH_LIB_DEPENDS= libssh2.so:security/libssh2
114 UNIXODBC_CONFIGURE_WITH= unixodbc
115 UNIXODBC_LIB_DEPENDS= libodbc.so:databases/unixODBC
116 .elif ${ZABBIX_BUILD} == "agent"
118 OPTIONS_SINGLE_SSL= GNUTLS OPENSSL
119 .endif # if ${ZABBIX_BUILD} != "agent" && ${ZABBIX_BUILD} != "java"
121 CURL_DESC= Support for web monitoring
122 CURL_CONFIGURE_WITH= libcurl
123 CURL_LIB_DEPENDS= libcurl.so:ftp/curl
125 IPV6_CONFIGURE_ENABLE= ipv6
127 NMAP_RUN_DEPENDS= nmap:security/nmap \
130 LIBXML2_CONFIGURE_WITH= libxml2=${LOCALBASE}
131 LIBXML2_LIB_DEPENDS= libxml2.so:textproc/libxml2
133 OPENSSL_CONFIGURE_WITH= openssl
136 GNUTLS_CONFIGURE_WITH= gnutls
137 GNUTLS_LIB_DEPENDS= libgnutls.so:security/gnutls
139 .include <bsd.port.pre.mk>
142 @${GREP} -rl "/etc/zabbix" ${WRKSRC} \
143 | ${XARGS} ${REINPLACE_CMD} -e 's#/usr/local/etc#${ETCDIR}#g'
145 @${REINPLACE_CMD} -e 's#/usr/sbin/fping#${LOCALBASE}/sbin/fping#g' \
146 ${WRKSRC}/conf/zabbix_*.conf \
147 ${WRKSRC}/src/zabbix_proxy/proxy.c \
148 ${WRKSRC}/src/zabbix_server/server.c
150 .if ${ZABBIX_BUILD} == "server"
151 @${REINPLACE_CMD} -e 's#/tmp/zabbix_server.pid#/var/run/zabbix/zabbix_server.pid#g' \
152 ${WRKSRC}/conf/zabbix_server.conf \
153 ${WRKSRC}/src/zabbix_server/server.c
156 .if ${ZABBIX_BUILD} == "proxy"
157 @${REINPLACE_CMD} -e 's#/tmp/zabbix_proxy.pid#/var/run/zabbix/zabbix_proxy.pid#g' \
158 ${WRKSRC}/conf/zabbix_proxy.conf \
159 ${WRKSRC}/src/zabbix_proxy/proxy.c
162 .if ${ZABBIX_BUILD} == "agent"
163 @${REINPLACE_CMD} -e 's#/tmp/zabbix_agentd.pid#/var/run/zabbix/zabbix_agentd.pid#g' \
164 ${WRKSRC}/conf/zabbix_agentd.conf \
165 ${WRKSRC}/src/zabbix_agent/zabbix_agentd.c
168 .if ${ZABBIX_BUILD} == "java"
169 @${REINPLACE_CMD} -e 's#/tmp/zabbix_java.pid#/var/run/zabbix/zabbix_java.pid#g' \
170 ${WRKSRC}/src/zabbix_java/settings.sh
173 .if ${ZABBIX_BUILD} != "agent"
174 . for d in mysql oracle postgresql sqlite3
176 -e 's|/usr/bin/traceroute|/usr/sbin/traceroute|g' \
177 -e 's|sudo /usr/bin/nmap|sudo ${LOCALBASE}/bin/nmap|g' \
178 ${WRKSRC}/database/${d}/data.sql
181 @${FIND} ${WRKSRC} -type f \( -name '*.bak' -or -name '*.orig' \) \
185 @echo "ac_cv_env_PKG_CONFIG_set=${LOCALBASE}/bin/pkgconf" > ${WRKSRC}/config.cache
188 .if ${ZABBIX_BUILD} == "java"
189 ${MV} ${STAGEDIR}${PREFIX}/sbin/zabbix_java/settings.sh \
190 ${STAGEDIR}${PREFIX}/sbin/zabbix_java/settings.sh.sample
191 @${MKDIR} ${STAGEDIR}/var/run/zabbix
194 .if ${ZABBIX_BUILD} != "agent" && ${ZABBIX_BUILD} != "java"
195 ${MKDIR} ${STAGEDIR}${DATADIR}/${ZABBIX_BUILD:Q}/database
196 @${RM} ${WRKSRC}/database/*/Makefile*
197 (cd ${WRKSRC}/database/ && \
198 ${COPYTREE_SHARE} "ibm_db2 mysql oracle postgresql sqlite3" \
199 ${STAGEDIR}${DATADIR}/${ZABBIX_BUILD:Q}/database/)
201 ${MV} ${STAGEDIR}${ETCDIR}/zabbix_${ZABBIX_BUILD}.conf \
202 ${STAGEDIR}${ETCDIR}/zabbix_${ZABBIX_BUILD}.conf.sample
205 .if ${ZABBIX_BUILD} == "agent"
206 ${MV} ${STAGEDIR}${ETCDIR}/zabbix_${ZABBIX_BUILD}d.conf \
207 ${STAGEDIR}${ETCDIR}/zabbix_${ZABBIX_BUILD}d.conf.sample
211 .include <bsd.port.pre.mk>
214 .include <bsd.port.post.mk>