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