diff options
| author | Palle Girgensohn <girgen@FreeBSD.org> | 2026-03-20 10:22:40 +0000 |
|---|---|---|
| committer | Palle Girgensohn <girgen@FreeBSD.org> | 2026-03-20 10:23:49 +0000 |
| commit | bdf9ed700377c4f84af2038e36d012d75a68f06f (patch) | |
| tree | cdbc44ceab60e53a1f4cb3ce48f1010cc1ff6629 | |
| parent | 83ce88a97da4239c5b038ce8e7f60bd19c12e6bc (diff) | |
sysutils/beats9: Remove in favour of beats9N ports
This port was accidentally commited in parallel with the work done by
Saro and vvd@ for the entire elastic eco system keeping separate ports
for all three active elastic branches, beats8, beats92 and beats93.
35 files changed, 1 insertions, 2129 deletions
@@ -5169,3 +5169,4 @@ emulators/ppsspp-qt5|emulators/ppsspp|2026-03-15|Qt5 is end of life, please use devel/py-marshmallow-enum||2026-03-15|Has expired: Upstream repository has been archived on Oct 19, 2022 java/openjdk20||2026-03-15|Has expired: No longer supported by upstream textproc/py-en-core-web-sm|textproc/py-en-core-web-sm|2026-03-17|Add py- prefix to match Python package name +sysutils/beats9|sysutils/beats93|2026-03-20|Use Beats port with preferred major.minor number instead diff --git a/sysutils/Makefile b/sysutils/Makefile index e1a527047d45..574146deecde 100644 --- a/sysutils/Makefile +++ b/sysutils/Makefile @@ -117,7 +117,6 @@ SUBDIR += bchunk SUBDIR += beadm SUBDIR += beats8 - SUBDIR += beats9 SUBDIR += beats91 SUBDIR += beats92 SUBDIR += beats93 diff --git a/sysutils/beats9/Makefile b/sysutils/beats9/Makefile deleted file mode 100644 index 642e0d19e048..000000000000 --- a/sysutils/beats9/Makefile +++ /dev/null @@ -1,133 +0,0 @@ -PORTNAME= beats -DISTVERSIONPREFIX= v -DISTVERSION= 9.3.1 -CATEGORIES= sysutils -MASTER_SITES= https://raw.githubusercontent.com/${GH_ACCOUNT}/${GH_PROJECT}/${DISTVERSIONFULL}/:gomod -PKGNAMESUFFIX?= 9 -DISTFILES= go.mod:gomod - -MAINTAINER= elastic@FreeBSD.org -COMMENT= Send logs, network, metrics and heartbeat to Elasticsearch or Logstash -WWW= https://www.elastic.co/products/beats/ - -LICENSE= APACHE20 - -USES= go:modules -USE_GITHUB= yes - -GH_ACCOUNT= elastic - -USE_RC_SUBR= ${GO_TARGET:C,\./,,g} - -GO_MODULE= github.com/elastic/beats/v9 -CGO_CFLAGS= -I. -CGO_LDFLAGS= -L. -MAKE_ENV+= GOBUILD_FLAGS="-mod=vendor" - -CONFLICTS= beats6 beats7 beats8 - -PORTSCOUT= limit:^9 - -SUB_FILES= pkg-message - -OPTIONS_DEFINE= AUDITBEAT FILEBEAT HEARTBEAT METRICBEAT PACKETBEAT -OPTIONS_DEFAULT= FILEBEAT HEARTBEAT METRICBEAT -OPTIONS_SUB= yes - -AUDITBEAT_DESC= Auditbeat -FILEBEAT_DESC= Filebeat -HEARTBEAT_DESC= Heartbeat -METRICBEAT_DESC= Metricbeat -PACKETBEAT_DESC= Packetbeat -AUDITBEAT_MASTER_SITES= https://artifacts.elastic.co/downloads/beats/auditbeat/:auditbeat -AUDITBEAT_DISTFILES= auditbeat-${DISTVERSION}-darwin-x86_64.tar.gz:auditbeat -AUDITBEAT_VARS= GO_TARGET+=./auditbeat -FILEBEAT_MASTER_SITES= https://artifacts.elastic.co/downloads/beats/filebeat/:filebeat -FILEBEAT_DISTFILES= filebeat-${DISTVERSION}-darwin-x86_64.tar.gz:filebeat -FILEBEAT_VARS= GO_TARGET+=./filebeat -HEARTBEAT_MASTER_SITES= https://artifacts.elastic.co/downloads/beats/heartbeat/:heartbeat -HEARTBEAT_DISTFILES= heartbeat-${DISTVERSION}-darwin-x86_64.tar.gz:heartbeat -HEARTBEAT_VARS= GO_TARGET+=./heartbeat -METRICBEAT_MASTER_SITES= https://artifacts.elastic.co/downloads/beats/metricbeat/:metricbeat -METRICBEAT_DISTFILES= metricbeat-${DISTVERSION}-darwin-x86_64.tar.gz:metricbeat -METRICBEAT_VARS= GO_TARGET+=./metricbeat -PACKETBEAT_MASTER_SITES= https://artifacts.elastic.co/downloads/beats/packetbeat/:packetbeat -PACKETBEAT_DISTFILES= packetbeat-${DISTVERSION}-darwin-x86_64.tar.gz:packetbeat -PACKETBEAT_VARS= CGO_CFLAGS+=-I/usr/include \ - CGO_LDFLAGS+=-L/usr/lib \ - GO_TARGET+=./packetbeat - -.include <bsd.port.options.mk> - -post-patch: - ${REINPLACE_CMD} -e "s|%%BEATSVERSION%%|v${PORTVERSION}|g" ${WRKSRC}/dev-tools/mage/settings.go -.for BEATMOD in ${GO_TARGET:C,\./,,g} - ${REINPLACE_CMD} -e "s|%%DATADIR%%|${DATADIR}|g" \ - ${WRKSRC}/${BEATMOD}/${BEATMOD}.yml ${WRKSRC}/${BEATMOD}/${BEATMOD}.reference.yml -.endfor - -do-install: - ${MKDIR} ${STAGEDIR}${ETCDIR} -.for BEATMOD in ${GO_TARGET:C,^\./,,g} - ${MKDIR} ${STAGEDIR}/var/db/beats/${BEATMOD} && \ - ${INSTALL_PROGRAM} ${WRKDIR}/bin/${BEATMOD} \ - ${STAGEDIR}${PREFIX}/sbin && \ - ${INSTALL_DATA} ${WRKSRC}/${BEATMOD}/${BEATMOD}.yml \ - ${STAGEDIR}${ETCDIR}/${BEATMOD}.yml.sample && \ - ${INSTALL_DATA} ${WRKSRC}/${BEATMOD}/${BEATMOD}.reference.yml \ - ${STAGEDIR}${ETCDIR}/${BEATMOD}.yml.reference - (MODULE_SRC=${WRKDIR}/${BEATMOD}-${DISTVERSION}-darwin-x86_64/module; \ - if [ -d $${MODULE_SRC} ]; then \ - MODULE_DEST=${STAGEDIR}${DATADIR}/${BEATMOD}/module && \ - ${MKDIR} $${MODULE_DEST} && \ - cd $${MODULE_SRC} && ${COPYTREE_SHARE} . $${MODULE_DEST} && \ - cd $${MODULE_DEST} && \ - ${FIND} . -type d -empty | ${SORT} | \ - ${SED} -e 's,^\.,@dir ${DATADIR_REL}/${BEATMOD}/module,' >> ${TMPPLIST} && \ - ${FIND} . -not -type d | ${SORT} | \ - ${SED} -e 's,^\.,${DATADIR_REL}/${BEATMOD}/module,' >> ${TMPPLIST}; \ - fi) && \ - (MODULESD_SRC=${WRKDIR}/${BEATMOD}-${DISTVERSION}-darwin-x86_64/modules.d; \ - if [ -d $${MODULESD_SRC} ]; then \ - MODULESD_DEST=${STAGEDIR}${EXAMPLESDIR}/${BEATMOD}.modules.d && \ - ${MKDIR} $${MODULESD_DEST} && \ - cd $${MODULESD_SRC} && ${COPYTREE_SHARE} . $${MODULESD_DEST} && \ - cd $${MODULESD_DEST} && \ - ${FIND} . -type d -empty | ${SORT} | \ - ${SED} -e 's,^\.,@dir ${EXAMPLESDIR_REL}/${BEATMOD}.modules.d,' >> ${TMPPLIST} && \ - ${FIND} . -not -type d | ${SORT} | \ - ${SED} -e 's,^\.,${EXAMPLESDIR_REL}/${BEATMOD}.modules.d,' >> ${TMPPLIST}; \ - ${MKDIR} ${STAGEDIR}${ETCDIR}/${BEATMOD}.modules.d && \ - ${ECHO_CMD} "The modules.d files are now in ${EXAMPLESDIR}/${BEATMOD}.modules.d" > \ - ${STAGEDIR}${ETCDIR}/${BEATMOD}.modules.d/README; \ - ${ECHO_CMD} ${ETCDIR_REL}/${BEATMOD}.modules.d/README >> ${TMPPLIST}; \ - fi) && \ - (MONITORSD_SRC=${WRKDIR}/${BEATMOD}-${DISTVERSION}-darwin-x86_64/monitors.d; \ - if [ -d $${MONITORSD_SRC} ]; then \ - MONITORSD_DEST=${STAGEDIR}${EXAMPLESDIR}/${BEATMOD}.monitors.d && \ - ${MKDIR} $${MONITORSD_DEST} && \ - cd $${MONITORSD_SRC} && ${COPYTREE_SHARE} . $${MONITORSD_DEST} && \ - cd $${MONITORSD_DEST} && \ - ${FIND} . -type d -empty | ${SORT} | \ - ${SED} -e 's,^\.,@dir ${EXAMPLESDIR_REL}/${BEATMOD}.monitors.d,' >> ${TMPPLIST} && \ - ${FIND} . -not -type d | ${SORT} | \ - ${SED} -e 's,^\.,${EXAMPLESDIR_REL}/${BEATMOD}.monitors.d,' >> ${TMPPLIST}; \ - ${MKDIR} ${STAGEDIR}${ETCDIR}/${BEATMOD}.monitors.d && \ - ${ECHO_CMD} "The monitors.d files are now in ${EXAMPLESDIR}/${BEATMOD}.monitors.d" > \ - ${STAGEDIR}${ETCDIR}/${BEATMOD}.monitors.d/README; \ - ${ECHO_CMD} ${ETCDIR_REL}/${BEATMOD}.monitors.d/README >> ${TMPPLIST}; \ - fi) && \ - (KIBANA_SRC=${WRKDIR}/${BEATMOD}-${DISTVERSION}-darwin-x86_64/kibana; \ - if [ -d $${KIBANA_SRC} ]; then \ - KIBANA_PATH=${STAGEDIR}${DATADIR}/${BEATMOD}/kibana; \ - ${MKDIR} $${KIBANA_PATH} && \ - cd $${KIBANA_SRC} && ${COPYTREE_SHARE} . $${KIBANA_PATH}; \ - cd $${KIBANA_PATH} && \ - ${FIND} . -type d -empty | ${SORT} | \ - ${SED} -e 's,^\.,@dir ${DATADIR_REL}/${BEATMOD}/kibana,' >> ${TMPPLIST}; \ - ${FIND} . -not -type d | ${SORT} | \ - ${SED} -e 's,^\.,${DATADIR_REL}/${BEATMOD}/kibana,' >> ${TMPPLIST}; \ - fi) -.endfor - -.include <bsd.port.mk> diff --git a/sysutils/beats9/distinfo b/sysutils/beats9/distinfo deleted file mode 100644 index f7a3906545ed..000000000000 --- a/sysutils/beats9/distinfo +++ /dev/null @@ -1,11 +0,0 @@ -TIMESTAMP = 1773752247 -SHA256 (go/sysutils_beats9/elastic-beats-v9.3.1_GH0/go.mod) = 12a772a95a1c7e8a86e5cef7bac4ffcaf86ba08a7f5c741fa748b63f728d12cb -SIZE (go/sysutils_beats9/elastic-beats-v9.3.1_GH0/go.mod) = 28847 -SHA256 (go/sysutils_beats9/elastic-beats-v9.3.1_GH0/filebeat-9.3.1-darwin-x86_64.tar.gz) = 9d1f0af9ab8ce78525496506adea24688744f8ad91eee063dc48e7763e05bcac -SIZE (go/sysutils_beats9/elastic-beats-v9.3.1_GH0/filebeat-9.3.1-darwin-x86_64.tar.gz) = 56132282 -SHA256 (go/sysutils_beats9/elastic-beats-v9.3.1_GH0/heartbeat-9.3.1-darwin-x86_64.tar.gz) = 60e5169dc1d5454faf3d5ca3b72b401255acb5a07f237ec18ed8b1b189ead94d -SIZE (go/sysutils_beats9/elastic-beats-v9.3.1_GH0/heartbeat-9.3.1-darwin-x86_64.tar.gz) = 35745443 -SHA256 (go/sysutils_beats9/elastic-beats-v9.3.1_GH0/metricbeat-9.3.1-darwin-x86_64.tar.gz) = e8885267e1c9229e87dd4a0f81afe06bd99e2fbef1131a8914a243457d8e1172 -SIZE (go/sysutils_beats9/elastic-beats-v9.3.1_GH0/metricbeat-9.3.1-darwin-x86_64.tar.gz) = 60065375 -SHA256 (go/sysutils_beats9/elastic-beats-v9.3.1_GH0/elastic-beats-v9.3.1_GH0.tar.gz) = 77851327be677219aa116531e8d37c6359d59aff9ab6feff9e5f3d570a54a221 -SIZE (go/sysutils_beats9/elastic-beats-v9.3.1_GH0/elastic-beats-v9.3.1_GH0.tar.gz) = 104227700 diff --git a/sysutils/beats9/files/auditbeat.in b/sysutils/beats9/files/auditbeat.in deleted file mode 100644 index 67909ad68d67..000000000000 --- a/sysutils/beats9/files/auditbeat.in +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/sh - -# PROVIDE: auditbeat -# REQUIRE: DAEMON -# BEFORE: LOGIN -# KEYWORD: shutdown - -# Add the following lines to /etc/rc.conf to enable auditbeat: -# -# auditbeat_enable (bool): Set to YES to enable auditbeat -# Default: NO -# auditbeat_flags (str): Extra flags passed to auditbeat -# auditbeat_config (str): auditbeat configuration directory -# Default: ${PREFIX}/etc/beats -# auditbeat_conffile (str): auditbeat configuration file -# relative to ${auditbeat_conf} -# Default: auditbeat.yml - -. /etc/rc.subr - -name="auditbeat" -rcvar=${name}_enable -load_rc_config $name - -: ${auditbeat_enable:="NO"} -: ${auditbeat_config:="%%ETCDIR%%"} -: ${auditbeat_conffile:="auditbeat.yml"} -: ${auditbeat_home:="%%DATADIR%%/auditbeat"} -: ${auditbeat_logs:="/var/log/beats"} -: ${auditbeat_data:="/var/db/beats/auditbeat"} - -# daemon -start_precmd=auditbeat_prestart -command=/usr/sbin/daemon -pidfile="/var/run/${name}" -command_args="-frP ${pidfile} %%PREFIX%%/sbin/${name} ${auditbeat_flags} --path.config ${auditbeat_config} --path.home ${auditbeat_home} --path.data ${auditbeat_data} --path.logs ${auditbeat_logs} -c ${auditbeat_conffile}" - -auditbeat_prestart() { -# Have to empty rc_flags so they don't get passed to daemon(8) - rc_flags="" -} - -# auditbeat will refuse to quit if linprocfs is mounted, and sadly requires -9 -[ -f /compat/linux/proc/cpuinfo ] && stop_cmd=auditbeat_stop - -auditbeat_stop() { - pkill -9 -F ${pidfile} > /dev/null 2>&1 - pkill -9 -F ${pidfile}.child > /dev/null 2>&1 -} - -run_rc_command "$1" diff --git a/sysutils/beats9/files/filebeat.in b/sysutils/beats9/files/filebeat.in deleted file mode 100644 index 8ae08af5b398..000000000000 --- a/sysutils/beats9/files/filebeat.in +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh - -# PROVIDE: filebeat -# REQUIRE: DAEMON -# BEFORE: LOGIN -# KEYWORD: shutdown - -# Add the following lines to /etc/rc.conf to enable filebeat: -# -# filebeat_enable (bool): Set to YES to enable filebeat -# Default: NO -# filebeat_flags (str): Extra flags passed to filebeat -# filebeat_config (str): filebeat configuration directory -# Default: ${PREFIX}/etc/beats -# filebeat_conffile (str): filebeat configuration file -# relative to ${filebeat_conf} -# Default: filebeat.yml - -. /etc/rc.subr - -name="filebeat" -rcvar=${name}_enable -load_rc_config $name - -: ${filebeat_enable:="NO"} -: ${filebeat_config:="%%ETCDIR%%"} -: ${filebeat_conffile:="filebeat.yml"} -: ${filebeat_home:="%%DATADIR%%/filebeat"} -: ${filebeat_logs:="/var/log/beats"} -: ${filebeat_data:="/var/db/beats/filebeat"} - -# daemon -start_precmd=filebeat_prestart -command=/usr/sbin/daemon -pidfile="/var/run/${name}" -command_args="-frP ${pidfile} %%PREFIX%%/sbin/${name} ${filebeat_flags} --path.config ${filebeat_config} --path.home ${filebeat_home} --path.data ${filebeat_data} --path.logs ${filebeat_logs} -c ${filebeat_conffile}" - -filebeat_prestart() { -# Have to empty rc_flags so they don't get passed to daemon(8) - rc_flags="" -} - -run_rc_command "$1" diff --git a/sysutils/beats9/files/heartbeat.in b/sysutils/beats9/files/heartbeat.in deleted file mode 100644 index d99374ab011c..000000000000 --- a/sysutils/beats9/files/heartbeat.in +++ /dev/null @@ -1,44 +0,0 @@ -#!/bin/sh - -# PROVIDE: heartbeat -# REQUIRE: DAEMON -# BEFORE: LOGIN -# KEYWORD: shutdown - -# Add the following lines to /etc/rc.conf to enable heartbeat: -# -# heartbeat_enable (bool): Set to YES to enable heartbeat -# Default: NO -# heartbeat_flags (str): Extra flags passed to heartbeat -# heartbeat_config (str): heartbeat configuration directory -# Default: ${PREFIX}/etc/beats -# heartbeat_conffile (str): heartbeat configuration file -# relative to ${heartbeat_conf} -# Default: heartbeat.yml - -. /etc/rc.subr - -name="heartbeat" -rcvar=${name}_enable -load_rc_config $name - -: ${heartbeat_enable:="NO"} -: ${heartbeat_config:="%%ETCDIR%%"} -: ${heartbeat_conffile:="heartbeat.yml"} -: ${heartbeat_home:="%%DATADIR%%/heartbeat"} -: ${heartbeat_logs:="/var/log/beats"} -: ${heartbeat_data:="/var/db/beats/heartbeat"} - - -# daemon -start_precmd=heartbeat_prestart -command=/usr/sbin/daemon -pidfile="/var/run/${name}" -command_args="-frP ${pidfile} %%PREFIX%%/sbin/${name} ${heartbeat_flags} --path.config ${heartbeat_config} --path.home ${heartbeat_home} --path.data ${heartbeat_data} --path.logs ${heartbeat_logs} -c ${heartbeat_conffile}" - -heartbeat_prestart() { -# Have to empty rc_flags so they don't get passed to daemon(8) - rc_flags="" -} - -run_rc_command "$1" diff --git a/sysutils/beats9/files/metricbeat.in b/sysutils/beats9/files/metricbeat.in deleted file mode 100644 index 270966c4f669..000000000000 --- a/sysutils/beats9/files/metricbeat.in +++ /dev/null @@ -1,51 +0,0 @@ -#!/bin/sh - -# PROVIDE: metricbeat -# REQUIRE: DAEMON -# BEFORE: LOGIN -# KEYWORD: shutdown - -# Add the following lines to /etc/rc.conf to enable metricbeat: -# -# metricbeat_enable (bool): Set to YES to enable metricbeat -# Default: NO -# metricbeat_flags (str): Extra flags passed to metricbeat -# metricbeat_config (str): metricbeat configuration directory -# Default: ${PREFIX}/etc/beats -# metricbeat_conffile (str): metricbeat configuration file -# relative to ${metricbeat_conf} -# Default: metricbeat.yml - -. /etc/rc.subr - -name="metricbeat" -rcvar=${name}_enable -load_rc_config $name - -: ${metricbeat_enable:="NO"} -: ${metricbeat_config:="%%ETCDIR%%"} -: ${metricbeat_conffile:="metricbeat.yml"} -: ${metricbeat_home:="%%DATADIR%%/metricbeat"} -: ${metricbeat_logs:="/var/log/beats"} -: ${metricbeat_data:="/var/db/beats/metricbeat"} - -# daemon -start_precmd=metricbeat_prestart -command=/usr/sbin/daemon -pidfile="/var/run/${name}" -command_args="-frP ${pidfile} %%PREFIX%%/sbin/${name} ${metricbeat_flags} --path.config ${metricbeat_config} --path.home ${metricbeat_home} --path.data ${metricbeat_data} --path.logs ${metricbeat_logs} -c ${metricbeat_conffile}" - -metricbeat_prestart() { -# Have to empty rc_flags so they don't get passed to daemon(8) - rc_flags="" -} - -# metricbeat will refuse to quit if linprocfs is mounted, and sadly requires -9 -[ -f /compat/linux/proc/cpuinfo ] && stop_cmd=metricbeat_stop - -metricbeat_stop() { - pkill -9 -F ${pidfile} > /dev/null 2>&1 - pkill -9 -F ${pidfile}.child > /dev/null 2>&1 -} - -run_rc_command "$1" diff --git a/sysutils/beats9/files/packetbeat.in b/sysutils/beats9/files/packetbeat.in deleted file mode 100644 index 4dc21856c49a..000000000000 --- a/sysutils/beats9/files/packetbeat.in +++ /dev/null @@ -1,43 +0,0 @@ -#!/bin/sh - -# PROVIDE: packetbeat -# REQUIRE: DAEMON -# BEFORE: LOGIN -# KEYWORD: shutdown - -# Add the following lines to /etc/rc.conf to enable packetbeat -# -# packetbeat_enable (bool): Set to YES to enable packetbeat -# Default: NO -# packetbeat_flags (str): Extra flags passed to packetbeat -# packetbeat_config (str): packetbeat configuration directory -# Default: ${PREFIX}/etc/beats -# packetbeat_conffile (str): packetbeat configuration file -# relative to ${packetbeat_conf} -# Default: packetbeat.yml - -. /etc/rc.subr - -name="packetbeat" -rcvar=${name}_enable -load_rc_config $name - -: ${packetbeat_enable:="NO"} -: ${packetbeat_config:="%%ETCDIR%%"} -: ${packetbeat_conffile:="packetbeat.yml"} -: ${packetbeat_home:="%%DATADIR%%/packetbeat"} -: ${packetbeat_logs:="/var/log/beats"} -: ${packetbeat_data:="/var/db/beats/packetbeat"} - -# daemon -start_precmd=packetbeat_prestart -command=/usr/sbin/daemon -pidfile="/var/run/${name}" -command_args="-frP ${pidfile} %%PREFIX%%/sbin/${name} ${packetbeat_flags} --path.config ${packetbeat_config} --path.home ${packetbeat_home} --path.data ${packetbeat_data} --path.logs ${packetbeat_logs} -c ${packetbeat_conffile}" - -packetbeat_prestart() { -# Have to empty rc_flags so they don't get passed to daemon(8) - rc_flags="" -} - -run_rc_command "$1" diff --git a/sysutils/beats9/files/patch-auditbeat_auditbeat.reference.yml b/sysutils/beats9/files/patch-auditbeat_auditbeat.reference.yml deleted file mode 100644 index 04ef963d9642..000000000000 --- a/sysutils/beats9/files/patch-auditbeat_auditbeat.reference.yml +++ /dev/null @@ -1,20 +0,0 @@ ---- auditbeat/auditbeat.reference.yml.orig 2025-09-15 19:57:17 UTC -+++ auditbeat/auditbeat.reference.yml -@@ -14,7 +14,7 @@ auditbeat.config.modules: - auditbeat.config.modules: - - # Glob pattern for configuration reloading -- path: ${path.config}/modules.d/*.yml -+ path: ${path.config}/auditbeat.modules.d/*.yml - - # Period on which files under path should be checked for changes - reload.period: 10s -@@ -1250,7 +1250,7 @@ output.elasticsearch: - - # The directory from where to read the dashboards. The default is the `kibana` - # folder in the home path. --#setup.dashboards.directory: ${path.home}/kibana -+#setup.dashboards.directory: %%DATADIR%%/auditbeat/kibana - - # The URL from where to download the dashboard archive. It is used instead of - # the directory if it has a value. diff --git a/sysutils/beats9/files/patch-auditbeat_auditbeat.yml b/sysutils/beats9/files/patch-auditbeat_auditbeat.yml deleted file mode 100644 index b9c74affaee6..000000000000 --- a/sysutils/beats9/files/patch-auditbeat_auditbeat.yml +++ /dev/null @@ -1,13 +0,0 @@ ---- auditbeat/auditbeat.yml.orig 2025-09-15 19:57:17 UTC -+++ auditbeat/auditbeat.yml -@@ -82,6 +82,10 @@ setup.template.settings: - # website. - #setup.dashboards.url: - -+# The directory from where to read the dashboards. The default is the `kibana` -+# folder in the home path. -+#setup.dashboards.directory: %%DATADIR%%/auditbeat/kibana -+ - # =================================== Kibana =================================== - - # Starting with Beats version 6.0.0, the dashboards are loaded via the Kibana API. diff --git a/sysutils/beats9/files/patch-dev-tools_mage_settings.go b/sysutils/beats9/files/patch-dev-tools_mage_settings.go deleted file mode 100644 index fff0c065e200..000000000000 --- a/sysutils/beats9/files/patch-dev-tools_mage_settings.go +++ /dev/null @@ -1,20 +0,0 @@ ---- dev-tools/mage/settings.go.orig 2025-09-15 19:57:17 UTC -+++ dev-tools/mage/settings.go -@@ -31,7 +31,6 @@ import ( - "sync" - "time" - -- "github.com/magefile/mage/sh" - "golang.org/x/text/cases" - "golang.org/x/text/language" - "gopkg.in/yaml.v3" -@@ -282,7 +281,8 @@ func CommitHash() (string, error) { - func CommitHash() (string, error) { - var err error - commitHashOnce.Do(func() { -- commitHash, err = sh.Output("git", "rev-parse", "HEAD") -+ err = nil -+ commitHash = "%%BEATSVERSION%%" - }) - return commitHash, err - } diff --git a/sysutils/beats9/files/patch-filebeat_filebeat.reference.yml b/sysutils/beats9/files/patch-filebeat_filebeat.reference.yml deleted file mode 100644 index 33dc3a22fd11..000000000000 --- a/sysutils/beats9/files/patch-filebeat_filebeat.reference.yml +++ /dev/null @@ -1,26 +0,0 @@ ---- filebeat/filebeat.reference.yml.orig 2025-09-15 19:57:17 UTC -+++ filebeat/filebeat.reference.yml -@@ -1329,12 +1329,12 @@ - type: filestream - #filebeat.config: - #inputs: - #enabled: false -- #path: inputs.d/*.yml -+ #path: filebeat.inputs.d/*.yml - #reload.enabled: true - #reload.period: 10s - #modules: - #enabled: true -- #path: modules.d/*.yml -+ #path: filebeat.modules.d/*.yml - #reload.enabled: true - #reload.period: 10s - -@@ -2408,7 +2408,7 @@ output.elasticsearch: - - # The directory from where to read the dashboards. The default is the `kibana` - # folder in the home path. --#setup.dashboards.directory: ${path.home}/kibana -+#setup.dashboards.directory: %%DATADIR%%/filebeat/kibana - - # The URL from where to download the dashboard archive. It is used instead of - # the directory if it has a value. diff --git a/sysutils/beats9/files/patch-filebeat_filebeat.yml b/sysutils/beats9/files/patch-filebeat_filebeat.yml deleted file mode 100644 index c9a078cc6ffb..000000000000 --- a/sysutils/beats9/files/patch-filebeat_filebeat.yml +++ /dev/null @@ -1,33 +0,0 @@ ---- filebeat/filebeat.yml.orig 2025-09-15 19:57:17 UTC -+++ filebeat/filebeat.yml -@@ -81,7 +81,7 @@ filebeat.config.modules: - - filebeat.config.modules: - # Glob pattern for configuration loading -- path: ${path.config}/modules.d/*.yml -+ path: ${path.config}/filebeat.modules.d/*.yml - - # Set to true to enable config reloading - reload.enabled: false -@@ -124,6 +124,10 @@ setup.template.settings: - # website. - #setup.dashboards.url: - -+# The directory from where to read the dashboards. The default is the `kibana` -+# folder in the home path. -+#setup.dashboards.directory: %%DATADIR%%/filebeat/kibana -+ - # =================================== Kibana =================================== - - # Starting with Beats version 6.0.0, the dashboards are loaded via the Kibana API. -@@ -195,8 +199,8 @@ processors: - - add_host_metadata: - when.not.contains.tags: forwarded - - add_cloud_metadata: ~ -- - add_docker_metadata: ~ -- - add_kubernetes_metadata: ~ -+# - add_docker_metadata: ~ -+# - add_kubernetes_metadata: ~ - - # ================================== Logging =================================== - diff --git a/sysutils/beats9/files/patch-go-sysinfo b/sysutils/beats9/files/patch-go-sysinfo deleted file mode 100644 index 2ac3e3daee55..000000000000 --- a/sysutils/beats9/files/patch-go-sysinfo +++ /dev/null @@ -1,1314 +0,0 @@ ---- vendor/github.com/elastic/go-sysinfo/internal/cgo/disabled.go.orig 2025-09-19 18:12:17 UTC -+++ vendor/github.com/elastic/go-sysinfo/internal/cgo/disabled.go -@@ -0,0 +1,23 @@ -+// Licensed to Elasticsearch B.V. under one or more contributor -+// license agreements. See the NOTICE file distributed with -+// this work for additional information regarding copyright -+// ownership. Elasticsearch B.V. licenses this file to you under -+// the Apache License, Version 2.0 (the "License"); you may -+// not use this file except in compliance with the License. -+// You may obtain a copy of the License at -+// -+// http://www.apache.org/licenses/LICENSE-2.0 -+// -+// Unless required by applicable law or agreed to in writing, -+// software distributed under the License is distributed on an -+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -+// KIND, either express or implied. See the License for the -+// specific language governing permissions and limitations -+// under the License. -+ -+//go:build !cgo -+ -+package cgo -+ -+// Enabled is true if cgo was enabled at compile-time. -+const Enabled = false ---- vendor/github.com/elastic/go-sysinfo/internal/cgo/enabled.go.orig 2025-09-19 18:12:17 UTC -+++ vendor/github.com/elastic/go-sysinfo/internal/cgo/enabled.go -@@ -0,0 +1,23 @@ -+// Licensed to Elasticsearch B.V. under one or more contributor -+// license agreements. See the NOTICE file distributed with -+// this work for additional information regarding copyright -+// ownership. Elasticsearch B.V. licenses this file to you under -+// the Apache License, Version 2.0 (the "License"); you may -+// not use this file except in compliance with the License. -+// You may obtain a copy of the License at -+// -+// http://www.apache.org/licenses/LICENSE-2.0 -+// -+// Unless required by applicable law or agreed to in writing, -+// software distributed under the License is distributed on an -+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -+// KIND, either express or implied. See the License for the -+// specific language governing permissions and limitations -+// under the License. -+ -+//go:build cgo -+ -+package cgo -+ -+// Enabled is true if cgo was enabled at compile-time. -+const Enabled = true ---- vendor/github.com/elastic/go-sysinfo/providers/freebsd/defs_freebsd.go.orig 2025-09-19 18:12:17 UTC -+++ vendor/github.com/elastic/go-sysinfo/providers/freebsd/defs_freebsd.go -@@ -0,0 +1,33 @@ -+// Licensed to Elasticsearch B.V. under one or more contributor -+// license agreements. See the NOTICE file distributed with -+// this work for additional information regarding copyright -+// ownership. Elasticsearch B.V. licenses this file to you under -+// the Apache License, Version 2.0 (the "License"); you may -+// not use this file except in compliance with the License. -+// You may obtain a copy of the License at -+// -+// http://www.apache.org/licenses/LICENSE-2.0 -+// -+// Unless required by applicable law or agreed to in writing, -+// software distributed under the License is distributed on an -+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -+// KIND, either express or implied. See the License for the -+// specific language governing permissions and limitations -+// under the License. -+ -+//go:build ignore -+// +build ignore -+ -+package freebsd -+ -+/* -+#include <sys/types.h> -+#include <sys/vmmeter.h> -+#include <sys/time.h> -+#include <kvm.h> -+*/ -+import "C" -+ -+type kvmSwap C.struct_kvm_swap -+ -+type clockInfo C.struct_clockinfo ---- vendor/github.com/elastic/go-sysinfo/providers/freebsd/doc.go.orig 2025-09-19 18:12:17 UTC -+++ vendor/github.com/elastic/go-sysinfo/providers/freebsd/doc.go -@@ -0,0 +1,22 @@ -+// Licensed to Elasticsearch B.V. under one or more contributor -+// license agreements. See the NOTICE file distributed with -+// this work for additional information regarding copyright -+// ownership. Elasticsearch B.V. licenses this file to you under -+// the Apache License, Version 2.0 (the "License"); you may -+// not use this file except in compliance with the License. -+// You may obtain a copy of the License at -+// -+// http://www.apache.org/licenses/LICENSE-2.0 -+// -+// Unless required by applicable law or agreed to in writing, -+// software distributed under the License is distributed on an -+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -+// KIND, either express or implied. See the License for the -+// specific language governing permissions and limitations -+// under the License. -+ -+// Package freebsd implements the HostProvider and ProcessProvider interfaces -+// for providing information about FreeBSD. -+package freebsd -+ -+//go:generate sh -c "go tool cgo -godefs defs_freebsd.go > ztypes_freebsd.go" ---- vendor/github.com/elastic/go-sysinfo/providers/freebsd/host_freebsd_cgo.go.orig 2025-09-19 18:12:17 UTC -+++ vendor/github.com/elastic/go-sysinfo/providers/freebsd/host_freebsd_cgo.go -@@ -0,0 +1,238 @@ -+// Licensed to Elasticsearch B.V. under one or more contributor -+// license agreements. See the NOTICE file distributed with -+// this work for additional information regarding copyright -+// ownership. Elasticsearch B.V. licenses this file to you under -+// the Apache License, Version 2.0 (the "License"); you may -+// not use this file except in compliance with the License. -+// You may obtain a copy of the License at -+// -+// http://www.apache.org/licenses/LICENSE-2.0 -+// -+// Unless required by applicable law or agreed to in writing, -+// software distributed under the License is distributed on an -+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -+// KIND, either express or implied. See the License for the -+// specific language governing permissions and limitations -+// under the License. -+ -+//go:build freebsd && cgo -+ -+package freebsd -+ -+import ( -+ "context" -+ "errors" -+ "os" -+ "path/filepath" -+ "time" -+ -+ "github.com/prometheus/procfs" -+ -+ "github.com/elastic/go-sysinfo/internal/registry" -+ "github.com/elastic/go-sysinfo/providers/shared" -+ "github.com/elastic/go-sysinfo/types" -+) -+ -+func init() { -+ registry.Register(newFreeBSDSystem()) -+} -+ -+type freebsdSystem struct{} -+ -+func newFreeBSDSystem() freebsdSystem { -+ return freebsdSystem{} -+} -+ -+func (s freebsdSystem) Host() (types.Host, error) { -+ return newHost() -+} -+ -+type host struct { -+ procFS procFS -+ info types.HostInfo -+} -+ -+func (h *host) Info() types.HostInfo { -+ return h.info -+} -+ -+func (h *host) CPUTime() (types.CPUTimes, error) { -+ cpu := types.CPUTimes{} -+ r := &reader{} -+ r.cpuTime(&cpu) -+ return cpu, r.Err() -+} -+ -+func (h *host) Memory() (*types.HostMemoryInfo, error) { -+ m := &types.HostMemoryInfo{} -+ r := &reader{} -+ r.memInfo(m) -+ return m, r.Err() -+} -+ -+func (h *host) FQDNWithContext(ctx context.Context) (string, error) { -+ return shared.FQDNWithContext(ctx) -+} -+ -+func (h *host) FQDN() (string, error) { -+ return h.FQDNWithContext(context.Background()) -+} -+ -+func newHost() (*host, error) { -+ h := &host{} -+ r := &reader{} -+ r.architecture(h) -+ r.bootTime(h) -+ r.hostname(h) -+ r.network(h) -+ r.kernelVersion(h) -+ r.os(h) -+ r.time(h) -+ r.uniqueID(h) -+ return h, r.Err() -+} -+ -+type reader struct { -+ errs []error -+} -+ -+func (r *reader) addErr(err error) bool { -+ if err != nil { -+ if !errors.Is(err, types.ErrNotImplemented) { -+ r.errs = append(r.errs, err) -+ } -+ return true -+ } -+ return false -+} -+ -+func (r *reader) Err() error { -+ return errors.Join(r.errs...) -+} -+ -+func (r *reader) cpuTime(cpu *types.CPUTimes) { -+ times, err := cpuStateTimes() -+ if r.addErr(err) { -+ return -+ } -+ *cpu = *times -+} -+ -+func (r *reader) memInfo(m *types.HostMemoryInfo) { -+ // Memory counter calculations: -+ // total = physical memory -+ // used = active + wired -+ // free = free -+ // available = buffers + inactive + cache + free -+ -+ pageSize, err := pageSizeBytes() -+ if r.addErr(err) { -+ return -+ } -+ -+ m.Total = totalPhysicalMem(r) -+ activePages := activePageCount(r) -+ -+ m.Metrics = make(map[string]uint64, 6) -+ m.Metrics["active_bytes"] = activePages * pageSize -+ -+ wirePages := wirePageCount(r) -+ m.Metrics["wired_bytes"] = wirePages * pageSize -+ -+ inactivePages := inactivePageCount(r) -+ m.Metrics["inactive_bytes"] = inactivePages * pageSize -+ -+ cachePages := cachePageCount(r) -+ m.Metrics["cache_bytes"] = cachePages * pageSize -+ -+ freePages := freePageCount(r) -+ m.Metrics["free_bytes"] = freePages * pageSize -+ -+ buffers := buffersUsedBytes(r) -+ m.Metrics["buffer_bytes"] = buffers -+ -+ m.Used = (activePages + wirePages) * pageSize -+ m.Free = freePages * pageSize -+ m.Available = (inactivePages+cachePages+freePages)*pageSize + buffers -+ -+ // Virtual (swap) Memory -+ swap, err := kvmGetSwapInfo() -+ if r.addErr(err) { -+ return -+ } -+ -+ m.VirtualTotal = uint64(swap.Total) * pageSize -+ m.VirtualUsed = uint64(swap.Used) * pageSize -+ m.VirtualFree = m.VirtualTotal - m.VirtualUsed -+} -+ -+func (r *reader) architecture(h *host) { -+ v, err := architecture() -+ if r.addErr(err) { -+ return -+ } -+ h.info.Architecture = v -+} -+ -+func (r *reader) bootTime(h *host) { -+ v, err := bootTime() -+ if r.addErr(err) { -+ return -+ } -+ h.info.BootTime = v -+} -+ -+func (r *reader) hostname(h *host) { -+ v, err := os.Hostname() -+ if r.addErr(err) { -+ return -+ } -+ h.info.Hostname = v -+} -+ -+func (r *reader) network(h *host) { -+ ips, macs, err := shared.Network() -+ if r.addErr(err) { -+ return -+ } -+ h.info.IPs = ips -+ h.info.MACs = macs -+} -+ -+func (r *reader) kernelVersion(h *host) { -+ v, err := kernelVersion() -+ if r.addErr(err) { -+ return -+ } -+ h.info.KernelVersion = v -+} -+ -+func (r *reader) os(h *host) { -+ v, err := operatingSystem() -+ if r.addErr(err) { -+ return -+ } -+ h.info.OS = v -+} -+ -+func (r *reader) time(h *host) { -+ h.info.Timezone, h.info.TimezoneOffsetSec = time.Now().Zone() -+} -+ -+func (r *reader) uniqueID(h *host) { -+ v, err := machineID() -+ if r.addErr(err) { -+ return -+ } -+ h.info.UniqueID = v -+} -+ -+type procFS struct { -+ procfs.FS -+ mountPoint string -+} -+ -+func (fs *procFS) path(p ...string) string { -+ elem := append([]string{fs.mountPoint}, p...) -+ return filepath.Join(elem...) -+} ---- vendor/github.com/elastic/go-sysinfo/providers/freebsd/host_freebsd_cgo_test.go.orig 2025-09-19 18:12:17 UTC -+++ vendor/github.com/elastic/go-sysinfo/providers/freebsd/host_freebsd_cgo_test.go -@@ -0,0 +1,53 @@ -+// Licensed to Elasticsearch B.V. under one or more contributor -+// license agreements. See the NOTICE file distributed with -+// this work for additional information regarding copyright -+// ownership. Elasticsearch B.V. licenses this file to you under -+// the Apache License, Version 2.0 (the "License"); you may -+// not use this file except in compliance with the License. -+// You may obtain a copy of the License at -+// -+// http://www.apache.org/licenses/LICENSE-2.0 -+// -+// Unless required by applicable law or agreed to in writing, -+// software distributed under the License is distributed on an -+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -+// KIND, either express or implied. See the License for the -+// specific language governing permissions and limitations -+// under the License. -+ -+//go:build freebsd && cgo -+ -+package freebsd -+ -+import ( -+ "encoding/json" -+ "testing" -+ -+ "github.com/elastic/go-sysinfo/internal/registry" -+) -+ -+var _ registry.HostProvider = freebsdSystem{} -+ -+func TestHost(t *testing.T) { -+ host, err := newFreeBSDSystem().Host() -+ if err != nil { -+ t.Fatal(err) -+ } -+ -+ t.Run("Info", func(t *testing.T) { -+ info := host.Info() -+ -+ data, _ := json.MarshalIndent(info, "", " ") -+ t.Log(string(data)) -+ }) -+ -+ t.Run("Memory", func(t *testing.T) { -+ mem, err := host.Memory() -+ if err != nil { -+ t.Fatal(err) -+ } -+ -+ data, _ := json.MarshalIndent(mem, "", " ") -+ t.Log(string(data)) -+ }) -+} ---- vendor/github.com/elastic/go-sysinfo/providers/freebsd/kvm_freebsd_cgo.go.orig 2025-09-19 18:12:17 UTC -+++ vendor/github.com/elastic/go-sysinfo/providers/freebsd/kvm_freebsd_cgo.go -@@ -0,0 +1,58 @@ -+// Licensed to Elasticsearch B.V. under one or more contributor -+// license agreements. See the NOTICE file distributed with -+// this work for additional information regarding copyright -+// ownership. Elasticsearch B.V. licenses this file to you under -+// the Apache License, Version 2.0 (the "License"); you may -+// not use this file except in compliance with the License. -+// You may obtain a copy of the License at -+// -+// http://www.apache.org/licenses/LICENSE-2.0 -+// -+// Unless required by applicable law or agreed to in writing, -+// software distributed under the License is distributed on an -+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -+// KIND, either express or implied. See the License for the -+// specific language governing permissions and limitations -+// under the License. -+ -+//go:build freebsd && cgo -+ -+package freebsd -+ -+/* -+#cgo LDFLAGS: -lkvm -+#include <sys/cdefs.h> -+#include <sys/types.h> -+#include <sys/sysctl.h> -+ -+#include <paths.h> -+#include <kvm.h> -+#include <stdlib.h> -+*/ -+import "C" -+ -+import ( -+ "fmt" -+ "unsafe" -+ -+ "golang.org/x/sys/unix" -+) -+ -+// kvmGetSwapInfo returns swap summary statistics for the system. It accesses -+// the kernel virtual memory (kvm) images by using libkvm. -+func kvmGetSwapInfo() (*kvmSwap, error) { -+ // Obtain a KVM file descriptor. -+ var errstr *C.char -+ kd := C.kvm_open(nil, nil, nil, unix.O_RDONLY, errstr) -+ if errstr != nil { -+ return nil, fmt.Errorf("failed calling kvm_open: %s", C.GoString(errstr)) -+ } -+ defer C.kvm_close(kd) -+ -+ var swap kvmSwap -+ if n, err := C.kvm_getswapinfo(kd, (*C.struct_kvm_swap)(unsafe.Pointer(&swap)), 1, 0); n != 0 { -+ return nil, fmt.Errorf("failed to get kvm_getswapinfo: %w", err) -+ } -+ -+ return &swap, nil -+} ---- vendor/github.com/elastic/go-sysinfo/providers/freebsd/process_freebsd_cgo.go.orig 2025-09-19 18:12:17 UTC -+++ vendor/github.com/elastic/go-sysinfo/providers/freebsd/process_freebsd_cgo.go -@@ -0,0 +1,386 @@ -+// Licensed to Elasticsearch B.V. under one or more contributor -+// license agreements. See the NOTICE file distributed with -+// this work for additional information regarding copyright -+// ownership. Elasticsearch B.V. licenses this file to you under -+// the Apache License, Version 2.0 (the "License"); you may -+// not use this file except in compliance with the License. -+// You may obtain a copy of the License at -+// -+// http://www.apache.org/licenses/LICENSE-2.0 -+// -+// Unless required by applicable law or agreed to in writing, -+// software distributed under the License is distributed on an -+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -+// KIND, either express or implied. See the License for the -+// specific language governing permissions and limitations -+// under the License. -+ -+//go:build freebsd && cgo -+ -+package freebsd -+ -+import "C" -+ -+/* -+#cgo LDFLAGS: -lprocstat -+#include <sys/types.h> -+#include <sys/sysctl.h> -+#include <sys/time.h> -+#include <sys/param.h> -+#include <sys/queue.h> -+#include <sys/socket.h> -+#include <sys/user.h> -+ -+#include <libprocstat.h> -+#include <string.h> -+ -+struct kinfo_proc getProcInfoAt(struct kinfo_proc *procs, unsigned int index) { -+ return procs[index]; -+} -+ -+unsigned int countArrayItems(char **items) { -+ unsigned int i = 0; -+ for (i = 0; items[i] != NULL; ++i); -+ return i; -+} -+ -+char * itemAtIndex(char **items, unsigned int index) { -+ return items[index]; -+} -+ -+unsigned int countFileStats(struct filestat_list *head) { -+ unsigned int count = 0; -+ struct filestat *fst; -+ STAILQ_FOREACH(fst, head, next) { -+ ++count; -+ } -+ -+ return count; -+} -+ -+void copyFileStats(struct filestat_list *head, struct filestat *out, unsigned int size) { -+ unsigned int index = 0; -+ struct filestat *fst; -+ if (size == 0) { -+ return; -+ } -+ STAILQ_FOREACH(fst, head, next) { -+ memcpy(out, fst, sizeof(*fst)); -+ ++out; -+ --size; -+ } -+} -+*/ -+import "C" -+ -+import ( -+ "errors" -+ "fmt" -+ "os" -+ "strconv" -+ "strings" -+ "time" -+ -+ "github.com/elastic/go-sysinfo/types" -+) -+ -+func getProcInfo(op, arg int) ([]process, error) { -+ procstat, err := C.procstat_open_sysctl() -+ if procstat == nil { -+ return nil, fmt.Errorf("failed to open procstat sysctl: %w", err) -+ } -+ defer C.procstat_close(procstat) -+ -+ var count C.uint = 0 -+ kprocs, err := C.procstat_getprocs(procstat, C.int(op), C.int(arg), &count) -+ if kprocs == nil { -+ return nil, fmt.Errorf("getprocs failed: %w", err) -+ } -+ defer C.procstat_freeprocs(procstat, kprocs) -+ -+ procs := make([]process, count) -+ var index C.uint -+ for index = 0; index < count; index++ { -+ proc := C.getProcInfoAt(kprocs, index) -+ procs[index].kinfo = proc -+ procs[index].pid = int(proc.ki_pid) -+ } -+ -+ return procs, nil -+} -+ -+func copyArray(from **C.char) []string { -+ if from == nil { -+ return nil -+ } -+ -+ count := C.countArrayItems(from) -+ out := make([]string, count) -+ -+ for index := C.uint(0); index < count; index++ { -+ out[index] = C.GoString(C.itemAtIndex(from, index)) -+ } -+ -+ return out -+} -+ -+func makeMap(from []string) map[string]string { -+ out := make(map[string]string, len(from)) -+ -+ for _, env := range from { -+ parts := strings.Split(env, "=") -+ if len(parts) > 1 { -+ out[parts[0]] = parts[1] -+ } -+ } -+ -+ return out -+} -+ -+func getProcEnv(p *process) (map[string]string, error) { -+ procstat, err := C.procstat_open_sysctl() -+ -+ if procstat == nil { -+ return nil, fmt.Errorf("failed to open procstat sysctl: %w", err) -+ } -+ defer C.procstat_close(procstat) -+ -+ env, err := C.procstat_getenvv(procstat, &p.kinfo, 0) -+ defer C.procstat_freeenvv(procstat) -+ -+ return makeMap(copyArray(env)), err -+} -+ -+func getProcArgs(p *process) ([]string, error) { -+ procstat, err := C.procstat_open_sysctl() -+ -+ if procstat == nil { -+ return nil, fmt.Errorf("failed to open procstat sysctl: %w", err) -+ } -+ defer C.procstat_close(procstat) -+ -+ args, err := C.procstat_getargv(procstat, &p.kinfo, 0) -+ defer C.procstat_freeargv(procstat) -+ -+ return copyArray(args), err -+} -+ -+func getProcPathname(p *process) (string, error) { -+ procstat, err := C.procstat_open_sysctl() -+ -+ if procstat == nil { -+ return "", fmt.Errorf("failed to open procstat sysctl: %w", err) -+ } -+ defer C.procstat_close(procstat) -+ -+ const maxlen = uint(1024) -+ out := make([]C.char, maxlen) -+ if res, err := C.procstat_getpathname(procstat, &p.kinfo, &out[0], C.ulong(maxlen)); res != 0 { -+ return "", err -+ } -+ return C.GoString(&out[0]), nil -+} -+ -+func getFileStats(fileStats *C.struct_filestat_list) []C.struct_filestat { -+ count := C.countFileStats(fileStats) -+ -+ if count < 1 { -+ return nil -+ } -+ -+ out := make([]C.struct_filestat, count) -+ -+ C.copyFileStats(fileStats, &out[0], count) -+ return out -+} -+ -+func getProcCWD(p *process) (string, error) { -+ procstat, err := C.procstat_open_sysctl() -+ -+ if procstat == nil { -+ return "", fmt.Errorf("failed to open procstat sysctl: %w", err) -+ } -+ defer C.procstat_close(procstat) -+ -+ fs, err := C.procstat_getfiles(procstat, &p.kinfo, 0) -+ if fs == nil { -+ return "", fmt.Errorf("failed to get files: %w", err) -+ } -+ -+ defer C.procstat_freefiles(procstat, fs) -+ -+ files := getFileStats(fs) -+ for _, f := range files { -+ if f.fs_uflags == C.PS_FST_UFLAG_CDIR { -+ return C.GoString(f.fs_path), nil -+ } -+ } -+ -+ return "", nil -+} -+ -+type process struct { -+ pid int -+ kinfo C.struct_kinfo_proc -+} -+ -+func timevalToDuration(tm C.struct_timeval) time.Duration { -+ return time.Duration(tm.tv_sec)*time.Second + -+ time.Duration(tm.tv_usec)*time.Microsecond -+} -+ -+func (p *process) CPUTime() (types.CPUTimes, error) { -+ procs, err := getProcInfo(C.KERN_PROC_PID, p.PID()) -+ if err != nil { -+ return types.CPUTimes{}, err -+ } -+ p.kinfo = procs[0].kinfo -+ -+ return types.CPUTimes{ -+ User: timevalToDuration(p.kinfo.ki_rusage.ru_utime), -+ System: timevalToDuration(p.kinfo.ki_rusage.ru_stime), -+ }, nil -+} -+ -+func (p *process) Info() (types.ProcessInfo, error) { -+ procs, err := getProcInfo(C.KERN_PROC_PID, p.PID()) -+ if err != nil { -+ return types.ProcessInfo{}, err -+ } -+ p.kinfo = procs[0].kinfo -+ -+ cwd, err := getProcCWD(p) -+ if err != nil { -+ return types.ProcessInfo{}, err -+ } -+ -+ args, err := getProcArgs(p) -+ if err != nil { -+ return types.ProcessInfo{}, err -+ } -+ -+ exe, _ := getProcPathname(p) -+ -+ return types.ProcessInfo{ -+ Name: C.GoString(&p.kinfo.ki_comm[0]), -+ PID: int(p.kinfo.ki_pid), -+ PPID: int(p.kinfo.ki_ppid), -+ CWD: cwd, -+ Exe: exe, -+ Args: args, -+ StartTime: time.Unix(int64(p.kinfo.ki_start.tv_sec), int64(p.kinfo.ki_start.tv_usec)*1000), -+ }, nil -+} -+ -+func (p *process) Memory() (types.MemoryInfo, error) { -+ pageSize, err := pageSizeBytes() -+ if err != nil { -+ return types.MemoryInfo{}, err -+ } -+ -+ procs, err := getProcInfo(C.KERN_PROC_PID, p.PID()) -+ if err != nil { -+ return types.MemoryInfo{}, err -+ } -+ p.kinfo = procs[0].kinfo -+ -+ return types.MemoryInfo{ -+ Resident: uint64(p.kinfo.ki_rssize) * pageSize, -+ Virtual: uint64(p.kinfo.ki_size), -+ }, nil -+} -+ -+func (p *process) User() (types.UserInfo, error) { -+ procs, err := getProcInfo(C.KERN_PROC_PID, p.PID()) -+ if err != nil { -+ return types.UserInfo{}, err -+ } -+ -+ p.kinfo = procs[0].kinfo -+ -+ return types.UserInfo{ -+ UID: strconv.FormatUint(uint64(p.kinfo.ki_ruid), 10), -+ EUID: strconv.FormatUint(uint64(p.kinfo.ki_uid), 10), -+ SUID: strconv.FormatUint(uint64(p.kinfo.ki_svuid), 10), -+ GID: strconv.FormatUint(uint64(p.kinfo.ki_rgid), 10), -+ EGID: strconv.FormatUint(uint64(p.kinfo.ki_groups[0]), 10), -+ SGID: strconv.FormatUint(uint64(p.kinfo.ki_svgid), 10), -+ }, nil -+} -+ -+func (p *process) PID() int { -+ return p.pid -+} -+ -+func (p *process) OpenHandles() ([]string, error) { -+ procstat := C.procstat_open_sysctl() -+ if procstat == nil { -+ return nil, errors.New("failed to open procstat sysctl") -+ } -+ defer C.procstat_close(procstat) -+ -+ fs := C.procstat_getfiles(procstat, &p.kinfo, 0) -+ defer C.procstat_freefiles(procstat, fs) -+ -+ files := getFileStats(fs) -+ names := make([]string, 0, len(files)) -+ -+ for _, file := range files { -+ if file.fs_type == 1 { -+ if path := C.GoString(file.fs_path); path != "" { -+ names = append(names, path) -+ } -+ } -+ } -+ -+ return names, nil -+} -+ -+func (p *process) OpenHandleCount() (int, error) { -+ procstat := C.procstat_open_sysctl() -+ if procstat == nil { -+ return 0, errors.New("failed to open procstat sysctl") -+ } -+ defer C.procstat_close(procstat) -+ -+ fs := C.procstat_getfiles(procstat, &p.kinfo, 0) -+ defer C.procstat_freefiles(procstat, fs) -+ return int(C.countFileStats(fs)), nil -+} -+ -+func (p *process) Environment() (map[string]string, error) { -+ return getProcEnv(p) -+} -+ -+func (s freebsdSystem) Processes() ([]types.Process, error) { -+ procs, err := getProcInfo(C.KERN_PROC_PROC, 0) -+ out := make([]types.Process, 0, len(procs)) -+ -+ for _, proc := range procs { -+ out = append(out, &process{ -+ pid: proc.pid, -+ kinfo: proc.kinfo, -+ }) -+ } -+ -+ return out, err -+} -+ -+func (s freebsdSystem) Process(pid int) (types.Process, error) { -+ return &process{pid: pid}, nil -+} -+ -+func (s freebsdSystem) Self() (types.Process, error) { -+ return s.Process(os.Getpid()) -+} -+ -+func (p *process) Parent() (types.Process, error) { -+ info, err := p.Info() -+ if err != nil { -+ return nil, err -+ } -+ -+ proc := process{pid: info.PPID} -+ -+ return &proc, nil -+} ---- vendor/github.com/elastic/go-sysinfo/providers/freebsd/sysctl_freebsd.go.orig 2025-09-19 18:12:17 UTC -+++ vendor/github.com/elastic/go-sysinfo/providers/freebsd/sysctl_freebsd.go -@@ -0,0 +1,248 @@ -+// Licensed to Elasticsearch B.V. under one or more contributor -+// license agreements. See the NOTICE file distributed with -+// this work for additional information regarding copyright -+// ownership. Elasticsearch B.V. licenses this file to you under -+// the Apache License, Version 2.0 (the "License"); you may -+// not use this file except in compliance with the License. -+// You may obtain a copy of the License at -+// -+// http://www.apache.org/licenses/LICENSE-2.0 -+// -+// Unless required by applicable law or agreed to in writing, -+// software distributed under the License is distributed on an -+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -+// KIND, either express or implied. See the License for the -+// specific language governing permissions and limitations -+// under the License. -+ -+//go:build freebsd -+ -+package freebsd -+ -+import ( -+ "fmt" -+ "strconv" -+ "strings" -+ "sync" -+ "time" -+ "unsafe" -+ -+ "github.com/elastic/go-sysinfo/types" -+ -+ "golang.org/x/sys/unix" -+) -+ -+var tickDuration = sync.OnceValues(func() (time.Duration, error) { -+ const mib = "kern.clockrate" -+ -+ c, err := unix.SysctlClockinfo(mib) -+ if err != nil { -+ return 0, fmt.Errorf("failed to get %s: %w", mib, err) -+ } -+ return time.Duration(c.Tick) * time.Microsecond, nil -+}) -+ -+var pageSizeBytes = sync.OnceValues(func() (uint64, error) { -+ const mib = "vm.stats.vm.v_page_size" -+ -+ v, err := unix.SysctlUint32(mib) -+ if err != nil { -+ return 0, fmt.Errorf("failed to get %s: %w", mib, err) -+ } -+ -+ return uint64(v), nil -+}) -+ -+func activePageCount(r *reader) uint64 { -+ const mib = "vm.stats.vm.v_active_count" -+ -+ v, err := unix.SysctlUint32(mib) -+ if r.addErr(err) { -+ return 0 -+ } -+ return uint64(v) -+} -+ -+func architecture() (string, error) { -+ const mib = "hw.machine" -+ -+ arch, err := unix.Sysctl(mib) -+ if err != nil { -+ return "", fmt.Errorf("failed to get architecture: %w", err) -+ } -+ -+ return arch, nil -+} -+ -+func bootTime() (time.Time, error) { -+ const mib = "kern.boottime" -+ -+ tv, err := unix.SysctlTimeval(mib) -+ if err != nil { -+ return time.Time{}, fmt.Errorf("failed to get host uptime: %w", err) -+ } -+ -+ bootTime := time.Unix(tv.Sec, tv.Usec*int64(time.Microsecond)) -+ return bootTime, nil -+} -+ -+// buffersUsedBytes returns the number memory bytes used as disk cache. -+func buffersUsedBytes(r *reader) uint64 { -+ const mib = "vfs.bufspace" -+ -+ v, err := unix.SysctlUint64(mib) -+ if r.addErr(err) { -+ return 0 -+ } -+ -+ return v -+} -+ -+func cachePageCount(r *reader) uint64 { -+ const mib = "vm.stats.vm.v_cache_count" -+ -+ v, err := unix.SysctlUint32(mib) -+ if r.addErr(err) { -+ return 0 -+ } -+ -+ return uint64(v) -+} -+ -+const sizeOfUint64 = int(unsafe.Sizeof(uint64(0))) -+ -+// cpuStateTimes uses sysctl kern.cp_time to get the amount of time spent in -+// different CPU states. -+func cpuStateTimes() (*types.CPUTimes, error) { -+ tickDuration, err := tickDuration() -+ if err != nil { -+ return nil, err -+ } -+ -+ const mib = "kern.cp_time" -+ buf, err := unix.SysctlRaw(mib) -+ if err != nil { -+ return nil, fmt.Errorf("failed to get %s: %w", mib, err) -+ } -+ -+ var clockTicks [unix.CPUSTATES]uint64 -+ if len(buf) < len(clockTicks)*sizeOfUint64 { -+ return nil, fmt.Errorf("kern.cp_time data is too short (got %d bytes)", len(buf)) -+ } -+ for i := range clockTicks { -+ val := *(*uint64)(unsafe.Pointer(&buf[sizeOfUint64*i])) -+ clockTicks[i] = val -+ } -+ -+ return &types.CPUTimes{ -+ User: time.Duration(clockTicks[unix.CP_USER]) * tickDuration, -+ System: time.Duration(clockTicks[unix.CP_SYS]) * tickDuration, -+ Idle: time.Duration(clockTicks[unix.CP_IDLE]) * tickDuration, -+ IRQ: time.Duration(clockTicks[unix.CP_INTR]) * tickDuration, -+ Nice: time.Duration(clockTicks[unix.CP_NICE]) * tickDuration, -+ }, nil -+} -+ -+func freePageCount(r *reader) uint64 { -+ const mib = "vm.stats.vm.v_free_count" -+ -+ v, err := unix.SysctlUint32(mib) -+ if r.addErr(err) { -+ return 0 -+ } -+ -+ return uint64(v) -+} -+ -+func inactivePageCount(r *reader) uint64 { -+ const mib = "vm.stats.vm.v_inactive_count" -+ -+ v, err := unix.SysctlUint32(mib) -+ if r.addErr(err) { -+ return 0 -+ } -+ -+ return uint64(v) -+} -+ -+func kernelVersion() (string, error) { -+ const mib = "kern.osrelease" -+ -+ version, err := unix.Sysctl(mib) -+ if err != nil { -+ return "", fmt.Errorf("failed to get kernel version: %w", err) -+ } -+ -+ return version, nil -+} -+ -+func machineID() (string, error) { -+ const mib = "kern.hostuuid" -+ -+ uuid, err := unix.Sysctl(mib) -+ if err != nil { -+ return "", fmt.Errorf("failed to get machine id: %w", err) -+ } -+ -+ return uuid, nil -+} -+ -+func operatingSystem() (*types.OSInfo, error) { -+ info := &types.OSInfo{ -+ Type: "freebsd", -+ Family: "freebsd", -+ Platform: "freebsd", -+ } -+ -+ osType, err := unix.Sysctl("kern.ostype") -+ if err != nil { -+ return info, err -+ } -+ info.Name = osType -+ -+ // Example: 13.0-RELEASE-p11 -+ osRelease, err := unix.Sysctl("kern.osrelease") -+ if err != nil { -+ return info, err -+ } -+ info.Version = osRelease -+ -+ releaseParts := strings.Split(osRelease, "-") -+ -+ majorMinor := strings.Split(releaseParts[0], ".") -+ if len(majorMinor) > 0 { -+ info.Major, _ = strconv.Atoi(majorMinor[0]) -+ } -+ if len(majorMinor) > 1 { -+ info.Minor, _ = strconv.Atoi(majorMinor[1]) -+ } -+ -+ if len(releaseParts) > 1 { -+ info.Build = releaseParts[1] -+ } -+ if len(releaseParts) > 2 { -+ info.Patch, _ = strconv.Atoi(strings.TrimPrefix(releaseParts[2], "p")) -+ } -+ -+ return info, nil -+} -+ -+func totalPhysicalMem(r *reader) uint64 { -+ const mib = "hw.physmem" -+ -+ v, err := unix.SysctlUint64(mib) -+ if r.addErr(err) { -+ return 0 -+ } -+ return v -+} -+ -+func wirePageCount(r *reader) uint64 { -+ const mib = "vm.stats.vm.v_wire_count" -+ -+ v, err := unix.SysctlUint32(mib) -+ if r.addErr(err) { -+ return 0 -+ } -+ return uint64(v) -+} ---- vendor/github.com/elastic/go-sysinfo/providers/freebsd/sysctl_freebsd_test.go.orig 2025-09-19 18:12:17 UTC -+++ vendor/github.com/elastic/go-sysinfo/providers/freebsd/sysctl_freebsd_test.go -@@ -0,0 +1,137 @@ -+// Licensed to Elasticsearch B.V. under one or more contributor -+// license agreements. See the NOTICE file distributed with -+// this work for additional information regarding copyright -+// ownership. Elasticsearch B.V. licenses this file to you under -+// the Apache License, Version 2.0 (the "License"); you may -+// not use this file except in compliance with the License. -+// You may obtain a copy of the License at -+// -+// http://www.apache.org/licenses/LICENSE-2.0 -+// -+// Unless required by applicable law or agreed to in writing, -+// software distributed under the License is distributed on an -+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -+// KIND, either express or implied. See the License for the -+// specific language governing permissions and limitations -+// under the License. -+ -+//go:build freebsd -+ -+package freebsd -+ -+import ( -+ "encoding/json" -+ "github.com/stretchr/testify/assert" -+ "github.com/stretchr/testify/require" -+ "os/exec" -+ "strings" -+ "testing" -+ "time" -+) -+ -+func TestArchitecture(t *testing.T) { -+ arch, err := architecture() -+ if err != nil { -+ t.Fatal(err) -+ } -+ -+ assert.NotEmpty(t, arch) -+ assert.Regexp(t, `(amd64|i386|powerpc|arm(64)?|riscv|mips|sparc64|pc98)`, arch) -+} -+ -+func TestBootTime(t *testing.T) { -+ bootTime, err := bootTime() -+ if err != nil { -+ t.Fatal(err) -+ } -+ -+ bootDiff := time.Since(bootTime) -+ // t.Logf("bootTime in seconds: %#v", int64(bootDiff.Seconds())) -+ -+ cmd := exec.Command("/usr/bin/uptime", "--libxo=json") -+ upcmd, err := cmd.Output() -+ -+ if err != nil { -+ t.Fatal(err) -+ } -+ -+ t.Logf(string(upcmd)) -+ -+ type UptimeOutput struct { -+ UptimeInformation struct { -+ Uptime int64 `json:"uptime"` -+ } `json:"uptime-information"` -+ } -+ -+ var upInfo UptimeOutput -+ err = json.Unmarshal(upcmd, &upInfo) -+ -+ if err != nil { -+ t.Fatal(err) -+ } -+ -+ upsec := upInfo.UptimeInformation.Uptime -+ uptime := time.Duration(upsec * int64(time.Second)) -+ // t.Logf("uptime in seconds: %#v", int64(uptime.Seconds())) -+ -+ assert.InDelta(t, uptime, bootDiff, float64(5*time.Second)) -+} -+ -+func TestCPUStateTimes(t *testing.T) { -+ times, err := cpuStateTimes() -+ if err != nil { -+ t.Fatal(err) -+ } -+ -+ require.NotNil(t, times) -+ assert.NotZero(t, *times) -+} -+ -+func TestKernelVersion(t *testing.T) { -+ kernel, err := kernelVersion() -+ if err != nil { -+ t.Fatal(err) -+ } -+ -+ // Retrieve currently running kernel version -+ cmd := exec.Command("/bin/freebsd-version", "-r") -+ fbsdout, err := cmd.Output() -+ -+ if err != nil { -+ t.Fatal(err) -+ } -+ -+ fbsdver := strings.TrimSuffix(string(fbsdout), "\n") -+ -+ assert.NotEmpty(t, kernel) -+ assert.EqualValues(t, kernel, fbsdver) -+} -+ -+func TestMachineID(t *testing.T) { -+ machineID, err := machineID() -+ if err != nil { -+ t.Fatal(err) -+ } -+ -+ assert.NotEmpty(t, machineID) -+ assert.Regexp(t, "^[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}$", machineID) -+} -+ -+func TestOperatingSystem(t *testing.T) { -+ t.Run("freebsd", func(t *testing.T) { -+ os, err := operatingSystem() -+ if err != nil { -+ t.Fatal(err) -+ } -+ assert.Equal(t, "freebsd", os.Type) -+ assert.Equal(t, "freebsd", os.Family) -+ assert.Equal(t, "freebsd", os.Platform) -+ assert.Equal(t, "FreeBSD", os.Name) -+ assert.Regexp(t, `\d{1,2}\.\d{1,2}-(RELEASE|STABLE|CURRENT|RC[0-9]|ALPHA(\d{0,2})|BETA(\d{0,2}))(-p\d)?`, os.Version) -+ assert.Regexp(t, `\d{1,2}`, os.Major) -+ assert.Regexp(t, `\d{1,2}`, os.Minor) -+ assert.Regexp(t, `\d{1,2}`, os.Patch) -+ assert.Regexp(t, `(RELEASE|STABLE|CURRENT|RC[0-9]|ALPHA([0-9]{0,2})|BETA([0-9]{0,2}))`, os.Build) -+ t.Logf("%#v", os) -+ }) -+} ---- vendor/github.com/elastic/go-sysinfo/providers/freebsd/ztypes_freebsd.go.orig 2025-09-19 18:12:17 UTC -+++ vendor/github.com/elastic/go-sysinfo/providers/freebsd/ztypes_freebsd.go -@@ -0,0 +1,39 @@ -+// Licensed to Elasticsearch B.V. under one or more contributor -+// license agreements. See the NOTICE file distributed with -+// this work for additional information regarding copyright -+// ownership. Elasticsearch B.V. licenses this file to you under -+// the Apache License, Version 2.0 (the "License"); you may -+// not use this file except in compliance with the License. -+// You may obtain a copy of the License at -+// -+// http://www.apache.org/licenses/LICENSE-2.0 -+// -+// Unless required by applicable law or agreed to in writing, -+// software distributed under the License is distributed on an -+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -+// KIND, either express or implied. See the License for the -+// specific language governing permissions and limitations -+// under the License. -+ -+// Code generated by cmd/cgo -godefs; and then patched up to fix -+// an alignment issue -+// cgo -godefs defs_freebsd.go -+ -+package freebsd -+ -+type kvmSwap struct { -+ Devname [32]int8 -+ Used uint32 -+ Total uint32 -+ Flags int32 -+ Reserved1 uint32 -+ Reserved2 uint32 -+} -+ -+type clockInfo struct { -+ Hz int32 -+ Tick int32 -+ Spare int32 -+ Stathz int32 -+ Profhz int32 -+} ---- vendor/github.com/elastic/go-sysinfo/providers/shared/fqdn.go.orig 2025-09-19 18:12:11 UTC -+++ vendor/github.com/elastic/go-sysinfo/providers/shared/fqdn.go -@@ -15,7 +15,7 @@ - // specific language governing permissions and limitations - // under the License. - --//go:build linux || darwin || aix -+//go:build linux || darwin || aix || freebsd - - package shared - ---- vendor/github.com/elastic/go-sysinfo/system.go.orig 2025-09-19 18:12:11 UTC -+++ vendor/github.com/elastic/go-sysinfo/system.go -@@ -26,6 +26,7 @@ import ( - // Register host and process providers. - _ "github.com/elastic/go-sysinfo/providers/aix" - _ "github.com/elastic/go-sysinfo/providers/darwin" -+ _ "github.com/elastic/go-sysinfo/providers/freebsd" - _ "github.com/elastic/go-sysinfo/providers/linux" - _ "github.com/elastic/go-sysinfo/providers/windows" - ) diff --git a/sysutils/beats9/files/patch-heartbeat_heartbeat.reference.yml b/sysutils/beats9/files/patch-heartbeat_heartbeat.reference.yml deleted file mode 100644 index 9bcb6527a696..000000000000 --- a/sysutils/beats9/files/patch-heartbeat_heartbeat.reference.yml +++ /dev/null @@ -1,20 +0,0 @@ ---- heartbeat/heartbeat.reference.yml.bak 2026-02-23 21:59:26.000000000 +0000 -+++ heartbeat/heartbeat.reference.yml 2026-03-17 13:33:31.029015000 +0000 -@@ -14,7 +14,7 @@ - # of individual yaml files. - heartbeat.config.monitors: - # Directory + glob pattern to search for configuration files -- path: ${path.config}/monitors.d/*.yml -+ path: ${path.config}/heartbeat.monitors.d/*.yml - # If enabled, heartbeat will periodically check the config.monitors path for changes - reload.enabled: false - # How often to check for changes -@@ -1333,7 +1333,7 @@ - - # The directory from where to read the dashboards. The default is the `kibana` - # folder in the home path. --#setup.dashboards.directory: ${path.home}/kibana -+#setup.dashboards.directory: %%DATADIR%%/hearbeat/kibana - - # The URL from where to download the dashboard archive. It is used instead of - # the directory if it has a value. diff --git a/sysutils/beats9/files/patch-heartbeat_heartbeat.yml b/sysutils/beats9/files/patch-heartbeat_heartbeat.yml deleted file mode 100644 index 4e41b4e0d011..000000000000 --- a/sysutils/beats9/files/patch-heartbeat_heartbeat.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- heartbeat/heartbeat.yml.orig 2021-07-04 13:59:29 UTC -+++ heartbeat/heartbeat.yml -@@ -13,7 +13,7 @@ - # of individual yaml files. - heartbeat.config.monitors: - # Directory + glob pattern to search for configuration files -- path: ${path.config}/monitors.d/*.yml -+ path: ${path.config}/heartbeat.monitors.d/*.yml - # If enabled, heartbeat will periodically check the config.monitors path for changes - reload.enabled: false - # How often to check for changes diff --git a/sysutils/beats9/files/patch-libbeat_autodiscover_providers_docker_config.go b/sysutils/beats9/files/patch-libbeat_autodiscover_providers_docker_config.go deleted file mode 100644 index e554c26110a0..000000000000 --- a/sysutils/beats9/files/patch-libbeat_autodiscover_providers_docker_config.go +++ /dev/null @@ -1,11 +0,0 @@ ---- libbeat/autodiscover/providers/docker/config.go.orig 2025-09-15 19:57:17 UTC -+++ libbeat/autodiscover/providers/docker/config.go -@@ -15,7 +15,7 @@ - // specific language governing permissions and limitations - // under the License. - --//go:build linux || darwin || windows -+//go:build linux || darwin || windows || freebsd - - package docker - diff --git a/sysutils/beats9/files/patch-libbeat_autodiscover_providers_docker_docker.go b/sysutils/beats9/files/patch-libbeat_autodiscover_providers_docker_docker.go deleted file mode 100644 index 1ba78ac9207b..000000000000 --- a/sysutils/beats9/files/patch-libbeat_autodiscover_providers_docker_docker.go +++ /dev/null @@ -1,20 +0,0 @@ ---- libbeat/autodiscover/providers/docker/docker.go.orig 2025-09-15 19:57:17 UTC -+++ libbeat/autodiscover/providers/docker/docker.go -@@ -15,7 +15,7 @@ - // specific language governing permissions and limitations - // under the License. - --//go:build linux || darwin || windows -+//go:build linux || darwin || windows || freebsd - - package docker - -@@ -32,7 +32,7 @@ import ( - "github.com/elastic/beats/v7/libbeat/common" - - "github.com/elastic/elastic-agent-autodiscover/bus" -- "github.com/elastic/elastic-agent-autodiscover/docker" -+ docker "github.com/elastic/elastic-agent-autodiscover/docker" - "github.com/elastic/elastic-agent-autodiscover/utils" - "github.com/elastic/elastic-agent-libs/config" - "github.com/elastic/elastic-agent-libs/keystore" diff --git a/sysutils/beats9/files/patch-libbeat_autodiscover_providers_kubernetes_config.go b/sysutils/beats9/files/patch-libbeat_autodiscover_providers_kubernetes_config.go deleted file mode 100644 index d61cc99ec22f..000000000000 --- a/sysutils/beats9/files/patch-libbeat_autodiscover_providers_kubernetes_config.go +++ /dev/null @@ -1,11 +0,0 @@ ---- libbeat/autodiscover/providers/kubernetes/config.go.orig 2025-09-15 19:57:17 UTC -+++ libbeat/autodiscover/providers/kubernetes/config.go -@@ -15,7 +15,7 @@ - // specific language governing permissions and limitations - // under the License. - --//go:build linux || darwin || windows -+//go:build linux || darwin || windows || freebsd - - package kubernetes - diff --git a/sysutils/beats9/files/patch-libbeat_autodiscover_providers_kubernetes_kubernetes.go b/sysutils/beats9/files/patch-libbeat_autodiscover_providers_kubernetes_kubernetes.go deleted file mode 100644 index de1795f28db2..000000000000 --- a/sysutils/beats9/files/patch-libbeat_autodiscover_providers_kubernetes_kubernetes.go +++ /dev/null @@ -1,11 +0,0 @@ ---- libbeat/autodiscover/providers/kubernetes/kubernetes.go.orig 2025-09-15 19:57:17 UTC -+++ libbeat/autodiscover/providers/kubernetes/kubernetes.go -@@ -15,7 +15,7 @@ - // specific language governing permissions and limitations - // under the License. - --//go:build linux || darwin || windows -+//go:build linux || darwin || windows || freebsd - - package kubernetes - diff --git a/sysutils/beats9/files/patch-libbeat_scripts_Makefile b/sysutils/beats9/files/patch-libbeat_scripts_Makefile deleted file mode 100644 index e84469edfa3e..000000000000 --- a/sysutils/beats9/files/patch-libbeat_scripts_Makefile +++ /dev/null @@ -1,26 +0,0 @@ ---- libbeat/scripts/Makefile.orig 2025-09-15 19:57:17 UTC -+++ libbeat/scripts/Makefile -@@ -47,7 +47,7 @@ GOPACKAGES_STRESSTESTS=$(shell find . -type d \( -name - GOFILES_NOVENDOR = $(shell find . -type f -name '*.go' -not -path "*/vendor/*" 2>/dev/null) - GOFILES_ALL = $(GOFILES) $(shell find $(ES_BEATS) -type f -name '*.go' 2>/dev/null) - GOPACKAGES_STRESSTESTS=$(shell find . -type d \( -name "stress" \) 2>/dev/null) --SHELL=bash -+SHELL=sh - ES_HOST?=elasticsearch - ES_PORT?=9200 - ES_USER?=beats -@@ -346,12 +346,12 @@ update: python-env fields collect config ## @build Upd - update: python-env fields collect config ## @build Update expects the most recent version of libbeat in the GOPATH - @echo "Updating generated files for ${BEAT_NAME}" - --ifneq ($(shell [[ $(BEAT_NAME) == libbeat || $(BEAT_NAME) == metricbeat ]] && echo true ),true) -+ifneq ($(shell [[ $(BEAT_NAME) = libbeat || $(BEAT_NAME) = metricbeat ]] && echo true ),true) - mkdir -p include - go run ${INSTALL_FLAG} ${ES_BEATS}/dev-tools/cmd/asset/asset.go -license $(LICENSE) -pkg include -in fields.yml -out include/fields.go $(BEAT_NAME) - endif - --ifneq ($(shell [[ $(BEAT_NAME) == libbeat || $(BEAT_NAME) == metricbeat ]] && echo true ),true) -+ifneq ($(shell [[ $(BEAT_NAME) = libbeat || $(BEAT_NAME) = metricbeat ]] && echo true ),true) - @# Update docs - @mkdir -p docs - @${PYTHON_ENV_EXE} ${ES_BEATS}/libbeat/scripts/generate_fields_docs.py $(PWD)/fields.yml ${BEAT_TITLE} ${ES_BEATS} diff --git a/sysutils/beats9/files/patch-metricbeat_metricbeat.reference.yml b/sysutils/beats9/files/patch-metricbeat_metricbeat.reference.yml deleted file mode 100644 index 170a0e8a37f6..000000000000 --- a/sysutils/beats9/files/patch-metricbeat_metricbeat.reference.yml +++ /dev/null @@ -1,20 +0,0 @@ ---- metricbeat/metricbeat.reference.yml.orig 2025-09-15 19:57:17 UTC -+++ metricbeat/metricbeat.reference.yml -@@ -14,7 +14,7 @@ metricbeat.config.modules: - metricbeat.config.modules: - - # Glob pattern for configuration reloading -- path: ${path.config}/modules.d/*.yml -+ path: ${path.config}/metricbeat.modules.d/*.yml - - # Period on which files under path should be checked for changes - reload.period: 10s -@@ -2199,7 +2199,7 @@ output.elasticsearch: - - # The directory from where to read the dashboards. The default is the `kibana` - # folder in the home path. --#setup.dashboards.directory: ${path.home}/kibana -+#setup.dashboards.directory: %%DATADIR%%/metricbeat/kibana - - # The URL from where to download the dashboard archive. It is used instead of - # the directory if it has a value. diff --git a/sysutils/beats9/files/patch-metricbeat_metricbeat.yml b/sysutils/beats9/files/patch-metricbeat_metricbeat.yml deleted file mode 100644 index 7a8524fee677..000000000000 --- a/sysutils/beats9/files/patch-metricbeat_metricbeat.yml +++ /dev/null @@ -1,33 +0,0 @@ ---- metricbeat/metricbeat.yml.orig 2025-09-15 19:57:17 UTC -+++ metricbeat/metricbeat.yml -@@ -11,7 +11,7 @@ metricbeat.config.modules: - - metricbeat.config.modules: - # Glob pattern for configuration loading -- path: ${path.config}/modules.d/*.yml -+ path: ${path.config}/metricbeat.modules.d/*.yml - - # Set to true to enable config reloading - reload.enabled: false -@@ -54,6 +54,10 @@ setup.template.settings: - # website. - #setup.dashboards.url: - -+# The directory from where to read the dashboards. The default is the `kibana` -+# folder in the home path. -+#setup.dashboards.directory: %%DATADIR%%/metricbeat/kibana -+ - # =================================== Kibana =================================== - - # Starting with Beats version 6.0.0, the dashboards are loaded via the Kibana API. -@@ -127,8 +131,8 @@ processors: - processors: - - add_host_metadata: ~ - - add_cloud_metadata: ~ -- - add_docker_metadata: ~ -- - add_kubernetes_metadata: ~ -+# - add_docker_metadata: ~ -+# - add_kubernetes_metadata: ~ - - - # ================================== Logging =================================== diff --git a/sysutils/beats9/files/patch-packetbeat_packetbeat.reference.yml b/sysutils/beats9/files/patch-packetbeat_packetbeat.reference.yml deleted file mode 100644 index 47c7bf919f8a..000000000000 --- a/sysutils/beats9/files/patch-packetbeat_packetbeat.reference.yml +++ /dev/null @@ -1,11 +0,0 @@ ---- packetbeat/packetbeat.reference.yml.orig 2025-09-15 19:57:17 UTC -+++ packetbeat/packetbeat.reference.yml -@@ -1712,7 +1712,7 @@ output.elasticsearch: - - # The directory from where to read the dashboards. The default is the `kibana` - # folder in the home path. --#setup.dashboards.directory: ${path.home}/kibana -+#setup.dashboards.directory: %%DATADIR%%/packetbeat/kibana - - # The URL from where to download the dashboard archive. It is used instead of - # the directory if it has a value. diff --git a/sysutils/beats9/files/patch-packetbeat_packetbeat.yml b/sysutils/beats9/files/patch-packetbeat_packetbeat.yml deleted file mode 100644 index 3189a9f70662..000000000000 --- a/sysutils/beats9/files/patch-packetbeat_packetbeat.yml +++ /dev/null @@ -1,23 +0,0 @@ ---- packetbeat/packetbeat.yml.orig 2025-09-15 19:57:17 UTC -+++ packetbeat/packetbeat.yml -@@ -25,7 +25,8 @@ - # internal_networks: - # - private - # --packetbeat.interfaces.device: any -+# On FreeBSD, you must specify particular interface to sniff on -+packetbeat.interfaces.device: em0 - - # Specify the amount of time between polling for changes in the default - # route. This option is only used when one of the default route devices -@@ -173,6 +174,10 @@ setup.template.settings: - # versions, this URL points to the dashboard archive on the artifacts.elastic.co - # website. - #setup.dashboards.url: -+ -+# The directory from where to read the dashboards. The default is the `kibana` -+# folder in the home path. -+#setup.dashboards.directory: %%DATADIR%%/packetbeat/kibana - - # =================================== Kibana =================================== - diff --git a/sysutils/beats9/files/patch-vendor_github.com_elastic_elastic-agent-autodiscover_docker_client.go b/sysutils/beats9/files/patch-vendor_github.com_elastic_elastic-agent-autodiscover_docker_client.go deleted file mode 100644 index 4c27b7b7445b..000000000000 --- a/sysutils/beats9/files/patch-vendor_github.com_elastic_elastic-agent-autodiscover_docker_client.go +++ /dev/null @@ -1,13 +0,0 @@ ---- vendor/github.com/elastic/elastic-agent-autodiscover/docker/client.go.orig 2022-11-25 21:51:45 UTC -+++ vendor/github.com/elastic/elastic-agent-autodiscover/docker/client.go -@@ -15,8 +15,8 @@ - // specific language governing permissions and limitations - // under the License. - --//go:build linux || darwin || windows --// +build linux darwin windows -+//go:build linux || darwin || windows || freebsd -+// +build linux darwin windows freebsd - - package docker - diff --git a/sysutils/beats9/files/patch-vendor_github.com_elastic_elastic-agent-autodiscover_docker_watcher.go b/sysutils/beats9/files/patch-vendor_github.com_elastic_elastic-agent-autodiscover_docker_watcher.go deleted file mode 100644 index b3eb5109493f..000000000000 --- a/sysutils/beats9/files/patch-vendor_github.com_elastic_elastic-agent-autodiscover_docker_watcher.go +++ /dev/null @@ -1,13 +0,0 @@ ---- vendor/github.com/elastic/elastic-agent-autodiscover/docker/watcher.go.orig 2022-11-25 21:51:52 UTC -+++ vendor/github.com/elastic/elastic-agent-autodiscover/docker/watcher.go -@@ -15,8 +15,8 @@ - // specific language governing permissions and limitations - // under the License. - --//go:build linux || darwin || windows --// +build linux darwin windows -+//go:build linux || darwin || windows || freebsd -+// +build linux darwin windows freebsd - - package docker - diff --git a/sysutils/beats9/files/patch-vendor_github.com_elastic_elastic-agent-system-metrics_metric_cpu_metrics__freebsd.go b/sysutils/beats9/files/patch-vendor_github.com_elastic_elastic-agent-system-metrics_metric_cpu_metrics__freebsd.go deleted file mode 100644 index d9305bc9d551..000000000000 --- a/sysutils/beats9/files/patch-vendor_github.com_elastic_elastic-agent-system-metrics_metric_cpu_metrics__freebsd.go +++ /dev/null @@ -1,10 +0,0 @@ ---- vendor/github.com/elastic/elastic-agent-system-metrics/metric/cpu/metrics_freebsd.go.orig 2025-09-19 18:38:09 UTC -+++ vendor/github.com/elastic/elastic-agent-system-metrics/metric/cpu/metrics_freebsd.go -@@ -56,3 +56,7 @@ func parseCPULine(line string) (CPU, error) { - - return cpuData, errors.Join(errs...) - } -+ -+func scanCPUInfoFile(scanner *bufio.Scanner) ([]CPUInfo, error) { -+ return cpuinfoScanner(scanner) -+} diff --git a/sysutils/beats9/files/patch-vendor_github.com_elastic_elastic-agent-system-metrics_metric_cpu_metrics__procfs__common.go b/sysutils/beats9/files/patch-vendor_github.com_elastic_elastic-agent-system-metrics_metric_cpu_metrics__procfs__common.go deleted file mode 100644 index 287667e0d23a..000000000000 --- a/sysutils/beats9/files/patch-vendor_github.com_elastic_elastic-agent-system-metrics_metric_cpu_metrics__procfs__common.go +++ /dev/null @@ -1,20 +0,0 @@ ---- vendor/github.com/elastic/elastic-agent-system-metrics/metric/cpu/metrics_procfs_common.go.orig 2025-09-19 18:44:04 UTC -+++ vendor/github.com/elastic/elastic-agent-system-metrics/metric/cpu/metrics_procfs_common.go -@@ -32,7 +32,7 @@ func Get(m *Monitor) (CPUMetrics, error) { - func Get(m *Monitor) (CPUMetrics, error) { - procfs := m.Hostfs - -- path := procfs.ResolveHostFS("/proc/stat") -+ path := procfs.ResolveHostFS("/compat/linux/proc/stat") - fd, err := os.Open(path) - defer func() { - _ = fd.Close() -@@ -46,7 +46,7 @@ func Get(m *Monitor) (CPUMetrics, error) { - return CPUMetrics{}, fmt.Errorf("scanning stat file: %w", err) - } - -- cpuInfoPath := procfs.ResolveHostFS("/proc/cpuinfo") -+ cpuInfoPath := procfs.ResolveHostFS("/compat/linux/proc/cpuinfo") - cpuInfoFd, err := os.Open(cpuInfoPath) - if err != nil { - return CPUMetrics{}, fmt.Errorf("opening '%s': %w", cpuInfoPath, err) diff --git a/sysutils/beats9/files/patch-vendor_github.com_elastic_elastic-agent-system-metrics_metric_system_filesystem_fs__unix.go b/sysutils/beats9/files/patch-vendor_github.com_elastic_elastic-agent-system-metrics_metric_system_filesystem_fs__unix.go deleted file mode 100644 index 26fa875e63eb..000000000000 --- a/sysutils/beats9/files/patch-vendor_github.com_elastic_elastic-agent-system-metrics_metric_system_filesystem_fs__unix.go +++ /dev/null @@ -1,14 +0,0 @@ ---- vendor/github.com/elastic/elastic-agent-system-metrics/metric/system/filesystem/filesystem_unix.go.orig 2022-11-25 22:00:53 UTC -+++ vendor/github.com/elastic/elastic-agent-system-metrics/metric/system/filesystem/filesystem_unix.go -@@ -37,9 +37,9 @@ func (fs *FSStat) GetUsage() error { - - fs.Total = opt.UintWith(stat.Blocks).MultUint64OrNone(uint64(stat.Bsize)) - fs.Free = opt.UintWith(stat.Bfree).MultUint64OrNone(uint64(stat.Bsize)) -- fs.Avail = opt.UintWith(stat.Bavail).MultUint64OrNone(uint64(stat.Bsize)) -+ fs.Avail = opt.UintWith(uint64(stat.Bavail)).MultUint64OrNone(uint64(stat.Bsize)) - fs.Files = opt.UintWith(stat.Files) -- fs.FreeFiles = opt.UintWith(stat.Ffree) -+ fs.FreeFiles = opt.UintWith(uint64(stat.Ffree)) - - fs.fillMetrics() - diff --git a/sysutils/beats9/files/patch-vendor_modules.txt b/sysutils/beats9/files/patch-vendor_modules.txt deleted file mode 100644 index 9f3a45039b97..000000000000 --- a/sysutils/beats9/files/patch-vendor_modules.txt +++ /dev/null @@ -1,10 +0,0 @@ ---- vendor/modules.txt.orig 2025-09-19 18:52:36 UTC -+++ vendor/modules.txt -@@ -1952,6 +1952,7 @@ github.com/elastic/go-sysinfo/providers/darwin - github.com/elastic/go-sysinfo/internal/registry - github.com/elastic/go-sysinfo/providers/aix - github.com/elastic/go-sysinfo/providers/darwin -+github.com/elastic/go-sysinfo/providers/freebsd - github.com/elastic/go-sysinfo/providers/linux - github.com/elastic/go-sysinfo/providers/shared - github.com/elastic/go-sysinfo/providers/windows diff --git a/sysutils/beats9/files/pkg-message.in b/sysutils/beats9/files/pkg-message.in deleted file mode 100644 index 8f59c61118ca..000000000000 --- a/sysutils/beats9/files/pkg-message.in +++ /dev/null @@ -1,10 +0,0 @@ -[ -{ type: install - message: <<EOM -The modules.d and monitors.d files are now installed into -%%EXAMPLESDIR%% - -See UPDATING file in ports top level directory for list of breaking changes. -EOM -} -] diff --git a/sysutils/beats9/pkg-descr b/sysutils/beats9/pkg-descr deleted file mode 100644 index d370eec713ed..000000000000 --- a/sysutils/beats9/pkg-descr +++ /dev/null @@ -1,18 +0,0 @@ -Beats is the platform for building lightweight, open source data -shippers for many types of operational data you want to enrich with -Logstash, search and analyze in Elasticsearch, and visualize in Kibana. -Whether you're interested in log files, infrastructure metrics, network -packets, or any other type of data, Beats serves as the foundation for -keeping a beat on your data. - -Filebeat is a lightweight, open source shipper for log file data. As the -next-generation Logstash Forwarder, Filebeat tails logs and quickly -sends this information to Logstash for further parsing and enrichment or -to Elasticsearch for centralized storage and analysis. - -Metricbeat Collect metrics from your systems and services. From CPU to memory, -Redis to Nginx, and much more, Metricbeat is a lightweight way to send system -and service statistics. - -Packetbeat is a lightweight network packet analyzer that sends data to Logstash -or Elasticsearch. diff --git a/sysutils/beats9/pkg-plist b/sysutils/beats9/pkg-plist deleted file mode 100644 index 5710ac7d1364..000000000000 --- a/sysutils/beats9/pkg-plist +++ /dev/null @@ -1,21 +0,0 @@ -%%AUDITBEAT%%sbin/auditbeat -%%AUDITBEAT%%%%ETCDIR%%/auditbeat.yml.reference -%%AUDITBEAT%%@sample %%ETCDIR%%/auditbeat.yml.sample -%%AUDITBEAT%%@dir /var/db/beats/auditbeat -%%FILEBEAT%%sbin/filebeat -%%FILEBEAT%%%%ETCDIR%%/filebeat.yml.reference -%%FILEBEAT%%@sample %%ETCDIR%%/filebeat.yml.sample -%%FILEBEAT%%@dir /var/db/beats/filebeat -%%HEARTBEAT%%sbin/heartbeat -%%HEARTBEAT%%%%ETCDIR%%/heartbeat.yml.reference -%%HEARTBEAT%%@sample %%ETCDIR%%/heartbeat.yml.sample -%%HEARTBEAT%%@dir /var/db/beats/heartbeat -%%METRICBEAT%%%%ETCDIR%%/metricbeat.yml.reference -%%METRICBEAT%%@sample %%ETCDIR%%/metricbeat.yml.sample -%%METRICBEAT%%sbin/metricbeat -%%METRICBEAT%%@dir /var/db/beats/metricbeat -%%PACKETBEAT%%sbin/packetbeat -%%PACKETBEAT%%%%ETCDIR%%/packetbeat.yml.reference -%%PACKETBEAT%%@sample %%ETCDIR%%/packetbeat.yml.sample -%%PACKETBEAT%%@dir /var/db/beats/packetbeat -@dir /var/db/beats |
