diff --git a/admin/zabbix/Makefile b/admin/zabbix/Makefile index 37b4029f06666..19767509d4044 100644 --- a/admin/zabbix/Makefile +++ b/admin/zabbix/Makefile @@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=zabbix PKG_VERSION:=7.0.22 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE_URL:=https://cdn.zabbix.com/zabbix/sources/stable/$(basename $(PKG_VERSION))/ \ @@ -56,19 +56,20 @@ define Package/zabbix/Default SUBMENU:=Zabbix TITLE:=Zabbix URL:=https://www.zabbix.com/ - DEPENDS+=$(ICONV_DEPENDS) +libpcre2 +zlib endef define Package/zabbix-agentd/Default $(call Package/zabbix/Default) TITLE+= agentd - DEPENDS+= +libevent2-pthreads + DEPENDS:= $(ICONV_DEPENDS) +libpcre2 +zlib \ + +libevent2-pthreads PROVIDES:=zabbix-agentd USERID:=zabbix-agent=53:zabbix-agent=53 endef -define Package/zabbix-agentd +define Package/zabbix-agentd-nossl $(call Package/zabbix-agentd/Default) + TITLE+= (no SSL) VARIANT:=nossl DEFAULT_VARIANT:=1 endef @@ -76,102 +77,101 @@ endef define Package/zabbix-agentd-openssl $(call Package/zabbix-agentd/Default) TITLE+= (with OpenSSL) - DEPENDS+= +libevent2-pthreads +libopenssl + DEPENDS+= +libopenssl + PROVIDES+= zabbix-agentd-ssl VARIANT:=openssl endef define Package/zabbix-agentd-gnutls $(call Package/zabbix-agentd/Default) TITLE+= (with GnuTLS) - DEPENDS+= +libevent2-pthreads +libgnutls + DEPENDS+= +libgnutls + PROVIDES+= zabbix-agentd-ssl VARIANT:=gnutls endef -define Package/zabbix-extra-mac80211 - $(call Package/zabbix/Default) - TITLE+= discovery/userparameters for mac80211 - DEPENDS = +zabbix-agentd @PACKAGE_MAC80211_DEBUGFS @KERNEL_DEBUG_FS - VARIANT:=no-configure -endef - -define Package/zabbix-extra-network - $(call Package/zabbix/Default) - TITLE+= discovery/userparameters for network - DEPENDS = +zabbix-agentd +libubus-lua +lua - VARIANT:=no-configure -endef - -define Package/zabbix-extra-wifi - $(call Package/zabbix/Default) - TITLE+= discovery/userparameters for wifi - DEPENDS = +zabbix-agentd +libiwinfo-lua +libubus-lua +lua - VARIANT:=no-configure -endef - -define Package/zabbix-sender +define Package/zabbix-sender/Default $(call Package/zabbix/Default) TITLE+= sender + DEPENDS:= $(ICONV_DEPENDS) +libpcre2 +zlib PROVIDES:=zabbix-sender +endef + +define Package/zabbix-sender-nossl + $(call Package/zabbix-sender/Default) + TITLE+= (no SSL) VARIANT:=nossl DEFAULT_VARIANT:=1 endef define Package/zabbix-sender-openssl - $(call Package/zabbix/Default) - TITLE+= sender (with OpenSSL) + $(call Package/zabbix-sender/Default) + TITLE+= (with OpenSSL) DEPENDS+= +libopenssl - PROVIDES:=zabbix-sender + PROVIDES+= zabbix-sender-ssl VARIANT:=openssl endef define Package/zabbix-sender-gnutls - $(call Package/zabbix/Default) - TITLE+= sender (with GnuTLS) + $(call Package/zabbix-sender/Default) + TITLE+= (with GnuTLS) DEPENDS+= +libgnutls - PROVIDES:=zabbix-sender + PROVIDES+= zabbix-sender-ssl VARIANT:=gnutls endef -define Package/zabbix-get +define Package/zabbix-get/Default $(call Package/zabbix/Default) TITLE+= get - PROVIDES:=zabbix-get + DEPENDS:= $(ICONV_DEPENDS) +libpcre2 +zlib + PROVIDES:=@zabbix-get +endef + +define Package/zabbix-get-nossl + $(call Package/zabbix-get/Default) + TITLE+= (no SSL) VARIANT:=nossl DEFAULT_VARIANT:=1 endef define Package/zabbix-get-openssl - $(call Package/zabbix/Default) - TITLE+= get (with OpenSSL) + $(call Package/zabbix-get/Default) + TITLE+= (with OpenSSL) DEPENDS+= +libopenssl - PROVIDES:=zabbix-get + PROVIDES+= zabbix-get-ssl VARIANT:=openssl endef define Package/zabbix-get-gnutls - $(call Package/zabbix/Default) - TITLE+= get (with GnuTLS) + $(call Package/zabbix-get/Default) + TITLE+= (with GnuTLS) DEPENDS+= +libgnutls - PROVIDES:=zabbix-get + PROVIDES+= zabbix-get-ssl VARIANT:=gnutls endef -define Package/zabbix-server/Default +define Package/zabbix-server-or-proxy/Default $(call Package/zabbix/Default) - TITLE+= server - DEPENDS += +ZABBIX_POSTGRESQL:libpq \ + DEPENDS:= +ZABBIX_POSTGRESQL:libpq \ +ZABBIX_MYSQL:libmariadbclient \ - @(!ZABBIX_SQLITE) \ +libevent2 \ +libevent2-pthreads \ +libevent2-extra \ - +fping + +fping \ + $(ICONV_DEPENDS) +libpcre2 +zlib USERID:=zabbix-server=70:zabbix-server=70 endef -define Package/zabbix-server - $(call Package/zabbix-server/Default) +define Package/zabbix-server/Default + $(call Package/zabbix-server-or-proxy/Default) + TITLE+= server + DEPENDS+= @(!ZABBIX_SQLITE) PROVIDES:=zabbix-server +endef + +define Package/zabbix-server-nossl + $(call Package/zabbix-server/Default) + TITLE+= (no SSL) VARIANT:=nossl DEFAULT_VARIANT:=1 endef @@ -179,56 +179,29 @@ endef define Package/zabbix-server-openssl $(call Package/zabbix-server/Default) TITLE+= (with OpenSSL) - PROVIDES:=zabbix-server DEPENDS+= +libopenssl + PROVIDES+= zabbix-server-ssl VARIANT:=openssl endef define Package/zabbix-server-gnutls $(call Package/zabbix-server/Default) TITLE+= (with GnuTLS) - PROVIDES:=zabbix-server DEPENDS+= +libgnutls + PROVIDES+= zabbix-server-ssl VARIANT:=gnutls endef -define Package/zabbix-server-frontend - $(call Package/zabbix/Default) - TITLE+= server-frontend - DEPENDS += @PACKAGE_php8 \ - +php8-cgi \ - +php8-mod-gd \ - +php8-mod-bcmath \ - +php8-mod-ctype \ - +php8-mod-filter \ - +php8-mod-xmlreader \ - +php8-mod-xmlwriter \ - +php8-mod-openssl \ - +php8-mod-session \ - +php8-mod-sockets \ - +php8-mod-mbstring \ - +php8-mod-gettext \ - +ZABBIX_POSTGRESQL:php8-mod-pgsql \ - +ZABBIX_MYSQL:php8-mod-mysqli \ - @(!ZABBIX_SQLITE) - BUILD_VARIANT:=no-configure -endef - define Package/zabbix-proxy/Default - $(call Package/zabbix/Default) + $(call Package/zabbix-server-or-proxy/Default) TITLE+= proxy - DEPENDS += +ZABBIX_POSTGRESQL:libpq \ - +ZABBIX_MYSQL:libmariadbclient \ - +ZABBIX_SQLITE:libsqlite3 \ - +libevent2 \ - +libevent2-pthreads \ - +libevent2-extra \ - +fping + PROVIDES:=zabbix-proxy + DEPENDS+= +ZABBIX_SQLITE:libsqlite3 endef -define Package/zabbix-proxy +define Package/zabbix-proxy-nossl $(call Package/zabbix-proxy/Default) - PROVIDES:=zabbix-proxy + TITLE+= (no SSL) VARIANT:=nossl DEFAULT_VARIANT:=1 endef @@ -236,19 +209,63 @@ endef define Package/zabbix-proxy-openssl $(call Package/zabbix-proxy/Default) TITLE+= (with OpenSSL) - PROVIDES:=zabbix-proxy DEPENDS+= +libopenssl + PROVIDES+= zabbix-proxy-ssl VARIANT:=openssl endef define Package/zabbix-proxy-gnutls $(call Package/zabbix-proxy/Default) TITLE+= (with GnuTLS) - PROVIDES:=zabbix-proxy DEPENDS+= +libgnutls + PROVIDES+= zabbix-proxy-ssl VARIANT:=gnutls endef +define Package/zabbix-extra-mac80211 + $(call Package/zabbix/Default) + TITLE+= discovery/userparameters for mac80211 + DEPENDS:=+zabbix-agentd @PACKAGE_MAC80211_DEBUGFS @KERNEL_DEBUG_FS + VARIANT:=no-configure +endef + +define Package/zabbix-extra-network + $(call Package/zabbix/Default) + TITLE+= discovery/userparameters for network + DEPENDS:=+zabbix-agentd +libubus-lua +lua + VARIANT:=no-configure +endef + +define Package/zabbix-extra-wifi + $(call Package/zabbix/Default) + TITLE+= discovery/userparameters for wifi + DEPENDS:=+zabbix-agentd +libiwinfo-lua +libubus-lua +lua + VARIANT:=no-configure +endef + +define Package/zabbix-frontend-server + $(call Package/zabbix/Default) + TITLE+= frontend server + DEPENDS:=@PACKAGE_php8 \ + +php8-cgi \ + +php8-mod-gd \ + +php8-mod-bcmath \ + +php8-mod-ctype \ + +php8-mod-filter \ + +php8-mod-xmlreader \ + +php8-mod-xmlwriter \ + +php8-mod-openssl \ + +php8-mod-session \ + +php8-mod-sockets \ + +php8-mod-mbstring \ + +php8-mod-gettext \ + +ZABBIX_POSTGRESQL:php8-mod-pgsql \ + +ZABBIX_MYSQL:php8-mod-mysqli \ + @(!ZABBIX_SQLITE) + PROVIDES:=zabbix-server-frontend + VARIANT:=no-configure +endef + define Package/zabbix-extra-mac80211/description An extra package for zabbix-agentd that adds a discovery rule for mac80211 wifi phy and many userparameters. It contains an suid helper to allow zabbix-agentd to still run as zabbix user and not as root. @@ -282,6 +299,10 @@ CONFIGURE_ARGS+= \ --with-libpcre2=$(STAGING_DIR)/usr/include \ --with-zlib=$(STAGING_DIR)/usr/include +ifeq ($(BUILD_VARIANT),nossl) + CONFIGURE_ARGS+= --with-openssl="no" --with-gnutls="no" +endif + ifeq ($(BUILD_VARIANT),openssl) CONFIGURE_ARGS+= --with-openssl="$(STAGING_DIR)/usr" endif @@ -304,6 +325,23 @@ endef endif +ifdef CONFIG_PACKAGE_zabbix-extra-mac80211 +define Build/Prepare + $(call Build/Prepare/Default) + mkdir -p $(PKG_BUILD_DIR)/zabbix-extra-mac80211 + $(CP) ./files/zabbix_helper_mac80211.c $(PKG_BUILD_DIR)/zabbix-extra-mac80211/ +endef + +define Build/Configure + $(call Build/Configure/Default) +endef + +define Build/Compile + $(call Build/Compile/Default) + $(TARGET_CC) $(TARGET_CFLAGS) $(PKG_BUILD_DIR)/zabbix-extra-mac80211/zabbix_helper_mac80211.c -o $(PKG_BUILD_DIR)/zabbix-extra-mac80211/zabbix_helper_mac80211 +endef +endif + MAKE_FLAGS += ARCH="linux" define Package/zabbix/install/sbin @@ -351,51 +389,63 @@ define Package/zabbix/install/zabbix.conf.d $(1)/etc/zabbix_agentd.conf.d/$(2) endef -define Package/zabbix-agentd/conffiles -/etc/zabbix_agentd.conf +# Due to nested defines, the 8 spaces for the nested define, and tabs for +# the part that actually executes in a shell, is essential. +define Package/zabbix-daemon/files + define Package/zabbix-$(1)-$(2)/conffiles + /etc/zabbix_$(1).conf + $(3) + endef + define Package/zabbix-$(1)-$(2)/install + $(INSTALL_DIR) $$(1)/etc/zabbix_$(1).conf.d + $(call Package/zabbix/install/sbin,$$(1),$(1)) + $(4) + endef endef -Package/zabbix-agentd-openssl/conffiles = $(Package/zabbix-agentd/conffiles) -Package/zabbix-agentd-gnutls/conffiles = $(Package/zabbix-agentd/conffiles) -define Package/zabbix-server/conffiles -/etc/zabbix_server.conf +define Package/zabbix-server/conffiles-extra /etc/config/zabbix_server /etc/sysctl.d/90-zabbix-discovery-workers.conf endef -Package/zabbix-server-openssl/conffiles = $(Package/zabbix-server/conffiles) -Package/zabbix-server-gnutls/conffiles = $(Package/zabbix-server/conffiles) -define Package/zabbix-proxy/conffiles -/etc/zabbix_proxy.conf +define Package/zabbix-agentd/install-extra + $(call Package/zabbix/install/etc,$$(1),agentd) + $(call Package/zabbix/install/init.d,$$(1),agentd) endef -Package/zabbix-proxy-openssl/conffiles = $(Package/zabbix-proxy/conffiles) -Package/zabbix-proxy-gnutls/conffiles = $(Package/zabbix-proxy/conffiles) -ifdef CONFIG_PACKAGE_zabbix-extra-mac80211 -define Build/Prepare - $(call Build/Prepare/Default) - mkdir -p $(PKG_BUILD_DIR)/zabbix-extra-mac80211 - $(CP) ./files/zabbix_helper_mac80211.c $(PKG_BUILD_DIR)/zabbix-extra-mac80211/ +define Package/zabbix-server/install-extra + $(call Package/zabbix/install/etc,$$(1),server) + $(call Package/zabbix/install/init.d,$$(1),server) + $(INSTALL_DIR) $$(1)/etc/sysctl.d + $(INSTALL_CONF) ./files/zabbix-discovery-workers.conf.sysctl $$(1)/etc/sysctl.d/90-zabbix-discovery-workers.conf + $(INSTALL_DIR) $$(1)/etc/config + $(INSTALL_CONF) ./files/zabbix_server.config $$(1)/etc/config/zabbix_server + $(INSTALL_DIR) $$(1)/etc/uci-defaults + $(INSTALL_BIN) ./files/zabbix_server.defaults $$(1)/etc/uci-defaults/90_zabbix_server endef -define Build/Configure - $(call Build/Configure/Default) -endef +$(foreach zvariant,nossl openssl gnutls,$(eval $(call Package/zabbix-daemon/files,agentd,$(zvariant),,$(call Package/zabbix-agentd/install-extra)))) +$(foreach zvariant,nossl openssl gnutls,$(eval $(call Package/zabbix-daemon/files,server,$(zvariant),$(call Package/zabbix-server/conffiles-extra),$(call Package/zabbix-server/install-extra)))) +$(foreach zvariant,nossl openssl gnutls,$(eval $(call Package/zabbix-daemon/files,proxy,$(zvariant)))) -define Build/Compile - $(call Build/Compile/Default) - $(TARGET_CC) $(TARGET_CFLAGS) $(PKG_BUILD_DIR)/zabbix-extra-mac80211/zabbix_helper_mac80211.c -o $(PKG_BUILD_DIR)/zabbix-extra-mac80211/zabbix_helper_mac80211 +define Package/zabbix-server/postinst/Default + define Package/zabbix-server-$(1)/postinst + #!/bin/sh + [ -n "$$$${IPKG_INSTROOT}" ] || (. /etc/uci-defaults/90_zabbix_server) && rm -f /etc/uci-defaults/90_zabbix_server + exit 0 + endef endef -endif -define Package/zabbix-agentd/install - $(INSTALL_DIR) $(1)/etc/zabbix_agentd.conf.d - $(call Package/zabbix/install/sbin,$(1),agentd) - $(call Package/zabbix/install/etc,$(1),agentd) - $(call Package/zabbix/install/init.d,$(1),agentd) +$(foreach zvariant,nossl openssl gnutls,$(eval $(call Package/zabbix-server/postinst/Default,$(zvariant)))) + +define Package/zabbix-program/files + define Package/zabbix-$(1)-$(2)/install + $(call Package/zabbix/install/bin,$$(1),$(1)) + endef endef -Package/zabbix-agentd-openssl/install = $(Package/zabbix-agentd/install) -Package/zabbix-agentd-gnutls/install = $(Package/zabbix-agentd/install) + +$(foreach zvariant,nossl openssl gnutls,$(eval $(call Package/zabbix-program/files,sender,$(zvariant)))) +$(foreach zvariant,nossl openssl gnutls,$(eval $(call Package/zabbix-program/files,get,$(zvariant)))) define Package/zabbix-extra-mac80211/install $(call Package/zabbix/install/zabbix.conf.d,$(1),mac80211) @@ -430,69 +480,27 @@ if [ -z "$${IPKG_INSTROOT}" ]; then fi endef -define Package/zabbix-sender/install - $(call Package/zabbix/install/bin,$(1),sender) -endef -Package/zabbix-sender-openssl/install = $(Package/zabbix-sender/install) -Package/zabbix-sender-gnutls/install = $(Package/zabbix-sender/install) - -define Package/zabbix-get/install - $(call Package/zabbix/install/bin,$(1),get) -endef -Package/zabbix-get-openssl/install = $(Package/zabbix-get/install) -Package/zabbix-get-gnutls/install = $(Package/zabbix-get/install) - -define Package/zabbix-server/install - $(call Package/zabbix/install/sbin,$(1),server) - $(call Package/zabbix/install/etc,$(1),server) - $(call Package/zabbix/install/init.d,$(1),server) - - $(INSTALL_DIR) $(1)/etc/sysctl.d - $(INSTALL_CONF) ./files/zabbix-discovery-workers.conf.sysctl $(1)/etc/sysctl.d/90-zabbix-discovery-workers.conf - $(INSTALL_DIR) $(1)/etc/config - $(INSTALL_CONF) ./files/zabbix_server.config $(1)/etc/config/zabbix_server - $(INSTALL_DIR) $(1)/etc/uci-defaults - $(INSTALL_BIN) ./files/zabbix_server.defaults $(1)/etc/uci-defaults/90_zabbix_server -endef -Package/zabbix-server-openssl/install = $(Package/zabbix-server/install) -Package/zabbix-server-gnutls/install = $(Package/zabbix-server/install) - -define Package/zabbix-server/postinst -#!/bin/sh -[ -n "$${IPKG_INSTROOT}" ] || (. /etc/uci-defaults/90_zabbix_server) && rm -f /etc/uci-defaults/90_zabbix_server -exit 0 -endef -Package/zabbix-server-openssl/postinst = $(Package/zabbix-server/postinst) -Package/zabbix-server-gnutls/postinst = $(Package/zabbix-server/postinst) - -define Package/zabbix-server-frontend/install +define Package/zabbix-frontend-server/install $(INSTALL_DIR) $(1)/www/zabbix $(CP) $(PKG_BUILD_DIR)/ui/* $(1)/www/zabbix endef -define Package/zabbix-proxy/install - $(call Package/zabbix/install/sbin,$(1),proxy) - $(call Package/zabbix/install/etc,$(1),proxy) -endef -Package/zabbix-proxy-openssl/install = $(Package/zabbix-proxy/install) -Package/zabbix-proxy-gnutls/install = $(Package/zabbix-proxy/install) - -$(eval $(call BuildPackage,zabbix-agentd)) +$(eval $(call BuildPackage,zabbix-agentd-nossl)) $(eval $(call BuildPackage,zabbix-agentd-openssl)) $(eval $(call BuildPackage,zabbix-agentd-gnutls)) -$(eval $(call BuildPackage,zabbix-extra-mac80211)) -$(eval $(call BuildPackage,zabbix-extra-network)) -$(eval $(call BuildPackage,zabbix-extra-wifi)) -$(eval $(call BuildPackage,zabbix-sender)) +$(eval $(call BuildPackage,zabbix-get-nossl)) +$(eval $(call BuildPackage,zabbix-get-openssl)) +$(eval $(call BuildPackage,zabbix-get-gnutls)) +$(eval $(call BuildPackage,zabbix-sender-nossl)) $(eval $(call BuildPackage,zabbix-sender-openssl)) $(eval $(call BuildPackage,zabbix-sender-gnutls)) -$(eval $(call BuildPackage,zabbix-server)) -$(eval $(call BuildPackage,zabbix-server-openssl)) -$(eval $(call BuildPackage,zabbix-server-gnutls)) -$(eval $(call BuildPackage,zabbix-server-frontend)) -$(eval $(call BuildPackage,zabbix-proxy)) +$(eval $(call BuildPackage,zabbix-proxy-nossl)) $(eval $(call BuildPackage,zabbix-proxy-openssl)) $(eval $(call BuildPackage,zabbix-proxy-gnutls)) -$(eval $(call BuildPackage,zabbix-get)) -$(eval $(call BuildPackage,zabbix-get-openssl)) -$(eval $(call BuildPackage,zabbix-get-gnutls)) +$(eval $(call BuildPackage,zabbix-server-nossl)) +$(eval $(call BuildPackage,zabbix-server-openssl)) +$(eval $(call BuildPackage,zabbix-server-gnutls)) +$(eval $(call BuildPackage,zabbix-extra-mac80211)) +$(eval $(call BuildPackage,zabbix-extra-network)) +$(eval $(call BuildPackage,zabbix-extra-wifi)) +$(eval $(call BuildPackage,zabbix-frontend-server)) diff --git a/admin/zabbix/cspell.json b/admin/zabbix/cspell.json deleted file mode 100644 index 6d8a2b53e993e..0000000000000 --- a/admin/zabbix/cspell.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "version": "0.2", - "ignorePaths": [], - "dictionaryDefinitions": [], - "dictionaries": [], - "words": [ - "agentd", - "bcmath", - "conffiles", - "ctype", - "DEBUGFS", - "endchoice", - "fping", - "gnutls", - "INSTROOT", - "IPKG", - "killall", - "libevent", - "libgnutls", - "libiwinfo", - "libmariadbclient", - "libopenssl", - "libpcre", - "libpq", - "libsqlite", - "libubus", - "mbstring", - "mysqli", - "nossl", - "pgsql", - "postinst", - "pthreads", - "TOPDIR", - "ubus", - "ubusd", - "userparameters", - "wlan", - "xmlreader", - "xmlwriter" - ], - "ignoreWords": [], - "import": [] -}