zabbix: update to version 6.4.7
[feed/packages.git] / admin / zabbix / Makefile
1 #
2 # Copyright (C) 2006-2015 OpenWrt.org
3 #
4 # This is free software, licensed under the GNU General Public License v2.
5 # See /LICENSE for more information.
6 #
7
8 include $(TOPDIR)/rules.mk
9
10 PKG_NAME:=zabbix
11 PKG_VERSION:=6.4.7
12 PKG_RELEASE:=1
13
14 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
15 PKG_SOURCE_URL:=https://cdn.zabbix.com/zabbix/sources/stable/$(basename $(PKG_VERSION))/ \
16 https://cdn.zabbix.com/zabbix/sources/oldstable/$(basename $(PKG_VERSION))/
17 PKG_HASH:=6b4e81f07de4c82c7994871bea51be4d6427683fa9a7fbe112fd7559b3670e49
18
19 PKG_MAINTAINER:=Etienne CHAMPETIER <champetier.etienne@gmail.com>
20 PKG_LICENSE:=GPL-2.0
21 PKG_LICENSE_FILES:=COPYING
22 PKG_CPE_ID:=cpe:/a:zabbix:zabbix
23
24 PKG_INSTALL:=1
25 PKG_BUILD_PARALLEL:=1
26
27 PKG_CONFIG_DEPENDS:= \
28 CONFIG_ZABBIX_MYSQL \
29 CONFIG_ZABBIX_POSTGRESQL \
30 CONFIG_ZABBIX_SQLITE
31
32 include $(INCLUDE_DIR)/package.mk
33 include $(INCLUDE_DIR)/nls.mk
34
35 define Package/zabbix-proxy/config
36 comment "Database Software"
37
38 choice
39 prompt "Selected Database Software"
40 default ZABBIX_POSTGRESQL
41
42 config ZABBIX_MYSQL
43 bool "MySQL/MariaDB"
44
45 config ZABBIX_POSTGRESQL
46 bool "PostgreSQL"
47
48 config ZABBIX_SQLITE
49 bool "SQLite"
50 endchoice
51 endef
52
53 define Package/zabbix/Default
54 SECTION:=admin
55 CATEGORY:=Administration
56 SUBMENU:=Zabbix
57 TITLE:=Zabbix
58 URL:=https://www.zabbix.com/
59 USERID:=zabbix=53:zabbix=53
60 DEPENDS+=$(ICONV_DEPENDS) +libpcre2 +zlib
61 endef
62
63 define Package/zabbix-agentd
64 $(call Package/zabbix/Default)
65 TITLE+= agentd
66 PROVIDES:=zabbix-agentd
67 VARIANT:=nossl
68 DEFAULT_VARIANT:=1
69 endef
70
71 define Package/zabbix-agentd-openssl
72 $(call Package/zabbix/Default)
73 TITLE+= agentd (with OpenSSL)
74 DEPENDS+= +libopenssl
75 PROVIDES:=zabbix-agentd
76 VARIANT:=openssl
77 endef
78
79 define Package/zabbix-agentd-gnutls
80 $(call Package/zabbix/Default)
81 TITLE+= agentd (with GnuTLS)
82 DEPENDS+= +libgnutls
83 PROVIDES:=zabbix-agentd
84 VARIANT:=gnutls
85 endef
86
87 define Package/zabbix-extra-mac80211
88 $(call Package/zabbix/Default)
89 TITLE+= discovery/userparameters for mac80211
90 DEPENDS = +zabbix-agentd @PACKAGE_MAC80211_DEBUGFS @KERNEL_DEBUG_FS
91 endef
92
93 define Package/zabbix-extra-network
94 $(call Package/zabbix/Default)
95 TITLE+= discovery/userparameters for network
96 DEPENDS = +zabbix-agentd +libubus-lua +lua
97 endef
98
99 define Package/zabbix-extra-wifi
100 $(call Package/zabbix/Default)
101 TITLE+= discovery/userparameters for wifi
102 DEPENDS = +zabbix-agentd +libiwinfo-lua +libubus-lua +lua
103 endef
104
105 define Package/zabbix-sender
106 $(call Package/zabbix/Default)
107 TITLE+= sender
108 PROVIDES:=zabbix-sender
109 VARIANT:=nossl
110 DEFAULT_VARIANT:=1
111 endef
112
113 define Package/zabbix-sender-openssl
114 $(call Package/zabbix/Default)
115 TITLE+= sender (with OpenSSL)
116 DEPENDS+= +libopenssl
117 PROVIDES:=zabbix-sender
118 VARIANT:=openssl
119 endef
120
121 define Package/zabbix-sender-gnutls
122 $(call Package/zabbix/Default)
123 TITLE+= sender (with GnuTLS)
124 DEPENDS+= +libgnutls
125 PROVIDES:=zabbix-sender
126 VARIANT:=gnutls
127 endef
128
129 define Package/zabbix-get
130 $(call Package/zabbix/Default)
131 TITLE+= get
132 PROVIDES:=zabbix-get
133 VARIANT:=nossl
134 DEFAULT_VARIANT:=1
135 endef
136
137 define Package/zabbix-get-openssl
138 $(call Package/zabbix/Default)
139 TITLE+= get (with OpenSSL)
140 DEPENDS+= +libopenssl
141 PROVIDES:=zabbix-get
142 VARIANT:=openssl
143 endef
144
145 define Package/zabbix-get-gnutls
146 $(call Package/zabbix/Default)
147 TITLE+= get (with GnuTLS)
148 DEPENDS+= +libgnutls
149 PROVIDES:=zabbix-get
150 VARIANT:=gnutls
151 endef
152
153 define Package/zabbix-server/Default
154 $(call Package/zabbix/Default)
155 TITLE+= server
156 DEPENDS += +ZABBIX_POSTGRESQL:libpq \
157 +ZABBIX_MYSQL:libmariadbclient \
158 @(!ZABBIX_SQLITE) \
159 +libevent2 \
160 +libevent2-pthreads \
161 +fping
162 endef
163
164 define Package/zabbix-server
165 $(call Package/zabbix-server/Default)
166 PROVIDES:=zabbix-server
167 VARIANT:=nossl
168 DEFAULT_VARIANT:=1
169 endef
170
171 define Package/zabbix-server-openssl
172 $(call Package/zabbix-server/Default)
173 TITLE+= (with OpenSSL)
174 PROVIDES:=zabbix-server
175 DEPENDS+= +libopenssl
176 VARIANT:=openssl
177 endef
178
179 define Package/zabbix-server-gnutls
180 $(call Package/zabbix-server/Default)
181 TITLE+= (with GnuTLS)
182 PROVIDES:=zabbix-server
183 DEPENDS+= +libgnutls
184 VARIANT:=gnutls
185 endef
186
187 define Package/zabbix-server-frontend
188 $(call Package/zabbix/Default)
189 TITLE+= server-frontend
190 DEPENDS += +php8 \
191 +php8-cgi \
192 +php8-mod-gd \
193 +php8-mod-bcmath \
194 +php8-mod-ctype \
195 +php8-mod-xmlreader \
196 +php8-mod-xmlwriter \
197 +php8-mod-session \
198 +php8-mod-sockets \
199 +php8-mod-mbstring \
200 +php8-mod-gettext \
201 +ZABBIX_POSTGRESQL:php8-mod-pgsql \
202 +ZABBIX_MYSQL:php8-mod-mysqli \
203 @(!ZABBIX_SQLITE)
204 endef
205
206 define Package/zabbix-proxy/Default
207 $(call Package/zabbix/Default)
208 TITLE+= proxy
209 DEPENDS += +ZABBIX_POSTGRESQL:libpq \
210 +ZABBIX_MYSQL:libmariadbclient \
211 +ZABBIX_SQLITE:libsqlite3 \
212 +libevent2 \
213 +libevent2-pthreads \
214 +fping
215 endef
216
217 define Package/zabbix-proxy
218 $(call Package/zabbix-proxy/Default)
219 PROVIDES:=zabbix-proxy
220 VARIANT:=nossl
221 DEFAULT_VARIANT:=1
222 endef
223
224 define Package/zabbix-proxy-openssl
225 $(call Package/zabbix-proxy/Default)
226 TITLE+= (with OpenSSL)
227 PROVIDES:=zabbix-proxy
228 DEPENDS+= +libopenssl
229 VARIANT:=openssl
230 endef
231
232 define Package/zabbix-proxy-gnutls
233 $(call Package/zabbix-proxy/Default)
234 TITLE+= (with GnuTLS)
235 PROVIDES:=zabbix-proxy
236 DEPENDS+= +libgnutls
237 VARIANT:=gnutls
238 endef
239
240 define Package/zabbix-extra-mac80211/description
241 An extra package for zabbix-agentd that adds a discovery rule for mac80211 wifi phy and many userparameters.
242 It contains an suid helper to allow zabbix-agentd to still run as zabbix user and not as root.
243 See https://openwrt.org/docs/guide-user/services/network_monitoring/zabbix for ready to use zabbix templates.
244 endef
245
246 define Package/zabbix-extra-network/description
247 An extra package for zabbix-agentd that adds a discovery rule for openwrt network interfaces.
248 The idea here is to discover only interfaces listed in /etc/config/network (discover br-lan and not eth0.1 and wlan0)
249 See https://openwrt.org/docs/guide-user/services/network_monitoring/zabbix for ready to use zabbix templates.
250 endef
251
252 define Package/zabbix-extra-wifi/description
253 An extra package for zabbix-agentd that adds a discovery rule for wifi interfaces and many userparameters.
254 As it uses libiwinfo, it works with all wifi devices supported by openwrt.
255 See https://openwrt.org/docs/guide-user/services/network_monitoring/zabbix for ready to use zabbix templates.
256 endef
257
258 CONFIGURE_ARGS+= \
259 --enable-agent \
260 $(if $(CONFIG_ZABBIX_SQLITE),--disable-server,--enable-server) \
261 --enable-proxy \
262 $(call autoconf_bool,CONFIG_IPV6,ipv6) \
263 --disable-java \
264 $(if $(CONFIG_ZABBIX_MYSQL),--with-mysql) \
265 $(if $(CONFIG_ZABBIX_POSTGRESQL),--with-postgresql) \
266 $(if $(CONFIG_ZABBIX_SQLITE),--with-sqlite3=$(STAGING_DIR)/usr) \
267 --with-libevent=$(STAGING_DIR)/usr/include \
268 --with-libpcre2=$(STAGING_DIR)/usr/include \
269 --with-zlib=$(STAGING_DIR)/usr/include
270
271 ifeq ($(BUILD_VARIANT),openssl)
272 CONFIGURE_ARGS+= --with-openssl="$(STAGING_DIR)/usr"
273 endif
274
275 ifeq ($(BUILD_VARIANT),gnutls)
276 CONFIGURE_ARGS+= --with-gnutls="$(STAGING_DIR)/usr"
277 endif
278
279 CONFIGURE_VARS += \
280 ac_cv_header_sys_sysinfo_h=no
281
282 MAKE_FLAGS += ARCH="linux"
283
284 define Package/zabbix/install/sbin
285 $(INSTALL_DIR) \
286 $(1)/usr/sbin
287
288 $(INSTALL_BIN) \
289 $(PKG_INSTALL_DIR)/usr/sbin/zabbix_$(2) \
290 $(1)/usr/sbin/
291 endef
292
293 define Package/zabbix/install/bin
294 $(INSTALL_DIR) \
295 $(1)/usr/bin
296
297 $(INSTALL_BIN) \
298 $(PKG_INSTALL_DIR)/usr/bin/zabbix_$(2) \
299 $(1)/usr/bin/
300 endef
301
302 define Package/zabbix/install/etc
303 $(INSTALL_DIR) \
304 $(1)/etc
305
306 $(INSTALL_CONF) \
307 $(PKG_INSTALL_DIR)/etc/zabbix_$(2).conf \
308 $(1)/etc/
309 endef
310
311 define Package/zabbix/install/init.d
312 $(INSTALL_DIR) \
313 $(1)/etc/init.d
314
315 $(INSTALL_BIN) \
316 ./files/zabbix_$(2).init \
317 $(1)/etc/init.d/zabbix_$(2)
318 endef
319
320 define Package/zabbix/install/zabbix.conf.d
321 $(INSTALL_DIR) \
322 $(1)/etc/zabbix_agentd.conf.d
323
324 $(INSTALL_BIN) \
325 ./files/$(2) \
326 $(1)/etc/zabbix_agentd.conf.d/$(2)
327 endef
328
329 define Package/zabbix-agentd/conffiles
330 /etc/zabbix_agentd.conf
331 endef
332 Package/zabbix-agentd-openssl/conffiles = $(Package/zabbix-agentd/conffiles)
333 Package/zabbix-agentd-gnutls/conffiles = $(Package/zabbix-agentd/conffiles)
334
335 define Package/zabbix-server/conffiles
336 /etc/zabbix_server.conf
337 endef
338 Package/zabbix-server-openssl/conffiles = $(Package/zabbix-server/conffiles)
339 Package/zabbix-server-gnutls/conffiles = $(Package/zabbix-server/conffiles)
340
341 define Package/zabbix-proxy/conffiles
342 /etc/zabbix_proxy.conf
343 endef
344 Package/zabbix-proxy-openssl/conffiles = $(Package/zabbix-proxy/conffiles)
345 Package/zabbix-proxy-gnutls/conffiles = $(Package/zabbix-proxy/conffiles)
346
347 ifdef CONFIG_PACKAGE_zabbix-extra-mac80211
348 define Build/Prepare/zabbix-extra-mac80211
349 mkdir -p $(PKG_BUILD_DIR)/zabbix-extra-mac80211
350 $(CP) ./files/zabbix_helper_mac80211.c $(PKG_BUILD_DIR)/zabbix-extra-mac80211/
351 endef
352
353 define Build/Compile/zabbix-extra-mac80211
354 $(TARGET_CC) $(TARGET_CFLAGS) $(PKG_BUILD_DIR)/zabbix-extra-mac80211/zabbix_helper_mac80211.c -o $(PKG_BUILD_DIR)/zabbix-extra-mac80211/zabbix_helper_mac80211
355 endef
356 endif
357
358 define Build/Prepare
359 $(call Build/Prepare/Default)
360 $(call Build/Prepare/zabbix-extra-mac80211)
361 endef
362
363 define Build/Compile
364 $(call Build/Compile/Default)
365 $(call Build/Compile/zabbix-extra-mac80211)
366 endef
367
368 define Package/zabbix-agentd/install
369 $(INSTALL_DIR) $(1)/etc/zabbix_agentd.conf.d
370 $(call Package/zabbix/install/sbin,$(1),agentd)
371 $(call Package/zabbix/install/etc,$(1),agentd)
372 $(call Package/zabbix/install/init.d,$(1),agentd)
373 endef
374 Package/zabbix-agentd-openssl/install = $(Package/zabbix-agentd/install)
375 Package/zabbix-agentd-gnutls/install = $(Package/zabbix-agentd/install)
376
377 define Package/zabbix-extra-mac80211/install
378 $(call Package/zabbix/install/zabbix.conf.d,$(1),mac80211)
379 $(INSTALL_DIR) $(1)/usr/bin
380 $(INSTALL_BIN) $(PKG_BUILD_DIR)/zabbix-extra-mac80211/zabbix_helper_mac80211 $(1)/usr/bin/
381 chmod 4755 $(1)/usr/bin/zabbix_helper_mac80211
382 endef
383
384 define Package/zabbix-extra-network/install
385 $(call Package/zabbix/install/zabbix.conf.d,$(1),network)
386 $(INSTALL_DIR) $(1)/usr/share/acl.d
387 $(INSTALL_DATA) ./files/zabbix-network-ubus-acl.json $(1)/usr/share/acl.d/zabbix-network.json
388 endef
389
390 define Package/zabbix-extra-network/postinst
391 #!/bin/sh
392 if [ -z "$${IPKG_INSTROOT}" ]; then
393 killall -s HUP ubusd
394 fi
395 endef
396
397 define Package/zabbix-extra-wifi/install
398 $(call Package/zabbix/install/zabbix.conf.d,$(1),wifi)
399 $(INSTALL_DIR) $(1)/usr/share/acl.d
400 $(INSTALL_DATA) ./files/zabbix-wifi-ubus-acl.json $(1)/usr/share/acl.d/zabbix-wifi.json
401 endef
402
403 define Package/zabbix-extra-wifi/postinst
404 #!/bin/sh
405 if [ -z "$${IPKG_INSTROOT}" ]; then
406 killall -s HUP ubusd
407 fi
408 endef
409
410 define Package/zabbix-sender/install
411 $(call Package/zabbix/install/bin,$(1),sender)
412 endef
413 Package/zabbix-sender-openssl/install = $(Package/zabbix-sender/install)
414 Package/zabbix-sender-gnutls/install = $(Package/zabbix-sender/install)
415
416 define Package/zabbix-get/install
417 $(call Package/zabbix/install/bin,$(1),get)
418 endef
419 Package/zabbix-get-openssl/install = $(Package/zabbix-get/install)
420 Package/zabbix-get-gnutls/install = $(Package/zabbix-get/install)
421
422 define Package/zabbix-server/install
423 $(call Package/zabbix/install/sbin,$(1),server)
424 $(call Package/zabbix/install/etc,$(1),server)
425 endef
426 Package/zabbix-server-openssl/install = $(Package/zabbix-server/install)
427 Package/zabbix-server-gnutls/install = $(Package/zabbix-server/install)
428
429 define Package/zabbix-server-frontend/install
430 $(INSTALL_DIR) $(1)/www/zabbix
431 $(CP) $(PKG_BUILD_DIR)/ui/* $(1)/www/zabbix
432 endef
433
434 define Package/zabbix-proxy/install
435 $(call Package/zabbix/install/sbin,$(1),proxy)
436 $(call Package/zabbix/install/etc,$(1),proxy)
437 endef
438 Package/zabbix-proxy-openssl/install = $(Package/zabbix-proxy/install)
439 Package/zabbix-proxy-gnutls/install = $(Package/zabbix-proxy/install)
440
441 $(eval $(call BuildPackage,zabbix-agentd))
442 $(eval $(call BuildPackage,zabbix-agentd-openssl))
443 $(eval $(call BuildPackage,zabbix-agentd-gnutls))
444 $(eval $(call BuildPackage,zabbix-extra-mac80211))
445 $(eval $(call BuildPackage,zabbix-extra-network))
446 $(eval $(call BuildPackage,zabbix-extra-wifi))
447 $(eval $(call BuildPackage,zabbix-sender))
448 $(eval $(call BuildPackage,zabbix-sender-openssl))
449 $(eval $(call BuildPackage,zabbix-sender-gnutls))
450 $(eval $(call BuildPackage,zabbix-server))
451 $(eval $(call BuildPackage,zabbix-server-openssl))
452 $(eval $(call BuildPackage,zabbix-server-gnutls))
453 $(eval $(call BuildPackage,zabbix-server-frontend))
454 $(eval $(call BuildPackage,zabbix-proxy))
455 $(eval $(call BuildPackage,zabbix-proxy-openssl))
456 $(eval $(call BuildPackage,zabbix-proxy-gnutls))
457 $(eval $(call BuildPackage,zabbix-get))
458 $(eval $(call BuildPackage,zabbix-get-openssl))
459 $(eval $(call BuildPackage,zabbix-get-gnutls))