FreeBSD Bugzilla – Attachment 214691 Details for
Bug 246447
[NEW PORT] net-mgmt/zabbix5-*: Zabbix Ports (5.0.X)
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
zabbix 5.0 suite diff
net-mgmt_zabbix5.diff (text/plain), 136.02 KB, created by
Juraj Lutter
on 2020-05-20 12:39:49 UTC
(
hide
)
Description:
zabbix 5.0 suite diff
Filename:
MIME Type:
Creator:
Juraj Lutter
Created:
2020-05-20 12:39:49 UTC
Size:
136.02 KB
patch
obsolete
>diff --git a/net-mgmt/zabbix5-agent/Makefile b/net-mgmt/zabbix5-agent/Makefile >new file mode 100644 >index 000000000000..7c713010ce17 >--- /dev/null >+++ b/net-mgmt/zabbix5-agent/Makefile >@@ -0,0 +1,14 @@ >+# Created by: Juraj Lutter <juraj@lutter.sk> >+# $FreeBSD$ >+ >+PORTNAME= zabbix5 >+CATEGORIES= net-mgmt >+PKGNAMESUFFIX= -agent >+ >+MASTERDIR= ${.CURDIR}/../zabbix5-server >+PLIST= ${PKGDIR}/pkg-plist.agent >+ >+OPTIONS_DEFINE= CURL IPV6 >+OPTIONS_DEFAULT= CURL OPENSSL >+ >+.include "${MASTERDIR}/Makefile" >diff --git a/net-mgmt/zabbix5-agent2/Makefile b/net-mgmt/zabbix5-agent2/Makefile >new file mode 100644 >index 000000000000..0bcafad04ad6 >--- /dev/null >+++ b/net-mgmt/zabbix5-agent2/Makefile >@@ -0,0 +1,14 @@ >+# Created by: Juraj Lutter <juraj@lutter.sk> >+# $FreeBSD$ >+ >+PORTNAME= zabbix5 >+CATEGORIES= net-mgmt >+PKGNAMESUFFIX= -agent2 >+ >+MASTERDIR= ${.CURDIR}/../zabbix5-server >+PLIST= ${PKGDIR}/pkg-plist.agent2 >+ >+OPTIONS_DEFINE= CURL IPV6 >+OPTIONS_DEFAULT= CURL OPENSSL >+ >+.include "${MASTERDIR}/Makefile" >diff --git a/net-mgmt/zabbix5-frontend/Makefile b/net-mgmt/zabbix5-frontend/Makefile >new file mode 100644 >index 000000000000..21570482cf91 >--- /dev/null >+++ b/net-mgmt/zabbix5-frontend/Makefile >@@ -0,0 +1,34 @@ >+# Created by: Juraj Lutter <juraj@lutter.sk> >+# $FreeBSD$ >+ >+PORTNAME= zabbix5 >+CATEGORIES= net-mgmt >+PKGNAMESUFFIX= -frontend >+ >+MASTERDIR= ${.CURDIR}/../zabbix5-server >+ >+NO_BUILD= yes >+NO_ARCH= yes >+PATCHDIR= >+PLIST= ${PKGDIR}/pkg-plist.frontend >+ >+USE_PHP= bcmath ctype dom fileinfo filter gd gettext json ldap mbstring pcre \ >+ session simplexml snmp sockets xml xmlreader xmlwriter >+USES+= php:web >+ >+OPTIONS_DEFINE= MYSQLI PGSQL ORACLE >+OPTIONS_DEFAULT= MYSQLI >+MYSQLI_DESC= MySQLI backend >+ >+MYSQLI_USE= PHP=mysqli >+ >+PGSQL_USE= PHP=pgsql >+ >+ORACLE_CONFIGURE_WITH= oracle >+ >+do-install: >+ @${MKDIR} ${STAGEDIR}${WWWDIR} >+ (cd ${WRKSRC}/ui && \ >+ ${COPYTREE_SHARE} . ${STAGEDIR}${WWWDIR}) >+ >+.include "${MASTERDIR}/Makefile" >diff --git a/net-mgmt/zabbix5-java/Makefile b/net-mgmt/zabbix5-java/Makefile >new file mode 100644 >index 000000000000..3aa8f6381ab2 >--- /dev/null >+++ b/net-mgmt/zabbix5-java/Makefile >@@ -0,0 +1,14 @@ >+# $FreeBSD$ >+ >+PORTNAME= zabbix5 >+CATEGORIES= net-mgmt >+PKGNAMESUFFIX= -java >+ >+MASTERDIR= ${.CURDIR}/../zabbix5-server >+PLIST= ${PKGDIR}/pkg-plist.java >+ >+OPTIONS_DEFINE= IPV6 >+ >+USE_JAVA= yes >+ >+.include "${MASTERDIR}/Makefile" >diff --git a/net-mgmt/zabbix5-proxy/Makefile b/net-mgmt/zabbix5-proxy/Makefile >new file mode 100644 >index 000000000000..d36cc5409e45 >--- /dev/null >+++ b/net-mgmt/zabbix5-proxy/Makefile >@@ -0,0 +1,12 @@ >+# Created by: Juraj Lutter <juraj@lutter.sk> >+# $FreeBSD$ >+ >+PORTNAME= zabbix5 >+CATEGORIES= net-mgmt >+PKGNAMESUFFIX= -proxy >+ >+MASTERDIR= ${.CURDIR}/../zabbix5-server >+ >+OPTIONS_SINGLE_DB= MYSQL PGSQL SQLITE ORACLE >+ >+.include "${MASTERDIR}/Makefile" >diff --git a/net-mgmt/zabbix5-server/Makefile b/net-mgmt/zabbix5-server/Makefile >new file mode 100644 >index 000000000000..bc5f7fb96631 >--- /dev/null >+++ b/net-mgmt/zabbix5-server/Makefile >@@ -0,0 +1,235 @@ >+# Created by: Juraj Lutter <juraj@lutter.sk> >+# $FreeBSD$ >+ >+PORTNAME= zabbix5 >+PORTVERSION= 5.0.0 >+PORTREVISION?= 0 >+CATEGORIES= net-mgmt >+#MASTER_SITES= https://cdn.zabbix.com/zabbix/sources/stable/${PORTVERSION:C/\.[^\.]*$//}/ >+MASTER_SITES= https://cdn.zabbix.com/zabbix/sources/stable/${PORTVERSION:R}/ >+PKGNAMESUFFIX?= -server >+DISTNAME= zabbix-${PORTVERSION} >+ >+MAINTAINER= juraj@lutter.sk >+COMMENT= Enterprise-class open source distributed monitoring (${PKGNAMESUFFIX:S/^-//}) >+ >+LICENSE= GPLv2+ >+LICENSE_FILE= ${WRKSRC}/COPYING >+ >+LIB_DEPENDS= libpcre.so:devel/pcre >+ >+CONFLICTS= zabbix[0-46-9][0-9]${PKGNAMESUFFIX} \ >+ zabbix4[0-46-9]${PKGNAMESUFFIX} \ >+ zabbix[0-9]${PKGNAMESUFFIX} >+ >+ZABBIX_BUILD= ${PKGNAMESUFFIX:S/^-//} >+ >+USES= pkgconfig iconv >+.if ${ZABBIX_BUILD} == "agent2" >+USES+= go:no_targets >+.endif >+ >+.if ${ZABBIX_BUILD} != "frontend" # frontend only needs the version/distribution settings >+.if ${ZABBIX_BUILD} != "agent" && ${ZABBIX_BUILD} != "agent2" >+CONFIGURE_ARGS+= --with-libevent=${LOCALBASE} --cache-file=${WRKSRC}/config.cache >+LIB_DEPENDS+= libevent.so:devel/libevent >+USE_RC_SUBR= zabbix_${ZABBIX_BUILD} >+.elif ${ZABBIX_BUILD} == "agent" >+USE_RC_SUBR= zabbix_${ZABBIX_BUILD}d >+.else >+USE_RC_SUBR= zabbix_${ZABBIX_BUILD} >+.endif >+ >+USERS= zabbix >+GROUPS= zabbix >+ >+.if ${ZABBIX_BUILD} != "proxy" >+PLIST_SUB= PROXY="@comment " >+.else >+PLIST_SUB= PROXY="" >+.endif >+ >+.if ${ZABBIX_BUILD} == "server" >+PLIST_SUB+= SERVER="" >+.else >+PLIST_SUB+= SERVER="@comment " >+.endif >+ >+PLIST_SUB+= ZABBIX_BUILD=${ZABBIX_BUILD} PORTVERSION=${PORTVERSION} >+SUB_LIST= ZABBIX_BUILD=${ZABBIX_BUILD} >+ >+MAKE_ARGS+= ARCH=freebsd >+ >+GNU_CONFIGURE= yes >+CONFIGURE_ARGS+= --enable-${ZABBIX_BUILD} \ >+ --sysconfdir=${ETCDIR} \ >+ --datadir=${ETCDIR} \ >+ --with-iconv=${ICONV_PREFIX} >+ >+.if ${ZABBIX_BUILD} != "agent" && ${ZABBIX_BUILD} != "agent2" && \ >+ ${ZABBIX_BUILD} != "java" >+LIB_DEPENDS+= libnetsnmp.so:net-mgmt/net-snmp >+ >+CPPFLAGS+= -I${LOCALBASE}/include >+ >+SUB_FILES= pkg-message >+ >+CONFIGURE_ARGS+= --with-net-snmp >+ >+OPTIONS_DEFINE= IPV6 FPING CURL LDAP IPMI SSH NMAP LIBXML2 UNIXODBC >+ >+OPTIONS_DEFAULT= FPING CURL UNIXODBC MYSQL OPENSSL >+OPTIONS_SUB= yes >+ >+FPING_DESC= Build/install fping for ping checks >+IPMI_DESC= Support for IPMI checks >+LDAP_DESC= Support for LDAP server checks >+NMAP_DESC= Build/install nmap for o/s detection >+SSH_DESC= Support for SSH-based checks >+UNIXODBC_DESC= Support for database checks via ODBC >+LIBXML2_DESC= Support for libxml2 (required by monitoring VMware) >+ >+OPTIONS_SINGLE= DB SSL >+OPTIONS_SINGLE_DB?= MYSQL PGSQL ORACLE >+OPTIONS_SINGLE_SSL= OPENSSL GNUTLS >+ >+MYSQL_CONFIGURE_WITH= mysql >+MYSQL_USES+= compiler:c11 mysql >+ >+PGSQL_CONFIGURE_WITH= postgresql >+PGSQL_USES+= pgsql >+ >+SQLITE_CONFIGURE_WITH= sqlite3 >+SQLITE_USES+= sqlite:3 >+ >+ORACLE_CONFIGURE_WITH= oracle >+ >+LDAP_CONFIGURE_WITH= ldap >+LDAP_USE= OPENLDAP=yes >+ >+IPMI_CONFIGURE_WITH= openipmi >+IPMI_LIB_DEPENDS= libOpenIPMI.so:sysutils/openipmi >+ >+FPING_RUN_DEPENDS= fping:net/fping >+ >+SSH_CONFIGURE_WITH= ssh2 >+SSH_LIB_DEPENDS= libssh2.so:security/libssh2 >+ >+UNIXODBC_CONFIGURE_WITH=unixodbc >+UNIXODBC_LIB_DEPENDS= libodbc.so:databases/unixODBC >+.elif ${ZABBIX_BUILD} == "agent" || ${ZABBIX_BUILD} == "agent2" >+OPTIONS_SINGLE= SSL >+OPTIONS_SINGLE_SSL= OPENSSL GNUTLS >+.endif # if ${ZABBIX_BUILD} != "agent" && ${ZABBIX_BUILD} != "java" >+ >+CURL_DESC= Support for web monitoring >+CURL_CONFIGURE_WITH= libcurl >+CURL_LIB_DEPENDS= libcurl.so:ftp/curl >+ >+IPV6_CONFIGURE_ENABLE= ipv6 >+ >+NMAP_RUN_DEPENDS= nmap:security/nmap \ >+ sudo:security/sudo >+ >+LIBXML2_CONFIGURE_WITH= libxml2=${LOCALBASE} >+LIBXML2_LIB_DEPENDS= libxml2.so:textproc/libxml2 >+ >+OPENSSL_CONFIGURE_WITH= openssl >+OPENSSL_USES= ssl >+OPENSSL_VARS= BROKEN_SSL="libressl libressl-devel" \ >+ BROKEN_SSL_REASON="PSK is not provided by LibreSSL" >+ >+GNUTLS_CONFIGURE_WITH= gnutls >+GNUTLS_LIB_DEPENDS= libgnutls.so:security/gnutls >+ >+.include <bsd.port.pre.mk> >+ >+.if ${ZABBIX_BUILD} == "agent2" >+MAKE_ARGS+= CGO_CFLAGS="-I${LOCALBASE}/include" >+EXTRA_PATCHES= ${PATCHDIR}/agent2-patches >+.endif >+ >+post-patch: >+ @${GREP} -rl "/etc/zabbix" ${WRKSRC} \ >+ | ${XARGS} ${REINPLACE_CMD} -e 's#/usr/local/etc#${ETCDIR}#g' >+ >+ @${REINPLACE_CMD} -e 's#/usr/sbin/fping#${LOCALBASE}/sbin/fping#g' \ >+ ${WRKSRC}/conf/zabbix_*.conf \ >+ ${WRKSRC}/src/zabbix_proxy/proxy.c \ >+ ${WRKSRC}/src/zabbix_server/server.c >+ >+.if ${ZABBIX_BUILD} == "server" >+ @${REINPLACE_CMD} -e 's#/tmp/zabbix_server.pid#/var/run/zabbix/zabbix_server.pid#g' \ >+ ${WRKSRC}/conf/zabbix_server.conf \ >+ ${WRKSRC}/src/zabbix_server/server.c >+.endif >+ >+.if ${ZABBIX_BUILD} == "proxy" >+ @${REINPLACE_CMD} -e 's#/tmp/zabbix_proxy.pid#/var/run/zabbix/zabbix_proxy.pid#g' \ >+ ${WRKSRC}/conf/zabbix_proxy.conf \ >+ ${WRKSRC}/src/zabbix_proxy/proxy.c >+.endif >+ >+.if ${ZABBIX_BUILD} == "agent" >+ @${REINPLACE_CMD} -e 's#/tmp/zabbix_agentd.pid#/var/run/zabbix/zabbix_agentd.pid#g' \ >+ ${WRKSRC}/conf/zabbix_agentd.conf \ >+ ${WRKSRC}/src/zabbix_agent/zabbix_agentd.c >+.endif >+ >+.if ${ZABBIX_BUILD} == "agent2" >+ @${REINPLACE_CMD} -e 's#/tmp/zabbix_agent2.pid#/var/run/zabbix/zabbix_agent2.pid#g' \ >+ ${WRKSRC}/src/go/conf/zabbix_agent2.conf \ >+ ${WRKSRC}/src/go/pkg/pidfile/pidfile_nix.go >+.endif >+ >+.if ${ZABBIX_BUILD} == "java" >+ @${REINPLACE_CMD} -e 's#/tmp/zabbix_java.pid#/var/run/zabbix/zabbix_java.pid#g' \ >+ ${WRKSRC}/src/zabbix_java/settings.sh >+.endif >+ >+.if ${ZABBIX_BUILD} != "agent" && ${ZABBIX_BUILD} != "agent2" >+. for d in mysql oracle postgresql sqlite3 >+ @${REINPLACE_CMD} \ >+ -e 's|/usr/bin/traceroute|/usr/sbin/traceroute|g' \ >+ -e 's|sudo /usr/bin/nmap|sudo ${LOCALBASE}/bin/nmap|g' \ >+ ${WRKSRC}/database/${d}/data.sql >+. endfor >+.endif >+ @${FIND} ${WRKSRC} -type f \( -name '*.bak' -or -name '*.orig' \) \ >+ -exec ${RM} {} + >+ >+pre-configure: >+ @echo "ac_cv_env_PKG_CONFIG_set=${LOCALBASE}/bin/pkgconf" > ${WRKSRC}/config.cache >+ >+post-install: >+.if ${ZABBIX_BUILD} == "java" >+ ${MV} ${STAGEDIR}${PREFIX}/sbin/zabbix_java/settings.sh \ >+ ${STAGEDIR}${PREFIX}/sbin/zabbix_java/settings.sh.sample >+ @${MKDIR} ${STAGEDIR}/var/run/zabbix >+.endif >+ >+.if ${ZABBIX_BUILD} != "agent" && ${ZABBIX_BUILD} != "java" >+ ${MKDIR} ${STAGEDIR}${DATADIR}/${ZABBIX_BUILD:Q}/database >+ @${RM} ${WRKSRC}/database/*/Makefile* >+ (cd ${WRKSRC}/database/ && \ >+ ${COPYTREE_SHARE} "mysql oracle postgresql sqlite3" \ >+ ${STAGEDIR}${DATADIR}/${ZABBIX_BUILD:Q}/database/) >+ >+ ${MV} ${STAGEDIR}${ETCDIR}/zabbix_${ZABBIX_BUILD}.conf \ >+ ${STAGEDIR}${ETCDIR}/zabbix_${ZABBIX_BUILD}.conf.sample >+.endif >+ >+.if ${ZABBIX_BUILD} == "agent" >+ ${MV} ${STAGEDIR}${ETCDIR}/zabbix_${ZABBIX_BUILD}d.conf \ >+ ${STAGEDIR}${ETCDIR}/zabbix_${ZABBIX_BUILD}d.conf.sample >+.endif >+.if ${ZABBIX_BUILD} == "agent2" >+ ${MV} ${STAGEDIR}${ETCDIR}/zabbix_agentd.conf \ >+ ${STAGEDIR}${ETCDIR}/zabbix_agentd.conf.sample >+.endif >+ >+.else # frontend >+.include <bsd.port.pre.mk> >+.endif >+ >+.include <bsd.port.post.mk> >diff --git a/net-mgmt/zabbix5-server/distinfo b/net-mgmt/zabbix5-server/distinfo >new file mode 100644 >index 000000000000..68ec03d24d26 >--- /dev/null >+++ b/net-mgmt/zabbix5-server/distinfo >@@ -0,0 +1,3 @@ >+TIMESTAMP = 1589832899 >+SHA256 (zabbix-5.0.0.tar.gz) = 5a1762fd2bb7275d9a28c6dfa9a6d46d84be749f9bf50a36eb8fcd20fb8bb6eb >+SIZE (zabbix-5.0.0.tar.gz) = 18519888 >diff --git a/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_cmd_zabbix__agent2_testrun__freebsd.go b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_cmd_zabbix__agent2_testrun__freebsd.go >new file mode 100644 >index 000000000000..a238cedf46b2 >--- /dev/null >+++ b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_cmd_zabbix__agent2_testrun__freebsd.go >@@ -0,0 +1,105 @@ >+--- src/go/cmd/zabbix_agent2/testrun_freebsd.go.orig 2020-05-19 19:29:14 UTC >++++ src/go/cmd/zabbix_agent2/testrun_freebsd.go >+@@ -0,0 +1,102 @@ >++/* >++** Zabbix >++** Copyright (C) 2001-2020 Zabbix SIA >++** >++** This program is free software; you can redistribute it and/or modify >++** it under the terms of the GNU General Public License as published by >++** the Free Software Foundation; either version 2 of the License, or >++** (at your option) any later version. >++** >++** This program is distributed in the hope that it will be useful, >++** but WITHOUT ANY WARRANTY; without even the implied warranty of >++** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >++** GNU General Public License for more details. >++** >++** You should have received a copy of the GNU General Public License >++** along with this program; if not, write to the Free Software >++** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. >++**/ >++ >++package main >++ >++import "zabbix.com/internal/agent/scheduler" >++ >++func checkMetrics(s scheduler.Scheduler) { >++ metrics := []string{ >++ `agent.hostname`, >++ `agent.ping`, >++ `agent.version`, >++ `system.localtime[utc]`, >++ `system.run[echo test]`, >++ `web.page.get[localhost,,80]`, >++ `web.page.perf[localhost,,80]`, >++ `web.page.regexp[localhost,,80,OK]`, >++ `vfs.file.size[/etc/passwd]`, >++ `vfs.file.time[/etc/passwd,modify]`, >++ `vfs.file.exists[/etc/passwd]`, >++ `vfs.file.contents[/etc/passwd]`, >++ `vfs.file.regexp[/etc/passwd,root]`, >++ `vfs.file.regmatch[/etc/passwd,root]`, >++ `vfs.file.md5sum[/etc/passwd]`, >++ `vfs.file.cksum[/etc/passwd]`, >++ `vfs.dir.size[/var/log]`, >++ `vfs.dir.count[/var/log]`, >++ `net.dns[,zabbix.com]`, >++ `net.dns.record[,zabbix.com]`, >++ `net.tcp.dns[,zabbix.com]`, >++ `net.tcp.dns.query[,zabbix.com]`, >++ `net.tcp.port[,80]`, >++ `system.users.num`, >++ `log[logfile]`, >++ `log.count[logfile]`, >++ `logrt[logfile]`, >++ `logrt.count[logfile]`, >++ `zabbix.stats[127.0.0.1,10051]`, >++ `kernel.maxfiles`, >++ `kernel.maxproc`, >++ `vfs.fs.size[/,free]`, >++ `vfs.fs.inode[/,free]`, >++ `vfs.fs.discovery`, >++ `vfs.dev.write[sda,operations]`, >++ `net.tcp.listen[80]`, >++ `net.udp.listen[68]`, >++ `net.if.in[lo,bytes]`, >++ `net.if.out[lo,bytes]`, >++ `net.if.total[lo,bytes]`, >++ `net.if.collisions[lo]`, >++ `net.if.discovery`, >++ `vm.memory.size[total]`, >++ `proc.cpu.util[inetd]`, >++ `proc.num[inetd]`, >++ `proc.mem[inetd]`, >++ `system.cpu.switches`, >++ `system.cpu.intr`, >++ `system.cpu.util[all,user,avg1]`, >++ `system.cpu.load[all,avg1]`, >++ `system.cpu.num[online]`, >++ `system.cpu.discovery`, >++ `system.uname`, >++ `system.hw.chassis`, >++ `system.hw.cpu`, >++ `system.hw.devices`, >++ `system.hw.macaddr`, >++ `system.sw.arch`, >++ `system.sw.os`, >++ `system.sw.packages`, >++ `system.swap.size[all,free]`, >++ `system.swap.in[all]`, >++ `system.swap.out[all]`, >++ `system.uptime`, >++ `system.boottime`, >++ `sensor[w83781d-i2c-0-2d,temp1]`, >++ `net.tcp.service[ssh,127.0.0.1,22]`, >++ `net.tcp.service.perf[ssh,127.0.0.1,22]`, >++ `net.udp.service[ntp,127.0.0.1,123]`, >++ `net.udp.service.perf[ntp,127.0.0.1,123]`, >++ `system.hostname`, >++ } >++ >++ for _, metric := range metrics { >++ checkMetric(s, metric) >++ } >++} >diff --git a/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_pkg_zbxlib_checks__freebsd.go b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_pkg_zbxlib_checks__freebsd.go >new file mode 100644 >index 000000000000..1b78129dc8db >--- /dev/null >+++ b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_pkg_zbxlib_checks__freebsd.go >@@ -0,0 +1,103 @@ >+--- src/go/pkg/zbxlib/checks_freebsd.go.orig 2020-05-19 19:28:35 UTC >++++ src/go/pkg/zbxlib/checks_freebsd.go >+@@ -0,0 +1,100 @@ >++// +build freebsd >++ >++/* >++** Zabbix >++** Copyright (C) 2001-2020 Zabbix SIA >++** >++** This program is free software; you can redistribute it and/or modify >++** it under the terms of the GNU General Public License as published by >++** the Free Software Foundation; either version 2 of the License, or >++** (at your option) any later version. >++** >++** This program is distributed in the hope that it will be useful, >++** but WITHOUT ANY WARRANTY; without even the implied warranty of >++** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >++** GNU General Public License for more details. >++** >++** You should have received a copy of the GNU General Public License >++** along with this program; if not, write to the Free Software >++** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. >++**/ >++ >++package zbxlib >++ >++/* cspell:disable */ >++ >++/* >++#cgo CFLAGS: -I${SRCDIR}/../../../../../include >++ >++#include "common.h" >++#include "sysinfo.h" >++ >++int SYSTEM_LOCALTIME(AGENT_REQUEST *request, AGENT_RESULT *result); >++int NET_DNS(AGENT_REQUEST *request, AGENT_RESULT *result); >++int NET_DNS_RECORD(AGENT_REQUEST *request, AGENT_RESULT *result); >++int SYSTEM_BOOTTIME(AGENT_REQUEST *request, AGENT_RESULT *result); >++int NET_TCP_LISTEN(AGENT_REQUEST *request, AGENT_RESULT *result); >++int NET_TCP_PORT(AGENT_REQUEST *request, AGENT_RESULT *result); >++int CHECK_SERVICE(AGENT_REQUEST *request, AGENT_RESULT *result); >++int CHECK_SERVICE_PERF(AGENT_REQUEST *request, AGENT_RESULT *result); >++int NET_UDP_LISTEN(AGENT_REQUEST *request, AGENT_RESULT *result); >++int SYSTEM_CPU_LOAD(AGENT_REQUEST *request, AGENT_RESULT *result); >++int SYSTEM_USERS_NUM(AGENT_REQUEST *request, AGENT_RESULT *result); >++int VFS_DIR_COUNT(AGENT_REQUEST *request, AGENT_RESULT *result); >++int VFS_DIR_SIZE(AGENT_REQUEST *request, AGENT_RESULT *result); >++int VFS_FS_DISCOVERY(AGENT_REQUEST *request, AGENT_RESULT *result); >++int VFS_FS_INODE(AGENT_REQUEST *request, AGENT_RESULT *result); >++int VFS_FS_SIZE(AGENT_REQUEST *request, AGENT_RESULT *result); >++int VFS_FS_GET(AGENT_REQUEST *request, AGENT_RESULT *result); >++int VM_MEMORY_SIZE(AGENT_REQUEST *request, AGENT_RESULT *result); >++ >++*/ >++import "C" >++ >++import ( >++ "unsafe" >++) >++ >++func resolveMetric(key string) (cfunc unsafe.Pointer) { >++ switch key { >++ case "system.localtime": >++ return unsafe.Pointer(C.SYSTEM_LOCALTIME) >++ case "net.dns": >++ return unsafe.Pointer(C.NET_DNS) >++ case "net.dns.record": >++ return unsafe.Pointer(C.NET_DNS_RECORD) >++ case "system.boottime": >++ return unsafe.Pointer(C.SYSTEM_BOOTTIME) >++ case "net.tcp.listen": >++ return unsafe.Pointer(C.NET_TCP_LISTEN) >++ case "net.tcp.port": >++ return unsafe.Pointer(C.NET_TCP_PORT) >++ case "net.tcp.service", "net.udp.service": >++ return unsafe.Pointer(C.CHECK_SERVICE) >++ case "net.tcp.service.perf", "net.udp.service.perf": >++ return unsafe.Pointer(C.CHECK_SERVICE_PERF) >++ case "net.udp.listen": >++ return unsafe.Pointer(C.NET_UDP_LISTEN) >++ case "system.cpu.load": >++ return unsafe.Pointer(C.SYSTEM_CPU_LOAD) >++ case "system.users.num": >++ return unsafe.Pointer(C.SYSTEM_USERS_NUM) >++ case "vfs.dir.count": >++ return unsafe.Pointer(C.VFS_DIR_COUNT) >++ case "vfs.dir.size": >++ return unsafe.Pointer(C.VFS_DIR_SIZE) >++ case "vfs.fs.discovery": >++ return unsafe.Pointer(C.VFS_FS_DISCOVERY) >++ case "vfs.fs.inode": >++ return unsafe.Pointer(C.VFS_FS_INODE) >++ case "vfs.fs.size": >++ return unsafe.Pointer(C.VFS_FS_SIZE) >++ case "vfs.fs.get": >++ return unsafe.Pointer(C.VFS_FS_GET) >++ case "vm.memory.size": >++ return unsafe.Pointer(C.VM_MEMORY_SIZE) >++ >++ default: >++ return >++ } >++} >diff --git a/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_pkg_zbxlib_globals__freebsd.go b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_pkg_zbxlib_globals__freebsd.go >new file mode 100644 >index 000000000000..cdd21470728c >--- /dev/null >+++ b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_pkg_zbxlib_globals__freebsd.go >@@ -0,0 +1,125 @@ >+--- src/go/pkg/zbxlib/globals_freebsd.go.orig 2020-05-19 19:28:39 UTC >++++ src/go/pkg/zbxlib/globals_freebsd.go >+@@ -0,0 +1,122 @@ >++/* >++** Zabbix >++** Copyright (C) 2001-2020 Zabbix SIA >++** >++** This program is free software; you can redistribute it and/or modify >++** it under the terms of the GNU General Public License as published by >++** the Free Software Foundation; either version 2 of the License, or >++** (at your option) any later version. >++** >++** This program is distributed in the hope that it will be useful, >++** but WITHOUT ANY WARRANTY; without even the implied warranty of >++** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >++** GNU General Public License for more details. >++** >++** You should have received a copy of the GNU General Public License >++** along with this program; if not, write to the Free Software >++** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. >++**/ >++ >++package zbxlib >++ >++/* >++#cgo LDFLAGS: ${SRCDIR}/../../../zabbix_agent/logfiles/libzbxlogfiles.a >++#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxcomms/libzbxcomms.a >++#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxcommon/libzbxcommon.a >++#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxcrypto/libzbxcrypto.a >++#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxsys/libzbxsys.a >++#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxnix/libzbxnix.a >++#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxconf/libzbxconf.a >++#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxhttp/libzbxhttp.a >++#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxcompress/libzbxcompress.a >++#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxregexp/libzbxregexp.a >++#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxsysinfo/libzbxagentsysinfo.a >++#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxsysinfo/common/libcommonsysinfo.a >++#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxsysinfo/simple/libsimplesysinfo.a >++#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxexec/libzbxexec.a >++#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxalgo/libzbxalgo.a >++#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxjson/libzbxjson.a >++#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxsysinfo/freebsd/libspechostnamesysinfo.a >++#cgo LDFLAGS: ${SRCDIR}/../../../libs/zbxsysinfo/freebsd/libspecsysinfo.a >++#cgo LDFLAGS: -lz -lpcre >++ >++#include "common.h" >++#include "sysinfo.h" >++#include "comms.h" >++#include "log.h" >++#include "../src/zabbix_agent/metrics.h" >++#include "../src/zabbix_agent/logfiles/logfiles.h" >++ >++typedef ZBX_ACTIVE_METRIC* ZBX_ACTIVE_METRIC_LP; >++typedef zbx_vector_ptr_t * zbx_vector_ptr_lp_t; >++ >++int CONFIG_MAX_LINES_PER_SECOND = 20; >++char *CONFIG_HOSTNAME = NULL; >++int CONFIG_UNSAFE_USER_PARAMETERS= 0; >++int CONFIG_ENABLE_REMOTE_COMMANDS= 0; >++int CONFIG_LOG_REMOTE_COMMANDS= 0; >++char *CONFIG_SOURCE_IP= NULL; >++ >++unsigned int configured_tls_connect_mode = ZBX_TCP_SEC_UNENCRYPTED; >++unsigned int configured_tls_accept_modes = ZBX_TCP_SEC_UNENCRYPTED; >++ >++char *CONFIG_TLS_CONNECT= NULL; >++char *CONFIG_TLS_ACCEPT = NULL; >++char *CONFIG_TLS_CA_FILE = NULL; >++char *CONFIG_TLS_CRL_FILE = NULL; >++char *CONFIG_TLS_SERVER_CERT_ISSUER = NULL; >++char *CONFIG_TLS_SERVER_CERT_SUBJECT = NULL; >++char *CONFIG_TLS_CERT_FILE = NULL; >++char *CONFIG_TLS_KEY_FILE = NULL; >++char *CONFIG_TLS_PSK_IDENTITY = NULL; >++char *CONFIG_TLS_PSK_FILE = NULL; >++ >++char *CONFIG_TLS_CIPHER_CERT13 = NULL; >++char *CONFIG_TLS_CIPHER_CERT = NULL; >++char *CONFIG_TLS_CIPHER_PSK13 = NULL; >++char *CONFIG_TLS_CIPHER_PSK = NULL; >++char *CONFIG_TLS_CIPHER_ALL13 = NULL; >++char *CONFIG_TLS_CIPHER_ALL = NULL; >++char *CONFIG_TLS_CIPHER_CMD13 = NULL; >++char *CONFIG_TLS_CIPHER_CMD = NULL; >++ >++int CONFIG_PASSIVE_FORKS = 0; >++int CONFIG_ACTIVE_FORKS = 0; >++ >++const char *progname = NULL; >++const char title_message[] = "agent"; >++const char syslog_app_name[] = "agent"; >++const char *usage_message[] = {}; >++unsigned char program_type = 0x80; >++const char *help_message[] = {}; >++ >++ZBX_METRIC parameters_agent[] = {NULL}; >++ZBX_METRIC parameters_specific[] = {NULL}; >++ >++void zbx_on_exit(int ret) >++{ >++} >++ >++int zbx_procstat_collector_started(void) >++{ >++ return FAIL; >++} >++ >++int zbx_procstat_get_util(const char *procname, const char *username, const char *cmdline, zbx_uint64_t flags, >++ int period, int type, double *value, char **errmsg) >++{ >++ return FAIL; >++} >++ >++int get_cpustat(AGENT_RESULT *result, int cpu_num, int state, int mode) >++{ >++ return SYSINFO_RET_FAIL; >++} >++ >++char *strerror_from_system(unsigned long error) >++{ >++ return zbx_strerror(errno); >++} >++ >++*/ >++import "C" >diff --git a/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_net_netif_netif__freebsd.go b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_net_netif_netif__freebsd.go >new file mode 100644 >index 000000000000..3d7db52f9a1d >--- /dev/null >+++ b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_net_netif_netif__freebsd.go >@@ -0,0 +1,207 @@ >+--- src/go/plugins/net/netif/netif_freebsd.go.orig 2020-05-20 09:43:23 UTC >++++ src/go/plugins/net/netif/netif_freebsd.go >+@@ -0,0 +1,204 @@ >++// +build: freebsd >++/* >++** Zabbix >++** Copyright (C) 2001-2020 Zabbix SIA >++** >++** This program is free software; you can redistribute it and/or modify >++** it under the terms of the GNU General Public License as published by >++** the Free Software Foundation; either version 2 of the License, or >++** (at your option) any later version. >++** >++** This program is distributed in the hope that it will be useful, >++** but WITHOUT ANY WARRANTY; without even the implied warranty of >++** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >++** GNU General Public License for more details. >++** >++** You should have received a copy of the GNU General Public License >++** along with this program; if not, write to the Free Software >++** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. >++**/ >++ >++package netif >++ >++import ( >++ "bufio" >++ "encoding/json" >++ "errors" >++ "fmt" >++ "strconv" >++ "strings" >++ >++ "zabbix.com/pkg/plugin" >++ "zabbix.com/pkg/std" >++) >++ >++const ( >++ errorCannotFindIf = "Cannot find information for this network interface in /compat/linux/proc/net/dev." >++ errorCannotOpenNetDev = "Cannot open /compat/linux/proc/net/dev: %s" >++) >++ >++var stdOs std.Os >++ >++var mapNetStatIn = map[string]uint{ >++ "bytes": 0, >++ "packets": 1, >++ "errors": 2, >++ "dropped": 3, >++ "overruns": 4, >++ "frame": 5, >++ "compressed": 6, >++ "multicast": 7, >++} >++ >++var mapNetStatOut = map[string]uint{ >++ "bytes": 8, >++ "packets": 9, >++ "errors": 10, >++ "dropped": 11, >++ "overruns": 12, >++ "collisions": 13, >++ "carrier": 14, >++ "compressed": 15, >++} >++ >++func (p *Plugin) addStatNum(statName string, mapNetStat map[string]uint, statNums *[]uint) error { >++ if statNum, ok := mapNetStat[statName]; ok { >++ *statNums = append(*statNums, statNum) >++ } else { >++ return errors.New(errorInvalidSecondParam) >++ } >++ return nil >++} >++ >++func (p *Plugin) getNetStats(networkIf string, statName string, dir dirFlag) (result uint64, err error) { >++ var statNums []uint >++ >++ if dir&dirIn != 0 { >++ if err = p.addStatNum(statName, mapNetStatIn, &statNums); err != nil { >++ return >++ } >++ } >++ >++ if dir&dirOut != 0 { >++ if err = p.addStatNum(statName, mapNetStatOut, &statNums); err != nil { >++ return >++ } >++ } >++ >++ file, err := stdOs.Open("/compat/linux/proc/net/dev") >++ if err != nil { >++ return 0, fmt.Errorf(errorCannotOpenNetDev, err) >++ } >++ defer file.Close() >++ >++ var total uint64 >++loop: >++ for sLines := bufio.NewScanner(file); sLines.Scan(); { >++ dev := strings.Split(sLines.Text(), ":") >++ >++ if len(dev) > 1 && networkIf == strings.TrimSpace(dev[0]) { >++ stats := strings.Fields(dev[1]) >++ >++ if len(stats) >= 16 { >++ for _, statNum := range statNums { >++ var res uint64 >++ >++ if res, err = strconv.ParseUint(stats[statNum], 10, 64); err != nil { >++ break loop >++ } >++ total += res >++ } >++ return total, nil >++ } >++ break >++ } >++ } >++ err = errors.New(errorCannotFindIf) >++ return >++} >++ >++func (p *Plugin) getDevDiscovery() (netInterfaces []msgIfDiscovery, err error) { >++ var f std.File >++ if f, err = stdOs.Open("/compat/linux/proc/net/dev"); err != nil { >++ return nil, fmt.Errorf(errorCannotOpenNetDev, err) >++ } >++ defer f.Close() >++ >++ netInterfaces = make([]msgIfDiscovery, 0) >++ for sLines := bufio.NewScanner(f); sLines.Scan(); { >++ dev := strings.Split(sLines.Text(), ":") >++ if len(dev) > 1 { >++ netInterfaces = append(netInterfaces, msgIfDiscovery{strings.TrimSpace(dev[0])}) >++ } >++ } >++ >++ return netInterfaces, nil >++} >++ >++// Export - >++func (p *Plugin) Export(key string, params []string, ctx plugin.ContextProvider) (result interface{}, err error) { >++ var direction dirFlag >++ var mode string >++ >++ switch key { >++ case "net.if.discovery": >++ if len(params) > 0 { >++ return nil, errors.New(errorParametersNotAllowed) >++ } >++ var devices []msgIfDiscovery >++ if devices, err = p.getDevDiscovery(); err != nil { >++ return >++ } >++ var b []byte >++ if b, err = json.Marshal(devices); err != nil { >++ return >++ } >++ return string(b), nil >++ case "net.if.collisions": >++ if len(params) > 1 { >++ return nil, errors.New(errorTooManyParams) >++ } >++ >++ if len(params) < 1 || params[0] == "" { >++ return nil, errors.New(errorEmptyIfName) >++ } >++ return p.getNetStats(params[0], "collisions", dirOut) >++ case "net.if.in": >++ direction = dirIn >++ case "net.if.out": >++ direction = dirOut >++ case "net.if.total": >++ direction = dirIn | dirOut >++ default: >++ /* SHOULD_NEVER_HAPPEN */ >++ return nil, errors.New(errorUnsupportedMetric) >++ } >++ >++ if len(params) < 1 || params[0] == "" { >++ return nil, errors.New(errorEmptyIfName) >++ } >++ >++ if len(params) > 2 { >++ return nil, errors.New(errorTooManyParams) >++ } >++ >++ if len(params) == 2 && params[1] != "" { >++ mode = params[1] >++ } else { >++ mode = "bytes" >++ } >++ >++ return p.getNetStats(params[0], mode, direction) >++} >++ >++func init() { >++ stdOs = std.NewOs() >++ >++ plugin.RegisterMetrics(&impl, "NetIf", >++ "net.if.collisions", "Returns number of out-of-window collisions.", >++ "net.if.in", "Returns incoming traffic statistics on network interface.", >++ "net.if.out", "Returns outgoing traffic statistics on network interface.", >++ "net.if.total", "Returns sum of incoming and outgoing traffic statistics on network interface.", >++ "net.if.discovery", "Returns list of network interfaces. Used for low-level discovery.") >++ >++} >diff --git a/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_net_netif_netif__unsupported.go b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_net_netif_netif__unsupported.go >new file mode 100644 >index 000000000000..00f6f1c62a0b >--- /dev/null >+++ b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_net_netif_netif__unsupported.go >@@ -0,0 +1,8 @@ >+--- src/go/plugins/net/netif/netif_unsupported.go.orig 2020-05-20 09:53:44 UTC >++++ src/go/plugins/net/netif/netif_unsupported.go >+@@ -1,4 +1,4 @@ >+-// +build !linux,!windows >++// +build !linux,!windows,!freebsd >+ >+ /* >+ ** Zabbix >diff --git a/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_net_tcp_tcp__freebsd.go b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_net_tcp_tcp__freebsd.go >new file mode 100644 >index 000000000000..53607e94c265 >--- /dev/null >+++ b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_net_tcp_tcp__freebsd.go >@@ -0,0 +1,38 @@ >+--- src/go/plugins/net/tcp/tcp_freebsd.go.orig 2020-05-20 10:52:02 UTC >++++ src/go/plugins/net/tcp/tcp_freebsd.go >+@@ -0,0 +1,35 @@ >++/* >++** Zabbix >++** Copyright (C) 2001-2020 Zabbix SIA >++** >++** This program is free software; you can redistribute it and/or modify >++** it under the terms of the GNU General Public License as published by >++** the Free Software Foundation; either version 2 of the License, or >++** (at your option) any later version. >++** >++** This program is distributed in the hope that it will be useful, >++** but WITHOUT ANY WARRANTY; without even the implied warranty of >++** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >++** GNU General Public License for more details. >++** >++** You should have received a copy of the GNU General Public License >++** along with this program; if not, write to the Free Software >++** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. >++**/ >++ >++package tcpudp >++ >++import ( >++ "errors" >++ >++ "zabbix.com/pkg/plugin" >++) >++ >++func exportSystemTcpListen(port uint16) (result interface{}, err error) { >++ return nil, errors.New("Not supported.") >++} >++ >++func init() { >++ plugin.RegisterMetrics(&impl, "TCP", >++ "net.tcp.port", "Checks if it is possible to make TCP connection to specified port.") >++} >diff --git a/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_plugins__freebsd.go b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_plugins__freebsd.go >new file mode 100644 >index 000000000000..b664df519eb8 >--- /dev/null >+++ b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_plugins__freebsd.go >@@ -0,0 +1,42 @@ >+--- src/go/plugins/plugins_freebsd.go.orig 2020-05-20 11:05:00 UTC >++++ src/go/plugins/plugins_freebsd.go >+@@ -0,0 +1,39 @@ >++// build: freebsd >++/* >++** Zabbix >++** Copyright (C) 2001-2020 Zabbix SIA >++** >++** This program is free software; you can redistribute it and/or modify >++** it under the terms of the GNU General Public License as published by >++** the Free Software Foundation; either version 2 of the License, or >++** (at your option) any later version. >++** >++** This program is distributed in the hope that it will be useful, >++** but WITHOUT ANY WARRANTY; without even the implied warranty of >++** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >++** GNU General Public License for more details. >++** >++** You should have received a copy of the GNU General Public License >++** along with this program; if not, write to the Free Software >++** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. >++**/ >++ >++package plugins >++ >++import ( >++ _ "zabbix.com/plugins/log" >++ _ "zabbix.com/plugins/memcached" >++ _ "zabbix.com/plugins/mysql" >++ _ "zabbix.com/plugins/net/netif" >++ _ "zabbix.com/plugins/net/tcp" >++ _ "zabbix.com/plugins/net/udp" >++ _ "zabbix.com/plugins/proc" >++ _ "zabbix.com/plugins/redis" >++ _ "zabbix.com/plugins/systemrun" >++ _ "zabbix.com/plugins/system/cpu" >++ _ "zabbix.com/plugins/system/uptime" >++ _ "zabbix.com/plugins/web" >++ _ "zabbix.com/plugins/zabbix/async" >++ _ "zabbix.com/plugins/zabbix/stats" >++ _ "zabbix.com/plugins/zabbix/sync" >++) >diff --git a/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_proc_proc__freebsd.go b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_proc_proc__freebsd.go >new file mode 100644 >index 000000000000..8c23c230c4a0 >--- /dev/null >+++ b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_proc_proc__freebsd.go >@@ -0,0 +1,413 @@ >+--- src/go/plugins/proc/proc_freebsd.go.orig 2020-05-20 10:37:47 UTC >++++ src/go/plugins/proc/proc_freebsd.go >+@@ -0,0 +1,410 @@ >++// +build freebsd >++ >++/* >++** Zabbix >++** Copyright (C) 2001-2020 Zabbix SIA >++** >++** This program is free software; you can redistribute it and/or modify >++** it under the terms of the GNU General Public License as published by >++** the Free Software Foundation; either version 2 of the License, or >++** (at your option) any later version. >++** >++** This program is distributed in the hope that it will be useful, >++** but WITHOUT ANY WARRANTY; without even the implied warranty of >++** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >++** GNU General Public License for more details. >++** >++** You should have received a copy of the GNU General Public License >++** along with this program; if not, write to the Free Software >++** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. >++**/ >++ >++package proc >++ >++/* >++#include <unistd.h> >++*/ >++import "C" >++ >++import ( >++ "errors" >++ "math" >++ "os/user" >++ "regexp" >++ "strconv" >++ "sync" >++ "time" >++ >++ "zabbix.com/pkg/log" >++ "zabbix.com/pkg/plugin" >++) >++ >++const ( >++ maxInactivityPeriod = time.Hour * 25 >++ maxHistory = 60*15 + 1 >++) >++ >++// Plugin - >++type Plugin struct { >++ plugin.Base >++ queries map[procQuery]*cpuUtilStats >++ mutex sync.Mutex >++ scanid uint64 >++ stats map[int64]*cpuUtil >++} >++ >++var impl Plugin = Plugin{ >++ stats: make(map[int64]*cpuUtil), >++ queries: make(map[procQuery]*cpuUtilStats), >++} >++ >++type historyIndex int >++ >++func (h historyIndex) inc() historyIndex { >++ h++ >++ if h == maxHistory { >++ h = 0 >++ } >++ return h >++} >++ >++func (h historyIndex) dec() historyIndex { >++ h-- >++ if h < 0 { >++ h = maxHistory - 1 >++ } >++ return h >++} >++ >++func (h historyIndex) sub(value historyIndex) historyIndex { >++ h -= value >++ for h < 0 { >++ h += maxHistory >++ } >++ return h >++} >++ >++type cpuUtilData struct { >++ utime uint64 >++ stime uint64 >++ timestamp time.Time >++} >++ >++type cpuUtilStats struct { >++ scanid uint64 >++ accessed time.Time >++ err error >++ cmdlinePattern *regexp.Regexp >++ history []cpuUtilData >++ tail historyIndex >++ head historyIndex >++} >++ >++type cpuUtilQuery struct { >++ procQuery >++ userid int64 >++ pids []int64 >++ cmdlinePattern *regexp.Regexp >++ utime uint64 >++ stime uint64 >++} >++ >++type procQuery struct { >++ name string >++ user string >++ cmdline string >++} >++ >++const ( >++ procInfoPid = 1 << iota >++ procInfoName >++ procInfoUser >++ procInfoCmdline >++) >++ >++type procInfo struct { >++ pid int64 >++ name string >++ userid int64 >++ cmdline string >++ arg0 string >++} >++ >++type cpuUtil struct { >++ utime uint64 >++ stime uint64 >++ started uint64 >++ err error >++} >++ >++ >++func (q *cpuUtilQuery) match(p *procInfo) bool { >++ if q.name != "" && q.name != p.name && q.name != p.arg0 { >++ return false >++ } >++ if q.user != "" && q.userid != p.userid { >++ return false >++ } >++ if q.cmdline != "" && !q.cmdlinePattern.Match([]byte(p.cmdline)) { >++ return false >++ } >++ return true >++} >++ >++func newCpuUtilQuery(q *procQuery, pattern *regexp.Regexp) (query *cpuUtilQuery, err error) { >++ query = &cpuUtilQuery{procQuery: *q} >++ if q.user != "" { >++ var u *user.User >++ if u, err = user.Lookup(q.user); err != nil { >++ return >++ } >++ if query.userid, err = strconv.ParseInt(u.Uid, 10, 64); err != nil { >++ return >++ } >++ } >++ query.cmdlinePattern = pattern >++ return >++} >++ >++func (p *Plugin) prepareQueries() (queries []*cpuUtilQuery, flags int) { >++ now := time.Now() >++ flags = procInfoPid >++ >++ queries = make([]*cpuUtilQuery, 0, len(p.queries)) >++ p.mutex.Lock() >++ for q, stats := range p.queries { >++ if now.Sub(stats.accessed) > maxInactivityPeriod { >++ p.Debugf("removed unused CPU utilisation query %+v", q) >++ delete(p.queries, q) >++ continue >++ } >++ var query *cpuUtilQuery >++ if query, stats.err = newCpuUtilQuery(&q, stats.cmdlinePattern); stats.err != nil { >++ p.Debugf("cannot create CPU utilisation query %+v: %s", q, stats.err) >++ continue >++ } >++ queries = append(queries, query) >++ stats.scanid = p.scanid >++ if q.name != "" { >++ flags |= procInfoName | procInfoCmdline >++ } >++ if q.user != "" { >++ flags |= procInfoUser >++ } >++ if q.cmdline != "" { >++ flags |= procInfoCmdline >++ } >++ } >++ p.mutex.Unlock() >++ return >++} >++ >++func (p *Plugin) Collect() (err error) { >++ if log.CheckLogLevel(log.Trace) { >++ p.Tracef("In %s() queries:%d", log.Caller(), len(p.queries)) >++ defer p.Tracef("End of %s()", log.Caller()) >++ } >++ p.scanid++ >++ queries, flags := p.prepareQueries() >++ var processes []*procInfo >++ if processes, err = p.getProcesses(flags); err != nil { >++ return >++ } >++ p.Tracef("%s() queries:%d", log.Caller(), len(p.queries)) >++ >++ stats := make(map[int64]*cpuUtil) >++ // find processes matching prepared queries >++ for _, p := range processes { >++ var monitored bool >++ for _, q := range queries { >++ if q.match(p) { >++ q.pids = append(q.pids, p.pid) >++ monitored = true >++ } >++ } >++ if monitored { >++ stats[p.pid] = &cpuUtil{} >++ } >++ } >++ >++ if log.CheckLogLevel(log.Trace) { >++ for _, q := range queries { >++ p.Tracef("%s() name:%s user:%s cmdline:%s pids:%v", log.Caller(), q.name, q.user, q.cmdline, q.pids) >++ } >++ } >++ >++ now := time.Now() >++ for pid, stat := range stats { >++ p.getProcCpuUtil(pid, stat) >++ if stat.err != nil { >++ p.Debugf("cannot get process %d CPU utilisation statistics: %s", pid, stat.err) >++ } >++ } >++ >++ // gather process utilization for queries >++ for _, q := range queries { >++ for _, pid := range q.pids { >++ var stat, last *cpuUtil >++ var ok bool >++ if stat, ok = stats[pid]; !ok || stat.err != nil { >++ continue >++ } >++ if last, ok = p.stats[pid]; !ok || stat.err != nil { >++ continue >++ } >++ if stat.started == last.started { >++ q.utime += stat.utime - last.utime >++ q.stime += stat.stime - last.stime >++ } >++ } >++ } >++ >++ p.stats = stats >++ >++ // update statistics >++ p.Tracef("%s() update statistics", log.Caller()) >++ p.mutex.Lock() >++ for _, q := range queries { >++ if stat, ok := p.queries[q.procQuery]; ok { >++ if stat.scanid != p.scanid { >++ continue >++ } >++ var last *cpuUtilData >++ if stat.tail != stat.head { >++ last = &stat.history[stat.tail.dec()] >++ } >++ slot := &stat.history[stat.tail] >++ slot.utime = q.utime >++ slot.stime = q.stime >++ slot.timestamp = now >++ if last != nil { >++ slot.utime += last.utime >++ slot.stime += last.stime >++ } >++ stat.tail = stat.tail.inc() >++ if stat.tail == stat.head { >++ stat.head = stat.head.inc() >++ } >++ } >++ } >++ p.mutex.Unlock() >++ >++ return nil >++} >++ >++func (p *Plugin) Period() int { >++ return 1 >++} >++ >++const ( >++ timeUser = 1 << iota >++ timeSystem >++ timeTotal = timeUser | timeSystem >++) >++ >++// Export - >++func (p *Plugin) Export(key string, params []string, ctx plugin.ContextProvider) (result interface{}, err error) { >++ if ctx == nil { >++ return nil, errors.New("This item is available only in daemon mode.") >++ } >++ >++ var name, user, cmdline, mode, utiltype string >++ switch len(params) { >++ case 5: >++ mode = params[4] >++ fallthrough >++ case 4: >++ cmdline = params[3] >++ fallthrough >++ case 3: >++ utiltype = params[2] >++ fallthrough >++ case 2: >++ user = params[1] >++ fallthrough >++ case 1: >++ name = params[0] >++ case 0: >++ default: >++ return nil, errors.New("Too many parameters.") >++ } >++ >++ var utilrange historyIndex >++ switch mode { >++ case "avg1", "": >++ utilrange = 60 >++ case "avg5": >++ utilrange = 300 >++ case "avg15": >++ utilrange = 900 >++ default: >++ return nil, errors.New("Invalid fifth parameter.") >++ } >++ >++ var typeflags uint >++ switch utiltype { >++ case "total", "": >++ typeflags |= timeTotal >++ case "user": >++ typeflags |= timeUser >++ case "system": >++ typeflags |= timeSystem >++ default: >++ return nil, errors.New("Invalid third parameter.") >++ } >++ >++ now := time.Now() >++ query := procQuery{name: name, user: user, cmdline: cmdline} >++ p.mutex.Lock() >++ defer p.mutex.Unlock() >++ if stats, ok := p.queries[query]; ok { >++ stats.accessed = now >++ if stats.err != nil { >++ p.Debugf("CPU utilisation gathering error %s", err) >++ return nil, stats.err >++ } >++ if stats.tail == stats.head { >++ return >++ } >++ totalnum := stats.tail - stats.head >++ if totalnum < 0 { >++ totalnum += maxHistory >++ } >++ if totalnum < 2 { >++ return >++ } >++ if totalnum < utilrange { >++ utilrange = totalnum >++ } >++ tail := &stats.history[stats.tail.dec()] >++ head := &stats.history[stats.tail.sub(utilrange)] >++ >++ var ticks uint64 >++ if typeflags&timeUser != 0 { >++ ticks += tail.utime - head.utime >++ } >++ if typeflags&timeSystem != 0 { >++ ticks += tail.stime - head.stime >++ } >++ /* 1e9 (nanoseconds) * 1e2 (percent) * 1e1 (one digit decimal place) */ >++ ticks *= 1e12 >++ ticks /= uint64(tail.timestamp.Sub(head.timestamp)) >++ >++ return math.Round(float64(ticks)/float64(C.sysconf(C._SC_CLK_TCK))) / 10, nil >++ } >++ stats := &cpuUtilStats{accessed: now, history: make([]cpuUtilData, maxHistory)} >++ if cmdline != "" { >++ stats.cmdlinePattern, err = regexp.Compile(cmdline) >++ } >++ if err == nil { >++ p.queries[query] = stats >++ p.Debugf("registered new CPU utilisation query: %s, %s, %s", name, user, cmdline) >++ } else { >++ p.Debugf("cannot register CPU utilisation query: %s", err) >++ } >++ return >++} >++ >++func init() { >++ plugin.RegisterMetrics(&impl, "Proc", "proc.cpu.util", "Process CPU utilisation percentage.") >++} >diff --git a/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_proc_procfs__freebsd.go b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_proc_procfs__freebsd.go >new file mode 100644 >index 000000000000..6675ca7d3dba >--- /dev/null >+++ b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_proc_procfs__freebsd.go >@@ -0,0 +1,196 @@ >+--- src/go/plugins/proc/procfs_freebsd.go.orig 2020-05-20 10:37:05 UTC >++++ src/go/plugins/proc/procfs_freebsd.go >+@@ -0,0 +1,193 @@ >++// +build freebsd >++ >++/* >++** Zabbix >++** Copyright (C) 2001-2020 Zabbix SIA >++** >++** This program is free software; you can redistribute it and/or modify >++** it under the terms of the GNU General Public License as published by >++** the Free Software Foundation; either version 2 of the License, or >++** (at your option) any later version. >++** >++** This program is distributed in the hope that it will be useful, >++** but WITHOUT ANY WARRANTY; without even the implied warranty of >++** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >++** GNU General Public License for more details. >++** >++** You should have received a copy of the GNU General Public License >++** along with this program; if not, write to the Free Software >++** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. >++**/ >++ >++package proc >++ >++import ( >++ "bytes" >++ "fmt" >++ "io" >++ "os" >++ "strconv" >++ "syscall" >++) >++ >++func read2k(filename string) (data []byte, err error) { >++ fd, err := syscall.Open(filename, syscall.O_RDONLY, 0) >++ if err != nil { >++ return >++ } >++ var n int >++ b := make([]byte, 2048) >++ if n, err = syscall.Read(fd, b); err == nil { >++ data = b[:n] >++ } >++ syscall.Close(fd) >++ return >++} >++ >++func readAll(filename string) (data []byte, err error) { >++ fd, err := syscall.Open(filename, syscall.O_RDONLY, 0) >++ if err != nil { >++ return >++ } >++ defer syscall.Close(fd) >++ var buf bytes.Buffer >++ b := make([]byte, 2048) >++ for { >++ var n int >++ if n, err = syscall.Read(fd, b); err != nil { >++ return >++ } >++ if n == 0 { >++ return buf.Bytes(), nil >++ } >++ if _, err = buf.Write(b[:n]); err != nil { >++ return >++ } >++ } >++} >++ >++func (p *Plugin) getProcessName(pid string) (name string, err error) { >++ var data []byte >++ if data, err = read2k("/compat/linux/proc/" + pid + "/stat"); err != nil { >++ return >++ } >++ var left, right int >++ if right = bytes.LastIndexByte(data, ')'); right == -1 { >++ return "", fmt.Errorf("cannot find process name ending position in /compat/linux/proc/%s/stat", pid) >++ } >++ if left = bytes.IndexByte(data[:right], '('); left == -1 { >++ return "", fmt.Errorf("cannot find process name starting position in /compat/linux/proc/%s/stat", pid) >++ } >++ return string(data[left+1 : right]), nil >++} >++ >++func (p *Plugin) getProcessUserID(pid string) (userid int64, err error) { >++ var fi os.FileInfo >++ if fi, err = os.Stat("/compat/linux/proc/" + pid); err != nil { >++ return >++ } >++ return int64(fi.Sys().(*syscall.Stat_t).Uid), nil >++} >++ >++func (p *Plugin) getProcessCmdline(pid string, flags int) (arg0 string, cmdline string, err error) { >++ var data []byte >++ if data, err = readAll("/compat/linux/proc/" + pid + "/cmdline"); err != nil { >++ return >++ } >++ >++ if flags&procInfoName != 0 { >++ if end := bytes.IndexByte(data, 0); end != -1 { >++ if pos := bytes.LastIndexByte(data[:end], '/'); pos != -1 { >++ arg0 = string(data[pos+1 : end]) >++ } else { >++ arg0 = string(data[:end]) >++ } >++ } else { >++ arg0 = string(data) >++ } >++ } >++ >++ for i := 0; i < len(data); i++ { >++ if data[i] == 0 { >++ data[i] = ' ' >++ } >++ } >++ >++ if len(data) != 0 && data[len(data)-1] == ' ' { >++ data = data[:len(data)-1] >++ } >++ >++ return arg0, string(data), nil >++} >++ >++func (p *Plugin) getProcCpuUtil(pid int64, stat *cpuUtil) { >++ var data []byte >++ if data, stat.err = read2k(fmt.Sprintf("/compat/linux/proc/%d/stat", pid)); stat.err != nil { >++ return >++ } >++ var pos int >++ if pos = bytes.LastIndexByte(data, ')'); pos == -1 || len(data[pos:]) < 2 { >++ stat.err = fmt.Errorf("cannot find CPU statistic starting position in /compat/linux/proc/%d/stat", pid) >++ return >++ } >++ stats := bytes.Split(data[pos+2:], []byte{' '}) >++ if len(stats) < 20 { >++ stat.err = fmt.Errorf("cannot parse CPU statistics in /compat/linux/proc/%d/stat", pid) >++ return >++ } >++ if stat.utime, stat.err = strconv.ParseUint(string(stats[11]), 10, 64); stat.err != nil { >++ return >++ } >++ if stat.stime, stat.err = strconv.ParseUint(string(stats[12]), 10, 64); stat.err != nil { >++ return >++ } >++ if stat.started, stat.err = strconv.ParseUint(string(stats[19]), 10, 64); stat.err != nil { >++ return >++ } >++} >++ >++func (p *Plugin) getProcesses(flags int) (processes []*procInfo, err error) { >++ var entries []os.FileInfo >++ f, err := os.Open("/compat/linux/proc") >++ if err != nil { >++ return nil, err >++ } >++ defer f.Close() >++ >++ for entries, err = f.Readdir(1); err != io.EOF; entries, err = f.Readdir(1) { >++ if err != nil { >++ return nil, err >++ } >++ >++ if !entries[0].IsDir() { >++ continue >++ } >++ var pid int64 >++ var tmperr error >++ if pid, tmperr = strconv.ParseInt(entries[0].Name(), 10, 64); tmperr != nil { >++ continue >++ } >++ info := &procInfo{pid: pid} >++ if flags&procInfoName != 0 { >++ if info.name, tmperr = p.getProcessName(entries[0].Name()); tmperr != nil { >++ p.Debugf("cannot get process %s name: %s", entries[0].Name(), tmperr) >++ continue >++ } >++ } >++ if flags&procInfoUser != 0 { >++ if info.userid, tmperr = p.getProcessUserID(entries[0].Name()); tmperr != nil { >++ p.Debugf("cannot get process %s user id: %s", entries[0].Name(), tmperr) >++ continue >++ } >++ } >++ if flags&procInfoCmdline != 0 { >++ if info.arg0, info.cmdline, tmperr = p.getProcessCmdline(entries[0].Name(), flags); tmperr != nil { >++ p.Debugf("cannot get process %s command line: %s", entries[0].Name(), tmperr) >++ continue >++ } >++ } >++ processes = append(processes, info) >++ } >++ >++ return processes, nil >++} >diff --git a/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_system_cpu_cpu__freebsd.go b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_system_cpu_cpu__freebsd.go >new file mode 100644 >index 000000000000..8abd28eb653d >--- /dev/null >+++ b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_system_cpu_cpu__freebsd.go >@@ -0,0 +1,152 @@ >+--- src/go/plugins/system/cpu/cpu_freebsd.go.orig 2020-05-20 10:00:53 UTC >++++ src/go/plugins/system/cpu/cpu_freebsd.go >+@@ -0,0 +1,149 @@ >++/* >++** Zabbix >++** Copyright (C) 2001-2020 Zabbix SIA >++** >++** This program is free software; you can redistribute it and/or modify >++** it under the terms of the GNU General Public License as published by >++** the Free Software Foundation; either version 2 of the License, or >++** (at your option) any later version. >++** >++** This program is distributed in the hope that it will be useful, >++** but WITHOUT ANY WARRANTY; without even the implied warranty of >++** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >++** GNU General Public License for more details. >++** >++** You should have received a copy of the GNU General Public License >++** along with this program; if not, write to the Free Software >++** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. >++**/ >++ >++package cpu >++ >++/* >++#include <unistd.h> >++*/ >++import "C" >++ >++import ( >++ "bufio" >++ "bytes" >++ "os" >++ "strconv" >++ "strings" >++ >++ "zabbix.com/pkg/plugin" >++) >++ >++// Plugin - >++type Plugin struct { >++ plugin.Base >++ cpus []*cpuUnit >++} >++ >++const ( >++ procStatLocation = "/compat/linux/proc/stat" >++) >++ >++func (p *Plugin) getCpuLoad(params []string) (result interface{}, err error) { >++ return nil, plugin.UnsupportedMetricError >++} >++ >++func (p *Plugin) Collect() (err error) { >++ var file *os.File >++ if file, err = os.Open(procStatLocation); err != nil { >++ return err >++ } >++ defer file.Close() >++ >++ var buf bytes.Buffer >++ if _, err = buf.ReadFrom(file); err != nil { >++ return >++ } >++ >++ for _, cpu := range p.cpus { >++ cpu.status = cpuStatusOffline >++ } >++ >++ scanner := bufio.NewScanner(&buf) >++ for scanner.Scan() { >++ line := scanner.Text() >++ if !strings.HasPrefix(line, "cpu") { >++ continue >++ } >++ fields := strings.Fields(line) >++ var index, status int >++ if len(fields[0]) > 3 { >++ var i int64 >++ if i, err = strconv.ParseInt(fields[0][3:], 10, 32); err != nil { >++ return >++ } >++ if index = int(i); index < 0 || index+1 >= len(p.cpus) { >++ p.Debugf("invalid CPU index %d", index) >++ continue >++ } >++ >++ status = cpuStatusOnline >++ } else { >++ index = -1 >++ } >++ >++ cpu := p.cpus[index+1] >++ cpu.status = status >++ >++ slot := &cpu.history[cpu.tail] >++ num := len(slot.counters) >++ if num > len(fields)-1 { >++ num = len(fields) - 1 >++ } >++ for i := 0; i < num; i++ { >++ slot.counters[i], _ = strconv.ParseUint(fields[i+1], 10, 64) >++ } >++ for i := num; i < len(slot.counters); i++ { >++ slot.counters[i] = 0 >++ } >++ // Linux includes guest times in user and nice times >++ slot.counters[counterUser] -= slot.counters[counterGcpu] >++ slot.counters[counterNice] -= slot.counters[counterGnice] >++ >++ if cpu.tail = cpu.tail.inc(); cpu.tail == cpu.head { >++ cpu.head = cpu.head.inc() >++ } >++ } >++ return nil >++} >++ >++func numCPU() int { >++ return int(C.sysconf(C._SC_NPROCESSORS_CONF)) >++} >++ >++func (p *Plugin) Start() { >++ p.cpus = p.newCpus(numCPU()) >++} >++ >++func (p *Plugin) Stop() { >++ p.cpus = nil >++} >++ >++func (p *Plugin) Export(key string, params []string, ctx plugin.ContextProvider) (result interface{}, err error) { >++ if p.cpus == nil || p.cpus[0].head == p.cpus[0].tail { >++ // no data gathered yet >++ return >++ } >++ switch key { >++ case "system.cpu.discovery": >++ return p.getCpuDiscovery(params) >++ case "system.cpu.num": >++ return p.getCpuNum(params) >++ case "system.cpu.util": >++ return p.getCpuUtil(params) >++ default: >++ return nil, plugin.UnsupportedMetricError >++ } >++} >++ >++func init() { >++ plugin.RegisterMetrics(&impl, pluginName, >++ "system.cpu.discovery", "List of detected CPUs/CPU cores, used for low-level discovery.", >++ "system.cpu.num", "Number of CPUs.", >++ "system.cpu.util", "CPU utilisation percentage.") >++} >diff --git a/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_system_cpu_cpucounters__freebsd.go b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_system_cpu_cpucounters__freebsd.go >new file mode 100644 >index 000000000000..2f56dc57ded2 >--- /dev/null >+++ b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_system_cpu_cpucounters__freebsd.go >@@ -0,0 +1,104 @@ >+--- src/go/plugins/system/cpu/cpucounters_freebsd.go.orig 2020-05-20 10:07:01 UTC >++++ src/go/plugins/system/cpu/cpucounters_freebsd.go >+@@ -0,0 +1,101 @@ >++/* >++** Zabbix >++** Copyright (C) 2001-2019 Zabbix SIA >++** >++** This program is free software; you can redistribute it and/or modify >++** it under the terms of the GNU General Public License as published by >++** the Free Software Foundation; either version 2 of the License, or >++** (at your option) any later version. >++** >++** This program is distributed in the hope that it will be useful, >++** but WITHOUT ANY WARRANTY; without even the implied warranty of >++** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >++** GNU General Public License for more details. >++** >++** You should have received a copy of the GNU General Public License >++** along with this program; if not, write to the Free Software >++** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. >++**/ >++ >++package cpu >++ >++const ( >++ counterUnknown cpuCounter = iota - 1 >++ counterUser >++ counterNice >++ counterSystem >++ counterIdle >++ counterIowait >++ counterIrq >++ counterSoftirq >++ counterSteal >++ counterGcpu >++ counterGnice >++ counterNum // number of cpu counters >++) >++ >++type cpuCounters struct { >++ counters [counterNum]uint64 >++} >++ >++func counterByType(name string) (counter cpuCounter) { >++ switch name { >++ case "", "user": >++ return counterUser >++ case "idle": >++ return counterIdle >++ case "nice": >++ return counterNice >++ case "system": >++ return counterSystem >++ case "iowait": >++ return counterIowait >++ case "interrupt": >++ return counterIrq >++ case "softirq": >++ return counterSoftirq >++ case "steal": >++ return counterSteal >++ case "guest": >++ return counterGcpu >++ case "guest_nice": >++ return counterGnice >++ default: >++ return counterUnknown >++ } >++} >++ >++func (c *cpuUnit) counterAverage(counter cpuCounter, period historyIndex) (result interface{}) { >++ if c.head == c.tail { >++ return >++ } >++ var tail, head *cpuCounters >++ totalnum := c.tail - c.head >++ if totalnum < 0 { >++ totalnum += maxHistory >++ } >++ if totalnum < 2 { >++ // need at least two samples to calculate utilization >++ return >++ } >++ if totalnum-1 < period { >++ period = totalnum - 1 >++ } >++ tail = &c.history[c.tail.dec()] >++ head = &c.history[c.tail.sub(period+1)] >++ >++ var value, total uint64 >++ for i := 0; i < len(tail.counters); i++ { >++ if tail.counters[i] > head.counters[i] { >++ total += tail.counters[i] - head.counters[i] >++ } >++ } >++ if total == 0 { >++ return >++ } >++ >++ if tail.counters[counter] > head.counters[counter] { >++ value = tail.counters[counter] - head.counters[counter] >++ } >++ return float64(value) * 100 / float64(total) >++} >diff --git a/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_system_uname_uname__freebsd.go b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_system_uname_uname__freebsd.go >new file mode 100644 >index 000000000000..7ffacac21bc8 >--- /dev/null >+++ b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_system_uname_uname__freebsd.go >@@ -0,0 +1,73 @@ >+--- src/go/plugins/system/uname/uname_freebsd.go.orig 2020-05-20 10:26:11 UTC >++++ src/go/plugins/system/uname/uname_freebsd.go >+@@ -0,0 +1,70 @@ >++/* >++** Zabbix >++** Copyright (C) 2001-2020 Zabbix SIA >++** >++** This program is free software; you can redistribute it and/or modify >++** it under the terms of the GNU General Public License as published by >++** the Free Software Foundation; either version 2 of the License, or >++** (at your option) any later version. >++** >++** This program is distributed in the hope that it will be useful, >++** but WITHOUT ANY WARRANTY; without even the implied warranty of >++** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >++** GNU General Public License for more details. >++** >++** You should have received a copy of the GNU General Public License >++** along with this program; if not, write to the Free Software >++** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. >++**/ >++ >++package uname >++ >++import ( >++ "errors" >++ "fmt" >++ "syscall" >++) >++ >++func getUname(params []string) (uname string, err error) { >++ if len(params) > 0 { >++ return "", errors.New("Too many parameters.") >++ } >++ >++ var utsname syscall.Utsname >++ if err = syscall.Uname(&utsname); err != nil { >++ err = fmt.Errorf("Cannot obtain system information: %s", err.Error()) >++ return >++ } >++ uname = fmt.Sprintf("%s %s %s %s %s", arrayToString(&utsname.Sysname), arrayToString(&utsname.Nodename), >++ arrayToString(&utsname.Release), arrayToString(&utsname.Version), arrayToString(&utsname.Machine)) >++ >++ return uname, nil >++} >++ >++func getHostname(params []string) (hostname string, err error) { >++ if len(params) > 0 { >++ return "", errors.New("Too many parameters.") >++ } >++ >++ var utsname syscall.Utsname >++ if err = syscall.Uname(&utsname); err != nil { >++ err = fmt.Errorf("Cannot obtain system information: %s", err.Error()) >++ return >++ } >++ >++ return arrayToString(&utsname.Nodename), nil >++} >++ >++func getSwArch(params []string) (uname string, err error) { >++ if len(params) > 0 { >++ return "", errors.New("Too many parameters.") >++ } >++ >++ var utsname syscall.Utsname >++ if err = syscall.Uname(&utsname); err != nil { >++ err = fmt.Errorf("Cannot obtain system information: %s", err.Error()) >++ return >++ } >++ >++ return arrayToString(&utsname.Machine), nil >++} >diff --git a/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_system_uptime_uptime__freebsd.go b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_system_uptime_uptime__freebsd.go >new file mode 100644 >index 000000000000..d2fe4e818303 >--- /dev/null >+++ b/net-mgmt/zabbix5-server/files/agent2-patches/patch-src_go_plugins_system_uptime_uptime__freebsd.go >@@ -0,0 +1,56 @@ >+--- src/go/plugins/system/uptime/uptime_freebsd.go.orig 2020-05-20 10:20:21 UTC >++++ src/go/plugins/system/uptime/uptime_freebsd.go >+@@ -0,0 +1,53 @@ >++/* >++** Zabbix >++** Copyright (C) 2001-2020 Zabbix SIA >++** >++** This program is free software; you can redistribute it and/or modify >++** it under the terms of the GNU General Public License as published by >++** the Free Software Foundation; either version 2 of the License, or >++** (at your option) any later version. >++** >++** This program is distributed in the hope that it will be useful, >++** but WITHOUT ANY WARRANTY; without even the implied warranty of >++** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >++** GNU General Public License for more details. >++** >++** You should have received a copy of the GNU General Public License >++** along with this program; if not, write to the Free Software >++** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. >++**/ >++ >++package uptime >++ >++import ( >++ "bufio" >++ "errors" >++ "fmt" >++ "strconv" >++ "strings" >++ "time" >++ >++ "zabbix.com/pkg/std" >++) >++ >++func getUptime() (uptime int, err error) { >++ var file std.File >++ if file, err = stdOs.Open("/compat/linux/proc/stat"); err != nil { >++ err = fmt.Errorf("Cannot read boot time: %s", err.Error()) >++ return >++ } >++ defer file.Close() >++ >++ scanner := bufio.NewScanner(file) >++ for scanner.Scan() { >++ if strings.HasPrefix(scanner.Text(), "btime") { >++ var boot int >++ if boot, err = strconv.Atoi(scanner.Text()[6:]); err != nil { >++ return >++ } >++ return int(time.Now().Unix()) - boot, nil >++ } >++ } >++ >++ return 0, errors.New("Cannot locate boot time") >++} >diff --git a/net-mgmt/zabbix5-server/files/pkg-message.in b/net-mgmt/zabbix5-server/files/pkg-message.in >new file mode 100644 >index 000000000000..3461c98d9f46 >--- /dev/null >+++ b/net-mgmt/zabbix5-server/files/pkg-message.in >@@ -0,0 +1,45 @@ >+[ >+{ type: install >+ message: <<EOM >+For Zabbix server and proxy daemons, as well as Zabbix frontend, a database is >+required. It is not needed to run Zabbix agent. >+ >+% cd %%DATADIR%%/%%ZABBIX_BUILD%%/database >+ >+And follow the instructions: >+https://www.zabbix.com/documentation/5.0/manual/appendix/install/db_scripts >+ >+Upgrade notes for 5.0.0: >+https://www.zabbix.com/documentation/5.0/manual/installation/upgrade_notes_500 >+ >+Upgrade procedure: >+https://www.zabbix.com/documentation/5.0/manual/installation/upgrade/sources >+ >+Please see https://www.zabbix.com/ for detailed information about Zabbix. >+ >+Official Zabbix documentation: >+https://www.zabbix.com/documentation/5.0/start >+ >+For Zabbix frontend "Welcome" screen. Enter the user name Admin with password >+zabbix to log in as a Zabbix superuser. >+ >+For use NMAP please edit sudoers >+ >+This is a Zabbix Standard release! >+ >+Standard Zabbix releases are supported for Zabbix customers during six (6) >+months of Full Support (general, critical and security issues) until the next >+Zabbix stable release, plus one (1) additional month of Limited Support >+(critical and security issues only). Zabbix Standard version release will result >+in change of the second version number. >+ >+Stable release: Zabbix 5.0 >+Release date: May 12, 2020 >+End of Full Support: May 31, 2023 >+End of Limited Support: May 31, 2025 >+ >+Zabbix Life Cycle & Release Policy: >+https://www.zabbix.com/life_cycle_and_release_policy >+EOM >+} >+] >diff --git a/net-mgmt/zabbix5-server/files/zabbix_agent2.in b/net-mgmt/zabbix5-server/files/zabbix_agent2.in >new file mode 100644 >index 000000000000..0d3c3eb710d0 >--- /dev/null >+++ b/net-mgmt/zabbix5-server/files/zabbix_agent2.in >@@ -0,0 +1,65 @@ >+#!/bin/sh >+ >+# PROVIDE: zabbix_agent2 >+# REQUIRE: DAEMON >+# KEYWORD: shutdown >+# >+# Add the following lines to /etc/rc.conf.local or /etc/rc.conf to >+# enable zabbix_agent2: >+# >+# zabbix_agent2_enable (bool): Set to NO by default. Set it to YES to >+# enable zabbix_agent2. >+# zabbix_agent2_config (string): Set to the standard config file path by >+# default. >+# zabbix_agent2_pidfile (string): Location of the zabbix_agent pid file >+# Default is /var/run/zabbix/zabbix_agent2.pid >+# zabbix_agent2_paths (string): Set to standard path by default. Set a search >+# if you have custom userparams that need binaries elsewhere. >+# >+ >+. /etc/rc.subr >+ >+name="zabbix_agent2" >+rcvar=zabbix_agent2_enable >+ >+load_rc_config $name >+ >+: ${zabbix_agent2_enable:=NO} >+: ${zabbix_agent2_config:=%%ETCDIR%%/${name}.conf} >+: ${zabbix_agent2_pidfile:=/var/run/zabbix/zabbix_agent2.pid} >+: ${zabbix_agent2_paths:=$PATH} >+ >+command="%%PREFIX%%/sbin/${name}" >+required_files="${zabbix_agent2_config}" >+ >+start_cmd=zabbix_agent2_cmd >+start_precmd=zabbix_agent2_precmd >+status_precmd=zabbix_agent2_precmd >+stop_precmd=zabbix_agent2_precmd >+ >+zabbix_agent2_precmd() >+{ >+ if get_pidfile_from_conf PidFile ${zabbix_agent2_config}; then >+ pidfile="$_pidfile_from_conf" >+ else >+ pidfile=${zabbix_agent2_pidfile} >+ local rundir=${zabbix_agent2_pidfile%/*} >+ if [ ! -d $rundir ] ; then >+ install -d -m 0755 -o zabbix -g zabbix $rundir >+ fi >+ fi >+ >+ # This shouldn't be necessary with pidfile, but empirically it was the >+ # only way to reap the parent PID instead of all PIDs from >+ # check_process, which may leak SysV IPC objects and prevent restart >+ # and/or race condition on restart. >+ rc_pid=$(check_pidfile ${pidfile} ${command}) >+} >+ >+zabbix_agent2_cmd() >+{ >+ PATH=$zabbix_agent2_paths /usr/sbin/daemon -c -f -S -t "${name}" \ >+ $command -c $zabbix_agent2_config >+} >+ >+run_rc_command "$1" >diff --git a/net-mgmt/zabbix5-server/files/zabbix_agentd.in b/net-mgmt/zabbix5-server/files/zabbix_agentd.in >new file mode 100644 >index 000000000000..d3ac5102f812 >--- /dev/null >+++ b/net-mgmt/zabbix5-server/files/zabbix_agentd.in >@@ -0,0 +1,64 @@ >+#!/bin/sh >+ >+# PROVIDE: zabbix_agentd >+# REQUIRE: DAEMON >+# KEYWORD: shutdown >+# >+# Add the following lines to /etc/rc.conf.local or /etc/rc.conf to >+# enable zabbix_agentd: >+# >+# zabbix_agentd_enable (bool): Set to NO by default. Set it to YES to >+# enable zabbix_agentd. >+# zabbix_agentd_config (string): Set to the standard config file path by >+# default. >+# zabbix_agentd_pidfile (string): Location of the zabbix_agent pid file >+# Default is /var/run/zabbix/zabbix_agentd.pid >+# zabbix_agentd_paths (string): Set to standard path by default. Set a search >+# if you have custom userparams that need binaries elsewhere. >+# >+ >+. /etc/rc.subr >+ >+name="zabbix_agentd" >+rcvar=zabbix_agentd_enable >+ >+load_rc_config $name >+ >+: ${zabbix_agentd_enable:=NO} >+: ${zabbix_agentd_config:=%%ETCDIR%%/${name}.conf} >+: ${zabbix_agentd_pidfile:=/var/run/zabbix/zabbix_agentd.pid} >+: ${zabbix_agentd_paths:=$PATH} >+ >+command="%%PREFIX%%/sbin/${name}" >+required_files="${zabbix_agentd_config}" >+ >+start_cmd=zabbix_agentd_cmd >+start_precmd=zabbix_agentd_precmd >+status_precmd=zabbix_agentd_precmd >+stop_precmd=zabbix_agentd_precmd >+ >+zabbix_agentd_precmd() >+{ >+ if get_pidfile_from_conf PidFile ${zabbix_agentd_config}; then >+ pidfile="$_pidfile_from_conf" >+ else >+ pidfile=${zabbix_agentd_pidfile} >+ local rundir=${zabbix_agentd_pidfile%/*} >+ if [ ! -d $rundir ] ; then >+ install -d -m 0755 -o zabbix -g zabbix $rundir >+ fi >+ fi >+ >+ # This shouldn't be necessary with pidfile, but empirically it was the >+ # only way to reap the parent PID instead of all PIDs from >+ # check_process, which may leak SysV IPC objects and prevent restart >+ # and/or race condition on restart. >+ rc_pid=$(check_pidfile ${pidfile} ${command}) >+} >+ >+zabbix_agentd_cmd() >+{ >+ PATH=$zabbix_agentd_paths $command -c $zabbix_agentd_config >+} >+ >+run_rc_command "$1" >diff --git a/net-mgmt/zabbix5-server/files/zabbix_java.in b/net-mgmt/zabbix5-server/files/zabbix_java.in >new file mode 100644 >index 000000000000..afb4423f9997 >--- /dev/null >+++ b/net-mgmt/zabbix5-server/files/zabbix_java.in >@@ -0,0 +1,27 @@ >+#!/bin/sh >+ >+# PROVIDE: zabbix_java >+# REQUIRE: NETWORKING SERVERS >+# BEFORE: DAEMON >+# KEYWORD: shutdown >+# >+# Options to configure zabbix_java via /etc/rc.conf: >+# >+# zabbix_java_enable (bool): >+# Enable service on boot. >+# Default: NO >+# >+ >+. /etc/rc.subr >+ >+name="zabbix_java" >+rcvar=zabbix_java_enable >+ >+load_rc_config $name >+ >+: ${zabbix_java_enable:=NO} >+ >+start_cmd="/usr/bin/su -m zabbix -c %%PREFIX%%/sbin/zabbix_java/startup.sh" >+stop_cmd="/usr/bin/su -m zabbix -c %%PREFIX%%/sbin/zabbix_java/shutdown.sh" >+ >+run_rc_command "$1" >diff --git a/net-mgmt/zabbix5-server/files/zabbix_proxy.in b/net-mgmt/zabbix5-server/files/zabbix_proxy.in >new file mode 100644 >index 000000000000..213c989966f8 >--- /dev/null >+++ b/net-mgmt/zabbix5-server/files/zabbix_proxy.in >@@ -0,0 +1,65 @@ >+#!/bin/sh >+ >+# PROVIDE: zabbix_proxy >+# REQUIRE: DAEMON >+%%PGSQL%%# REQUIRE: postgresql >+%%MYSQL%%# REQUIRE: mysql >+# KEYWORD: shutdown >+# >+# Add the following lines to /etc/rc.conf.local or /etc/rc.conf to >+# enable zabbix_proxy: >+# >+# zabbix_proxy_enable (bool): Set to NO by default. Set it to YES to >+# enable zabbix_proxy. >+# zabbix_proxy_config (string): Set to the standard config file path by >+# default. >+# zabbix_proxy_pidfile (string): Location of the zabbix_proxy pid file >+# Default is /var/run/zabbix/zabbix_proxy.pid >+# zabbix_proxy_paths (string): Set to standard path by default. Set a search >+# if you have custom userparams that need binaries elsewhere. >+# >+ >+. /etc/rc.subr >+ >+name="zabbix_proxy" >+rcvar=zabbix_proxy_enable >+ >+load_rc_config $name >+ >+: ${zabbix_proxy_enable:=NO} >+: ${zabbix_proxy_config:=%%ETCDIR%%/${name}.conf} >+: ${zabbix_proxy_pidfile:=/var/run/zabbix/zabbix_proxy.pid} >+ >+command="%%PREFIX%%/sbin/${name}" >+required_files="${zabbix_proxy_config}" >+ >+start_cmd=zabbix_proxy_cmd >+start_precmd=zabbix_proxy_precmd >+status_precmd=zabbix_proxy_precmd >+stop_precmd=zabbix_proxy_precmd >+ >+zabbix_proxy_precmd() >+{ >+ if get_pidfile_from_conf PidFile ${zabbix_proxy_config}; then >+ pidfile="$_pidfile_from_conf" >+ else >+ pidfile=${zabbix_proxy_pidfile} >+ local rundir=${zabbix_proxy_pidfile%/*} >+ if [ ! -d $rundir ] ; then >+ install -d -m 0755 -o zabbix -g zabbix $rundir >+ fi >+ fi >+ >+ # This shouldn't be necessary with pidfile, but empirically it was the >+ # only way to reap the parent PID instead of all PIDs from >+ # check_process, which may leak SysV IPC objects and prevent restart >+ # and/or race condition on restart. >+ rc_pid=$(check_pidfile ${pidfile} ${command}) >+} >+ >+zabbix_proxy_cmd() >+{ >+ PATH=$zabbix_proxy_paths $command -c $zabbix_proxy_config >+} >+ >+run_rc_command "$1" >diff --git a/net-mgmt/zabbix5-server/files/zabbix_server.in b/net-mgmt/zabbix5-server/files/zabbix_server.in >new file mode 100644 >index 000000000000..4ccf2b80aa85 >--- /dev/null >+++ b/net-mgmt/zabbix5-server/files/zabbix_server.in >@@ -0,0 +1,66 @@ >+#!/bin/sh >+ >+# PROVIDE: zabbix_server >+# REQUIRE: DAEMON >+%%PGSQL%%# REQUIRE: postgresql >+%%MYSQL%%# REQUIRE: mysql >+# KEYWORD: shutdown >+# >+# Add the following lines to /etc/rc.conf.local or /etc/rc.conf to >+# enable zabbix_server: >+# >+# zabbix_server_enable (bool): Set to NO by default. Set it to YES to >+# enable zabbix_server. >+# zabbix_server_config (string): Set to the standard config file path by >+# default. >+# zabbix_server_pidfile (string): Location of the zabbix_server pid file >+# Default is /var/run/zabbix/zabbix_server.pid >+# zabbix_server_paths (string): Set to standard path by default. Set a search >+# if you have custom userparams that need binaries elsewhere. >+# >+ >+. /etc/rc.subr >+ >+name="zabbix_server" >+rcvar=zabbix_server_enable >+ >+load_rc_config $name >+ >+: ${zabbix_server_enable:=NO} >+: ${zabbix_server_config:=%%ETCDIR%%/${name}.conf} >+: ${zabbix_server_pidfile:=/var/run/zabbix/zabbix_server.pid} >+: ${zabbix_server_paths:=$PATH} >+ >+command="%%PREFIX%%/sbin/${name}" >+required_files="${zabbix_server_config}" >+ >+start_cmd=zabbix_server_cmd >+start_precmd=zabbix_server_precmd >+status_precmd=zabbix_server_precmd >+stop_precmd=zabbix_server_precmd >+ >+zabbix_server_precmd() >+{ >+ if get_pidfile_from_conf PidFile ${zabbix_server_config}; then >+ pidfile="$_pidfile_from_conf" >+ else >+ pidfile=${zabbix_server_pidfile} >+ local rundir=${zabbix_server_pidfile%/*} >+ if [ ! -d $rundir ] ; then >+ install -d -m 0755 -o zabbix -g zabbix $rundir >+ fi >+ fi >+ >+ # This shouldn't be necessary with pidfile, but empirically it was the >+ # only way to reap the parent PID instead of all PIDs from >+ # check_process, which may leak SysV IPC objects and prevent restart >+ # and/or race condition on restart. >+ rc_pid=$(check_pidfile ${pidfile} ${command}) >+} >+ >+zabbix_server_cmd() >+{ >+ PATH=$zabbix_server_paths $command -c $zabbix_server_config >+} >+ >+run_rc_command "$1" >diff --git a/net-mgmt/zabbix5-server/pkg-descr b/net-mgmt/zabbix5-server/pkg-descr >new file mode 100644 >index 000000000000..28b4da564fbf >--- /dev/null >+++ b/net-mgmt/zabbix5-server/pkg-descr >@@ -0,0 +1,10 @@ >+Zabbix is an enterprise-class open source distributed monitoring solution. >+ >+Zabbix is software that monitors numerous parameters of a network and the >+health and integrity of servers. Zabbix uses a flexible notification >+mechanism that allows users to configure e-mail based alerts for virtually >+any event. This allows a fast reaction to server problems. Zabbix offers >+excellent reporting and data visualisation features based on the stored >+data. This makes Zabbix ideal for capacity planning. >+ >+WWW: https://www.zabbix.com/ >diff --git a/net-mgmt/zabbix5-server/pkg-plist b/net-mgmt/zabbix5-server/pkg-plist >new file mode 100644 >index 000000000000..7eeebfaa99e0 >--- /dev/null >+++ b/net-mgmt/zabbix5-server/pkg-plist >@@ -0,0 +1,22 @@ >+bin/zabbix_js >+%%DATADIR%%/%%ZABBIX_BUILD%%/database/mysql/data.sql >+%%DATADIR%%/%%ZABBIX_BUILD%%/database/mysql/images.sql >+%%DATADIR%%/%%ZABBIX_BUILD%%/database/mysql/schema.sql >+%%DATADIR%%/%%ZABBIX_BUILD%%/database/oracle/data.sql >+%%DATADIR%%/%%ZABBIX_BUILD%%/database/oracle/images.sql >+%%DATADIR%%/%%ZABBIX_BUILD%%/database/oracle/schema.sql >+%%DATADIR%%/%%ZABBIX_BUILD%%/database/postgresql/data.sql >+%%DATADIR%%/%%ZABBIX_BUILD%%/database/postgresql/images.sql >+%%DATADIR%%/%%ZABBIX_BUILD%%/database/postgresql/schema.sql >+%%DATADIR%%/%%ZABBIX_BUILD%%/database/postgresql/timescaledb.sql >+%%DATADIR%%/%%ZABBIX_BUILD%%/database/sqlite3/data.sql >+%%DATADIR%%/%%ZABBIX_BUILD%%/database/sqlite3/images.sql >+%%DATADIR%%/%%ZABBIX_BUILD%%/database/sqlite3/schema.sql >+%%ETCDIR%%/zabbix_%%ZABBIX_BUILD%%.conf.sample >+%%PROXY%%@dir %%ETCDIR%%/zabbix_proxy.conf.d >+%%SERVER%%@dir %%ETCDIR%%/zabbix_server.conf.d >+%%SERVER%%@dir %%ETCDIR%%/zabbix/alertscripts >+man/man8/zabbix_%%ZABBIX_BUILD%%.8.gz >+sbin/zabbix_%%ZABBIX_BUILD%% >+@dir %%ETCDIR%%/zabbix/externalscripts >+@dir lib/modules >diff --git a/net-mgmt/zabbix5-server/pkg-plist.agent b/net-mgmt/zabbix5-server/pkg-plist.agent >new file mode 100644 >index 000000000000..ca02f1d8b4eb >--- /dev/null >+++ b/net-mgmt/zabbix5-server/pkg-plist.agent >@@ -0,0 +1,9 @@ >+%%ETCDIR%%/zabbix_agentd.conf.sample >+bin/zabbix_get >+bin/zabbix_sender >+man/man1/zabbix_get.1.gz >+man/man1/zabbix_sender.1.gz >+man/man8/zabbix_%%ZABBIX_BUILD%%d.8.gz >+sbin/zabbix_agentd >+@dir %%ETCDIR%%/zabbix_agentd.conf.d >+@dir lib/modules >diff --git a/net-mgmt/zabbix5-server/pkg-plist.agent2 b/net-mgmt/zabbix5-server/pkg-plist.agent2 >new file mode 100644 >index 000000000000..9a3c1cab85b5 >--- /dev/null >+++ b/net-mgmt/zabbix5-server/pkg-plist.agent2 >@@ -0,0 +1,18 @@ >+%%ETCDIR%%/zabbix_%%ZABBIX_BUILD%%.conf.sample >+%%ETCDIR%%/zabbix_agentd.conf.sample >+sbin/zabbix_agentd >+%%DATADIR%%/%%ZABBIX_BUILD%%/database/mysql/data.sql >+%%DATADIR%%/%%ZABBIX_BUILD%%/database/mysql/images.sql >+%%DATADIR%%/%%ZABBIX_BUILD%%/database/mysql/schema.sql >+%%DATADIR%%/%%ZABBIX_BUILD%%/database/oracle/data.sql >+%%DATADIR%%/%%ZABBIX_BUILD%%/database/oracle/images.sql >+%%DATADIR%%/%%ZABBIX_BUILD%%/database/oracle/schema.sql >+%%DATADIR%%/%%ZABBIX_BUILD%%/database/postgresql/data.sql >+%%DATADIR%%/%%ZABBIX_BUILD%%/database/postgresql/images.sql >+%%DATADIR%%/%%ZABBIX_BUILD%%/database/postgresql/schema.sql >+%%DATADIR%%/%%ZABBIX_BUILD%%/database/postgresql/timescaledb.sql >+%%DATADIR%%/%%ZABBIX_BUILD%%/database/sqlite3/data.sql >+%%DATADIR%%/%%ZABBIX_BUILD%%/database/sqlite3/images.sql >+%%DATADIR%%/%%ZABBIX_BUILD%%/database/sqlite3/schema.sql >+@dir %%ETCDIR%%/zabbix_agentd.conf.d >+@dir lib/modules >diff --git a/net-mgmt/zabbix5-server/pkg-plist.frontend b/net-mgmt/zabbix5-server/pkg-plist.frontend >new file mode 100644 >index 000000000000..11cb579daf57 >--- /dev/null >+++ b/net-mgmt/zabbix5-server/pkg-plist.frontend >@@ -0,0 +1,1181 @@ >+%%WWWDIR%%/actionconf.php >+%%WWWDIR%%/api_jsonrpc.php >+%%WWWDIR%%/app/.htaccess >+%%WWWDIR%%/app/controllers/CControllerAuditLogList.php >+%%WWWDIR%%/app/controllers/CControllerAuthenticationEdit.php >+%%WWWDIR%%/app/controllers/CControllerAuthenticationUpdate.php >+%%WWWDIR%%/app/controllers/CControllerAutoregEdit.php >+%%WWWDIR%%/app/controllers/CControllerAutoregUpdate.php >+%%WWWDIR%%/app/controllers/CControllerCharts.php >+%%WWWDIR%%/app/controllers/CControllerChartsView.php >+%%WWWDIR%%/app/controllers/CControllerChartsViewJson.php >+%%WWWDIR%%/app/controllers/CControllerDashboardAbstract.php >+%%WWWDIR%%/app/controllers/CControllerDashboardDelete.php >+%%WWWDIR%%/app/controllers/CControllerDashboardList.php >+%%WWWDIR%%/app/controllers/CControllerDashboardPropertiesCheck.php >+%%WWWDIR%%/app/controllers/CControllerDashboardPropertiesEdit.php >+%%WWWDIR%%/app/controllers/CControllerDashboardShareEdit.php >+%%WWWDIR%%/app/controllers/CControllerDashboardShareUpdate.php >+%%WWWDIR%%/app/controllers/CControllerDashboardUpdate.php >+%%WWWDIR%%/app/controllers/CControllerDashboardView.php >+%%WWWDIR%%/app/controllers/CControllerDashboardWidgetCheck.php >+%%WWWDIR%%/app/controllers/CControllerDashboardWidgetConfigure.php >+%%WWWDIR%%/app/controllers/CControllerDashboardWidgetEdit.php >+%%WWWDIR%%/app/controllers/CControllerDashboardWidgetRfRate.php >+%%WWWDIR%%/app/controllers/CControllerDashboardWidgetSanitize.php >+%%WWWDIR%%/app/controllers/CControllerDiscoveryView.php >+%%WWWDIR%%/app/controllers/CControllerExportXml.php >+%%WWWDIR%%/app/controllers/CControllerFavouriteCreate.php >+%%WWWDIR%%/app/controllers/CControllerFavouriteDelete.php >+%%WWWDIR%%/app/controllers/CControllerGuiEdit.php >+%%WWWDIR%%/app/controllers/CControllerGuiUpdate.php >+%%WWWDIR%%/app/controllers/CControllerHost.php >+%%WWWDIR%%/app/controllers/CControllerHostMacrosList.php >+%%WWWDIR%%/app/controllers/CControllerHostView.php >+%%WWWDIR%%/app/controllers/CControllerHostViewRefresh.php >+%%WWWDIR%%/app/controllers/CControllerHousekeepingEdit.php >+%%WWWDIR%%/app/controllers/CControllerHousekeepingUpdate.php >+%%WWWDIR%%/app/controllers/CControllerIconMapCreate.php >+%%WWWDIR%%/app/controllers/CControllerIconMapDelete.php >+%%WWWDIR%%/app/controllers/CControllerIconMapEdit.php >+%%WWWDIR%%/app/controllers/CControllerIconMapList.php >+%%WWWDIR%%/app/controllers/CControllerIconMapUpdate.php >+%%WWWDIR%%/app/controllers/CControllerImageCreate.php >+%%WWWDIR%%/app/controllers/CControllerImageDelete.php >+%%WWWDIR%%/app/controllers/CControllerImageEdit.php >+%%WWWDIR%%/app/controllers/CControllerImageList.php >+%%WWWDIR%%/app/controllers/CControllerImageUpdate.php >+%%WWWDIR%%/app/controllers/CControllerLatest.php >+%%WWWDIR%%/app/controllers/CControllerLatestView.php >+%%WWWDIR%%/app/controllers/CControllerLatestViewRefresh.php >+%%WWWDIR%%/app/controllers/CControllerMacrosEdit.php >+%%WWWDIR%%/app/controllers/CControllerMacrosUpdate.php >+%%WWWDIR%%/app/controllers/CControllerMapView.php >+%%WWWDIR%%/app/controllers/CControllerMediatypeCreate.php >+%%WWWDIR%%/app/controllers/CControllerMediatypeDelete.php >+%%WWWDIR%%/app/controllers/CControllerMediatypeDisable.php >+%%WWWDIR%%/app/controllers/CControllerMediatypeEdit.php >+%%WWWDIR%%/app/controllers/CControllerMediatypeEnable.php >+%%WWWDIR%%/app/controllers/CControllerMediatypeList.php >+%%WWWDIR%%/app/controllers/CControllerMediatypeUpdate.php >+%%WWWDIR%%/app/controllers/CControllerMenuPopup.php >+%%WWWDIR%%/app/controllers/CControllerMiscConfigEdit.php >+%%WWWDIR%%/app/controllers/CControllerMiscConfigUpdate.php >+%%WWWDIR%%/app/controllers/CControllerModuleEdit.php >+%%WWWDIR%%/app/controllers/CControllerModuleList.php >+%%WWWDIR%%/app/controllers/CControllerModuleScan.php >+%%WWWDIR%%/app/controllers/CControllerModuleUpdate.php >+%%WWWDIR%%/app/controllers/CControllerNotificationsGet.php >+%%WWWDIR%%/app/controllers/CControllerNotificationsMute.php >+%%WWWDIR%%/app/controllers/CControllerNotificationsRead.php >+%%WWWDIR%%/app/controllers/CControllerPopup.php >+%%WWWDIR%%/app/controllers/CControllerPopupAcknowledgeCreate.php >+%%WWWDIR%%/app/controllers/CControllerPopupAcknowledgeEdit.php >+%%WWWDIR%%/app/controllers/CControllerPopupActionAcknowledge.php >+%%WWWDIR%%/app/controllers/CControllerPopupActionOperation.php >+%%WWWDIR%%/app/controllers/CControllerPopupActionRecovery.php >+%%WWWDIR%%/app/controllers/CControllerPopupConditionActions.php >+%%WWWDIR%%/app/controllers/CControllerPopupConditionCommon.php >+%%WWWDIR%%/app/controllers/CControllerPopupConditionEventCorr.php >+%%WWWDIR%%/app/controllers/CControllerPopupConditionOperations.php >+%%WWWDIR%%/app/controllers/CControllerPopupDiscoveryCheck.php >+%%WWWDIR%%/app/controllers/CControllerPopupGeneric.php >+%%WWWDIR%%/app/controllers/CControllerPopupHttpStep.php >+%%WWWDIR%%/app/controllers/CControllerPopupItemTest.php >+%%WWWDIR%%/app/controllers/CControllerPopupItemTestEdit.php >+%%WWWDIR%%/app/controllers/CControllerPopupItemTestGetValue.php >+%%WWWDIR%%/app/controllers/CControllerPopupItemTestSend.php >+%%WWWDIR%%/app/controllers/CControllerPopupLldOperation.php >+%%WWWDIR%%/app/controllers/CControllerPopupLldOverride.php >+%%WWWDIR%%/app/controllers/CControllerPopupMaintenancePeriod.php >+%%WWWDIR%%/app/controllers/CControllerPopupMedia.php >+%%WWWDIR%%/app/controllers/CControllerPopupMediatypeMessage.php >+%%WWWDIR%%/app/controllers/CControllerPopupMediatypeTestEdit.php >+%%WWWDIR%%/app/controllers/CControllerPopupMediatypeTestSend.php >+%%WWWDIR%%/app/controllers/CControllerPopupOperationCommon.php >+%%WWWDIR%%/app/controllers/CControllerPopupScriptExec.php >+%%WWWDIR%%/app/controllers/CControllerPopupServices.php >+%%WWWDIR%%/app/controllers/CControllerPopupTestTriggerExpr.php >+%%WWWDIR%%/app/controllers/CControllerPopupTriggerExpr.php >+%%WWWDIR%%/app/controllers/CControllerPopupTriggerWizard.php >+%%WWWDIR%%/app/controllers/CControllerProblemView.php >+%%WWWDIR%%/app/controllers/CControllerProfileUpdate.php >+%%WWWDIR%%/app/controllers/CControllerProxyCreate.php >+%%WWWDIR%%/app/controllers/CControllerProxyDelete.php >+%%WWWDIR%%/app/controllers/CControllerProxyEdit.php >+%%WWWDIR%%/app/controllers/CControllerProxyHostDisable.php >+%%WWWDIR%%/app/controllers/CControllerProxyHostEnable.php >+%%WWWDIR%%/app/controllers/CControllerProxyList.php >+%%WWWDIR%%/app/controllers/CControllerProxyUpdate.php >+%%WWWDIR%%/app/controllers/CControllerRegExCreate.php >+%%WWWDIR%%/app/controllers/CControllerRegExDelete.php >+%%WWWDIR%%/app/controllers/CControllerRegExEdit.php >+%%WWWDIR%%/app/controllers/CControllerRegExList.php >+%%WWWDIR%%/app/controllers/CControllerRegExTest.php >+%%WWWDIR%%/app/controllers/CControllerRegExUpdate.php >+%%WWWDIR%%/app/controllers/CControllerReportServices.php >+%%WWWDIR%%/app/controllers/CControllerReportStatus.php >+%%WWWDIR%%/app/controllers/CControllerScriptCreate.php >+%%WWWDIR%%/app/controllers/CControllerScriptDelete.php >+%%WWWDIR%%/app/controllers/CControllerScriptEdit.php >+%%WWWDIR%%/app/controllers/CControllerScriptList.php >+%%WWWDIR%%/app/controllers/CControllerScriptUpdate.php >+%%WWWDIR%%/app/controllers/CControllerSearch.php >+%%WWWDIR%%/app/controllers/CControllerSystemWarning.php >+%%WWWDIR%%/app/controllers/CControllerTimeSelectorUpdate.php >+%%WWWDIR%%/app/controllers/CControllerTrigDisplayEdit.php >+%%WWWDIR%%/app/controllers/CControllerTrigDisplayUpdate.php >+%%WWWDIR%%/app/controllers/CControllerTrigSeverityEdit.php >+%%WWWDIR%%/app/controllers/CControllerTrigSeverityUpdate.php >+%%WWWDIR%%/app/controllers/CControllerUserCreate.php >+%%WWWDIR%%/app/controllers/CControllerUserDelete.php >+%%WWWDIR%%/app/controllers/CControllerUserEdit.php >+%%WWWDIR%%/app/controllers/CControllerUserEditGeneral.php >+%%WWWDIR%%/app/controllers/CControllerUserList.php >+%%WWWDIR%%/app/controllers/CControllerUserProfileEdit.php >+%%WWWDIR%%/app/controllers/CControllerUserProfileUpdate.php >+%%WWWDIR%%/app/controllers/CControllerUserUnblock.php >+%%WWWDIR%%/app/controllers/CControllerUserUpdate.php >+%%WWWDIR%%/app/controllers/CControllerUserUpdateGeneral.php >+%%WWWDIR%%/app/controllers/CControllerUsergroupCreate.php >+%%WWWDIR%%/app/controllers/CControllerUsergroupDelete.php >+%%WWWDIR%%/app/controllers/CControllerUsergroupEdit.php >+%%WWWDIR%%/app/controllers/CControllerUsergroupGrouprightAdd.php >+%%WWWDIR%%/app/controllers/CControllerUsergroupList.php >+%%WWWDIR%%/app/controllers/CControllerUsergroupMassUpdate.php >+%%WWWDIR%%/app/controllers/CControllerUsergroupTagfilterAdd.php >+%%WWWDIR%%/app/controllers/CControllerUsergroupUpdate.php >+%%WWWDIR%%/app/controllers/CControllerValuemapCreate.php >+%%WWWDIR%%/app/controllers/CControllerValuemapDelete.php >+%%WWWDIR%%/app/controllers/CControllerValuemapEdit.php >+%%WWWDIR%%/app/controllers/CControllerValuemapList.php >+%%WWWDIR%%/app/controllers/CControllerValuemapUpdate.php >+%%WWWDIR%%/app/controllers/CControllerWebView.php >+%%WWWDIR%%/app/controllers/CControllerWidget.php >+%%WWWDIR%%/app/controllers/CControllerWidgetActionLogView.php >+%%WWWDIR%%/app/controllers/CControllerWidgetClockView.php >+%%WWWDIR%%/app/controllers/CControllerWidgetDataOverView.php >+%%WWWDIR%%/app/controllers/CControllerWidgetDiscoveryView.php >+%%WWWDIR%%/app/controllers/CControllerWidgetFavGraphsView.php >+%%WWWDIR%%/app/controllers/CControllerWidgetFavMapsView.php >+%%WWWDIR%%/app/controllers/CControllerWidgetFavScreensView.php >+%%WWWDIR%%/app/controllers/CControllerWidgetGraphView.php >+%%WWWDIR%%/app/controllers/CControllerWidgetHostAvailView.php >+%%WWWDIR%%/app/controllers/CControllerWidgetIterator.php >+%%WWWDIR%%/app/controllers/CControllerWidgetIteratorGraphPrototypeView.php >+%%WWWDIR%%/app/controllers/CControllerWidgetMapView.php >+%%WWWDIR%%/app/controllers/CControllerWidgetNavTreeItemEdit.php >+%%WWWDIR%%/app/controllers/CControllerWidgetNavTreeItemUpdate.php >+%%WWWDIR%%/app/controllers/CControllerWidgetNavTreeView.php >+%%WWWDIR%%/app/controllers/CControllerWidgetPlainTextView.php >+%%WWWDIR%%/app/controllers/CControllerWidgetProblemHostsView.php >+%%WWWDIR%%/app/controllers/CControllerWidgetProblemsBySvView.php >+%%WWWDIR%%/app/controllers/CControllerWidgetProblemsView.php >+%%WWWDIR%%/app/controllers/CControllerWidgetSvgGraphView.php >+%%WWWDIR%%/app/controllers/CControllerWidgetSystemInfoView.php >+%%WWWDIR%%/app/controllers/CControllerWidgetTrigOverView.php >+%%WWWDIR%%/app/controllers/CControllerWidgetUrlView.php >+%%WWWDIR%%/app/controllers/CControllerWidgetWebView.php >+%%WWWDIR%%/app/controllers/CControllerWorkingTimeEdit.php >+%%WWWDIR%%/app/controllers/CControllerWorkingTimeUpdate.php >+%%WWWDIR%%/app/partials/administration.usergroup.grouprights.html.php >+%%WWWDIR%%/app/partials/administration.usergroup.tagfilters.html.php >+%%WWWDIR%%/app/partials/common.filter.trigger.php >+%%WWWDIR%%/app/partials/configuration.tags.tab.php >+%%WWWDIR%%/app/partials/dataoverview.table.left.php >+%%WWWDIR%%/app/partials/dataoverview.table.top.php >+%%WWWDIR%%/app/partials/hostmacros.inherited.list.html.php >+%%WWWDIR%%/app/partials/hostmacros.list.html.php >+%%WWWDIR%%/app/partials/js/common.filter.trigger.js.php >+%%WWWDIR%%/app/partials/js/configuration.tags.tab.js.php >+%%WWWDIR%%/app/partials/js/massupdate.macros.tab.js.php >+%%WWWDIR%%/app/partials/layout.htmlpage.aside.php >+%%WWWDIR%%/app/partials/layout.htmlpage.footer.php >+%%WWWDIR%%/app/partials/layout.htmlpage.header.php >+%%WWWDIR%%/app/partials/massupdate.macros.tab.php >+%%WWWDIR%%/app/partials/monitoring.dashboard.breadcrumbs.php >+%%WWWDIR%%/app/partials/monitoring.host.view.html.php >+%%WWWDIR%%/app/partials/monitoring.latest.view.html.php >+%%WWWDIR%%/app/partials/trigoverview.table.left.php >+%%WWWDIR%%/app/partials/trigoverview.table.top.php >+%%WWWDIR%%/app/views/administration.authentication.edit.php >+%%WWWDIR%%/app/views/administration.autoreg.edit.php >+%%WWWDIR%%/app/views/administration.gui.edit.php >+%%WWWDIR%%/app/views/administration.housekeeping.edit.php >+%%WWWDIR%%/app/views/administration.iconmap.edit.php >+%%WWWDIR%%/app/views/administration.iconmap.list.php >+%%WWWDIR%%/app/views/administration.image.edit.php >+%%WWWDIR%%/app/views/administration.image.list.php >+%%WWWDIR%%/app/views/administration.macros.edit.php >+%%WWWDIR%%/app/views/administration.mediatype.edit.php >+%%WWWDIR%%/app/views/administration.mediatype.list.php >+%%WWWDIR%%/app/views/administration.miscconfig.edit.php >+%%WWWDIR%%/app/views/administration.module.edit.php >+%%WWWDIR%%/app/views/administration.module.list.php >+%%WWWDIR%%/app/views/administration.proxy.edit.php >+%%WWWDIR%%/app/views/administration.proxy.list.php >+%%WWWDIR%%/app/views/administration.regex.edit.php >+%%WWWDIR%%/app/views/administration.regex.list.php >+%%WWWDIR%%/app/views/administration.script.edit.php >+%%WWWDIR%%/app/views/administration.script.list.php >+%%WWWDIR%%/app/views/administration.trigdisplay.edit.php >+%%WWWDIR%%/app/views/administration.trigseverity.edit.php >+%%WWWDIR%%/app/views/administration.user.edit.php >+%%WWWDIR%%/app/views/administration.user.list.php >+%%WWWDIR%%/app/views/administration.usergroup.edit.php >+%%WWWDIR%%/app/views/administration.usergroup.grouprights.php >+%%WWWDIR%%/app/views/administration.usergroup.list.php >+%%WWWDIR%%/app/views/administration.usergroup.tagfilters.php >+%%WWWDIR%%/app/views/administration.valuemap.edit.php >+%%WWWDIR%%/app/views/administration.valuemap.list.php >+%%WWWDIR%%/app/views/administration.workingtime.edit.php >+%%WWWDIR%%/app/views/dashboard.properties.edit.php >+%%WWWDIR%%/app/views/dashboard.sharing.edit.php >+%%WWWDIR%%/app/views/hostmacros.list.php >+%%WWWDIR%%/app/views/js/administration.authentication.edit.js.php >+%%WWWDIR%%/app/views/js/administration.autoreg.edit.js.php >+%%WWWDIR%%/app/views/js/administration.housekeeping.edit.js.php >+%%WWWDIR%%/app/views/js/administration.iconmap.edit.js.php >+%%WWWDIR%%/app/views/js/administration.image.edit.js.php >+%%WWWDIR%%/app/views/js/administration.macros.edit.js.php >+%%WWWDIR%%/app/views/js/administration.mediatype.edit.js.php >+%%WWWDIR%%/app/views/js/administration.proxy.edit.js.php >+%%WWWDIR%%/app/views/js/administration.regex.edit.js.php >+%%WWWDIR%%/app/views/js/administration.script.edit.js.php >+%%WWWDIR%%/app/views/js/administration.trigdisplay.edit.js.php >+%%WWWDIR%%/app/views/js/administration.trigseverity.edit.js.php >+%%WWWDIR%%/app/views/js/administration.user.edit.common.js.php >+%%WWWDIR%%/app/views/js/administration.user.edit.js.php >+%%WWWDIR%%/app/views/js/administration.usergroup.edit.js.php >+%%WWWDIR%%/app/views/js/administration.userprofile.edit.js.php >+%%WWWDIR%%/app/views/js/administration.valuemap.edit.js.php >+%%WWWDIR%%/app/views/js/monitoring.charts.view.js.php >+%%WWWDIR%%/app/views/js/monitoring.dashboard.view.js.php >+%%WWWDIR%%/app/views/js/monitoring.host.view.js.php >+%%WWWDIR%%/app/views/js/monitoring.latest.view.js.php >+%%WWWDIR%%/app/views/js/monitoring.problem.view.js.php >+%%WWWDIR%%/app/views/js/popup.acknowledge.edit.js.php >+%%WWWDIR%%/app/views/js/popup.discovery.check.js.php >+%%WWWDIR%%/app/views/js/popup.itemtestedit.view.js.php >+%%WWWDIR%%/app/views/js/popup.maintenance.period.js.php >+%%WWWDIR%%/app/views/js/popup.media.js.php >+%%WWWDIR%%/app/views/js/popup.mediatype.message.js.php >+%%WWWDIR%%/app/views/js/popup.mediatypetest.edit.js.php >+%%WWWDIR%%/app/views/js/popup.triggerwizard.js.php >+%%WWWDIR%%/app/views/layout.csv.php >+%%WWWDIR%%/app/views/layout.htmlpage.php >+%%WWWDIR%%/app/views/layout.javascript.php >+%%WWWDIR%%/app/views/layout.json.php >+%%WWWDIR%%/app/views/layout.warning.php >+%%WWWDIR%%/app/views/layout.widget.php >+%%WWWDIR%%/app/views/layout.xml.php >+%%WWWDIR%%/app/views/monitoring.charts.view.json.php >+%%WWWDIR%%/app/views/monitoring.charts.view.php >+%%WWWDIR%%/app/views/monitoring.dashboard.list.php >+%%WWWDIR%%/app/views/monitoring.dashboard.view.php >+%%WWWDIR%%/app/views/monitoring.dashboard.widget.edit.php >+%%WWWDIR%%/app/views/monitoring.discovery.view.php >+%%WWWDIR%%/app/views/monitoring.host.view.php >+%%WWWDIR%%/app/views/monitoring.host.view.refresh.php >+%%WWWDIR%%/app/views/monitoring.latest.view.php >+%%WWWDIR%%/app/views/monitoring.latest.view.refresh.php >+%%WWWDIR%%/app/views/monitoring.map.view.php >+%%WWWDIR%%/app/views/monitoring.problem.view.php >+%%WWWDIR%%/app/views/monitoring.web.view.php >+%%WWWDIR%%/app/views/monitoring.widget.actionlog.view.php >+%%WWWDIR%%/app/views/monitoring.widget.clock.view.php >+%%WWWDIR%%/app/views/monitoring.widget.dataover.view.php >+%%WWWDIR%%/app/views/monitoring.widget.discovery.view.php >+%%WWWDIR%%/app/views/monitoring.widget.favgraphs.view.php >+%%WWWDIR%%/app/views/monitoring.widget.favmaps.view.php >+%%WWWDIR%%/app/views/monitoring.widget.favscreens.view.php >+%%WWWDIR%%/app/views/monitoring.widget.graph.view.php >+%%WWWDIR%%/app/views/monitoring.widget.hostavail.view.php >+%%WWWDIR%%/app/views/monitoring.widget.map.view.php >+%%WWWDIR%%/app/views/monitoring.widget.navtree.view.php >+%%WWWDIR%%/app/views/monitoring.widget.navtreeitem.edit.php >+%%WWWDIR%%/app/views/monitoring.widget.plaintext.view.php >+%%WWWDIR%%/app/views/monitoring.widget.problemhosts.view.php >+%%WWWDIR%%/app/views/monitoring.widget.problems.view.php >+%%WWWDIR%%/app/views/monitoring.widget.problemsbysv.view.php >+%%WWWDIR%%/app/views/monitoring.widget.svggraph.view.php >+%%WWWDIR%%/app/views/monitoring.widget.systeminfo.view.php >+%%WWWDIR%%/app/views/monitoring.widget.trigover.view.php >+%%WWWDIR%%/app/views/monitoring.widget.url.view.php >+%%WWWDIR%%/app/views/monitoring.widget.web.view.php >+%%WWWDIR%%/app/views/popup.acknowledge.edit.php >+%%WWWDIR%%/app/views/popup.condition.common.php >+%%WWWDIR%%/app/views/popup.discovery.check.php >+%%WWWDIR%%/app/views/popup.generic.php >+%%WWWDIR%%/app/views/popup.httpstep.php >+%%WWWDIR%%/app/views/popup.itemtestedit.view.php >+%%WWWDIR%%/app/views/popup.lldoperation.php >+%%WWWDIR%%/app/views/popup.lldoverride.php >+%%WWWDIR%%/app/views/popup.maintenance.period.php >+%%WWWDIR%%/app/views/popup.media.php >+%%WWWDIR%%/app/views/popup.mediatype.message.php >+%%WWWDIR%%/app/views/popup.mediatypetest.edit.php >+%%WWWDIR%%/app/views/popup.operation.common.php >+%%WWWDIR%%/app/views/popup.scriptexec.php >+%%WWWDIR%%/app/views/popup.services.php >+%%WWWDIR%%/app/views/popup.testtriggerexpr.php >+%%WWWDIR%%/app/views/popup.triggerexpr.php >+%%WWWDIR%%/app/views/popup.triggerwizard.php >+%%WWWDIR%%/app/views/popup.view.php >+%%WWWDIR%%/app/views/report.services.php >+%%WWWDIR%%/app/views/report.status.php >+%%WWWDIR%%/app/views/reports.auditlog.list.php >+%%WWWDIR%%/app/views/search.php >+%%WWWDIR%%/app/views/system.warning.php >+%%WWWDIR%%/applications.php >+%%WWWDIR%%/assets/fonts/DejaVuSans.ttf >+%%WWWDIR%%/assets/img/apple-touch-icon-120x120-precomposed.png >+%%WWWDIR%%/assets/img/apple-touch-icon-152x152-precomposed.png >+%%WWWDIR%%/assets/img/apple-touch-icon-180x180-precomposed.png >+%%WWWDIR%%/assets/img/apple-touch-icon-76x76-precomposed.png >+%%WWWDIR%%/assets/img/browser-sprite.png >+%%WWWDIR%%/assets/img/icon-sprite.svg >+%%WWWDIR%%/assets/img/ms-tile-144x144.png >+%%WWWDIR%%/assets/img/touch-icon-192x192.png >+%%WWWDIR%%/assets/styles/blue-theme.css >+%%WWWDIR%%/assets/styles/dark-theme.css >+%%WWWDIR%%/assets/styles/hc-dark.css >+%%WWWDIR%%/assets/styles/hc-light.css >+%%WWWDIR%%/audio/alarm_average.mp3 >+%%WWWDIR%%/audio/alarm_disaster.mp3 >+%%WWWDIR%%/audio/alarm_high.mp3 >+%%WWWDIR%%/audio/alarm_information.mp3 >+%%WWWDIR%%/audio/alarm_ok.mp3 >+%%WWWDIR%%/audio/alarm_warning.mp3 >+%%WWWDIR%%/audio/no_sound.mp3 >+%%WWWDIR%%/auditacts.php >+%%WWWDIR%%/browserwarning.php >+%%WWWDIR%%/chart.php >+%%WWWDIR%%/chart2.php >+%%WWWDIR%%/chart3.php >+%%WWWDIR%%/chart4.php >+%%WWWDIR%%/chart5.php >+%%WWWDIR%%/chart6.php >+%%WWWDIR%%/chart7.php >+%%WWWDIR%%/conf.import.php >+%%WWWDIR%%/conf/.htaccess >+%%WWWDIR%%/conf/maintenance.inc.php >+%%WWWDIR%%/conf/zabbix.conf.php.example >+%%WWWDIR%%/correlation.php >+%%WWWDIR%%/disc_prototypes.php >+%%WWWDIR%%/discoveryconf.php >+%%WWWDIR%%/favicon.ico >+%%WWWDIR%%/graphs.php >+%%WWWDIR%%/history.php >+%%WWWDIR%%/host_discovery.php >+%%WWWDIR%%/host_prototypes.php >+%%WWWDIR%%/host_screen.php >+%%WWWDIR%%/hostgroups.php >+%%WWWDIR%%/hostinventories.php >+%%WWWDIR%%/hostinventoriesoverview.php >+%%WWWDIR%%/hosts.php >+%%WWWDIR%%/httpconf.php >+%%WWWDIR%%/httpdetails.php >+%%WWWDIR%%/image.php >+%%WWWDIR%%/imgstore.php >+%%WWWDIR%%/include/.htaccess >+%%WWWDIR%%/include/actions.inc.php >+%%WWWDIR%%/include/audit.inc.php >+%%WWWDIR%%/include/blocks.inc.php >+%%WWWDIR%%/include/classes/api/API.php >+%%WWWDIR%%/include/classes/api/APIException.php >+%%WWWDIR%%/include/classes/api/CApiClientResponse.php >+%%WWWDIR%%/include/classes/api/CApiService.php >+%%WWWDIR%%/include/classes/api/CApiServiceFactory.php >+%%WWWDIR%%/include/classes/api/CAudit.php >+%%WWWDIR%%/include/classes/api/CRelationMap.php >+%%WWWDIR%%/include/classes/api/clients/CApiClient.php >+%%WWWDIR%%/include/classes/api/clients/CLocalApiClient.php >+%%WWWDIR%%/include/classes/api/helpers/CApiHostHelper.php >+%%WWWDIR%%/include/classes/api/helpers/CApiTagHelper.php >+%%WWWDIR%%/include/classes/api/managers/CApplicationManager.php >+%%WWWDIR%%/include/classes/api/managers/CGraphManager.php >+%%WWWDIR%%/include/classes/api/managers/CGraphPrototypeManager.php >+%%WWWDIR%%/include/classes/api/managers/CHistoryManager.php >+%%WWWDIR%%/include/classes/api/managers/CHttpTestManager.php >+%%WWWDIR%%/include/classes/api/managers/CItemManager.php >+%%WWWDIR%%/include/classes/api/managers/CItemPrototypeManager.php >+%%WWWDIR%%/include/classes/api/managers/CTriggerManager.php >+%%WWWDIR%%/include/classes/api/managers/CTriggerPrototypeManager.php >+%%WWWDIR%%/include/classes/api/services/CAPIInfo.php >+%%WWWDIR%%/include/classes/api/services/CAction.php >+%%WWWDIR%%/include/classes/api/services/CAlert.php >+%%WWWDIR%%/include/classes/api/services/CApplication.php >+%%WWWDIR%%/include/classes/api/services/CAuditLog.php >+%%WWWDIR%%/include/classes/api/services/CAutoregistration.php >+%%WWWDIR%%/include/classes/api/services/CConfiguration.php >+%%WWWDIR%%/include/classes/api/services/CCorrelation.php >+%%WWWDIR%%/include/classes/api/services/CDCheck.php >+%%WWWDIR%%/include/classes/api/services/CDHost.php >+%%WWWDIR%%/include/classes/api/services/CDRule.php >+%%WWWDIR%%/include/classes/api/services/CDService.php >+%%WWWDIR%%/include/classes/api/services/CDashboard.php >+%%WWWDIR%%/include/classes/api/services/CDiscoveryRule.php >+%%WWWDIR%%/include/classes/api/services/CEvent.php >+%%WWWDIR%%/include/classes/api/services/CGraph.php >+%%WWWDIR%%/include/classes/api/services/CGraphGeneral.php >+%%WWWDIR%%/include/classes/api/services/CGraphItem.php >+%%WWWDIR%%/include/classes/api/services/CGraphPrototype.php >+%%WWWDIR%%/include/classes/api/services/CHistory.php >+%%WWWDIR%%/include/classes/api/services/CHost.php >+%%WWWDIR%%/include/classes/api/services/CHostBase.php >+%%WWWDIR%%/include/classes/api/services/CHostGeneral.php >+%%WWWDIR%%/include/classes/api/services/CHostGroup.php >+%%WWWDIR%%/include/classes/api/services/CHostInterface.php >+%%WWWDIR%%/include/classes/api/services/CHostPrototype.php >+%%WWWDIR%%/include/classes/api/services/CHttpTest.php >+%%WWWDIR%%/include/classes/api/services/CIconMap.php >+%%WWWDIR%%/include/classes/api/services/CImage.php >+%%WWWDIR%%/include/classes/api/services/CItem.php >+%%WWWDIR%%/include/classes/api/services/CItemGeneral.php >+%%WWWDIR%%/include/classes/api/services/CItemPrototype.php >+%%WWWDIR%%/include/classes/api/services/CMaintenance.php >+%%WWWDIR%%/include/classes/api/services/CMap.php >+%%WWWDIR%%/include/classes/api/services/CMapElement.php >+%%WWWDIR%%/include/classes/api/services/CMediatype.php >+%%WWWDIR%%/include/classes/api/services/CModule.php >+%%WWWDIR%%/include/classes/api/services/CProblem.php >+%%WWWDIR%%/include/classes/api/services/CProxy.php >+%%WWWDIR%%/include/classes/api/services/CScreen.php >+%%WWWDIR%%/include/classes/api/services/CScreenItem.php >+%%WWWDIR%%/include/classes/api/services/CScript.php >+%%WWWDIR%%/include/classes/api/services/CService.php >+%%WWWDIR%%/include/classes/api/services/CTask.php >+%%WWWDIR%%/include/classes/api/services/CTemplate.php >+%%WWWDIR%%/include/classes/api/services/CTemplateScreen.php >+%%WWWDIR%%/include/classes/api/services/CTemplateScreenItem.php >+%%WWWDIR%%/include/classes/api/services/CTrend.php >+%%WWWDIR%%/include/classes/api/services/CTrigger.php >+%%WWWDIR%%/include/classes/api/services/CTriggerGeneral.php >+%%WWWDIR%%/include/classes/api/services/CTriggerPrototype.php >+%%WWWDIR%%/include/classes/api/services/CUser.php >+%%WWWDIR%%/include/classes/api/services/CUserGroup.php >+%%WWWDIR%%/include/classes/api/services/CUserMacro.php >+%%WWWDIR%%/include/classes/api/services/CValueMap.php >+%%WWWDIR%%/include/classes/api/wrappers/CApiWrapper.php >+%%WWWDIR%%/include/classes/api/wrappers/CFrontendApiWrapper.php >+%%WWWDIR%%/include/classes/core/APP.php >+%%WWWDIR%%/include/classes/core/CAjaxResponse.php >+%%WWWDIR%%/include/classes/core/CAutoloader.php >+%%WWWDIR%%/include/classes/core/CComponentRegistry.php >+%%WWWDIR%%/include/classes/core/CConfigFile.php >+%%WWWDIR%%/include/classes/core/CHttpRequest.php >+%%WWWDIR%%/include/classes/core/CJsonRpc.php >+%%WWWDIR%%/include/classes/core/CModule.php >+%%WWWDIR%%/include/classes/core/CModuleManager.php >+%%WWWDIR%%/include/classes/core/CRegistryFactory.php >+%%WWWDIR%%/include/classes/core/CSession.php >+%%WWWDIR%%/include/classes/core/ConfigFileException.php >+%%WWWDIR%%/include/classes/core/Manager.php >+%%WWWDIR%%/include/classes/core/ZBase.php >+%%WWWDIR%%/include/classes/db/DB.php >+%%WWWDIR%%/include/classes/db/DBException.php >+%%WWWDIR%%/include/classes/db/DbBackend.php >+%%WWWDIR%%/include/classes/db/MysqlDbBackend.php >+%%WWWDIR%%/include/classes/db/OracleDbBackend.php >+%%WWWDIR%%/include/classes/db/PostgresqlDbBackend.php >+%%WWWDIR%%/include/classes/debug/CProfiler.php >+%%WWWDIR%%/include/classes/export/CConfigurationExport.php >+%%WWWDIR%%/include/classes/export/CConfigurationExportBuilder.php >+%%WWWDIR%%/include/classes/export/CConfigurationExportException.php >+%%WWWDIR%%/include/classes/export/writers/CExportWriter.php >+%%WWWDIR%%/include/classes/export/writers/CExportWriterFactory.php >+%%WWWDIR%%/include/classes/export/writers/CJsonExportWriter.php >+%%WWWDIR%%/include/classes/export/writers/CXmlExportWriter.php >+%%WWWDIR%%/include/classes/graph/CSvgGraph.php >+%%WWWDIR%%/include/classes/graphdraw/CGraphDraw.php >+%%WWWDIR%%/include/classes/graphdraw/CLineGraphDraw.php >+%%WWWDIR%%/include/classes/graphdraw/CPieGraphDraw.php >+%%WWWDIR%%/include/classes/helpers/CArrayHelper.php >+%%WWWDIR%%/include/classes/helpers/CBrandHelper.php >+%%WWWDIR%%/include/classes/helpers/CConditionHelper.php >+%%WWWDIR%%/include/classes/helpers/CElasticsearchHelper.php >+%%WWWDIR%%/include/classes/helpers/CHtml.php >+%%WWWDIR%%/include/classes/helpers/CMapHelper.php >+%%WWWDIR%%/include/classes/helpers/CMathHelper.php >+%%WWWDIR%%/include/classes/helpers/CMediatypeHelper.php >+%%WWWDIR%%/include/classes/helpers/CMenuPopupHelper.php >+%%WWWDIR%%/include/classes/helpers/CPagerHelper.php >+%%WWWDIR%%/include/classes/helpers/CSvgGraphHelper.php >+%%WWWDIR%%/include/classes/helpers/CUploadFile.php >+%%WWWDIR%%/include/classes/helpers/CViewHelper.php >+%%WWWDIR%%/include/classes/html/CActionButtonList.php >+%%WWWDIR%%/include/classes/html/CButton.php >+%%WWWDIR%%/include/classes/html/CButtonCancel.php >+%%WWWDIR%%/include/classes/html/CButtonDelete.php >+%%WWWDIR%%/include/classes/html/CButtonDropdown.php >+%%WWWDIR%%/include/classes/html/CButtonQMessage.php >+%%WWWDIR%%/include/classes/html/CCheckBox.php >+%%WWWDIR%%/include/classes/html/CCheckBoxList.php >+%%WWWDIR%%/include/classes/html/CClock.php >+%%WWWDIR%%/include/classes/html/CCol.php >+%%WWWDIR%%/include/classes/html/CColHeader.php >+%%WWWDIR%%/include/classes/html/CCollapsibleUiWidget.php >+%%WWWDIR%%/include/classes/html/CColor.php >+%%WWWDIR%%/include/classes/html/CComboBox.php >+%%WWWDIR%%/include/classes/html/CComboItem.php >+%%WWWDIR%%/include/classes/html/CDashboardWidgetMap.php >+%%WWWDIR%%/include/classes/html/CDateSelector.php >+%%WWWDIR%%/include/classes/html/CDiv.php >+%%WWWDIR%%/include/classes/html/CFile.php >+%%WWWDIR%%/include/classes/html/CFilter.php >+%%WWWDIR%%/include/classes/html/CForm.php >+%%WWWDIR%%/include/classes/html/CFormList.php >+%%WWWDIR%%/include/classes/html/CHorList.php >+%%WWWDIR%%/include/classes/html/CIFrame.php >+%%WWWDIR%%/include/classes/html/CImageTextTable.php >+%%WWWDIR%%/include/classes/html/CImg.php >+%%WWWDIR%%/include/classes/html/CInput.php >+%%WWWDIR%%/include/classes/html/CInputSecret.php >+%%WWWDIR%%/include/classes/html/CJsScript.php >+%%WWWDIR%%/include/classes/html/CLabel.php >+%%WWWDIR%%/include/classes/html/CLink.php >+%%WWWDIR%%/include/classes/html/CLinkAction.php >+%%WWWDIR%%/include/classes/html/CList.php >+%%WWWDIR%%/include/classes/html/CListBox.php >+%%WWWDIR%%/include/classes/html/CListItem.php >+%%WWWDIR%%/include/classes/html/CMacroValue.php >+%%WWWDIR%%/include/classes/html/CMenu.php >+%%WWWDIR%%/include/classes/html/CMenuItem.php >+%%WWWDIR%%/include/classes/html/CMultiSelect.php >+%%WWWDIR%%/include/classes/html/CMultilineInput.php >+%%WWWDIR%%/include/classes/html/CNavigationTree.php >+%%WWWDIR%%/include/classes/html/CNumericBox.php >+%%WWWDIR%%/include/classes/html/CObject.php >+%%WWWDIR%%/include/classes/html/CParam.php >+%%WWWDIR%%/include/classes/html/CPassBox.php >+%%WWWDIR%%/include/classes/html/CPatternSelect.php >+%%WWWDIR%%/include/classes/html/CPre.php >+%%WWWDIR%%/include/classes/html/CRadioButtonList.php >+%%WWWDIR%%/include/classes/html/CRangeControl.php >+%%WWWDIR%%/include/classes/html/CRedirectButton.php >+%%WWWDIR%%/include/classes/html/CRow.php >+%%WWWDIR%%/include/classes/html/CRowHeader.php >+%%WWWDIR%%/include/classes/html/CScriptTag.php >+%%WWWDIR%%/include/classes/html/CSeverity.php >+%%WWWDIR%%/include/classes/html/CSeverityCheckBoxList.php >+%%WWWDIR%%/include/classes/html/CSimpleButton.php >+%%WWWDIR%%/include/classes/html/CSpan.php >+%%WWWDIR%%/include/classes/html/CSubmit.php >+%%WWWDIR%%/include/classes/html/CSubmitButton.php >+%%WWWDIR%%/include/classes/html/CSup.php >+%%WWWDIR%%/include/classes/html/CTabView.php >+%%WWWDIR%%/include/classes/html/CTable.php >+%%WWWDIR%%/include/classes/html/CTableInfo.php >+%%WWWDIR%%/include/classes/html/CTag.php >+%%WWWDIR%%/include/classes/html/CTextArea.php >+%%WWWDIR%%/include/classes/html/CTextAreaFlexible.php >+%%WWWDIR%%/include/classes/html/CTextBox.php >+%%WWWDIR%%/include/classes/html/CTriggersInfo.php >+%%WWWDIR%%/include/classes/html/CUiWidget.php >+%%WWWDIR%%/include/classes/html/CVar.php >+%%WWWDIR%%/include/classes/html/CVisibilityBox.php >+%%WWWDIR%%/include/classes/html/CWarning.php >+%%WWWDIR%%/include/classes/html/interfaces/CButtonInterface.php >+%%WWWDIR%%/include/classes/html/pageheader/CPageHeader.php >+%%WWWDIR%%/include/classes/html/svg/CSvg.php >+%%WWWDIR%%/include/classes/html/svg/CSvgCircle.php >+%%WWWDIR%%/include/classes/html/svg/CSvgGraphAnnotation.php >+%%WWWDIR%%/include/classes/html/svg/CSvgGraphArea.php >+%%WWWDIR%%/include/classes/html/svg/CSvgGraphAxis.php >+%%WWWDIR%%/include/classes/html/svg/CSvgGraphBar.php >+%%WWWDIR%%/include/classes/html/svg/CSvgGraphGrid.php >+%%WWWDIR%%/include/classes/html/svg/CSvgGraphLegend.php >+%%WWWDIR%%/include/classes/html/svg/CSvgGraphLine.php >+%%WWWDIR%%/include/classes/html/svg/CSvgGraphLineGroup.php >+%%WWWDIR%%/include/classes/html/svg/CSvgGraphPoints.php >+%%WWWDIR%%/include/classes/html/svg/CSvgGroup.php >+%%WWWDIR%%/include/classes/html/svg/CSvgLine.php >+%%WWWDIR%%/include/classes/html/svg/CSvgPath.php >+%%WWWDIR%%/include/classes/html/svg/CSvgPolygon.php >+%%WWWDIR%%/include/classes/html/svg/CSvgRect.php >+%%WWWDIR%%/include/classes/html/svg/CSvgTag.php >+%%WWWDIR%%/include/classes/html/svg/CSvgText.php >+%%WWWDIR%%/include/classes/html/widget/CWidget.php >+%%WWWDIR%%/include/classes/import/CConfigurationImport.php >+%%WWWDIR%%/include/classes/import/CImportDataAdapter.php >+%%WWWDIR%%/include/classes/import/CImportReferencer.php >+%%WWWDIR%%/include/classes/import/CImportedObjectContainer.php >+%%WWWDIR%%/include/classes/import/converters/C10ImportConverter.php >+%%WWWDIR%%/include/classes/import/converters/C10ItemKeyConverter.php >+%%WWWDIR%%/include/classes/import/converters/C10TriggerConverter.php >+%%WWWDIR%%/include/classes/import/converters/C20ImportConverter.php >+%%WWWDIR%%/include/classes/import/converters/C20ItemKeyConverter.php >+%%WWWDIR%%/include/classes/import/converters/C20TriggerConverter.php >+%%WWWDIR%%/include/classes/import/converters/C30ImportConverter.php >+%%WWWDIR%%/include/classes/import/converters/C32ImportConverter.php >+%%WWWDIR%%/include/classes/import/converters/C34ImportConverter.php >+%%WWWDIR%%/include/classes/import/converters/C40ImportConverter.php >+%%WWWDIR%%/include/classes/import/converters/C42ImportConverter.php >+%%WWWDIR%%/include/classes/import/converters/C44ImportConverter.php >+%%WWWDIR%%/include/classes/import/converters/CArrayKeysImportConverter.php >+%%WWWDIR%%/include/classes/import/converters/CConstantImportConverter.php >+%%WWWDIR%%/include/classes/import/converters/CConverter.php >+%%WWWDIR%%/include/classes/import/converters/CDefaultImportConverter.php >+%%WWWDIR%%/include/classes/import/converters/CImportConverterFactory.php >+%%WWWDIR%%/include/classes/import/converters/CTransformImportConverter.php >+%%WWWDIR%%/include/classes/import/importers/CAbstractScreenImporter.php >+%%WWWDIR%%/include/classes/import/importers/CHostImporter.php >+%%WWWDIR%%/include/classes/import/importers/CImporter.php >+%%WWWDIR%%/include/classes/import/importers/CMapImporter.php >+%%WWWDIR%%/include/classes/import/importers/CScreenImporter.php >+%%WWWDIR%%/include/classes/import/importers/CTemplateImporter.php >+%%WWWDIR%%/include/classes/import/importers/CTemplateScreenImporter.php >+%%WWWDIR%%/include/classes/import/readers/CImportReader.php >+%%WWWDIR%%/include/classes/import/readers/CImportReaderFactory.php >+%%WWWDIR%%/include/classes/import/readers/CJsonImportReader.php >+%%WWWDIR%%/include/classes/import/readers/CXmlImportReader.php >+%%WWWDIR%%/include/classes/import/validators/C10XmlValidator.php >+%%WWWDIR%%/include/classes/import/validators/C20XmlValidator.php >+%%WWWDIR%%/include/classes/import/validators/C30XmlValidator.php >+%%WWWDIR%%/include/classes/import/validators/C32XmlValidator.php >+%%WWWDIR%%/include/classes/import/validators/C34XmlValidator.php >+%%WWWDIR%%/include/classes/import/validators/C40XmlValidator.php >+%%WWWDIR%%/include/classes/import/validators/C42XmlValidator.php >+%%WWWDIR%%/include/classes/import/validators/C44XmlValidator.php >+%%WWWDIR%%/include/classes/import/validators/C50XmlValidator.php >+%%WWWDIR%%/include/classes/import/validators/CImportValidatorFactory.php >+%%WWWDIR%%/include/classes/import/validators/CXmlValidator.php >+%%WWWDIR%%/include/classes/import/validators/CXmlValidatorGeneral.php >+%%WWWDIR%%/include/classes/items/CHelpItems.php >+%%WWWDIR%%/include/classes/ldap/CLdap.php >+%%WWWDIR%%/include/classes/macros/CMacrosResolver.php >+%%WWWDIR%%/include/classes/macros/CMacrosResolverGeneral.php >+%%WWWDIR%%/include/classes/macros/CMacrosResolverHelper.php >+%%WWWDIR%%/include/classes/mvc/CController.php >+%%WWWDIR%%/include/classes/mvc/CControllerResponse.php >+%%WWWDIR%%/include/classes/mvc/CControllerResponseData.php >+%%WWWDIR%%/include/classes/mvc/CControllerResponseFatal.php >+%%WWWDIR%%/include/classes/mvc/CControllerResponseRedirect.php >+%%WWWDIR%%/include/classes/mvc/CLegacyAction.php >+%%WWWDIR%%/include/classes/mvc/CPartial.php >+%%WWWDIR%%/include/classes/mvc/CRouter.php >+%%WWWDIR%%/include/classes/mvc/CView.php >+%%WWWDIR%%/include/classes/parsers/CADNameAttributeParser.php >+%%WWWDIR%%/include/classes/parsers/CAbsoluteTimeParser.php >+%%WWWDIR%%/include/classes/parsers/CConditionFormula.php >+%%WWWDIR%%/include/classes/parsers/CDnsParser.php >+%%WWWDIR%%/include/classes/parsers/CFlexibleIntervalParser.php >+%%WWWDIR%%/include/classes/parsers/CFunctionIdParser.php >+%%WWWDIR%%/include/classes/parsers/CFunctionMacroParser.php >+%%WWWDIR%%/include/classes/parsers/CFunctionParser.php >+%%WWWDIR%%/include/classes/parsers/CHostGroupNameParser.php >+%%WWWDIR%%/include/classes/parsers/CHostNameParser.php >+%%WWWDIR%%/include/classes/parsers/CIPParser.php >+%%WWWDIR%%/include/classes/parsers/CIPRangeParser.php >+%%WWWDIR%%/include/classes/parsers/CIPv4Parser.php >+%%WWWDIR%%/include/classes/parsers/CIPv6Parser.php >+%%WWWDIR%%/include/classes/parsers/CItemKey.php >+%%WWWDIR%%/include/classes/parsers/CLLDMacroFunctionParser.php >+%%WWWDIR%%/include/classes/parsers/CLLDMacroParser.php >+%%WWWDIR%%/include/classes/parsers/CMacroFunctionParser.php >+%%WWWDIR%%/include/classes/parsers/CMacroParser.php >+%%WWWDIR%%/include/classes/parsers/CNumberParser.php >+%%WWWDIR%%/include/classes/parsers/CParser.php >+%%WWWDIR%%/include/classes/parsers/CPrometheusOutputParser.php >+%%WWWDIR%%/include/classes/parsers/CPrometheusPatternParser.php >+%%WWWDIR%%/include/classes/parsers/CRangeParser.php >+%%WWWDIR%%/include/classes/parsers/CRangeTimeParser.php >+%%WWWDIR%%/include/classes/parsers/CRangesParser.php >+%%WWWDIR%%/include/classes/parsers/CReferenceParser.php >+%%WWWDIR%%/include/classes/parsers/CRelativeTimeParser.php >+%%WWWDIR%%/include/classes/parsers/CReplacementParser.php >+%%WWWDIR%%/include/classes/parsers/CSchedulingIntervalParser.php >+%%WWWDIR%%/include/classes/parsers/CSetParser.php >+%%WWWDIR%%/include/classes/parsers/CSimpleIntervalParser.php >+%%WWWDIR%%/include/classes/parsers/CTimePeriodParser.php >+%%WWWDIR%%/include/classes/parsers/CTimePeriodsParser.php >+%%WWWDIR%%/include/classes/parsers/CTriggerExpression.php >+%%WWWDIR%%/include/classes/parsers/CUpdateIntervalParser.php >+%%WWWDIR%%/include/classes/parsers/CUserMacroParser.php >+%%WWWDIR%%/include/classes/parsers/CValidationRule.php >+%%WWWDIR%%/include/classes/parsers/results/CParserResult.php >+%%WWWDIR%%/include/classes/parsers/results/CTriggerExprParserResult.php >+%%WWWDIR%%/include/classes/regexp/CGlobalRegexp.php >+%%WWWDIR%%/include/classes/routing/CUrl.php >+%%WWWDIR%%/include/classes/routing/CUrlFactory.php >+%%WWWDIR%%/include/classes/screens/CScreenActions.php >+%%WWWDIR%%/include/classes/screens/CScreenBase.php >+%%WWWDIR%%/include/classes/screens/CScreenBuilder.php >+%%WWWDIR%%/include/classes/screens/CScreenClock.php >+%%WWWDIR%%/include/classes/screens/CScreenDataOverview.php >+%%WWWDIR%%/include/classes/screens/CScreenDiscovery.php >+%%WWWDIR%%/include/classes/screens/CScreenEvents.php >+%%WWWDIR%%/include/classes/screens/CScreenGraph.php >+%%WWWDIR%%/include/classes/screens/CScreenHistory.php >+%%WWWDIR%%/include/classes/screens/CScreenHostTriggers.php >+%%WWWDIR%%/include/classes/screens/CScreenHostgroupTriggers.php >+%%WWWDIR%%/include/classes/screens/CScreenHostsInfo.php >+%%WWWDIR%%/include/classes/screens/CScreenHttpTest.php >+%%WWWDIR%%/include/classes/screens/CScreenHttpTestDetails.php >+%%WWWDIR%%/include/classes/screens/CScreenLldGraph.php >+%%WWWDIR%%/include/classes/screens/CScreenLldGraphBase.php >+%%WWWDIR%%/include/classes/screens/CScreenLldSimpleGraph.php >+%%WWWDIR%%/include/classes/screens/CScreenMap.php >+%%WWWDIR%%/include/classes/screens/CScreenPlainText.php >+%%WWWDIR%%/include/classes/screens/CScreenProblem.php >+%%WWWDIR%%/include/classes/screens/CScreenServerInfo.php >+%%WWWDIR%%/include/classes/screens/CScreenSimpleGraph.php >+%%WWWDIR%%/include/classes/screens/CScreenSystemStatus.php >+%%WWWDIR%%/include/classes/screens/CScreenTriggersInfo.php >+%%WWWDIR%%/include/classes/screens/CScreenTriggersOverview.php >+%%WWWDIR%%/include/classes/screens/CScreenUrl.php >+%%WWWDIR%%/include/classes/server/CZabbixServer.php >+%%WWWDIR%%/include/classes/services/CServicesSlaCalculator.php >+%%WWWDIR%%/include/classes/setup/CFrontendSetup.php >+%%WWWDIR%%/include/classes/setup/CSetupWizard.php >+%%WWWDIR%%/include/classes/tree/CServiceTree.php >+%%WWWDIR%%/include/classes/tree/CTree.php >+%%WWWDIR%%/include/classes/triggers/CTextTriggerConstructor.php >+%%WWWDIR%%/include/classes/user/CFavorite.php >+%%WWWDIR%%/include/classes/user/CProfile.php >+%%WWWDIR%%/include/classes/user/CWebUser.php >+%%WWWDIR%%/include/classes/validators/CActionCondValidator.php >+%%WWWDIR%%/include/classes/validators/CApiInputValidator.php >+%%WWWDIR%%/include/classes/validators/CCollectionValidator.php >+%%WWWDIR%%/include/classes/validators/CColorValidator.php >+%%WWWDIR%%/include/classes/validators/CEmailValidator.php >+%%WWWDIR%%/include/classes/validators/CEventCorrCondValidator.php >+%%WWWDIR%%/include/classes/validators/CFunctionValidator.php >+%%WWWDIR%%/include/classes/validators/CHtmlUrlValidator.php >+%%WWWDIR%%/include/classes/validators/CIdValidator.php >+%%WWWDIR%%/include/classes/validators/CLdapAuthValidator.php >+%%WWWDIR%%/include/classes/validators/CLimitedSetValidator.php >+%%WWWDIR%%/include/classes/validators/CNewValidator.php >+%%WWWDIR%%/include/classes/validators/CPartialValidatorInterface.php >+%%WWWDIR%%/include/classes/validators/CRegexValidator.php >+%%WWWDIR%%/include/classes/validators/CStringValidator.php >+%%WWWDIR%%/include/classes/validators/CValidator.php >+%%WWWDIR%%/include/classes/validators/event/CEventSourceObjectValidator.php >+%%WWWDIR%%/include/classes/validators/host/CHostNormalValidator.php >+%%WWWDIR%%/include/classes/validators/object/CConditionValidator.php >+%%WWWDIR%%/include/classes/validators/object/CUpdateDiscoveredValidator.php >+%%WWWDIR%%/include/classes/validators/schema/CSchemaValidator.php >+%%WWWDIR%%/include/classes/widgets/CWidgetConfig.php >+%%WWWDIR%%/include/classes/widgets/CWidgetHelper.php >+%%WWWDIR%%/include/classes/widgets/fields/CWidgetField.php >+%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldApplication.php >+%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldCheckBox.php >+%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldCheckBoxList.php >+%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldComboBox.php >+%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldDatePicker.php >+%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldGraphDataSet.php >+%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldGraphOverride.php >+%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldHidden.php >+%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldHostPatternSelect.php >+%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldIntegerBox.php >+%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldMs.php >+%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldMsGraph.php >+%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldMsGraphPrototype.php >+%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldMsGroup.php >+%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldMsHost.php >+%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldMsItem.php >+%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldMsItemPrototype.php >+%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldNavTree.php >+%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldNumericBox.php >+%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldRadioButtonList.php >+%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldRangeControl.php >+%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldReference.php >+%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldSelectResource.php >+%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldSeverities.php >+%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldTags.php >+%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldTextBox.php >+%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldUrl.php >+%%WWWDIR%%/include/classes/widgets/fields/CWidgetFieldWidgetListComboBox.php >+%%WWWDIR%%/include/classes/widgets/forms/CWidgetForm.php >+%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormActionLog.php >+%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormClock.php >+%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormDataOver.php >+%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormGraph.php >+%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormGraphPrototype.php >+%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormHostAvail.php >+%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormMap.php >+%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormNavTree.php >+%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormPlainText.php >+%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormProblemHosts.php >+%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormProblems.php >+%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormProblemsBySv.php >+%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormSvgGraph.php >+%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormTrigOver.php >+%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormUrl.php >+%%WWWDIR%%/include/classes/widgets/forms/CWidgetFormWeb.php >+%%WWWDIR%%/include/classes/widgets/views/widget.actionlog.form.view.php >+%%WWWDIR%%/include/classes/widgets/views/widget.clock.form.view.php >+%%WWWDIR%%/include/classes/widgets/views/widget.dataover.form.view.php >+%%WWWDIR%%/include/classes/widgets/views/widget.discovery.form.view.php >+%%WWWDIR%%/include/classes/widgets/views/widget.favgraphs.form.view.php >+%%WWWDIR%%/include/classes/widgets/views/widget.favmaps.form.view.php >+%%WWWDIR%%/include/classes/widgets/views/widget.favscreens.form.view.php >+%%WWWDIR%%/include/classes/widgets/views/widget.graph.form.view.php >+%%WWWDIR%%/include/classes/widgets/views/widget.graphprototype.form.view.php >+%%WWWDIR%%/include/classes/widgets/views/widget.hostavail.form.view.php >+%%WWWDIR%%/include/classes/widgets/views/widget.map.form.view.php >+%%WWWDIR%%/include/classes/widgets/views/widget.navtree.form.view.php >+%%WWWDIR%%/include/classes/widgets/views/widget.plaintext.form.view.php >+%%WWWDIR%%/include/classes/widgets/views/widget.problemhosts.form.view.php >+%%WWWDIR%%/include/classes/widgets/views/widget.problems.form.view.php >+%%WWWDIR%%/include/classes/widgets/views/widget.problemsbysv.form.view.php >+%%WWWDIR%%/include/classes/widgets/views/widget.svggraph.form.view.php >+%%WWWDIR%%/include/classes/widgets/views/widget.systeminfo.form.view.php >+%%WWWDIR%%/include/classes/widgets/views/widget.trigover.form.view.php >+%%WWWDIR%%/include/classes/widgets/views/widget.url.form.view.php >+%%WWWDIR%%/include/classes/widgets/views/widget.web.form.view.php >+%%WWWDIR%%/include/classes/xml/CXmlConstantName.php >+%%WWWDIR%%/include/classes/xml/CXmlConstantValue.php >+%%WWWDIR%%/include/config.inc.php >+%%WWWDIR%%/include/correlation.inc.php >+%%WWWDIR%%/include/db.inc.php >+%%WWWDIR%%/include/debug.inc.php >+%%WWWDIR%%/include/defines.inc.php >+%%WWWDIR%%/include/discovery.inc.php >+%%WWWDIR%%/include/draw.inc.php >+%%WWWDIR%%/include/events.inc.php >+%%WWWDIR%%/include/forms.inc.php >+%%WWWDIR%%/include/func.inc.php >+%%WWWDIR%%/include/gettextwrapper.inc.php >+%%WWWDIR%%/include/graphs.inc.php >+%%WWWDIR%%/include/hostgroups.inc.php >+%%WWWDIR%%/include/hosts.inc.php >+%%WWWDIR%%/include/html.inc.php >+%%WWWDIR%%/include/httptest.inc.php >+%%WWWDIR%%/include/ident.inc.php >+%%WWWDIR%%/include/images.inc.php >+%%WWWDIR%%/include/items.inc.php >+%%WWWDIR%%/include/js.inc.php >+%%WWWDIR%%/include/locales.inc.php >+%%WWWDIR%%/include/maintenances.inc.php >+%%WWWDIR%%/include/maps.inc.php >+%%WWWDIR%%/include/media.inc.php >+%%WWWDIR%%/include/menu.inc.php >+%%WWWDIR%%/include/page_footer.php >+%%WWWDIR%%/include/page_header.php >+%%WWWDIR%%/include/perm.inc.php >+%%WWWDIR%%/include/profiles.inc.php >+%%WWWDIR%%/include/regexp.inc.php >+%%WWWDIR%%/include/schema.inc.php >+%%WWWDIR%%/include/screens.inc.php >+%%WWWDIR%%/include/services.inc.php >+%%WWWDIR%%/include/sounds.inc.php >+%%WWWDIR%%/include/translateDefines.inc.php >+%%WWWDIR%%/include/triggers.inc.php >+%%WWWDIR%%/include/users.inc.php >+%%WWWDIR%%/include/validate.inc.php >+%%WWWDIR%%/include/valuemap.inc.php >+%%WWWDIR%%/include/views/administration.auditacts.list.php >+%%WWWDIR%%/include/views/conf.import.php >+%%WWWDIR%%/include/views/configuration.action.edit.php >+%%WWWDIR%%/include/views/configuration.action.list.php >+%%WWWDIR%%/include/views/configuration.application.edit.php >+%%WWWDIR%%/include/views/configuration.application.list.php >+%%WWWDIR%%/include/views/configuration.copy.elements.php >+%%WWWDIR%%/include/views/configuration.correlation.edit.php >+%%WWWDIR%%/include/views/configuration.correlation.list.php >+%%WWWDIR%%/include/views/configuration.discovery.edit.php >+%%WWWDIR%%/include/views/configuration.discovery.list.php >+%%WWWDIR%%/include/views/configuration.graph.edit.php >+%%WWWDIR%%/include/views/configuration.graph.list.php >+%%WWWDIR%%/include/views/configuration.host.discovery.edit.php >+%%WWWDIR%%/include/views/configuration.host.discovery.list.php >+%%WWWDIR%%/include/views/configuration.host.edit.php >+%%WWWDIR%%/include/views/configuration.host.list.php >+%%WWWDIR%%/include/views/configuration.host.massupdate.php >+%%WWWDIR%%/include/views/configuration.host.prototype.edit.php >+%%WWWDIR%%/include/views/configuration.host.prototype.list.php >+%%WWWDIR%%/include/views/configuration.hostgroups.edit.php >+%%WWWDIR%%/include/views/configuration.hostgroups.list.php >+%%WWWDIR%%/include/views/configuration.httpconf.edit.php >+%%WWWDIR%%/include/views/configuration.httpconf.list.php >+%%WWWDIR%%/include/views/configuration.item.edit.php >+%%WWWDIR%%/include/views/configuration.item.list.php >+%%WWWDIR%%/include/views/configuration.item.massupdate.php >+%%WWWDIR%%/include/views/configuration.item.prototype.edit.php >+%%WWWDIR%%/include/views/configuration.item.prototype.list.php >+%%WWWDIR%%/include/views/configuration.item.prototype.massupdate.php >+%%WWWDIR%%/include/views/configuration.maintenance.edit.php >+%%WWWDIR%%/include/views/configuration.maintenance.list.php >+%%WWWDIR%%/include/views/configuration.services.edit.php >+%%WWWDIR%%/include/views/configuration.services.list.php >+%%WWWDIR%%/include/views/configuration.template.edit.php >+%%WWWDIR%%/include/views/configuration.template.list.php >+%%WWWDIR%%/include/views/configuration.template.massupdate.php >+%%WWWDIR%%/include/views/configuration.trigger.prototype.edit.php >+%%WWWDIR%%/include/views/configuration.trigger.prototype.list.php >+%%WWWDIR%%/include/views/configuration.trigger.prototype.massupdate.php >+%%WWWDIR%%/include/views/configuration.triggers.edit.php >+%%WWWDIR%%/include/views/configuration.triggers.list.php >+%%WWWDIR%%/include/views/configuration.triggers.massupdate.php >+%%WWWDIR%%/include/views/general.browserwarning.php >+%%WWWDIR%%/include/views/general.login.php >+%%WWWDIR%%/include/views/general.warning.php >+%%WWWDIR%%/include/views/inventory.host.list.php >+%%WWWDIR%%/include/views/inventory.host.view.php >+%%WWWDIR%%/include/views/js/common.init.js.php >+%%WWWDIR%%/include/views/js/common.item.edit.js.php >+%%WWWDIR%%/include/views/js/common.template.edit.js.php >+%%WWWDIR%%/include/views/js/conf.import.js.php >+%%WWWDIR%%/include/views/js/configuration.action.edit.js.php >+%%WWWDIR%%/include/views/js/configuration.copy.elements.js.php >+%%WWWDIR%%/include/views/js/configuration.correlation.edit.js.php >+%%WWWDIR%%/include/views/js/configuration.discovery.edit.js.php >+%%WWWDIR%%/include/views/js/configuration.graph.edit.js.php >+%%WWWDIR%%/include/views/js/configuration.host.discovery.edit.js.php >+%%WWWDIR%%/include/views/js/configuration.host.discovery.edit.overr.js.php >+%%WWWDIR%%/include/views/js/configuration.host.discovery.list.js.php >+%%WWWDIR%%/include/views/js/configuration.host.edit.js.php >+%%WWWDIR%%/include/views/js/configuration.host.list.js.php >+%%WWWDIR%%/include/views/js/configuration.host.massupdate.js.php >+%%WWWDIR%%/include/views/js/configuration.host.prototype.edit.js.php >+%%WWWDIR%%/include/views/js/configuration.httpconf.edit.js.php >+%%WWWDIR%%/include/views/js/configuration.item.edit.js.php >+%%WWWDIR%%/include/views/js/configuration.item.list.js.php >+%%WWWDIR%%/include/views/js/configuration.item.massupdate.js.php >+%%WWWDIR%%/include/views/js/configuration.item.prototype.edit.js.php >+%%WWWDIR%%/include/views/js/configuration.maintenance.edit.js.php >+%%WWWDIR%%/include/views/js/configuration.services.edit.js.php >+%%WWWDIR%%/include/views/js/configuration.template.list.js.php >+%%WWWDIR%%/include/views/js/configuration.template.massupdate.js.php >+%%WWWDIR%%/include/views/js/configuration.trigger.massupdate.js.php >+%%WWWDIR%%/include/views/js/configuration.triggers.edit.js.php >+%%WWWDIR%%/include/views/js/configuration.triggers.list.js.php >+%%WWWDIR%%/include/views/js/editabletable.js.php >+%%WWWDIR%%/include/views/js/item.preprocessing.js.php >+%%WWWDIR%%/include/views/js/itemtest.js.php >+%%WWWDIR%%/include/views/js/monitoring.screen.edit.js.php >+%%WWWDIR%%/include/views/js/monitoring.screen.js.php >+%%WWWDIR%%/include/views/js/monitoring.slideconf.edit.js.php >+%%WWWDIR%%/include/views/js/monitoring.slides.js.php >+%%WWWDIR%%/include/views/js/monitoring.sysmap.edit.js.php >+%%WWWDIR%%/include/views/js/monitoring.sysmaps.js.php >+%%WWWDIR%%/include/views/monitoring.history.php >+%%WWWDIR%%/include/views/monitoring.hostscreen.php >+%%WWWDIR%%/include/views/monitoring.overview.items.php >+%%WWWDIR%%/include/views/monitoring.overview.triggers.php >+%%WWWDIR%%/include/views/monitoring.screen.constructor.edit.php >+%%WWWDIR%%/include/views/monitoring.screen.constructor.list.php >+%%WWWDIR%%/include/views/monitoring.screen.edit.php >+%%WWWDIR%%/include/views/monitoring.screen.list.php >+%%WWWDIR%%/include/views/monitoring.screen.php >+%%WWWDIR%%/include/views/monitoring.slideconf.edit.php >+%%WWWDIR%%/include/views/monitoring.slideconf.list.php >+%%WWWDIR%%/include/views/monitoring.slides.php >+%%WWWDIR%%/include/views/monitoring.sysmap.constructor.php >+%%WWWDIR%%/include/views/monitoring.sysmap.edit.php >+%%WWWDIR%%/include/views/monitoring.sysmap.list.php >+%%WWWDIR%%/include/views/reports.toptriggers.php >+%%WWWDIR%%/index.php >+%%WWWDIR%%/index_http.php >+%%WWWDIR%%/index_sso.php >+%%WWWDIR%%/items.php >+%%WWWDIR%%/js/browsers.js >+%%WWWDIR%%/js/chkbxrange.js >+%%WWWDIR%%/js/class.base-component.js >+%%WWWDIR%%/js/class.bbcode.js >+%%WWWDIR%%/js/class.browsertab.js >+%%WWWDIR%%/js/class.calendar.js >+%%WWWDIR%%/js/class.cclock.js >+%%WWWDIR%%/js/class.cdate.js >+%%WWWDIR%%/js/class.cdebug.js >+%%WWWDIR%%/js/class.cmap.js >+%%WWWDIR%%/js/class.cnavtree.js >+%%WWWDIR%%/js/class.cookie.js >+%%WWWDIR%%/js/class.coverride.js >+%%WWWDIR%%/js/class.crangecontrol.js >+%%WWWDIR%%/js/class.cscreen.js >+%%WWWDIR%%/js/class.csuggest.js >+%%WWWDIR%%/js/class.csvggraph.js >+%%WWWDIR%%/js/class.ctree.js >+%%WWWDIR%%/js/class.curl.js >+%%WWWDIR%%/js/class.cverticalaccordion.js >+%%WWWDIR%%/js/class.cviewswitcher.js >+%%WWWDIR%%/js/class.localstorage.js >+%%WWWDIR%%/js/class.mapWidget.js >+%%WWWDIR%%/js/class.menu-item.js >+%%WWWDIR%%/js/class.menu.js >+%%WWWDIR%%/js/class.notification.collection.js >+%%WWWDIR%%/js/class.notification.js >+%%WWWDIR%%/js/class.notifications.audio.js >+%%WWWDIR%%/js/class.notifications.js >+%%WWWDIR%%/js/class.overlay.js >+%%WWWDIR%%/js/class.overlaycollection.js >+%%WWWDIR%%/js/class.pmaster.js >+%%WWWDIR%%/js/class.rpc.js >+%%WWWDIR%%/js/class.scrollable.js >+%%WWWDIR%%/js/class.sidebar.js >+%%WWWDIR%%/js/class.template.js >+%%WWWDIR%%/js/colorpicker.js >+%%WWWDIR%%/js/common.js >+%%WWWDIR%%/js/csvggraphwidget.js >+%%WWWDIR%%/js/dashboard.grid.js >+%%WWWDIR%%/js/flickerfreescreen.js >+%%WWWDIR%%/js/functions.js >+%%WWWDIR%%/js/gtlc.js >+%%WWWDIR%%/js/init.js >+%%WWWDIR%%/js/inputsecret.js >+%%WWWDIR%%/js/layout.mode.js >+%%WWWDIR%%/js/macrovalue.js >+%%WWWDIR%%/js/main.js >+%%WWWDIR%%/js/menupopup.js >+%%WWWDIR%%/js/multilineinput.js >+%%WWWDIR%%/js/multiselect.js >+%%WWWDIR%%/js/pages/items.js >+%%WWWDIR%%/js/pages/popup.condition.common.js >+%%WWWDIR%%/js/pages/popup.operation.common.js >+%%WWWDIR%%/js/servercheck.js >+%%WWWDIR%%/js/textareaflexible.js >+%%WWWDIR%%/js/vector/class.svg.canvas.js >+%%WWWDIR%%/js/vector/class.svg.map.js >+%%WWWDIR%%/js/vendors/jquery-ui.js >+%%WWWDIR%%/js/vendors/jquery.js >+%%WWWDIR%%/jsLoader.php >+%%WWWDIR%%/jsrpc.php >+%%WWWDIR%%/local/.htaccess >+%%WWWDIR%%/local/README >+%%WWWDIR%%/locale/README >+%%WWWDIR%%/locale/add_new_language.sh >+%%WWWDIR%%/locale/bg/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/bg/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/ca/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/ca/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/cs/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/cs/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/de/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/de/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/el/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/el/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/en_US/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/en_US/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/es/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/es/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/fa/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/fa/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/fi/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/fi/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/fr/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/fr/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/he/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/he/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/hu/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/hu/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/id/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/id/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/it/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/it/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/ja/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/ja/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/ka/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/ka/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/ko/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/ko/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/lt/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/lt/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/lv/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/lv/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/make_mo.sh >+%%WWWDIR%%/locale/nb/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/nb/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/nl/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/nl/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/pl/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/pl/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/pt_BR/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/pt_BR/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/pt_PT/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/pt_PT/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/ro/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/ro/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/ru/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/ru/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/sk/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/sk/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/sv/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/sv/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/tr/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/tr/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/uk/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/uk/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/update_po.sh >+%%WWWDIR%%/locale/vi/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/vi/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/zh_CN/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/zh_CN/LC_MESSAGES/frontend.po >+%%WWWDIR%%/locale/zh_TW/LC_MESSAGES/frontend.mo >+%%WWWDIR%%/locale/zh_TW/LC_MESSAGES/frontend.po >+%%WWWDIR%%/maintenance.php >+%%WWWDIR%%/map.import.php >+%%WWWDIR%%/map.php >+%%WWWDIR%%/overview.php >+%%WWWDIR%%/queue.php >+%%WWWDIR%%/report2.php >+%%WWWDIR%%/report4.php >+%%WWWDIR%%/robots.txt >+%%WWWDIR%%/screen.import.php >+%%WWWDIR%%/screenconf.php >+%%WWWDIR%%/screenedit.php >+%%WWWDIR%%/screens.php >+%%WWWDIR%%/services.php >+%%WWWDIR%%/setup.php >+%%WWWDIR%%/slideconf.php >+%%WWWDIR%%/slides.php >+%%WWWDIR%%/srv_status.php >+%%WWWDIR%%/sysmap.php >+%%WWWDIR%%/sysmaps.php >+%%WWWDIR%%/templates.php >+%%WWWDIR%%/toptriggers.php >+%%WWWDIR%%/tr_events.php >+%%WWWDIR%%/trigger_prototypes.php >+%%WWWDIR%%/triggers.php >+%%WWWDIR%%/vendor/php-saml/CHANGELOG >+%%WWWDIR%%/vendor/php-saml/LICENSE >+%%WWWDIR%%/vendor/php-saml/README.md >+%%WWWDIR%%/vendor/php-saml/_toolkit_loader.php >+%%WWWDIR%%/vendor/php-saml/advanced_settings_example.php >+%%WWWDIR%%/vendor/php-saml/certs/README >+%%WWWDIR%%/vendor/php-saml/composer.json >+%%WWWDIR%%/vendor/php-saml/phpunit.xml >+%%WWWDIR%%/vendor/php-saml/settings_example.php >+%%WWWDIR%%/vendor/php-saml/src/Saml2/Auth.php >+%%WWWDIR%%/vendor/php-saml/src/Saml2/AuthnRequest.php >+%%WWWDIR%%/vendor/php-saml/src/Saml2/Constants.php >+%%WWWDIR%%/vendor/php-saml/src/Saml2/Error.php >+%%WWWDIR%%/vendor/php-saml/src/Saml2/IdPMetadataParser.php >+%%WWWDIR%%/vendor/php-saml/src/Saml2/LogoutRequest.php >+%%WWWDIR%%/vendor/php-saml/src/Saml2/LogoutResponse.php >+%%WWWDIR%%/vendor/php-saml/src/Saml2/Metadata.php >+%%WWWDIR%%/vendor/php-saml/src/Saml2/Response.php >+%%WWWDIR%%/vendor/php-saml/src/Saml2/Settings.php >+%%WWWDIR%%/vendor/php-saml/src/Saml2/Utils.php >+%%WWWDIR%%/vendor/php-saml/src/Saml2/ValidationError.php >+%%WWWDIR%%/vendor/php-saml/src/Saml2/schemas/saml-schema-assertion-2.0.xsd >+%%WWWDIR%%/vendor/php-saml/src/Saml2/schemas/saml-schema-authn-context-2.0.xsd >+%%WWWDIR%%/vendor/php-saml/src/Saml2/schemas/saml-schema-authn-context-types-2.0.xsd >+%%WWWDIR%%/vendor/php-saml/src/Saml2/schemas/saml-schema-metadata-2.0.xsd >+%%WWWDIR%%/vendor/php-saml/src/Saml2/schemas/saml-schema-protocol-2.0.xsd >+%%WWWDIR%%/vendor/php-saml/src/Saml2/schemas/sstc-metadata-attr.xsd >+%%WWWDIR%%/vendor/php-saml/src/Saml2/schemas/sstc-saml-attribute-ext.xsd >+%%WWWDIR%%/vendor/php-saml/src/Saml2/schemas/sstc-saml-metadata-algsupport-v1.0.xsd >+%%WWWDIR%%/vendor/php-saml/src/Saml2/schemas/sstc-saml-metadata-ui-v1.0.xsd >+%%WWWDIR%%/vendor/php-saml/src/Saml2/schemas/xenc-schema.xsd >+%%WWWDIR%%/vendor/php-saml/src/Saml2/schemas/xml.xsd >+%%WWWDIR%%/vendor/php-saml/src/Saml2/schemas/xmldsig-core-schema.xsd >+%%WWWDIR%%/vendor/php-saml/src/Saml2/version.json >+%%WWWDIR%%/vendor/xmlseclibs/CHANGELOG.txt >+%%WWWDIR%%/vendor/xmlseclibs/LICENSE >+%%WWWDIR%%/vendor/xmlseclibs/README.md >+%%WWWDIR%%/vendor/xmlseclibs/composer.json >+%%WWWDIR%%/vendor/xmlseclibs/src/Utils/XPath.php >+%%WWWDIR%%/vendor/xmlseclibs/src/XMLSecEnc.php >+%%WWWDIR%%/vendor/xmlseclibs/src/XMLSecurityDSig.php >+%%WWWDIR%%/vendor/xmlseclibs/src/XMLSecurityKey.php >+%%WWWDIR%%/vendor/xmlseclibs/xmlseclibs.php >+%%WWWDIR%%/zabbix.php >+@dir %%WWWDIR%%/conf/certs >+@dir %%WWWDIR%%/local/app/controllers >+@dir %%WWWDIR%%/local/app/partials >+@dir %%WWWDIR%%/local/app/views >+@dir %%WWWDIR%%/local/conf >+@dir %%WWWDIR%%/modules >diff --git a/net-mgmt/zabbix5-server/pkg-plist.java b/net-mgmt/zabbix5-server/pkg-plist.java >new file mode 100644 >index 000000000000..4b0bd8f968de >--- /dev/null >+++ b/net-mgmt/zabbix5-server/pkg-plist.java >@@ -0,0 +1,11 @@ >+sbin/zabbix_java/shutdown.sh >+sbin/zabbix_java/lib/logback-console.xml >+sbin/zabbix_java/lib/logback-core-0.9.27.jar >+sbin/zabbix_java/lib/logback-classic-0.9.27.jar >+sbin/zabbix_java/lib/logback.xml >+sbin/zabbix_java/lib/slf4j-api-1.6.1.jar >+sbin/zabbix_java/lib/android-json-4.3_r3.1.jar >+@sample sbin/zabbix_java/settings.sh.sample >+sbin/zabbix_java/startup.sh >+sbin/zabbix_java/bin/zabbix-java-gateway-%%PORTVERSION%%.jar >+@dir(zabbix,zabbix,755) /var/run/zabbix
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 246447
:
214622
|
214623
|
214691
|
214890
|
214918
|
215152