Bug 270013 - net-mgmt/zabbix6-frontend: add PHP extensions conditionally on port OPTIONs
Summary: net-mgmt/zabbix6-frontend: add PHP extensions conditionally on port OPTIONs
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: Juraj Lutter
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2023-03-07 18:31 UTC by Michael Osipov
Modified: 2023-03-09 21:09 UTC (History)
1 user (show)

See Also:
bugzilla: maintainer-feedback? (otis)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Michael Osipov 2023-03-07 18:31:18 UTC
Official documentation mentions only a few required PHP extensions: https://www.zabbix.com/documentation/current/en/manual/installation/frontend

For all the other optional extensions, there should be port OPTIONs just like for  net-mgmt/zabbix6-server.

My net-mgmt/zabbix6-server has configured:
        CURL           : on
        FPING          : on
        GNUTLS         : off
        IPMI           : off
        IPV6           : on
        LDAP           : off
        LIBXML2        : off
        MDB5           : off
        MDB6           : off
        MYSQL          : off
        MYSQLDV        : off
        NMAP           : off
        OPENSSL        : on
        ORACLE         : off
        PCRE1          : off
        PCRE2          : on
        PGSQL          : on
        SSH            : on
        UNIXODBC       : on

So, there are subject to OPTIONal:
dom
fileinfo
filter
hash
json
ldap
openssl
pcre
simplexml
snmp
Comment 1 Juraj Lutter freebsd_committer freebsd_triage 2023-03-07 18:35:56 UTC
This will be reconsidered and eventually also integrated in next update.
Comment 2 Michael Osipov 2023-03-07 18:56:26 UTC
(In reply to Juraj Lutter from comment #1)

Very much appreciated.
Comment 3 commit-hook freebsd_committer freebsd_triage 2023-03-08 12:16:24 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=b76c437779668c1687f7e8922334946505891387

commit b76c437779668c1687f7e8922334946505891387
Author:     Juraj Lutter <otis@FreeBSD.org>
AuthorDate: 2023-03-08 10:18:53 +0000
Commit:     Juraj Lutter <otis@FreeBSD.org>
CommitDate: 2023-03-08 12:14:01 +0000

    net-mgmt/zabbix64: Add zabbix 6.4 ports

    Add new ports for zabbix 6.4, an enterprise-class monitoring system.
    Release notes: https://www.zabbix.com/rn/rn6.4.0

    PR:             269992
    PR:             270012
    PR:             270013

 net-mgmt/Makefile                                  |    5 +
 net-mgmt/zabbix64-agent/Makefile (new)             |   11 +
 net-mgmt/zabbix64-frontend/Makefile (new)          |   30 +
 net-mgmt/zabbix64-java/Makefile (new)              |   13 +
 net-mgmt/zabbix64-proxy/Makefile (new)             |    7 +
 net-mgmt/zabbix64-server/Makefile (new)            |  254 +++
 net-mgmt/zabbix64-server/distinfo (new)            |    3 +
 .../files/patch-src_libs_zbxembed_duktape.h (new)  |   11 +
 .../zabbix64-server/files/pkg-message.in (new)     |   51 +
 .../zabbix64-server/files/zabbix_agentd.in (new)   |   67 +
 .../zabbix64-server/files/zabbix_java.in (new)     |   47 +
 .../zabbix64-server/files/zabbix_proxy.in (new)    |   68 +
 .../zabbix64-server/files/zabbix_server.in (new)   |   69 +
 net-mgmt/zabbix64-server/pkg-descr (new)           |    8 +
 net-mgmt/zabbix64-server/pkg-plist (new)           |   39 +
 net-mgmt/zabbix64-server/pkg-plist.agent (new)     |    9 +
 net-mgmt/zabbix64-server/pkg-plist.frontend (new)  | 1696 ++++++++++++++++++++
 net-mgmt/zabbix64-server/pkg-plist.java (new)      |   11 +
 18 files changed, 2399 insertions(+)
Comment 4 commit-hook freebsd_committer freebsd_triage 2023-03-08 12:16:25 UTC
A commit in branch main references this bug:

URL: https://cgit.FreeBSD.org/ports/commit/?id=7c39d5d75ec07afb0e428dd8da79437f0f3facbe

commit 7c39d5d75ec07afb0e428dd8da79437f0f3facbe
Author:     Juraj Lutter <otis@FreeBSD.org>
AuthorDate: 2023-03-08 11:14:58 +0000
Commit:     Juraj Lutter <otis@FreeBSD.org>
CommitDate: 2023-03-08 12:14:34 +0000

    net-mgmt/zabbix6-server: Enable SSH by default

    Enable SSH-based checks by default as it's usable for many scenarion.
    Also make SNMP checks optional, retaining default ON and clean up
    the required PHP extension a bit as per Zabbix manual.

    PR:             269992
    PR:             270012
    PR:             270013

 net-mgmt/zabbix6-agent/Makefile    |  1 +
 net-mgmt/zabbix6-frontend/Makefile |  4 ++--
 net-mgmt/zabbix6-proxy/Makefile    |  1 +
 net-mgmt/zabbix6-server/Makefile   | 13 +++++++------
 4 files changed, 11 insertions(+), 8 deletions(-)
Comment 5 Michael Osipov 2023-03-08 21:19:10 UTC
The documentation is a bit weird and I am not 100% sure whether removing all of them is right, I did a bit of analysis:

Those are clear:
hash (bundled since 7.4+)
json (bundled since 8.0+)
pcre (bundled since 7.0+)

Used readelf -s <ext>.so to get the symbols and search for in the frontend PHP code:
dom: not used in code
fileinfo: not used in code
filter: not used in code
ldap: checked at setup time, warning issued. Properly guarded with function_exists() and @function(). I guess this should be an option? Required for LDAP binds (authentication) against the frontend.
openssl: checked at setup time, warning issued. PHP seems to be always compiled with OpenSSL. As far as I can see, you can list it for the sake of completeness, but it seems to useless/noop.
simplexml: 
======
root@deblndw013x3j:/usr/local/www/zabbix6
# grep -ri simplexml .
./include/classes/import/readers/CXmlImportReader.php:          $result = simplexml_load_string($string, null, LIBXML_IMPORT_FLAGS);
./include/classes/api/services/CItemGeneral.php:                                        && simplexml_load_string($posts, null, LIBXML_IMPORT_FLAGS) === false) {
======
This I don't understand, xml is required, but not simplexml? This deserves an JIRA issue with Zabbix
snmp: A lot of hits "grep -r -E -e 'snmp[0-9]?' --include='*.php' . | grep -v /views/", but *none* use the SNMP lib and their functions, all interaction is just with the database which contains data obtained through SNMP from the Zabbix Server port.

Upshot: simplexml must be added, ldap is OPTIONal.

WDYT?
Comment 6 Juraj Lutter freebsd_committer freebsd_triage 2023-03-09 21:09:12 UTC
I've added simplexml and ldap to both zabbix6 and 64.