Tweak net-mgmt/icingaweb2-module-businessprocess version 2.2.0_2
[dports.git] / net-mgmt / zabbix4-server / Makefile
1 # Created by: Pakhom Golynga <pg@pakhom.spb.ru>
2
3 PORTNAME=       zabbix4
4 PORTVERSION=    4.0.30
5 PORTREVISION?=  0
6 CATEGORIES=     net-mgmt
7 MASTER_SITES=   https://cdn.zabbix.com/zabbix/sources/stable/${PORTVERSION:R}/
8 PKGNAMESUFFIX?= -server
9 DISTNAME=       zabbix-${PORTVERSION}
10
11 MAINTAINER=     pg@pakhom.spb.ru
12 COMMENT=        Enterprise-class open source distributed monitoring (${PKGNAMESUFFIX:S/^-//}) LTS
13
14 LICENSE=        GPLv2+
15 LICENSE_FILE=   ${WRKSRC}/COPYING
16
17 LIB_DEPENDS=    libpcre.so:devel/pcre
18
19 CONFLICTS_INSTALL=      zabbix[0-35-9]${PKGNAMESUFFIX} \
20                         zabbix[0-9][0-9]${PKGNAMESUFFIX}
21
22 ZABBIX_BUILD=   ${PKGNAMESUFFIX:S/^-//}
23
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}
30 .else
31 USE_RC_SUBR=            zabbix_${ZABBIX_BUILD}d
32 .endif
33
34 USES=           iconv pkgconfig
35
36 USERS=          zabbix
37 GROUPS=         zabbix
38
39 .if ${ZABBIX_BUILD} != "proxy"
40 PLIST_SUB=      PROXY="@comment "
41 .else
42 PLIST_SUB=      PROXY=""
43 .endif
44
45 .if ${ZABBIX_BUILD} == "server"
46 PLIST_SUB+=     SERVER=""
47 .else
48 PLIST_SUB+=     SERVER="@comment "
49 .endif
50
51 PLIST_SUB+=     PORTVERSION=${PORTVERSION} \
52                 ZABBIX_BUILD=${ZABBIX_BUILD}
53 SUB_LIST=       ZABBIX_BUILD=${ZABBIX_BUILD}
54
55 MAKE_ARGS+=             ARCH=freebsd
56 GNU_CONFIGURE=          yes
57 CONFIGURE_ARGS+=        --datadir=${ETCDIR} \
58                         --enable-${ZABBIX_BUILD} \
59                         --sysconfdir=${ETCDIR} \
60                         --with-iconv=${ICONV_PREFIX}
61
62 .if ${ZABBIX_BUILD} != "agent" && ${ZABBIX_BUILD} != "java"
63 LIB_DEPENDS+=   libnetsnmp.so:net-mgmt/net-snmp
64
65 CPPFLAGS+=      -I${LOCALBASE}/include
66
67 SUB_FILES=      pkg-message
68
69 CONFIGURE_ARGS+=        --with-net-snmp
70
71 OPTIONS_DEFINE= CURL FPING IPMI IPV6 JABBER LDAP LIBXML2 NMAP SSH UNIXODBC
72
73 OPTIONS_DEFAULT=        CURL FPING MYSQL OPENSSL UNIXODBC
74 OPTIONS_SUB=            yes
75
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)
84
85 OPTIONS_SINGLE=         DB SSL
86 OPTIONS_SINGLE_DB?=     MYSQL ORACLE PGSQL
87 OPTIONS_SINGLE_SSL=     GNUTLS OPENSSL
88
89 MYSQL_CONFIGURE_WITH=   mysql
90 MYSQL_USES+=            compiler:c11 mysql
91
92 PGSQL_CONFIGURE_WITH=   postgresql
93 PGSQL_USES+=            pgsql
94
95 SQLITE_CONFIGURE_WITH=  sqlite3
96 SQLITE_USES+=           sqlite:3
97
98 ORACLE_CONFIGURE_WITH=  oracle
99
100 LDAP_CONFIGURE_WITH=    ldap
101 LDAP_USE=               OPENLDAP=yes
102
103 IPMI_CONFIGURE_WITH=    openipmi
104 IPMI_LIB_DEPENDS=       libOpenIPMI.so:sysutils/openipmi
105
106 JABBER_CONFIGURE_WITH=  jabber
107 JABBER_LIB_DEPENDS=     libiksemel.so:textproc/iksemel
108
109 FPING_RUN_DEPENDS=      fping:net/fping
110
111 SSH_CONFIGURE_WITH=     ssh2
112 SSH_LIB_DEPENDS=        libssh2.so:security/libssh2
113
114 UNIXODBC_CONFIGURE_WITH=        unixodbc
115 UNIXODBC_LIB_DEPENDS=           libodbc.so:databases/unixODBC
116 .elif ${ZABBIX_BUILD} == "agent"
117 OPTIONS_SINGLE=                 SSL
118 OPTIONS_SINGLE_SSL=             GNUTLS OPENSSL
119 .endif # if ${ZABBIX_BUILD} != "agent" && ${ZABBIX_BUILD} != "java"
120
121 CURL_DESC=              Support for web monitoring
122 CURL_CONFIGURE_WITH=    libcurl
123 CURL_LIB_DEPENDS=       libcurl.so:ftp/curl
124
125 IPV6_CONFIGURE_ENABLE=  ipv6
126
127 NMAP_RUN_DEPENDS=       nmap:security/nmap \
128                         sudo:security/sudo
129
130 LIBXML2_CONFIGURE_WITH= libxml2=${LOCALBASE}
131 LIBXML2_LIB_DEPENDS=    libxml2.so:textproc/libxml2
132
133 OPENSSL_CONFIGURE_WITH= openssl
134 OPENSSL_USES=           ssl
135
136 GNUTLS_CONFIGURE_WITH=  gnutls
137 GNUTLS_LIB_DEPENDS=     libgnutls.so:security/gnutls
138
139 .include <bsd.port.pre.mk>
140
141 post-patch:
142         @${GREP} -rl "/etc/zabbix" ${WRKSRC} \
143           | ${XARGS} ${REINPLACE_CMD} -e 's#/usr/local/etc#${ETCDIR}#g'
144
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
149
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
154 .endif
155
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
160 .endif
161
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
166 .endif
167
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
171 .endif
172
173 .if ${ZABBIX_BUILD} != "agent"
174 .  for d in mysql oracle postgresql sqlite3
175         @${REINPLACE_CMD} \
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
179 .  endfor
180 .endif
181         @${FIND} ${WRKSRC} -type f \( -name '*.bak' -or -name '*.orig' \) \
182                 -exec ${RM} {} +
183
184 pre-configure:
185         @echo "ac_cv_env_PKG_CONFIG_set=${LOCALBASE}/bin/pkgconf" > ${WRKSRC}/config.cache
186
187 post-install:
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
192 .endif
193
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/)
200
201         ${MV} ${STAGEDIR}${ETCDIR}/zabbix_${ZABBIX_BUILD}.conf \
202                 ${STAGEDIR}${ETCDIR}/zabbix_${ZABBIX_BUILD}.conf.sample
203 .endif
204
205 .if ${ZABBIX_BUILD} == "agent"
206         ${MV} ${STAGEDIR}${ETCDIR}/zabbix_${ZABBIX_BUILD}d.conf \
207                 ${STAGEDIR}${ETCDIR}/zabbix_${ZABBIX_BUILD}d.conf.sample
208 .endif
209
210 .else # frontend
211 .include <bsd.port.pre.mk>
212 .endif
213
214 .include <bsd.port.post.mk>