pkgsrc-WIP-changes archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
zabbix52-*: Import zabbix 5.2.0
Module Name: pkgsrc-wip
Committed By: Juraj Lutter <otis%NetBSD.org@localhost>
Pushed By: otis
Date: Tue Nov 3 23:46:08 2020 +0000
Changeset: 28b7606971283e5f2fd6047331de7b437937a45a
Modified Files:
Makefile
Added Files:
zabbix52-agent/DESCR
zabbix52-agent/Makefile
zabbix52-agent/PLIST
zabbix52-agent/distinfo
zabbix52-agent/files/smf/manifest.xml
zabbix52-agent/files/zabbix_agentd.sh
zabbix52-agent/options.mk
zabbix52-agent/patches/patch-configure
zabbix52-agent/patches/patch-src_libs_zbxsysinfo_netbsd_net.c
zabbix52-agent/patches/patch-src_zabbix__agent_Makefile.in
zabbix52-frontend/DESCR
zabbix52-frontend/Makefile
zabbix52-frontend/PLIST
zabbix52-frontend/distinfo
zabbix52-frontend/files/httpd-zabbix.conf
zabbix52-frontend/files/php-fpm-zabbix.conf
zabbix52-frontend/options.mk
zabbix52-java/DESCR
zabbix52-java/Makefile
zabbix52-java/PLIST
zabbix52-java/distinfo
zabbix52-java/patches/patch-configure
zabbix52-proxy/DESCR
zabbix52-proxy/Makefile
zabbix52-proxy/PLIST
zabbix52-proxy/distinfo
zabbix52-proxy/files/smf/manifest.xml
zabbix52-proxy/files/zabbix_proxy.sh
zabbix52-proxy/options.mk
zabbix52-proxy/patches/patch-m4_ax__lib__mysql.m4
zabbix52-proxy/patches/patch-m4_libssh.m4
zabbix52-proxy/patches/patch-src_libs_zbxsysinfo_netbsd_net.c
zabbix52-proxy/patches/patch-src_zabbix__proxy_Makefile.am
zabbix52-server/DESCR
zabbix52-server/Makefile
zabbix52-server/Makefile.common
zabbix52-server/PLIST
zabbix52-server/distinfo
zabbix52-server/files/smf/manifest.xml
zabbix52-server/files/zabbix_server.sh
zabbix52-server/options.mk
zabbix52-server/patches/patch-m4_ax__lib__mysql.m4
zabbix52-server/patches/patch-m4_libssh.m4
zabbix52-server/patches/patch-src_libs_zbxsysinfo_netbsd_net.c
zabbix52-server/patches/patch-src_zabbix__server_Makefile.am
Log Message:
zabbix52-*: Import zabbix 5.2.0
To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=28b7606971283e5f2fd6047331de7b437937a45a
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
diffstat:
Makefile | 10 +-
zabbix52-agent/DESCR | 10 +
zabbix52-agent/Makefile | 49 +
zabbix52-agent/PLIST | 11 +
zabbix52-agent/distinfo | 9 +
zabbix52-agent/files/smf/manifest.xml | 30 +
zabbix52-agent/files/zabbix_agentd.sh | 27 +
zabbix52-agent/options.mk | 14 +
zabbix52-agent/patches/patch-configure | 15 +
.../patches/patch-src_libs_zbxsysinfo_netbsd_net.c | 203 +++
.../patches/patch-src_zabbix__agent_Makefile.in | 15 +
zabbix52-frontend/DESCR | 10 +
zabbix52-frontend/Makefile | 52 +
zabbix52-frontend/PLIST | 1297 ++++++++++++++++++++
zabbix52-frontend/distinfo | 6 +
zabbix52-frontend/files/httpd-zabbix.conf | 40 +
zabbix52-frontend/files/php-fpm-zabbix.conf | 25 +
zabbix52-frontend/options.mk | 20 +
zabbix52-java/DESCR | 10 +
zabbix52-java/Makefile | 28 +
zabbix52-java/PLIST | 11 +
zabbix52-java/distinfo | 7 +
zabbix52-java/patches/patch-configure | 15 +
zabbix52-proxy/DESCR | 10 +
zabbix52-proxy/Makefile | 77 ++
zabbix52-proxy/PLIST | 11 +
zabbix52-proxy/distinfo | 10 +
zabbix52-proxy/files/smf/manifest.xml | 30 +
zabbix52-proxy/files/zabbix_proxy.sh | 27 +
zabbix52-proxy/options.mk | 61 +
zabbix52-proxy/patches/patch-m4_ax__lib__mysql.m4 | 15 +
zabbix52-proxy/patches/patch-m4_libssh.m4 | 40 +
.../patches/patch-src_libs_zbxsysinfo_netbsd_net.c | 203 +++
.../patches/patch-src_zabbix__proxy_Makefile.am | 12 +
zabbix52-server/DESCR | 12 +
zabbix52-server/Makefile | 75 ++
zabbix52-server/Makefile.common | 28 +
zabbix52-server/PLIST | 14 +
zabbix52-server/distinfo | 10 +
zabbix52-server/files/smf/manifest.xml | 30 +
zabbix52-server/files/zabbix_server.sh | 27 +
zabbix52-server/options.mk | 52 +
zabbix52-server/patches/patch-m4_ax__lib__mysql.m4 | 15 +
zabbix52-server/patches/patch-m4_libssh.m4 | 40 +
.../patches/patch-src_libs_zbxsysinfo_netbsd_net.c | 203 +++
.../patches/patch-src_zabbix__server_Makefile.am | 12 +
46 files changed, 2923 insertions(+), 5 deletions(-)
diffs:
diff --git a/Makefile b/Makefile
index 965efb1b57..38a4ce74ca 100644
--- a/Makefile
+++ b/Makefile
@@ -5327,11 +5327,11 @@ SUBDIR+= you-get
SUBDIR+= yp-tools
SUBDIR+= ypbind-mt
SUBDIR+= ypserv
-SUBDIR+= zabbix50-agent
-SUBDIR+= zabbix50-frontend
-SUBDIR+= zabbix50-java
-SUBDIR+= zabbix50-proxy
-SUBDIR+= zabbix50-server
+SUBDIR+= zabbix52-agent
+SUBDIR+= zabbix52-frontend
+SUBDIR+= zabbix52-java
+SUBDIR+= zabbix52-proxy
+SUBDIR+= zabbix52-server
SUBDIR+= zapping
SUBDIR+= zbackup
SUBDIR+= zdbsp
diff --git a/zabbix52-agent/DESCR b/zabbix52-agent/DESCR
new file mode 100644
index 0000000000..43094c0148
--- /dev/null
+++ b/zabbix52-agent/DESCR
@@ -0,0 +1,10 @@
+Zabbix is the ultimate enterprise-level software designed for monitoring
+availability and performance of IT infrastructure components. Zabbix is open
+source and comes at no cost.
+
+With Zabbix it is possible to gather virtually limitless types of data from
+the network. High performance real-time monitoring means that tens of thousands
+of servers, virtual machines and network devices can be monitored
+simultaneously. Along with storing the data, visualization features are
+available (overviews, maps, graphs, screens, etc), as well as very flexible
+ways of analyzing the data for the purpose of alerting.
diff --git a/zabbix52-agent/Makefile b/zabbix52-agent/Makefile
new file mode 100644
index 0000000000..c4c5e6313d
--- /dev/null
+++ b/zabbix52-agent/Makefile
@@ -0,0 +1,49 @@
+# $NetBSD$
+
+.include "../../sysutils/zabbix52-server/Makefile.common"
+
+PKGNAME= ${DISTNAME:S/-/-agent-/}
+COMMENT= Enterprise-class Monitoring Solution for Everyone
+
+CONFLICTS+= zabbix-[0-9]*
+CONFLICTS+= zabbix-agent-[0-9]*
+
+USE_TOOLS+= pkg-config
+GNU_CONFIGURE= yes
+CONFIGURE_ARGS+= --enable-agent
+CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR}
+CONFIGURE_ARGS+= --datarootdir=${PREFIX}/share/${PKGBASE}
+CONFIGURE_ARGS+= --with-libcurl
+CONFIGURE_ARGS+= --with-libpcre=${BUILDLINK_PREFIX.pcre}
+CONFIGURE_ARGS+= --with-openssl=${BUILDLINK_PREFIX.openssl}
+
+EGDIR= share/examples/${PKGBASE}
+CONF_FILES+= ${EGDIR}/zabbix_agentd.conf ${PKG_SYSCONFDIR}/zabbix_agentd.conf
+
+RCD_SCRIPTS= zabbix_agentd
+
+INSTALLATION_DIRS+= ${EGDIR} share/${PKGBASE}
+
+SUBST_CLASSES+= fix-paths
+SUBST_STAGE.fix-paths= pre-configure
+SUBST_MESSAGE.fix-paths= Fixing absolute paths.
+SUBST_FILES.fix-paths= conf/*.conf
+SUBST_FILES.fix-paths+= man/*.man
+SUBST_SED.fix-paths= -e 's,/usr/local/etc,${PKG_SYSCONFDIR},g'
+
+SUBST_CLASSES+= fix-pkgbase
+SUBST_STAGE.fix-pkgbase= pre-configure
+SUBST_MESSAGE.fix-pkgbase= Fixing PKGBASE.
+SUBST_FILES.fix-pkgbase= src/zabbix_agent/Makefile.in
+SUBST_SED.fix-pkgbase= -e 's,%%PKGBASE%%,${PKGBASE},g'
+
+PLIST_SUBST+= PKGBASE=${PKGBASE}
+
+.include "../../mk/bsd.prefs.mk"
+
+.include "options.mk"
+
+.include "../../security/openssl/buildlink3.mk"
+.include "../../www/curl/buildlink3.mk"
+.include "../../devel/pcre/buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/zabbix52-agent/PLIST b/zabbix52-agent/PLIST
new file mode 100644
index 0000000000..65690d36ae
--- /dev/null
+++ b/zabbix52-agent/PLIST
@@ -0,0 +1,11 @@
+@comment $NetBSD$
+bin/zabbix_get
+bin/zabbix_sender
+man/man1/zabbix_get.1
+man/man1/zabbix_sender.1
+man/man8/zabbix_agentd.8
+sbin/zabbix_agentd
+share/examples/${PKGBASE}/zabbix_agentd.conf
+@pkgdir share/${PKGBASE}
+@pkgdir lib/modules
+@pkgdir etc/zabbix_agentd.conf.d
diff --git a/zabbix52-agent/distinfo b/zabbix52-agent/distinfo
new file mode 100644
index 0000000000..be72b43297
--- /dev/null
+++ b/zabbix52-agent/distinfo
@@ -0,0 +1,9 @@
+$NetBSD$
+
+SHA1 (zabbix-5.2.0.tar.gz) = d3a4f4d07c50cc4464e574cf0e31716efd90b562
+RMD160 (zabbix-5.2.0.tar.gz) = f275572961e1a41543d665131d237e1b42c464ca
+SHA512 (zabbix-5.2.0.tar.gz) = e7853c685864c1c38adf5f4e3982d1ca1b9951065f339d457427bc6f1f68d25af92d702b7ce4eab7d83d17ad9cdcc28c45c9463d21725e07593af1ac8ffa4a51
+Size (zabbix-5.2.0.tar.gz) = 19509362 bytes
+SHA1 (patch-configure) = cf647b9ee52a96882d31f8783ac19b66e3e65105
+SHA1 (patch-src_libs_zbxsysinfo_netbsd_net.c) = 468f2112a3d65b0a73f371194ae15ce0df0ad71c
+SHA1 (patch-src_zabbix__agent_Makefile.in) = efbd804ecee4b99db36db5f4fd61583b2ef96a86
diff --git a/zabbix52-agent/files/smf/manifest.xml b/zabbix52-agent/files/smf/manifest.xml
new file mode 100644
index 0000000000..df8e63a875
--- /dev/null
+++ b/zabbix52-agent/files/smf/manifest.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
+<service_bundle type="manifest" name="export">
+ <service name="@SMF_PREFIX@/@SMF_NAME@" type="service" version="1">
+ <dependency name="fs-local" grouping="require_all" restart_on="none" type="service">
+ <service_fmri value="svc:/system/filesystem/local"/>
+ </dependency>
+ <dependency name="network-service" grouping="require_all" restart_on="none" type="service">
+ <service_fmri value="svc:/network/service"/>
+ </dependency>
+ <dependency name="system-log" grouping="optional_all" restart_on="none" type="service">
+ <service_fmri value="svc:/system/system-log"/>
+ </dependency>
+ <method_context>
+ <method_credential user="@ZABBIX_USER@" group="@ZABBIX_GROUP@"/>
+ </method_context>
+ <instance name="@SMF_INSTANCES@" enabled="false">
+ <dependency name="config-file" grouping="require_all" restart_on="refresh" type="path">
+ <service_fmri value="file://localhost@PKG_SYSCONFDIR@/zabbix_agentd.conf"/>
+ </dependency>
+ <exec_method name="start" type="method" exec="@PREFIX@/sbin/zabbix_agentd -c @PKG_SYSCONFDIR@/zabbix_agentd.conf" timeout_seconds="0"/>
+ <exec_method name="stop" type="method" exec=":kill" timeout_seconds="0"/>
+ <template>
+ <common_name>
+ <loctext xml:lang="C">Zabbix agent</loctext>
+ </common_name>
+ </template>
+ </instance>
+ </service>
+</service_bundle>
diff --git a/zabbix52-agent/files/zabbix_agentd.sh b/zabbix52-agent/files/zabbix_agentd.sh
new file mode 100644
index 0000000000..b75e300b8d
--- /dev/null
+++ b/zabbix52-agent/files/zabbix_agentd.sh
@@ -0,0 +1,27 @@
+#!@RCD_SCRIPTS_SHELL@
+#
+# $NetBSD$
+#
+# Zabbix agent daemon
+#
+# REQUIRE: DAEMON
+# PROVIDE: zabbix_agentd
+
+if [ -f /etc/rc.subr ]; then
+ . /etc/rc.subr
+fi
+
+name="zabbix_agentd"
+rcvar=${name}
+command="@PREFIX@/sbin/${name}"
+start_precmd="ulimit -s 10240"
+required_files="@PKG_SYSCONFDIR@/${name}.conf"
+
+if [ -f /etc/rc.subr ]; then
+ load_rc_config ${name}
+ run_rc_command "$1"
+else
+ @ECHO@ -n " ${name}"
+ [ "x$1" = "xstart" ] && ulimit -s 10240
+ ${command} ${command_args}
+fi
diff --git a/zabbix52-agent/options.mk b/zabbix52-agent/options.mk
new file mode 100644
index 0000000000..e71f8fcf33
--- /dev/null
+++ b/zabbix52-agent/options.mk
@@ -0,0 +1,14 @@
+# $NetBSD$
+
+PKG_OPTIONS_VAR= PKG_OPTIONS.zabbix52-agent
+PKG_SUPPORTED_OPTIONS+= inet6
+
+.if empty(MISSING_FEATURES:Minet6)
+PKG_SUGGESTED_OPTIONS+= inet6
+.endif
+
+.include "../../mk/bsd.options.mk"
+
+.if !empty(PKG_OPTIONS:Minet6)
+CONFIGURE_ARGS+= --enable-ipv6
+.endif
diff --git a/zabbix52-agent/patches/patch-configure b/zabbix52-agent/patches/patch-configure
new file mode 100644
index 0000000000..8baa7c0db4
--- /dev/null
+++ b/zabbix52-agent/patches/patch-configure
@@ -0,0 +1,15 @@
+$NetBSD: patch-configure,v 1.1 2020/11/03 22:46:23 otis Exp $
+
+Fix bash-ism.
+
+--- configure.orig 2020-07-13 07:56:36.000000000 +0000
++++ configure
+@@ -8494,7 +8494,7 @@ fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+- if test "$found_mysql_tls" == "yes"; then
++ if test "$found_mysql_tls" = "yes"; then
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for TLS ciphersuites in MySQL library" >&5
+ $as_echo_n "checking for TLS ciphersuites in MySQL library... " >&6; }
diff --git a/zabbix52-agent/patches/patch-src_libs_zbxsysinfo_netbsd_net.c b/zabbix52-agent/patches/patch-src_libs_zbxsysinfo_netbsd_net.c
new file mode 100644
index 0000000000..2a4a0d4332
--- /dev/null
+++ b/zabbix52-agent/patches/patch-src_libs_zbxsysinfo_netbsd_net.c
@@ -0,0 +1,203 @@
+$NetBSD: patch-src_libs_zbxsysinfo_netbsd_net.c,v 1.1 2020/11/03 22:46:23 otis Exp $
+
+Rework interface statistics code from using kvm to using sysctl interface.
+
+--- src/libs/zbxsysinfo/netbsd/net.c.orig 2020-08-24 09:42:55.000000000 +0000
++++ src/libs/zbxsysinfo/netbsd/net.c
+@@ -22,6 +22,9 @@
+ #include "zbxjson.h"
+ #include "log.h"
+
++#include <net/route.h>
++#include <net/if_dl.h>
++
+ static struct nlist kernel_symbols[] =
+ {
+ {"_ifnet", N_UNDF, 0, 0, 0},
+@@ -31,43 +34,91 @@ static struct nlist kernel_symbols[] =
+
+ #define IFNET_ID 0
+
++static void
++get_rtaddrs(int addrs, struct sockaddr *sa, struct sockaddr **rti_info)
++{
++ int i;
++
++ for (i = 0; i < RTAX_MAX; i++) {
++ if (addrs & (1 << i)) {
++ rti_info[i] = sa;
++ sa = (struct sockaddr *)((char *)(sa) +
++ RT_ROUNDUP(sa->sa_len));
++ } else
++ rti_info[i] = NULL;
++ }
++}
++
++
+ static int get_ifdata(const char *if_name,
+ zbx_uint64_t *ibytes, zbx_uint64_t *ipackets, zbx_uint64_t *ierrors, zbx_uint64_t *idropped,
+ zbx_uint64_t *obytes, zbx_uint64_t *opackets, zbx_uint64_t *oerrors,
+ zbx_uint64_t *tbytes, zbx_uint64_t *tpackets, zbx_uint64_t *terrors,
+ zbx_uint64_t *icollisions, char **error)
+ {
+- struct ifnet_head head;
+- struct ifnet *ifp;
+- struct ifnet v;
+-
+- kvm_t *kp;
+- int len = 0;
+- int ret = SYSINFO_RET_FAIL;
++ struct if_msghdr *ifm;
++ int mib[6] = { CTL_NET, AF_ROUTE, 0, 0, NET_RT_IFLIST, 0 };
++ char *buf = NULL;
++ char *lim, *next;
++ struct rt_msghdr *rtm;
++ struct if_data *ifd = NULL;
++ struct sockaddr *sa, *rti_info[RTAX_MAX];
++ struct sockaddr_dl *sdl;
++
++ size_t len = 0;
++ size_t olen = 0;
++ int ret = SYSINFO_RET_FAIL;
++
++ static char name[IFNAMSIZ];
+
+ if (NULL == if_name || '\0' == *if_name)
+ {
+ *error = zbx_strdup(NULL, "Network interface name cannot be empty.");
+- return FAIL;
++ ret = FAIL;
++ goto out;
+ }
+
+- if (NULL == (kp = kvm_open(NULL, NULL, NULL, O_RDONLY, NULL))) /* requires root privileges */
+- {
+- *error = zbx_strdup(NULL, "Cannot obtain a descriptor to access kernel virtual memory.");
+- return FAIL;
+- }
+-
+- if (N_UNDF == kernel_symbols[IFNET_ID].n_type)
+- if (0 != kvm_nlist(kp, &kernel_symbols[0]))
+- kernel_symbols[IFNET_ID].n_type = N_UNDF;
+-
+- if (N_UNDF != kernel_symbols[IFNET_ID].n_type)
+- {
+- len = sizeof(struct ifnet_head);
+-
+- if (kvm_read(kp, kernel_symbols[IFNET_ID].n_value, &head, len) >= len)
+- {
+- len = sizeof(struct ifnet);
++ if (sysctl(mib, 6, NULL, &len, NULL, 0) == -1) {
++ *error = zbx_strdup(NULL, "Failed to read network interfaces data");
++ ret = FAIL;
++ goto out;
++ }
++
++ if (len > olen) {
++ free(buf);
++ if ((buf = zbx_malloc(NULL, len)) == NULL) {
++ *error = zbx_strdup(NULL, "Failed to allocate buffer for network interfaces data");
++ ret = FAIL;
++ goto out;
++ }
++ olen = len;
++ }
++ if (sysctl(mib, 6, buf, &len, NULL, 0) == -1) {
++ *error = zbx_strdup(NULL, "Failed to allocate buffer for network interfaces data");
++ ret = FAIL;
++ goto out;
++ }
++
++ lim = buf + len;
++ for (next = buf; next < lim; next += rtm->rtm_msglen) {
++ rtm = (struct rt_msghdr *)next;
++ if ((rtm->rtm_version == RTM_VERSION) &&
++ (rtm->rtm_type == RTM_IFINFO)) {
++ ifm = (struct if_msghdr *)next;
++ ifd = &ifm->ifm_data;
++
++ sa = (struct sockaddr *)(ifm + 1);
++ get_rtaddrs(ifm->ifm_addrs, sa, rti_info);
++
++ sdl = (struct sockaddr_dl *)rti_info[RTAX_IFP];
++ if (sdl == NULL || sdl->sdl_family != AF_LINK) {
++ continue;
++ }
++ bzero(name, sizeof(name));
++ if (sdl->sdl_nlen >= IFNAMSIZ)
++ memcpy(name, sdl->sdl_data, IFNAMSIZ - 1);
++ else if (sdl->sdl_nlen > 0)
++ memcpy(name, sdl->sdl_data, sdl->sdl_nlen);
+
+ /* if_ibytes; total number of octets received */
+ /* if_ipackets; packets received on interface */
+@@ -101,42 +152,38 @@ static int get_ifdata(const char *if_nam
+ if (icollisions)
+ *icollisions = 0;
+
+- for (ifp = head.tqh_first; ifp; ifp = v.if_list.tqe_next)
++ if (0 == strcmp(if_name, name))
+ {
+- if (kvm_read(kp, (u_long)ifp, &v, len) < len)
+- break;
+-
+- if (0 == strcmp(if_name, v.if_xname))
+- {
+- if (ibytes)
+- *ibytes += v.if_ibytes;
+- if (ipackets)
+- *ipackets += v.if_ipackets;
+- if (ierrors)
+- *ierrors += v.if_ierrors;
+- if (idropped)
+- *idropped += v.if_iqdrops;
+- if (obytes)
+- *obytes += v.if_obytes;
+- if (opackets)
+- *opackets += v.if_opackets;
+- if (oerrors)
+- *oerrors += v.if_oerrors;
+- if (tbytes)
+- *tbytes += v.if_ibytes + v.if_obytes;
+- if (tpackets)
+- *tpackets += v.if_ipackets + v.if_opackets;
+- if (terrors)
+- *terrors += v.if_ierrors + v.if_oerrors;
+- if (icollisions)
+- *icollisions += v.if_collisions;
+- ret = SYSINFO_RET_OK;
+- }
++ if (ibytes)
++ *ibytes += ifd->ifi_ibytes;
++ if (ipackets)
++ *ipackets += ifd->ifi_ipackets;
++ if (ierrors)
++ *ierrors += ifd->ifi_ierrors;
++ if (idropped)
++ *idropped += ifd->ifi_iqdrops;
++ if (obytes)
++ *obytes += ifd->ifi_obytes;
++ if (opackets)
++ *opackets += ifd->ifi_opackets;
++ if (oerrors)
++ *oerrors += ifd->ifi_oerrors;
++ if (tbytes)
++ *tbytes += ifd->ifi_ibytes + ifd->ifi_obytes;
++ if (tpackets)
++ *tpackets += ifd->ifi_ipackets + ifd->ifi_opackets;
++ if (terrors)
++ *terrors += ifd->ifi_ierrors + ifd->ifi_oerrors;
++ if (icollisions)
++ *icollisions += ifd->ifi_collisions;
++ ret = SYSINFO_RET_OK;
++ goto out;
+ }
+ }
+ }
+
+- kvm_close(kp);
++out:
++ free(buf);
+
+ if (SYSINFO_RET_FAIL == ret)
+ {
diff --git a/zabbix52-agent/patches/patch-src_zabbix__agent_Makefile.in b/zabbix52-agent/patches/patch-src_zabbix__agent_Makefile.in
new file mode 100644
index 0000000000..b2ba47631e
--- /dev/null
+++ b/zabbix52-agent/patches/patch-src_zabbix__agent_Makefile.in
@@ -0,0 +1,15 @@
+$NetBSD: patch-src_zabbix__agent_Makefile.in,v 1.1 2020/11/03 22:46:23 otis Exp $
+
+Install config file to component's example directory.
+
+--- src/zabbix_agent/Makefile.in.orig 2020-08-24 09:43:03.000000000 +0000
++++ src/zabbix_agent/Makefile.in
+@@ -1113,7 +1113,7 @@ uninstall-am: uninstall-sbinPROGRAMS
+ install-data-hook:
+ $(MKDIR_P) "$(DESTDIR)$(AGENT_CONFIG_FILE).d"
+ $(MKDIR_P) "$(DESTDIR)$(LOAD_MODULE_PATH)"
+- test -f "$(DESTDIR)$(AGENT_CONFIG_FILE)" || cp "../../conf/zabbix_agentd.conf" "$(DESTDIR)$(AGENT_CONFIG_FILE)"
++ $(INSTALL_DATA) "../../conf/zabbix_agentd.conf" "$(DESTDIR)/${PREFIX}/share/examples/%%PKGBASE%%"
+
+ # Tell versions [3.59,3.63) of GNU make to not export all variables.
+ # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/zabbix52-frontend/DESCR b/zabbix52-frontend/DESCR
new file mode 100644
index 0000000000..43094c0148
--- /dev/null
+++ b/zabbix52-frontend/DESCR
@@ -0,0 +1,10 @@
+Zabbix is the ultimate enterprise-level software designed for monitoring
+availability and performance of IT infrastructure components. Zabbix is open
+source and comes at no cost.
+
+With Zabbix it is possible to gather virtually limitless types of data from
+the network. High performance real-time monitoring means that tens of thousands
+of servers, virtual machines and network devices can be monitored
+simultaneously. Along with storing the data, visualization features are
+available (overviews, maps, graphs, screens, etc), as well as very flexible
+ways of analyzing the data for the purpose of alerting.
diff --git a/zabbix52-frontend/Makefile b/zabbix52-frontend/Makefile
new file mode 100644
index 0000000000..e1cc0909a1
--- /dev/null
+++ b/zabbix52-frontend/Makefile
@@ -0,0 +1,52 @@
+# $NetBSD$
+
+.include "../../sysutils/zabbix52-server/Makefile.common"
+
+PKGNAME= ${DISTNAME:S/-/-frontend-${ZABBIX_DB_TYPE}-/}
+COMMENT= Zabbix PHP 7.2+ frontend
+
+CONFLICTS+= zabbix-frontend-[0-9]*
+
+EGDIR= share/examples/${PKGBASE}
+
+USE_TOOLS+= pax
+NO_BUILD= yes
+NO_CONFIGURE= yes
+
+REPLACE_SH+= ui/locale/*.sh
+
+.include "../../mk/bsd.prefs.mk"
+.include "options.mk"
+
+BUILD_DEFS+= APACHE_GROUP APACHE_USER
+PKG_GROUPS_VARS+= ${APACHE_GROUP}
+PKG_USERS_VARS= ${APACHE_USER}
+
+DEPENDS+= ${PHP_PKG_PREFIX}-bcmath>=7.2.0:../../math/php-bcmath
+DEPENDS+= ${PHP_PKG_PREFIX}-gd>=7.2.0:../../graphics/php-gd
+DEPENDS+= ${PHP_PKG_PREFIX}-gettext>=7.2.0:../../devel/php-gettext
+DEPENDS+= ${PHP_PKG_PREFIX}-json>=7.2.0:../../textproc/php-json
+DEPENDS+= ${PHP_PKG_PREFIX}-ldap>=7.2.0:../../databases/php-ldap
+DEPENDS+= ${PHP_PKG_PREFIX}-mbstring>=7.2.0:../../converters/php-mbstring
+.if ${ZABBIX_DB_TYPE} == "mysql"
+DEPENDS+= ${PHP_PKG_PREFIX}-mysqli>=7.2.0:../../databases/php-mysqli
+.endif
+.if ${ZABBIX_DB_TYPE} == "pgsql"
+DEPENDS+= ${PHP_PKG_PREFIX}-pgsql>=7.2.0:../../databases/php-pgsql
+.endif
+DEPENDS+= ${PHP_PKG_PREFIX}-sockets>=7.2.0:../../net/php-sockets
+DEPENDS+= ${PHP_PKG_PREFIX}-sysvsem>=7.2.0:../../devel/php-sysvsem
+
+INSTALLATION_DIRS+= ${EGDIR} share/zabbix
+
+post-patch: replace-interpreter
+
+do-install:
+ rm -f ${WRKSRC}/ui/locale/*.orig
+ cd ${WRKSRC}/ui; ${PAX} -rw . ${DESTDIR}${PREFIX}/share/zabbix/
+ ${INSTALL_DATA} ${FILESDIR}/httpd-zabbix.conf ${DESTDIR}${PREFIX}/${EGDIR}
+ ${INSTALL_DATA} ${FILESDIR}/php-fpm-zabbix.conf ${DESTDIR}${PREFIX}/${EGDIR}
+
+.include "../../lang/php/phpversion.mk"
+.include "../../mk/configure/replace-interpreter.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/zabbix52-frontend/PLIST b/zabbix52-frontend/PLIST
new file mode 100644
index 0000000000..23b448364f
--- /dev/null
+++ b/zabbix52-frontend/PLIST
@@ -0,0 +1,1297 @@
+@comment $NetBSD$
+share/examples/zabbix-frontend-postgresql/httpd-zabbix.conf
+share/examples/zabbix-frontend-postgresql/php-fpm-zabbix.conf
+share/zabbix/actionconf.php
+share/zabbix/api_jsonrpc.php
+share/zabbix/app/.htaccess
+share/zabbix/app/controllers/CControllerActionOperationGet.php
+share/zabbix/app/controllers/CControllerActionOperationValidate.php
+share/zabbix/app/controllers/CControllerApplicationCreate.php
+share/zabbix/app/controllers/CControllerApplicationDelete.php
+share/zabbix/app/controllers/CControllerApplicationDisable.php
+share/zabbix/app/controllers/CControllerApplicationEdit.php
+share/zabbix/app/controllers/CControllerApplicationEnable.php
+share/zabbix/app/controllers/CControllerApplicationList.php
+share/zabbix/app/controllers/CControllerApplicationUpdate.php
+share/zabbix/app/controllers/CControllerAuditLogList.php
+share/zabbix/app/controllers/CControllerAuthenticationEdit.php
+share/zabbix/app/controllers/CControllerAuthenticationUpdate.php
+share/zabbix/app/controllers/CControllerAutoregEdit.php
+share/zabbix/app/controllers/CControllerAutoregUpdate.php
+share/zabbix/app/controllers/CControllerCharts.php
+share/zabbix/app/controllers/CControllerChartsView.php
+share/zabbix/app/controllers/CControllerChartsViewJson.php
+share/zabbix/app/controllers/CControllerDashboardDelete.php
+share/zabbix/app/controllers/CControllerDashboardList.php
+share/zabbix/app/controllers/CControllerDashboardPropertiesCheck.php
+share/zabbix/app/controllers/CControllerDashboardPropertiesEdit.php
+share/zabbix/app/controllers/CControllerDashboardShareEdit.php
+share/zabbix/app/controllers/CControllerDashboardShareUpdate.php
+share/zabbix/app/controllers/CControllerDashboardUpdate.php
+share/zabbix/app/controllers/CControllerDashboardView.php
+share/zabbix/app/controllers/CControllerDashboardWidgetCheck.php
+share/zabbix/app/controllers/CControllerDashboardWidgetConfigure.php
+share/zabbix/app/controllers/CControllerDashboardWidgetEdit.php
+share/zabbix/app/controllers/CControllerDashboardWidgetRfRate.php
+share/zabbix/app/controllers/CControllerDashboardWidgetSanitize.php
+share/zabbix/app/controllers/CControllerDiscoveryView.php
+share/zabbix/app/controllers/CControllerExport.php
+share/zabbix/app/controllers/CControllerFavouriteCreate.php
+share/zabbix/app/controllers/CControllerFavouriteDelete.php
+share/zabbix/app/controllers/CControllerGuiEdit.php
+share/zabbix/app/controllers/CControllerGuiUpdate.php
+share/zabbix/app/controllers/CControllerHost.php
+share/zabbix/app/controllers/CControllerHostDashboardView.php
+share/zabbix/app/controllers/CControllerHostMacrosList.php
+share/zabbix/app/controllers/CControllerHostView.php
+share/zabbix/app/controllers/CControllerHostViewRefresh.php
+share/zabbix/app/controllers/CControllerHousekeepingEdit.php
+share/zabbix/app/controllers/CControllerHousekeepingUpdate.php
+share/zabbix/app/controllers/CControllerIconMapCreate.php
+share/zabbix/app/controllers/CControllerIconMapDelete.php
+share/zabbix/app/controllers/CControllerIconMapEdit.php
+share/zabbix/app/controllers/CControllerIconMapList.php
+share/zabbix/app/controllers/CControllerIconMapUpdate.php
+share/zabbix/app/controllers/CControllerImageCreate.php
+share/zabbix/app/controllers/CControllerImageDelete.php
+share/zabbix/app/controllers/CControllerImageEdit.php
+share/zabbix/app/controllers/CControllerImageList.php
+share/zabbix/app/controllers/CControllerImageUpdate.php
+share/zabbix/app/controllers/CControllerLatest.php
+share/zabbix/app/controllers/CControllerLatestView.php
+share/zabbix/app/controllers/CControllerLatestViewRefresh.php
+share/zabbix/app/controllers/CControllerMacrosEdit.php
+share/zabbix/app/controllers/CControllerMacrosUpdate.php
+share/zabbix/app/controllers/CControllerMapView.php
+share/zabbix/app/controllers/CControllerMediatypeCreate.php
+share/zabbix/app/controllers/CControllerMediatypeDelete.php
+share/zabbix/app/controllers/CControllerMediatypeDisable.php
+share/zabbix/app/controllers/CControllerMediatypeEdit.php
+share/zabbix/app/controllers/CControllerMediatypeEnable.php
+share/zabbix/app/controllers/CControllerMediatypeList.php
+share/zabbix/app/controllers/CControllerMediatypeUpdate.php
+share/zabbix/app/controllers/CControllerMenuPopup.php
+share/zabbix/app/controllers/CControllerMiscConfigEdit.php
+share/zabbix/app/controllers/CControllerMiscConfigUpdate.php
+share/zabbix/app/controllers/CControllerModuleEdit.php
+share/zabbix/app/controllers/CControllerModuleList.php
+share/zabbix/app/controllers/CControllerModuleScan.php
+share/zabbix/app/controllers/CControllerModuleUpdate.php
+share/zabbix/app/controllers/CControllerNotificationsGet.php
+share/zabbix/app/controllers/CControllerNotificationsMute.php
+share/zabbix/app/controllers/CControllerNotificationsRead.php
+share/zabbix/app/controllers/CControllerPopup.php
+share/zabbix/app/controllers/CControllerPopupAcknowledgeCreate.php
+share/zabbix/app/controllers/CControllerPopupAcknowledgeEdit.php
+share/zabbix/app/controllers/CControllerPopupConditionActions.php
+share/zabbix/app/controllers/CControllerPopupConditionCommon.php
+share/zabbix/app/controllers/CControllerPopupConditionEventCorr.php
+share/zabbix/app/controllers/CControllerPopupConditionOperations.php
+share/zabbix/app/controllers/CControllerPopupDiscoveryCheck.php
+share/zabbix/app/controllers/CControllerPopupGeneric.php
+share/zabbix/app/controllers/CControllerPopupHttpStep.php
+share/zabbix/app/controllers/CControllerPopupItemTest.php
+share/zabbix/app/controllers/CControllerPopupItemTestEdit.php
+share/zabbix/app/controllers/CControllerPopupItemTestGetValue.php
+share/zabbix/app/controllers/CControllerPopupItemTestSend.php
+share/zabbix/app/controllers/CControllerPopupLldOperation.php
+share/zabbix/app/controllers/CControllerPopupLldOverride.php
+share/zabbix/app/controllers/CControllerPopupMaintenancePeriod.php
+share/zabbix/app/controllers/CControllerPopupMedia.php
+share/zabbix/app/controllers/CControllerPopupMediatypeMessage.php
+share/zabbix/app/controllers/CControllerPopupMediatypeTestEdit.php
+share/zabbix/app/controllers/CControllerPopupMediatypeTestSend.php
+share/zabbix/app/controllers/CControllerPopupScriptExec.php
+share/zabbix/app/controllers/CControllerPopupServices.php
+share/zabbix/app/controllers/CControllerPopupTabFilterDelete.php
+share/zabbix/app/controllers/CControllerPopupTabFilterEdit.php
+share/zabbix/app/controllers/CControllerPopupTabFilterUpdate.php
+share/zabbix/app/controllers/CControllerPopupTestTriggerExpr.php
+share/zabbix/app/controllers/CControllerPopupTriggerExpr.php
+share/zabbix/app/controllers/CControllerPopupTriggerWizard.php
+share/zabbix/app/controllers/CControllerProblem.php
+share/zabbix/app/controllers/CControllerProblemView.php
+share/zabbix/app/controllers/CControllerProblemViewRefresh.php
+share/zabbix/app/controllers/CControllerProfileUpdate.php
+share/zabbix/app/controllers/CControllerProxyCreate.php
+share/zabbix/app/controllers/CControllerProxyDelete.php
+share/zabbix/app/controllers/CControllerProxyEdit.php
+share/zabbix/app/controllers/CControllerProxyHostDisable.php
+share/zabbix/app/controllers/CControllerProxyHostEnable.php
+share/zabbix/app/controllers/CControllerProxyList.php
+share/zabbix/app/controllers/CControllerProxyUpdate.php
+share/zabbix/app/controllers/CControllerRegExCreate.php
+share/zabbix/app/controllers/CControllerRegExDelete.php
+share/zabbix/app/controllers/CControllerRegExEdit.php
+share/zabbix/app/controllers/CControllerRegExList.php
+share/zabbix/app/controllers/CControllerRegExTest.php
+share/zabbix/app/controllers/CControllerRegExUpdate.php
+share/zabbix/app/controllers/CControllerReportServices.php
+share/zabbix/app/controllers/CControllerReportStatus.php
+share/zabbix/app/controllers/CControllerScriptCreate.php
+share/zabbix/app/controllers/CControllerScriptDelete.php
+share/zabbix/app/controllers/CControllerScriptEdit.php
+share/zabbix/app/controllers/CControllerScriptList.php
+share/zabbix/app/controllers/CControllerScriptUpdate.php
+share/zabbix/app/controllers/CControllerSearch.php
+share/zabbix/app/controllers/CControllerSystemWarning.php
+share/zabbix/app/controllers/CControllerTabFilterProfileUpdate.php
+share/zabbix/app/controllers/CControllerTemplateDashboardDelete.php
+share/zabbix/app/controllers/CControllerTemplateDashboardEdit.php
+share/zabbix/app/controllers/CControllerTemplateDashboardList.php
+share/zabbix/app/controllers/CControllerTemplateDashboardUpdate.php
+share/zabbix/app/controllers/CControllerTimeSelectorUpdate.php
+share/zabbix/app/controllers/CControllerTrigDisplayEdit.php
+share/zabbix/app/controllers/CControllerTrigDisplayUpdate.php
+share/zabbix/app/controllers/CControllerUserCreate.php
+share/zabbix/app/controllers/CControllerUserDelete.php
+share/zabbix/app/controllers/CControllerUserEdit.php
+share/zabbix/app/controllers/CControllerUserEditGeneral.php
+share/zabbix/app/controllers/CControllerUserList.php
+share/zabbix/app/controllers/CControllerUserProfileEdit.php
+share/zabbix/app/controllers/CControllerUserProfileUpdate.php
+share/zabbix/app/controllers/CControllerUserUnblock.php
+share/zabbix/app/controllers/CControllerUserUpdate.php
+share/zabbix/app/controllers/CControllerUserUpdateGeneral.php
+share/zabbix/app/controllers/CControllerUsergroupCreate.php
+share/zabbix/app/controllers/CControllerUsergroupDelete.php
+share/zabbix/app/controllers/CControllerUsergroupEdit.php
+share/zabbix/app/controllers/CControllerUsergroupGrouprightAdd.php
+share/zabbix/app/controllers/CControllerUsergroupList.php
+share/zabbix/app/controllers/CControllerUsergroupMassUpdate.php
+share/zabbix/app/controllers/CControllerUsergroupTagfilterAdd.php
+share/zabbix/app/controllers/CControllerUsergroupUpdate.php
+share/zabbix/app/controllers/CControllerUserroleCreate.php
+share/zabbix/app/controllers/CControllerUserroleDelete.php
+share/zabbix/app/controllers/CControllerUserroleEdit.php
+share/zabbix/app/controllers/CControllerUserroleEditGeneral.php
+share/zabbix/app/controllers/CControllerUserroleList.php
+share/zabbix/app/controllers/CControllerUserroleUpdate.php
+share/zabbix/app/controllers/CControllerValuemapCreate.php
+share/zabbix/app/controllers/CControllerValuemapDelete.php
+share/zabbix/app/controllers/CControllerValuemapEdit.php
+share/zabbix/app/controllers/CControllerValuemapList.php
+share/zabbix/app/controllers/CControllerValuemapUpdate.php
+share/zabbix/app/controllers/CControllerWebView.php
+share/zabbix/app/controllers/CControllerWidget.php
+share/zabbix/app/controllers/CControllerWidgetActionLogView.php
+share/zabbix/app/controllers/CControllerWidgetClockView.php
+share/zabbix/app/controllers/CControllerWidgetDataOverView.php
+share/zabbix/app/controllers/CControllerWidgetDiscoveryView.php
+share/zabbix/app/controllers/CControllerWidgetFavGraphsView.php
+share/zabbix/app/controllers/CControllerWidgetFavMapsView.php
+share/zabbix/app/controllers/CControllerWidgetFavScreensView.php
+share/zabbix/app/controllers/CControllerWidgetGraphView.php
+share/zabbix/app/controllers/CControllerWidgetHostAvailView.php
+share/zabbix/app/controllers/CControllerWidgetIterator.php
+share/zabbix/app/controllers/CControllerWidgetIteratorGraphPrototypeView.php
+share/zabbix/app/controllers/CControllerWidgetMapView.php
+share/zabbix/app/controllers/CControllerWidgetNavTreeItemEdit.php
+share/zabbix/app/controllers/CControllerWidgetNavTreeItemUpdate.php
+share/zabbix/app/controllers/CControllerWidgetNavTreeView.php
+share/zabbix/app/controllers/CControllerWidgetPlainTextView.php
+share/zabbix/app/controllers/CControllerWidgetProblemHostsView.php
+share/zabbix/app/controllers/CControllerWidgetProblemsBySvView.php
+share/zabbix/app/controllers/CControllerWidgetProblemsView.php
+share/zabbix/app/controllers/CControllerWidgetSvgGraphView.php
+share/zabbix/app/controllers/CControllerWidgetSystemInfoView.php
+share/zabbix/app/controllers/CControllerWidgetTrigOverView.php
+share/zabbix/app/controllers/CControllerWidgetUrlView.php
+share/zabbix/app/controllers/CControllerWidgetWebView.php
+share/zabbix/app/partials/administration.usergroup.grouprights.html.php
+share/zabbix/app/partials/administration.usergroup.tagfilters.html.php
+share/zabbix/app/partials/common.filter.trigger.php
+share/zabbix/app/partials/configuration.tags.tab.php
+share/zabbix/app/partials/dataoverview.table.left.php
+share/zabbix/app/partials/dataoverview.table.top.php
+share/zabbix/app/partials/hostmacros.inherited.list.html.php
+share/zabbix/app/partials/hostmacros.list.html.php
+share/zabbix/app/partials/js/common.filter.trigger.js.php
+share/zabbix/app/partials/js/configuration.tags.tab.js.php
+share/zabbix/app/partials/js/massupdate.macros.tab.js.php
+share/zabbix/app/partials/layout.htmlpage.aside.php
+share/zabbix/app/partials/layout.htmlpage.footer.php
+share/zabbix/app/partials/layout.htmlpage.header.php
+share/zabbix/app/partials/massupdate.macros.tab.php
+share/zabbix/app/partials/monitoring.dashboard.breadcrumbs.php
+share/zabbix/app/partials/monitoring.host.filter.php
+share/zabbix/app/partials/monitoring.host.view.html.php
+share/zabbix/app/partials/monitoring.latest.view.html.php
+share/zabbix/app/partials/monitoring.problem.filter.php
+share/zabbix/app/partials/popup.operations.php
+share/zabbix/app/partials/timeselector.filter.php
+share/zabbix/app/partials/trigoverview.table.left.php
+share/zabbix/app/partials/trigoverview.table.top.php
+share/zabbix/app/views/administration.authentication.edit.php
+share/zabbix/app/views/administration.autoreg.edit.php
+share/zabbix/app/views/administration.gui.edit.php
+share/zabbix/app/views/administration.housekeeping.edit.php
+share/zabbix/app/views/administration.iconmap.edit.php
+share/zabbix/app/views/administration.iconmap.list.php
+share/zabbix/app/views/administration.image.edit.php
+share/zabbix/app/views/administration.image.list.php
+share/zabbix/app/views/administration.macros.edit.php
+share/zabbix/app/views/administration.mediatype.edit.php
+share/zabbix/app/views/administration.mediatype.list.php
+share/zabbix/app/views/administration.miscconfig.edit.php
+share/zabbix/app/views/administration.module.edit.php
+share/zabbix/app/views/administration.module.list.php
+share/zabbix/app/views/administration.proxy.edit.php
+share/zabbix/app/views/administration.proxy.list.php
+share/zabbix/app/views/administration.regex.edit.php
+share/zabbix/app/views/administration.regex.list.php
+share/zabbix/app/views/administration.script.edit.php
+share/zabbix/app/views/administration.script.list.php
+share/zabbix/app/views/administration.trigdisplay.edit.php
+share/zabbix/app/views/administration.user.edit.php
+share/zabbix/app/views/administration.user.list.php
+share/zabbix/app/views/administration.usergroup.edit.php
+share/zabbix/app/views/administration.usergroup.grouprights.php
+share/zabbix/app/views/administration.usergroup.list.php
+share/zabbix/app/views/administration.usergroup.tagfilters.php
+share/zabbix/app/views/administration.userrole.edit.php
+share/zabbix/app/views/administration.userrole.list.php
+share/zabbix/app/views/administration.valuemap.edit.php
+share/zabbix/app/views/administration.valuemap.list.php
+share/zabbix/app/views/configuration.application.edit.php
+share/zabbix/app/views/configuration.application.list.php
+share/zabbix/app/views/configuration.dashboard.edit.php
+share/zabbix/app/views/configuration.dashboard.list.php
+share/zabbix/app/views/dashboard.properties.edit.php
+share/zabbix/app/views/dashboard.share.edit.php
+share/zabbix/app/views/hostmacros.list.php
+share/zabbix/app/views/js/administration.authentication.edit.js.php
+share/zabbix/app/views/js/administration.autoreg.edit.js.php
+share/zabbix/app/views/js/administration.gui.edit.js.php
+share/zabbix/app/views/js/administration.housekeeping.edit.js.php
+share/zabbix/app/views/js/administration.iconmap.edit.js.php
+share/zabbix/app/views/js/administration.image.edit.js.php
+share/zabbix/app/views/js/administration.macros.edit.js.php
+share/zabbix/app/views/js/administration.mediatype.edit.js.php
+share/zabbix/app/views/js/administration.miscconfig.edit.js.php
+share/zabbix/app/views/js/administration.proxy.edit.js.php
+share/zabbix/app/views/js/administration.regex.edit.js.php
+share/zabbix/app/views/js/administration.script.edit.js.php
+share/zabbix/app/views/js/administration.trigdisplay.edit.js.php
+share/zabbix/app/views/js/administration.user.edit.common.js.php
+share/zabbix/app/views/js/administration.user.edit.js.php
+share/zabbix/app/views/js/administration.usergroup.edit.js.php
+share/zabbix/app/views/js/administration.userprofile.edit.js.php
+share/zabbix/app/views/js/administration.userrole.edit.js.php
+share/zabbix/app/views/js/administration.valuemap.edit.js.php
+share/zabbix/app/views/js/configuration.applications.edit.js.php
+share/zabbix/app/views/js/configuration.dashboard.edit.js.php
+share/zabbix/app/views/js/dashboard/class.dashboard-share.js.php
+share/zabbix/app/views/js/dashboard/class.dashboard.js.php
+share/zabbix/app/views/js/dashboard/class.template-dashboard.js.php
+share/zabbix/app/views/js/monitoring.charts.view.js.php
+share/zabbix/app/views/js/monitoring.dashboard.view.js.php
+share/zabbix/app/views/js/monitoring.host.dashboard.view.js.php
+share/zabbix/app/views/js/monitoring.host.view.js.php
+share/zabbix/app/views/js/monitoring.latest.view.js.php
+share/zabbix/app/views/js/monitoring.problem.view.js.php
+share/zabbix/app/views/js/popup.acknowledge.edit.js.php
+share/zabbix/app/views/js/popup.discovery.check.js.php
+share/zabbix/app/views/js/popup.itemtestedit.view.js.php
+share/zabbix/app/views/js/popup.maintenance.period.js.php
+share/zabbix/app/views/js/popup.media.js.php
+share/zabbix/app/views/js/popup.mediatype.message.js.php
+share/zabbix/app/views/js/popup.mediatypetest.edit.js.php
+share/zabbix/app/views/js/popup.tabfilter.edit.js.php
+share/zabbix/app/views/js/popup.triggerwizard.js.php
+share/zabbix/app/views/js/reports.auditlog.list.js.php
+share/zabbix/app/views/layout.csv.php
+share/zabbix/app/views/layout.export.php
+share/zabbix/app/views/layout.htmlpage.php
+share/zabbix/app/views/layout.javascript.php
+share/zabbix/app/views/layout.json.php
+share/zabbix/app/views/layout.warning.php
+share/zabbix/app/views/layout.widget.php
+share/zabbix/app/views/monitoring.charts.view.json.php
+share/zabbix/app/views/monitoring.charts.view.php
+share/zabbix/app/views/monitoring.dashboard.list.php
+share/zabbix/app/views/monitoring.dashboard.view.php
+share/zabbix/app/views/monitoring.dashboard.widget.edit.php
+share/zabbix/app/views/monitoring.discovery.view.php
+share/zabbix/app/views/monitoring.host.dashboard.view.php
+share/zabbix/app/views/monitoring.host.view.php
+share/zabbix/app/views/monitoring.host.view.refresh.php
+share/zabbix/app/views/monitoring.latest.view.php
+share/zabbix/app/views/monitoring.latest.view.refresh.php
+share/zabbix/app/views/monitoring.map.view.php
+share/zabbix/app/views/monitoring.problem.view.php
+share/zabbix/app/views/monitoring.web.view.php
+share/zabbix/app/views/monitoring.widget.actionlog.view.php
+share/zabbix/app/views/monitoring.widget.clock.view.php
+share/zabbix/app/views/monitoring.widget.dataover.view.php
+share/zabbix/app/views/monitoring.widget.discovery.view.php
+share/zabbix/app/views/monitoring.widget.favgraphs.view.php
+share/zabbix/app/views/monitoring.widget.favmaps.view.php
+share/zabbix/app/views/monitoring.widget.favscreens.view.php
+share/zabbix/app/views/monitoring.widget.graph.view.php
+share/zabbix/app/views/monitoring.widget.hostavail.view.php
+share/zabbix/app/views/monitoring.widget.map.view.php
+share/zabbix/app/views/monitoring.widget.navtree.view.php
+share/zabbix/app/views/monitoring.widget.navtreeitem.edit.php
+share/zabbix/app/views/monitoring.widget.plaintext.view.php
+share/zabbix/app/views/monitoring.widget.problemhosts.view.php
+share/zabbix/app/views/monitoring.widget.problems.view.php
+share/zabbix/app/views/monitoring.widget.problemsbysv.view.php
+share/zabbix/app/views/monitoring.widget.svggraph.view.php
+share/zabbix/app/views/monitoring.widget.systeminfo.view.php
+share/zabbix/app/views/monitoring.widget.trigover.view.php
+share/zabbix/app/views/monitoring.widget.url.view.php
+share/zabbix/app/views/monitoring.widget.web.view.php
+share/zabbix/app/views/popup.acknowledge.edit.php
+share/zabbix/app/views/popup.condition.common.php
+share/zabbix/app/views/popup.discovery.check.php
+share/zabbix/app/views/popup.generic.php
+share/zabbix/app/views/popup.httpstep.php
+share/zabbix/app/views/popup.itemtestedit.view.php
+share/zabbix/app/views/popup.lldoperation.php
+share/zabbix/app/views/popup.lldoverride.php
+share/zabbix/app/views/popup.maintenance.period.php
+share/zabbix/app/views/popup.media.php
+share/zabbix/app/views/popup.mediatype.message.php
+share/zabbix/app/views/popup.mediatypetest.edit.php
+share/zabbix/app/views/popup.scriptexec.php
+share/zabbix/app/views/popup.services.php
+share/zabbix/app/views/popup.tabfilter.edit.php
+share/zabbix/app/views/popup.testtriggerexpr.php
+share/zabbix/app/views/popup.triggerexpr.php
+share/zabbix/app/views/popup.triggerwizard.php
+share/zabbix/app/views/popup.view.php
+share/zabbix/app/views/report.services.php
+share/zabbix/app/views/report.status.php
+share/zabbix/app/views/reports.auditlog.list.php
+share/zabbix/app/views/search.php
+share/zabbix/app/views/system.warning.php
+share/zabbix/assets/fonts/DejaVuSans.ttf
+share/zabbix/assets/img/apple-touch-icon-120x120-precomposed.png
+share/zabbix/assets/img/apple-touch-icon-152x152-precomposed.png
+share/zabbix/assets/img/apple-touch-icon-180x180-precomposed.png
+share/zabbix/assets/img/apple-touch-icon-76x76-precomposed.png
+share/zabbix/assets/img/browser-sprite.png
+share/zabbix/assets/img/icon-sprite.svg
+share/zabbix/assets/img/ms-tile-144x144.png
+share/zabbix/assets/img/touch-icon-192x192.png
+share/zabbix/assets/styles/blue-theme.css
+share/zabbix/assets/styles/dark-theme.css
+share/zabbix/assets/styles/hc-dark.css
+share/zabbix/assets/styles/hc-light.css
+share/zabbix/audio/alarm_average.mp3
+share/zabbix/audio/alarm_disaster.mp3
+share/zabbix/audio/alarm_high.mp3
+share/zabbix/audio/alarm_information.mp3
+share/zabbix/audio/alarm_ok.mp3
+share/zabbix/audio/alarm_warning.mp3
+share/zabbix/audio/no_sound.mp3
+share/zabbix/auditacts.php
+share/zabbix/browserwarning.php
+share/zabbix/chart.php
+share/zabbix/chart2.php
+share/zabbix/chart3.php
+share/zabbix/chart4.php
+share/zabbix/chart5.php
+share/zabbix/chart6.php
+share/zabbix/chart7.php
+share/zabbix/composer.json
+share/zabbix/composer.lock
+share/zabbix/conf.import.php
+share/zabbix/conf/.htaccess
+share/zabbix/conf/maintenance.inc.php
+share/zabbix/conf/zabbix.conf.php.example
+share/zabbix/correlation.php
+share/zabbix/disc_prototypes.php
+share/zabbix/discoveryconf.php
+share/zabbix/favicon.ico
+share/zabbix/graphs.php
+share/zabbix/history.php
+share/zabbix/host_discovery.php
+share/zabbix/host_prototypes.php
+share/zabbix/hostgroups.php
+share/zabbix/hostinventories.php
+share/zabbix/hostinventoriesoverview.php
+share/zabbix/hosts.php
+share/zabbix/httpconf.php
+share/zabbix/httpdetails.php
+share/zabbix/image.php
+share/zabbix/imgstore.php
+share/zabbix/include/.htaccess
+share/zabbix/include/actions.inc.php
+share/zabbix/include/audit.inc.php
+share/zabbix/include/blocks.inc.php
+share/zabbix/include/classes/api/API.php
+share/zabbix/include/classes/api/APIException.php
+share/zabbix/include/classes/api/CApiClientResponse.php
+share/zabbix/include/classes/api/CApiService.php
+share/zabbix/include/classes/api/CApiServiceFactory.php
+share/zabbix/include/classes/api/CAudit.php
+share/zabbix/include/classes/api/CRelationMap.php
+share/zabbix/include/classes/api/clients/CApiClient.php
+share/zabbix/include/classes/api/clients/CLocalApiClient.php
+share/zabbix/include/classes/api/helpers/CApiHostHelper.php
+share/zabbix/include/classes/api/helpers/CApiTagHelper.php
+share/zabbix/include/classes/api/managers/CApplicationManager.php
+share/zabbix/include/classes/api/managers/CDiscoveryRuleManager.php
+share/zabbix/include/classes/api/managers/CGraphManager.php
+share/zabbix/include/classes/api/managers/CGraphPrototypeManager.php
+share/zabbix/include/classes/api/managers/CHistoryManager.php
+share/zabbix/include/classes/api/managers/CHttpTestManager.php
+share/zabbix/include/classes/api/managers/CItemManager.php
+share/zabbix/include/classes/api/managers/CItemPrototypeManager.php
+share/zabbix/include/classes/api/managers/CTriggerManager.php
+share/zabbix/include/classes/api/managers/CTriggerPrototypeManager.php
+share/zabbix/include/classes/api/services/CAPIInfo.php
+share/zabbix/include/classes/api/services/CAction.php
+share/zabbix/include/classes/api/services/CAlert.php
+share/zabbix/include/classes/api/services/CApplication.php
+share/zabbix/include/classes/api/services/CAuditLog.php
+share/zabbix/include/classes/api/services/CAuthentication.php
+share/zabbix/include/classes/api/services/CAutoregistration.php
+share/zabbix/include/classes/api/services/CConfiguration.php
+share/zabbix/include/classes/api/services/CCorrelation.php
+share/zabbix/include/classes/api/services/CDCheck.php
+share/zabbix/include/classes/api/services/CDHost.php
+share/zabbix/include/classes/api/services/CDRule.php
+share/zabbix/include/classes/api/services/CDService.php
+share/zabbix/include/classes/api/services/CDashboard.php
+share/zabbix/include/classes/api/services/CDashboardGeneral.php
+share/zabbix/include/classes/api/services/CDiscoveryRule.php
+share/zabbix/include/classes/api/services/CEvent.php
+share/zabbix/include/classes/api/services/CGraph.php
+share/zabbix/include/classes/api/services/CGraphGeneral.php
+share/zabbix/include/classes/api/services/CGraphItem.php
+share/zabbix/include/classes/api/services/CGraphPrototype.php
+share/zabbix/include/classes/api/services/CHistory.php
+share/zabbix/include/classes/api/services/CHost.php
+share/zabbix/include/classes/api/services/CHostBase.php
+share/zabbix/include/classes/api/services/CHostGeneral.php
+share/zabbix/include/classes/api/services/CHostGroup.php
+share/zabbix/include/classes/api/services/CHostInterface.php
+share/zabbix/include/classes/api/services/CHostPrototype.php
+share/zabbix/include/classes/api/services/CHousekeeping.php
+share/zabbix/include/classes/api/services/CHttpTest.php
+share/zabbix/include/classes/api/services/CIconMap.php
+share/zabbix/include/classes/api/services/CImage.php
+share/zabbix/include/classes/api/services/CItem.php
+share/zabbix/include/classes/api/services/CItemGeneral.php
+share/zabbix/include/classes/api/services/CItemPrototype.php
+share/zabbix/include/classes/api/services/CMaintenance.php
+share/zabbix/include/classes/api/services/CMap.php
+share/zabbix/include/classes/api/services/CMapElement.php
+share/zabbix/include/classes/api/services/CMediatype.php
+share/zabbix/include/classes/api/services/CModule.php
+share/zabbix/include/classes/api/services/CProblem.php
+share/zabbix/include/classes/api/services/CProxy.php
+share/zabbix/include/classes/api/services/CRole.php
+share/zabbix/include/classes/api/services/CScreen.php
+share/zabbix/include/classes/api/services/CScreenItem.php
+share/zabbix/include/classes/api/services/CScript.php
+share/zabbix/include/classes/api/services/CService.php
+share/zabbix/include/classes/api/services/CSettings.php
+share/zabbix/include/classes/api/services/CTask.php
+share/zabbix/include/classes/api/services/CTemplate.php
+share/zabbix/include/classes/api/services/CTemplateDashboard.php
+share/zabbix/include/classes/api/services/CTrend.php
+share/zabbix/include/classes/api/services/CTrigger.php
+share/zabbix/include/classes/api/services/CTriggerGeneral.php
+share/zabbix/include/classes/api/services/CTriggerPrototype.php
+share/zabbix/include/classes/api/services/CUser.php
+share/zabbix/include/classes/api/services/CUserGroup.php
+share/zabbix/include/classes/api/services/CUserMacro.php
+share/zabbix/include/classes/api/services/CValueMap.php
+share/zabbix/include/classes/api/wrappers/CApiWrapper.php
+share/zabbix/include/classes/api/wrappers/CFrontendApiWrapper.php
+share/zabbix/include/classes/core/APP.php
+share/zabbix/include/classes/core/CAjaxResponse.php
+share/zabbix/include/classes/core/CAutoloader.php
+share/zabbix/include/classes/core/CComponentRegistry.php
+share/zabbix/include/classes/core/CConfigFile.php
+share/zabbix/include/classes/core/CCookieSession.php
+share/zabbix/include/classes/core/CEncryptedCookieSession.php
+share/zabbix/include/classes/core/CHttpRequest.php
+share/zabbix/include/classes/core/CJsonRpc.php
+share/zabbix/include/classes/core/CModule.php
+share/zabbix/include/classes/core/CModuleManager.php
+share/zabbix/include/classes/core/CRegistryFactory.php
+share/zabbix/include/classes/core/ConfigFileException.php
+share/zabbix/include/classes/core/Manager.php
+share/zabbix/include/classes/core/ZBase.php
+share/zabbix/include/classes/db/DB.php
+share/zabbix/include/classes/db/DBException.php
+share/zabbix/include/classes/db/DbBackend.php
+share/zabbix/include/classes/db/MysqlDbBackend.php
+share/zabbix/include/classes/db/OracleDbBackend.php
+share/zabbix/include/classes/db/PostgresqlDbBackend.php
+share/zabbix/include/classes/debug/CProfiler.php
+share/zabbix/include/classes/export/CConfigurationExport.php
+share/zabbix/include/classes/export/CConfigurationExportBuilder.php
+share/zabbix/include/classes/export/CConfigurationExportException.php
+share/zabbix/include/classes/export/writers/CExportWriter.php
+share/zabbix/include/classes/export/writers/CExportWriterFactory.php
+share/zabbix/include/classes/export/writers/CJsonExportWriter.php
+share/zabbix/include/classes/export/writers/CXmlExportWriter.php
+share/zabbix/include/classes/export/writers/CYamlExportWriter.php
+share/zabbix/include/classes/graph/CSvgGraph.php
+share/zabbix/include/classes/graphdraw/CGraphDraw.php
+share/zabbix/include/classes/graphdraw/CLineGraphDraw.php
+share/zabbix/include/classes/graphdraw/CPieGraphDraw.php
+share/zabbix/include/classes/helpers/CArrayHelper.php
+share/zabbix/include/classes/helpers/CAuthenticationHelper.php
+share/zabbix/include/classes/helpers/CBrandHelper.php
+share/zabbix/include/classes/helpers/CConditionHelper.php
+share/zabbix/include/classes/helpers/CConfigGeneralHelper.php
+share/zabbix/include/classes/helpers/CCookieHelper.php
+share/zabbix/include/classes/helpers/CDashboardHelper.php
+share/zabbix/include/classes/helpers/CDataCacheHelper.php
+share/zabbix/include/classes/helpers/CElasticsearchHelper.php
+share/zabbix/include/classes/helpers/CEncryptHelper.php
+share/zabbix/include/classes/helpers/CHousekeepingHelper.php
+share/zabbix/include/classes/helpers/CHtml.php
+share/zabbix/include/classes/helpers/CMapHelper.php
+share/zabbix/include/classes/helpers/CMathHelper.php
+share/zabbix/include/classes/helpers/CMediatypeHelper.php
+share/zabbix/include/classes/helpers/CMenuHelper.php
+share/zabbix/include/classes/helpers/CMenuPopupHelper.php
+share/zabbix/include/classes/helpers/CMessageHelper.php
+share/zabbix/include/classes/helpers/CPagerHelper.php
+share/zabbix/include/classes/helpers/CRoleHelper.php
+share/zabbix/include/classes/helpers/CSessionHelper.php
+share/zabbix/include/classes/helpers/CSettingsHelper.php
+share/zabbix/include/classes/helpers/CSvgGraphHelper.php
+share/zabbix/include/classes/helpers/CUploadFile.php
+share/zabbix/include/classes/helpers/CVaultHelper.php
+share/zabbix/include/classes/helpers/CViewHelper.php
+share/zabbix/include/classes/html/CActionButtonList.php
+share/zabbix/include/classes/html/CButton.php
+share/zabbix/include/classes/html/CButtonCancel.php
+share/zabbix/include/classes/html/CButtonDelete.php
+share/zabbix/include/classes/html/CButtonDropdown.php
+share/zabbix/include/classes/html/CButtonExport.php
+share/zabbix/include/classes/html/CButtonQMessage.php
+share/zabbix/include/classes/html/CCheckBox.php
+share/zabbix/include/classes/html/CCheckBoxList.php
+share/zabbix/include/classes/html/CClock.php
+share/zabbix/include/classes/html/CCol.php
+share/zabbix/include/classes/html/CColHeader.php
+share/zabbix/include/classes/html/CCollapsibleUiWidget.php
+share/zabbix/include/classes/html/CColor.php
+share/zabbix/include/classes/html/CComboBox.php
+share/zabbix/include/classes/html/CComboItem.php
+share/zabbix/include/classes/html/CDashboardWidgetMap.php
+share/zabbix/include/classes/html/CDateSelector.php
+share/zabbix/include/classes/html/CDiv.php
+share/zabbix/include/classes/html/CFile.php
+share/zabbix/include/classes/html/CFilter.php
+share/zabbix/include/classes/html/CForm.php
+share/zabbix/include/classes/html/CFormActions.php
+share/zabbix/include/classes/html/CFormField.php
+share/zabbix/include/classes/html/CFormGrid.php
+share/zabbix/include/classes/html/CFormList.php
+share/zabbix/include/classes/html/CHorList.php
+share/zabbix/include/classes/html/CIFrame.php
+share/zabbix/include/classes/html/CImageTextTable.php
+share/zabbix/include/classes/html/CImg.php
+share/zabbix/include/classes/html/CInput.php
+share/zabbix/include/classes/html/CInputSecret.php
+share/zabbix/include/classes/html/CJsScript.php
+share/zabbix/include/classes/html/CLabel.php
+share/zabbix/include/classes/html/CLink.php
+share/zabbix/include/classes/html/CLinkAction.php
+share/zabbix/include/classes/html/CList.php
+share/zabbix/include/classes/html/CListBox.php
+share/zabbix/include/classes/html/CListItem.php
+share/zabbix/include/classes/html/CMacroValue.php
+share/zabbix/include/classes/html/CMenu.php
+share/zabbix/include/classes/html/CMenuItem.php
+share/zabbix/include/classes/html/CMultiSelect.php
+share/zabbix/include/classes/html/CMultilineInput.php
+share/zabbix/include/classes/html/CNavigationTree.php
+share/zabbix/include/classes/html/CNumericBox.php
+share/zabbix/include/classes/html/CObject.php
+share/zabbix/include/classes/html/CParam.php
+share/zabbix/include/classes/html/CPassBox.php
+share/zabbix/include/classes/html/CPatternSelect.php
+share/zabbix/include/classes/html/CPre.php
+share/zabbix/include/classes/html/CRadioButtonList.php
+share/zabbix/include/classes/html/CRangeControl.php
+share/zabbix/include/classes/html/CRedirectButton.php
+share/zabbix/include/classes/html/CRow.php
+share/zabbix/include/classes/html/CRowHeader.php
+share/zabbix/include/classes/html/CScriptTag.php
+share/zabbix/include/classes/html/CScriptTemplate.php
+share/zabbix/include/classes/html/CSelect.php
+share/zabbix/include/classes/html/CSelectOption.php
+share/zabbix/include/classes/html/CSelectOptionGroup.php
+share/zabbix/include/classes/html/CSeverity.php
+share/zabbix/include/classes/html/CSeverityCheckBoxList.php
+share/zabbix/include/classes/html/CSimpleButton.php
+share/zabbix/include/classes/html/CSpan.php
+share/zabbix/include/classes/html/CSubmit.php
+share/zabbix/include/classes/html/CSubmitButton.php
+share/zabbix/include/classes/html/CSup.php
+share/zabbix/include/classes/html/CTabFilter.php
+share/zabbix/include/classes/html/CTabView.php
+share/zabbix/include/classes/html/CTable.php
+share/zabbix/include/classes/html/CTableColumn.php
+share/zabbix/include/classes/html/CTableInfo.php
+share/zabbix/include/classes/html/CTag.php
+share/zabbix/include/classes/html/CTextArea.php
+share/zabbix/include/classes/html/CTextAreaFlexible.php
+share/zabbix/include/classes/html/CTextBox.php
+share/zabbix/include/classes/html/CTriggersInfo.php
+share/zabbix/include/classes/html/CUiWidget.php
+share/zabbix/include/classes/html/CVar.php
+share/zabbix/include/classes/html/CVisibilityBox.php
+share/zabbix/include/classes/html/CWarning.php
+share/zabbix/include/classes/html/interfaces/CButtonInterface.php
+share/zabbix/include/classes/html/pageheader/CPageHeader.php
+share/zabbix/include/classes/html/svg/CSvg.php
+share/zabbix/include/classes/html/svg/CSvgCircle.php
+share/zabbix/include/classes/html/svg/CSvgGraphAnnotation.php
+share/zabbix/include/classes/html/svg/CSvgGraphArea.php
+share/zabbix/include/classes/html/svg/CSvgGraphAxis.php
+share/zabbix/include/classes/html/svg/CSvgGraphBar.php
+share/zabbix/include/classes/html/svg/CSvgGraphGrid.php
+share/zabbix/include/classes/html/svg/CSvgGraphLegend.php
+share/zabbix/include/classes/html/svg/CSvgGraphLine.php
+share/zabbix/include/classes/html/svg/CSvgGraphLineGroup.php
+share/zabbix/include/classes/html/svg/CSvgGraphPoints.php
+share/zabbix/include/classes/html/svg/CSvgGroup.php
+share/zabbix/include/classes/html/svg/CSvgLine.php
+share/zabbix/include/classes/html/svg/CSvgPath.php
+share/zabbix/include/classes/html/svg/CSvgPolygon.php
+share/zabbix/include/classes/html/svg/CSvgRect.php
+share/zabbix/include/classes/html/svg/CSvgTag.php
+share/zabbix/include/classes/html/svg/CSvgText.php
+share/zabbix/include/classes/html/widget/CWidget.php
+share/zabbix/include/classes/import/CConfigurationImport.php
+share/zabbix/include/classes/import/CImportDataAdapter.php
+share/zabbix/include/classes/import/CImportReferencer.php
+share/zabbix/include/classes/import/CImportedObjectContainer.php
+share/zabbix/include/classes/import/converters/C10ImportConverter.php
+share/zabbix/include/classes/import/converters/C10ItemKeyConverter.php
+share/zabbix/include/classes/import/converters/C10TriggerConverter.php
+share/zabbix/include/classes/import/converters/C20ImportConverter.php
+share/zabbix/include/classes/import/converters/C20ItemKeyConverter.php
+share/zabbix/include/classes/import/converters/C20TriggerConverter.php
+share/zabbix/include/classes/import/converters/C30ImportConverter.php
+share/zabbix/include/classes/import/converters/C32ImportConverter.php
+share/zabbix/include/classes/import/converters/C34ImportConverter.php
+share/zabbix/include/classes/import/converters/C40ImportConverter.php
+share/zabbix/include/classes/import/converters/C42ImportConverter.php
+share/zabbix/include/classes/import/converters/C44ImportConverter.php
+share/zabbix/include/classes/import/converters/C50ImportConverter.php
+share/zabbix/include/classes/import/converters/CConstantImportConverter.php
+share/zabbix/include/classes/import/converters/CConverter.php
+share/zabbix/include/classes/import/converters/CDefaultImportConverter.php
+share/zabbix/include/classes/import/converters/CImportConverterFactory.php
+share/zabbix/include/classes/import/converters/CImportDataNormalizer.php
+share/zabbix/include/classes/import/converters/CTemplateScreenConverter.php
+share/zabbix/include/classes/import/converters/CTransformImportConverter.php
+share/zabbix/include/classes/import/importers/CHostImporter.php
+share/zabbix/include/classes/import/importers/CImporter.php
+share/zabbix/include/classes/import/importers/CMapImporter.php
+share/zabbix/include/classes/import/importers/CScreenImporter.php
+share/zabbix/include/classes/import/importers/CTemplateDashboardImporter.php
+share/zabbix/include/classes/import/importers/CTemplateImporter.php
+share/zabbix/include/classes/import/readers/CImportReader.php
+share/zabbix/include/classes/import/readers/CImportReaderFactory.php
+share/zabbix/include/classes/import/readers/CJsonImportReader.php
+share/zabbix/include/classes/import/readers/CXmlImportReader.php
+share/zabbix/include/classes/import/readers/CYamlImportReader.php
+share/zabbix/include/classes/import/validators/C10XmlValidator.php
+share/zabbix/include/classes/import/validators/C20XmlValidator.php
+share/zabbix/include/classes/import/validators/C30XmlValidator.php
+share/zabbix/include/classes/import/validators/C32XmlValidator.php
+share/zabbix/include/classes/import/validators/C34XmlValidator.php
+share/zabbix/include/classes/import/validators/C40XmlValidator.php
+share/zabbix/include/classes/import/validators/C42XmlValidator.php
+share/zabbix/include/classes/import/validators/C44XmlValidator.php
+share/zabbix/include/classes/import/validators/C50XmlValidator.php
+share/zabbix/include/classes/import/validators/C52XmlValidator.php
+share/zabbix/include/classes/import/validators/CImportValidatorFactory.php
+share/zabbix/include/classes/import/validators/CXmlValidator.php
+share/zabbix/include/classes/import/validators/CXmlValidatorGeneral.php
+share/zabbix/include/classes/items/CHelpItems.php
+share/zabbix/include/classes/ldap/CLdap.php
+share/zabbix/include/classes/macros/CMacrosResolver.php
+share/zabbix/include/classes/macros/CMacrosResolverGeneral.php
+share/zabbix/include/classes/macros/CMacrosResolverHelper.php
+share/zabbix/include/classes/mvc/CController.php
+share/zabbix/include/classes/mvc/CControllerResponse.php
+share/zabbix/include/classes/mvc/CControllerResponseData.php
+share/zabbix/include/classes/mvc/CControllerResponseFatal.php
+share/zabbix/include/classes/mvc/CControllerResponseRedirect.php
+share/zabbix/include/classes/mvc/CLegacyAction.php
+share/zabbix/include/classes/mvc/CPartial.php
+share/zabbix/include/classes/mvc/CRouter.php
+share/zabbix/include/classes/mvc/CView.php
+share/zabbix/include/classes/parsers/CADNameAttributeParser.php
+share/zabbix/include/classes/parsers/CAbsoluteTimeParser.php
+share/zabbix/include/classes/parsers/CConditionFormula.php
+share/zabbix/include/classes/parsers/CDnsParser.php
+share/zabbix/include/classes/parsers/CExpressionMacroFunctionParser.php
+share/zabbix/include/classes/parsers/CExpressionMacroParser.php
+share/zabbix/include/classes/parsers/CFlexibleIntervalParser.php
+share/zabbix/include/classes/parsers/CFunctionIdParser.php
+share/zabbix/include/classes/parsers/CFunctionMacroParser.php
+share/zabbix/include/classes/parsers/CFunctionParser.php
+share/zabbix/include/classes/parsers/CHostGroupNameParser.php
+share/zabbix/include/classes/parsers/CHostNameParser.php
+share/zabbix/include/classes/parsers/CIPParser.php
+share/zabbix/include/classes/parsers/CIPRangeParser.php
+share/zabbix/include/classes/parsers/CIPv4Parser.php
+share/zabbix/include/classes/parsers/CIPv6Parser.php
+share/zabbix/include/classes/parsers/CItemKey.php
+share/zabbix/include/classes/parsers/CLLDMacroFunctionParser.php
+share/zabbix/include/classes/parsers/CLLDMacroParser.php
+share/zabbix/include/classes/parsers/CMacroFunctionParser.php
+share/zabbix/include/classes/parsers/CMacroParser.php
+share/zabbix/include/classes/parsers/CNumberParser.php
+share/zabbix/include/classes/parsers/CParser.php
+share/zabbix/include/classes/parsers/CPrometheusOutputParser.php
+share/zabbix/include/classes/parsers/CPrometheusPatternParser.php
+share/zabbix/include/classes/parsers/CRangeParser.php
+share/zabbix/include/classes/parsers/CRangeTimeParser.php
+share/zabbix/include/classes/parsers/CRangesParser.php
+share/zabbix/include/classes/parsers/CReferenceParser.php
+share/zabbix/include/classes/parsers/CRelativeTimeParser.php
+share/zabbix/include/classes/parsers/CReplacementParser.php
+share/zabbix/include/classes/parsers/CSchedulingIntervalParser.php
+share/zabbix/include/classes/parsers/CSetParser.php
+share/zabbix/include/classes/parsers/CSimpleIntervalParser.php
+share/zabbix/include/classes/parsers/CTimePeriodParser.php
+share/zabbix/include/classes/parsers/CTimePeriodsParser.php
+share/zabbix/include/classes/parsers/CTriggerExpression.php
+share/zabbix/include/classes/parsers/CUpdateIntervalParser.php
+share/zabbix/include/classes/parsers/CUserMacroParser.php
+share/zabbix/include/classes/parsers/CValidationRule.php
+share/zabbix/include/classes/parsers/CVaultSecretParser.php
+share/zabbix/include/classes/parsers/results/CParserResult.php
+share/zabbix/include/classes/parsers/results/CTriggerExprParserResult.php
+share/zabbix/include/classes/regexp/CGlobalRegexp.php
+share/zabbix/include/classes/routing/CUrl.php
+share/zabbix/include/classes/routing/CUrlFactory.php
+share/zabbix/include/classes/screens/CScreenActions.php
+share/zabbix/include/classes/screens/CScreenBase.php
+share/zabbix/include/classes/screens/CScreenBuilder.php
+share/zabbix/include/classes/screens/CScreenClock.php
+share/zabbix/include/classes/screens/CScreenDataOverview.php
+share/zabbix/include/classes/screens/CScreenDiscovery.php
+share/zabbix/include/classes/screens/CScreenEvents.php
+share/zabbix/include/classes/screens/CScreenGraph.php
+share/zabbix/include/classes/screens/CScreenHistory.php
+share/zabbix/include/classes/screens/CScreenHostTriggers.php
+share/zabbix/include/classes/screens/CScreenHostgroupTriggers.php
+share/zabbix/include/classes/screens/CScreenHostsInfo.php
+share/zabbix/include/classes/screens/CScreenHttpTest.php
+share/zabbix/include/classes/screens/CScreenHttpTestDetails.php
+share/zabbix/include/classes/screens/CScreenLldGraph.php
+share/zabbix/include/classes/screens/CScreenLldGraphBase.php
+share/zabbix/include/classes/screens/CScreenLldSimpleGraph.php
+share/zabbix/include/classes/screens/CScreenMap.php
+share/zabbix/include/classes/screens/CScreenPlainText.php
+share/zabbix/include/classes/screens/CScreenProblem.php
+share/zabbix/include/classes/screens/CScreenServerInfo.php
+share/zabbix/include/classes/screens/CScreenSimpleGraph.php
+share/zabbix/include/classes/screens/CScreenSystemStatus.php
+share/zabbix/include/classes/screens/CScreenTriggersInfo.php
+share/zabbix/include/classes/screens/CScreenTriggersOverview.php
+share/zabbix/include/classes/screens/CScreenUrl.php
+share/zabbix/include/classes/server/CZabbixServer.php
+share/zabbix/include/classes/services/CServicesSlaCalculator.php
+share/zabbix/include/classes/services/CTabFilterProfile.php
+share/zabbix/include/classes/setup/CFrontendSetup.php
+share/zabbix/include/classes/setup/CSetupWizard.php
+share/zabbix/include/classes/tree/CServiceTree.php
+share/zabbix/include/classes/tree/CTree.php
+share/zabbix/include/classes/triggers/CTextTriggerConstructor.php
+share/zabbix/include/classes/user/CFavorite.php
+share/zabbix/include/classes/user/CProfile.php
+share/zabbix/include/classes/user/CWebUser.php
+share/zabbix/include/classes/validators/CActionCondValidator.php
+share/zabbix/include/classes/validators/CApiInputValidator.php
+share/zabbix/include/classes/validators/CCollectionValidator.php
+share/zabbix/include/classes/validators/CColorValidator.php
+share/zabbix/include/classes/validators/CEmailValidator.php
+share/zabbix/include/classes/validators/CEventCorrCondValidator.php
+share/zabbix/include/classes/validators/CEventNameValidator.php
+share/zabbix/include/classes/validators/CFunctionValidator.php
+share/zabbix/include/classes/validators/CHtmlUrlValidator.php
+share/zabbix/include/classes/validators/CIdValidator.php
+share/zabbix/include/classes/validators/CLdapAuthValidator.php
+share/zabbix/include/classes/validators/CLimitedSetValidator.php
+share/zabbix/include/classes/validators/CNewValidator.php
+share/zabbix/include/classes/validators/CPartialValidatorInterface.php
+share/zabbix/include/classes/validators/CRegexValidator.php
+share/zabbix/include/classes/validators/CStringValidator.php
+share/zabbix/include/classes/validators/CValidator.php
+share/zabbix/include/classes/validators/event/CEventSourceObjectValidator.php
+share/zabbix/include/classes/validators/host/CHostNormalValidator.php
+share/zabbix/include/classes/validators/object/CConditionValidator.php
+share/zabbix/include/classes/validators/object/CUpdateDiscoveredValidator.php
+share/zabbix/include/classes/validators/schema/CSchemaValidator.php
+share/zabbix/include/classes/widgets/CWidgetConfig.php
+share/zabbix/include/classes/widgets/CWidgetHelper.php
+share/zabbix/include/classes/widgets/fields/CWidgetField.php
+share/zabbix/include/classes/widgets/fields/CWidgetFieldApplication.php
+share/zabbix/include/classes/widgets/fields/CWidgetFieldCheckBox.php
+share/zabbix/include/classes/widgets/fields/CWidgetFieldCheckBoxList.php
+share/zabbix/include/classes/widgets/fields/CWidgetFieldComboBox.php
+share/zabbix/include/classes/widgets/fields/CWidgetFieldDatePicker.php
+share/zabbix/include/classes/widgets/fields/CWidgetFieldGraphDataSet.php
+share/zabbix/include/classes/widgets/fields/CWidgetFieldGraphOverride.php
+share/zabbix/include/classes/widgets/fields/CWidgetFieldHidden.php
+share/zabbix/include/classes/widgets/fields/CWidgetFieldHostPatternSelect.php
+share/zabbix/include/classes/widgets/fields/CWidgetFieldIntegerBox.php
+share/zabbix/include/classes/widgets/fields/CWidgetFieldMs.php
+share/zabbix/include/classes/widgets/fields/CWidgetFieldMsGraph.php
+share/zabbix/include/classes/widgets/fields/CWidgetFieldMsGraphPrototype.php
+share/zabbix/include/classes/widgets/fields/CWidgetFieldMsGroup.php
+share/zabbix/include/classes/widgets/fields/CWidgetFieldMsHost.php
+share/zabbix/include/classes/widgets/fields/CWidgetFieldMsItem.php
+share/zabbix/include/classes/widgets/fields/CWidgetFieldMsItemPrototype.php
+share/zabbix/include/classes/widgets/fields/CWidgetFieldNavTree.php
+share/zabbix/include/classes/widgets/fields/CWidgetFieldNumericBox.php
+share/zabbix/include/classes/widgets/fields/CWidgetFieldRadioButtonList.php
+share/zabbix/include/classes/widgets/fields/CWidgetFieldRangeControl.php
+share/zabbix/include/classes/widgets/fields/CWidgetFieldReference.php
+share/zabbix/include/classes/widgets/fields/CWidgetFieldSelectResource.php
+share/zabbix/include/classes/widgets/fields/CWidgetFieldSeverities.php
+share/zabbix/include/classes/widgets/fields/CWidgetFieldTags.php
+share/zabbix/include/classes/widgets/fields/CWidgetFieldTextBox.php
+share/zabbix/include/classes/widgets/fields/CWidgetFieldUrl.php
+share/zabbix/include/classes/widgets/fields/CWidgetFieldWidgetListComboBox.php
+share/zabbix/include/classes/widgets/forms/CWidgetForm.php
+share/zabbix/include/classes/widgets/forms/CWidgetFormActionLog.php
+share/zabbix/include/classes/widgets/forms/CWidgetFormClock.php
+share/zabbix/include/classes/widgets/forms/CWidgetFormDataOver.php
+share/zabbix/include/classes/widgets/forms/CWidgetFormGraph.php
+share/zabbix/include/classes/widgets/forms/CWidgetFormGraphPrototype.php
+share/zabbix/include/classes/widgets/forms/CWidgetFormHostAvail.php
+share/zabbix/include/classes/widgets/forms/CWidgetFormMap.php
+share/zabbix/include/classes/widgets/forms/CWidgetFormNavTree.php
+share/zabbix/include/classes/widgets/forms/CWidgetFormPlainText.php
+share/zabbix/include/classes/widgets/forms/CWidgetFormProblemHosts.php
+share/zabbix/include/classes/widgets/forms/CWidgetFormProblems.php
+share/zabbix/include/classes/widgets/forms/CWidgetFormProblemsBySv.php
+share/zabbix/include/classes/widgets/forms/CWidgetFormSvgGraph.php
+share/zabbix/include/classes/widgets/forms/CWidgetFormTrigOver.php
+share/zabbix/include/classes/widgets/forms/CWidgetFormUrl.php
+share/zabbix/include/classes/widgets/forms/CWidgetFormWeb.php
+share/zabbix/include/classes/widgets/views/widget.actionlog.form.view.php
+share/zabbix/include/classes/widgets/views/widget.clock.form.view.php
+share/zabbix/include/classes/widgets/views/widget.dataover.form.view.php
+share/zabbix/include/classes/widgets/views/widget.discovery.form.view.php
+share/zabbix/include/classes/widgets/views/widget.favgraphs.form.view.php
+share/zabbix/include/classes/widgets/views/widget.favmaps.form.view.php
+share/zabbix/include/classes/widgets/views/widget.favscreens.form.view.php
+share/zabbix/include/classes/widgets/views/widget.graph.form.view.php
+share/zabbix/include/classes/widgets/views/widget.graphprototype.form.view.php
+share/zabbix/include/classes/widgets/views/widget.hostavail.form.view.php
+share/zabbix/include/classes/widgets/views/widget.map.form.view.php
+share/zabbix/include/classes/widgets/views/widget.navtree.form.view.php
+share/zabbix/include/classes/widgets/views/widget.plaintext.form.view.php
+share/zabbix/include/classes/widgets/views/widget.problemhosts.form.view.php
+share/zabbix/include/classes/widgets/views/widget.problems.form.view.php
+share/zabbix/include/classes/widgets/views/widget.problemsbysv.form.view.php
+share/zabbix/include/classes/widgets/views/widget.svggraph.form.view.php
+share/zabbix/include/classes/widgets/views/widget.systeminfo.form.view.php
+share/zabbix/include/classes/widgets/views/widget.trigover.form.view.php
+share/zabbix/include/classes/widgets/views/widget.url.form.view.php
+share/zabbix/include/classes/widgets/views/widget.web.form.view.php
+share/zabbix/include/classes/xml/CXmlConstantName.php
+share/zabbix/include/classes/xml/CXmlConstantValue.php
+share/zabbix/include/config.inc.php
+share/zabbix/include/correlation.inc.php
+share/zabbix/include/db.inc.php
+share/zabbix/include/debug.inc.php
+share/zabbix/include/defines.inc.php
+share/zabbix/include/discovery.inc.php
+share/zabbix/include/draw.inc.php
+share/zabbix/include/events.inc.php
+share/zabbix/include/forms.inc.php
+share/zabbix/include/func.inc.php
+share/zabbix/include/gettextwrapper.inc.php
+share/zabbix/include/graphs.inc.php
+share/zabbix/include/hostgroups.inc.php
+share/zabbix/include/hosts.inc.php
+share/zabbix/include/html.inc.php
+share/zabbix/include/httptest.inc.php
+share/zabbix/include/ident.inc.php
+share/zabbix/include/images.inc.php
+share/zabbix/include/items.inc.php
+share/zabbix/include/js.inc.php
+share/zabbix/include/locales.inc.php
+share/zabbix/include/maintenances.inc.php
+share/zabbix/include/maps.inc.php
+share/zabbix/include/media.inc.php
+share/zabbix/include/page_footer.php
+share/zabbix/include/page_header.php
+share/zabbix/include/perm.inc.php
+share/zabbix/include/regexp.inc.php
+share/zabbix/include/schema.inc.php
+share/zabbix/include/screens.inc.php
+share/zabbix/include/services.inc.php
+share/zabbix/include/sounds.inc.php
+share/zabbix/include/translateDefines.inc.php
+share/zabbix/include/triggers.inc.php
+share/zabbix/include/users.inc.php
+share/zabbix/include/validate.inc.php
+share/zabbix/include/valuemap.inc.php
+share/zabbix/include/views/administration.auditacts.list.php
+share/zabbix/include/views/conf.import.php
+share/zabbix/include/views/configuration.action.edit.php
+share/zabbix/include/views/configuration.action.list.php
+share/zabbix/include/views/configuration.copy.elements.php
+share/zabbix/include/views/configuration.correlation.edit.php
+share/zabbix/include/views/configuration.correlation.list.php
+share/zabbix/include/views/configuration.discovery.edit.php
+share/zabbix/include/views/configuration.discovery.list.php
+share/zabbix/include/views/configuration.graph.edit.php
+share/zabbix/include/views/configuration.graph.list.php
+share/zabbix/include/views/configuration.host.discovery.edit.php
+share/zabbix/include/views/configuration.host.discovery.list.php
+share/zabbix/include/views/configuration.host.edit.php
+share/zabbix/include/views/configuration.host.list.php
+share/zabbix/include/views/configuration.host.massupdate.php
+share/zabbix/include/views/configuration.host.prototype.edit.php
+share/zabbix/include/views/configuration.host.prototype.list.php
+share/zabbix/include/views/configuration.hostgroups.edit.php
+share/zabbix/include/views/configuration.hostgroups.list.php
+share/zabbix/include/views/configuration.httpconf.edit.php
+share/zabbix/include/views/configuration.httpconf.list.php
+share/zabbix/include/views/configuration.item.edit.php
+share/zabbix/include/views/configuration.item.list.php
+share/zabbix/include/views/configuration.item.massupdate.php
+share/zabbix/include/views/configuration.item.prototype.edit.php
+share/zabbix/include/views/configuration.item.prototype.list.php
+share/zabbix/include/views/configuration.item.prototype.massupdate.php
+share/zabbix/include/views/configuration.maintenance.edit.php
+share/zabbix/include/views/configuration.maintenance.list.php
+share/zabbix/include/views/configuration.services.edit.php
+share/zabbix/include/views/configuration.services.list.php
+share/zabbix/include/views/configuration.template.edit.php
+share/zabbix/include/views/configuration.template.list.php
+share/zabbix/include/views/configuration.template.massupdate.php
+share/zabbix/include/views/configuration.trigger.prototype.edit.php
+share/zabbix/include/views/configuration.trigger.prototype.list.php
+share/zabbix/include/views/configuration.trigger.prototype.massupdate.php
+share/zabbix/include/views/configuration.triggers.edit.php
+share/zabbix/include/views/configuration.triggers.list.php
+share/zabbix/include/views/configuration.triggers.massupdate.php
+share/zabbix/include/views/general.browserwarning.php
+share/zabbix/include/views/general.login.php
+share/zabbix/include/views/general.warning.php
+share/zabbix/include/views/inventory.host.list.php
+share/zabbix/include/views/inventory.host.view.php
+share/zabbix/include/views/js/common.init.js.php
+share/zabbix/include/views/js/common.item.edit.js.php
+share/zabbix/include/views/js/common.template.edit.js.php
+share/zabbix/include/views/js/conf.import.js.php
+share/zabbix/include/views/js/configuration.action.edit.js.php
+share/zabbix/include/views/js/configuration.copy.elements.js.php
+share/zabbix/include/views/js/configuration.correlation.edit.js.php
+share/zabbix/include/views/js/configuration.discovery.edit.js.php
+share/zabbix/include/views/js/configuration.graph.edit.js.php
+share/zabbix/include/views/js/configuration.host.discovery.edit.js.php
+share/zabbix/include/views/js/configuration.host.discovery.edit.overr.js.php
+share/zabbix/include/views/js/configuration.host.discovery.list.js.php
+share/zabbix/include/views/js/configuration.host.edit.js.php
+share/zabbix/include/views/js/configuration.host.list.js.php
+share/zabbix/include/views/js/configuration.host.massupdate.js.php
+share/zabbix/include/views/js/configuration.host.prototype.edit.js.php
+share/zabbix/include/views/js/configuration.httpconf.edit.js.php
+share/zabbix/include/views/js/configuration.item.edit.js.php
+share/zabbix/include/views/js/configuration.item.list.js.php
+share/zabbix/include/views/js/configuration.item.massupdate.js.php
+share/zabbix/include/views/js/configuration.item.prototype.edit.js.php
+share/zabbix/include/views/js/configuration.maintenance.edit.js.php
+share/zabbix/include/views/js/configuration.services.edit.js.php
+share/zabbix/include/views/js/configuration.template.list.js.php
+share/zabbix/include/views/js/configuration.template.massupdate.js.php
+share/zabbix/include/views/js/configuration.trigger.massupdate.js.php
+share/zabbix/include/views/js/configuration.triggers.edit.js.php
+share/zabbix/include/views/js/configuration.triggers.list.js.php
+share/zabbix/include/views/js/editabletable.js.php
+share/zabbix/include/views/js/item.preprocessing.js.php
+share/zabbix/include/views/js/itemtest.js.php
+share/zabbix/include/views/js/monitoring.screen.edit.js.php
+share/zabbix/include/views/js/monitoring.screen.js.php
+share/zabbix/include/views/js/monitoring.slideconf.edit.js.php
+share/zabbix/include/views/js/monitoring.slides.js.php
+share/zabbix/include/views/js/monitoring.sysmap.edit.js.php
+share/zabbix/include/views/js/monitoring.sysmaps.js.php
+share/zabbix/include/views/monitoring.history.php
+share/zabbix/include/views/monitoring.overview.items.php
+share/zabbix/include/views/monitoring.overview.triggers.php
+share/zabbix/include/views/monitoring.screen.constructor.edit.php
+share/zabbix/include/views/monitoring.screen.constructor.list.php
+share/zabbix/include/views/monitoring.screen.edit.php
+share/zabbix/include/views/monitoring.screen.list.php
+share/zabbix/include/views/monitoring.screen.php
+share/zabbix/include/views/monitoring.slideconf.edit.php
+share/zabbix/include/views/monitoring.slideconf.list.php
+share/zabbix/include/views/monitoring.slides.php
+share/zabbix/include/views/monitoring.sysmap.constructor.php
+share/zabbix/include/views/monitoring.sysmap.edit.php
+share/zabbix/include/views/monitoring.sysmap.list.php
+share/zabbix/include/views/reports.toptriggers.php
+share/zabbix/index.php
+share/zabbix/index_http.php
+share/zabbix/index_sso.php
+share/zabbix/items.php
+share/zabbix/js/browsers.js
+share/zabbix/js/chkbxrange.js
+share/zabbix/js/class.base-component.js
+share/zabbix/js/class.bbcode.js
+share/zabbix/js/class.browsertab.js
+share/zabbix/js/class.calendar.js
+share/zabbix/js/class.cclock.js
+share/zabbix/js/class.cdate.js
+share/zabbix/js/class.cdebug.js
+share/zabbix/js/class.cmap.js
+share/zabbix/js/class.cnavtree.js
+share/zabbix/js/class.cookie.js
+share/zabbix/js/class.coverride.js
+share/zabbix/js/class.crangecontrol.js
+share/zabbix/js/class.cscreen.js
+share/zabbix/js/class.csuggest.js
+share/zabbix/js/class.csvggraph.js
+share/zabbix/js/class.ctree.js
+share/zabbix/js/class.curl.js
+share/zabbix/js/class.cverticalaccordion.js
+share/zabbix/js/class.cviewswitcher.js
+share/zabbix/js/class.localstorage.js
+share/zabbix/js/class.mapWidget.js
+share/zabbix/js/class.menu-item.js
+share/zabbix/js/class.menu.js
+share/zabbix/js/class.notification.collection.js
+share/zabbix/js/class.notification.js
+share/zabbix/js/class.notifications.audio.js
+share/zabbix/js/class.notifications.js
+share/zabbix/js/class.overlay.js
+share/zabbix/js/class.overlaycollection.js
+share/zabbix/js/class.pmaster.js
+share/zabbix/js/class.rpc.js
+share/zabbix/js/class.scrollable.js
+share/zabbix/js/class.sidebar.js
+share/zabbix/js/class.tab-indicators.js
+share/zabbix/js/class.tabfilter.js
+share/zabbix/js/class.tabfilteritem.js
+share/zabbix/js/class.template.js
+share/zabbix/js/colorpicker.js
+share/zabbix/js/common.js
+share/zabbix/js/component.z-select.js
+share/zabbix/js/csvggraphwidget.js
+share/zabbix/js/dashboard.grid.js
+share/zabbix/js/flickerfreescreen.js
+share/zabbix/js/functions.js
+share/zabbix/js/gtlc.js
+share/zabbix/js/init.js
+share/zabbix/js/inputsecret.js
+share/zabbix/js/layout.mode.js
+share/zabbix/js/macrovalue.js
+share/zabbix/js/main.js
+share/zabbix/js/menupopup.js
+share/zabbix/js/multilineinput.js
+share/zabbix/js/multiselect.js
+share/zabbix/js/pages/items.js
+share/zabbix/js/pages/popup.condition.common.js
+share/zabbix/js/pages/popup.operation.common.js
+share/zabbix/js/pages/setup.js
+share/zabbix/js/servercheck.js
+share/zabbix/js/textareaflexible.js
+share/zabbix/js/vector/class.svg.canvas.js
+share/zabbix/js/vector/class.svg.map.js
+share/zabbix/js/vendors/jquery-ui.js
+share/zabbix/js/vendors/jquery.js
+share/zabbix/jsLoader.php
+share/zabbix/jsrpc.php
+share/zabbix/local/.htaccess
+share/zabbix/local/README
+share/zabbix/locale/README
+share/zabbix/locale/add_new_language.sh
+share/zabbix/locale/bg/LC_MESSAGES/frontend.mo
+share/zabbix/locale/bg/LC_MESSAGES/frontend.po
+share/zabbix/locale/ca/LC_MESSAGES/frontend.mo
+share/zabbix/locale/ca/LC_MESSAGES/frontend.po
+share/zabbix/locale/cs/LC_MESSAGES/frontend.mo
+share/zabbix/locale/cs/LC_MESSAGES/frontend.po
+share/zabbix/locale/de/LC_MESSAGES/frontend.mo
+share/zabbix/locale/de/LC_MESSAGES/frontend.po
+share/zabbix/locale/el/LC_MESSAGES/frontend.mo
+share/zabbix/locale/el/LC_MESSAGES/frontend.po
+share/zabbix/locale/en_US/LC_MESSAGES/frontend.mo
+share/zabbix/locale/en_US/LC_MESSAGES/frontend.po
+share/zabbix/locale/es/LC_MESSAGES/frontend.mo
+share/zabbix/locale/es/LC_MESSAGES/frontend.po
+share/zabbix/locale/fa/LC_MESSAGES/frontend.mo
+share/zabbix/locale/fa/LC_MESSAGES/frontend.po
+share/zabbix/locale/fi/LC_MESSAGES/frontend.mo
+share/zabbix/locale/fi/LC_MESSAGES/frontend.po
+share/zabbix/locale/fr/LC_MESSAGES/frontend.mo
+share/zabbix/locale/fr/LC_MESSAGES/frontend.po
+share/zabbix/locale/he/LC_MESSAGES/frontend.mo
+share/zabbix/locale/he/LC_MESSAGES/frontend.po
+share/zabbix/locale/hu/LC_MESSAGES/frontend.mo
+share/zabbix/locale/hu/LC_MESSAGES/frontend.po
+share/zabbix/locale/id/LC_MESSAGES/frontend.mo
+share/zabbix/locale/id/LC_MESSAGES/frontend.po
+share/zabbix/locale/it/LC_MESSAGES/frontend.mo
+share/zabbix/locale/it/LC_MESSAGES/frontend.po
+share/zabbix/locale/ja/LC_MESSAGES/frontend.mo
+share/zabbix/locale/ja/LC_MESSAGES/frontend.po
+share/zabbix/locale/ka/LC_MESSAGES/frontend.mo
+share/zabbix/locale/ka/LC_MESSAGES/frontend.po
+share/zabbix/locale/ko/LC_MESSAGES/frontend.mo
+share/zabbix/locale/ko/LC_MESSAGES/frontend.po
+share/zabbix/locale/lt/LC_MESSAGES/frontend.mo
+share/zabbix/locale/lt/LC_MESSAGES/frontend.po
+share/zabbix/locale/lv/LC_MESSAGES/frontend.mo
+share/zabbix/locale/lv/LC_MESSAGES/frontend.po
+share/zabbix/locale/make_mo.sh
+share/zabbix/locale/nb/LC_MESSAGES/frontend.mo
+share/zabbix/locale/nb/LC_MESSAGES/frontend.po
+share/zabbix/locale/nl/LC_MESSAGES/frontend.mo
+share/zabbix/locale/nl/LC_MESSAGES/frontend.po
+share/zabbix/locale/pl/LC_MESSAGES/frontend.mo
+share/zabbix/locale/pl/LC_MESSAGES/frontend.po
+share/zabbix/locale/pt_BR/LC_MESSAGES/frontend.mo
+share/zabbix/locale/pt_BR/LC_MESSAGES/frontend.po
+share/zabbix/locale/pt_PT/LC_MESSAGES/frontend.mo
+share/zabbix/locale/pt_PT/LC_MESSAGES/frontend.po
+share/zabbix/locale/ro/LC_MESSAGES/frontend.mo
+share/zabbix/locale/ro/LC_MESSAGES/frontend.po
+share/zabbix/locale/ru/LC_MESSAGES/frontend.mo
+share/zabbix/locale/ru/LC_MESSAGES/frontend.po
+share/zabbix/locale/sk/LC_MESSAGES/frontend.mo
+share/zabbix/locale/sk/LC_MESSAGES/frontend.po
+share/zabbix/locale/sv/LC_MESSAGES/frontend.mo
+share/zabbix/locale/sv/LC_MESSAGES/frontend.po
+share/zabbix/locale/tr/LC_MESSAGES/frontend.mo
+share/zabbix/locale/tr/LC_MESSAGES/frontend.po
+share/zabbix/locale/uk/LC_MESSAGES/frontend.mo
+share/zabbix/locale/uk/LC_MESSAGES/frontend.po
+share/zabbix/locale/update_po.sh
+share/zabbix/locale/vi/LC_MESSAGES/frontend.mo
+share/zabbix/locale/vi/LC_MESSAGES/frontend.po
+share/zabbix/locale/zh_CN/LC_MESSAGES/frontend.mo
+share/zabbix/locale/zh_CN/LC_MESSAGES/frontend.po
+share/zabbix/locale/zh_TW/LC_MESSAGES/frontend.mo
+share/zabbix/locale/zh_TW/LC_MESSAGES/frontend.po
+share/zabbix/maintenance.php
+share/zabbix/map.import.php
+share/zabbix/map.php
+share/zabbix/overview.php
+share/zabbix/queue.php
+share/zabbix/report2.php
+share/zabbix/report4.php
+share/zabbix/robots.txt
+share/zabbix/screen.import.php
+share/zabbix/screenconf.php
+share/zabbix/screenedit.php
+share/zabbix/screens.php
+share/zabbix/services.php
+share/zabbix/setup.php
+share/zabbix/slideconf.php
+share/zabbix/slides.php
+share/zabbix/srv_status.php
+share/zabbix/sysmap.php
+share/zabbix/sysmaps.php
+share/zabbix/templates.php
+share/zabbix/toptriggers.php
+share/zabbix/tr_events.php
+share/zabbix/trigger_prototypes.php
+share/zabbix/triggers.php
+share/zabbix/vendor/autoload.php
+share/zabbix/vendor/bin/yaml-lint
+share/zabbix/vendor/bin/yaml-lint.bat
+share/zabbix/vendor/composer/ClassLoader.php
+share/zabbix/vendor/composer/LICENSE
+share/zabbix/vendor/composer/autoload_classmap.php
+share/zabbix/vendor/composer/autoload_files.php
+share/zabbix/vendor/composer/autoload_namespaces.php
+share/zabbix/vendor/composer/autoload_psr4.php
+share/zabbix/vendor/composer/autoload_real.php
+share/zabbix/vendor/composer/autoload_static.php
+share/zabbix/vendor/composer/installed.json
+share/zabbix/vendor/php-saml/CHANGELOG
+share/zabbix/vendor/php-saml/LICENSE
+share/zabbix/vendor/php-saml/README.md
+share/zabbix/vendor/php-saml/_toolkit_loader.php
+share/zabbix/vendor/php-saml/advanced_settings_example.php
+share/zabbix/vendor/php-saml/certs/README
+share/zabbix/vendor/php-saml/composer.json
+share/zabbix/vendor/php-saml/phpunit.xml
+share/zabbix/vendor/php-saml/settings_example.php
+share/zabbix/vendor/php-saml/src/Saml2/Auth.php
+share/zabbix/vendor/php-saml/src/Saml2/AuthnRequest.php
+share/zabbix/vendor/php-saml/src/Saml2/Constants.php
+share/zabbix/vendor/php-saml/src/Saml2/Error.php
+share/zabbix/vendor/php-saml/src/Saml2/IdPMetadataParser.php
+share/zabbix/vendor/php-saml/src/Saml2/LogoutRequest.php
+share/zabbix/vendor/php-saml/src/Saml2/LogoutResponse.php
+share/zabbix/vendor/php-saml/src/Saml2/Metadata.php
+share/zabbix/vendor/php-saml/src/Saml2/Response.php
+share/zabbix/vendor/php-saml/src/Saml2/Settings.php
+share/zabbix/vendor/php-saml/src/Saml2/Utils.php
+share/zabbix/vendor/php-saml/src/Saml2/ValidationError.php
+share/zabbix/vendor/php-saml/src/Saml2/schemas/saml-schema-assertion-2.0.xsd
+share/zabbix/vendor/php-saml/src/Saml2/schemas/saml-schema-authn-context-2.0.xsd
+share/zabbix/vendor/php-saml/src/Saml2/schemas/saml-schema-authn-context-types-2.0.xsd
+share/zabbix/vendor/php-saml/src/Saml2/schemas/saml-schema-metadata-2.0.xsd
+share/zabbix/vendor/php-saml/src/Saml2/schemas/saml-schema-protocol-2.0.xsd
+share/zabbix/vendor/php-saml/src/Saml2/schemas/sstc-metadata-attr.xsd
+share/zabbix/vendor/php-saml/src/Saml2/schemas/sstc-saml-attribute-ext.xsd
+share/zabbix/vendor/php-saml/src/Saml2/schemas/sstc-saml-metadata-algsupport-v1.0.xsd
+share/zabbix/vendor/php-saml/src/Saml2/schemas/sstc-saml-metadata-ui-v1.0.xsd
+share/zabbix/vendor/php-saml/src/Saml2/schemas/xenc-schema.xsd
+share/zabbix/vendor/php-saml/src/Saml2/schemas/xml.xsd
+share/zabbix/vendor/php-saml/src/Saml2/schemas/xmldsig-core-schema.xsd
+share/zabbix/vendor/php-saml/src/Saml2/version.json
+share/zabbix/vendor/symfony/deprecation-contracts/CHANGELOG.md
+share/zabbix/vendor/symfony/deprecation-contracts/LICENSE
+share/zabbix/vendor/symfony/deprecation-contracts/README.md
+share/zabbix/vendor/symfony/deprecation-contracts/composer.json
+share/zabbix/vendor/symfony/deprecation-contracts/function.php
+share/zabbix/vendor/symfony/polyfill-ctype/Ctype.php
+share/zabbix/vendor/symfony/polyfill-ctype/LICENSE
+share/zabbix/vendor/symfony/polyfill-ctype/README.md
+share/zabbix/vendor/symfony/polyfill-ctype/bootstrap.php
+share/zabbix/vendor/symfony/polyfill-ctype/composer.json
+share/zabbix/vendor/symfony/yaml/CHANGELOG.md
+share/zabbix/vendor/symfony/yaml/Command/LintCommand.php
+share/zabbix/vendor/symfony/yaml/Dumper.php
+share/zabbix/vendor/symfony/yaml/Escaper.php
+share/zabbix/vendor/symfony/yaml/Exception/DumpException.php
+share/zabbix/vendor/symfony/yaml/Exception/ExceptionInterface.php
+share/zabbix/vendor/symfony/yaml/Exception/ParseException.php
+share/zabbix/vendor/symfony/yaml/Exception/RuntimeException.php
+share/zabbix/vendor/symfony/yaml/Inline.php
+share/zabbix/vendor/symfony/yaml/LICENSE
+share/zabbix/vendor/symfony/yaml/Parser.php
+share/zabbix/vendor/symfony/yaml/README.md
+share/zabbix/vendor/symfony/yaml/Resources/bin/yaml-lint
+share/zabbix/vendor/symfony/yaml/Tag/TaggedValue.php
+share/zabbix/vendor/symfony/yaml/Unescaper.php
+share/zabbix/vendor/symfony/yaml/Yaml.php
+share/zabbix/vendor/symfony/yaml/composer.json
+share/zabbix/vendor/xmlseclibs/CHANGELOG.txt
+share/zabbix/vendor/xmlseclibs/LICENSE
+share/zabbix/vendor/xmlseclibs/README.md
+share/zabbix/vendor/xmlseclibs/composer.json
+share/zabbix/vendor/xmlseclibs/src/Utils/XPath.php
+share/zabbix/vendor/xmlseclibs/src/XMLSecEnc.php
+share/zabbix/vendor/xmlseclibs/src/XMLSecurityDSig.php
+share/zabbix/vendor/xmlseclibs/src/XMLSecurityKey.php
+share/zabbix/vendor/xmlseclibs/xmlseclibs.php
+share/zabbix/zabbix.php
+@pkgdir share/zabbix/modules
+@pkgdir share/zabbix/local/conf
+@pkgdir share/zabbix/local/app/views
+@pkgdir share/zabbix/local/app/partials
+@pkgdir share/zabbix/local/app/controllers
+@pkgdir share/zabbix/conf/certs
diff --git a/zabbix52-frontend/distinfo b/zabbix52-frontend/distinfo
new file mode 100644
index 0000000000..e60ed8c638
--- /dev/null
+++ b/zabbix52-frontend/distinfo
@@ -0,0 +1,6 @@
+$NetBSD$
+
+SHA1 (zabbix-5.2.0.tar.gz) = d3a4f4d07c50cc4464e574cf0e31716efd90b562
+RMD160 (zabbix-5.2.0.tar.gz) = f275572961e1a41543d665131d237e1b42c464ca
+SHA512 (zabbix-5.2.0.tar.gz) = e7853c685864c1c38adf5f4e3982d1ca1b9951065f339d457427bc6f1f68d25af92d702b7ce4eab7d83d17ad9cdcc28c45c9463d21725e07593af1ac8ffa4a51
+Size (zabbix-5.2.0.tar.gz) = 19509362 bytes
diff --git a/zabbix52-frontend/files/httpd-zabbix.conf b/zabbix52-frontend/files/httpd-zabbix.conf
new file mode 100644
index 0000000000..467c613741
--- /dev/null
+++ b/zabbix52-frontend/files/httpd-zabbix.conf
@@ -0,0 +1,40 @@
+Alias /zabbix /usr/pkg/share/zabbix
+
+<Directory "/usr/pkg/share/zabbix">
+ Options -FollowSymLinks
+ AllowOverride Limit
+ <LimitExcept POST GET>
+ Order deny,allow
+ Deny from all
+ </LimitExcept>
+ <IfModule mod_authz_core.c>
+ Require all granted
+ </IfModule>
+ <IfModule !mod_authz_core.c>
+ Order allow,deny
+ Allow from all
+ </IfModule>
+ <files *.php>
+ SetHandler application/x-httpd-php
+ SetHandler "proxy:unix:/var/run/php-fpm_zabbix.sock|fcgi://localhost"
+ </files>
+</Directory>
+
+<Directory ~ "^/usr/pkg/share/zabbix/(conf|api|include|local)/">
+ <IfModule mod_authz_core.c>
+ Require all denied
+ </IfModule>
+ <IfModule !mod_authz_core.c>
+ Order deny,allow
+ Deny from all
+ </IfModule>
+ <files *.php>
+ <IfModule mod_authz_core.c>
+ Require all denied
+ </IfModule>
+ <IfModule !mod_authz_core.c>
+ Order deny,allow
+ Deny from all
+ </IfModule>
+ </files>
+</Directory>
diff --git a/zabbix52-frontend/files/php-fpm-zabbix.conf b/zabbix52-frontend/files/php-fpm-zabbix.conf
new file mode 100644
index 0000000000..425feb0dc0
--- /dev/null
+++ b/zabbix52-frontend/files/php-fpm-zabbix.conf
@@ -0,0 +1,25 @@
+[zabbix]
+user = www
+group = www
+
+listen = /var/run/php-fpm_zabbix.sock
+listen.owner = www
+listen.group = www
+listen.allowed_clients = 127.0.0.1
+
+pm = dynamic
+pm.max_children = 50
+pm.start_servers = 5
+pm.min_spare_servers = 5
+pm.max_spare_servers = 35
+
+php_value[session.save_handler] = files
+
+php_value[max_execution_time] = 300
+php_value[memory_limit] = 512M
+php_value[post_max_size] = 128M
+php_value[upload_max_filesize] = 128M
+php_value[max_input_time] = 300
+php_value[max_input_vars] = 10000
+php_value[always_populate_raw_post_data] = -1
+;php_value[date.timezone] = Asia/Tokyo
diff --git a/zabbix52-frontend/options.mk b/zabbix52-frontend/options.mk
new file mode 100644
index 0000000000..7fb5956420
--- /dev/null
+++ b/zabbix52-frontend/options.mk
@@ -0,0 +1,20 @@
+# $NetBSD$
+
+PKG_OPTIONS_VAR= PKG_OPTIONS.zabbix52-frontend
+PKG_OPTIONS_OPTIONAL_GROUPS= database
+PKG_OPTIONS_GROUP.database= mysql pgsql
+PKG_SUGGESTED_OPTIONS+= pgsql
+
+.include "../../mk/bsd.options.mk"
+
+.if !empty(PKG_OPTIONS:Mmysql)
+CONFIGURE_ARGS+= --with-mysql
+.include "../../mk/mysql.buildlink3.mk"
+ZABBIX_DB_TYPE= mysql
+.endif
+
+.if !empty(PKG_OPTIONS:Mpgsql)
+CONFIGURE_ARGS+= --with-postgresql
+.include "../../mk/pgsql.buildlink3.mk"
+ZABBIX_DB_TYPE= postgresql
+.endif
diff --git a/zabbix52-java/DESCR b/zabbix52-java/DESCR
new file mode 100644
index 0000000000..43094c0148
--- /dev/null
+++ b/zabbix52-java/DESCR
@@ -0,0 +1,10 @@
+Zabbix is the ultimate enterprise-level software designed for monitoring
+availability and performance of IT infrastructure components. Zabbix is open
+source and comes at no cost.
+
+With Zabbix it is possible to gather virtually limitless types of data from
+the network. High performance real-time monitoring means that tens of thousands
+of servers, virtual machines and network devices can be monitored
+simultaneously. Along with storing the data, visualization features are
+available (overviews, maps, graphs, screens, etc), as well as very flexible
+ways of analyzing the data for the purpose of alerting.
diff --git a/zabbix52-java/Makefile b/zabbix52-java/Makefile
new file mode 100644
index 0000000000..38b7556850
--- /dev/null
+++ b/zabbix52-java/Makefile
@@ -0,0 +1,28 @@
+# $NetBSD$
+
+.include "../../sysutils/zabbix52-server/Makefile.common"
+
+PKGNAME= ${DISTNAME:S/-/-java-/}
+COMMENT= Enterprise-class Monitoring Solution for Everyone
+
+USE_TOOLS+= pkg-config
+GNU_CONFIGURE= yes
+CONFIGURE_ARGS+= --enable-java
+CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR}
+
+CONFIGURE_ENV+= JAVAC=${PKG_JAVA_HOME}/bin/javac
+CONFIGURE_ENV+= JAR=${PKG_JAVA_HOME}/bin/jar
+
+USE_JAVA= run
+PKG_JVMS_ACCEPTED= openjdk8
+
+SUBST_CLASSES+= fix-paths
+SUBST_STAGE.fix-paths= pre-configure
+SUBST_MESSAGE.fix-paths= Fixing absolute paths.
+SUBST_FILES.fix-paths= conf/*.conf
+SUBST_FILES.fix-paths+= man/*.man
+SUBST_SED.fix-paths= -e 's,/usr/local/etc,${PKG_SYSCONFDIR},g'
+
+.include "../../mk/java-vm.mk"
+.include "../../mk/bsd.prefs.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/zabbix52-java/PLIST b/zabbix52-java/PLIST
new file mode 100644
index 0000000000..b60242ff37
--- /dev/null
+++ b/zabbix52-java/PLIST
@@ -0,0 +1,11 @@
+@comment $NetBSD$
+sbin/zabbix_java/bin/zabbix-java-gateway-${PKGVERSION}.jar
+sbin/zabbix_java/lib/android-json-4.3_r3.1.jar
+sbin/zabbix_java/lib/logback-classic-0.9.27.jar
+sbin/zabbix_java/lib/logback-console.xml
+sbin/zabbix_java/lib/logback-core-0.9.27.jar
+sbin/zabbix_java/lib/logback.xml
+sbin/zabbix_java/lib/slf4j-api-1.6.1.jar
+sbin/zabbix_java/settings.sh
+sbin/zabbix_java/shutdown.sh
+sbin/zabbix_java/startup.sh
diff --git a/zabbix52-java/distinfo b/zabbix52-java/distinfo
new file mode 100644
index 0000000000..d2762d474c
--- /dev/null
+++ b/zabbix52-java/distinfo
@@ -0,0 +1,7 @@
+$NetBSD$
+
+SHA1 (zabbix-5.2.0.tar.gz) = d3a4f4d07c50cc4464e574cf0e31716efd90b562
+RMD160 (zabbix-5.2.0.tar.gz) = f275572961e1a41543d665131d237e1b42c464ca
+SHA512 (zabbix-5.2.0.tar.gz) = e7853c685864c1c38adf5f4e3982d1ca1b9951065f339d457427bc6f1f68d25af92d702b7ce4eab7d83d17ad9cdcc28c45c9463d21725e07593af1ac8ffa4a51
+Size (zabbix-5.2.0.tar.gz) = 19509362 bytes
+SHA1 (patch-configure) = cf647b9ee52a96882d31f8783ac19b66e3e65105
diff --git a/zabbix52-java/patches/patch-configure b/zabbix52-java/patches/patch-configure
new file mode 100644
index 0000000000..f7ccc9e08b
--- /dev/null
+++ b/zabbix52-java/patches/patch-configure
@@ -0,0 +1,15 @@
+$NetBSD: patch-configure,v 1.1 2020/11/03 22:52:42 otis Exp $
+
+Fix bash-ism.
+
+--- configure.orig 2020-07-13 07:56:36.000000000 +0000
++++ configure
+@@ -8494,7 +8494,7 @@ fi
+ rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+
+- if test "$found_mysql_tls" == "yes"; then
++ if test "$found_mysql_tls" = "yes"; then
+
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for TLS ciphersuites in MySQL library" >&5
+ $as_echo_n "checking for TLS ciphersuites in MySQL library... " >&6; }
diff --git a/zabbix52-proxy/DESCR b/zabbix52-proxy/DESCR
new file mode 100644
index 0000000000..43094c0148
--- /dev/null
+++ b/zabbix52-proxy/DESCR
@@ -0,0 +1,10 @@
+Zabbix is the ultimate enterprise-level software designed for monitoring
+availability and performance of IT infrastructure components. Zabbix is open
+source and comes at no cost.
+
+With Zabbix it is possible to gather virtually limitless types of data from
+the network. High performance real-time monitoring means that tens of thousands
+of servers, virtual machines and network devices can be monitored
+simultaneously. Along with storing the data, visualization features are
+available (overviews, maps, graphs, screens, etc), as well as very flexible
+ways of analyzing the data for the purpose of alerting.
diff --git a/zabbix52-proxy/Makefile b/zabbix52-proxy/Makefile
new file mode 100644
index 0000000000..3907da0d80
--- /dev/null
+++ b/zabbix52-proxy/Makefile
@@ -0,0 +1,77 @@
+# $NetBSD$
+
+.include "../../sysutils/zabbix52-server/Makefile.common"
+
+PKGNAME= ${DISTNAME:S/-/-proxy-${ZABBIX_DB_TYPE}-/}
+COMMENT= Enterprise-class Monitoring Solution for Everyone
+
+CONFLICTS+= zabbix-[0-9]*
+CONFLICTS+= zabbix-proxy-[0-9]*
+
+DEPENDS+= fping-[0-9]*:../../net/fping
+
+USE_TOOLS+= aclocal autoconf automake pax pkg-config
+GNU_CONFIGURE= yes
+CONFIGURE_ARGS+= --enable-proxy
+CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR}
+CONFIGURE_ARGS+= --datarootdir=${PREFIX}/share/${PKGBASE}
+CONFIGURE_ARGS+= --with-iconv=${BUILDLINK_PREFIX.iconv}
+CONFIGURE_ARGS+= --with-ldap=${BUILDLINK_PREFIX.openldap-client}
+CONFIGURE_ARGS+= --with-libcurl
+CONFIGURE_ARGS+= --with-libevent=${BUILDLINK_PREFIX.libevent}
+CONFIGURE_ARGS+= --with-libpcre=${BUILDLINK_PREFIX.pcre}
+CONFIGURE_ARGS+= --with-libxml2
+CONFIGURE_ARGS+= --with-openssl=${BUILDLINK_PREFIX.openssl}
+CONFIGURE_ARGS+= --with-zlib=${BUILDLINK_PREFIX.zlib}
+
+EGDIR= share/examples/${PKGBASE}
+CONF_FILES+= ${EGDIR}/zabbix_proxy.conf ${PKG_SYSCONFDIR}/zabbix_proxy.conf
+
+RCD_SCRIPTS= zabbix_proxy
+SMF_NAME= zabbix-proxy
+
+INSTALLATION_DIRS+= ${EGDIR} share/${PKGBASE}
+
+SUBST_CLASSES+= fix-paths
+SUBST_STAGE.fix-paths= pre-configure
+SUBST_MESSAGE.fix-paths= Fixing absolute paths.
+SUBST_FILES.fix-paths= conf/*.conf
+SUBST_FILES.fix-paths+= man/*.man
+SUBST_SED.fix-paths= -e 's,/usr/local/etc,${PKG_SYSCONFDIR},g'
+
+SUBST_CLASSES+= fix-pkgbase
+SUBST_STAGE.fix-pkgbase= pre-configure
+SUBST_MESSAGE.fix-pkgbase= Fixing PKGBASE.
+SUBST_FILES.fix-pkgbase= src/zabbix_proxy/Makefile.am
+SUBST_SED.fix-pkgbase= -e 's,%%PKGBASE%%,${PKGBASE},g'
+
+PLIST_SUBST+= PKGBASE=${PKGBASE}
+
+CFLAGS.SunOS+= -DDUK_USE_BYTEORDER=1
+
+.include "../../mk/bsd.prefs.mk"
+
+pre-configure:
+ set -e; cd ${WRKSRC}; \
+ aclocal -I m4 ; automake -ai --foreign; autoconf -I m4
+
+post-install:
+ cd ${WRKSRC}/database/${ZABBIX_DB_TYPE}; \
+ ${PAX} -rw . ${DESTDIR}${PREFIX}/share/${PKGBASE}/
+ ${RM} ${DESTDIR}${PREFIX}/share/${PKGBASE}/Makefile*
+ ${RM} ${DESTDIR}${PREFIX}/share/${PKGBASE}/data.sql
+ ${RM} ${DESTDIR}${PREFIX}/share/${PKGBASE}/images.sql
+ ${MV} ${DESTDIR}${PREFIX}/bin/zabbix_js \
+ ${DESTDIR}${PREFIX}/bin/zabbix_proxy_js
+
+.include "options.mk"
+
+.include "../../converters/libiconv/buildlink3.mk"
+.include "../../databases/openldap-client/buildlink3.mk"
+.include "../../devel/libevent/buildlink3.mk"
+.include "../../devel/zlib/buildlink3.mk"
+.include "../../security/openssl/buildlink3.mk"
+.include "../../textproc/libxml2/buildlink3.mk"
+.include "../../www/curl/buildlink3.mk"
+.include "../../devel/pcre/buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/zabbix52-proxy/PLIST b/zabbix52-proxy/PLIST
new file mode 100644
index 0000000000..6df1e5dc41
--- /dev/null
+++ b/zabbix52-proxy/PLIST
@@ -0,0 +1,11 @@
+@comment $NetBSD$
+bin/zabbix_proxy_js
+man/man8/zabbix_proxy.8
+sbin/zabbix_proxy
+share/examples/${PKGBASE}/zabbix_proxy.conf
+${PLIST.sqldb}share/${PKGBASE}/double.sql
+share/${PKGBASE}/schema.sql
+${PLIST.pgsql}share/${PKGBASE}/timescaledb.sql
+@pkgdir share/${PKGBASE}/externalscripts
+@pkgdir lib/modules
+@pkgdir etc/zabbix_proxy.conf.d
diff --git a/zabbix52-proxy/distinfo b/zabbix52-proxy/distinfo
new file mode 100644
index 0000000000..7d30ec92fc
--- /dev/null
+++ b/zabbix52-proxy/distinfo
@@ -0,0 +1,10 @@
+$NetBSD$
+
+SHA1 (zabbix-5.2.0.tar.gz) = d3a4f4d07c50cc4464e574cf0e31716efd90b562
+RMD160 (zabbix-5.2.0.tar.gz) = f275572961e1a41543d665131d237e1b42c464ca
+SHA512 (zabbix-5.2.0.tar.gz) = e7853c685864c1c38adf5f4e3982d1ca1b9951065f339d457427bc6f1f68d25af92d702b7ce4eab7d83d17ad9cdcc28c45c9463d21725e07593af1ac8ffa4a51
+Size (zabbix-5.2.0.tar.gz) = 19509362 bytes
+SHA1 (patch-m4_ax__lib__mysql.m4) = 9786c6bff3d22334263921c201bf241a207a46bc
+SHA1 (patch-m4_libssh.m4) = 8b4ac3964caf94bb0e4939d265dcefc08a07a0df
+SHA1 (patch-src_libs_zbxsysinfo_netbsd_net.c) = 468f2112a3d65b0a73f371194ae15ce0df0ad71c
+SHA1 (patch-src_zabbix__proxy_Makefile.am) = 9d2c3d5ca06e676154653b70f0931ed2ea281cf5
diff --git a/zabbix52-proxy/files/smf/manifest.xml b/zabbix52-proxy/files/smf/manifest.xml
new file mode 100644
index 0000000000..b319012725
--- /dev/null
+++ b/zabbix52-proxy/files/smf/manifest.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
+<service_bundle type="manifest" name="export">
+ <service name="@SMF_PREFIX@/@SMF_NAME@" type="service" version="1">
+ <dependency name="fs-local" grouping="require_all" restart_on="none" type="service">
+ <service_fmri value="svc:/system/filesystem/local"/>
+ </dependency>
+ <dependency name="network-service" grouping="require_all" restart_on="none" type="service">
+ <service_fmri value="svc:/network/service"/>
+ </dependency>
+ <dependency name="system-log" grouping="optional_all" restart_on="none" type="service">
+ <service_fmri value="svc:/system/system-log"/>
+ </dependency>
+ <method_context>
+ <method_credential user="@ZABBIX_USER@" group="@ZABBIX_GROUP@"/>
+ </method_context>
+ <instance name="@SMF_INSTANCES@" enabled="false">
+ <dependency name="config-file" grouping="require_all" restart_on="refresh" type="path">
+ <service_fmri value="file://localhost@PKG_SYSCONFDIR@/zabbix_proxy.conf"/>
+ </dependency>
+ <exec_method name="start" type="method" exec="@PREFIX@/sbin/zabbix_proxy -c @PKG_SYSCONFDIR@/zabbix_proxy.conf" timeout_seconds="0"/>
+ <exec_method name="stop" type="method" exec=":kill" timeout_seconds="0"/>
+ <template>
+ <common_name>
+ <loctext xml:lang="C">Zabbix proxy</loctext>
+ </common_name>
+ </template>
+ </instance>
+ </service>
+</service_bundle>
diff --git a/zabbix52-proxy/files/zabbix_proxy.sh b/zabbix52-proxy/files/zabbix_proxy.sh
new file mode 100644
index 0000000000..65f8d51af1
--- /dev/null
+++ b/zabbix52-proxy/files/zabbix_proxy.sh
@@ -0,0 +1,27 @@
+#!@RCD_SCRIPTS_SHELL@
+#
+# $NetBSD$
+#
+# Zabbix proxy daemon
+#
+# REQUIRE: DAEMON
+# PROVIDE: zabbix_proxy
+
+if [ -f /etc/rc.subr ]; then
+ . /etc/rc.subr
+fi
+
+name="zabbix_proxy"
+rcvar=${name}
+command="@PREFIX@/sbin/${name}"
+start_precmd="ulimit -s 10240"
+required_files="@PKG_SYSCONFDIR@/${name}.conf"
+
+if [ -f /etc/rc.subr ]; then
+ load_rc_config ${name}
+ run_rc_command "$1"
+else
+ @ECHO@ -n " ${name}"
+ [ "x$1" = "xstart" ] && ulimit -s 10240
+ ${command} ${command_args}
+fi
diff --git a/zabbix52-proxy/options.mk b/zabbix52-proxy/options.mk
new file mode 100644
index 0000000000..8350b9cbb2
--- /dev/null
+++ b/zabbix52-proxy/options.mk
@@ -0,0 +1,61 @@
+# $NetBSD$
+
+PKG_OPTIONS_VAR= PKG_OPTIONS.zabbix52-proxy
+PKG_SUPPORTED_OPTIONS+= inet6 ipmi libssh libssh2 snmp
+PKG_OPTIONS_OPTIONAL_GROUPS= database
+PKG_OPTIONS_GROUP.database= mysql pgsql sqlite3
+PKG_SUGGESTED_OPTIONS+= libssh2 pgsql snmp
+
+.if empty(MISSING_FEATURES:Minet6)
+PKG_SUGGESTED_OPTIONS+= inet6
+.endif
+
+.include "../../mk/bsd.options.mk"
+
+PLIST_VARS+= pgsql
+PLIST_VARS+= sqldb
+
+.if !empty(PKG_OPTIONS:Minet6)
+CONFIGURE_ARGS+= --enable-ipv6
+.endif
+
+.if !empty(PKG_OPTIONS:Mlibssh)
+CONFIGURE_ARGS+= --with-ssh=${BUILDLINK_PREFIX.libssh}
+.include "../../security/libssh/buildlink3.mk"
+.endif
+
+.if !empty(PKG_OPTIONS:Mlibssh2)
+CONFIGURE_ARGS+= --with-ssh2=${BUILDLINK_PREFIX.libssh2}
+.include "../../security/libssh2/buildlink3.mk"
+.endif
+
+.if !empty(PKG_OPTIONS:Mmysql)
+CONFIGURE_ARGS+= --with-mysql
+.include "../../mk/mysql.buildlink3.mk"
+ZABBIX_DB_TYPE= mysql
+PLIST.sqldb= yes
+.endif
+
+.if !empty(PKG_OPTIONS:Msnmp)
+CONFIGURE_ARGS+= --with-net-snmp
+.include "../../net/net-snmp/buildlink3.mk"
+.endif
+
+.if !empty(PKG_OPTIONS:Mpgsql)
+CONFIGURE_ARGS+= --with-postgresql
+.include "../../mk/pgsql.buildlink3.mk"
+ZABBIX_DB_TYPE= postgresql
+PLIST.pgsql= yes
+PLIST.sqldb= yes
+.endif
+
+.if !empty(PKG_OPTIONS:Msqlite3)
+CONFIGURE_ARGS+= --with-sqlite3=${BUILDLINK_PREFIX.sqlite3}
+.include "../../databases/sqlite3/buildlink3.mk"
+ZABBIX_DB_TYPE= sqlite3
+.endif
+
+.if !empty(PKG_OPTIONS:Mipmi)
+CONFIGURE_ARGS+= --with-openipmi=${PREFIX}
+.include "../../sysutils/openipmi/buildlink3.mk"
+.endif
diff --git a/zabbix52-proxy/patches/patch-m4_ax__lib__mysql.m4 b/zabbix52-proxy/patches/patch-m4_ax__lib__mysql.m4
new file mode 100644
index 0000000000..18c2022972
--- /dev/null
+++ b/zabbix52-proxy/patches/patch-m4_ax__lib__mysql.m4
@@ -0,0 +1,15 @@
+$NetBSD: patch-m4_ax__lib__mysql.m4,v 1.1 2020/11/03 22:45:39 otis Exp $
+
+Fix bash-ism.
+
+--- m4/ax_lib_mysql.m4.orig 2020-08-24 09:42:55.000000000 +0000
++++ m4/ax_lib_mysql.m4
+@@ -236,7 +236,7 @@ AC_DEFUN([AX_LIB_MYSQL],
+ LDFLAGS="${LDFLAGS} ${MYSQL_LDFLAGS}"
+ LIBS="${LIBS} ${MYSQL_LIBS}"
+ LIBMYSQL_TLS_TRY_LINK([no])
+- if test "$found_mysql_tls" == "yes"; then
++ if test "$found_mysql_tls" = "yes"; then
+ LIBMYSQL_TLS_CIPHERS_TRY_LINK([no])
+ else
+ LIBMARIADB_TLS_TRY_LINK([no])
diff --git a/zabbix52-proxy/patches/patch-m4_libssh.m4 b/zabbix52-proxy/patches/patch-m4_libssh.m4
new file mode 100644
index 0000000000..57f3b920da
--- /dev/null
+++ b/zabbix52-proxy/patches/patch-m4_libssh.m4
@@ -0,0 +1,40 @@
+$NetBSD: patch-m4_libssh.m4,v 1.1 2020/11/03 22:45:39 otis Exp $
+
+Fix libssh >= 0.9.5 detection.
+
+--- m4/libssh.m4.orig 2020-05-10 17:36:06.000000000 +0000
++++ m4/libssh.m4
+@@ -83,13 +83,19 @@ AC_HELP_STRING([--with-ssh@<:@=DIR@:>@],
+ SSH_LDFLAGS=-L/usr/lib
+ SSH_LIBS="-lssh"
+ found_ssh="yes"
+- LIBSSH_ACCEPT_VERSION([/usr/include/libssh/libssh.h])
++ LIBSSH_ACCEPT_VERSION([/usr/include/libssh/libssh_version.h])
++ if test "x$accept_ssh_version" = "xno"; then
++ LIBSSH_ACCEPT_VERSION([/usr/include/libssh/libssh.h])
++ fi
+ elif test -f /usr/local/include/libssh/libssh.h; then
+ SSH_CFLAGS=-I/usr/local/include
+ SSH_LDFLAGS=-L/usr/local/lib
+ SSH_LIBS="-lssh"
+ found_ssh="yes"
+- LIBSSH_ACCEPT_VERSION([/usr/local/include/libssh/libssh.h])
++ LIBSSH_ACCEPT_VERSION([/usr/local/include/libssh/libssh_version.h])
++ if test "x$accept_ssh_version" = "xno"; then
++ LIBSSH_ACCEPT_VERSION([/usr/local/include/libssh/libssh.h])
++ fi
+ else #libraries are not found in default directories
+ found_ssh="no"
+ AC_MSG_RESULT(no)
+@@ -100,7 +106,10 @@ AC_HELP_STRING([--with-ssh@<:@=DIR@:>@],
+ SSH_LDFLAGS=-L$_libssh_dir/lib
+ SSH_LIBS="-lssh"
+ found_ssh="yes"
+- LIBSSH_ACCEPT_VERSION([$_libssh_dir/include/libssh/libssh.h])
++ LIBSSH_ACCEPT_VERSION([$_libssh_dir/include/libssh/libssh_version.h])
++ if test "x$accept_ssh_version" = "xno"; then
++ LIBSSH_ACCEPT_VERSION([$_libssh_dir/include/libssh/libssh.h])
++ fi
+ else #if test -f $_libssh_dir/include/libssh/libssh.h; then
+ found_ssh="no"
+ AC_MSG_RESULT(no)
diff --git a/zabbix52-proxy/patches/patch-src_libs_zbxsysinfo_netbsd_net.c b/zabbix52-proxy/patches/patch-src_libs_zbxsysinfo_netbsd_net.c
new file mode 100644
index 0000000000..8cceedbf42
--- /dev/null
+++ b/zabbix52-proxy/patches/patch-src_libs_zbxsysinfo_netbsd_net.c
@@ -0,0 +1,203 @@
+$NetBSD: patch-src_libs_zbxsysinfo_netbsd_net.c,v 1.1 2020/11/03 22:45:39 otis Exp $
+
+Rework interface statistics code from using kvm to using sysctl interface.
+
+--- src/libs/zbxsysinfo/netbsd/net.c.orig 2020-08-24 09:42:55.000000000 +0000
++++ src/libs/zbxsysinfo/netbsd/net.c
+@@ -22,6 +22,9 @@
+ #include "zbxjson.h"
+ #include "log.h"
+
++#include <net/route.h>
++#include <net/if_dl.h>
++
+ static struct nlist kernel_symbols[] =
+ {
+ {"_ifnet", N_UNDF, 0, 0, 0},
+@@ -31,43 +34,91 @@ static struct nlist kernel_symbols[] =
+
+ #define IFNET_ID 0
+
++static void
++get_rtaddrs(int addrs, struct sockaddr *sa, struct sockaddr **rti_info)
++{
++ int i;
++
++ for (i = 0; i < RTAX_MAX; i++) {
++ if (addrs & (1 << i)) {
++ rti_info[i] = sa;
++ sa = (struct sockaddr *)((char *)(sa) +
++ RT_ROUNDUP(sa->sa_len));
++ } else
++ rti_info[i] = NULL;
++ }
++}
++
++
+ static int get_ifdata(const char *if_name,
+ zbx_uint64_t *ibytes, zbx_uint64_t *ipackets, zbx_uint64_t *ierrors, zbx_uint64_t *idropped,
+ zbx_uint64_t *obytes, zbx_uint64_t *opackets, zbx_uint64_t *oerrors,
+ zbx_uint64_t *tbytes, zbx_uint64_t *tpackets, zbx_uint64_t *terrors,
+ zbx_uint64_t *icollisions, char **error)
+ {
+- struct ifnet_head head;
+- struct ifnet *ifp;
+- struct ifnet v;
+-
+- kvm_t *kp;
+- int len = 0;
+- int ret = SYSINFO_RET_FAIL;
++ struct if_msghdr *ifm;
++ int mib[6] = { CTL_NET, AF_ROUTE, 0, 0, NET_RT_IFLIST, 0 };
++ char *buf = NULL;
++ char *lim, *next;
++ struct rt_msghdr *rtm;
++ struct if_data *ifd = NULL;
++ struct sockaddr *sa, *rti_info[RTAX_MAX];
++ struct sockaddr_dl *sdl;
++
++ size_t len = 0;
++ size_t olen = 0;
++ int ret = SYSINFO_RET_FAIL;
++
++ static char name[IFNAMSIZ];
+
+ if (NULL == if_name || '\0' == *if_name)
+ {
+ *error = zbx_strdup(NULL, "Network interface name cannot be empty.");
+- return FAIL;
++ ret = FAIL;
++ goto out;
+ }
+
+- if (NULL == (kp = kvm_open(NULL, NULL, NULL, O_RDONLY, NULL))) /* requires root privileges */
+- {
+- *error = zbx_strdup(NULL, "Cannot obtain a descriptor to access kernel virtual memory.");
+- return FAIL;
+- }
+-
+- if (N_UNDF == kernel_symbols[IFNET_ID].n_type)
+- if (0 != kvm_nlist(kp, &kernel_symbols[0]))
+- kernel_symbols[IFNET_ID].n_type = N_UNDF;
+-
+- if (N_UNDF != kernel_symbols[IFNET_ID].n_type)
+- {
+- len = sizeof(struct ifnet_head);
+-
+- if (kvm_read(kp, kernel_symbols[IFNET_ID].n_value, &head, len) >= len)
+- {
+- len = sizeof(struct ifnet);
++ if (sysctl(mib, 6, NULL, &len, NULL, 0) == -1) {
++ *error = zbx_strdup(NULL, "Failed to read network interfaces data");
++ ret = FAIL;
++ goto out;
++ }
++
++ if (len > olen) {
++ free(buf);
++ if ((buf = zbx_malloc(NULL, len)) == NULL) {
++ *error = zbx_strdup(NULL, "Failed to allocate buffer for network interfaces data");
++ ret = FAIL;
++ goto out;
++ }
++ olen = len;
++ }
++ if (sysctl(mib, 6, buf, &len, NULL, 0) == -1) {
++ *error = zbx_strdup(NULL, "Failed to allocate buffer for network interfaces data");
++ ret = FAIL;
++ goto out;
++ }
++
++ lim = buf + len;
++ for (next = buf; next < lim; next += rtm->rtm_msglen) {
++ rtm = (struct rt_msghdr *)next;
++ if ((rtm->rtm_version == RTM_VERSION) &&
++ (rtm->rtm_type == RTM_IFINFO)) {
++ ifm = (struct if_msghdr *)next;
++ ifd = &ifm->ifm_data;
++
++ sa = (struct sockaddr *)(ifm + 1);
++ get_rtaddrs(ifm->ifm_addrs, sa, rti_info);
++
++ sdl = (struct sockaddr_dl *)rti_info[RTAX_IFP];
++ if (sdl == NULL || sdl->sdl_family != AF_LINK) {
++ continue;
++ }
++ bzero(name, sizeof(name));
++ if (sdl->sdl_nlen >= IFNAMSIZ)
++ memcpy(name, sdl->sdl_data, IFNAMSIZ - 1);
++ else if (sdl->sdl_nlen > 0)
++ memcpy(name, sdl->sdl_data, sdl->sdl_nlen);
+
+ /* if_ibytes; total number of octets received */
+ /* if_ipackets; packets received on interface */
+@@ -101,42 +152,38 @@ static int get_ifdata(const char *if_nam
+ if (icollisions)
+ *icollisions = 0;
+
+- for (ifp = head.tqh_first; ifp; ifp = v.if_list.tqe_next)
++ if (0 == strcmp(if_name, name))
+ {
+- if (kvm_read(kp, (u_long)ifp, &v, len) < len)
+- break;
+-
+- if (0 == strcmp(if_name, v.if_xname))
+- {
+- if (ibytes)
+- *ibytes += v.if_ibytes;
+- if (ipackets)
+- *ipackets += v.if_ipackets;
+- if (ierrors)
+- *ierrors += v.if_ierrors;
+- if (idropped)
+- *idropped += v.if_iqdrops;
+- if (obytes)
+- *obytes += v.if_obytes;
+- if (opackets)
+- *opackets += v.if_opackets;
+- if (oerrors)
+- *oerrors += v.if_oerrors;
+- if (tbytes)
+- *tbytes += v.if_ibytes + v.if_obytes;
+- if (tpackets)
+- *tpackets += v.if_ipackets + v.if_opackets;
+- if (terrors)
+- *terrors += v.if_ierrors + v.if_oerrors;
+- if (icollisions)
+- *icollisions += v.if_collisions;
+- ret = SYSINFO_RET_OK;
+- }
++ if (ibytes)
++ *ibytes += ifd->ifi_ibytes;
++ if (ipackets)
++ *ipackets += ifd->ifi_ipackets;
++ if (ierrors)
++ *ierrors += ifd->ifi_ierrors;
++ if (idropped)
++ *idropped += ifd->ifi_iqdrops;
++ if (obytes)
++ *obytes += ifd->ifi_obytes;
++ if (opackets)
++ *opackets += ifd->ifi_opackets;
++ if (oerrors)
++ *oerrors += ifd->ifi_oerrors;
++ if (tbytes)
++ *tbytes += ifd->ifi_ibytes + ifd->ifi_obytes;
++ if (tpackets)
++ *tpackets += ifd->ifi_ipackets + ifd->ifi_opackets;
++ if (terrors)
++ *terrors += ifd->ifi_ierrors + ifd->ifi_oerrors;
++ if (icollisions)
++ *icollisions += ifd->ifi_collisions;
++ ret = SYSINFO_RET_OK;
++ goto out;
+ }
+ }
+ }
+
+- kvm_close(kp);
++out:
++ free(buf);
+
+ if (SYSINFO_RET_FAIL == ret)
+ {
diff --git a/zabbix52-proxy/patches/patch-src_zabbix__proxy_Makefile.am b/zabbix52-proxy/patches/patch-src_zabbix__proxy_Makefile.am
new file mode 100644
index 0000000000..875af04efe
--- /dev/null
+++ b/zabbix52-proxy/patches/patch-src_zabbix__proxy_Makefile.am
@@ -0,0 +1,12 @@
+$NetBSD: patch-src_zabbix__proxy_Makefile.am,v 1.1 2020/11/03 22:45:39 otis Exp $
+
+Install config file to component's example directory.
+
+--- src/zabbix_proxy/Makefile.am.orig 2020-08-24 09:42:55.000000000 +0000
++++ src/zabbix_proxy/Makefile.am
+@@ -97,4 +97,4 @@ install-data-hook:
+ $(MKDIR_P) "$(DESTDIR)$(PROXY_CONFIG_FILE).d"
+ $(MKDIR_P) "$(DESTDIR)$(EXTERNAL_SCRIPTS_PATH)"
+ $(MKDIR_P) "$(DESTDIR)$(LOAD_MODULE_PATH)"
+- test -f "$(DESTDIR)$(PROXY_CONFIG_FILE)" || cp "../../conf/zabbix_proxy.conf" "$(DESTDIR)$(PROXY_CONFIG_FILE)"
++ $(INSTALL_DATA) "../../conf/zabbix_proxy.conf" "$(DESTDIR)/${PREFIX}/share/examples/%%PKGBASE%%"
diff --git a/zabbix52-server/DESCR b/zabbix52-server/DESCR
new file mode 100644
index 0000000000..5b0609ac6b
--- /dev/null
+++ b/zabbix52-server/DESCR
@@ -0,0 +1,12 @@
+Zabbix is the ultimate enterprise-level software designed for monitoring
+availability and performance of IT infrastructure components. Zabbix is open
+source and comes at no cost.
+
+With Zabbix it is possible to gather virtually limitless types of data from
+the network. High performance real-time monitoring means that tens of thousands
+of servers, virtual machines and network devices can be monitored
+simultaneously. Along with storing the data, visualization features are
+available (overviews, maps, graphs, screens, etc), as well as very flexible
+ways of analyzing the data for the purpose of alerting.
+
+This is an LTS release of Zabbix!
diff --git a/zabbix52-server/Makefile b/zabbix52-server/Makefile
new file mode 100644
index 0000000000..c1072441c2
--- /dev/null
+++ b/zabbix52-server/Makefile
@@ -0,0 +1,75 @@
+# $NetBSD$
+# used by sysutils/zabbix52-proxy/Makefile
+# used by sysutils/zabbix52-agent/Makefile
+#
+.include "Makefile.common"
+
+PKGNAME= ${DISTNAME:S/-/-server-${ZABBIX_DB_TYPE}-/}
+COMMENT= Enterprise-class Monitoring Solution for Everyone
+
+CONFLICTS+= zabbix-[0-9]*
+CONFLICTS+= zabbix-server-[0-9]*
+
+DEPENDS+= fping-[0-9]*:../../net/fping
+
+USE_TOOLS+= aclocal autoconf automake pax pkg-config
+GNU_CONFIGURE= yes
+CONFIGURE_ARGS+= --enable-server
+CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR}
+CONFIGURE_ARGS+= --datarootdir=${PREFIX}/share/${PKGBASE}
+CONFIGURE_ARGS+= --with-iconv=${BUILDLINK_PREFIX.iconv}
+CONFIGURE_ARGS+= --with-ldap=${BUILDLINK_PREFIX.openldap-client}
+CONFIGURE_ARGS+= --with-libcurl
+CONFIGURE_ARGS+= --with-libevent=${BUILDLINK_PREFIX.libevent}
+CONFIGURE_ARGS+= --with-libpcre=${BUILDLINK_PREFIX.pcre}
+CONFIGURE_ARGS+= --with-libxml2
+CONFIGURE_ARGS+= --with-openssl=${BUILDLINK_PREFIX.openssl}
+CONFIGURE_ARGS+= --with-zlib=${BUILDLINK_PREFIX.zlib}
+
+EGDIR= share/examples/${PKGBASE}
+CONF_FILES+= ${EGDIR}/zabbix_server.conf ${PKG_SYSCONFDIR}/zabbix_server.conf
+
+RCD_SCRIPTS= zabbix_server
+SMF_NAME= zabbix-server
+
+INSTALLATION_DIRS+= ${EGDIR} share/${PKGBASE}
+
+SUBST_CLASSES+= fix-paths
+SUBST_STAGE.fix-paths= pre-configure
+SUBST_MESSAGE.fix-paths= Fixing absolute paths.
+SUBST_FILES.fix-paths= conf/*.conf
+SUBST_FILES.fix-paths+= man/*.man
+SUBST_SED.fix-paths= -e 's,/usr/local/etc,${PKG_SYSCONFDIR},g'
+
+SUBST_CLASSES+= fix-pkgbase
+SUBST_STAGE.fix-pkgbase= pre-configure
+SUBST_MESSAGE.fix-pkgbase= Fixing PKGBASE.
+SUBST_FILES.fix-pkgbase= src/zabbix_server/Makefile.am
+SUBST_SED.fix-pkgbase= -e 's,%%PKGBASE%%,${PKGBASE},g'
+
+PLIST_SUBST+= PKGBASE=${PKGBASE}
+
+CFLAGS.SunOS+= -DDUK_USE_BYTEORDER=1
+
+.include "../../mk/bsd.prefs.mk"
+
+pre-configure:
+ set -e; cd ${WRKSRC}; \
+ aclocal -I m4 ; automake -ai --foreign; autoconf -I m4
+
+post-install:
+ cd ${WRKSRC}/database/${ZABBIX_DB_TYPE}; \
+ ${PAX} -rw . ${DESTDIR}${PREFIX}/share/${PKGBASE}/
+ ${RM} ${DESTDIR}${PREFIX}/share/${PKGBASE}/Makefile*
+
+.include "options.mk"
+
+.include "../../converters/libiconv/buildlink3.mk"
+.include "../../databases/openldap-client/buildlink3.mk"
+.include "../../devel/libevent/buildlink3.mk"
+.include "../../devel/zlib/buildlink3.mk"
+.include "../../security/openssl/buildlink3.mk"
+.include "../../textproc/libxml2/buildlink3.mk"
+.include "../../www/curl/buildlink3.mk"
+.include "../../devel/pcre/buildlink3.mk"
+.include "../../mk/bsd.pkg.mk"
diff --git a/zabbix52-server/Makefile.common b/zabbix52-server/Makefile.common
new file mode 100644
index 0000000000..5b52867264
--- /dev/null
+++ b/zabbix52-server/Makefile.common
@@ -0,0 +1,28 @@
+# $NetBSD$
+# used by sysutils/zabbix52-agent/Makefile
+# used by sysutils/zabbix52-proxy/Makefile
+# used by sysutils/zabbix52-server/Makefile
+# used by sysutils/zabbix52-frontend/Makefile
+# used by sysutils/zabbix52-java/Makefile
+
+DISTNAME= zabbix-5.2.0
+CATEGORIES= sysutils
+MASTER_SITES= https://cdn.zabbix.com/zabbix/sources/stable/5.2/
+
+MAINTAINER?= pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE= https://www.zabbix.com/
+LICENSE= gnu-gpl-v2
+
+# Zabbix user, common to all components
+ZABBIX_GROUP?= zabbix
+ZABBIX_USER?= zabbix
+ZABBIX_HOMEDIR?= /var/zabbix
+PKG_GROUPS+= ${ZABBIX_GROUP}
+PKG_USERS+= ${ZABBIX_USER}:${ZABBIX_GROUP}
+PKG_GECOS.${ZABBIX_USER}= Zabbix user
+PKG_HOME.${ZABBIX_USER}= ${ZABBIX_HOMEDIR}
+
+FILES_SUBST+= ZABBIX_USER=${ZABBIX_USER}
+FILES_SUBST+= ZABBIX_GROUP=${ZABBIX_GROUP}
+
+OWN_DIRS_PERMS+= ${ZABBIX_HOMEDIR} ${ZABBIX_USER} ${ZABBIX_GROUP} 0755
diff --git a/zabbix52-server/PLIST b/zabbix52-server/PLIST
new file mode 100644
index 0000000000..d0b102492d
--- /dev/null
+++ b/zabbix52-server/PLIST
@@ -0,0 +1,14 @@
+@comment $NetBSD$
+bin/zabbix_js
+man/man8/zabbix_server.8
+sbin/zabbix_server
+share/examples/${PKGBASE}/zabbix_server.conf
+share/${PKGBASE}/data.sql
+share/${PKGBASE}/images.sql
+share/${PKGBASE}/schema.sql
+share/${PKGBASE}/double.sql
+${PLIST.pgsql}share/${PKGBASE}/timescaledb.sql
+@pkgdir share/${PKGBASE}/externalscripts
+@pkgdir share/${PKGBASE}/alertscripts
+@pkgdir lib/modules
+@pkgdir etc/zabbix_server.conf.d
diff --git a/zabbix52-server/distinfo b/zabbix52-server/distinfo
new file mode 100644
index 0000000000..c3a7ca0f7a
--- /dev/null
+++ b/zabbix52-server/distinfo
@@ -0,0 +1,10 @@
+$NetBSD$
+
+SHA1 (zabbix-5.2.0.tar.gz) = d3a4f4d07c50cc4464e574cf0e31716efd90b562
+RMD160 (zabbix-5.2.0.tar.gz) = f275572961e1a41543d665131d237e1b42c464ca
+SHA512 (zabbix-5.2.0.tar.gz) = e7853c685864c1c38adf5f4e3982d1ca1b9951065f339d457427bc6f1f68d25af92d702b7ce4eab7d83d17ad9cdcc28c45c9463d21725e07593af1ac8ffa4a51
+Size (zabbix-5.2.0.tar.gz) = 19509362 bytes
+SHA1 (patch-m4_ax__lib__mysql.m4) = 9786c6bff3d22334263921c201bf241a207a46bc
+SHA1 (patch-m4_libssh.m4) = 8b4ac3964caf94bb0e4939d265dcefc08a07a0df
+SHA1 (patch-src_libs_zbxsysinfo_netbsd_net.c) = 468f2112a3d65b0a73f371194ae15ce0df0ad71c
+SHA1 (patch-src_zabbix__server_Makefile.am) = d139b4fedf8f443fbe9966256e98374d5e5cdb67
diff --git a/zabbix52-server/files/smf/manifest.xml b/zabbix52-server/files/smf/manifest.xml
new file mode 100644
index 0000000000..12c84dfe26
--- /dev/null
+++ b/zabbix52-server/files/smf/manifest.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0"?>
+<!DOCTYPE service_bundle SYSTEM "/usr/share/lib/xml/dtd/service_bundle.dtd.1">
+<service_bundle type="manifest" name="export">
+ <service name="@SMF_PREFIX@/@SMF_NAME@" type="service" version="1">
+ <dependency name="fs-local" grouping="require_all" restart_on="none" type="service">
+ <service_fmri value="svc:/system/filesystem/local"/>
+ </dependency>
+ <dependency name="network-service" grouping="require_all" restart_on="none" type="service">
+ <service_fmri value="svc:/network/service"/>
+ </dependency>
+ <dependency name="system-log" grouping="optional_all" restart_on="none" type="service">
+ <service_fmri value="svc:/system/system-log"/>
+ </dependency>
+ <method_context>
+ <method_credential user="@ZABBIX_USER@" group="@ZABBIX_GROUP@"/>
+ </method_context>
+ <instance name="@SMF_INSTANCES@" enabled="false">
+ <dependency name="config-file" grouping="require_all" restart_on="refresh" type="path">
+ <service_fmri value="file://localhost@PKG_SYSCONFDIR@/zabbix_server.conf"/>
+ </dependency>
+ <exec_method name="start" type="method" exec="@PREFIX@/sbin/zabbix_server -c @PKG_SYSCONFDIR@/zabbix_server.conf" timeout_seconds="0"/>
+ <exec_method name="stop" type="method" exec=":kill" timeout_seconds="0"/>
+ <template>
+ <common_name>
+ <loctext xml:lang="C">Zabbix server</loctext>
+ </common_name>
+ </template>
+ </instance>
+ </service>
+</service_bundle>
diff --git a/zabbix52-server/files/zabbix_server.sh b/zabbix52-server/files/zabbix_server.sh
new file mode 100644
index 0000000000..b33dd6eb70
--- /dev/null
+++ b/zabbix52-server/files/zabbix_server.sh
@@ -0,0 +1,27 @@
+#!@RCD_SCRIPTS_SHELL@
+#
+# $NetBSD$
+#
+# Zabbix server daemon
+#
+# REQUIRE: DAEMON
+# PROVIDE: zabbix_server
+
+if [ -f /etc/rc.subr ]; then
+ . /etc/rc.subr
+fi
+
+name="zabbix_server"
+rcvar=${name}
+start_precmd="ulimit -s 10240"
+command="@PREFIX@/sbin/${name}"
+required_files="@PKG_SYSCONFDIR@/${name}.conf"
+
+if [ -f /etc/rc.subr ]; then
+ load_rc_config ${name}
+ run_rc_command "$1"
+else
+ @ECHO@ -n " ${name}"
+ [ "x$1" = "xstart" ] && ulimit -s 10240
+ ${command} ${command_args}
+fi
diff --git a/zabbix52-server/options.mk b/zabbix52-server/options.mk
new file mode 100644
index 0000000000..9a3fc1fd88
--- /dev/null
+++ b/zabbix52-server/options.mk
@@ -0,0 +1,52 @@
+# $NetBSD$
+
+PKG_OPTIONS_VAR= PKG_OPTIONS.zabbix52-server
+PKG_SUPPORTED_OPTIONS+= inet6 ipmi libssh libssh2 snmp
+PKG_OPTIONS_OPTIONAL_GROUPS= database
+PKG_OPTIONS_GROUP.database= mysql pgsql
+PKG_SUGGESTED_OPTIONS+= ipmi libssh2 pgsql snmp
+
+.if empty(MISSING_FEATURES:Minet6)
+PKG_SUGGESTED_OPTIONS+= inet6
+.endif
+
+.include "../../mk/bsd.options.mk"
+
+PLIST_VARS+= pgsql
+
+.if !empty(PKG_OPTIONS:Minet6)
+CONFIGURE_ARGS+= --enable-ipv6
+.endif
+
+.if !empty(PKG_OPTIONS:Mlibssh)
+CONFIGURE_ARGS+= --with-ssh=${BUILDLINK_PREFIX.libssh}
+.include "../../security/libssh/buildlink3.mk"
+.endif
+
+.if !empty(PKG_OPTIONS:Mlibssh2)
+CONFIGURE_ARGS+= --with-ssh2=${BUILDLINK_PREFIX.libssh2}
+.include "../../security/libssh2/buildlink3.mk"
+.endif
+
+.if !empty(PKG_OPTIONS:Mmysql)
+CONFIGURE_ARGS+= --with-mysql
+.include "../../mk/mysql.buildlink3.mk"
+ZABBIX_DB_TYPE= mysql
+.endif
+
+.if !empty(PKG_OPTIONS:Msnmp)
+CONFIGURE_ARGS+= --with-net-snmp
+.include "../../net/net-snmp/buildlink3.mk"
+.endif
+
+.if !empty(PKG_OPTIONS:Mpgsql)
+CONFIGURE_ARGS+= --with-postgresql
+.include "../../mk/pgsql.buildlink3.mk"
+ZABBIX_DB_TYPE= postgresql
+PLIST.pgsql= yes
+.endif
+
+.if !empty(PKG_OPTIONS:Mipmi)
+CONFIGURE_ARGS+= --with-openipmi=${PREFIX}
+.include "../../sysutils/openipmi/buildlink3.mk"
+.endif
diff --git a/zabbix52-server/patches/patch-m4_ax__lib__mysql.m4 b/zabbix52-server/patches/patch-m4_ax__lib__mysql.m4
new file mode 100644
index 0000000000..f550f9a070
--- /dev/null
+++ b/zabbix52-server/patches/patch-m4_ax__lib__mysql.m4
@@ -0,0 +1,15 @@
+$NetBSD: patch-m4_ax__lib__mysql.m4,v 1.1 2020/11/03 22:44:43 otis Exp $
+
+Fix bash-ism.
+
+--- m4/ax_lib_mysql.m4.orig 2020-08-24 09:42:55.000000000 +0000
++++ m4/ax_lib_mysql.m4
+@@ -236,7 +236,7 @@ AC_DEFUN([AX_LIB_MYSQL],
+ LDFLAGS="${LDFLAGS} ${MYSQL_LDFLAGS}"
+ LIBS="${LIBS} ${MYSQL_LIBS}"
+ LIBMYSQL_TLS_TRY_LINK([no])
+- if test "$found_mysql_tls" == "yes"; then
++ if test "$found_mysql_tls" = "yes"; then
+ LIBMYSQL_TLS_CIPHERS_TRY_LINK([no])
+ else
+ LIBMARIADB_TLS_TRY_LINK([no])
diff --git a/zabbix52-server/patches/patch-m4_libssh.m4 b/zabbix52-server/patches/patch-m4_libssh.m4
new file mode 100644
index 0000000000..624cceb553
--- /dev/null
+++ b/zabbix52-server/patches/patch-m4_libssh.m4
@@ -0,0 +1,40 @@
+$NetBSD: patch-m4_libssh.m4,v 1.1 2020/11/03 22:44:43 otis Exp $
+
+Fix libssh >= 0.9.5 detection.
+
+--- m4/libssh.m4.orig 2020-05-10 17:36:06.000000000 +0000
++++ m4/libssh.m4
+@@ -83,13 +83,19 @@ AC_HELP_STRING([--with-ssh@<:@=DIR@:>@],
+ SSH_LDFLAGS=-L/usr/lib
+ SSH_LIBS="-lssh"
+ found_ssh="yes"
+- LIBSSH_ACCEPT_VERSION([/usr/include/libssh/libssh.h])
++ LIBSSH_ACCEPT_VERSION([/usr/include/libssh/libssh_version.h])
++ if test "x$accept_ssh_version" = "xno"; then
++ LIBSSH_ACCEPT_VERSION([/usr/include/libssh/libssh.h])
++ fi
+ elif test -f /usr/local/include/libssh/libssh.h; then
+ SSH_CFLAGS=-I/usr/local/include
+ SSH_LDFLAGS=-L/usr/local/lib
+ SSH_LIBS="-lssh"
+ found_ssh="yes"
+- LIBSSH_ACCEPT_VERSION([/usr/local/include/libssh/libssh.h])
++ LIBSSH_ACCEPT_VERSION([/usr/local/include/libssh/libssh_version.h])
++ if test "x$accept_ssh_version" = "xno"; then
++ LIBSSH_ACCEPT_VERSION([/usr/local/include/libssh/libssh.h])
++ fi
+ else #libraries are not found in default directories
+ found_ssh="no"
+ AC_MSG_RESULT(no)
+@@ -100,7 +106,10 @@ AC_HELP_STRING([--with-ssh@<:@=DIR@:>@],
+ SSH_LDFLAGS=-L$_libssh_dir/lib
+ SSH_LIBS="-lssh"
+ found_ssh="yes"
+- LIBSSH_ACCEPT_VERSION([$_libssh_dir/include/libssh/libssh.h])
++ LIBSSH_ACCEPT_VERSION([$_libssh_dir/include/libssh/libssh_version.h])
++ if test "x$accept_ssh_version" = "xno"; then
++ LIBSSH_ACCEPT_VERSION([$_libssh_dir/include/libssh/libssh.h])
++ fi
+ else #if test -f $_libssh_dir/include/libssh/libssh.h; then
+ found_ssh="no"
+ AC_MSG_RESULT(no)
diff --git a/zabbix52-server/patches/patch-src_libs_zbxsysinfo_netbsd_net.c b/zabbix52-server/patches/patch-src_libs_zbxsysinfo_netbsd_net.c
new file mode 100644
index 0000000000..abacb94a67
--- /dev/null
+++ b/zabbix52-server/patches/patch-src_libs_zbxsysinfo_netbsd_net.c
@@ -0,0 +1,203 @@
+$NetBSD: patch-src_libs_zbxsysinfo_netbsd_net.c,v 1.1 2020/11/03 22:44:43 otis Exp $
+
+Rework interface statistics code from using kvm to using sysctl interface.
+
+--- src/libs/zbxsysinfo/netbsd/net.c.orig 2020-08-24 09:42:55.000000000 +0000
++++ src/libs/zbxsysinfo/netbsd/net.c
+@@ -22,6 +22,9 @@
+ #include "zbxjson.h"
+ #include "log.h"
+
++#include <net/route.h>
++#include <net/if_dl.h>
++
+ static struct nlist kernel_symbols[] =
+ {
+ {"_ifnet", N_UNDF, 0, 0, 0},
+@@ -31,43 +34,91 @@ static struct nlist kernel_symbols[] =
+
+ #define IFNET_ID 0
+
++static void
++get_rtaddrs(int addrs, struct sockaddr *sa, struct sockaddr **rti_info)
++{
++ int i;
++
++ for (i = 0; i < RTAX_MAX; i++) {
++ if (addrs & (1 << i)) {
++ rti_info[i] = sa;
++ sa = (struct sockaddr *)((char *)(sa) +
++ RT_ROUNDUP(sa->sa_len));
++ } else
++ rti_info[i] = NULL;
++ }
++}
++
++
+ static int get_ifdata(const char *if_name,
+ zbx_uint64_t *ibytes, zbx_uint64_t *ipackets, zbx_uint64_t *ierrors, zbx_uint64_t *idropped,
+ zbx_uint64_t *obytes, zbx_uint64_t *opackets, zbx_uint64_t *oerrors,
+ zbx_uint64_t *tbytes, zbx_uint64_t *tpackets, zbx_uint64_t *terrors,
+ zbx_uint64_t *icollisions, char **error)
+ {
+- struct ifnet_head head;
+- struct ifnet *ifp;
+- struct ifnet v;
+-
+- kvm_t *kp;
+- int len = 0;
+- int ret = SYSINFO_RET_FAIL;
++ struct if_msghdr *ifm;
++ int mib[6] = { CTL_NET, AF_ROUTE, 0, 0, NET_RT_IFLIST, 0 };
++ char *buf = NULL;
++ char *lim, *next;
++ struct rt_msghdr *rtm;
++ struct if_data *ifd = NULL;
++ struct sockaddr *sa, *rti_info[RTAX_MAX];
++ struct sockaddr_dl *sdl;
++
++ size_t len = 0;
++ size_t olen = 0;
++ int ret = SYSINFO_RET_FAIL;
++
++ static char name[IFNAMSIZ];
+
+ if (NULL == if_name || '\0' == *if_name)
+ {
+ *error = zbx_strdup(NULL, "Network interface name cannot be empty.");
+- return FAIL;
++ ret = FAIL;
++ goto out;
+ }
+
+- if (NULL == (kp = kvm_open(NULL, NULL, NULL, O_RDONLY, NULL))) /* requires root privileges */
+- {
+- *error = zbx_strdup(NULL, "Cannot obtain a descriptor to access kernel virtual memory.");
+- return FAIL;
+- }
+-
+- if (N_UNDF == kernel_symbols[IFNET_ID].n_type)
+- if (0 != kvm_nlist(kp, &kernel_symbols[0]))
+- kernel_symbols[IFNET_ID].n_type = N_UNDF;
+-
+- if (N_UNDF != kernel_symbols[IFNET_ID].n_type)
+- {
+- len = sizeof(struct ifnet_head);
+-
+- if (kvm_read(kp, kernel_symbols[IFNET_ID].n_value, &head, len) >= len)
+- {
+- len = sizeof(struct ifnet);
++ if (sysctl(mib, 6, NULL, &len, NULL, 0) == -1) {
++ *error = zbx_strdup(NULL, "Failed to read network interfaces data");
++ ret = FAIL;
++ goto out;
++ }
++
++ if (len > olen) {
++ free(buf);
++ if ((buf = zbx_malloc(NULL, len)) == NULL) {
++ *error = zbx_strdup(NULL, "Failed to allocate buffer for network interfaces data");
++ ret = FAIL;
++ goto out;
++ }
++ olen = len;
++ }
++ if (sysctl(mib, 6, buf, &len, NULL, 0) == -1) {
++ *error = zbx_strdup(NULL, "Failed to allocate buffer for network interfaces data");
++ ret = FAIL;
++ goto out;
++ }
++
++ lim = buf + len;
++ for (next = buf; next < lim; next += rtm->rtm_msglen) {
++ rtm = (struct rt_msghdr *)next;
++ if ((rtm->rtm_version == RTM_VERSION) &&
++ (rtm->rtm_type == RTM_IFINFO)) {
++ ifm = (struct if_msghdr *)next;
++ ifd = &ifm->ifm_data;
++
++ sa = (struct sockaddr *)(ifm + 1);
++ get_rtaddrs(ifm->ifm_addrs, sa, rti_info);
++
++ sdl = (struct sockaddr_dl *)rti_info[RTAX_IFP];
++ if (sdl == NULL || sdl->sdl_family != AF_LINK) {
++ continue;
++ }
++ bzero(name, sizeof(name));
++ if (sdl->sdl_nlen >= IFNAMSIZ)
++ memcpy(name, sdl->sdl_data, IFNAMSIZ - 1);
++ else if (sdl->sdl_nlen > 0)
++ memcpy(name, sdl->sdl_data, sdl->sdl_nlen);
+
+ /* if_ibytes; total number of octets received */
+ /* if_ipackets; packets received on interface */
+@@ -101,42 +152,38 @@ static int get_ifdata(const char *if_nam
+ if (icollisions)
+ *icollisions = 0;
+
+- for (ifp = head.tqh_first; ifp; ifp = v.if_list.tqe_next)
++ if (0 == strcmp(if_name, name))
+ {
+- if (kvm_read(kp, (u_long)ifp, &v, len) < len)
+- break;
+-
+- if (0 == strcmp(if_name, v.if_xname))
+- {
+- if (ibytes)
+- *ibytes += v.if_ibytes;
+- if (ipackets)
+- *ipackets += v.if_ipackets;
+- if (ierrors)
+- *ierrors += v.if_ierrors;
+- if (idropped)
+- *idropped += v.if_iqdrops;
+- if (obytes)
+- *obytes += v.if_obytes;
+- if (opackets)
+- *opackets += v.if_opackets;
+- if (oerrors)
+- *oerrors += v.if_oerrors;
+- if (tbytes)
+- *tbytes += v.if_ibytes + v.if_obytes;
+- if (tpackets)
+- *tpackets += v.if_ipackets + v.if_opackets;
+- if (terrors)
+- *terrors += v.if_ierrors + v.if_oerrors;
+- if (icollisions)
+- *icollisions += v.if_collisions;
+- ret = SYSINFO_RET_OK;
+- }
++ if (ibytes)
++ *ibytes += ifd->ifi_ibytes;
++ if (ipackets)
++ *ipackets += ifd->ifi_ipackets;
++ if (ierrors)
++ *ierrors += ifd->ifi_ierrors;
++ if (idropped)
++ *idropped += ifd->ifi_iqdrops;
++ if (obytes)
++ *obytes += ifd->ifi_obytes;
++ if (opackets)
++ *opackets += ifd->ifi_opackets;
++ if (oerrors)
++ *oerrors += ifd->ifi_oerrors;
++ if (tbytes)
++ *tbytes += ifd->ifi_ibytes + ifd->ifi_obytes;
++ if (tpackets)
++ *tpackets += ifd->ifi_ipackets + ifd->ifi_opackets;
++ if (terrors)
++ *terrors += ifd->ifi_ierrors + ifd->ifi_oerrors;
++ if (icollisions)
++ *icollisions += ifd->ifi_collisions;
++ ret = SYSINFO_RET_OK;
++ goto out;
+ }
+ }
+ }
+
+- kvm_close(kp);
++out:
++ free(buf);
+
+ if (SYSINFO_RET_FAIL == ret)
+ {
diff --git a/zabbix52-server/patches/patch-src_zabbix__server_Makefile.am b/zabbix52-server/patches/patch-src_zabbix__server_Makefile.am
new file mode 100644
index 0000000000..080866a847
--- /dev/null
+++ b/zabbix52-server/patches/patch-src_zabbix__server_Makefile.am
@@ -0,0 +1,12 @@
+$NetBSD: patch-src_zabbix__server_Makefile.am,v 1.1 2020/11/03 22:44:43 otis Exp $
+
+Install config file into component's example directory.
+
+--- src/zabbix_server/Makefile.am.orig 2020-08-24 09:42:55.000000000 +0000
++++ src/zabbix_server/Makefile.am
+@@ -121,4 +121,4 @@ install-data-hook:
+ $(MKDIR_P) "$(DESTDIR)$(EXTERNAL_SCRIPTS_PATH)"
+ $(MKDIR_P) "$(DESTDIR)$(ALERT_SCRIPTS_PATH)"
+ $(MKDIR_P) "$(DESTDIR)$(LOAD_MODULE_PATH)"
+- test -f "$(DESTDIR)$(SERVER_CONFIG_FILE)" || cp "../../conf/zabbix_server.conf" "$(DESTDIR)$(SERVER_CONFIG_FILE)"
++ $(INSTALL_DATA) "../../conf/zabbix_server.conf" "$(DESTDIR)/${PREFIX}/share/examples/%%PKGBASE%%"
Home |
Main Index |
Thread Index |
Old Index