diff options
| author | Jose Alonso Cardenas Marquez <acm@FreeBSD.org> | 2026-01-16 08:55:42 +0000 |
|---|---|---|
| committer | Jose Alonso Cardenas Marquez <acm@FreeBSD.org> | 2026-01-16 09:08:58 +0000 |
| commit | b1f52980fe0a34ccaa674408c92869aec9aac4fe (patch) | |
| tree | 7e0168924a8c0c105de4203fe02930b7ca2477c8 | |
| parent | 7295cbe29404016181d32719e77aa45ac9a52c42 (diff) | |
security/wazuh-*: Update to 4.14.2
- Now, Wazuh source code is obtained from https://github.com/alonsobsd/wazuh-freebsd.
This repository includes all changes to run Wazuh Suite on FreeBSD. dtxdf and I
will maintain this repository in where will try to add all Wazuh features to
FreeBSD.
- wazuh-dashboards : Update version of opensearch to 2.19.4
ChangeLog at: https://documentation.wazuh.com/current/release-notes/release-4-14-2.html
Reviewed by: acm dtxdf
Tested by: acm dtxdf
103 files changed, 980 insertions, 5627 deletions
diff --git a/security/wazuh-agent/Makefile b/security/wazuh-agent/Makefile index c5f31572243c..be8c1013bcb5 100644 --- a/security/wazuh-agent/Makefile +++ b/security/wazuh-agent/Makefile @@ -1,9 +1,8 @@ PORTNAME= wazuh -DISTVERSION= 4.14.1 +DISTVERSION= 4.14.2 DISTVERSIONPREFIX= v -PORTREVISION= 6 CATEGORIES= security -MASTER_SITES= https://packages.wazuh.com/deps/47/libraries/sources/:wazuh_sources +MASTER_SITES= https://packages.wazuh.com/deps/48/libraries/sources/:wazuh_sources PKGNAMESUFFIX= -agent DISTFILES= ${EXTERNAL_DISTFILES} DIST_SUBDIR= ${PORTNAME}-${DISTVERSION} @@ -16,20 +15,20 @@ WWW= https://github.com/wazuh/wazuh LICENSE= GPLv2 LICENSE_FILE= ${WRKSRC}/LICENSE -LIB_DEPENDS= libnghttp2.so:www/libnghttp2 +LIB_DEPENDS= libnghttp2.so:www/libnghttp2 \ + libepoll-shim.so:devel/libepoll-shim USES= cmake:indirect cpe gmake perl5 readline shebangfix sqlite:3 uidfix USE_GITHUB= yes -GH_TUPLE= alonsobsd:wazuh-freebsd:${WAZUH_EXTRAFILE_TAGNAME}:wazuh +GH_ACCOUNT= alonsobsd +GH_PROJECT= wazuh-freebsd +GH_TAGNAME= e3b7f4ccbb4cf0004ca58b1e56e4fe2d1b7474a7 USE_RC_SUBR= ${PORTNAME}${PKGNAMESUFFIX} MAKE_ARGS+= TARGET=agent -WAZUH_EXTRAFILE= alonsobsd-${PORTNAME}-freebsd-${WAZUH_EXTRAFILE_TAGNAME}_GH0${EXTRACT_SUFX} -WAZUH_EXTRAFILE_TAGNAME=830a911 - EXTERNAL_DISTFILES= cJSON.tar.gz:wazuh_sources \ curl.tar.gz:wazuh_sources \ libdb.tar.gz:wazuh_sources \ @@ -119,11 +118,6 @@ post-extract: .for FILE in ${EXTERNAL_DISTFILES} @cd ${WRKSRC}/src/external && ${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} ${_DISTDIR}/${FILE:S/:wazuh_sources//} ${EXTRACT_AFTER_ARGS} .endfor - @${MKDIR} ${WRKSRC}/ruleset/sca/freebsd - @${MKDIR} ${WRKSRC}/src/data_provider/src/extended_sources/wrappers/unix/freebsd - @cd ${WRKDIR} && ${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} ${_DISTDIR}/${WAZUH_EXTRAFILE} ${EXTRACT_AFTER_ARGS} - @${MV} ${WRKDIR}/${PORTNAME}-freebsd-${WAZUH_EXTRAFILE_TAGNAME} ${WRKDIR}/wazuh-freebsd - @cd ${WRKDIR}/wazuh-freebsd/var/ossec/ruleset/sca && ${CP} *.yml ${WRKSRC}/ruleset/sca/freebsd/ post-patch: ${REINPLACE_CMD} -e 's|CC=|CC?=|g' -e 's|AR=|AR?=|g' ${WRKSRC}/src/external/bzip2/Makefile diff --git a/security/wazuh-agent/distinfo b/security/wazuh-agent/distinfo index 8033f494b83b..ec269151e66a 100644 --- a/security/wazuh-agent/distinfo +++ b/security/wazuh-agent/distinfo @@ -1,41 +1,39 @@ -TIMESTAMP = 1768122381 -SHA256 (wazuh-4.14.1/cJSON.tar.gz) = da809f70b7d03ac529ae6223d4390bfa26cd29f8c32c8e8b3b631efa1667892d -SIZE (wazuh-4.14.1/cJSON.tar.gz) = 27920 -SHA256 (wazuh-4.14.1/curl.tar.gz) = 30cf7142e4282718ceb237e17b5cbf75afcd7c9f3880a039c5efea62db094709 -SIZE (wazuh-4.14.1/curl.tar.gz) = 4537356 -SHA256 (wazuh-4.14.1/libdb.tar.gz) = 7e9c44e8c7fdb186ff521a8d085b1bfa634d342dcc777ecea1fbf9a98ab5dc5e -SIZE (wazuh-4.14.1/libdb.tar.gz) = 3874990 -SHA256 (wazuh-4.14.1/libffi.tar.gz) = 0e971f64bacc22094e89f034bba075b40ecc2c2c2900eecd7ae85815fd6c9f69 -SIZE (wazuh-4.14.1/libffi.tar.gz) = 964576 -SHA256 (wazuh-4.14.1/libyaml.tar.gz) = 35daad608b372d5ce099f738c0f21bfcc03d6920d92f448386c584e664f1376a -SIZE (wazuh-4.14.1/libyaml.tar.gz) = 424656 -SHA256 (wazuh-4.14.1/openssl.tar.gz) = 0386fe3a0bf48bae2ca4d1742a53df9a8fcb1b73583ba22e8f8a7ddfa1375cd9 -SIZE (wazuh-4.14.1/openssl.tar.gz) = 53793192 -SHA256 (wazuh-4.14.1/procps.tar.gz) = 221f395e29d1bdbe4bacc9db39602eee0bae685a935437be0d7feb42e3192d07 -SIZE (wazuh-4.14.1/procps.tar.gz) = 55897 -SHA256 (wazuh-4.14.1/sqlite.tar.gz) = a81bff30bb4affd1b06a4983ff88ef827b4abaea3191b39aff7edb28d1ddd003 -SIZE (wazuh-4.14.1/sqlite.tar.gz) = 2564870 -SHA256 (wazuh-4.14.1/zlib.tar.gz) = b59d38149f0c29ec54d2766611ebc5a51a032bf9717e39a9af00fb6cb8532b8b -SIZE (wazuh-4.14.1/zlib.tar.gz) = 1593304 -SHA256 (wazuh-4.14.1/audit-userspace.tar.gz) = e82a32e5edf93b055160e14bc97f41dead39287925851dc80a7638e2d4d30434 -SIZE (wazuh-4.14.1/audit-userspace.tar.gz) = 1682820 -SHA256 (wazuh-4.14.1/msgpack.tar.gz) = 06d63bcf32896cd0af5480c401134b1ad1c166fd84ebe5b486e792101ee854e2 -SIZE (wazuh-4.14.1/msgpack.tar.gz) = 591294 -SHA256 (wazuh-4.14.1/bzip2.tar.gz) = 27688ee0316a64b39e511b2c224070cad97c394a5f711f9d055fc1809d895bcd -SIZE (wazuh-4.14.1/bzip2.tar.gz) = 71277 -SHA256 (wazuh-4.14.1/nlohmann.tar.gz) = 6e304c0942ac65f76f012a0ec64dde90e00273b6cc5a498b37cfdd16155e08b0 -SIZE (wazuh-4.14.1/nlohmann.tar.gz) = 141576 -SHA256 (wazuh-4.14.1/googletest.tar.gz) = 8c1e8a0a7f221c2125e99e6acb709da2ba472476b4d057c58de504bebf38d417 -SIZE (wazuh-4.14.1/googletest.tar.gz) = 885874 -SHA256 (wazuh-4.14.1/libpcre2.tar.gz) = 5a80d654d7d14b3db9fa3a49d7bf44a498683b46784a88cec514a8b194767b92 -SIZE (wazuh-4.14.1/libpcre2.tar.gz) = 1329651 -SHA256 (wazuh-4.14.1/libplist.tar.gz) = 88278d4bdfc1bd6a3a1a55a4f3d933683d2732ba09cf7a749fe8ec8eec406e3c -SIZE (wazuh-4.14.1/libplist.tar.gz) = 1520623 -SHA256 (wazuh-4.14.1/libarchive.tar.gz) = 540ff4a55defa75778a2c40567a830648ce5367b8aea123366874d96b734ef80 -SIZE (wazuh-4.14.1/libarchive.tar.gz) = 2360242 -SHA256 (wazuh-4.14.1/popt.tar.gz) = d6880a06622ca32dc4aa39ad5dcf7bef2faa81bd931afbe64ba434ad8fee1daa -SIZE (wazuh-4.14.1/popt.tar.gz) = 891309 -SHA256 (wazuh-4.14.1/wazuh-wazuh-v4.14.1_GH0.tar.gz) = aa59cb2baa7e7d38d8bb4ff6a22afbf2945de4fb555f9b8bb2657b6f89a773ed -SIZE (wazuh-4.14.1/wazuh-wazuh-v4.14.1_GH0.tar.gz) = 19810038 -SHA256 (wazuh-4.14.1/alonsobsd-wazuh-freebsd-830a911_GH0.tar.gz) = 4babef38a076f8be886d7190e18f6432f72671753ec96aaedc7e8d25b5c90259 -SIZE (wazuh-4.14.1/alonsobsd-wazuh-freebsd-830a911_GH0.tar.gz) = 221974 +TIMESTAMP = 1768553284 +SHA256 (wazuh-4.14.2/cJSON.tar.gz) = da809f70b7d03ac529ae6223d4390bfa26cd29f8c32c8e8b3b631efa1667892d +SIZE (wazuh-4.14.2/cJSON.tar.gz) = 27920 +SHA256 (wazuh-4.14.2/curl.tar.gz) = 30cf7142e4282718ceb237e17b5cbf75afcd7c9f3880a039c5efea62db094709 +SIZE (wazuh-4.14.2/curl.tar.gz) = 4537356 +SHA256 (wazuh-4.14.2/libdb.tar.gz) = 7e9c44e8c7fdb186ff521a8d085b1bfa634d342dcc777ecea1fbf9a98ab5dc5e +SIZE (wazuh-4.14.2/libdb.tar.gz) = 3874990 +SHA256 (wazuh-4.14.2/libffi.tar.gz) = 0e971f64bacc22094e89f034bba075b40ecc2c2c2900eecd7ae85815fd6c9f69 +SIZE (wazuh-4.14.2/libffi.tar.gz) = 964576 +SHA256 (wazuh-4.14.2/libyaml.tar.gz) = 35daad608b372d5ce099f738c0f21bfcc03d6920d92f448386c584e664f1376a +SIZE (wazuh-4.14.2/libyaml.tar.gz) = 424656 +SHA256 (wazuh-4.14.2/openssl.tar.gz) = 0386fe3a0bf48bae2ca4d1742a53df9a8fcb1b73583ba22e8f8a7ddfa1375cd9 +SIZE (wazuh-4.14.2/openssl.tar.gz) = 53793192 +SHA256 (wazuh-4.14.2/procps.tar.gz) = 221f395e29d1bdbe4bacc9db39602eee0bae685a935437be0d7feb42e3192d07 +SIZE (wazuh-4.14.2/procps.tar.gz) = 55897 +SHA256 (wazuh-4.14.2/sqlite.tar.gz) = a81bff30bb4affd1b06a4983ff88ef827b4abaea3191b39aff7edb28d1ddd003 +SIZE (wazuh-4.14.2/sqlite.tar.gz) = 2564870 +SHA256 (wazuh-4.14.2/zlib.tar.gz) = b59d38149f0c29ec54d2766611ebc5a51a032bf9717e39a9af00fb6cb8532b8b +SIZE (wazuh-4.14.2/zlib.tar.gz) = 1593304 +SHA256 (wazuh-4.14.2/audit-userspace.tar.gz) = e82a32e5edf93b055160e14bc97f41dead39287925851dc80a7638e2d4d30434 +SIZE (wazuh-4.14.2/audit-userspace.tar.gz) = 1682820 +SHA256 (wazuh-4.14.2/msgpack.tar.gz) = 06d63bcf32896cd0af5480c401134b1ad1c166fd84ebe5b486e792101ee854e2 +SIZE (wazuh-4.14.2/msgpack.tar.gz) = 591294 +SHA256 (wazuh-4.14.2/bzip2.tar.gz) = 27688ee0316a64b39e511b2c224070cad97c394a5f711f9d055fc1809d895bcd +SIZE (wazuh-4.14.2/bzip2.tar.gz) = 71277 +SHA256 (wazuh-4.14.2/nlohmann.tar.gz) = 6e304c0942ac65f76f012a0ec64dde90e00273b6cc5a498b37cfdd16155e08b0 +SIZE (wazuh-4.14.2/nlohmann.tar.gz) = 141576 +SHA256 (wazuh-4.14.2/googletest.tar.gz) = 8c1e8a0a7f221c2125e99e6acb709da2ba472476b4d057c58de504bebf38d417 +SIZE (wazuh-4.14.2/googletest.tar.gz) = 885874 +SHA256 (wazuh-4.14.2/libpcre2.tar.gz) = 5a80d654d7d14b3db9fa3a49d7bf44a498683b46784a88cec514a8b194767b92 +SIZE (wazuh-4.14.2/libpcre2.tar.gz) = 1329651 +SHA256 (wazuh-4.14.2/libplist.tar.gz) = 88278d4bdfc1bd6a3a1a55a4f3d933683d2732ba09cf7a749fe8ec8eec406e3c +SIZE (wazuh-4.14.2/libplist.tar.gz) = 1520623 +SHA256 (wazuh-4.14.2/libarchive.tar.gz) = 540ff4a55defa75778a2c40567a830648ce5367b8aea123366874d96b734ef80 +SIZE (wazuh-4.14.2/libarchive.tar.gz) = 2360242 +SHA256 (wazuh-4.14.2/popt.tar.gz) = d6880a06622ca32dc4aa39ad5dcf7bef2faa81bd931afbe64ba434ad8fee1daa +SIZE (wazuh-4.14.2/popt.tar.gz) = 891309 +SHA256 (wazuh-4.14.2/alonsobsd-wazuh-freebsd-v4.14.2-e3b7f4ccbb4cf0004ca58b1e56e4fe2d1b7474a7_GH0.tar.gz) = cbc5b4754abbf1ff160dbef92040169bd7c693af7e85f7fedcbe80aa7cb95574 +SIZE (wazuh-4.14.2/alonsobsd-wazuh-freebsd-v4.14.2-e3b7f4ccbb4cf0004ca58b1e56e4fe2d1b7474a7_GH0.tar.gz) = 20066719 diff --git a/security/wazuh-agent/files/patch-api_Makefile b/security/wazuh-agent/files/patch-api_Makefile deleted file mode 100644 index b1f811cab6e5..000000000000 --- a/security/wazuh-agent/files/patch-api_Makefile +++ /dev/null @@ -1,19 +0,0 @@ ---- api/Makefile.orig 2023-05-24 19:23:05 UTC -+++ api/Makefile -@@ -8,11 +8,11 @@ WAZUH_GROUP = wazuh - INSTALLDIR ?= /var/ossec - - RM_FILE = rm -f --INSTALL_DIR = install -o root -g ${WAZUH_GROUP} -m 0750 -d --INSTALL_RW_DIR = install -o root -g ${WAZUH_GROUP} -m 0770 -d --INSTALL_EXEC = install -o root -g ${WAZUH_GROUP} -m 0750 --INSTALL_FILE = install -o root -g ${WAZUH_GROUP} -m 0640 --INSTALL_CONFIG_FILE = install -o root -g ${WAZUH_GROUP} -m 0660 -+INSTALL_DIR = install -m 0750 -d -+INSTALL_RW_DIR = install -m 0770 -d -+INSTALL_EXEC = install -m 0750 -+INSTALL_FILE = install -m 0640 -+INSTALL_CONFIG_FILE = install -m 0660 - PYTHON_BIN = $(INSTALLDIR)/framework/python/bin/python3 - - diff --git a/security/wazuh-agent/files/patch-etc_ossec-agent.conf b/security/wazuh-agent/files/patch-etc_ossec-agent.conf deleted file mode 100644 index 584f94c64e36..000000000000 --- a/security/wazuh-agent/files/patch-etc_ossec-agent.conf +++ /dev/null @@ -1,59 +0,0 @@ ---- etc/ossec-agent.conf 2025-11-07 00:46:03.000000000 -0800 -+++ etc/ossec-agent.conf 2026-01-11 01:07:20.394414000 -0800 -@@ -8,8 +8,10 @@ - <client> - <server> - <address>IP</address> -+ <port>1514</port> -+ <protocol>tcp</protocol> - </server> -- <config-profile>debian, debian8</config-profile> -+ <config-profile>freebsd, freebsd%%FBSD_MAJOR_VERSION%%</config-profile> - <crypto_method>aes</crypto_method> - </client> - -@@ -32,7 +34,7 @@ - - <system_audit>/var/ossec/etc/shared/system_audit_rcl.txt</system_audit> - <system_audit>/var/ossec/etc/shared/system_audit_ssh.txt</system_audit> -- <system_audit>/var/ossec/etc/shared/cis_debian_linux_rcl.txt</system_audit> -+ <system_audit>/var/ossec/etc/shared/cis_freebsd%%FBSD_MAJOR_VERSION%%.yml</system_audit> - - <skip_nfs>yes</skip_nfs> - </rootcheck> -@@ -135,10 +137,25 @@ - - <localfile> - <log_format>syslog</log_format> -- <location>/var/log/syslog</location> -+ <location>/var/log/cron</location> - </localfile> - - <localfile> -+ <log_format>syslog</log_format> -+ <location>/var/log/daemon.log</location> -+ </localfile> -+ -+ <localfile> -+ <log_format>syslog</log_format> -+ <location>/var/log/debug.log</location> -+ </localfile> -+ -+ <localfile> -+ <log_format>syslog</log_format> -+ <location>/var/log/userlog</location> -+ </localfile> -+ -+ <localfile> - <log_format>command</log_format> - <command>df -P</command> - <frequency>360</frequency> -@@ -146,7 +163,7 @@ - - <localfile> - <log_format>full_command</log_format> -- <command>netstat -tan |grep LISTEN |grep -v 127.0.0.1 | sort</command> -+ <command>(netstat -n -f inet && netstat -n -f inet) | grep -e "udp" -e "tcp" | sed 's/\([[:alnum:]]*\)\ *[[:digit:]]*\ *[[:digit:]]*\ *\([[:digit:]\.]*\)\.\([[:digit:]]*\)\ *\([[:digit:]\.]*\).*/\1 \2 == \3 == \4/' | sort -k4 -g | sed 's/ == \(.*\) ==/.\1/'</command> - <frequency>360</frequency> - </localfile> - diff --git a/security/wazuh-agent/files/patch-framework_Makefile b/security/wazuh-agent/files/patch-framework_Makefile deleted file mode 100644 index 9d0c318654f7..000000000000 --- a/security/wazuh-agent/files/patch-framework_Makefile +++ /dev/null @@ -1,22 +0,0 @@ ---- framework/Makefile.orig 2023-05-24 19:23:05 UTC -+++ framework/Makefile -@@ -7,14 +7,14 @@ - WAZUH_GROUP = wazuh - INSTALLDIR ?= /var/ossec - --CC = gcc --CFLAGS = -pipe -Wall -Wextra -+CC ?= gcc -+CFLAGS ?= -pipe -Wall -Wextra - THREAD_FLAGS = -pthread - MV_FILE = mv -f - RM_FILE = rm -f --INSTALL_DIR = install -o root -g ${WAZUH_GROUP} -m 0750 -d --INSTALL_EXEC = install -o root -g ${WAZUH_GROUP} -m 0750 --INSTALL_FILE = install -o root -g ${WAZUH_GROUP} -m 0640 -+INSTALL_DIR = install -m 0750 -d -+INSTALL_EXEC = install -m 0750 -+INSTALL_FILE = install -m 0640 - - ifdef DEBUG - CFLAGS+=-g -I ../src diff --git a/security/wazuh-agent/files/patch-src-Makefile b/security/wazuh-agent/files/patch-src-Makefile deleted file mode 100644 index 27d1da76dd10..000000000000 --- a/security/wazuh-agent/files/patch-src-Makefile +++ /dev/null @@ -1,190 +0,0 @@ ---- src/Makefile 2025-09-23 06:59:40.000000000 -0700 -+++ src/Makefile 2025-10-12 08:02:29.393309000 -0700 -@@ -49,9 +49,11 @@ - - HAS_CHECKMODULE = $(shell command -v checkmodule > /dev/null && echo YES) - HAS_SEMODULE_PACKAGE = $(shell command -v semodule_package > /dev/null && echo YES) -+ifeq (${uname_S},Linux) - CHECK_ARCHLINUX := $(shell sh -c 'grep "Arch Linux" /etc/os-release > /dev/null && echo YES || echo not') - CHECK_CENTOS5 := $(shell sh -c 'grep "CentOS release 5." /etc/redhat-release 2>&1 > /dev/null && echo YES || echo not') - CHECK_ALPINE := $(shell sh -c 'grep "Alpine Linux" /etc/os-release 2>&1 > /dev/null && echo YES || echo not') -+endif - - ARCH_FLAGS = - -@@ -112,7 +114,7 @@ - USE_PRELUDE?=no - USE_ZEROMQ?=no - USE_GEOIP?=no --USE_INOTIFY=no -+USE_INOTIFY?=no - USE_BIG_ENDIAN=no - USE_AUDIT=no - MINGW_HOST=unknown -@@ -177,6 +179,8 @@ - DEFINES+=-DUSER=\"${WAZUH_USER}\" - DEFINES+=-DGROUPGLOBAL=\"${WAZUH_GROUP}\" - -+OSSEC_CFLAGS+=-I./ -I./headers/ -I${EXTERNAL_OPENSSL}include -I$(EXTERNAL_JSON) -I${EXTERNAL_LIBYAML}include -I${EXTERNAL_CURL}include -I${EXTERNAL_MSGPACK}include -I${EXTERNAL_BZIP2} -I${SHARED_MODULES}common -I${DBSYNC}include -I${RSYNC}include -I${SYSCOLLECTOR}include -I${SYSINFO}include -I${EXTERNAL_LIBPCRE2}include -I${EXTERNAL_RPM}/builddir/output/include -I${SYSCHECK}include -I${ROUTER}include -I${CONTENT_MANAGER}include -I${VULNERABILITY_SCANNER}include -I${INVENTORY_HARVESTER}include -I./shared_modules/ -+ - ifneq (${TARGET},winagent) - DEFINES+=-D${uname_S} - ifeq (${uname_S},Linux) -@@ -271,13 +275,14 @@ - ifeq (${uname_S},FreeBSD) - DEFINES+=-DFreeBSD - OSSEC_CFLAGS+=-pthread -I/usr/local/include -- OSSEC_LDFLAGS+=-pthread -+ OSSEC_LDFLAGS+=-pthread -lnghttp2 - OSSEC_LDFLAGS+=-L/usr/local/lib - OSSEC_LDFLAGS+='-Wl,-rpath,$$ORIGIN/../lib' -- AR_LDFLAGS+=-pthread -+ AR_LDFLAGS+=-pthread -lnghttp2 - AR_LDFLAGS+=-L/usr/local/lib - AR_LDFLAGS+='-Wl,-rpath,$$ORIGIN/../../lib' - PRECOMPILED_OS:=freebsd -+ CC?=cc - else - ifeq (${uname_S},NetBSD) - DEFINES+=-DNetBSD -@@ -436,7 +441,6 @@ - - OSSEC_CFLAGS+=${DEFINES} - OSSEC_CFLAGS+=-pipe -Wall -Wextra -std=gnu99 --OSSEC_CFLAGS+=-I./ -I./headers/ -I${EXTERNAL_OPENSSL}include -I$(EXTERNAL_JSON) -I${EXTERNAL_LIBYAML}include -I${EXTERNAL_CURL}include -I${EXTERNAL_MSGPACK}include -I${EXTERNAL_BZIP2} -I${SHARED_MODULES}common -I${DBSYNC}include -I${RSYNC}include -I${SYSCOLLECTOR}include -I${SYSINFO}include -I${EXTERNAL_LIBPCRE2}include -I${EXTERNAL_RPM}/builddir/output/include -I${SYSCHECK}include -I${ROUTER}include -I${CONTENT_MANAGER}include -I${VULNERABILITY_SCANNER}include -I${INVENTORY_HARVESTER}include -I./shared_modules/ - - OSSEC_CFLAGS += ${CFLAGS} - OSSEC_LDFLAGS += ${LDFLAGS} -@@ -533,8 +537,8 @@ - ifneq (,$(filter ${USE_INOTIFY},YES auto yes y Y 1)) - DEFINES+=-DINOTIFY_ENABLED - ifeq (${uname_S},FreeBSD) -- OSSEC_LDFLAGS+=-L/usr/local/lib -I/usr/local/include -- OSSEC_LIBS+=-linotify -+ OSSEC_LDFLAGS+=-I/usr/local/include -L/usr/local/lib -+ OSSEC_LIBS+=-L/usr/local/lib -linotify - OSSEC_CFLAGS+=-I/usr/local/include - endif - endif -@@ -960,6 +964,8 @@ - EXTERNAL_LIBS += $(LIBCURL_LIB) - else ifeq (${uname_S},Linux) - EXTERNAL_LIBS += $(LIBCURL_LIB) -+else ifeq (${uname_S},FreeBSD) -+ EXTERNAL_LIBS += $(LIBCURL_LIB) - else ifeq (${uname_S},Darwin) - EXTERNAL_LIBS += $(LIBCURL_LIB) - endif -@@ -1032,7 +1038,7 @@ endif - - #### OpenSSL ########## - --OPENSSL_FLAGS = enable-weak-ssl-ciphers no-shared -+OPENSSL_FLAGS = enable-weak-ssl-ciphers no-shared $(OSSL_TARGET) - - ifeq (${uname_M}, i386) - ifeq ($(findstring BSD,${uname_S}), BSD) -@@ -1196,9 +1202,13 @@ else - cd $(EXTERNAL_CURL) && CPPFLAGS="-fPIC -I${ROUTE_PATH}/${EXTERNAL_OPENSSL}include" LDFLAGS="-L${ROUTE_PATH}/${EXTERNAL_OPENSSL}" LIBS="-ldl -lpthread" ./configure --with-openssl="${ROUTE_PATH}/${EXTERNAL_OPENSSL}" --disable-ldap --without-libidn2 --without-libpsl --without-brotli --without-nghttp2 --without-zstd - endif - else -+ifeq (${uname_S},FreeBSD) -+ cd $(EXTERNAL_CURL) && CPPFLAGS="-fPIC -I${ROUTE_PATH}/${EXTERNAL_OPENSSL}include" LDFLAGS="-L${ROUTE_PATH}/${EXTERNAL_OPENSSL}" LIBS="-pthread" ./configure --with-ssl="${ROUTE_PATH}/${EXTERNAL_OPENSSL}" --disable-ldap --without-libidn2 --without-brotli --without-nghttp2 --without-librtmp --without-zstd --without-libpsl -+else - cd $(EXTERNAL_CURL) && CPPFLAGS="-fPIC -I${ROUTE_PATH}/${EXTERNAL_OPENSSL}include" LDFLAGS="-L${ROUTE_PATH}/${EXTERNAL_OPENSSL}" LIBS="-lpthread" ./configure --with-openssl="${ROUTE_PATH}/${EXTERNAL_OPENSSL}" --disable-ldap --without-libidn2 --without-brotli --without-nghttp2 --without-librtmp --without-zstd --without-libpsl - endif - endif -+endif - - - #### procps ######### -@@ -2308,7 +2318,7 @@ - #### FIM ###### - - wazuh-syscheckd: librootcheck.a libwazuh.a ${WAZUHEXT_LIB} build_shared_modules -- cd syscheckd && mkdir -p build && cd build && cmake ${SYSCHECK_OS} ${CMAKE_OPTS} -DCMAKE_C_FLAGS="${DEFINES} -pipe -Wall -Wextra -std=gnu99" ${SYSCHECK_TEST} ${SYSCHECK_RELEASE_TYPE} .. && ${MAKE} -+ cd syscheckd && mkdir -p build && cd build && cmake ${CMAKE_OPTS} -DCMAKE_C_FLAGS="${DEFINES} ${OSSEC_CFLAGS} -pipe -Wall -Wextra -std=gnu99" -DCMAKE_EXE_LINKER_FLAGS="${OSSEC_LDFLAGS} ${OSSEC_LIBS}" ${SYSCHECK_TEST} ${SYSCHECK_RELEASE_TYPE} .. && ${MAKE} - - #### Monitor ####### - -@@ -2340,13 +2350,13 @@ - os_auth_o := $(os_auth_c:.c=.o) - - os_auth/%.o: os_auth/%.c -- ${OSSEC_CC} ${OSSEC_CFLAGS} -I./os_auth -DARGV0=\"wazuh-authd\" -c $^ -o $@ -+ ${OSSEC_CC} -I${LOCALBASE}/include/libepoll-shim ${OSSEC_CFLAGS} -I./os_auth -DARGV0=\"wazuh-authd\" -c $^ -o $@ - - agent-auth: addagent/validate.o os_auth/main-client.o os_auth/ssl.o os_auth/check_cert.o - ${OSSEC_CCBIN} ${OSSEC_LDFLAGS} $^ ${OSSEC_LIBS} -o $@ - - wazuh-authd: addagent/validate.o os_auth/main-server.o os_auth/local-server.o os_auth/ssl.o os_auth/check_cert.o os_auth/config.o os_auth/authcom.o os_auth/auth.o os_auth/key_request.o os_auth/generate_cert.o -- ${OSSEC_CCBIN} ${OSSEC_LDFLAGS} $^ ${OSSEC_LIBS} -o $@ -+ ${OSSEC_CCBIN} ${OSSEC_LDFLAGS} $^ ${OSSEC_LIBS} -lepoll-shim -o $@ - - #### integratord ##### - -@@ -2486,7 +2496,7 @@ - WPYTHON_DIR := ${INSTALLDIR}/framework/python - OPTIMIZE_CPYTHON?=no - WPYTHON_TAR=cpython.tar.gz --WLIBPYTHON=libpython3.10.so.1.0 -+WLIBPYTHON=libpython3.11.so.1.0 - - ifneq (,$(filter ${OPTIMIZE_CPYTHON},YES yes y Y 1)) - CPYTHON_FLAGS=--enable-optimizations -@@ -2500,22 +2510,45 @@ - endif - - ifeq (,$(wildcard ${EXTERNAL_CPYTHON}/python)) -- export WPATH_LIB="'\$$\$$ORIGIN/../../../lib'" && export SOURCE_PATH=${ROUTE_PATH} && export WAZUH_FFI_PATH=${EXTERNAL_LIBFFI} && export LD_LIBRARY_PATH=${ROUTE_PATH} && cd ${EXTERNAL_CPYTHON} && ./configure --prefix="${WPYTHON_DIR}" --libdir="${WPYTHON_DIR}/lib" --enable-shared --with-openssl="${ROUTE_PATH}/${EXTERNAL_OPENSSL}" LDFLAGS="${ARCH_FLAGS} -L${ROUTE_PATH} -lwazuhext -Wl,-rpath,'\$$\$$ORIGIN/../../../lib',--disable-new-dtags" CPPFLAGS="-I${ROUTE_PATH}/${EXTERNAL_OPENSSL}" $(CPYTHON_FLAGS) && ${MAKE} -+ export WPATH_LIB="'\$$\$$ORIGIN/../../../lib'" && export SOURCE_PATH=${ROUTE_PATH} && export WAZUH_FFI_PATH=${EXTERNAL_LIBFFI} && export LD_LIBRARY_PATH=${ROUTE_PATH} && cd ${EXTERNAL_CPYTHON} && ./configure --prefix="${WPYTHON_DIR}" --libdir="${WPYTHON_DIR}/lib" --enable-shared --with-openssl="${ROUTE_PATH}/${EXTERNAL_OPENSSL}" LIBSQLITE3_CFLAGS="-I${LOCALBASE}/include" LIBSQLITE3_LIBS="-L${LOCALBASE}/lib -lsqlite3" LDFLAGS="${ARCH_FLAGS} -L${ROUTE_PATH} -lwazuhext -Wl,-rpath,'\$$\$$ORIGIN/../../../lib',--disable-new-dtags" CPPFLAGS="-I${ROUTE_PATH}/${EXTERNAL_OPENSSL}" $(CPYTHON_FLAGS) && ${MAKE} - endif - - build_python: $(WAZUHEXT_LIB) - - install_python: - ifneq (,$(wildcard ${EXTERNAL_CPYTHON})) -- cd ${EXTERNAL_CPYTHON} && export WPATH_LIB=${INSTALLDIR}/lib && export SOURCE_PATH=${ROUTE_PATH} && export WAZUH_FFI_PATH=${EXTERNAL_LIBFFI} && ${MAKE} install -+ cd ${EXTERNAL_CPYTHON} && export WPATH_LIB=${INSTALLDIR}/lib && export SOURCE_PATH=${ROUTE_PATH} && export WAZUH_FFI_PATH=${EXTERNAL_LIBFFI} && export LD_LIBRARY_PATH=${ROUTE_PATH} && ${MAKE} install - else - mkdir -p ${WPYTHON_DIR} - cp external/${WPYTHON_TAR} ${WPYTHON_DIR}/${WPYTHON_TAR} && ${TAR} ${WPYTHON_DIR}/${WPYTHON_TAR} -C ${WPYTHON_DIR} && rm -rf ${WPYTHON_DIR}/${WPYTHON_TAR} - endif -+ifeq (${uname_S},FreeBSD) -+ mkdir -p $(STAGEDIR)${INSTALLDIR}/lib -+ find $(STAGEDIR)${WPYTHON_DIR} -name "*${WLIBPYTHON}" -exec ln -f {} $(STAGEDIR)${INSTALLDIR}/lib/${WLIBPYTHON} \; -+else - find ${WPYTHON_DIR} -name "*${WLIBPYTHON}" -exec ln -f {} ${INSTALLDIR}/lib/${WLIBPYTHON} \; -+endif - - python_dependencies := requirements.txt - -+ifeq (${uname_S},FreeBSD) -+install_dependencies: -+ifneq (,$(wildcard ${EXTERNAL_CPYTHON})) -+ $(STAGEDIR)${WPYTHON_DIR}/bin/python3 -B -m pip install --upgrade pip --prefix=${WPYTHON_DIR} --root=$(STAGEDIR) --no-index --find-links=wazuh-cache/ --cache-dir=wazuh-cache/ --no-compile -+ LD_LIBRARY_PATH="$(STAGEDIR)${INSTALLDIR}/lib" LDFLAGS="-L$(STAGEDIR)${INSTALLDIR}/lib" $(STAGEDIR)${WPYTHON_DIR}/bin/python3 -m pip install wazuh-cache-any/*.whl --root=$(STAGEDIR) --prefix=${WPYTHON_DIR} --no-deps --no-compile -+ LD_LIBRARY_PATH="$(STAGEDIR)${INSTALLDIR}/lib" LDFLAGS="-L$(STAGEDIR)${INSTALLDIR}/lib" $(STAGEDIR)${WPYTHON_DIR}/bin/python3 -m pip install wazuh-cache/*.whl --root=$(STAGEDIR) --prefix=${WPYTHON_DIR} --no-deps --no-compile -+endif -+ -+install_framework: -+ LD_LIBRARY_PATH="$(STAGEDIR)${INSTALLDIR}/lib" LDFLAGS="-L$(STAGEDIR)${INSTALLDIR}/lib" $(STAGEDIR)${WPYTHON_DIR}/bin/python3 -m pip install wazuh-python/wazuh*.whl --root=$(STAGEDIR) --prefix=${WPYTHON_DIR} --no-deps --no-compile -+ chmod -R o=- $(STAGEDIR)${WPYTHON_DIR} -+ -+install_api: -+ LD_LIBRARY_PATH="$(STAGEDIR)${INSTALLDIR}/lib" LDFLAGS="-L$(STAGEDIR)${INSTALLDIR}/lib" $(STAGEDIR)${WPYTHON_DIR}/bin/python3 -m pip install wazuh-python/api*.whl --root=$(STAGEDIR) --prefix=${WPYTHON_DIR} --no-deps --no-compile -+ -+install_mitre: -+ export CRYPTOGRAPHY_OPENSSL_NO_LEGACY=1 && cd ../tools/mitre && $(STAGEDIR)${WPYTHON_DIR}/bin/python3 mitredb.py -d $(STAGEDIR)${INSTALLDIR}/var/db/mitre.db -+else - install_dependencies: install_python - ifneq (,$(wildcard ${EXTERNAL_CPYTHON})) - ${WPYTHON_DIR}/bin/python3 -m pip install --upgrade pip --index-url=file://${ROUTE_PATH}/${EXTERNAL_CPYTHON}/Dependencies/simple -@@ -2532,6 +2565,7 @@ - - install_mitre: install_python - cd ../tools/mitre && ${WPYTHON_DIR}/bin/python3 mitredb.py -d ${INSTALLDIR}/var/db/mitre.db -+endif - - #################### - #### test ########## diff --git a/security/wazuh-agent/files/patch-src-shared_modules-utils_sqliteWrapperTemp.h b/security/wazuh-agent/files/patch-src-shared_modules-utils_sqliteWrapperTemp.h deleted file mode 100644 index a6eeb2973d97..000000000000 --- a/security/wazuh-agent/files/patch-src-shared_modules-utils_sqliteWrapperTemp.h +++ /dev/null @@ -1,34 +0,0 @@ ---- src/shared_modules/utils/sqliteWrapperTemp.h 2025-11-07 00:46:03.000000000 -0800 -+++ src/shared_modules/utils/sqliteWrapperTemp.h 2026-01-01 13:52:11.656050000 -0800 -@@ -235,8 +235,8 @@ - public: - ~Connection() = default; - -- explicit Connection(const std::string& path) -- : m_db{ openSQLiteDb(path), [](sqlite3 * p) -+ explicit Connection(const std::string& path, const int flags = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE) -+ : m_db{ openSQLiteDb(path, flags), [](sqlite3 * p) - { - sqlite3_close_v2(p); - } } -@@ -245,7 +245,10 @@ - - if (path.compare(DB_MEMORY) != 0) - { -- const auto result { chmod(path.c_str(), DB_PERMISSIONS) }; -+ const auto result = -+ (flags == SQLITE_OPEN_READONLY) -+ ? 0 -+ : chmod(path.c_str(), DB_PERMISSIONS); - - if (result != 0) - { -@@ -255,7 +258,7 @@ - }; - } - -- m_db.reset(openSQLiteDb(path, SQLITE_OPEN_READWRITE), [](sqlite3 * p) -+ m_db.reset(openSQLiteDb(path, flags), [](sqlite3 * p) - { - sqlite3_close_v2(p); - }); diff --git a/security/wazuh-agent/files/patch-src-shared_modules-utils_stringHelper.h b/security/wazuh-agent/files/patch-src-shared_modules-utils_stringHelper.h deleted file mode 100644 index e60c6542e5a4..000000000000 --- a/security/wazuh-agent/files/patch-src-shared_modules-utils_stringHelper.h +++ /dev/null @@ -1,44 +0,0 @@ ---- src/shared_modules/utils/stringHelper.h 2025-09-23 06:59:40.000000000 -0700 -+++ src/shared_modules/utils/stringHelper.h 2025-10-16 14:04:29.575997000 -0700 -@@ -19,6 +19,7 @@ - #include <sstream> - #include <string> - #include <vector> -+#include <map> - #if __cplusplus >= 201703L - #include <string_view> - #endif -@@ -150,6 +151,15 @@ - return haystack; - } - -+ static std::string join(const std::vector<std::string>& vec, const std::string& delimiter) { -+ std::ostringstream joinResult; -+ for (size_t i = 0; i < vec.size(); ++i) { -+ joinResult << vec[i]; -+ if (i != vec.size() - 1) joinResult << delimiter; -+ } -+ return joinResult.str(); -+ } -+ - static std::vector<std::string> split(const std::string& str, const char delimiter) - { - std::vector<std::string> tokens; -@@ -257,6 +267,17 @@ - - // LCOV_EXCL_STOP - return ret; -+ } -+ -+ static std::string trimToOneSpace(const std::string& str) -+ { -+ std::string str_output; -+ -+ str_output.clear(); -+ std::unique_copy (str.begin(), str.end(), std::back_insert_iterator<std::string>(str_output), -+ [](char a,char b){ return std::isspace(a) && std::isspace(b);}); -+ -+ return str_output; - } - - static std::string toUpperCase(const std::string& str) diff --git a/security/wazuh-agent/files/patch-src-shared_modules-utils_timeHelper.h b/security/wazuh-agent/files/patch-src-shared_modules-utils_timeHelper.h deleted file mode 100644 index 6cd990bde29e..000000000000 --- a/security/wazuh-agent/files/patch-src-shared_modules-utils_timeHelper.h +++ /dev/null @@ -1,20 +0,0 @@ ---- src/shared_modules/utils/timeHelper.h.orig 2024-10-17 00:22:27.000000000 -0700 -+++ src/shared_modules/utils/timeHelper.h 2024-10-20 00:02:09.915969000 -0700 -@@ -196,6 +196,17 @@ - return output.str(); - } - -+ static std::string timeToSeconds(std::string& str) { -+ int seconds; -+ std::tm t; -+ std::istringstream ss(str); -+ ss >> std::get_time(&t, "%H:%M.%S"); -+ -+ seconds = t.tm_hour * 3600 + t.tm_min * 60 + t.tm_sec; -+ -+ return std::to_string(seconds); -+ } -+ - /** - * @brief Get seconds from epoch, since 1970-01-01 00:00:00 UTC. - * @return seconds from epoch. diff --git a/security/wazuh-agent/files/patch-src-wazuh_modules_wm_database.c b/security/wazuh-agent/files/patch-src-wazuh_modules_wm_database.c deleted file mode 100644 index c453bfae2a78..000000000000 --- a/security/wazuh-agent/files/patch-src-wazuh_modules_wm_database.c +++ /dev/null @@ -1,14 +0,0 @@ ---- src/wazuh_modules/wm_database.c 2024-01-05 08:38:26.000000000 -0500 -+++ src/wazuh_modules/wm_database.c 2024-01-11 15:18:58.255136000 -0500 -@@ -16,6 +16,11 @@ - #include "addagent/manage_agents.h" // FILE_SIZE - #include "external/cJSON/cJSON.h" - -+#if defined(__FreeBSD__) -+#include <sys/param.h> -+#define HOST_NAME_MAX MAXHOSTNAMELEN -+#endif -+ - #ifndef CLIENT - - #ifdef INOTIFY_ENABLED diff --git a/security/wazuh-agent/files/patch-src_data__provider-CMakeLists.txt b/security/wazuh-agent/files/patch-src_data__provider-CMakeLists.txt deleted file mode 100644 index 03dd0efcd223..000000000000 --- a/security/wazuh-agent/files/patch-src_data__provider-CMakeLists.txt +++ /dev/null @@ -1,39 +0,0 @@ ---- src/data_provider/CMakeLists.txt 2025-11-07 08:46:03.000000000 +0000 -+++ src/data_provider/CMakeLists.txt 2026-01-13 15:21:46.999172000 +0000 -@@ -104,7 +104,6 @@ - include_directories(${CMAKE_SOURCE_DIR}/src/extended_sources/wrappers/unix/darwin) - endif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") - -- - if(CMAKE_SYSTEM_NAME STREQUAL "HP-UX") - link_directories(${INSTALL_PREFIX}/lib) - endif(CMAKE_SYSTEM_NAME STREQUAL "HP-UX") -@@ -119,6 +118,11 @@ - include_directories(${CMAKE_SOURCE_DIR}/src/extended_sources/wrappers/unix/darwin) - endif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") - -+if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") -+ include_directories(${CMAKE_SOURCE_DIR}/src/extended_sources/wrappers/unix/) -+ include_directories(${CMAKE_SOURCE_DIR}/src/extended_sources/wrappers/unix/freebsd) -+endif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") -+ - link_directories(${SRC_FOLDER}) - link_directories(${SRC_FOLDER}/external/sqlite/) - link_directories(${SRC_FOLDER}/external/cJSON/) -@@ -210,6 +214,7 @@ - - if(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR - CMAKE_SYSTEM_NAME STREQUAL "Darwin" OR -+ CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR - CMAKE_SYSTEM_NAME STREQUAL "Windows") - add_subdirectory(src/extended_sources) - endif() -@@ -250,7 +255,7 @@ - target_link_libraries(sysinfo cjson ${SRC_FOLDER}/external/libplist/bin/lib/libplist-2.0.a ${iokit_lib} ${corefoundation_lib} groups users services browser_extensions) - endif(CMAKE_SYSTEM_NAME STREQUAL "Windows") - --target_link_libraries(sysinfo wazuhext) -+target_link_libraries(sysinfo nghttp2 wazuhext users groups) - - if(CMAKE_SYSTEM_NAME STREQUAL "Linux") - set(CURL_DEP "wazuhext") diff --git a/security/wazuh-agent/files/patch-src_data__provider_src-sysInfoFreeBSD.cpp b/security/wazuh-agent/files/patch-src_data__provider_src-sysInfoFreeBSD.cpp deleted file mode 100644 index 8ef1dd376f3e..000000000000 --- a/security/wazuh-agent/files/patch-src_data__provider_src-sysInfoFreeBSD.cpp +++ /dev/null @@ -1,634 +0,0 @@ ---- src/data_provider/src/sysInfoFreeBSD.cpp 2025-11-07 08:46:03.000000000 +0000 -+++ src/data_provider/src/sysInfoFreeBSD.cpp 2026-01-14 16:59:37.014537000 +0000 -@@ -11,20 +11,33 @@ - #include "sysInfo.hpp" - #include "cmdHelper.h" - #include "stringHelper.h" -+#include "timeHelper.h" - #include "osinfo/sysOsParsers.h" -+#include "sqliteWrapperTemp.h" -+#include "filesystemHelper.h" - #include <sys/sysctl.h> - #include <sys/vmmeter.h> - #include <sys/utsname.h> - #include "sharedDefs.h" -+#include <regex> -+#include "groups_freebsd.hpp" -+#include "user_groups_freebsd.hpp" -+#include "logged_in_users_freebsd.hpp" -+#include "sudoers_unix.hpp" -+#include "users_freebsd.hpp" - -+const std::string PKG_DB_PATHNAME {"/var/db/pkg/local.sqlite"}; -+const std::string PKG_QUERY {"SELECT p.name, p.maintainer, p.version, p.arch, p.comment, p.flatsize, p.time, v.annotation AS repository,p.origin FROM packages p LEFT JOIN (SELECT pa.package_id, pa.value_id FROM pkg_annotation pa JOIN annotation t ON t.annotation_id = pa.tag_id AND t.annotation = 'repository') pr ON pr.package_id = p.id LEFT JOIN annotation v ON v.annotation_id = pr.value_id;"}; -+ - static void getMemory(nlohmann::json& info) - { -+ constexpr auto vmFree{"vm.stats.vm.v_free_count"}; -+ constexpr auto vmInactive{"vm.stats.vm.v_inactive_count"}; - constexpr auto vmPageSize{"vm.stats.vm.v_page_size"}; -- constexpr auto vmTotal{"vm.vmtotal"}; -+ constexpr auto vmTotal{"hw.physmem"}; - uint64_t ram{0}; -- const std::vector<int> mib{CTL_HW, HW_PHYSMEM}; - size_t len{sizeof(ram)}; -- auto ret{sysctl(const_cast<int*>(mib.data()), mib.size(), &ram, &len, nullptr, 0)}; -+ auto ret{sysctlbyname(vmTotal, &ram, &len, nullptr, 0)}; - - if (ret) - { -@@ -52,11 +65,23 @@ - }; - } - -- struct vmtotal vmt {}; -+ uint64_t freeMem{0}; -+ len = sizeof(freeMem); -+ ret = sysctlbyname(vmFree, &freeMem, &len, nullptr, 0); - -- len = sizeof(vmt); -+ if (ret) -+ { -+ throw std::system_error -+ { -+ ret, -+ std::system_category(), -+ "Error reading free memory size." -+ }; -+ } - -- ret = sysctlbyname(vmTotal, &vmt, &len, nullptr, 0); -+ uint64_t inactiveMem{0}; -+ len = sizeof(inactiveMem); -+ ret = sysctlbyname(vmInactive, &inactiveMem, &len, nullptr, 0); - - if (ret) - { -@@ -64,11 +89,11 @@ - { - ret, - std::system_category(), -- "Error reading total memory." -+ "Error reading inactive memory size." - }; - } - -- const auto ramFree{(vmt.t_free * pageSize) / KByte}; -+ const auto ramFree{(freeMem + inactiveMem) * pageSize / KByte}; - info["ram_free"] = ramFree; - info["ram_usage"] = 100 - (100 * ramFree / ramTotal); - } -@@ -96,7 +121,43 @@ - - static std::string getSerialNumber() - { -- return UNKNOWN_VALUE; -+ size_t len{0}; -+ auto ret{sysctlbyname("kern.hostuuid", nullptr, &len, nullptr, 0)}; -+ -+ if (ret) -+ { -+ throw std::system_error -+ { -+ ret, -+ std::system_category(), -+ "Error reading serial number (aka hostuuid)." -+ }; -+ } -+ -+ const auto spBuff{std::make_unique<char[]>(len + 1)}; -+ -+ if (!spBuff) -+ { -+ throw std::runtime_error -+ { -+ "Error allocating memory to read the serial number (aka hostuuid)." -+ }; -+ } -+ -+ ret = sysctlbyname("kern.hostuuid", spBuff.get(), &len, nullptr, 0); -+ -+ if (ret) -+ { -+ throw std::system_error -+ { -+ ret, -+ std::system_category(), -+ "Error reading serial number (aka hostuuid)." -+ }; -+ } -+ -+ spBuff.get()[len] = 0; -+ return std::string{reinterpret_cast<const char*>(spBuff.get())}; - } - - static int getCpuCores() -@@ -184,8 +245,12 @@ - - nlohmann::json SysInfo::getProcessesInfo() const - { -- // Currently not supported for this OS -- return nlohmann::json {}; -+ nlohmann::json ret; -+ getProcessesInfo([&ret](nlohmann::json & data) -+ { -+ ret.push_back(data); -+ }); -+ return ret; - } - - nlohmann::json SysInfo::getOsInfo() const -@@ -196,11 +261,12 @@ - - if (!spParser->parseUname(Utils::exec("uname -r"), ret)) - { -- ret["os_name"] = "BSD"; - ret["os_platform"] = "bsd"; - ret["os_version"] = UNKNOWN_VALUE; - } - -+ ret["os_name"] = "FreeBSD"; -+ - if (uname(&uts) >= 0) - { - ret["sysname"] = uts.sysname; -@@ -215,44 +281,260 @@ - - nlohmann::json SysInfo::getPorts() const - { -- // Currently not supported for this OS. -- return nlohmann::json {}; --} -+ nlohmann::json ports {}; -+ -+ /* USER COMMAND PID FD PROTO LOCAL_ADDRESS FOREIGN_ADDRESS PATH_STATE CONN_STATE */ -+ -+#if __FreeBSD_version > 1500045 -+ const auto query{exec(R"(sockstat -46qs --libxo json)")}; - --void SysInfo::getProcessesInfo(std::function<void(nlohmann::json&)> /*callback*/) const --{ -- // Currently not supported for this OS. -+ if (!query.empty()) -+ { -+ nlohmann::json portsjson; -+ portsjson = nlohmann::json::parse(query); -+ auto &portsResult = portsjson["sockstat"]["socket"]; -+ -+ for(auto &port : portsResult) { -+ std::string localip = ""; -+ std::string localport = ""; -+ std::string remoteip = ""; -+ std::string remoteport = ""; -+ std::string statedata = ""; -+ -+ if (port["pid"] != nullptr) { -+ -+ localip = port["local"]["address"]; -+ remoteip = port["foreign"]["address"]; -+ statedata = port["conn-state"] != nullptr ? (port["conn-state"] == "LISTEN" ? "listening" : Utils::toLowerCase(port["conn-state"])) : statedata; -+ -+ if (port["local"]["address"] == "*") { -+ if ((port["proto"] == "udp4") || (port["proto"] == "tcp4")) { -+ localip = "0.0.0.0"; -+ } else { -+ localip = "::"; -+ } -+ } -+ -+ localport = port["local"]["port"]; -+ -+ if (port["foreign"]["address"] == "*") { -+ if ((port["proto"] == "udp4") || (port["proto"] == "tcp4")) { -+ remoteip = 0.0.0.0; -+ } else { -+ remoteip = "::"; -+ } -+ } -+ -+ remoteport = port["foreign"]["port"]; -+ -+ nlohmann::json portRecord {}; -+ -+ portRecord["protocol"] = port["proto"]; -+ portRecord["local_ip"] = localip; -+ portRecord["local_port"] = localport == "*" ? "0" : localport; -+ portRecord["remote_ip"] = remoteip; -+ portRecord["remote_port"] = remoteport == "*" ? "0" : remoteport; -+ portRecord["tx_queue"] = 0; -+ portRecord["rx_queue"] = 0; -+ portRecord["inode"] = port["fd"]; -+ portRecord["state"] = statedata == "??" ? "" : statedata; -+ portRecord["pid"] = port["pid"]; -+ portRecord["process"] = port["command"]; -+ -+ ports.push_back(portRecord); -+ } -+ } -+ } -+#else -+ const auto query{Utils::exec(R"(sockstat -46qs)")}; -+ -+ if (!query.empty()) -+ { -+ const auto lines{Utils::split(Utils::trimToOneSpace(query), '\n')}; -+ -+ std::regex expression(R"(^(\S+)\s+(\S+)\s+(\d+)\s+(\d+)\s*(\S+)\s+(\S+)\s+(\S+)(?:\s+(\S+))?\s*$)"); -+ -+ for (const auto& line : lines) -+ { -+ std::smatch data; -+ -+ if (std::regex_search(line, data, expression)) -+ { -+ std::string localip = ""; -+ std::string localport = ""; -+ std::string remoteip = ""; -+ std::string remoteport = ""; -+ std::string statedata = ""; -+ -+ auto localdata{Utils::split(data[6], ':')}; -+ auto remotedata{Utils::split(data[7], ':')}; -+ -+ if (data[8].matched ) { -+ statedata = data[8] == "LISTEN" ? "listening" : Utils::toLowerCase(data[8]); -+ } -+ -+ localport = localdata[localdata.size() - 1]; -+ localdata.pop_back(); -+ localip = Utils::join(localdata, ":"); -+ remoteport = remotedata[remotedata.size() - 1]; -+ remotedata.pop_back(); -+ remoteip = Utils::join(remotedata, ":"); -+ -+ if(localip == "*") { -+ if((data[5] == "tcp4") || (data[5] == "udp4")) { -+ localip = "0.0.0.0"; -+ } else { -+ localip = "::"; -+ } -+ } -+ -+ if(remoteip == "*") { -+ if((data[5] == "tcp4") || (data[5] == "udp4")) { -+ remoteip = "0.0.0.0"; -+ } else { -+ remoteip = "::"; -+ } -+ } -+ -+ if(data[0] != "?") { -+ nlohmann::json port {}; -+ -+ port["protocol"] = data[5]; -+ port["local_ip"] = localip; -+ port["local_port"] = localport == "*" ? "0" : localport; -+ port["remote_ip"] = remoteip; -+ port["remote_port"] = remoteport == "*" ? "0" : remoteport; -+ port["tx_queue"] = 0; -+ port["rx_queue"] = 0; -+ port["inode"] = data[4]; -+ port["state"] = statedata == "??" ? "" : statedata; -+ port["pid"] = data[3]; -+ port["process"] = data[2]; -+ -+ ports.push_back(port); -+ } -+ } -+ } -+ } -+#endif -+ return ports; - } - --void SysInfo::getPackages(std::function<void(nlohmann::json&)> callback) const -+void SysInfo::getProcessesInfo(std::function<void(nlohmann::json&)> callback) const - { -- const auto query{Utils::exec(R"(pkg query -a "%n|%m|%v|%q|%c")")}; -+ const auto query{Utils::exec(R"(ps -ax -w -o pid,comm,state,ppid,usertime,systime,user,ruser,svuid,group,rgroup,svgid,pri,nice,ssiz,vsz,rss,pmem,etimes,sid,pgid,tpgid,tty,cpu,nlwp,args --libxo json)")}; - - if (!query.empty()) - { -- const auto lines{Utils::split(query, '\n')}; -+ nlohmann::json psjson; -+ int64_t agenttime = {Utils::getSecondsFromEpoch()}; -+ int64_t etimes{0}; -+ psjson = nlohmann::json::parse(query); -+ auto &processes = psjson["process-information"]["process"]; - -- for (const auto& line : lines) -+ for(auto &process : processes) { -+ std::string user_time{""}; -+ std::string system_time{""}; -+ etimes = std::stoll(process["elapsed-times"].get<std::string>()); -+ -+ user_time = process["user-time"].get<std::string>(); -+ system_time = process["system-time"].get<std::string>(); -+ -+ nlohmann::json jsProcessInfo{}; -+ jsProcessInfo["pid"] = process["pid"].get<std::string>(); -+ jsProcessInfo["name"] = process["command"].get<std::string>(); -+ jsProcessInfo["state"] = process["state"].get<std::string>(); -+ jsProcessInfo["ppid"] = process["ppid"].get<std::string>(); -+ jsProcessInfo["utime"] = Utils::timeToSeconds(user_time); -+ jsProcessInfo["stime"] = Utils::timeToSeconds(system_time); -+ jsProcessInfo["cmd"] = process["command"].get<std::string>(); -+ jsProcessInfo["argvs"] = process["arguments"].get<std::string>(); -+ jsProcessInfo["euser"] = process["user"].get<std::string>(); -+ jsProcessInfo["ruser"] = process["real-user"].get<std::string>(); -+ jsProcessInfo["suser"] = process["saved-uid"].get<std::string>(); -+ jsProcessInfo["egroup"] = process["group"].get<std::string>(); -+ jsProcessInfo["rgroup"] = process["real-group"].get<std::string>(); -+ jsProcessInfo["sgroup"] = process["saved-gid"].get<std::string>(); -+ jsProcessInfo["fgroup"] = process["group"].get<std::string>(); -+ jsProcessInfo["priority"] = process["priority"].get<std::string>(); -+ jsProcessInfo["nice"] = process["nice"].get<std::string>(); -+ jsProcessInfo["size"] = process["stack-size"].get<std::string>(); -+ jsProcessInfo["vm_size"] = process["virtual-size"].get<std::string>(); -+ jsProcessInfo["resident"] = process["rss"].get<std::string>(); -+ //jsProcessInfo["share"] = process["percent-memory"].get<std::string>(); -+ jsProcessInfo["start_time"] = agenttime - etimes; -+ jsProcessInfo["pgrp"] = process["process-group"].get<std::string>(); -+ jsProcessInfo["session"] = process["sid"].get<std::string>(); -+ jsProcessInfo["tgid"] = process["terminal-process-gid"].get<std::string>(); -+ //jsProcessInfo["tty"] = process["tty"].get<std::string>(); // this field should be TEXT into local.db -+ jsProcessInfo["processor"] = process["on-cpu"].get<std::string>(); -+ jsProcessInfo["nlwp"] = process["threads"].get<std::string>(); -+ -+ callback(jsProcessInfo); -+ } -+ } -+} -+ -+void SysInfo::getPackages(std::function<void(nlohmann::json&)> callback) const -+{ -+ if (Utils::existsRegular(PKG_DB_PATHNAME)) -+ { -+ try - { -- const auto data{Utils::split(line, '|')}; -- nlohmann::json package; -+ std::shared_ptr<SQLite::IConnection> sqliteConnection = std::make_shared<SQLite::Connection>(PKG_DB_PATHNAME, SQLITE_OPEN_READONLY); - -- package["name"] = data[0]; -- package["vendor"] = data[1]; -- package["version"] = data[2]; -- package["install_time"] = UNKNOWN_VALUE; -- package["location"] = UNKNOWN_VALUE; -- package["architecture"] = data[3]; -- package["groups"] = UNKNOWN_VALUE; -- package["description"] = data[4]; -- package["size"] = 0; -- package["priority"] = UNKNOWN_VALUE; -- package["source"] = UNKNOWN_VALUE; -- package["format"] = "pkg"; -- // The multiarch field won't have a default value -+ SQLite::Statement stmt -+ { -+ sqliteConnection, -+ PKG_QUERY -+ }; - -- callback(package); -+ while (SQLITE_ROW == stmt.step()) -+ { -+ try -+ { -+ auto pkg_name{ stmt.column(0) }; -+ auto pkg_maintainer{ stmt.column(1) }; -+ auto pkg_version{ stmt.column(2) }; -+ auto pkg_arch{ stmt.column(3) }; -+ auto pkg_comment{ stmt.column(4) }; -+ auto pkg_flatsize{ stmt.column(5) }; -+ auto pkg_time{ stmt.column(6) }; -+ auto pkg_repository{ stmt.column(7) }; -+ auto pkg_origin{ stmt.column(8) }; -+ -+ const auto archdata{Utils::split(pkg_arch->value(std::string{}), ':')}; -+ const auto sectiondata{Utils::split(pkg_origin->value(std::string{}), '/')}; -+ -+ nlohmann::json package; -+ -+ package["name"] = pkg_name->value(std::string{}); -+ package["vendor"] = pkg_maintainer->value(std::string{}); -+ package["version"] = pkg_version->value(std::string{}); -+ package["install_time"] = pkg_time->value(std::string{}); -+ package["location"] = UNKNOWN_VALUE; -+ package["architecture"] = archdata[2]; -+ package["groups"] = UNKNOWN_VALUE; -+ package["description"] = pkg_comment->value(std::string{}); -+ package["size"] = pkg_flatsize->value(uint64_t{}); -+ package["priority"] = UNKNOWN_VALUE; -+ package["source"] = pkg_repository->value(std::string{}); -+ package["section"] = sectiondata[0]; -+ package["format"] = "pkg"; -+ // The multiarch field won't have a default value -+ -+ callback(package); -+ } -+ catch (const std::exception& e) -+ { -+ std::cerr << e.what() << std::endl; -+ } -+ } - } -+ catch (const std::exception& e) -+ { -+ std::cerr << e.what() << std::endl; -+ } - } - } - -@@ -264,14 +546,188 @@ - - nlohmann::json SysInfo::getGroups() const - { -- //TODO: Pending implementation. -- return nlohmann::json(); -+ nlohmann::json result; -+ GroupsProvider groupsProvider; -+ UserGroupsProvider userGroupsProvider; -+ -+ auto collectedGroups = groupsProvider.collect({}); -+ -+ for (auto& group : collectedGroups) -+ { -+ nlohmann::json groupItem {}; -+ -+ groupItem["group_id"] = group["gid"]; -+ groupItem["group_name"] = (group.contains("groupname") && !group["groupname"].get<std::string>().empty()) ? group["groupname"] : UNKNOWN_VALUE; -+ groupItem["group_description"] = UNKNOWN_VALUE; -+ groupItem["group_id_signed"] = group["gid_signed"]; -+ groupItem["group_uuid"] = UNKNOWN_VALUE; -+ groupItem["group_is_hidden"] = 0; -+ -+ std::set<gid_t> gids {static_cast<gid_t>(group["gid"].get<int>())}; -+ auto collectedUsersGroups = userGroupsProvider.getUserNamesByGid(gids); -+ -+ if (collectedUsersGroups.empty()) -+ { -+ groupItem["group_users"] = UNKNOWN_VALUE; -+ } -+ else -+ { -+ std::string usersConcatenated; -+ -+ for (const auto& user : collectedUsersGroups) -+ { -+ if (!usersConcatenated.empty()) -+ { -+ usersConcatenated += secondaryArraySeparator; -+ } -+ -+ usersConcatenated += user.get<std::string>(); -+ } -+ -+ groupItem["group_users"] = usersConcatenated; -+ } -+ -+ result.push_back(std::move(groupItem)); -+ -+ } -+ -+ return result; - } - - nlohmann::json SysInfo::getUsers() const - { -- //TODO: Pending implementation. -- return nlohmann::json(); -+ nlohmann::json result; -+ -+ UsersProvider usersProvider; -+ auto collectedUsers = usersProvider.collect(); -+ -+ LoggedInUsersProvider loggedInUserProvider; -+ auto collectedLoggedInUser = loggedInUserProvider.collect(); -+ -+ UserGroupsProvider userGroupsProvider; -+ -+ for (auto& user : collectedUsers) -+ { -+ nlohmann::json userItem {}; -+ -+ std::string username = (user.contains("username") && !user["username"].get<std::string>().empty()) ? user["username"] : UNKNOWN_VALUE; -+ -+ userItem["user_id"] = user["uid"]; -+ userItem["user_full_name"] = user["description"]; -+ userItem["user_home"] = user["directory"]; -+ userItem["user_is_remote"] = user["include_remote"]; -+ userItem["user_name"] = username; -+ userItem["user_shell"] = user["shell"]; -+ userItem["user_uid_signed"] = user["uid_signed"]; -+ userItem["user_group_id_signed"] = user["gid_signed"]; -+ userItem["user_group_id"] = user["gid"]; -+ -+ std::set<uid_t> uid {static_cast<uid_t>(user["uid"].get<int>())}; -+ auto collectedUsersGroups = userGroupsProvider.getGroupNamesByUid(uid); -+ -+ if (collectedUsersGroups.empty()) -+ { -+ userItem["user_groups"] = UNKNOWN_VALUE; -+ } -+ else -+ { -+ std::string accumGroups; -+ -+ for (const auto& group : collectedUsersGroups) -+ { -+ if (!accumGroups.empty()) -+ { -+ accumGroups += secondaryArraySeparator; -+ } -+ -+ accumGroups += group.get<std::string>(); -+ } -+ -+ userItem["user_groups"] = accumGroups; -+ } -+ -+ // Only in windows -+ userItem["user_type"] = UNKNOWN_VALUE; -+ -+ // Macos or windows -+ userItem["user_uuid"] = UNKNOWN_VALUE; -+ -+ // Macos -+ userItem["user_is_hidden"] = 0; -+ userItem["user_created"] = 0; -+ userItem["user_auth_failed_count"] = 0; -+ userItem["user_auth_failed_timestamp"] = 0; -+ -+ auto matched = false; -+ auto lastLogin = 0; -+ -+ userItem["host_ip"] = UNKNOWN_VALUE; -+ -+ //TODO: Avoid this iteration, move logic to LoggedInUsersProvider -+ for (auto& item : collectedLoggedInUser) -+ { -+ // By default, user is not logged in. -+ userItem["login_status"] = 0; -+ -+ // tty,host,time and pid can take more than one value due to different logins. -+ if (item["user"] == username) -+ { -+ matched = true; -+ userItem["login_status"] = 1; -+ -+ auto newDate = item["time"].get<int32_t>(); -+ -+ if (newDate > lastLogin) -+ { -+ lastLogin = newDate; -+ userItem["user_last_login"] = newDate; -+ userItem["login_tty"] = item["tty"].get<std::string>(); -+ userItem["login_type"] = item["type"].get<std::string>(); -+ userItem["process_pid"] = item["pid"].get<int32_t>(); -+ } -+ -+ const auto& hostStr = item["host"].get_ref<const std::string&>(); -+ -+ if (!hostStr.empty()) -+ { -+ userItem["host_ip"] = userItem["host_ip"].get<std::string>() == UNKNOWN_VALUE -+ ? hostStr -+ : (userItem["host_ip"].get<std::string>() + primaryArraySeparator + hostStr); -+ } -+ } -+ } -+ -+ if (!matched) -+ { -+ userItem["login_status"] = 0; -+ userItem["login_tty"] = UNKNOWN_VALUE; -+ userItem["login_type"] = UNKNOWN_VALUE; -+ userItem["process_pid"] = 0; -+ userItem["user_last_login"] = 0; -+ } -+ -+ matched = false; -+ -+ if (!matched) -+ { -+ userItem["user_password_expiration_date"] = 0; -+ userItem["user_password_hash_algorithm"] = UNKNOWN_VALUE; -+ userItem["user_password_inactive_days"] = 0; -+ userItem["user_password_last_change"] = 0; -+ userItem["user_password_max_days_between_changes"] = 0; -+ userItem["user_password_min_days_between_changes"] = 0; -+ userItem["user_password_status"] = UNKNOWN_VALUE; -+ userItem["user_password_warning_days_before_expiration"] = 0; -+ } -+ -+ -+ // By default, user is not sudoer. -+ userItem["user_roles"] = UNKNOWN_VALUE; -+ -+ result.push_back(std::move(userItem)); -+ } -+ -+ return result; - } - - nlohmann::json SysInfo::getServices() const diff --git a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources-CMakeLists.txt b/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources-CMakeLists.txt deleted file mode 100644 index 458b05f1655e..000000000000 --- a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources-CMakeLists.txt +++ /dev/null @@ -1,18 +0,0 @@ ---- src/data_provider/src/extended_sources/CMakeLists.txt 2025-11-07 08:46:03.000000000 +0000 -+++ src/data_provider/src/extended_sources/CMakeLists.txt 2026-01-13 15:00:46.789677000 +0000 -@@ -1,6 +1,11 @@ - include_directories(wrappers) - --add_subdirectory(groups) --add_subdirectory(services) --add_subdirectory(users) --add_subdirectory(browser_extensions) -+if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") -+ add_subdirectory(groups) -+ add_subdirectory(users) -+else() -+ add_subdirectory(groups) -+ add_subdirectory(services) -+ add_subdirectory(users) -+ add_subdirectory(browser_extensions) -+endif() diff --git a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_groups-CMakeLists.txt b/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_groups-CMakeLists.txt deleted file mode 100644 index 0f34a531e850..000000000000 --- a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_groups-CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ ---- src/data_provider/src/extended_sources/groups/CMakeLists.txt 2026-01-13 15:01:19.871247000 +0000 -+++ src/data_provider/src/extended_sources/groups/CMakeLists.txt 2026-01-13 15:07:52.828437000 +0000 -@@ -18,6 +18,8 @@ - include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../wrappers/unix/linux) - elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") - include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../wrappers/unix/darwin) -+ elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") -+ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../wrappers/unix/freebsd) - endif() - endif() - -@@ -35,6 +37,10 @@ - list(APPEND SRC_FILES - src/groups_linux.cpp - src/user_groups_linux.cpp) -+ elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") -+ list(APPEND SRC_FILES -+ src/groups_freebsd.cpp -+ src/user_groups_freebsd.cpp) - elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") - find_library(OPEN_DIRECTORY OpenDirectory) - find_library(FOUNDATION Foundation) diff --git a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_groups_include-groups_freebsd.hpp b/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_groups_include-groups_freebsd.hpp deleted file mode 100644 index a756e0bb02f7..000000000000 --- a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_groups_include-groups_freebsd.hpp +++ /dev/null @@ -1,46 +0,0 @@ ---- /dev/null 2026-01-13 23:10:56.926889000 +0000 -+++ src/data_provider/src/extended_sources/groups/include/groups_freebsd.hpp 2026-01-13 22:43:51.149789000 +0000 -@@ -0,0 +1,43 @@ -+/* Copyright (C) 2015, Wazuh Inc. -+ * All rights reserved. -+ * -+ * This program is free software; you can redistribute it -+ * and/or modify it under the terms of the GNU General Public -+ * License (version 2) as published by the FSF - Free Software -+ * Foundation. -+ */ -+ -+#pragma once -+ -+#include <set> -+ -+#include "json.hpp" -+#include "igroup_wrapper.hpp" -+ -+/// @brief Class for collecting group information on FreeBSD systems. -+/// -+/// This class provides methods to collect group information from the -+/// Darwin operating system. It uses the system's group database to retrieve -+/// group details such as group name and GID. The collected data is returned -+/// in JSON format. -+class GroupsProvider -+{ -+ public: -+ explicit GroupsProvider(std::shared_ptr<IGroupWrapperFreeBSD> groupWrapper); -+ -+ /// @brief Default destructor. -+ GroupsProvider(); -+ -+ /// @brief Collects group information based on provided group IDs. -+ /// @param gids A set of group IDs to collect information for. -+ /// @return A JSON array containing group information. -+ nlohmann::json collect(const std::set<gid_t>& gids = {}); -+ -+ private: -+ std::shared_ptr<IGroupWrapperFreeBSD> m_groupWrapper; -+ -+ /// @brief Adds a group to the results JSON array. -+ /// @param results A reference to the JSON array where the group information will be added. -+ /// @param group A pointer to the group structure containing the group information. -+ void addGroupToResults(nlohmann::json& results, const struct group* group); -+}; diff --git a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_groups_include-user_groups_freebsd.hpp b/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_groups_include-user_groups_freebsd.hpp deleted file mode 100644 index 3fdc455fed39..000000000000 --- a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_groups_include-user_groups_freebsd.hpp +++ /dev/null @@ -1,84 +0,0 @@ ---- /dev/null 2026-01-13 23:11:31.853795000 +0000 -+++ src/data_provider/src/extended_sources/groups/include/user_groups_freebsd.hpp 2026-01-13 22:43:51.149735000 +0000 -@@ -0,0 +1,81 @@ -+/* Copyright (C) 2015, Wazuh Inc. -+ * All rights reserved. -+ * -+ * This program is free software; you can redistribute it -+ * and/or modify it under the terms of the GNU General Public -+ * License (version 2) as published by the FSF - Free Software -+ * Foundation. -+ */ -+ -+#pragma once -+ -+#include <set> -+ -+#include "json.hpp" -+#include "igroup_wrapper.hpp" -+#include "ipasswd_wrapper.hpp" -+ -+#define EXPECTED_GROUPS_MAX 64 -+ -+class UserGroupsProvider -+{ -+ public: -+ /// @brief Constructs a UserGroupsProvider with specific wrappers. -+ /// @param groupWrapper A shared pointer to an IGroupWrapperFreeBSD instance for group operations. -+ /// @param passwdWrapper A shared pointer to an IPasswdWrapperFreeBSD instance for passwd operations. -+ /// @param sysWrapper A shared pointer to an ISystemWrapper instance for system operations. -+ explicit UserGroupsProvider(std::shared_ptr<IGroupWrapperFreeBSD> groupWrapper, -+ std::shared_ptr<IPasswdWrapperFreeBSD> passwdWrapper); -+ -+ /// @brief Default constructor that initializes the UserGroupsProvider with default wrappers. -+ /// @note This constructor uses default implementations of IGroupWrapperFreeBSD, and IPasswdWrapperFreeBSD. -+ UserGroupsProvider(); -+ -+ /// @brief Collects user groups information. -+ /// @param uids A set of user IDs (UIDs) to filter the results. If empty, all users are collected. -+ /// @return A JSON array containing user groups information, where each entry includes UID, GID, and group details. -+ nlohmann::json collect(const std::set<uid_t>& uids = {}); -+ -+ /// @brief Retrieves group names associated with the specified UIDs. -+ /// @param uids A set of user IDs (UIDs) for which to retrieve group names. -+ /// @return A JSON object where keys are UIDs and values are arrays of group names associated with those UIDs. -+ /// If a UID has no associated groups, the value will be an empty array. -+ /// @note This method is useful for quickly mapping UIDs to their group names without retrieving full group details. -+ /// @note If `uids` is empty, it retrieves group names for all users. -+ nlohmann::json getGroupNamesByUid(const std::set<uid_t>& uids = {}); -+ -+ /// @brief Retrieves usernames associated with the specified GIDs. -+ /// @param gids A set of group IDs (GIDs) for which to retrieve usernames. -+ /// @return A JSON object where keys are GIDs and values are arrays of usernames associated with those GIDs. -+ /// If a GID has no associated usernames, the value will be an empty array. -+ /// @note This method is useful for quickly mapping GIDs to their usernames without retrieving full user details. -+ /// @note If `gids` is empty, it retrieves usernames for all groups. -+ nlohmann::json getUserNamesByGid(const std::set<gid_t>& gids = {}); -+ -+ private: -+ std::shared_ptr<IGroupWrapperFreeBSD> m_groupWrapper; -+ std::shared_ptr<IPasswdWrapperFreeBSD> m_passwdWrapper; -+ -+ /// @brief Structure to hold user information. -+ struct UserInfo -+ { -+ const char* name; -+ uid_t uid; -+ gid_t gid; -+ }; -+ -+ /// @brief Retrieves groups for each user and returns a vector of pairs containing UID and their associated groups. -+ /// @param uids A set of user IDs (UIDs) to filter the results. If empty, all users are processed. -+ /// @return A vector of pairs, where each pair contains a UID and a vector of GIDs representing the groups associated with that UID. -+ /// @note This method is used internally to gather user-group associations before formatting the results into JSON. -+ /// @note If a user has no associated groups, the vector of GIDs will be empty. -+ std::vector<std::pair<uid_t, std::vector<gid_t>>> getUserGroups(const std::set<uid_t>& uids); -+ -+ /// @brief Adds groups to the results JSON array for a specific user. -+ /// @param results A reference to the JSON array where the group information will be added. -+ /// @param uid The user ID for which the groups are being added. -+ /// @param groups A pointer to an array of group IDs (GIDs) associated with the user. -+ /// @param ngroups The number of groups in the `groups` array. -+ /// @note This method formats the group information into JSON objects and appends them to the results array. -+ void addGroupsToResults(nlohmann::json& results, uid_t uid, const gid_t* groups, int ngroups); -+}; diff --git a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_groups_src-groups_freebsd.hpp b/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_groups_src-groups_freebsd.hpp deleted file mode 100644 index d65c4b178507..000000000000 --- a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_groups_src-groups_freebsd.hpp +++ /dev/null @@ -1,95 +0,0 @@ ---- /dev/null 2026-01-13 23:12:14.070467000 +0000 -+++ src/data_provider/src/extended_sources/groups/src/groups_freebsd.cpp 2026-01-13 22:43:51.150488000 +0000 -@@ -0,0 +1,92 @@ -+/* Copyright (C) 2015, Wazuh Inc. -+ * All rights reserved. -+ * -+ * This program is free software; you can redistribute it -+ * and/or modify it under the terms of the GNU General Public -+ * License (version 2) as published by the FSF - Free Software -+ * Foundation. -+ */ -+ -+#include "groups_freebsd.hpp" -+#include "group_wrapper.hpp" -+ -+constexpr size_t MAX_GETPW_R_BUF_SIZE = 16 * 1024; -+ -+GroupsProvider::GroupsProvider(std::shared_ptr<IGroupWrapperFreeBSD> groupWrapper) -+ : m_groupWrapper(std::move(groupWrapper)) {} -+ -+GroupsProvider::GroupsProvider() -+ : m_groupWrapper(std::make_shared<GroupWrapperFreeBSD>()) {} -+ -+nlohmann::json GroupsProvider::collect(const std::set<gid_t>& gids) -+{ -+ nlohmann::json results = nlohmann::json::array(); -+ struct group* groupResult -+ { -+ nullptr -+ }; -+ struct group group; -+ -+ size_t bufSize = MAX_GETPW_R_BUF_SIZE; -+ auto buf = std::make_unique<char[]>(bufSize); -+ -+ if (!gids.empty()) -+ { -+ for (const auto& gid : gids) -+ { -+ while (m_groupWrapper->getgrgid_r(gid, &group, buf.get(), bufSize, &groupResult) == ERANGE) -+ { -+ bufSize *= 2; -+ buf = std::make_unique<char[]>(bufSize); -+ } -+ -+ if (groupResult == nullptr) -+ { -+ continue; -+ } -+ -+ addGroupToResults(results, groupResult); -+ } -+ } -+ else -+ { -+ std::set<long> groupsIn; -+ m_groupWrapper->setgrent(); -+ -+ while (1) -+ { -+ while (m_groupWrapper->getgrent_r(&group, buf.get(), bufSize, &groupResult) == ERANGE) -+ { -+ bufSize *= 2; -+ buf = std::make_unique<char[]>(bufSize); -+ } -+ -+ if (groupResult == nullptr) -+ { -+ break; -+ } -+ -+ if (std::find(groupsIn.begin(), groupsIn.end(), groupResult->gr_gid) == groupsIn.end()) -+ { -+ addGroupToResults(results, groupResult); -+ groupsIn.insert(groupResult->gr_gid); -+ } -+ } -+ -+ m_groupWrapper->endgrent(); -+ groupsIn.clear(); -+ } -+ -+ return results; -+} -+ -+void GroupsProvider::addGroupToResults(nlohmann::json& results, const group* group) -+{ -+ nlohmann::json groupJson; -+ -+ groupJson["groupname"] = group->gr_name; -+ groupJson["gid"] = group->gr_gid; -+ groupJson["gid_signed"] = static_cast<int32_t>(group->gr_gid); -+ -+ results.push_back(groupJson); -+} diff --git a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_groups_src-user_groups_freebsd.hpp b/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_groups_src-user_groups_freebsd.hpp deleted file mode 100644 index ef6229d3ef82..000000000000 --- a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_groups_src-user_groups_freebsd.hpp +++ /dev/null @@ -1,262 +0,0 @@ ---- /dev/null 2026-01-13 23:12:49.062343000 +0000 -+++ src/data_provider/src/extended_sources/groups/src/user_groups_freebsd.cpp 2026-01-13 22:43:51.150552000 +0000 -@@ -0,0 +1,259 @@ -+/* Copyright (C) 2015, Wazuh Inc. -+ * All rights reserved. -+ * -+ * This program is free software; you can redistribute it -+ * and/or modify it under the terms of the GNU General Public -+ * License (version 2) as published by the FSF - Free Software -+ * Foundation. -+ */ -+ -+#include <iostream> -+#include <unistd.h> -+#include "user_groups_freebsd.hpp" -+#include "group_wrapper.hpp" -+#include "passwd_wrapper.hpp" -+ -+constexpr size_t MAX_GETPW_R_BUF_SIZE = 16 * 1024; -+ -+UserGroupsProvider::UserGroupsProvider(std::shared_ptr<IGroupWrapperFreeBSD> groupWrapper, -+ std::shared_ptr<IPasswdWrapperFreeBSD> passwdWrapper) -+ : m_groupWrapper(std::move(groupWrapper)) -+ , m_passwdWrapper(std::move(passwdWrapper)) -+{ -+} -+ -+UserGroupsProvider::UserGroupsProvider() -+ : m_groupWrapper(std::make_shared<GroupWrapperFreeBSD>()) -+ , m_passwdWrapper(std::make_shared<PasswdWrapperFreeBSD>()) -+{ -+} -+ -+nlohmann::json UserGroupsProvider::collect(const std::set<uid_t>& uids) -+{ -+ nlohmann::json results = nlohmann::json::array(); -+ auto usersGroups = getUserGroups(uids); -+ -+ for (const auto& [uid, groups] : usersGroups) -+ { -+ addGroupsToResults(results, uid, groups.data(), static_cast<int>(groups.size())); -+ } -+ -+ return results; -+} -+ -+nlohmann::json UserGroupsProvider::getGroupNamesByUid(const std::set<uid_t>& uids) -+{ -+ const bool singleUid = (uids.size() == 1); -+ nlohmann::json result = singleUid ? nlohmann::json::array() : nlohmann::json::object(); -+ auto usersGroups = getUserGroups(uids); -+ -+ size_t bufSize = sysconf(_SC_GETGR_R_SIZE_MAX); -+ -+ if (bufSize > MAX_GETPW_R_BUF_SIZE) -+ { -+ bufSize = MAX_GETPW_R_BUF_SIZE; -+ } -+ -+ for (const auto& [uid, groups] : usersGroups) -+ { -+ nlohmann::json groupNames = nlohmann::json::array(); -+ -+ for (const auto& gid : groups) -+ { -+ struct group grp; -+ struct group* grpResult = nullptr; -+ auto groupBuf = std::make_unique<char[]>(bufSize); -+ -+ if (m_groupWrapper->getgrgid_r(gid, &grp, groupBuf.get(), bufSize, &grpResult) == 0 && grpResult != nullptr) -+ { -+ groupNames.push_back(grpResult->gr_name); -+ } -+ } -+ -+ if (singleUid) -+ { -+ result = groupNames; -+ } -+ else -+ { -+ result[std::to_string(uid)] = groupNames; -+ } -+ } -+ -+ return result; -+} -+ -+nlohmann::json UserGroupsProvider::getUserNamesByGid(const std::set<gid_t>& gids) -+{ -+ const bool allGroups = gids.empty(); -+ const bool singleGid = (!allGroups && gids.size() == 1); -+ nlohmann::json result = singleGid ? nlohmann::json::array() : nlohmann::json::object(); -+ -+ size_t bufSize = sysconf(_SC_GETPW_R_SIZE_MAX); -+ -+ if (bufSize > MAX_GETPW_R_BUF_SIZE) -+ { -+ bufSize = MAX_GETPW_R_BUF_SIZE; -+ } -+ -+ std::map<gid_t, std::set<std::string>> gidToUsernames; -+ -+ if (allGroups) -+ { -+ struct group* grp = nullptr; -+ m_groupWrapper->setgrent(); -+ -+ while ((grp = m_groupWrapper->getgrent()) != nullptr) -+ { -+ gid_t gid = grp->gr_gid; -+ char** members = grp->gr_mem; -+ -+ while (members && *members) -+ { -+ gidToUsernames[gid].insert(*members); -+ ++members; -+ } -+ } -+ -+ m_groupWrapper->endgrent(); -+ } -+ else -+ { -+ for (const auto& gid : gids) -+ { -+ struct group grp; -+ struct group* grpResult = nullptr; -+ auto groupBuf = std::make_unique<char[]>(bufSize); -+ -+ if (m_groupWrapper->getgrgid_r(gid, &grp, groupBuf.get(), bufSize, &grpResult) == 0 && grpResult != nullptr) -+ { -+ char** members = grpResult->gr_mem; -+ -+ while (members && *members) -+ { -+ gidToUsernames[gid].insert(*members); -+ ++members; -+ } -+ } -+ } -+ } -+ -+ struct passwd* pwd = nullptr; -+ -+ m_passwdWrapper->setpwent(); -+ -+ while ((pwd = m_passwdWrapper->getpwent()) != nullptr) -+ { -+ if (allGroups || gids.count(pwd->pw_gid)) -+ { -+ gidToUsernames[pwd->pw_gid].insert(pwd->pw_name); -+ } -+ } -+ -+ m_passwdWrapper->endpwent(); -+ -+ for (const auto& [gid, usernames] : gidToUsernames) -+ { -+ nlohmann::json jsonUsernames = nlohmann::json::array(); -+ -+ for (const auto& name : usernames) -+ { -+ jsonUsernames.push_back(name); -+ } -+ -+ if (singleGid) -+ { -+ result = jsonUsernames; -+ } -+ else -+ { -+ result[std::to_string(gid)] = jsonUsernames; -+ } -+ } -+ -+ return result; -+} -+ -+std::vector<std::pair<uid_t, std::vector<gid_t>>> UserGroupsProvider::getUserGroups(const std::set<uid_t>& uids) -+{ -+ std::vector<std::pair<uid_t, std::vector<gid_t>>> userGroups; -+ struct passwd pwd; -+ struct passwd* pwdResults = nullptr; -+ -+ size_t bufSize = sysconf(_SC_GETPW_R_SIZE_MAX); -+ -+ if (bufSize > MAX_GETPW_R_BUF_SIZE) -+ { -+ bufSize = MAX_GETPW_R_BUF_SIZE; -+ } -+ -+ auto buf = std::make_unique<char[]>(bufSize); -+ -+ auto processUser = [&](const struct passwd * pwdInfo) -+ { -+ UserInfo user {pwdInfo->pw_name, pwdInfo->pw_uid, pwdInfo->pw_gid}; -+ -+ std::vector<gid_t> groups(EXPECTED_GROUPS_MAX); -+ int nGroups = EXPECTED_GROUPS_MAX; -+ -+ if (m_groupWrapper->getgrouplist(user.name, user.gid, groups.data(), &nGroups) < 0) -+ { -+ groups.resize(nGroups); -+ -+ if (m_groupWrapper->getgrouplist(user.name, user.gid, groups.data(), &nGroups) < 0) -+ { -+ // std::cerr << "Could not get user's group list" << std::endl; -+ return; -+ } -+ -+ groups.resize(nGroups); -+ } -+ else -+ { -+ groups.resize(nGroups); -+ } -+ -+ userGroups.emplace_back(user.uid, std::move(groups)); -+ }; -+ -+ if (!uids.empty()) -+ { -+ for (const auto& uid : uids) -+ { -+ if (m_passwdWrapper->getpwuid_r(uid, &pwd, buf.get(), bufSize, &pwdResults) == 0 && pwdResults != nullptr) -+ { -+ processUser(pwdResults); -+ } -+ } -+ } -+ else -+ { -+ std::set<uid_t> processed_uids; -+ m_passwdWrapper->setpwent(); -+ -+ while (m_passwdWrapper->getpwent_r(&pwd, buf.get(), bufSize, &pwdResults) == 0 && pwdResults != nullptr) -+ { -+ if (processed_uids.insert(pwdResults->pw_uid).second) -+ { -+ processUser(pwdResults); -+ } -+ } -+ -+ m_passwdWrapper->endpwent(); -+ } -+ -+ return userGroups; -+} -+ -+void UserGroupsProvider::addGroupsToResults(nlohmann::json& results, uid_t uid, const gid_t* groups, int nGroups) -+{ -+ for (int i = 0; i < nGroups; i++) -+ { -+ nlohmann::json groupJson; -+ -+ groupJson["uid"] = uid; -+ groupJson["gid"] = groups[i]; -+ -+ results.push_back(groupJson); -+ } -+} diff --git a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_users-CMakeLists.txt b/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_users-CMakeLists.txt deleted file mode 100644 index 2dc3067c5068..000000000000 --- a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_users-CMakeLists.txt +++ /dev/null @@ -1,21 +0,0 @@ ---- src/data_provider/src/extended_sources/users/CMakeLists.txt 2025-11-07 08:46:03.000000000 +0000 -+++ src/data_provider/src/extended_sources/users/CMakeLists.txt 2026-01-12 14:53:32.100182000 +0000 -@@ -18,6 +18,8 @@ - include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../wrappers/unix/linux) - elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") - include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../wrappers/unix/darwin) -+ elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") -+ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../wrappers/unix/freebsd) - endif() - endif() - -@@ -40,6 +42,9 @@ - - list(APPEND SRC_FILES src/users_darwin.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../wrappers/unix/darwin/od_wrapper.mm) - set(PLATFORM_LIBS_USERS ${OPEN_DIRECTORY} ${FOUNDATION}) -+ elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") -+ list(APPEND SRC_FILES src/logged_in_users_freebsd.cpp) -+ list(APPEND SRC_FILES src/users_freebsd.cpp) - endif() - endif() - diff --git a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_users_include-logged_in_users_freebsd.hpp b/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_users_include-logged_in_users_freebsd.hpp deleted file mode 100644 index 83195510bddb..000000000000 --- a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_users_include-logged_in_users_freebsd.hpp +++ /dev/null @@ -1,37 +0,0 @@ ---- /dev/null 2026-01-13 23:08:55.189229000 +0000 -+++ src/data_provider/src/extended_sources/users/include/logged_in_users_freebsd.hpp 2026-01-13 22:43:51.148959000 +0000 -@@ -0,0 +1,34 @@ -+/* Copyright (C) 2015, Wazuh Inc. -+ * All rights reserved. -+ * -+ * This program is free software; you can redistribute it -+ * and/or modify it under the terms of the GNU General Public -+ * License (version 2) as published by the FSF - Free Software -+ * Foundation. -+ */ -+ -+#pragma once -+ -+#include <map> -+#include <mutex> -+#include <string> -+#include <vector> -+ -+#include "json.hpp" -+#include "iutmpx_wrapper.hpp" -+ -+class LoggedInUsersProvider -+{ -+ public: -+ explicit LoggedInUsersProvider(std::shared_ptr<IUtmpxWrapper> utmpxWrapper); -+ -+ LoggedInUsersProvider(); -+ -+ nlohmann::json collect(); -+ -+ private: -+ std::shared_ptr<IUtmpxWrapper> m_utmpxWrapper; -+ -+ static std::mutex utmpxMutex; -+ static const std::map<size_t, std::string> loginTypes; -+}; diff --git a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_users_include-users_freebsd.hpp b/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_users_include-users_freebsd.hpp deleted file mode 100644 index f6884ce8f1fc..000000000000 --- a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_users_include-users_freebsd.hpp +++ /dev/null @@ -1,69 +0,0 @@ ---- /dev/null 2026-01-13 23:09:49.988051000 +0000 -+++ src/data_provider/src/extended_sources/users/include/users_freebsd.hpp 2026-01-13 22:43:51.149043000 +0000 -@@ -0,0 +1,66 @@ -+/* Copyright (C) 2015, Wazuh Inc. -+ * All rights reserved. -+ * -+ * This program is free software; you can redistribute it -+ * and/or modify it under the terms of the GNU General Public -+ * License (version 2) as published by the FSF - Free Software -+ * Foundation. -+ */ -+ -+#include <map> -+#include <memory> -+#include <set> -+#include <string> -+ -+#include "json.hpp" -+ -+#include "ipasswd_wrapper.hpp" -+ -+/// @brief Provides user information on FreeBSD systems. -+/// -+/// Collects user data by combining information from the passwd database, -+/// -+/// Dependencies are injected via wrappers for testability and abstraction. -+class UsersProvider -+{ -+ public: -+ /// @brief Constructs a UsersProvider with the given wrappers. -+ /// @param passwdWrapper Wrapper for password database operations. -+ /// @param sysWrapper Wrapper for system-level operations. -+ explicit UsersProvider( -+ std::shared_ptr<IPasswdWrapperFreeBSD> passwdWrapper); -+ -+ /// @brief Default constructor. -+ UsersProvider(); -+ -+ /// @brief Collects all user information, optionally including remote users. -+ /// @param include_remote Whether to include remote users in the collection (default: true). -+ /// @return JSON array of user information objects. -+ nlohmann::json collect(bool include_remote = true); -+ -+ /// @brief Collects user information filtered by usernames and UIDs, optionally including remote users. -+ /// @param usernames Set of usernames to filter. -+ /// @param uids Set of UIDs to filter. -+ /// @param include_remote Whether to include remote users in the collection. -+ /// @return JSON array of user information objects matching the constraints. -+ nlohmann::json collectWithConstraints(const std::set<std::string>& usernames, -+ const std::set<uid_t>& uids, -+ bool include_remote); -+ -+ private: -+ /// @brief Generates a JSON representation of a user from passwd struct. -+ /// @param pwd Pointer to passwd struct representing the user. -+ /// @param include_remote Boolean indicating whether remote users are included. -+ /// @return JSON object representing the user. -+ nlohmann::json genUserJson(const struct passwd* pwd, bool include_remote); -+ -+ /// @brief Collects local users filtered by usernames and UIDs. -+ /// @param usernames Set of usernames to filter. -+ /// @param uids Set of UIDs to filter. -+ /// @return JSON array of local user information. -+ nlohmann::json collectUsers(const std::set<std::string>& usernames, -+ const std::set<uid_t>& uids); -+ -+ /// @brief Passwd wrapper dependency. -+ std::shared_ptr<IPasswdWrapperFreeBSD> m_passwdWrapper; -+}; diff --git a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_users_src-logged_in_users_freebsd.cpp b/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_users_src-logged_in_users_freebsd.cpp deleted file mode 100644 index d5359d1524b8..000000000000 --- a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_users_src-logged_in_users_freebsd.cpp +++ /dev/null @@ -1,72 +0,0 @@ ---- /dev/null 2026-01-13 23:08:16.219538000 +0000 -+++ src/data_provider/src/extended_sources/users/src/logged_in_users_freebsd.cpp 2026-01-13 22:43:51.148867000 +0000 -@@ -0,0 +1,69 @@ -+/* Copyright (C) 2015, Wazuh Inc. -+ * All rights reserved. -+ * -+ * This program is free software; you can redistribute it -+ * and/or modify it under the terms of the GNU General Public -+ * License (version 2) as published by the FSF - Free Software -+ * Foundation. -+ */ -+ -+#include "logged_in_users_freebsd.hpp" -+#include "utmpx_wrapper.hpp" -+ -+#include <utmpx.h> -+#include <paths.h> -+ -+#include <cstring> -+#include <string> -+ -+std::mutex LoggedInUsersProvider::utmpxMutex; -+ -+const std::map<size_t, std::string> LoggedInUsersProvider::loginTypes = -+{ -+ {EMPTY, "empty"}, -+ {BOOT_TIME, "boot_time"}, -+ {NEW_TIME, "new_time"}, -+ {OLD_TIME, "old_time"}, -+ {INIT_PROCESS, "init"}, -+ {LOGIN_PROCESS, "login"}, -+ {USER_PROCESS, "user"}, -+ {DEAD_PROCESS, "dead"}, -+}; -+ -+LoggedInUsersProvider::LoggedInUsersProvider(std::shared_ptr<IUtmpxWrapper> wrapper) -+ : m_utmpxWrapper(std::move(wrapper)) {} -+ -+LoggedInUsersProvider::LoggedInUsersProvider() -+ : m_utmpxWrapper(std::make_shared<UtmpxWrapper>()) {} -+ -+nlohmann::json LoggedInUsersProvider::collect() -+{ -+ std::lock_guard<std::mutex> lock(utmpxMutex); -+ nlohmann::json results = nlohmann::json::array(); -+ struct utmpx* entry = nullptr; -+ -+ m_utmpxWrapper->setutxent(); -+ -+ while ((entry = m_utmpxWrapper->getutxent()) != nullptr) -+ { -+ if (entry->ut_pid == 1) -+ { -+ continue; -+ } -+ -+ nlohmann::json row; -+ auto it = loginTypes.find(entry->ut_type); -+ row["type"] = (it != loginTypes.end()) ? it->second : "unknown"; -+ -+ row["user"] = std::string(entry->ut_user, strnlen(entry->ut_user, sizeof(entry->ut_user))); -+ row["tty"] = std::string(entry->ut_line, strnlen(entry->ut_line, sizeof(entry->ut_line))); -+ row["host"] = std::string(entry->ut_host, strnlen(entry->ut_host, sizeof(entry->ut_host))); -+ row["time"] = entry->ut_tv.tv_sec; -+ row["pid"] = entry->ut_pid; -+ -+ results.push_back(std::move(row)); -+ } -+ -+ m_utmpxWrapper->endutxent(); -+ return results; -+} diff --git a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_users_src-users_freebsd.cpp b/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_users_src-users_freebsd.cpp deleted file mode 100644 index 195be19ed3a9..000000000000 --- a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_users_src-users_freebsd.cpp +++ /dev/null @@ -1,106 +0,0 @@ ---- /dev/null 2026-01-13 23:07:27.483265000 +0000 -+++ src/data_provider/src/extended_sources/users/src/users_freebsd.cpp 2026-01-13 22:53:15.807751000 +0000 -@@ -0,0 +1,103 @@ -+/* Copyright (C) 2015, Wazuh Inc. -+ * All rights reserved. -+ * -+ * This program is free software; you can redistribute it -+ * and/or modify it under the terms of the GNU General Public -+ * License (version 2) as published by the FSF - Free Software -+ * Foundation. -+ */ -+ -+#include <unistd.h> -+#include <set> -+#include <string> -+#include <map> -+#include <memory> -+ -+#include "users_freebsd.hpp" -+#include "passwd_wrapper.hpp" -+ -+constexpr size_t MAX_GETPW_R_BUF_SIZE = 16 * 1024; -+ -+UsersProvider::UsersProvider( -+ std::shared_ptr<IPasswdWrapperFreeBSD> passwdWrapper) -+ : m_passwdWrapper(std::move(passwdWrapper)) {} -+ -+UsersProvider::UsersProvider() -+ : m_passwdWrapper(std::make_shared<PasswdWrapperFreeBSD>()) {} -+ -+nlohmann::json UsersProvider::collect(bool include_remote) -+{ -+ return collectWithConstraints({}, {}, include_remote); -+} -+ -+nlohmann::json UsersProvider::collectWithConstraints(const std::set<std::string>& usernames, -+ const std::set<uid_t>& uids, -+ bool include_remote) -+{ -+// if (include_remote) -+// { -+// return collectRemoteUsers(usernames, uids); -+// } -+ -+ return collectUsers(usernames, uids); -+} -+ -+nlohmann::json UsersProvider::genUserJson(const struct passwd* pwd, bool include_remote) -+{ -+ nlohmann::json r; -+ r["uid"] = pwd->pw_uid; -+ r["gid"] = pwd->pw_gid; -+ r["uid_signed"] = static_cast<int32_t>(pwd->pw_uid); -+ r["gid_signed"] = static_cast<int32_t>(pwd->pw_gid); -+ -+ r["username"] = (pwd->pw_name != nullptr) ? pwd->pw_name : ""; -+ r["description"] = (pwd->pw_gecos != nullptr) ? pwd->pw_gecos : ""; -+ r["directory"] = (pwd->pw_dir != nullptr) ? pwd->pw_dir : ""; -+ r["shell"] = (pwd->pw_shell != nullptr) ? pwd->pw_shell : ""; -+ -+ r["pid_with_namespace"] = "0"; -+ r["include_remote"] = static_cast<int>(include_remote); -+ -+ return r; -+} -+ -+nlohmann::json UsersProvider::collectUsers(const std::set<std::string>& usernames, -+ const std::set<uid_t>& uids) -+{ -+ nlohmann::json results = nlohmann::json::array(); -+ -+ size_t bufsize = sysconf(_SC_GETPW_R_SIZE_MAX); -+ -+ if (bufsize > MAX_GETPW_R_BUF_SIZE) -+ { -+ bufsize = MAX_GETPW_R_BUF_SIZE; -+ } -+ -+ auto buf = std::make_unique<char[]>(bufsize); -+ -+ struct passwd pwd; -+ struct passwd* pwd_results -+ { -+ nullptr -+ }; -+ -+ m_passwdWrapper->setpwent(); -+ -+ while (m_passwdWrapper->getpwent_r(&pwd, buf.get(), bufsize, &pwd_results) == 0 && pwd_results != nullptr) -+ { -+ if (!usernames.empty() && usernames.find(pwd_results->pw_name) == usernames.end()) -+ { -+ continue; -+ } -+ else if (!uids.empty() && uids.find(pwd_results->pw_uid) == uids.end()) -+ { -+ continue; -+ } -+ -+ results.push_back(genUserJson(pwd_results, true)); -+ } -+ -+ m_passwdWrapper->endpwent(); -+ -+ return results; -+} diff --git a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_wrappers_unix-iutmpx_wrapper.hpp b/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_wrappers_unix-iutmpx_wrapper.hpp deleted file mode 100644 index 2f646ad8c1d6..000000000000 --- a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_wrappers_unix-iutmpx_wrapper.hpp +++ /dev/null @@ -1,12 +0,0 @@ ---- src/data_provider/src/extended_sources/wrappers/unix/iutmpx_wrapper.hpp 2025-11-07 08:46:03.000000000 +0000 -+++ src/data_provider/src/extended_sources/wrappers/unix/iutmpx_wrapper.hpp 2026-01-12 14:51:47.552260000 +0000 -@@ -20,7 +20,9 @@ - - /// @brief Sets the utmpx file to be used by the library functions. - /// @param file Path to the utmpx file. -+#if !defined(__FreeBSD__) - virtual void utmpxname(const char* file) = 0; -+#endif - - /// @brief Resets the input stream to the beginning of the utmpx file. - virtual void setutxent() = 0; diff --git a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_wrappers_unix-utmpx_wrapper.hpp b/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_wrappers_unix-utmpx_wrapper.hpp deleted file mode 100644 index edf75f578f7b..000000000000 --- a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_wrappers_unix-utmpx_wrapper.hpp +++ /dev/null @@ -1,16 +0,0 @@ ---- src/data_provider/src/extended_sources/wrappers/unix/utmpx_wrapper.hpp 2025-11-07 08:46:03.000000000 +0000 -+++ src/data_provider/src/extended_sources/wrappers/unix/utmpx_wrapper.hpp 2026-01-12 14:51:47.552488000 +0000 -@@ -18,11 +18,12 @@ - public: - /// @brief Sets the utmpx file to be used by the library functions. - /// @param file Path to the utmpx file. -+#if !defined(__FreeBSD__) - void utmpxname(const char* file) override - { - ::utmpxname(file); - } -- -+#endif - /// @brief Resets the input stream to the beginning of the utmpx file. - void setutxent() override - { diff --git a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_wrappers_unix_freebsd-group_wrapper.hpp b/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_wrappers_unix_freebsd-group_wrapper.hpp deleted file mode 100644 index 57202254a120..000000000000 --- a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_wrappers_unix_freebsd-group_wrapper.hpp +++ /dev/null @@ -1,93 +0,0 @@ ---- /dev/null 2026-01-13 23:16:40.390101000 +0000 -+++ src/data_provider/src/extended_sources/wrappers/unix/freebsd/group_wrapper.hpp 2026-01-13 22:43:51.149572000 +0000 -@@ -0,0 +1,90 @@ -+/* Copyright (C) 2015, Wazuh Inc. -+ * All rights reserved. -+ * -+ * This program is free software; you can redistribute it -+ * and/or modify it under the terms of the GNU General Public -+ * License (version 2) as published by the FSF - Free Software -+ * Foundation. -+ */ -+ -+#pragma once -+ -+#include "igroup_wrapper.hpp" -+ -+#include <grp.h> -+#include <unistd.h> -+ -+/// @brief Wrapper class for group-related operations on FreeBSD systems. -+/// -+/// Provides methods to retrieve group lists and counts for users, allowing for dependency injection -+/// and easier testing. This class implements the IGroupWrapperFreeBSD interface and uses the system calls -+/// to interact with the group database. -+class GroupWrapperFreeBSD : public IGroupWrapperFreeBSD -+{ -+ public: -+ /// @brief Retrieves the group entry for a given group ID. -+ /// @param gid The group ID to search for. -+ /// @param resultbuf A pointer to a group structure where the result will be stored. -+ /// @param buffer A buffer to hold the string data for the group entry. -+ /// @param buflen The size of the buffer. -+ /// @param result A pointer to a group structure pointer that will point to the result. -+ /// @return 0 on success, or an error code on failure. -+ int getgrgid_r(gid_t gid, struct group* resultbuf, char* buffer, size_t buflen, struct group** result) const override -+ { -+ return ::getgrgid_r(gid, resultbuf, buffer, buflen, result); -+ } -+ -+ /// @brief Retrieves a group by its GID. -+ /// @param gid The group ID for which to retrieve the group structure. -+ /// @return A pointer to the group structure if found, or nullptr if not found. -+ struct group* getgrgid(gid_t gid) const override -+ { -+ return ::getgrgid(gid); -+ } -+ -+ /// @brief Retrieves the group entry for a given group name. -+ /// @param resultbuf A pointer to a group structure where the result will be stored. -+ /// @param buffer A buffer to hold the string data for the group entry. -+ /// @param buflen The size of the buffer. -+ /// @param result A pointer to a group structure pointer that will point to the result. -+ int getgrent_r(struct group* resultbuf, char* buffer, size_t buflen, struct group** result) const override -+ { -+ return ::getgrent_r(resultbuf, buffer, buflen, result); -+ } -+ -+ /// @brief Retrieves the next group entry from the group database. -+ /// @return A pointer to the next group structure, or nullptr if there are no more entries. -+ struct group* getgrent() const override -+ { -+ return ::getgrent(); -+ } -+ -+ /// @brief Rewind the group-file stream. -+ void setgrent() const override -+ { -+ ::setgrent(); -+ } -+ /// @brief Close the group-file stream. -+ void endgrent() const override -+ { -+ ::endgrent(); -+ } -+ /// @brief Retrieves a group by its name. -+ /// @param name The name of the group to retrieve. -+ /// @return A pointer to the group structure if found, or nullptr if not found. -+ struct group* getgrnam(const char* name) const override -+ { -+ return ::getgrnam(name); -+ } -+ -+ /// @brief Retrieves the list of groups for a user. -+ /// @param user The username for which to retrieve the group list. -+ /// @param group The primary group ID of the user. -+ /// @param groups Pointer to an array where the group IDs will be stored. -+ /// @param ngroups Pointer to an integer that indicates the size of the groups array. -+ /// @return The number of groups the user belongs to, or -1 on error. -+ int getgrouplist(const char* user, gid_t group, gid_t* groups, int* ngroups) const override -+ { -+ return ::getgrouplist(user, group, groups, ngroups); -+ } -+}; diff --git a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_wrappers_unix_freebsd-igroup_wrapper.hpp b/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_wrappers_unix_freebsd-igroup_wrapper.hpp deleted file mode 100644 index a62f2fa241fc..000000000000 --- a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_wrappers_unix_freebsd-igroup_wrapper.hpp +++ /dev/null @@ -1,70 +0,0 @@ ---- /dev/null 2026-01-13 23:16:28.442788000 +0000 -+++ src/data_provider/src/extended_sources/wrappers/unix/freebsd/igroup_wrapper.hpp 2026-01-13 22:43:51.149445000 +0000 -@@ -0,0 +1,67 @@ -+/* Copyright (C) 2015, Wazuh Inc. -+ * All rights reserved. -+ * -+ * This program is free software; you can redistribute it -+ * and/or modify it under the terms of the GNU General Public -+ * License (version 2) as published by the FSF - Free Software -+ * Foundation. -+ */ -+ -+#pragma once -+ -+#include <grp.h> -+ -+/// @brief Interface for group-related operations on FreeBSD systems. -+/// -+/// Provides methods to retrieve group lists and counts for users, allowing for dependency injection -+/// and easier testing. This interface abstracts the system calls used to interact with the group database. -+class IGroupWrapperFreeBSD -+{ -+ public: -+ /// @brief Default constructor. -+ virtual ~IGroupWrapperFreeBSD() = default; -+ -+ /// @brief Retrieves the group entry for a given group ID. -+ /// @param gid The group ID to search for. -+ /// @param resultbuf A pointer to a group structure where the result will be stored. -+ /// @param buffer A buffer to hold the string data for the group entry. -+ /// @param buflen The size of the buffer. -+ /// @param result A pointer to a group structure pointer that will point to the result. -+ /// @return 0 on success, or an error code on failure. -+ virtual int getgrgid_r(gid_t gid, struct group* resultbuf, char* buffer, size_t buflen, struct group** result) const = 0; -+ -+ /// @brief Retrieves the group entry for a given group name. -+ /// @param resultbuf A pointer to a group structure where the result will be stored. -+ /// @param buffer A buffer to hold the string data for the group entry. -+ /// @param buflen The size of the buffer. -+ /// @param result A pointer to a group structure pointer that will point to the result. -+ virtual int getgrent_r(struct group* resultbuf, char* buffer, size_t buflen, struct group** result) const = 0; -+ -+ /// @brief Retrieves a group by its GID. -+ /// @param gid The group ID for which to retrieve the group structure. -+ /// @return A pointer to the group structure if found, or nullptr if not found. -+ virtual struct group* getgrgid(gid_t gid) const = 0; -+ -+ /// @brief Retrieves the next group entry from the group database. -+ /// @return A pointer to the next group structure, or nullptr if there are no more entries -+ virtual struct group* getgrent() const = 0; -+ -+ /// @brief Rewind the group-file stream. -+ virtual void setgrent() const = 0; -+ -+ /// @brief Close the group-file stream. -+ virtual void endgrent() const = 0; -+ -+ /// @brief Retrieves a group by its name. -+ /// @param name The name of the group to retrieve. -+ /// @return A pointer to the group structure if found, or nullptr if not found. -+ virtual struct group* getgrnam(const char* name) const = 0; -+ -+ /// @brief Retrieves the list of groups for a user. -+ /// @param user The username for which to retrieve the group list. -+ /// @param group The primary group ID of the user. -+ /// @param groups Pointer to an array where the group IDs will be stored. -+ /// @param ngroups Pointer to an integer that indicates the size of the groups array. -+ /// @return The number of groups the user belongs to, or -1 on error. -+ virtual int getgrouplist(const char* user, gid_t group, gid_t* groups, int* ngroups) const = 0; -+}; diff --git a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_wrappers_unix_freebsd-ipasswd_wrapper.hpp b/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_wrappers_unix_freebsd-ipasswd_wrapper.hpp deleted file mode 100644 index a2119a381499..000000000000 --- a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_wrappers_unix_freebsd-ipasswd_wrapper.hpp +++ /dev/null @@ -1,72 +0,0 @@ ---- /dev/null 2026-01-13 23:17:10.457712000 +0000 -+++ src/data_provider/src/extended_sources/wrappers/unix/freebsd/ipasswd_wrapper.hpp 2026-01-13 22:43:51.149517000 +0000 -@@ -0,0 +1,69 @@ -+/* Copyright (C) 2015, Wazuh Inc. -+ * All rights reserved. -+ * -+ * This program is free software; you can redistribute it -+ * and/or modify it under the terms of the GNU General Public -+ * License (version 2) as published by the FSF - Free Software -+ * Foundation. -+ */ -+ -+#pragma once -+ -+#include <pwd.h> -+ -+// Interface for the pwd darwin wrapper -+class IPasswdWrapperFreeBSD -+{ -+ public: -+ /// Destructor -+ virtual ~IPasswdWrapperFreeBSD() = default; -+ -+ /// @brief Retrieves the passwd entry for the given username. -+ /// @param name The username to search for. -+ /// @return A pointer to the passwd structure, or nullptr if not found. -+ virtual struct passwd* getpwnam(const char* name) = 0; -+ -+ /// @brief Retrieves the passwd entry for the given user ID. -+ /// @param uid The user ID to search for. -+ /// @return A pointer to the passwd structure, or nullptr if not found. -+ virtual struct passwd* getpwuid(uid_t uid) = 0; -+ -+ /// @brief Retrieves the passwd entry for the given user ID. -+ /// @param uid User ID to search. -+ /// @param pwd Pointer to a passwd structure to fill. -+ /// @param buf Buffer used to store string fields. -+ /// @param buflen Size of the buffer. -+ /// @param result Pointer to store the result (null if not found). -+ /// @return 0 on success, or an error number on failure. -+ virtual int getpwuid_r(uid_t uid, struct passwd* pwd, -+ char* buf, size_t buflen, struct passwd** result) = 0; -+ -+ /// @brief Retrieves the passwd entry for the given username. -+ /// @param name Username to search. -+ /// @param pwd Pointer to a passwd structure to fill. -+ /// @param buf Buffer used to store string fields. -+ /// @param buflen Size of the buffer. -+ /// @param result Pointer to store the result (null if not found). -+ /// @return 0 on success, or an error number on failure. -+ virtual int getpwnam_r(const char* name, struct passwd* pwd, -+ char* buf, size_t buflen, struct passwd** result) = 0; -+ -+ /// @brief Rewinds the passwd database to the beginning. -+ virtual void setpwent() = 0; -+ -+ /// @brief Retrieves the next entry from the passwd database. -+ /// @return A pointer to the passwd structure, or nullptr if no more entries. -+ virtual struct passwd* getpwent() = 0; -+ -+ /// @brief Retrieves the next entry from the passwd database. -+ /// @param pwd Pointer to a passwd structure to fill. -+ /// @param buf Buffer used to store string fields. -+ /// @param buflen Size of the buffer. -+ /// @param result Pointer to store the result (null if not found). -+ /// @return 0 on success, or an error number on failure. -+ virtual int getpwent_r(struct passwd* pwd, char* buf, -+ size_t buflen, struct passwd** result) = 0; -+ -+ /// @brief Closes the passwd database. -+ virtual void endpwent() = 0; -+}; diff --git a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_wrappers_unix_freebsd-passwd_wrapper.hpp b/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_wrappers_unix_freebsd-passwd_wrapper.hpp deleted file mode 100644 index 9d12098e14f5..000000000000 --- a/security/wazuh-agent/files/patch-src_data__provider_src_extended__sources_wrappers_unix_freebsd-passwd_wrapper.hpp +++ /dev/null @@ -1,96 +0,0 @@ ---- /dev/null 2026-01-13 23:17:03.875999000 +0000 -+++ src/data_provider/src/extended_sources/wrappers/unix/freebsd/passwd_wrapper.hpp 2026-01-13 22:43:51.149624000 +0000 -@@ -0,0 +1,93 @@ -+/* Copyright (C) 2015, Wazuh Inc. -+ * All rights reserved. -+ * -+ * This program is free software; you can redistribute it -+ * and/or modify it under the terms of the GNU General Public -+ * License (version 2) as published by the FSF - Free Software -+ * Foundation. -+ */ -+ -+#pragma once -+ -+#include "ipasswd_wrapper.hpp" -+ -+/// @brief Wrapper class for FreeBSD-specific passwd database access. -+/// -+/// Encapsulates system calls used to retrieve user information on FreeBSD, -+/// allowing for dependency injection and easier testing. -+class PasswdWrapperFreeBSD : public IPasswdWrapperFreeBSD -+{ -+ public: -+ /// @brief Retrieves the passwd entry for the given username. -+ /// @param name The username to search for. -+ /// @return A pointer to the passwd structure, or nullptr if not found. -+ struct passwd* getpwnam(const char* name) override -+ { -+ return ::getpwnam(name); -+ } -+ -+ /// @brief Retrieves the passwd entry for the given user ID. -+ /// @param uid The user ID to search for. -+ /// @return A pointer to the passwd structure, or nullptr if not found. -+ struct passwd* getpwuid(uid_t uid) override -+ { -+ return ::getpwuid(uid); -+ } -+ -+ /// @brief Retrieves the passwd entry for the given user ID. -+ /// @param uid User ID to search. -+ /// @param pwd Pointer to a passwd structure to fill. -+ /// @param buf Buffer used to store string fields. -+ /// @param buflen Size of the buffer. -+ /// @param result Pointer to store the result (null if not found). -+ /// @return 0 on success, or an error number on failure. -+ int getpwuid_r(uid_t uid, struct passwd* pwd, -+ char* buf, size_t buflen, struct passwd** result) override -+ { -+ return ::getpwuid_r(uid, pwd, buf, buflen, result); -+ } -+ -+ /// @brief Retrieves the passwd entry for the given username. -+ /// @param name Username to search. -+ /// @param pwd Pointer to a passwd structure to fill. -+ /// @param buf Buffer used to store string fields. -+ /// @param buflen Size of the buffer. -+ /// @param result Pointer to store the result (null if not found). -+ /// @return 0 on success, or an error number on failure. -+ int getpwnam_r(const char* name, struct passwd* pwd, -+ char* buf, size_t buflen, struct passwd** result) override -+ { -+ return ::getpwnam_r(name, pwd, buf, buflen, result); -+ } -+ -+ /// @brief Rewinds the passwd database to the beginning. -+ void setpwent() override -+ { -+ ::setpwent(); -+ } -+ -+ /// @brief Retrieves the next entry from the passwd database. -+ /// @return A pointer to the passwd structure, or nullptr if no more entries. -+ struct passwd* getpwent() override -+ { -+ return ::getpwent(); -+ } -+ -+ /// @brief Retrieves the next entry from the passwd database. -+ /// @param pwd Pointer to a passwd structure to fill. -+ /// @param buf Buffer used to store string fields. -+ /// @param buflen Size of the buffer. -+ /// @param result Pointer to store the result (null if not found). -+ /// @return 0 on success, or an error number on failure. -+ int getpwent_r(struct passwd* pwd, char* buf, -+ size_t buflen, struct passwd** result) override -+ { -+ return ::getpwent_r(pwd, buf, buflen, result); -+ } -+ -+ /// @brief Closes the passwd database. -+ void endpwent() override -+ { -+ ::endpwent(); -+ } -+}; diff --git a/security/wazuh-agent/files/patch-src_rootcheck_os__string.c b/security/wazuh-agent/files/patch-src_rootcheck_os__string.c deleted file mode 100644 index 66abbf1337ef..000000000000 --- a/security/wazuh-agent/files/patch-src_rootcheck_os__string.c +++ /dev/null @@ -1,12 +0,0 @@ ---- src/rootcheck/os_string.c.orig 2023-05-24 19:23:05 UTC -+++ src/rootcheck/os_string.c -@@ -42,6 +42,9 @@ - #include <locale.h> - #include <unistd.h> - #include <netinet/in.h> -+#ifdef __FreeBSD__ -+#define __LDPGSZ 4096 -+#endif - - #ifdef SOLARIS - #include <sys/exechdr.h> diff --git a/security/wazuh-agent/files/patch-src_shared__modules_dbsync_CMakeLists.txt b/security/wazuh-agent/files/patch-src_shared__modules_dbsync_CMakeLists.txt deleted file mode 100644 index bccee7e55036..000000000000 --- a/security/wazuh-agent/files/patch-src_shared__modules_dbsync_CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ ---- src/shared_modules/dbsync/CMakeLists.txt.orig 2023-05-24 19:23:05 UTC -+++ src/shared_modules/dbsync/CMakeLists.txt -@@ -70,7 +70,7 @@ elseif(UNIX AND NOT APPLE) - endif(NOT CMAKE_SYSTEM_NAME STREQUAL "AIX") - endif(CMAKE_SYSTEM_NAME STREQUAL "Windows") - --target_link_libraries(dbsync wazuhext) -+target_link_libraries(dbsync nghttp2 wazuhext) - - if(CMAKE_BUILD_TYPE STREQUAL "Release") - if(CMAKE_SYSTEM_NAME STREQUAL "AIX") diff --git a/security/wazuh-agent/files/patch-src_shared__modules_rsync_CMakeLists.txt b/security/wazuh-agent/files/patch-src_shared__modules_rsync_CMakeLists.txt deleted file mode 100644 index 12123313fe3b..000000000000 --- a/security/wazuh-agent/files/patch-src_shared__modules_rsync_CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ ---- src/shared_modules/rsync/CMakeLists.txt.orig 2023-05-24 19:23:05 UTC -+++ src/shared_modules/rsync/CMakeLists.txt -@@ -72,7 +72,7 @@ elseif(UNIX AND NOT APPLE) - endif(NOT CMAKE_SYSTEM_NAME STREQUAL "AIX") - endif(CMAKE_SYSTEM_NAME STREQUAL "Windows") - --target_link_libraries(rsync dbsync wazuhext) -+target_link_libraries(rsync nghttp2 dbsync wazuhext) - - if(CMAKE_BUILD_TYPE STREQUAL "Release") - if(CMAKE_SYSTEM_NAME STREQUAL "AIX") diff --git a/security/wazuh-agent/files/patch-src_syscheckd_src_db_CMakeLists.txt b/security/wazuh-agent/files/patch-src_syscheckd_src_db_CMakeLists.txt deleted file mode 100644 index 461f3beeb586..000000000000 --- a/security/wazuh-agent/files/patch-src_syscheckd_src_db_CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ ---- src/syscheckd/src/db/CMakeLists.txt 2025-05-11 01:12:38.188450000 -0700 -+++ src/syscheckd/src/db/CMakeLists.txt 2025-05-11 01:13:28.349743000 -0700 -@@ -64,7 +64,7 @@ - endif(CMAKE_SYSTEM_NAME STREQUAL "Windows") - - if(NOT CMAKE_SYSTEM_NAME STREQUAL "AIX") -- target_link_libraries(fimdb dbsync rsync wazuhext) -+ target_link_libraries(fimdb dbsync ${SRC_FOLDER}/shared_modules/rsync/build/lib/librsync.so wazuhext) - else() - target_link_libraries( - fimdb diff --git a/security/wazuh-agent/files/patch-src_wazuh__modules_syscollector_CMakeLists.txt b/security/wazuh-agent/files/patch-src_wazuh__modules_syscollector_CMakeLists.txt deleted file mode 100644 index bcff4dfa9ce1..000000000000 --- a/security/wazuh-agent/files/patch-src_wazuh__modules_syscollector_CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ ---- src/wazuh_modules/syscollector/CMakeLists.txt.orig 2023-05-24 19:23:05 UTC -+++ src/wazuh_modules/syscollector/CMakeLists.txt -@@ -90,7 +90,7 @@ elseif(UNIX AND NOT APPLE) - endif(CMAKE_SYSTEM_NAME STREQUAL "Windows") - - if(NOT CMAKE_SYSTEM_NAME STREQUAL "AIX") -- target_link_libraries(syscollector dbsync rsync sysinfo wazuhext) -+ target_link_libraries(syscollector dbsync ${SRC_FOLDER}/shared_modules/rsync/build/lib/librsync.so ${SRC_FOLDER}/data_provider/build/lib/libsysinfo.so nghttp2 wazuhext) - else() - string(REPLACE ";" ":" CXX_IMPLICIT_LINK_DIRECTORIES_STR "${CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES}") - string(REPLACE ";" ":" PLATFORM_REQUIRED_RUNTIME_PATH_STR "${CMAKE_PLATFORM_REQUIRED_RUNTIME_PATH}") diff --git a/security/wazuh-agent/files/patch-tools_mitre_mitredb.py b/security/wazuh-agent/files/patch-tools_mitre_mitredb.py deleted file mode 100644 index 4af4d5e375f7..000000000000 --- a/security/wazuh-agent/files/patch-tools_mitre_mitredb.py +++ /dev/null @@ -1,16 +0,0 @@ ---- tools/mitre/mitredb.py.orig 2023-05-24 19:23:05 UTC -+++ tools/mitre/mitredb.py -@@ -766,13 +766,6 @@ def main(database=None): - # Parse enterprise-attack.json file: - parse_json(pathfile, session, database) - -- # User and group permissions -- os.chmod(database, 0o660) -- uid = pwd.getpwnam("root").pw_uid -- gid = grp.getgrnam("wazuh").gr_gid -- os.chown(database, uid, gid) -- -- - if __name__ == '__main__': - parser = argparse.ArgumentParser(description='This script installs mitre.db in a directory.') - parser.add_argument('--database', '-d', help='-d /your/directory/mitre.db (default: /var/ossec/var/db/mitre.db') diff --git a/security/wazuh-dashboard/Makefile b/security/wazuh-dashboard/Makefile index 1c27af87d6a6..65eb4d53b002 100644 --- a/security/wazuh-dashboard/Makefile +++ b/security/wazuh-dashboard/Makefile @@ -1,6 +1,6 @@ PORTNAME= wazuh DISTVERSIONPREFIX= v -DISTVERSION= 4.14.1 +DISTVERSION= 4.14.2 CATEGORIES= security MASTER_SITES= LOCAL/acm/${PORTNAME}/ PKGNAMESUFFIX= -dashboard @@ -20,7 +20,7 @@ NO_BUILD= yes SUB_FILES= pkg-message -OPENSEARCH_VERSION= 2.19.3 +OPENSEARCH_VERSION= 2.19.4 ETCDIR= ${PREFIX}/etc/wazuh-dashboard WRKSRC= ${WRKDIR}/${PORTNAME}${PKGNAMESUFFIX}-plugins diff --git a/security/wazuh-dashboard/distinfo b/security/wazuh-dashboard/distinfo index 40c3e8c3779c..7b17bbe6ba39 100644 --- a/security/wazuh-dashboard/distinfo +++ b/security/wazuh-dashboard/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1763762877 -SHA256 (wazuh-4.14.1/wazuh-dashboard-plugins-4.14.1-2.19.3.tar.gz) = 2c5d65af08784a87dafcf752c2d0997246771fb82e04fb5bcca53c4ef1193683 -SIZE (wazuh-4.14.1/wazuh-dashboard-plugins-4.14.1-2.19.3.tar.gz) = 24303218 -SHA256 (wazuh-4.14.1/opensearch_dashboards.yml) = 88affe6dab2e1299b6f8b5264e6dd9ea1aa42885f3aefb8822fe559f2b6bb5d5 -SIZE (wazuh-4.14.1/opensearch_dashboards.yml) = 806 +TIMESTAMP = 1768547121 +SHA256 (wazuh-4.14.2/wazuh-dashboard-plugins-4.14.2-2.19.4.tar.gz) = 4e7e2b779cef9a53aa582e4f619481890af085c846508fa8b1644250c12c118c +SIZE (wazuh-4.14.2/wazuh-dashboard-plugins-4.14.2-2.19.4.tar.gz) = 24665721 +SHA256 (wazuh-4.14.2/opensearch_dashboards.yml) = 88affe6dab2e1299b6f8b5264e6dd9ea1aa42885f3aefb8822fe559f2b6bb5d5 +SIZE (wazuh-4.14.2/opensearch_dashboards.yml) = 806 diff --git a/security/wazuh-dashboard/pkg-plist b/security/wazuh-dashboard/pkg-plist index edc95ce0e57a..b15845328190 100644 --- a/security/wazuh-dashboard/pkg-plist +++ b/security/wazuh-dashboard/pkg-plist @@ -547,6 +547,7 @@ www/opensearch-dashboards/plugins/wazuh/node_modules/axios/lib/helpers/combineUR www/opensearch-dashboards/plugins/wazuh/node_modules/axios/lib/helpers/composeSignals.js www/opensearch-dashboards/plugins/wazuh/node_modules/axios/lib/helpers/cookies.js www/opensearch-dashboards/plugins/wazuh/node_modules/axios/lib/helpers/deprecatedMethod.js +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js www/opensearch-dashboards/plugins/wazuh/node_modules/axios/lib/helpers/formDataToJSON.js www/opensearch-dashboards/plugins/wazuh/node_modules/axios/lib/helpers/formDataToStream.js www/opensearch-dashboards/plugins/wazuh/node_modules/axios/lib/helpers/fromDataURI.js @@ -576,14 +577,104 @@ www/opensearch-dashboards/plugins/wazuh/node_modules/axios/lib/platform/node/cla www/opensearch-dashboards/plugins/wazuh/node_modules/axios/lib/platform/node/classes/URLSearchParams.js www/opensearch-dashboards/plugins/wazuh/node_modules/axios/lib/platform/node/index.js www/opensearch-dashboards/plugins/wazuh/node_modules/axios/lib/utils.js +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-define-property/.eslintrc +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-define-property/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-define-property/.nycrc +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-define-property/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-define-property/LICENSE +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-define-property/README.md +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-define-property/index.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-define-property/index.js +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-define-property/package.json +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-define-property/test/index.js +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-define-property/tsconfig.json +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-object-atoms/.eslintrc +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-object-atoms/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-object-atoms/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-object-atoms/LICENSE +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-object-atoms/README.md +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-object-atoms/RequireObjectCoercible.js +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-object-atoms/ToObject.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-object-atoms/ToObject.js +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-object-atoms/index.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-object-atoms/index.js +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-object-atoms/isObject.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-object-atoms/isObject.js +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-object-atoms/package.json +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-object-atoms/test/index.js +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-object-atoms/tsconfig.json +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-set-tostringtag/.eslintrc +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-set-tostringtag/.nycrc +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-set-tostringtag/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-set-tostringtag/LICENSE +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-set-tostringtag/README.md +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-set-tostringtag/index.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-set-tostringtag/index.js +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-set-tostringtag/package.json +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-set-tostringtag/test/index.js +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/es-set-tostringtag/tsconfig.json +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/form-data/CHANGELOG.md www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/form-data/License -www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/form-data/README.md.bak -www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/form-data/Readme.md +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/form-data/README.md www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/form-data/index.d.ts www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/form-data/lib/browser.js www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/form-data/lib/form_data.js www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/form-data/lib/populate.js www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/form-data/package.json +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/get-intrinsic/.eslintrc +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/get-intrinsic/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/get-intrinsic/.nycrc +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/get-intrinsic/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/get-intrinsic/LICENSE +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/get-intrinsic/README.md +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/get-intrinsic/index.js +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/get-intrinsic/node_modules/has-symbols/.eslintrc +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/get-intrinsic/node_modules/has-symbols/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/get-intrinsic/node_modules/has-symbols/.nycrc +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/get-intrinsic/node_modules/has-symbols/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/get-intrinsic/node_modules/has-symbols/LICENSE +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/get-intrinsic/node_modules/has-symbols/README.md +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/get-intrinsic/node_modules/has-symbols/index.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/get-intrinsic/node_modules/has-symbols/index.js +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/get-intrinsic/node_modules/has-symbols/package.json +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/get-intrinsic/node_modules/has-symbols/shams.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/get-intrinsic/node_modules/has-symbols/shams.js +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/get-intrinsic/node_modules/has-symbols/test/index.js +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/get-intrinsic/node_modules/has-symbols/test/shams/core-js.js +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/get-intrinsic/node_modules/has-symbols/test/shams/get-own-property-symbols.js +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/get-intrinsic/node_modules/has-symbols/test/tests.js +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/get-intrinsic/node_modules/has-symbols/tsconfig.json +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/get-intrinsic/package.json +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/get-intrinsic/test/GetIntrinsic.js +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/gopd/.eslintrc +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/gopd/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/gopd/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/gopd/LICENSE +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/gopd/README.md +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/gopd/gOPD.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/gopd/gOPD.js +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/gopd/index.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/gopd/index.js +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/gopd/package.json +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/gopd/test/index.js +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/gopd/tsconfig.json +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/has-tostringtag/.eslintrc +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/has-tostringtag/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/has-tostringtag/.nycrc +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/has-tostringtag/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/has-tostringtag/LICENSE +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/has-tostringtag/README.md +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/has-tostringtag/index.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/has-tostringtag/index.js +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/has-tostringtag/package.json +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/has-tostringtag/shams.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/has-tostringtag/shams.js +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/has-tostringtag/test/index.js +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/has-tostringtag/test/shams/core-js.js +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/has-tostringtag/test/shams/get-own-property-symbols.js +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/has-tostringtag/test/tests.js +www/opensearch-dashboards/plugins/wazuh/node_modules/axios/node_modules/has-tostringtag/tsconfig.json www/opensearch-dashboards/plugins/wazuh/node_modules/axios/package.json www/opensearch-dashboards/plugins/wazuh/node_modules/base64-js/LICENSE www/opensearch-dashboards/plugins/wazuh/node_modules/base64-js/README.md @@ -873,6 +964,27 @@ www/opensearch-dashboards/plugins/wazuh/node_modules/buffer-from/LICENSE www/opensearch-dashboards/plugins/wazuh/node_modules/buffer-from/index.js www/opensearch-dashboards/plugins/wazuh/node_modules/buffer-from/package.json www/opensearch-dashboards/plugins/wazuh/node_modules/buffer-from/readme.md +www/opensearch-dashboards/plugins/wazuh/node_modules/call-bind-apply-helpers/.eslintrc +www/opensearch-dashboards/plugins/wazuh/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuh/node_modules/call-bind-apply-helpers/.nycrc +www/opensearch-dashboards/plugins/wazuh/node_modules/call-bind-apply-helpers/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuh/node_modules/call-bind-apply-helpers/LICENSE +www/opensearch-dashboards/plugins/wazuh/node_modules/call-bind-apply-helpers/README.md +www/opensearch-dashboards/plugins/wazuh/node_modules/call-bind-apply-helpers/actualApply.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/call-bind-apply-helpers/actualApply.js +www/opensearch-dashboards/plugins/wazuh/node_modules/call-bind-apply-helpers/applyBind.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/call-bind-apply-helpers/applyBind.js +www/opensearch-dashboards/plugins/wazuh/node_modules/call-bind-apply-helpers/functionApply.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/call-bind-apply-helpers/functionApply.js +www/opensearch-dashboards/plugins/wazuh/node_modules/call-bind-apply-helpers/functionCall.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/call-bind-apply-helpers/functionCall.js +www/opensearch-dashboards/plugins/wazuh/node_modules/call-bind-apply-helpers/index.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/call-bind-apply-helpers/index.js +www/opensearch-dashboards/plugins/wazuh/node_modules/call-bind-apply-helpers/package.json +www/opensearch-dashboards/plugins/wazuh/node_modules/call-bind-apply-helpers/reflectApply.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/call-bind-apply-helpers/reflectApply.js +www/opensearch-dashboards/plugins/wazuh/node_modules/call-bind-apply-helpers/test/index.js +www/opensearch-dashboards/plugins/wazuh/node_modules/call-bind-apply-helpers/tsconfig.json www/opensearch-dashboards/plugins/wazuh/node_modules/call-bind/.eslintignore www/opensearch-dashboards/plugins/wazuh/node_modules/call-bind/.eslintrc www/opensearch-dashboards/plugins/wazuh/node_modules/call-bind/.github/FUNDING.yml @@ -920,6 +1032,11 @@ www/opensearch-dashboards/plugins/wazuh/node_modules/convert-source-map/LICENSE www/opensearch-dashboards/plugins/wazuh/node_modules/convert-source-map/README.md www/opensearch-dashboards/plugins/wazuh/node_modules/convert-source-map/index.js www/opensearch-dashboards/plugins/wazuh/node_modules/convert-source-map/package.json +www/opensearch-dashboards/plugins/wazuh/node_modules/cookie/LICENSE +www/opensearch-dashboards/plugins/wazuh/node_modules/cookie/README.md +www/opensearch-dashboards/plugins/wazuh/node_modules/cookie/SECURITY.md +www/opensearch-dashboards/plugins/wazuh/node_modules/cookie/index.js +www/opensearch-dashboards/plugins/wazuh/node_modules/cookie/package.json www/opensearch-dashboards/plugins/wazuh/node_modules/core-util-is/LICENSE www/opensearch-dashboards/plugins/wazuh/node_modules/core-util-is/README.md www/opensearch-dashboards/plugins/wazuh/node_modules/core-util-is/lib/util.js @@ -1348,10 +1465,73 @@ www/opensearch-dashboards/plugins/wazuh/node_modules/dompurify/dist/purify.js.ma www/opensearch-dashboards/plugins/wazuh/node_modules/dompurify/dist/purify.min.js www/opensearch-dashboards/plugins/wazuh/node_modules/dompurify/dist/purify.min.js.map www/opensearch-dashboards/plugins/wazuh/node_modules/dompurify/package.json +www/opensearch-dashboards/plugins/wazuh/node_modules/dunder-proto/.eslintrc +www/opensearch-dashboards/plugins/wazuh/node_modules/dunder-proto/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuh/node_modules/dunder-proto/.nycrc +www/opensearch-dashboards/plugins/wazuh/node_modules/dunder-proto/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuh/node_modules/dunder-proto/LICENSE +www/opensearch-dashboards/plugins/wazuh/node_modules/dunder-proto/README.md +www/opensearch-dashboards/plugins/wazuh/node_modules/dunder-proto/get.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/dunder-proto/get.js +www/opensearch-dashboards/plugins/wazuh/node_modules/dunder-proto/node_modules/gopd/.eslintrc +www/opensearch-dashboards/plugins/wazuh/node_modules/dunder-proto/node_modules/gopd/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuh/node_modules/dunder-proto/node_modules/gopd/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuh/node_modules/dunder-proto/node_modules/gopd/LICENSE +www/opensearch-dashboards/plugins/wazuh/node_modules/dunder-proto/node_modules/gopd/README.md +www/opensearch-dashboards/plugins/wazuh/node_modules/dunder-proto/node_modules/gopd/gOPD.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/dunder-proto/node_modules/gopd/gOPD.js +www/opensearch-dashboards/plugins/wazuh/node_modules/dunder-proto/node_modules/gopd/index.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/dunder-proto/node_modules/gopd/index.js +www/opensearch-dashboards/plugins/wazuh/node_modules/dunder-proto/node_modules/gopd/package.json +www/opensearch-dashboards/plugins/wazuh/node_modules/dunder-proto/node_modules/gopd/test/index.js +www/opensearch-dashboards/plugins/wazuh/node_modules/dunder-proto/node_modules/gopd/tsconfig.json +www/opensearch-dashboards/plugins/wazuh/node_modules/dunder-proto/package.json +www/opensearch-dashboards/plugins/wazuh/node_modules/dunder-proto/set.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/dunder-proto/set.js +www/opensearch-dashboards/plugins/wazuh/node_modules/dunder-proto/test/get.js +www/opensearch-dashboards/plugins/wazuh/node_modules/dunder-proto/test/index.js +www/opensearch-dashboards/plugins/wazuh/node_modules/dunder-proto/test/set.js +www/opensearch-dashboards/plugins/wazuh/node_modules/dunder-proto/tsconfig.json www/opensearch-dashboards/plugins/wazuh/node_modules/duplexer2/LICENSE.md www/opensearch-dashboards/plugins/wazuh/node_modules/duplexer2/README.md www/opensearch-dashboards/plugins/wazuh/node_modules/duplexer2/index.js www/opensearch-dashboards/plugins/wazuh/node_modules/duplexer2/package.json +www/opensearch-dashboards/plugins/wazuh/node_modules/es-errors/.eslintrc +www/opensearch-dashboards/plugins/wazuh/node_modules/es-errors/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuh/node_modules/es-errors/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuh/node_modules/es-errors/LICENSE +www/opensearch-dashboards/plugins/wazuh/node_modules/es-errors/README.md +www/opensearch-dashboards/plugins/wazuh/node_modules/es-errors/eval.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/es-errors/eval.js +www/opensearch-dashboards/plugins/wazuh/node_modules/es-errors/index.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/es-errors/index.js +www/opensearch-dashboards/plugins/wazuh/node_modules/es-errors/package.json +www/opensearch-dashboards/plugins/wazuh/node_modules/es-errors/range.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/es-errors/range.js +www/opensearch-dashboards/plugins/wazuh/node_modules/es-errors/ref.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/es-errors/ref.js +www/opensearch-dashboards/plugins/wazuh/node_modules/es-errors/syntax.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/es-errors/syntax.js +www/opensearch-dashboards/plugins/wazuh/node_modules/es-errors/test/index.js +www/opensearch-dashboards/plugins/wazuh/node_modules/es-errors/tsconfig.json +www/opensearch-dashboards/plugins/wazuh/node_modules/es-errors/type.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/es-errors/type.js +www/opensearch-dashboards/plugins/wazuh/node_modules/es-errors/uri.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/es-errors/uri.js +www/opensearch-dashboards/plugins/wazuh/node_modules/es-object-atoms/.eslintrc +www/opensearch-dashboards/plugins/wazuh/node_modules/es-object-atoms/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuh/node_modules/es-object-atoms/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuh/node_modules/es-object-atoms/LICENSE +www/opensearch-dashboards/plugins/wazuh/node_modules/es-object-atoms/README.md +www/opensearch-dashboards/plugins/wazuh/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/es-object-atoms/RequireObjectCoercible.js +www/opensearch-dashboards/plugins/wazuh/node_modules/es-object-atoms/ToObject.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/es-object-atoms/ToObject.js +www/opensearch-dashboards/plugins/wazuh/node_modules/es-object-atoms/index.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/es-object-atoms/index.js +www/opensearch-dashboards/plugins/wazuh/node_modules/es-object-atoms/package.json +www/opensearch-dashboards/plugins/wazuh/node_modules/es-object-atoms/test/index.js +www/opensearch-dashboards/plugins/wazuh/node_modules/es-object-atoms/tsconfig.json www/opensearch-dashboards/plugins/wazuh/node_modules/es5-ext/CHANGELOG.md www/opensearch-dashboards/plugins/wazuh/node_modules/es5-ext/LICENSE www/opensearch-dashboards/plugins/wazuh/node_modules/es5-ext/README.md @@ -2034,6 +2214,18 @@ www/opensearch-dashboards/plugins/wazuh/node_modules/form-data/lib/browser.js www/opensearch-dashboards/plugins/wazuh/node_modules/form-data/lib/form_data.js www/opensearch-dashboards/plugins/wazuh/node_modules/form-data/lib/populate.js www/opensearch-dashboards/plugins/wazuh/node_modules/form-data/package.json +www/opensearch-dashboards/plugins/wazuh/node_modules/function-bind/.eslintrc +www/opensearch-dashboards/plugins/wazuh/node_modules/function-bind/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuh/node_modules/function-bind/.github/SECURITY.md +www/opensearch-dashboards/plugins/wazuh/node_modules/function-bind/.nycrc +www/opensearch-dashboards/plugins/wazuh/node_modules/function-bind/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuh/node_modules/function-bind/LICENSE +www/opensearch-dashboards/plugins/wazuh/node_modules/function-bind/README.md +www/opensearch-dashboards/plugins/wazuh/node_modules/function-bind/implementation.js +www/opensearch-dashboards/plugins/wazuh/node_modules/function-bind/index.js +www/opensearch-dashboards/plugins/wazuh/node_modules/function-bind/package.json +www/opensearch-dashboards/plugins/wazuh/node_modules/function-bind/test/.eslintrc +www/opensearch-dashboards/plugins/wazuh/node_modules/function-bind/test/index.js www/opensearch-dashboards/plugins/wazuh/node_modules/functions-have-names/.editorconfig www/opensearch-dashboards/plugins/wazuh/node_modules/functions-have-names/.eslintrc www/opensearch-dashboards/plugins/wazuh/node_modules/functions-have-names/.github/FUNDING.yml @@ -2072,6 +2264,21 @@ www/opensearch-dashboards/plugins/wazuh/node_modules/get-intrinsic/node_modules/ www/opensearch-dashboards/plugins/wazuh/node_modules/get-intrinsic/node_modules/function-bind/test/index.js www/opensearch-dashboards/plugins/wazuh/node_modules/get-intrinsic/package.json www/opensearch-dashboards/plugins/wazuh/node_modules/get-intrinsic/test/GetIntrinsic.js +www/opensearch-dashboards/plugins/wazuh/node_modules/get-proto/.eslintrc +www/opensearch-dashboards/plugins/wazuh/node_modules/get-proto/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuh/node_modules/get-proto/.nycrc +www/opensearch-dashboards/plugins/wazuh/node_modules/get-proto/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuh/node_modules/get-proto/LICENSE +www/opensearch-dashboards/plugins/wazuh/node_modules/get-proto/Object.getPrototypeOf.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/get-proto/Object.getPrototypeOf.js +www/opensearch-dashboards/plugins/wazuh/node_modules/get-proto/README.md +www/opensearch-dashboards/plugins/wazuh/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/get-proto/Reflect.getPrototypeOf.js +www/opensearch-dashboards/plugins/wazuh/node_modules/get-proto/index.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/get-proto/index.js +www/opensearch-dashboards/plugins/wazuh/node_modules/get-proto/package.json +www/opensearch-dashboards/plugins/wazuh/node_modules/get-proto/test/index.js +www/opensearch-dashboards/plugins/wazuh/node_modules/get-proto/tsconfig.json www/opensearch-dashboards/plugins/wazuh/node_modules/has-property-descriptors/.eslintrc www/opensearch-dashboards/plugins/wazuh/node_modules/has-property-descriptors/.github/FUNDING.yml www/opensearch-dashboards/plugins/wazuh/node_modules/has-property-descriptors/.nycrc @@ -2131,6 +2338,16 @@ www/opensearch-dashboards/plugins/wazuh/node_modules/has/node_modules/function-b www/opensearch-dashboards/plugins/wazuh/node_modules/has/package.json www/opensearch-dashboards/plugins/wazuh/node_modules/has/src/index.js www/opensearch-dashboards/plugins/wazuh/node_modules/has/test/index.js +www/opensearch-dashboards/plugins/wazuh/node_modules/hasown/.eslintrc +www/opensearch-dashboards/plugins/wazuh/node_modules/hasown/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuh/node_modules/hasown/.nycrc +www/opensearch-dashboards/plugins/wazuh/node_modules/hasown/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuh/node_modules/hasown/LICENSE +www/opensearch-dashboards/plugins/wazuh/node_modules/hasown/README.md +www/opensearch-dashboards/plugins/wazuh/node_modules/hasown/index.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/hasown/index.js +www/opensearch-dashboards/plugins/wazuh/node_modules/hasown/package.json +www/opensearch-dashboards/plugins/wazuh/node_modules/hasown/tsconfig.json www/opensearch-dashboards/plugins/wazuh/node_modules/hoist-non-react-statics/CHANGELOG.md www/opensearch-dashboards/plugins/wazuh/node_modules/hoist-non-react-statics/LICENSE.md www/opensearch-dashboards/plugins/wazuh/node_modules/hoist-non-react-statics/README.md @@ -3881,6 +4098,44 @@ www/opensearch-dashboards/plugins/wazuh/node_modules/markdown-it-link-attributes www/opensearch-dashboards/plugins/wazuh/node_modules/markdown-it-link-attributes/dist/markdown-it-link-attributes.min.js www/opensearch-dashboards/plugins/wazuh/node_modules/markdown-it-link-attributes/index.js www/opensearch-dashboards/plugins/wazuh/node_modules/markdown-it-link-attributes/package.json +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/.eslintrc +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/LICENSE +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/README.md +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/abs.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/abs.js +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/constants/maxArrayLength.js +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/constants/maxSafeInteger.js +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/constants/maxValue.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/constants/maxValue.js +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/floor.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/floor.js +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/isFinite.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/isFinite.js +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/isInteger.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/isInteger.js +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/isNaN.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/isNaN.js +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/isNegativeZero.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/isNegativeZero.js +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/max.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/max.js +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/min.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/min.js +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/mod.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/mod.js +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/package.json +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/pow.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/pow.js +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/round.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/round.js +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/sign.d.ts +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/sign.js +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/test/index.js +www/opensearch-dashboards/plugins/wazuh/node_modules/math-intrinsics/tsconfig.json www/opensearch-dashboards/plugins/wazuh/node_modules/md5/.travis.yml www/opensearch-dashboards/plugins/wazuh/node_modules/md5/LICENSE www/opensearch-dashboards/plugins/wazuh/node_modules/md5/README.md @@ -4954,11 +5209,6 @@ www/opensearch-dashboards/plugins/wazuh/node_modules/universal-cookie/lib/types. www/opensearch-dashboards/plugins/wazuh/node_modules/universal-cookie/lib/types.js www/opensearch-dashboards/plugins/wazuh/node_modules/universal-cookie/lib/utils.d.ts www/opensearch-dashboards/plugins/wazuh/node_modules/universal-cookie/lib/utils.js -www/opensearch-dashboards/plugins/wazuh/node_modules/universal-cookie/node_modules/cookie/HISTORY.md -www/opensearch-dashboards/plugins/wazuh/node_modules/universal-cookie/node_modules/cookie/LICENSE -www/opensearch-dashboards/plugins/wazuh/node_modules/universal-cookie/node_modules/cookie/README.md -www/opensearch-dashboards/plugins/wazuh/node_modules/universal-cookie/node_modules/cookie/index.js -www/opensearch-dashboards/plugins/wazuh/node_modules/universal-cookie/node_modules/cookie/package.json www/opensearch-dashboards/plugins/wazuh/node_modules/universal-cookie/package.json www/opensearch-dashboards/plugins/wazuh/node_modules/universal-cookie/umd/universalCookie.js www/opensearch-dashboards/plugins/wazuh/node_modules/universal-cookie/umd/universalCookie.min.js @@ -5495,6 +5745,7 @@ www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/axios/lib/helpe www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/axios/lib/helpers/composeSignals.js www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/axios/lib/helpers/cookies.js www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/axios/lib/helpers/deprecatedMethod.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/axios/lib/helpers/formDataToJSON.js www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/axios/lib/helpers/formDataToStream.js www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/axios/lib/helpers/fromDataURI.js @@ -5525,6 +5776,27 @@ www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/axios/lib/platf www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/axios/lib/platform/node/index.js www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/axios/lib/utils.js www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/axios/package.json +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/call-bind-apply-helpers/.eslintrc +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/call-bind-apply-helpers/.nycrc +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/call-bind-apply-helpers/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/call-bind-apply-helpers/LICENSE +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/call-bind-apply-helpers/README.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/call-bind-apply-helpers/actualApply.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/call-bind-apply-helpers/actualApply.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/call-bind-apply-helpers/applyBind.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/call-bind-apply-helpers/applyBind.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/call-bind-apply-helpers/functionApply.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/call-bind-apply-helpers/functionApply.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/call-bind-apply-helpers/functionCall.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/call-bind-apply-helpers/functionCall.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/call-bind-apply-helpers/index.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/call-bind-apply-helpers/index.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/call-bind-apply-helpers/package.json +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/call-bind-apply-helpers/reflectApply.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/call-bind-apply-helpers/reflectApply.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/call-bind-apply-helpers/test/index.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/call-bind-apply-helpers/tsconfig.json www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/charenc/LICENSE.mkd www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/charenc/README.js www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/charenc/charenc.js @@ -5544,6 +5816,69 @@ www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/delayed-stream/ www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/delayed-stream/Readme.md www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/delayed-stream/lib/delayed_stream.js www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/delayed-stream/package.json +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/dunder-proto/.eslintrc +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/dunder-proto/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/dunder-proto/.nycrc +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/dunder-proto/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/dunder-proto/LICENSE +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/dunder-proto/README.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/dunder-proto/get.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/dunder-proto/get.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/dunder-proto/node_modules/gopd/.eslintrc +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/dunder-proto/node_modules/gopd/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/dunder-proto/node_modules/gopd/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/dunder-proto/node_modules/gopd/LICENSE +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/dunder-proto/node_modules/gopd/README.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/dunder-proto/node_modules/gopd/gOPD.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/dunder-proto/node_modules/gopd/gOPD.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/dunder-proto/node_modules/gopd/index.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/dunder-proto/node_modules/gopd/index.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/dunder-proto/node_modules/gopd/package.json +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/dunder-proto/node_modules/gopd/test/index.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/dunder-proto/node_modules/gopd/tsconfig.json +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/dunder-proto/package.json +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/dunder-proto/set.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/dunder-proto/set.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/dunder-proto/test/get.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/dunder-proto/test/index.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/dunder-proto/test/set.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/dunder-proto/tsconfig.json +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-errors/.eslintrc +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-errors/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-errors/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-errors/LICENSE +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-errors/README.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-errors/eval.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-errors/eval.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-errors/index.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-errors/index.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-errors/package.json +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-errors/range.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-errors/range.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-errors/ref.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-errors/ref.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-errors/syntax.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-errors/syntax.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-errors/test/index.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-errors/tsconfig.json +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-errors/type.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-errors/type.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-errors/uri.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-errors/uri.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-object-atoms/.eslintrc +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-object-atoms/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-object-atoms/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-object-atoms/LICENSE +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-object-atoms/README.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-object-atoms/RequireObjectCoercible.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-object-atoms/ToObject.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-object-atoms/ToObject.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-object-atoms/index.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-object-atoms/index.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-object-atoms/package.json +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-object-atoms/test/index.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/es-object-atoms/tsconfig.json www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/follow-redirects/LICENSE www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/follow-redirects/README.md www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/follow-redirects/debug.js @@ -5551,19 +5886,197 @@ www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/follow-redirect www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/follow-redirects/https.js www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/follow-redirects/index.js www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/follow-redirects/package.json +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/CHANGELOG.md www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/License -www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/README.md.bak -www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/Readme.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/README.md www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/index.d.ts www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/lib/browser.js www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/lib/form_data.js www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/lib/populate.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-define-property/.eslintrc +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-define-property/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-define-property/.nycrc +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-define-property/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-define-property/LICENSE +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-define-property/README.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-define-property/index.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-define-property/index.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-define-property/package.json +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-define-property/test/index.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-define-property/tsconfig.json +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-object-atoms/.eslintrc +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-object-atoms/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-object-atoms/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-object-atoms/LICENSE +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-object-atoms/README.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-object-atoms/RequireObjectCoercible.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-object-atoms/ToObject.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-object-atoms/ToObject.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-object-atoms/index.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-object-atoms/index.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-object-atoms/isObject.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-object-atoms/isObject.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-object-atoms/package.json +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-object-atoms/test/index.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-object-atoms/tsconfig.json +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-set-tostringtag/.eslintrc +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-set-tostringtag/.nycrc +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-set-tostringtag/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-set-tostringtag/LICENSE +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-set-tostringtag/README.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-set-tostringtag/index.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-set-tostringtag/index.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-set-tostringtag/package.json +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-set-tostringtag/test/index.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/es-set-tostringtag/tsconfig.json +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/get-intrinsic/.eslintrc +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/get-intrinsic/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/get-intrinsic/.nycrc +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/get-intrinsic/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/get-intrinsic/LICENSE +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/get-intrinsic/README.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/get-intrinsic/index.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/get-intrinsic/package.json +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/get-intrinsic/test/GetIntrinsic.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/gopd/.eslintrc +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/gopd/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/gopd/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/gopd/LICENSE +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/gopd/README.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/gopd/gOPD.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/gopd/gOPD.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/gopd/index.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/gopd/index.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/gopd/package.json +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/gopd/test/index.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/gopd/tsconfig.json +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/has-symbols/.eslintrc +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/has-symbols/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/has-symbols/.nycrc +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/has-symbols/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/has-symbols/LICENSE +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/has-symbols/README.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/has-symbols/index.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/has-symbols/index.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/has-symbols/package.json +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/has-symbols/shams.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/has-symbols/shams.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/has-symbols/test/index.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/has-symbols/test/shams/core-js.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/has-symbols/test/shams/get-own-property-symbols.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/has-symbols/test/tests.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/node_modules/has-symbols/tsconfig.json www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/form-data/package.json +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/function-bind/.eslintrc +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/function-bind/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/function-bind/.github/SECURITY.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/function-bind/.nycrc +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/function-bind/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/function-bind/LICENSE +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/function-bind/README.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/function-bind/implementation.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/function-bind/index.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/function-bind/package.json +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/function-bind/test/.eslintrc +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/function-bind/test/index.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/get-proto/.eslintrc +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/get-proto/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/get-proto/.nycrc +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/get-proto/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/get-proto/LICENSE +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/get-proto/Object.getPrototypeOf.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/get-proto/Object.getPrototypeOf.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/get-proto/README.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/get-proto/Reflect.getPrototypeOf.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/get-proto/index.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/get-proto/index.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/get-proto/package.json +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/get-proto/test/index.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/get-proto/tsconfig.json +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/has-symbols/.eslintrc +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/has-symbols/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/has-symbols/.nycrc +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/has-symbols/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/has-symbols/LICENSE +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/has-symbols/README.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/has-symbols/index.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/has-symbols/package.json +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/has-symbols/shams.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/has-symbols/test/index.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/has-symbols/test/shams/core-js.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/has-symbols/test/shams/get-own-property-symbols.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/has-symbols/test/tests.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/has-tostringtag/.eslintrc +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/has-tostringtag/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/has-tostringtag/.nycrc +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/has-tostringtag/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/has-tostringtag/LICENSE +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/has-tostringtag/README.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/has-tostringtag/index.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/has-tostringtag/index.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/has-tostringtag/package.json +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/has-tostringtag/shams.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/has-tostringtag/shams.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/has-tostringtag/test/index.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/has-tostringtag/test/shams/core-js.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/has-tostringtag/test/shams/get-own-property-symbols.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/has-tostringtag/test/tests.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/has-tostringtag/tsconfig.json +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/hasown/.eslintrc +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/hasown/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/hasown/.nycrc +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/hasown/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/hasown/LICENSE +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/hasown/README.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/hasown/index.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/hasown/index.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/hasown/package.json +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/hasown/tsconfig.json www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/is-buffer/LICENSE www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/is-buffer/README.md www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/is-buffer/index.js www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/is-buffer/package.json www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/is-buffer/test/basic.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/.eslintrc +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/LICENSE +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/README.md +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/abs.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/abs.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/constants/maxArrayLength.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/constants/maxSafeInteger.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/constants/maxValue.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/constants/maxValue.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/floor.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/floor.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/isFinite.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/isFinite.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/isInteger.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/isInteger.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/isNaN.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/isNaN.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/isNegativeZero.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/isNegativeZero.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/max.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/max.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/min.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/min.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/mod.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/mod.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/package.json +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/pow.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/pow.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/round.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/round.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/sign.d.ts +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/sign.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/test/index.js +www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/math-intrinsics/tsconfig.json www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/md5/.travis.yml www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/md5/LICENSE www/opensearch-dashboards/plugins/wazuhCheckUpdates/node_modules/md5/README.md @@ -5847,6 +6360,7 @@ www/opensearch-dashboards/plugins/wazuhCore/node_modules/axios/lib/helpers/combi www/opensearch-dashboards/plugins/wazuhCore/node_modules/axios/lib/helpers/composeSignals.js www/opensearch-dashboards/plugins/wazuhCore/node_modules/axios/lib/helpers/cookies.js www/opensearch-dashboards/plugins/wazuhCore/node_modules/axios/lib/helpers/deprecatedMethod.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/axios/lib/helpers/estimateDataURLDecodedBytes.js www/opensearch-dashboards/plugins/wazuhCore/node_modules/axios/lib/helpers/formDataToJSON.js www/opensearch-dashboards/plugins/wazuhCore/node_modules/axios/lib/helpers/formDataToStream.js www/opensearch-dashboards/plugins/wazuhCore/node_modules/axios/lib/helpers/fromDataURI.js @@ -5877,6 +6391,27 @@ www/opensearch-dashboards/plugins/wazuhCore/node_modules/axios/lib/platform/node www/opensearch-dashboards/plugins/wazuhCore/node_modules/axios/lib/platform/node/index.js www/opensearch-dashboards/plugins/wazuhCore/node_modules/axios/lib/utils.js www/opensearch-dashboards/plugins/wazuhCore/node_modules/axios/package.json +www/opensearch-dashboards/plugins/wazuhCore/node_modules/call-bind-apply-helpers/.eslintrc +www/opensearch-dashboards/plugins/wazuhCore/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCore/node_modules/call-bind-apply-helpers/.nycrc +www/opensearch-dashboards/plugins/wazuhCore/node_modules/call-bind-apply-helpers/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/call-bind-apply-helpers/LICENSE +www/opensearch-dashboards/plugins/wazuhCore/node_modules/call-bind-apply-helpers/README.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/call-bind-apply-helpers/actualApply.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/call-bind-apply-helpers/actualApply.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/call-bind-apply-helpers/applyBind.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/call-bind-apply-helpers/applyBind.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/call-bind-apply-helpers/functionApply.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/call-bind-apply-helpers/functionApply.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/call-bind-apply-helpers/functionCall.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/call-bind-apply-helpers/functionCall.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/call-bind-apply-helpers/index.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/call-bind-apply-helpers/index.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/call-bind-apply-helpers/package.json +www/opensearch-dashboards/plugins/wazuhCore/node_modules/call-bind-apply-helpers/reflectApply.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/call-bind-apply-helpers/reflectApply.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/call-bind-apply-helpers/test/index.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/call-bind-apply-helpers/tsconfig.json www/opensearch-dashboards/plugins/wazuhCore/node_modules/charenc/LICENSE.mkd www/opensearch-dashboards/plugins/wazuhCore/node_modules/charenc/README.js www/opensearch-dashboards/plugins/wazuhCore/node_modules/charenc/charenc.js @@ -5896,6 +6431,69 @@ www/opensearch-dashboards/plugins/wazuhCore/node_modules/delayed-stream/Makefile www/opensearch-dashboards/plugins/wazuhCore/node_modules/delayed-stream/Readme.md www/opensearch-dashboards/plugins/wazuhCore/node_modules/delayed-stream/lib/delayed_stream.js www/opensearch-dashboards/plugins/wazuhCore/node_modules/delayed-stream/package.json +www/opensearch-dashboards/plugins/wazuhCore/node_modules/dunder-proto/.eslintrc +www/opensearch-dashboards/plugins/wazuhCore/node_modules/dunder-proto/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCore/node_modules/dunder-proto/.nycrc +www/opensearch-dashboards/plugins/wazuhCore/node_modules/dunder-proto/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/dunder-proto/LICENSE +www/opensearch-dashboards/plugins/wazuhCore/node_modules/dunder-proto/README.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/dunder-proto/get.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/dunder-proto/get.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/dunder-proto/node_modules/gopd/.eslintrc +www/opensearch-dashboards/plugins/wazuhCore/node_modules/dunder-proto/node_modules/gopd/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCore/node_modules/dunder-proto/node_modules/gopd/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/dunder-proto/node_modules/gopd/LICENSE +www/opensearch-dashboards/plugins/wazuhCore/node_modules/dunder-proto/node_modules/gopd/README.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/dunder-proto/node_modules/gopd/gOPD.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/dunder-proto/node_modules/gopd/gOPD.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/dunder-proto/node_modules/gopd/index.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/dunder-proto/node_modules/gopd/index.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/dunder-proto/node_modules/gopd/package.json +www/opensearch-dashboards/plugins/wazuhCore/node_modules/dunder-proto/node_modules/gopd/test/index.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/dunder-proto/node_modules/gopd/tsconfig.json +www/opensearch-dashboards/plugins/wazuhCore/node_modules/dunder-proto/package.json +www/opensearch-dashboards/plugins/wazuhCore/node_modules/dunder-proto/set.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/dunder-proto/set.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/dunder-proto/test/get.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/dunder-proto/test/index.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/dunder-proto/test/set.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/dunder-proto/tsconfig.json +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-errors/.eslintrc +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-errors/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-errors/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-errors/LICENSE +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-errors/README.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-errors/eval.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-errors/eval.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-errors/index.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-errors/index.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-errors/package.json +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-errors/range.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-errors/range.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-errors/ref.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-errors/ref.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-errors/syntax.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-errors/syntax.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-errors/test/index.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-errors/tsconfig.json +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-errors/type.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-errors/type.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-errors/uri.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-errors/uri.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-object-atoms/.eslintrc +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-object-atoms/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-object-atoms/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-object-atoms/LICENSE +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-object-atoms/README.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-object-atoms/RequireObjectCoercible.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-object-atoms/ToObject.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-object-atoms/ToObject.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-object-atoms/index.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-object-atoms/index.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-object-atoms/package.json +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-object-atoms/test/index.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/es-object-atoms/tsconfig.json www/opensearch-dashboards/plugins/wazuhCore/node_modules/follow-redirects/LICENSE www/opensearch-dashboards/plugins/wazuhCore/node_modules/follow-redirects/README.md www/opensearch-dashboards/plugins/wazuhCore/node_modules/follow-redirects/debug.js @@ -5903,14 +6501,154 @@ www/opensearch-dashboards/plugins/wazuhCore/node_modules/follow-redirects/http.j www/opensearch-dashboards/plugins/wazuhCore/node_modules/follow-redirects/https.js www/opensearch-dashboards/plugins/wazuhCore/node_modules/follow-redirects/index.js www/opensearch-dashboards/plugins/wazuhCore/node_modules/follow-redirects/package.json +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/CHANGELOG.md www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/License -www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/README.md.bak -www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/Readme.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/README.md www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/index.d.ts www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/lib/browser.js www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/lib/form_data.js www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/lib/populate.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-define-property/.eslintrc +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-define-property/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-define-property/.nycrc +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-define-property/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-define-property/LICENSE +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-define-property/README.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-define-property/index.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-define-property/index.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-define-property/package.json +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-define-property/test/index.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-define-property/tsconfig.json +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-object-atoms/.eslintrc +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-object-atoms/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-object-atoms/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-object-atoms/LICENSE +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-object-atoms/README.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-object-atoms/RequireObjectCoercible.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-object-atoms/ToObject.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-object-atoms/ToObject.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-object-atoms/index.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-object-atoms/index.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-object-atoms/isObject.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-object-atoms/isObject.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-object-atoms/package.json +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-object-atoms/test/index.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-object-atoms/tsconfig.json +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-set-tostringtag/.eslintrc +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-set-tostringtag/.nycrc +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-set-tostringtag/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-set-tostringtag/LICENSE +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-set-tostringtag/README.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-set-tostringtag/index.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-set-tostringtag/index.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-set-tostringtag/package.json +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-set-tostringtag/test/index.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/es-set-tostringtag/tsconfig.json +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/get-intrinsic/.eslintrc +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/get-intrinsic/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/get-intrinsic/.nycrc +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/get-intrinsic/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/get-intrinsic/LICENSE +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/get-intrinsic/README.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/get-intrinsic/index.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/get-intrinsic/package.json +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/get-intrinsic/test/GetIntrinsic.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/gopd/.eslintrc +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/gopd/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/gopd/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/gopd/LICENSE +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/gopd/README.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/gopd/gOPD.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/gopd/gOPD.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/gopd/index.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/gopd/index.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/gopd/package.json +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/gopd/test/index.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/gopd/tsconfig.json +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/has-symbols/.eslintrc +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/has-symbols/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/has-symbols/.nycrc +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/has-symbols/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/has-symbols/LICENSE +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/has-symbols/README.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/has-symbols/index.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/has-symbols/index.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/has-symbols/package.json +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/has-symbols/shams.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/has-symbols/shams.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/has-symbols/test/index.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/has-symbols/test/shams/core-js.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/has-symbols/test/shams/get-own-property-symbols.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/has-symbols/test/tests.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/node_modules/has-symbols/tsconfig.json www/opensearch-dashboards/plugins/wazuhCore/node_modules/form-data/package.json +www/opensearch-dashboards/plugins/wazuhCore/node_modules/function-bind/.eslintrc +www/opensearch-dashboards/plugins/wazuhCore/node_modules/function-bind/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCore/node_modules/function-bind/.github/SECURITY.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/function-bind/.nycrc +www/opensearch-dashboards/plugins/wazuhCore/node_modules/function-bind/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/function-bind/LICENSE +www/opensearch-dashboards/plugins/wazuhCore/node_modules/function-bind/README.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/function-bind/implementation.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/function-bind/index.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/function-bind/package.json +www/opensearch-dashboards/plugins/wazuhCore/node_modules/function-bind/test/.eslintrc +www/opensearch-dashboards/plugins/wazuhCore/node_modules/function-bind/test/index.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/get-proto/.eslintrc +www/opensearch-dashboards/plugins/wazuhCore/node_modules/get-proto/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCore/node_modules/get-proto/.nycrc +www/opensearch-dashboards/plugins/wazuhCore/node_modules/get-proto/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/get-proto/LICENSE +www/opensearch-dashboards/plugins/wazuhCore/node_modules/get-proto/Object.getPrototypeOf.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/get-proto/Object.getPrototypeOf.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/get-proto/README.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/get-proto/Reflect.getPrototypeOf.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/get-proto/index.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/get-proto/index.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/get-proto/package.json +www/opensearch-dashboards/plugins/wazuhCore/node_modules/get-proto/test/index.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/get-proto/tsconfig.json +www/opensearch-dashboards/plugins/wazuhCore/node_modules/has-symbols/.eslintrc +www/opensearch-dashboards/plugins/wazuhCore/node_modules/has-symbols/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCore/node_modules/has-symbols/.nycrc +www/opensearch-dashboards/plugins/wazuhCore/node_modules/has-symbols/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/has-symbols/LICENSE +www/opensearch-dashboards/plugins/wazuhCore/node_modules/has-symbols/README.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/has-symbols/index.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/has-symbols/package.json +www/opensearch-dashboards/plugins/wazuhCore/node_modules/has-symbols/shams.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/has-symbols/test/index.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/has-symbols/test/shams/core-js.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/has-symbols/test/shams/get-own-property-symbols.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/has-symbols/test/tests.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/has-tostringtag/.eslintrc +www/opensearch-dashboards/plugins/wazuhCore/node_modules/has-tostringtag/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCore/node_modules/has-tostringtag/.nycrc +www/opensearch-dashboards/plugins/wazuhCore/node_modules/has-tostringtag/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/has-tostringtag/LICENSE +www/opensearch-dashboards/plugins/wazuhCore/node_modules/has-tostringtag/README.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/has-tostringtag/index.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/has-tostringtag/index.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/has-tostringtag/package.json +www/opensearch-dashboards/plugins/wazuhCore/node_modules/has-tostringtag/shams.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/has-tostringtag/shams.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/has-tostringtag/test/index.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/has-tostringtag/test/shams/core-js.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/has-tostringtag/test/shams/get-own-property-symbols.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/has-tostringtag/test/tests.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/has-tostringtag/tsconfig.json +www/opensearch-dashboards/plugins/wazuhCore/node_modules/hasown/.eslintrc +www/opensearch-dashboards/plugins/wazuhCore/node_modules/hasown/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCore/node_modules/hasown/.nycrc +www/opensearch-dashboards/plugins/wazuhCore/node_modules/hasown/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/hasown/LICENSE +www/opensearch-dashboards/plugins/wazuhCore/node_modules/hasown/README.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/hasown/index.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/hasown/index.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/hasown/package.json +www/opensearch-dashboards/plugins/wazuhCore/node_modules/hasown/tsconfig.json www/opensearch-dashboards/plugins/wazuhCore/node_modules/is-buffer/LICENSE www/opensearch-dashboards/plugins/wazuhCore/node_modules/is-buffer/README.md www/opensearch-dashboards/plugins/wazuhCore/node_modules/is-buffer/index.js @@ -5927,6 +6665,44 @@ www/opensearch-dashboards/plugins/wazuhCore/node_modules/jwt-decode/build/jwt-de www/opensearch-dashboards/plugins/wazuhCore/node_modules/jwt-decode/build/jwt-decode.js.map www/opensearch-dashboards/plugins/wazuhCore/node_modules/jwt-decode/index.d.ts www/opensearch-dashboards/plugins/wazuhCore/node_modules/jwt-decode/package.json +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/.eslintrc +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/.github/FUNDING.yml +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/CHANGELOG.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/LICENSE +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/README.md +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/abs.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/abs.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/constants/maxArrayLength.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/constants/maxSafeInteger.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/constants/maxValue.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/constants/maxValue.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/floor.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/floor.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/isFinite.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/isFinite.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/isInteger.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/isInteger.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/isNaN.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/isNaN.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/isNegativeZero.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/isNegativeZero.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/max.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/max.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/min.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/min.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/mod.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/mod.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/package.json +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/pow.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/pow.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/round.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/round.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/sign.d.ts +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/sign.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/test/index.js +www/opensearch-dashboards/plugins/wazuhCore/node_modules/math-intrinsics/tsconfig.json www/opensearch-dashboards/plugins/wazuhCore/node_modules/md5/.travis.yml www/opensearch-dashboards/plugins/wazuhCore/node_modules/md5/LICENSE www/opensearch-dashboards/plugins/wazuhCore/node_modules/md5/README.md diff --git a/security/wazuh-indexer/Makefile b/security/wazuh-indexer/Makefile index 648a76698179..8f503ae15826 100644 --- a/security/wazuh-indexer/Makefile +++ b/security/wazuh-indexer/Makefile @@ -1,5 +1,5 @@ PORTNAME= wazuh -PORTVERSION= 4.14.1 +PORTVERSION= 4.14.2 CATEGORIES= security MASTER_SITES= LOCAL/acm/${PORTNAME}/ PKGNAMESUFFIX= -indexer diff --git a/security/wazuh-indexer/distinfo b/security/wazuh-indexer/distinfo index fc8d05feba85..786102ebab59 100644 --- a/security/wazuh-indexer/distinfo +++ b/security/wazuh-indexer/distinfo @@ -1,3 +1,3 @@ -TIMESTAMP = 1763764338 -SHA256 (wazuh-4.14.1/wazuh-4.14.1-indexer.yml) = 15290a6e81026d970891d7e1805afe4a87420984893948b5dd7a65789d62f5c5 -SIZE (wazuh-4.14.1/wazuh-4.14.1-indexer.yml) = 2216 +TIMESTAMP = 1768544761 +SHA256 (wazuh-4.14.2/wazuh-4.14.2-indexer.yml) = 15290a6e81026d970891d7e1805afe4a87420984893948b5dd7a65789d62f5c5 +SIZE (wazuh-4.14.2/wazuh-4.14.2-indexer.yml) = 2216 diff --git a/security/wazuh-manager/Makefile b/security/wazuh-manager/Makefile index c7b2d1213a97..1fce798ca48e 100644 --- a/security/wazuh-manager/Makefile +++ b/security/wazuh-manager/Makefile @@ -1,9 +1,8 @@ PORTNAME= wazuh DISTVERSIONPREFIX= v -DISTVERSION= 4.14.1 -PORTREVISION= 7 +DISTVERSION= 4.14.2 CATEGORIES= security -MASTER_SITES= https://packages.wazuh.com/deps/47/libraries/sources/:wazuh_sources \ +MASTER_SITES= https://packages.wazuh.com/deps/48/libraries/sources/:wazuh_sources \ LOCAL/acm/${PORTNAME}/:wazuh_cache PKGNAMESUFFIX= -manager DISTFILES= ${EXTERNAL_DISTFILES} \ @@ -36,7 +35,9 @@ RUN_DEPENDS= bash>0:shells/bash USES= cpe dos2unix gmake perl5 python:3.11 readline shebangfix sqlite:3 uidfix USE_GITHUB= yes -GH_TUPLE= alonsobsd:wazuh-freebsd:${WAZUH_EXTRAFILE_TAGNAME}:wazuh +GH_ACCOUNT= alonsobsd +GH_PROJECT= wazuh-freebsd +GH_TAGNAME= e3b7f4ccbb4cf0004ca58b1e56e4fe2d1b7474a7 USE_RC_SUBR= ${PORTNAME}${PKGNAMESUFFIX} @@ -44,12 +45,10 @@ MAKE_ARGS+= TARGET=server INSTALLDIR=${WAZUHPREFIX} INSTALL_SHARED="${INSTALL_LI DOS2UNIX_FILES= ${WRKSRC}/api/api/configuration/api.yaml -#WITH_CCACHE_BUILD= yes -#CCACHE_DIR= /zdata/ccache +WITH_CCACHE_BUILD= yes +CCACHE_DIR= /zdata/ccache WAZUH_CACHEFILE= ${PORTNAME}-cache-any-${DISTVERSION}${EXTRACT_SUFX} -WAZUH_EXTRAFILE= alonsobsd-${PORTNAME}-freebsd-${WAZUH_EXTRAFILE_TAGNAME}_GH0${EXTRACT_SUFX} -WAZUH_EXTRAFILE_TAGNAME=830a911 EXTERNAL_DISTFILES= audit-userspace.tar.gz:wazuh_sources \ benchmark.tar.gz:wazuh_sources \ @@ -211,8 +210,6 @@ post-extract: @cd ${WRKSRC}/src/external && ${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} ${_DISTDIR}/${FILE:S/:wazuh_sources//:S/:wazuh_cache//} ${EXTRACT_AFTER_ARGS} .endif .endfor - @cd ${WRKDIR} && ${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} ${_DISTDIR}/${WAZUH_EXTRAFILE} ${EXTRACT_AFTER_ARGS} - @${MV} ${WRKDIR}/${PORTNAME}-freebsd-${WAZUH_EXTRAFILE_TAGNAME} ${WRKDIR}/wazuh-freebsd @cd ${WRKSRC}/src && ${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} ${_DISTDIR}/${WAZUH_CACHEFILE} ${EXTRACT_AFTER_ARGS} @cd ${WRKSRC}/src && ${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} ${_DISTDIR}/${WAZUH_CACHENAME}${EXTRACT_SUFX} ${EXTRACT_AFTER_ARGS} @@ -223,14 +220,8 @@ post-extract: . endfor @${RM} ${WRKSRC}/src/external/cpython/python ${WRKSRC}/src/external/cpython/libpython* ${WRKSRC}/src/external/cpython/Modules/*.o - @${MKDIR} ${WRKSRC}/ruleset/sca/freebsd - @${MKDIR} ${WRKSRC}/src/data_provider/src/extended_sources/wrappers/unix/freebsd - @cd ${WRKDIR}/wazuh-freebsd/var/ossec/ruleset/sca && ${CP} *.yml ${WRKSRC}/ruleset/sca/freebsd/ ${FIND} ${WRKSRC}/ruleset/sca -type f -name "*.yml" -exec ${MV} "{}" "{}.disabled" \; - ${CP} ${FILESDIR}/pthreads_portable.c ${WRKSRC}/src/shared/ - ${CP} ${FILESDIR}/pthreads_portable.h ${WRKSRC}/src/headers/ - post-patch: ${REINPLACE_CMD} -e 's|CC=|CC?=|g' -e 's|AR=|AR?=|g' ${WRKSRC}/src/external/bzip2/Makefile ${REINPLACE_CMD} -e 's|^\( *MULTIARCH=\).*--print-multiarch.*|\1|' ${WRKSRC}/src/external/cpython/configure @@ -238,7 +229,7 @@ post-patch: ${WRKSRC}/framework/wazuh/rbac/decorators.py do-build: - cd ${WRKSRC} && ${CC} ${CFLAGS} -o check_pid ${FILESDIR}/check_pid.c + cd ${WRKSRC} && ${CC} ${CFLAGS} -o check_pid ${WRKSRC}/libexec/check_pid.c cd ${WRKSRC}/src/ && ${SETENV} ${MAKE_ENV} STAGEDIR=${STAGEDIR} \ ${MAKE_CMD} ${MAKE_ARGS} @@ -296,11 +287,9 @@ do-install: # Install rules files ${INSTALL_DATA} ${WRKSRC}/ruleset/rules/*.xml ${STAGEDIR}${WAZUHPREFIX}/ruleset/rules - ${INSTALL_DATA} ${WRKDIR}/wazuh-freebsd/var/ossec/ruleset/rules/*.xml ${STAGEDIR}${WAZUHPREFIX}/ruleset/rules # Install decoders files ${INSTALL_DATA} ${WRKSRC}/ruleset/decoders/*.xml ${STAGEDIR}${WAZUHPREFIX}/ruleset/decoders - ${INSTALL_DATA} ${WRKDIR}/wazuh-freebsd/var/ossec/ruleset/decoders/*.xml ${STAGEDIR}${WAZUHPREFIX}/ruleset/decoders ${INSTALL_DATA} ${WRKSRC}/ruleset/rootcheck/db/*.txt ${STAGEDIR}${WAZUHPREFIX}/etc/rootcheck diff --git a/security/wazuh-manager/distinfo b/security/wazuh-manager/distinfo index 652a4f92e381..88931195f022 100644 --- a/security/wazuh-manager/distinfo +++ b/security/wazuh-manager/distinfo @@ -1,79 +1,77 @@ -TIMESTAMP = 1763763578 -SHA256 (wazuh-4.14.1/audit-userspace.tar.gz) = e82a32e5edf93b055160e14bc97f41dead39287925851dc80a7638e2d4d30434 -SIZE (wazuh-4.14.1/audit-userspace.tar.gz) = 1682820 -SHA256 (wazuh-4.14.1/benchmark.tar.gz) = 94c57aa0cb2bd78dbe9e77d332cbc644daf0fecdc9a09632048be6e09f9ced6b -SIZE (wazuh-4.14.1/benchmark.tar.gz) = 184460 -SHA256 (wazuh-4.14.1/bzip2.tar.gz) = 27688ee0316a64b39e511b2c224070cad97c394a5f711f9d055fc1809d895bcd -SIZE (wazuh-4.14.1/bzip2.tar.gz) = 71277 -SHA256 (wazuh-4.14.1/cJSON.tar.gz) = da809f70b7d03ac529ae6223d4390bfa26cd29f8c32c8e8b3b631efa1667892d -SIZE (wazuh-4.14.1/cJSON.tar.gz) = 27920 -SHA256 (wazuh-4.14.1/cpp-httplib.tar.gz) = 6517573263611686b9219ba796c35f54a306eb27dc3c72e1807f2a0a34cac1e8 -SIZE (wazuh-4.14.1/cpp-httplib.tar.gz) = 57890 -SHA256 (wazuh-4.14.1/cpython-3.11.14.tar.gz) = 6201d3cd571e14f19b30286741547aea4b64b935ad32a307094e78bf8fd250b1 -SIZE (wazuh-4.14.1/cpython-3.11.14.tar.gz) = 27335678 -SHA256 (wazuh-4.14.1/curl.tar.gz) = 30cf7142e4282718ceb237e17b5cbf75afcd7c9f3880a039c5efea62db094709 -SIZE (wazuh-4.14.1/curl.tar.gz) = 4537356 -SHA256 (wazuh-4.14.1/flatbuffers.tar.gz) = ca563ebb561ae9088c7bec9ce101d2182b43ced0ba67a097d0ee0c145108f55a -SIZE (wazuh-4.14.1/flatbuffers.tar.gz) = 2824325 -SHA256 (wazuh-4.14.1/googletest.tar.gz) = 8c1e8a0a7f221c2125e99e6acb709da2ba472476b4d057c58de504bebf38d417 -SIZE (wazuh-4.14.1/googletest.tar.gz) = 885874 -SHA256 (wazuh-4.14.1/http-request-cd50797.tar.gz) = c9ed1052de030930dd817af2989154e5f6ab2ce223dacb87bf55ca6fdf1b8ebb -SIZE (wazuh-4.14.1/http-request-cd50797.tar.gz) = 66371 -SHA256 (wazuh-4.14.1/jemalloc.tar.gz) = 2b22e85b352c7df550ba408a42251e51e8dffa6c91aa2e1fb4804ab317ffbca0 -SIZE (wazuh-4.14.1/jemalloc.tar.gz) = 579864 -SHA256 (wazuh-4.14.1/libarchive.tar.gz) = 540ff4a55defa75778a2c40567a830648ce5367b8aea123366874d96b734ef80 -SIZE (wazuh-4.14.1/libarchive.tar.gz) = 2360242 -SHA256 (wazuh-4.14.1/libdb.tar.gz) = 7e9c44e8c7fdb186ff521a8d085b1bfa634d342dcc777ecea1fbf9a98ab5dc5e -SIZE (wazuh-4.14.1/libdb.tar.gz) = 3874990 -SHA256 (wazuh-4.14.1/libffi.tar.gz) = 0e971f64bacc22094e89f034bba075b40ecc2c2c2900eecd7ae85815fd6c9f69 -SIZE (wazuh-4.14.1/libffi.tar.gz) = 964576 -SHA256 (wazuh-4.14.1/libpcre2.tar.gz) = 5a80d654d7d14b3db9fa3a49d7bf44a498683b46784a88cec514a8b194767b92 -SIZE (wazuh-4.14.1/libpcre2.tar.gz) = 1329651 -SHA256 (wazuh-4.14.1/libplist.tar.gz) = 88278d4bdfc1bd6a3a1a55a4f3d933683d2732ba09cf7a749fe8ec8eec406e3c -SIZE (wazuh-4.14.1/libplist.tar.gz) = 1520623 -SHA256 (wazuh-4.14.1/libyaml.tar.gz) = 35daad608b372d5ce099f738c0f21bfcc03d6920d92f448386c584e664f1376a -SIZE (wazuh-4.14.1/libyaml.tar.gz) = 424656 -SHA256 (wazuh-4.14.1/lua.tar.gz) = 233e87e871090bd30c4b692ac73bd714361c15051148e4eeec828a1df8436eca -SIZE (wazuh-4.14.1/lua.tar.gz) = 343356 -SHA256 (wazuh-4.14.1/lzma.tar.gz) = 4ce0c192d41072b5679af89bb531efb685c8267a4b7e2005999149ac17028134 -SIZE (wazuh-4.14.1/lzma.tar.gz) = 1327581 -SHA256 (wazuh-4.14.1/msgpack.tar.gz) = 06d63bcf32896cd0af5480c401134b1ad1c166fd84ebe5b486e792101ee854e2 -SIZE (wazuh-4.14.1/msgpack.tar.gz) = 591294 -SHA256 (wazuh-4.14.1/nlohmann.tar.gz) = 6e304c0942ac65f76f012a0ec64dde90e00273b6cc5a498b37cfdd16155e08b0 -SIZE (wazuh-4.14.1/nlohmann.tar.gz) = 141576 -SHA256 (wazuh-4.14.1/openssl.tar.gz) = 0386fe3a0bf48bae2ca4d1742a53df9a8fcb1b73583ba22e8f8a7ddfa1375cd9 -SIZE (wazuh-4.14.1/openssl.tar.gz) = 53793192 -SHA256 (wazuh-4.14.1/popt.tar.gz) = d6880a06622ca32dc4aa39ad5dcf7bef2faa81bd931afbe64ba434ad8fee1daa -SIZE (wazuh-4.14.1/popt.tar.gz) = 891309 -SHA256 (wazuh-4.14.1/procps.tar.gz) = 221f395e29d1bdbe4bacc9db39602eee0bae685a935437be0d7feb42e3192d07 -SIZE (wazuh-4.14.1/procps.tar.gz) = 55897 -SHA256 (wazuh-4.14.1/rocksdb.tar.gz) = eeed60a3d4e29f7305e79f9f5cebd4261174261227f1b5a7d05da55565675436 -SIZE (wazuh-4.14.1/rocksdb.tar.gz) = 12800920 -SHA256 (wazuh-4.14.1/simdjson.tar.gz) = f033677871db0236a961603bcb9fef30ff0c65a4d1fb496fa8fae3f91c8b56cb -SIZE (wazuh-4.14.1/simdjson.tar.gz) = 2733642 -SHA256 (wazuh-4.14.1/sqlite.tar.gz) = a81bff30bb4affd1b06a4983ff88ef827b4abaea3191b39aff7edb28d1ddd003 -SIZE (wazuh-4.14.1/sqlite.tar.gz) = 2564870 -SHA256 (wazuh-4.14.1/zlib.tar.gz) = b59d38149f0c29ec54d2766611ebc5a51a032bf9717e39a9af00fb6cb8532b8b -SIZE (wazuh-4.14.1/zlib.tar.gz) = 1593304 -SHA256 (wazuh-4.14.1/wazuh-cache-any-4.14.1.tar.gz) = 79ef4769856c7c7af6b9f2c2ef67bf6e2cc3db874dc25ea4086519f48c8bc729 -SIZE (wazuh-4.14.1/wazuh-cache-any-4.14.1.tar.gz) = 21536265 -SHA256 (wazuh-4.14.1/wazuh-python-4.14.1.tar.gz) = d4079d17c2e6eea261c2a9a0c24363bde1ce1df0c50bec86e52be3d329b7cb09 -SIZE (wazuh-4.14.1/wazuh-python-4.14.1.tar.gz) = 480541 -SHA256 (wazuh-4.14.1/wazuh-cache-fbsd13-amd64-4.14.1.tar.gz) = e894bdc1697a8c4976e1cc68961c602850ec24582d5cc17baed82d8086620005 -SIZE (wazuh-4.14.1/wazuh-cache-fbsd13-amd64-4.14.1.tar.gz) = 26641362 -SHA256 (wazuh-4.14.1/wazuh-cache-fbsd14-aarch64-4.14.1.tar.gz) = 7984654011ed67fffcc2f1f4297df5a4708d8d1dd6a79ab5c1dd295250883feb -SIZE (wazuh-4.14.1/wazuh-cache-fbsd14-aarch64-4.14.1.tar.gz) = 24707892 -SHA256 (wazuh-4.14.1/wazuh-cache-fbsd14-amd64-4.14.1.tar.gz) = f2b26a36b116348e3443e7133017713956e8ed2e26eed90e4f396eb55a241eda -SIZE (wazuh-4.14.1/wazuh-cache-fbsd14-amd64-4.14.1.tar.gz) = 25055515 -SHA256 (wazuh-4.14.1/wazuh-cache-fbsd15-aarch64-4.14.1.tar.gz) = c63484af8fd157f61b6bf0297b4233c3e2a3eee481f35c7d15fcb5b90d711489 -SIZE (wazuh-4.14.1/wazuh-cache-fbsd15-aarch64-4.14.1.tar.gz) = 24690859 -SHA256 (wazuh-4.14.1/wazuh-cache-fbsd15-amd64-4.14.1.tar.gz) = 8b70abd8e3b408cd69dc2a5434ddaaa7afa9e59c9173c8a3242cef5c657327db -SIZE (wazuh-4.14.1/wazuh-cache-fbsd15-amd64-4.14.1.tar.gz) = 26650226 -SHA256 (wazuh-4.14.1/wazuh-cache-fbsd16-aarch64-4.14.1.tar.gz) = 29ca4f074475bc29a852850193da0da421133f62f38ccd0a990edd17743845bb -SIZE (wazuh-4.14.1/wazuh-cache-fbsd16-aarch64-4.14.1.tar.gz) = 24862885 -SHA256 (wazuh-4.14.1/wazuh-cache-fbsd16-amd64-4.14.1.tar.gz) = 03e92ad3b8cc1d06f9e31d07aa13d1ba3dca85b302d869ec5ec3a2b517d3dbf0 -SIZE (wazuh-4.14.1/wazuh-cache-fbsd16-amd64-4.14.1.tar.gz) = 26653557 -SHA256 (wazuh-4.14.1/wazuh-wazuh-v4.14.1_GH0.tar.gz) = aa59cb2baa7e7d38d8bb4ff6a22afbf2945de4fb555f9b8bb2657b6f89a773ed -SIZE (wazuh-4.14.1/wazuh-wazuh-v4.14.1_GH0.tar.gz) = 19810038 -SHA256 (wazuh-4.14.1/alonsobsd-wazuh-freebsd-830a911_GH0.tar.gz) = 4babef38a076f8be886d7190e18f6432f72671753ec96aaedc7e8d25b5c90259 -SIZE (wazuh-4.14.1/alonsobsd-wazuh-freebsd-830a911_GH0.tar.gz) = 221974 +TIMESTAMP = 1768544503 +SHA256 (wazuh-4.14.2/audit-userspace.tar.gz) = e82a32e5edf93b055160e14bc97f41dead39287925851dc80a7638e2d4d30434 +SIZE (wazuh-4.14.2/audit-userspace.tar.gz) = 1682820 +SHA256 (wazuh-4.14.2/benchmark.tar.gz) = 94c57aa0cb2bd78dbe9e77d332cbc644daf0fecdc9a09632048be6e09f9ced6b +SIZE (wazuh-4.14.2/benchmark.tar.gz) = 184460 +SHA256 (wazuh-4.14.2/bzip2.tar.gz) = 27688ee0316a64b39e511b2c224070cad97c394a5f711f9d055fc1809d895bcd +SIZE (wazuh-4.14.2/bzip2.tar.gz) = 71277 +SHA256 (wazuh-4.14.2/cJSON.tar.gz) = da809f70b7d03ac529ae6223d4390bfa26cd29f8c32c8e8b3b631efa1667892d +SIZE (wazuh-4.14.2/cJSON.tar.gz) = 27920 +SHA256 (wazuh-4.14.2/cpp-httplib.tar.gz) = 6517573263611686b9219ba796c35f54a306eb27dc3c72e1807f2a0a34cac1e8 +SIZE (wazuh-4.14.2/cpp-httplib.tar.gz) = 57890 +SHA256 (wazuh-4.14.2/cpython-3.11.14.tar.gz) = 6201d3cd571e14f19b30286741547aea4b64b935ad32a307094e78bf8fd250b1 +SIZE (wazuh-4.14.2/cpython-3.11.14.tar.gz) = 27335678 +SHA256 (wazuh-4.14.2/curl.tar.gz) = 30cf7142e4282718ceb237e17b5cbf75afcd7c9f3880a039c5efea62db094709 +SIZE (wazuh-4.14.2/curl.tar.gz) = 4537356 +SHA256 (wazuh-4.14.2/flatbuffers.tar.gz) = ca563ebb561ae9088c7bec9ce101d2182b43ced0ba67a097d0ee0c145108f55a +SIZE (wazuh-4.14.2/flatbuffers.tar.gz) = 2824325 +SHA256 (wazuh-4.14.2/googletest.tar.gz) = 8c1e8a0a7f221c2125e99e6acb709da2ba472476b4d057c58de504bebf38d417 +SIZE (wazuh-4.14.2/googletest.tar.gz) = 885874 +SHA256 (wazuh-4.14.2/http-request-cd50797.tar.gz) = c9ed1052de030930dd817af2989154e5f6ab2ce223dacb87bf55ca6fdf1b8ebb +SIZE (wazuh-4.14.2/http-request-cd50797.tar.gz) = 66371 +SHA256 (wazuh-4.14.2/jemalloc.tar.gz) = 2b22e85b352c7df550ba408a42251e51e8dffa6c91aa2e1fb4804ab317ffbca0 +SIZE (wazuh-4.14.2/jemalloc.tar.gz) = 579864 +SHA256 (wazuh-4.14.2/libarchive.tar.gz) = 540ff4a55defa75778a2c40567a830648ce5367b8aea123366874d96b734ef80 +SIZE (wazuh-4.14.2/libarchive.tar.gz) = 2360242 +SHA256 (wazuh-4.14.2/libdb.tar.gz) = 7e9c44e8c7fdb186ff521a8d085b1bfa634d342dcc777ecea1fbf9a98ab5dc5e +SIZE (wazuh-4.14.2/libdb.tar.gz) = 3874990 +SHA256 (wazuh-4.14.2/libffi.tar.gz) = 0e971f64bacc22094e89f034bba075b40ecc2c2c2900eecd7ae85815fd6c9f69 +SIZE (wazuh-4.14.2/libffi.tar.gz) = 964576 +SHA256 (wazuh-4.14.2/libpcre2.tar.gz) = 5a80d654d7d14b3db9fa3a49d7bf44a498683b46784a88cec514a8b194767b92 +SIZE (wazuh-4.14.2/libpcre2.tar.gz) = 1329651 +SHA256 (wazuh-4.14.2/libplist.tar.gz) = 88278d4bdfc1bd6a3a1a55a4f3d933683d2732ba09cf7a749fe8ec8eec406e3c +SIZE (wazuh-4.14.2/libplist.tar.gz) = 1520623 +SHA256 (wazuh-4.14.2/libyaml.tar.gz) = 35daad608b372d5ce099f738c0f21bfcc03d6920d92f448386c584e664f1376a +SIZE (wazuh-4.14.2/libyaml.tar.gz) = 424656 +SHA256 (wazuh-4.14.2/lua.tar.gz) = 233e87e871090bd30c4b692ac73bd714361c15051148e4eeec828a1df8436eca +SIZE (wazuh-4.14.2/lua.tar.gz) = 343356 +SHA256 (wazuh-4.14.2/lzma.tar.gz) = 4ce0c192d41072b5679af89bb531efb685c8267a4b7e2005999149ac17028134 +SIZE (wazuh-4.14.2/lzma.tar.gz) = 1327581 +SHA256 (wazuh-4.14.2/msgpack.tar.gz) = 06d63bcf32896cd0af5480c401134b1ad1c166fd84ebe5b486e792101ee854e2 +SIZE (wazuh-4.14.2/msgpack.tar.gz) = 591294 +SHA256 (wazuh-4.14.2/nlohmann.tar.gz) = 6e304c0942ac65f76f012a0ec64dde90e00273b6cc5a498b37cfdd16155e08b0 +SIZE (wazuh-4.14.2/nlohmann.tar.gz) = 141576 +SHA256 (wazuh-4.14.2/openssl.tar.gz) = 0386fe3a0bf48bae2ca4d1742a53df9a8fcb1b73583ba22e8f8a7ddfa1375cd9 +SIZE (wazuh-4.14.2/openssl.tar.gz) = 53793192 +SHA256 (wazuh-4.14.2/popt.tar.gz) = d6880a06622ca32dc4aa39ad5dcf7bef2faa81bd931afbe64ba434ad8fee1daa +SIZE (wazuh-4.14.2/popt.tar.gz) = 891309 +SHA256 (wazuh-4.14.2/procps.tar.gz) = 221f395e29d1bdbe4bacc9db39602eee0bae685a935437be0d7feb42e3192d07 +SIZE (wazuh-4.14.2/procps.tar.gz) = 55897 +SHA256 (wazuh-4.14.2/rocksdb.tar.gz) = eeed60a3d4e29f7305e79f9f5cebd4261174261227f1b5a7d05da55565675436 +SIZE (wazuh-4.14.2/rocksdb.tar.gz) = 12800920 +SHA256 (wazuh-4.14.2/simdjson.tar.gz) = f033677871db0236a961603bcb9fef30ff0c65a4d1fb496fa8fae3f91c8b56cb +SIZE (wazuh-4.14.2/simdjson.tar.gz) = 2733642 +SHA256 (wazuh-4.14.2/sqlite.tar.gz) = a81bff30bb4affd1b06a4983ff88ef827b4abaea3191b39aff7edb28d1ddd003 +SIZE (wazuh-4.14.2/sqlite.tar.gz) = 2564870 +SHA256 (wazuh-4.14.2/zlib.tar.gz) = b59d38149f0c29ec54d2766611ebc5a51a032bf9717e39a9af00fb6cb8532b8b +SIZE (wazuh-4.14.2/zlib.tar.gz) = 1593304 +SHA256 (wazuh-4.14.2/wazuh-cache-any-4.14.2.tar.gz) = f9738522f26a68ecfea89aada9fb75a65b3b88d74aa1e40bd7b47d328085becb +SIZE (wazuh-4.14.2/wazuh-cache-any-4.14.2.tar.gz) = 21535174 +SHA256 (wazuh-4.14.2/wazuh-python-4.14.2.tar.gz) = 740cff9877f5727e29469c4dc9325d3301e0b0b25193cf257a6c8e96d052b612 +SIZE (wazuh-4.14.2/wazuh-python-4.14.2.tar.gz) = 790217 +SHA256 (wazuh-4.14.2/wazuh-cache-fbsd13-amd64-4.14.2.tar.gz) = e894bdc1697a8c4976e1cc68961c602850ec24582d5cc17baed82d8086620005 +SIZE (wazuh-4.14.2/wazuh-cache-fbsd13-amd64-4.14.2.tar.gz) = 26641362 +SHA256 (wazuh-4.14.2/wazuh-cache-fbsd14-aarch64-4.14.2.tar.gz) = 7984654011ed67fffcc2f1f4297df5a4708d8d1dd6a79ab5c1dd295250883feb +SIZE (wazuh-4.14.2/wazuh-cache-fbsd14-aarch64-4.14.2.tar.gz) = 24707892 +SHA256 (wazuh-4.14.2/wazuh-cache-fbsd14-amd64-4.14.2.tar.gz) = f2b26a36b116348e3443e7133017713956e8ed2e26eed90e4f396eb55a241eda +SIZE (wazuh-4.14.2/wazuh-cache-fbsd14-amd64-4.14.2.tar.gz) = 25055515 +SHA256 (wazuh-4.14.2/wazuh-cache-fbsd15-aarch64-4.14.2.tar.gz) = c63484af8fd157f61b6bf0297b4233c3e2a3eee481f35c7d15fcb5b90d711489 +SIZE (wazuh-4.14.2/wazuh-cache-fbsd15-aarch64-4.14.2.tar.gz) = 24690859 +SHA256 (wazuh-4.14.2/wazuh-cache-fbsd15-amd64-4.14.2.tar.gz) = 8b70abd8e3b408cd69dc2a5434ddaaa7afa9e59c9173c8a3242cef5c657327db +SIZE (wazuh-4.14.2/wazuh-cache-fbsd15-amd64-4.14.2.tar.gz) = 26650226 +SHA256 (wazuh-4.14.2/wazuh-cache-fbsd16-aarch64-4.14.2.tar.gz) = 29ca4f074475bc29a852850193da0da421133f62f38ccd0a990edd17743845bb +SIZE (wazuh-4.14.2/wazuh-cache-fbsd16-aarch64-4.14.2.tar.gz) = 24862885 +SHA256 (wazuh-4.14.2/wazuh-cache-fbsd16-amd64-4.14.2.tar.gz) = 03e92ad3b8cc1d06f9e31d07aa13d1ba3dca85b302d869ec5ec3a2b517d3dbf0 +SIZE (wazuh-4.14.2/wazuh-cache-fbsd16-amd64-4.14.2.tar.gz) = 26653557 +SHA256 (wazuh-4.14.2/alonsobsd-wazuh-freebsd-v4.14.2-e3b7f4ccbb4cf0004ca58b1e56e4fe2d1b7474a7_GH0.tar.gz) = cbc5b4754abbf1ff160dbef92040169bd7c693af7e85f7fedcbe80aa7cb95574 +SIZE (wazuh-4.14.2/alonsobsd-wazuh-freebsd-v4.14.2-e3b7f4ccbb4cf0004ca58b1e56e4fe2d1b7474a7_GH0.tar.gz) = 20066719 diff --git a/security/wazuh-manager/files/check_pid.c b/security/wazuh-manager/files/check_pid.c deleted file mode 100644 index a5697601c41b..000000000000 --- a/security/wazuh-manager/files/check_pid.c +++ /dev/null @@ -1,103 +0,0 @@ -#include <stdio.h> -#include <stdlib.h> -#include <err.h> -#include <errno.h> -#include <sys/sysctl.h> -#include <sys/stat.h> -#include <sysexits.h> -#include <unistd.h> - -#define PID_MAX_FALLBACK 99999 -#define PROC_PATH "/proc" -/* - * /proc = 5, / = 1, <pid> = 5, \0 = 1 - */ -#define PID_PATH_LEN 12 - -static void usage(void); -static void raise_invalid_number(int); -static void raise_atoi_exception(const char *); -static int safe_atoi(const char *, int *); - -int -main(int argc, char **argv) -{ - const char *pid_str; - if ((pid_str = argv[1]) == NULL) - usage(); - - int pid; - if (safe_atoi(pid_str, &pid) != 0) - raise_atoi_exception(pid_str); - - pid_t pid_max; - - size_t pid_max_len; - - pid_max_len = sizeof(pid_max); - if (sysctlbyname("kern.pid_max", &pid_max, &pid_max_len, NULL, 0) == -1) { - warnx("error getting sysctl"); - pid_max = PID_MAX_FALLBACK; - } - - if (pid <= 0 || pid > pid_max) - raise_invalid_number(pid); - - char pid_path[PID_PATH_LEN]; - - snprintf(pid_path, sizeof(pid_path), "/proc/%d", pid); - - struct stat sbuf; - - if (lstat(pid_path, &sbuf) == -1) { - if (errno == ENOENT) - return EX_NOINPUT; - else - warnx("error getting file status"); - return EX_SOFTWARE; - } - - return EX_OK; -} - -static void -raise_invalid_number(int n) -{ - errx(EX_DATAERR, "%d: invalid number", n); -} - -static void -raise_atoi_exception(const char *s) -{ - if (errno != 0) - err(EX_SOFTWARE, "atol()"); - else - errx(EX_SOFTWARE, "could not convert %s to an integer", s); -} - -static int -safe_atoi(const char *s, int *ret_i) -{ - char *x = NULL; - long l; - - errno = 0; - l = strtol(s, &x, 0); - - if (!x || x == s || *x || errno) - return errno > 0 ? -errno : -EINVAL; - - if ((long)(int)l != l) - return -ERANGE; - - *ret_i = (int)l; - - return 0; -} - -static void -usage(void) -{ - errx(EX_USAGE, "%s", - "usage: check_pid <pid>"); -} diff --git a/security/wazuh-manager/files/patch-api_Makefile b/security/wazuh-manager/files/patch-api_Makefile deleted file mode 100644 index e0c6ddf9e3e2..000000000000 --- a/security/wazuh-manager/files/patch-api_Makefile +++ /dev/null @@ -1,19 +0,0 @@ ---- api/Makefile.orig 2023-05-12 12:30:40 UTC -+++ api/Makefile -@@ -8,11 +8,11 @@ WAZUH_GROUP = wazuh - INSTALLDIR ?= /var/ossec - - RM_FILE = rm -f --INSTALL_DIR = install -o root -g ${WAZUH_GROUP} -m 0750 -d --INSTALL_RW_DIR = install -o root -g ${WAZUH_GROUP} -m 0770 -d --INSTALL_EXEC = install -o root -g ${WAZUH_GROUP} -m 0750 --INSTALL_FILE = install -o root -g ${WAZUH_GROUP} -m 0640 --INSTALL_CONFIG_FILE = install -o root -g ${WAZUH_GROUP} -m 0660 -+INSTALL_DIR = install -m 0750 -d -+INSTALL_RW_DIR = install -m 0770 -d -+INSTALL_EXEC = install -m 0750 -+INSTALL_FILE = install -m 0640 -+INSTALL_CONFIG_FILE = install -m 0660 - PYTHON_BIN = $(INSTALLDIR)/framework/python/bin/python3 - - diff --git a/security/wazuh-manager/files/patch-api_wrappers_generic__wrapper.sh b/security/wazuh-manager/files/patch-api_wrappers_generic__wrapper.sh deleted file mode 100644 index 1a200290d1ef..000000000000 --- a/security/wazuh-manager/files/patch-api_wrappers_generic__wrapper.sh +++ /dev/null @@ -1,18 +0,0 @@ ---- api/wrappers/generic_wrapper.sh.orig 2026-01-07 12:49:39.640154000 -0400 -+++ api/wrappers/generic_wrapper.sh 2026-01-07 12:52:17.155158000 -0400 -@@ -3,6 +3,8 @@ - # Created by Wazuh, Inc. <info@wazuh.com>. - # This program is a free software; you can redistribute it and/or modify it under the terms of GPLv2 - -+CRYPTOGRAPHY_OPENSSL_NO_LEGACY=1; export CRYPTOGRAPHY_OPENSSL_NO_LEGACY -+ - WPYTHON_BIN="framework/python/bin/python3" - - SCRIPT_PATH_NAME="$0" -@@ -35,4 +37,4 @@ - esac - - --${WAZUH_PATH}/${WPYTHON_BIN} ${PYTHON_SCRIPT} $@ -\ No newline at end of file -+${WAZUH_PATH}/${WPYTHON_BIN} ${PYTHON_SCRIPT} $@ diff --git a/security/wazuh-manager/files/patch-etc_ossec-server.conf b/security/wazuh-manager/files/patch-etc_ossec-server.conf deleted file mode 100644 index 0be34b3bdcff..000000000000 --- a/security/wazuh-manager/files/patch-etc_ossec-server.conf +++ /dev/null @@ -1,96 +0,0 @@ ---- etc/ossec-server.conf 2025-11-07 00:46:03.000000000 -0800 -+++ etc/ossec-server.conf 2026-01-10 15:58:20.321540000 -0800 -@@ -20,6 +20,26 @@ - <agents_disconnection_alert_time>0</agents_disconnection_alert_time> - </global> - -+ <vulnerability-detection> -+ <enabled>no</enabled> -+ <index-status>yes</index-status> -+ <feed-update-interval>60m</feed-update-interval> -+ </vulnerability-detection> -+ -+ <indexer> -+ <enabled>no</enabled> -+ <hosts> -+ <host>https://127.0.0.1:9200</host> -+ </hosts> -+ <ssl> -+ <certificate_authorities> -+ <ca>/usr/local/etc/logstash/certs/root-ca.pem</ca> -+ </certificate_authorities> -+ <certificate>/usr/local/etc/logstash/certs/server1.pem</certificate> -+ <key>/usr/local/etc/logstash/certs/server1-key.pem</key> -+ </ssl> -+ </indexer> -+ - <alerts> - <log_alert_level>3</log_alert_level> - <email_alert_level>12</email_alert_level> -@@ -29,6 +49,7 @@ - <connection>secure</connection> - <port>1514</port> - <protocol>tcp</protocol> -+ <queue_size>131072</queue_size> - </remote> - - <!-- Policy monitoring --> -@@ -43,7 +64,6 @@ - - <system_audit>/var/ossec/etc/shared/system_audit_rcl.txt</system_audit> - <system_audit>/var/ossec/etc/shared/system_audit_ssh.txt</system_audit> -- <system_audit>/var/ossec/etc/shared/cis_debian_linux_rcl.txt</system_audit> - - <skip_nfs>yes</skip_nfs> - </rootcheck> -@@ -200,7 +220,7 @@ - - <localfile> - <log_format>syslog</log_format> -- <location>/var/log/syslog</location> -+ <location>/var/log/userlog</location> - </localfile> - - <localfile> -@@ -211,7 +231,7 @@ - - <localfile> - <log_format>full_command</log_format> -- <command>netstat -tan |grep LISTEN |grep -v 127.0.0.1 | sort</command> -+ <command>(netstat -n -f inet && netstat -n -f inet) | grep -e "udp" -e "tcp" | sed 's/\([[:alnum:]]*\)\ *[[:digit:]]*\ *[[:digit:]]*\ *\([[:digit:]\.]*\)\.\([[:digit:]]*\)\ *\([[:digit:]\.]*\).*/\1 \2 == \3 == \4/' | sort -k4 -g | sed 's/ == \(.*\) ==/.\1/'</command> - <frequency>360</frequency> - </localfile> - -@@ -236,4 +256,32 @@ - <rule_dir>etc/rules</rule_dir> - </ruleset> - -+ <!-- Configuration for wazuh-authd --> -+ <auth> -+ <disabled>no</disabled> -+ <port>1515</port> -+ <use_source_ip>no</use_source_ip> -+ <purge>yes</purge> -+ <use_password>yes</use_password> -+ <ciphers>HIGH:!ADH:!EXP:!MD5:!RC4:!3DES:!CAMELLIA:@STRENGTH</ciphers> -+ <!-- <ssl_agent_ca></ssl_agent_ca> --> -+ <ssl_verify_host>no</ssl_verify_host> -+ <ssl_manager_cert>etc/sslmanager.cert</ssl_manager_cert> -+ <ssl_manager_key>etc/sslmanager.key</ssl_manager_key> -+ <ssl_auto_negotiate>no</ssl_auto_negotiate> -+ </auth> -+ -+ <cluster> -+ <name>wazuh</name> -+ <node_name>indexer1</node_name> -+ <node_type>master</node_type> -+ <key></key> -+ <port>1516</port> -+ <bind_addr>0.0.0.0</bind_addr> -+ <nodes> -+ <node>NODE_IP</node> -+ </nodes> -+ <hidden>no</hidden> -+ <disabled>yes</disabled> -+ </cluster> - </ossec_config> diff --git a/security/wazuh-manager/files/patch-framework-wazuh-core-cluster_utils.py b/security/wazuh-manager/files/patch-framework-wazuh-core-cluster_utils.py deleted file mode 100644 index 8dc0d329d5dc..000000000000 --- a/security/wazuh-manager/files/patch-framework-wazuh-core-cluster_utils.py +++ /dev/null @@ -1,33 +0,0 @@ ---- framework/wazuh/core/cluster/utils.py 2025-12-30 23:32:30.875588000 -0800 -+++ framework/wazuh/core/cluster/utils.py 2025-12-30 23:33:42.825809000 -0800 -@@ -11,6 +11,7 @@ - import socket - import time - import typing -+import subprocess - from contextvars import ContextVar - from functools import lru_cache - from glob import glob -@@ -282,7 +283,7 @@ - # it means each process crashed and was not able to remove its own pidfile. - data[process] = 'failed' - for pid in pidfile: -- if os.path.exists(os.path.join(proc_path, pidfile_regex.match(pid).group(1))): -+ if _check_pid_as_superman(pidfile_regex.match(pid).group(1)): - data[process] = 'running' - break - -@@ -291,6 +292,13 @@ - - return data - -+def _check_pid_as_superman(pid): -+ try: -+ subprocess.check_call(["/var/ossec/libexec/check_pid", pid]) -+ except subprocess.CalledProcessError as e: -+ return False -+ -+ return True - - def get_cluster_status() -> typing.Dict: - """Get cluster status. diff --git a/security/wazuh-manager/files/patch-framework_Makefile b/security/wazuh-manager/files/patch-framework_Makefile deleted file mode 100644 index 5e78c0f9ffc7..000000000000 --- a/security/wazuh-manager/files/patch-framework_Makefile +++ /dev/null @@ -1,22 +0,0 @@ ---- framework/Makefile.orig 2023-05-12 12:30:40 UTC -+++ framework/Makefile -@@ -7,14 +7,14 @@ - WAZUH_GROUP = wazuh - INSTALLDIR ?= /var/ossec - --CC = gcc --CFLAGS = -pipe -Wall -Wextra -+CC ?= gcc -+CFLAGS ?= -pipe -Wall -Wextra - THREAD_FLAGS = -pthread - MV_FILE = mv -f - RM_FILE = rm -f --INSTALL_DIR = install -o root -g ${WAZUH_GROUP} -m 0750 -d --INSTALL_EXEC = install -o root -g ${WAZUH_GROUP} -m 0750 --INSTALL_FILE = install -o root -g ${WAZUH_GROUP} -m 0640 -+INSTALL_DIR = install -m 0750 -d -+INSTALL_EXEC = install -m 0750 -+INSTALL_FILE = install -m 0640 - - ifdef DEBUG - CFLAGS+=-g -I ../src diff --git a/security/wazuh-manager/files/patch-framework_wrappers_generic__wrapper.sh b/security/wazuh-manager/files/patch-framework_wrappers_generic__wrapper.sh deleted file mode 100644 index bce13727fb03..000000000000 --- a/security/wazuh-manager/files/patch-framework_wrappers_generic__wrapper.sh +++ /dev/null @@ -1,11 +0,0 @@ ---- framework/wrappers/generic_wrapper.sh.orig 2026-01-07 12:49:52.861330000 -0400 -+++ framework/wrappers/generic_wrapper.sh 2026-01-07 12:52:35.979138000 -0400 -@@ -3,6 +3,8 @@ - # Created by Wazuh, Inc. <info@wazuh.com>. - # This program is free software; you can redistribute it and/or modify it under the terms of GPLv2 - -+CRYPTOGRAPHY_OPENSSL_NO_LEGACY=1; export CRYPTOGRAPHY_OPENSSL_NO_LEGACY -+ - WPYTHON_BIN="framework/python/bin/python3" - - SCRIPT_PATH_NAME="$0" diff --git a/security/wazuh-manager/files/patch-src-headers_notify_op.h b/security/wazuh-manager/files/patch-src-headers_notify_op.h deleted file mode 100644 index 3c3958219d35..000000000000 --- a/security/wazuh-manager/files/patch-src-headers_notify_op.h +++ /dev/null @@ -1,29 +0,0 @@ ---- src/headers/notify_op.h 2026-01-10 15:12:30.071325000 -0800 -+++ src/headers/notify_op.h 2026-01-10 15:21:09.287593000 -0800 -@@ -24,7 +24,7 @@ - WE_WRITE = 2 - } wevent_t; - --#if defined(__linux__) -+#if defined(__linux__) || defined(__FreeBSD__) - - #include <sys/epoll.h> - -@@ -43,7 +43,7 @@ - return notify->events[index].data.fd; - } - --#elif defined(__MACH__) || defined(__FreeBSD__) || defined(__OpenBSD__) -+#elif defined(__MACH__) || defined(__OpenBSD__) - - #include <sys/types.h> - #include <sys/event.h> -@@ -64,7 +64,7 @@ - return notify->events[index].ident; - } - --#endif /* __linux__ */ -+#endif /* __linux__ || __FreeBSD__ */ - - #if defined(__linux__) || defined(__MACH__) || defined(__FreeBSD__) || defined(__OpenBSD__) - diff --git a/security/wazuh-manager/files/patch-src-shared_modules-utils_sqliteWrapperTemp.h b/security/wazuh-manager/files/patch-src-shared_modules-utils_sqliteWrapperTemp.h deleted file mode 100644 index a6eeb2973d97..000000000000 --- a/security/wazuh-manager/files/patch-src-shared_modules-utils_sqliteWrapperTemp.h +++ /dev/null @@ -1,34 +0,0 @@ ---- src/shared_modules/utils/sqliteWrapperTemp.h 2025-11-07 00:46:03.000000000 -0800 -+++ src/shared_modules/utils/sqliteWrapperTemp.h 2026-01-01 13:52:11.656050000 -0800 -@@ -235,8 +235,8 @@ - public: - ~Connection() = default; - -- explicit Connection(const std::string& path) -- : m_db{ openSQLiteDb(path), [](sqlite3 * p) -+ explicit Connection(const std::string& path, const int flags = SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE) -+ : m_db{ openSQLiteDb(path, flags), [](sqlite3 * p) - { - sqlite3_close_v2(p); - } } -@@ -245,7 +245,10 @@ - - if (path.compare(DB_MEMORY) != 0) - { -- const auto result { chmod(path.c_str(), DB_PERMISSIONS) }; -+ const auto result = -+ (flags == SQLITE_OPEN_READONLY) -+ ? 0 -+ : chmod(path.c_str(), DB_PERMISSIONS); - - if (result != 0) - { -@@ -255,7 +258,7 @@ - }; - } - -- m_db.reset(openSQLiteDb(path, SQLITE_OPEN_READWRITE), [](sqlite3 * p) -+ m_db.reset(openSQLiteDb(path, flags), [](sqlite3 * p) - { - sqlite3_close_v2(p); - }); diff --git a/security/wazuh-manager/files/patch-src-shared_modules-utils_stringHelper.h b/security/wazuh-manager/files/patch-src-shared_modules-utils_stringHelper.h deleted file mode 100644 index e60c6542e5a4..000000000000 --- a/security/wazuh-manager/files/patch-src-shared_modules-utils_stringHelper.h +++ /dev/null @@ -1,44 +0,0 @@ ---- src/shared_modules/utils/stringHelper.h 2025-09-23 06:59:40.000000000 -0700 -+++ src/shared_modules/utils/stringHelper.h 2025-10-16 14:04:29.575997000 -0700 -@@ -19,6 +19,7 @@ - #include <sstream> - #include <string> - #include <vector> -+#include <map> - #if __cplusplus >= 201703L - #include <string_view> - #endif -@@ -150,6 +151,15 @@ - return haystack; - } - -+ static std::string join(const std::vector<std::string>& vec, const std::string& delimiter) { -+ std::ostringstream joinResult; -+ for (size_t i = 0; i < vec.size(); ++i) { -+ joinResult << vec[i]; -+ if (i != vec.size() - 1) joinResult << delimiter; -+ } -+ return joinResult.str(); -+ } -+ - static std::vector<std::string> split(const std::string& str, const char delimiter) - { - std::vector<std::string> tokens; -@@ -257,6 +267,17 @@ - - // LCOV_EXCL_STOP - return ret; -+ } -+ -+ static std::string trimToOneSpace(const std::string& str) -+ { -+ std::string str_output; -+ -+ str_output.clear(); -+ std::unique_copy (str.begin(), str.end(), std::back_insert_iterator<std::string>(str_output), -+ [](char a,char b){ return std::isspace(a) && std::isspace(b);}); -+ -+ return str_output; - } - - static std::string toUpperCase(const std::string& str) diff --git a/security/wazuh-manager/files/patch-src-shared_modules-utils_timeHelper.h b/security/wazuh-manager/files/patch-src-shared_modules-utils_timeHelper.h deleted file mode 100644 index 6cd990bde29e..000000000000 --- a/security/wazuh-manager/files/patch-src-shared_modules-utils_timeHelper.h +++ /dev/null @@ -1,20 +0,0 @@ ---- src/shared_modules/utils/timeHelper.h.orig 2024-10-17 00:22:27.000000000 -0700 -+++ src/shared_modules/utils/timeHelper.h 2024-10-20 00:02:09.915969000 -0700 -@@ -196,6 +196,17 @@ - return output.str(); - } - -+ static std::string timeToSeconds(std::string& str) { -+ int seconds; -+ std::tm t; -+ std::istringstream ss(str); -+ ss >> std::get_time(&t, "%H:%M.%S"); -+ -+ seconds = t.tm_hour * 3600 + t.tm_min * 60 + t.tm_sec; -+ -+ return std::to_string(seconds); -+ } -+ - /** - * @brief Get seconds from epoch, since 1970-01-01 00:00:00 UTC. - * @return seconds from epoch. diff --git a/security/wazuh-manager/files/patch-src-shared_notify_op.c b/security/wazuh-manager/files/patch-src-shared_notify_op.c deleted file mode 100644 index 7145314f3106..000000000000 --- a/security/wazuh-manager/files/patch-src-shared_notify_op.c +++ /dev/null @@ -1,29 +0,0 @@ ---- src/shared/notify_op.c 2026-01-10 15:21:56.099810000 -0800 -+++ src/shared/notify_op.c 2026-01-10 15:22:40.484172000 -0800 -@@ -11,7 +11,7 @@ - - #include <shared.h> - --#if defined(__linux__) -+#if defined(__linux__) || defined(__FreeBSD__) - - wnotify_t * wnotify_init(int size) { - wnotify_t * notify; -@@ -54,7 +54,7 @@ - return epoll_wait(notify->fd, notify->events, notify->size, timeout); - } - --#elif defined(__MACH__) || defined(__FreeBSD__) || defined(__OpenBSD__) -+#elif defined(__MACH__) || defined(__OpenBSD__) - - wnotify_t * wnotify_init(int size) { - wnotify_t * notify; -@@ -99,7 +99,7 @@ - return kevent(notify->fd, NULL, 0, notify->events, notify->size, timeout >= 0 ? &ts : NULL); - } - --#endif /* __linux__ */ -+#endif /* __linux__ || __FreeBSD__ */ - - #if defined(__linux__) || defined(__MACH__) || defined(__FreeBSD__) || defined(__OpenBSD__) - diff --git a/security/wazuh-manager/files/patch-src-wazuh_modules_wm_database.c b/security/wazuh-manager/files/patch-src-wazuh_modules_wm_database.c deleted file mode 100644 index c453bfae2a78..000000000000 --- a/security/wazuh-manager/files/patch-src-wazuh_modules_wm_database.c +++ /dev/null @@ -1,14 +0,0 @@ ---- src/wazuh_modules/wm_database.c 2024-01-05 08:38:26.000000000 -0500 -+++ src/wazuh_modules/wm_database.c 2024-01-11 15:18:58.255136000 -0500 -@@ -16,6 +16,11 @@ - #include "addagent/manage_agents.h" // FILE_SIZE - #include "external/cJSON/cJSON.h" - -+#if defined(__FreeBSD__) -+#include <sys/param.h> -+#define HOST_NAME_MAX MAXHOSTNAMELEN -+#endif -+ - #ifndef CLIENT - - #ifdef INOTIFY_ENABLED diff --git a/security/wazuh-manager/files/patch-src_Makefile b/security/wazuh-manager/files/patch-src_Makefile deleted file mode 100644 index 725318d7ad25..000000000000 --- a/security/wazuh-manager/files/patch-src_Makefile +++ /dev/null @@ -1,181 +0,0 @@ ---- src/Makefile 2025-11-07 00:46:03.000000000 -0800 -+++ src/Makefile 2026-01-10 15:39:06.768699000 -0800 -@@ -49,9 +49,11 @@ - - HAS_CHECKMODULE = $(shell command -v checkmodule > /dev/null && echo YES) - HAS_SEMODULE_PACKAGE = $(shell command -v semodule_package > /dev/null && echo YES) -+ifeq (${uname_S},Linux) - CHECK_ARCHLINUX := $(shell sh -c 'grep "Arch Linux" /etc/os-release > /dev/null && echo YES || echo not') - CHECK_CENTOS5 := $(shell sh -c 'grep "CentOS release 5." /etc/redhat-release 2>&1 > /dev/null && echo YES || echo not') - CHECK_ALPINE := $(shell sh -c 'grep "Alpine Linux" /etc/os-release 2>&1 > /dev/null && echo YES || echo not') -+endif - - ARCH_FLAGS = - -@@ -113,7 +115,7 @@ - USE_PRELUDE?=no - USE_ZEROMQ?=no - USE_GEOIP?=no --USE_INOTIFY=no -+USE_INOTIFY?=no - USE_BIG_ENDIAN=no - USE_AUDIT=no - MINGW_HOST=unknown -@@ -178,6 +180,8 @@ - DEFINES+=-DUSER=\"${WAZUH_USER}\" - DEFINES+=-DGROUPGLOBAL=\"${WAZUH_GROUP}\" - -+OSSEC_CFLAGS+=-I./ -I./headers/ -I${EXTERNAL_OPENSSL}include -I$(EXTERNAL_JSON) -I${EXTERNAL_LIBYAML}include -I${EXTERNAL_CURL}include -I${EXTERNAL_MSGPACK}include -I${EXTERNAL_BZIP2} -I${SHARED_MODULES}common -I${DBSYNC}include -I${RSYNC}include -I${SYSCOLLECTOR}include -I${SYSINFO}include -I${EXTERNAL_LIBPCRE2}include -I${EXTERNAL_RPM}/builddir/output/include -I${SYSCHECK}include -I${ROUTER}include -I${CONTENT_MANAGER}include -I${VULNERABILITY_SCANNER}include -I${INVENTORY_HARVESTER}include -I./shared_modules/ -I${LOCALBASE}/include/libepoll-shim -+ - ifneq (${TARGET},winagent) - DEFINES+=-D${uname_S} - ifeq (${uname_S},Linux) -@@ -272,13 +276,14 @@ - ifeq (${uname_S},FreeBSD) - DEFINES+=-DFreeBSD - OSSEC_CFLAGS+=-pthread -I/usr/local/include -- OSSEC_LDFLAGS+=-pthread -+ OSSEC_LDFLAGS+=-pthread -lnghttp2 -lepoll-shim - OSSEC_LDFLAGS+=-L/usr/local/lib - OSSEC_LDFLAGS+='-Wl,-rpath,$$ORIGIN/../lib' -- AR_LDFLAGS+=-pthread -+ AR_LDFLAGS+=-pthread -lnghttp2 -lepoll-shim - AR_LDFLAGS+=-L/usr/local/lib - AR_LDFLAGS+='-Wl,-rpath,$$ORIGIN/../../lib' - PRECOMPILED_OS:=freebsd -+ CC?=cc - else - ifeq (${uname_S},NetBSD) - DEFINES+=-DNetBSD -@@ -437,7 +442,6 @@ - - OSSEC_CFLAGS+=${DEFINES} - OSSEC_CFLAGS+=-pipe -Wall -Wextra -std=gnu99 --OSSEC_CFLAGS+=-I./ -I./headers/ -I${EXTERNAL_OPENSSL}include -I$(EXTERNAL_JSON) -I${EXTERNAL_LIBYAML}include -I${EXTERNAL_CURL}include -I${EXTERNAL_MSGPACK}include -I${EXTERNAL_BZIP2} -I${SHARED_MODULES}common -I${DBSYNC}include -I${RSYNC}include -I${SYSCOLLECTOR}include -I${SYSINFO}include -I${EXTERNAL_LIBPCRE2}include -I${EXTERNAL_RPM}/builddir/output/include -I${SYSCHECK}include -I${ROUTER}include -I${CONTENT_MANAGER}include -I${VULNERABILITY_SCANNER}include -I${INVENTORY_HARVESTER}include -I./shared_modules/ - - OSSEC_CFLAGS += ${CFLAGS} - OSSEC_LDFLAGS += ${LDFLAGS} -@@ -534,8 +538,8 @@ - ifneq (,$(filter ${USE_INOTIFY},YES auto yes y Y 1)) - DEFINES+=-DINOTIFY_ENABLED - ifeq (${uname_S},FreeBSD) -- OSSEC_LDFLAGS+=-L/usr/local/lib -I/usr/local/include -- OSSEC_LIBS+=-linotify -+ OSSEC_LDFLAGS+=-I/usr/local/include -L/usr/local/lib -+ OSSEC_LIBS+=-L/usr/local/lib -linotify - OSSEC_CFLAGS+=-I/usr/local/include - endif - endif -@@ -962,6 +966,8 @@ - EXTERNAL_LIBS += $(LIBCURL_LIB) - else ifeq (${uname_S},Linux) - EXTERNAL_LIBS += $(LIBCURL_LIB) -+else ifeq (${uname_S},FreeBSD) -+ EXTERNAL_LIBS += $(LIBCURL_LIB) - else ifeq (${uname_S},Darwin) - EXTERNAL_LIBS += $(LIBCURL_LIB) - endif -@@ -1196,9 +1202,13 @@ - cd $(EXTERNAL_CURL) && CPPFLAGS="-fPIC -I${ROUTE_PATH}/${EXTERNAL_OPENSSL}include" LDFLAGS="-L${ROUTE_PATH}/${EXTERNAL_OPENSSL}" LIBS="-ldl -lpthread" ./configure --with-openssl="${ROUTE_PATH}/${EXTERNAL_OPENSSL}" --disable-ldap --without-libidn2 --without-libpsl --without-brotli --without-nghttp2 --without-zstd - endif - else -+ifeq (${uname_S},FreeBSD) -+ cd $(EXTERNAL_CURL) && CPPFLAGS="-fPIC -I${ROUTE_PATH}/${EXTERNAL_OPENSSL}include" LDFLAGS="-L${ROUTE_PATH}/${EXTERNAL_OPENSSL}" LIBS="-pthread" ./configure --with-ssl="${ROUTE_PATH}/${EXTERNAL_OPENSSL}" --disable-ldap --without-libidn2 --without-brotli --without-nghttp2 --without-librtmp --without-zstd --without-libpsl -+else - cd $(EXTERNAL_CURL) && CPPFLAGS="-fPIC -I${ROUTE_PATH}/${EXTERNAL_OPENSSL}include" LDFLAGS="-L${ROUTE_PATH}/${EXTERNAL_OPENSSL}" LIBS="-lpthread" ./configure --with-openssl="${ROUTE_PATH}/${EXTERNAL_OPENSSL}" --disable-ldap --without-libidn2 --without-brotli --without-nghttp2 --without-librtmp --without-zstd --without-libpsl - endif - endif -+endif - - - #### procps ######### -@@ -2307,7 +2317,7 @@ - #### FIM ###### - - wazuh-syscheckd: librootcheck.a libwazuh.a ${WAZUHEXT_LIB} build_shared_modules -- cd syscheckd && mkdir -p build && cd build && cmake ${SYSCHECK_OS} ${CMAKE_OPTS} -DCMAKE_C_FLAGS="${DEFINES} -pipe -Wall -Wextra -std=gnu99" ${SYSCHECK_TEST} ${SYSCHECK_RELEASE_TYPE} .. && ${MAKE} -+ cd syscheckd && mkdir -p build && cd build && cmake ${CMAKE_OPTS} -DCMAKE_C_FLAGS="${DEFINES} ${OSSEC_CFLAGS} -pipe -Wall -Wextra -std=gnu99" -DCMAKE_EXE_LINKER_FLAGS="${OSSEC_LDFLAGS} ${OSSEC_LIBS}" ${SYSCHECK_TEST} ${SYSCHECK_RELEASE_TYPE} .. && ${MAKE} - - #### Monitor ####### - -@@ -2339,13 +2349,13 @@ - os_auth_o := $(os_auth_c:.c=.o) - - os_auth/%.o: os_auth/%.c -- ${OSSEC_CC} ${OSSEC_CFLAGS} -I./os_auth -DARGV0=\"wazuh-authd\" -c $^ -o $@ -+ ${OSSEC_CC} -I${LOCALBASE}/include/libepoll-shim ${OSSEC_CFLAGS} -I./os_auth -DARGV0=\"wazuh-authd\" -c $^ -o $@ - - agent-auth: addagent/validate.o os_auth/main-client.o os_auth/ssl.o os_auth/check_cert.o - ${OSSEC_CCBIN} ${OSSEC_LDFLAGS} $^ ${OSSEC_LIBS} -o $@ - - wazuh-authd: addagent/validate.o os_auth/main-server.o os_auth/local-server.o os_auth/ssl.o os_auth/check_cert.o os_auth/config.o os_auth/authcom.o os_auth/auth.o os_auth/key_request.o os_auth/generate_cert.o -- ${OSSEC_CCBIN} ${OSSEC_LDFLAGS} $^ ${OSSEC_LIBS} -o $@ -+ ${OSSEC_CCBIN} ${OSSEC_LDFLAGS} $^ ${OSSEC_LIBS} -lepoll-shim -o $@ - - #### integratord ##### - -@@ -2485,7 +2495,7 @@ - WPYTHON_DIR := ${INSTALLDIR}/framework/python - OPTIMIZE_CPYTHON?=no - WPYTHON_TAR=cpython.tar.gz --WLIBPYTHON=libpython3.10.so.1.0 -+WLIBPYTHON=libpython3.11.so.1.0 - - ifneq (,$(filter ${OPTIMIZE_CPYTHON},YES yes y Y 1)) - CPYTHON_FLAGS=--enable-optimizations -@@ -2499,22 +2509,45 @@ - endif - - ifeq (,$(wildcard ${EXTERNAL_CPYTHON}/python)) -- export WPATH_LIB="'\$$\$$ORIGIN/../../../lib'" && export SOURCE_PATH=${ROUTE_PATH} && export WAZUH_FFI_PATH=${EXTERNAL_LIBFFI} && export LD_LIBRARY_PATH=${ROUTE_PATH} && cd ${EXTERNAL_CPYTHON} && ./configure --prefix="${WPYTHON_DIR}" --libdir="${WPYTHON_DIR}/lib" --enable-shared --with-openssl="${ROUTE_PATH}/${EXTERNAL_OPENSSL}" LDFLAGS="${ARCH_FLAGS} -L${ROUTE_PATH} -lwazuhext -Wl,-rpath,'\$$\$$ORIGIN/../../../lib',--disable-new-dtags" CPPFLAGS="-I${ROUTE_PATH}/${EXTERNAL_OPENSSL}" $(CPYTHON_FLAGS) && ${MAKE} -+ export WPATH_LIB="'\$$\$$ORIGIN/../../../lib'" && export SOURCE_PATH=${ROUTE_PATH} && export WAZUH_FFI_PATH=${EXTERNAL_LIBFFI} && export LD_LIBRARY_PATH=${ROUTE_PATH} && cd ${EXTERNAL_CPYTHON} && ./configure --prefix="${WPYTHON_DIR}" --libdir="${WPYTHON_DIR}/lib" --enable-shared --with-openssl="${ROUTE_PATH}/${EXTERNAL_OPENSSL}" LIBSQLITE3_CFLAGS="-I${LOCALBASE}/include" LIBSQLITE3_LIBS="-L${LOCALBASE}/lib -lsqlite3" LDFLAGS="${ARCH_FLAGS} -L${ROUTE_PATH} -lwazuhext -Wl,-rpath,'\$$\$$ORIGIN/../../../lib',--disable-new-dtags" CPPFLAGS="-I${ROUTE_PATH}/${EXTERNAL_OPENSSL}" $(CPYTHON_FLAGS) && ${MAKE} - endif - - build_python: $(WAZUHEXT_LIB) - - install_python: - ifneq (,$(wildcard ${EXTERNAL_CPYTHON})) -- cd ${EXTERNAL_CPYTHON} && export WPATH_LIB=${INSTALLDIR}/lib && export SOURCE_PATH=${ROUTE_PATH} && export WAZUH_FFI_PATH=${EXTERNAL_LIBFFI} && ${MAKE} install -+ cd ${EXTERNAL_CPYTHON} && export WPATH_LIB=${INSTALLDIR}/lib && export SOURCE_PATH=${ROUTE_PATH} && export WAZUH_FFI_PATH=${EXTERNAL_LIBFFI} && export LD_LIBRARY_PATH=${ROUTE_PATH} && ${MAKE} install - else - mkdir -p ${WPYTHON_DIR} - cp external/${WPYTHON_TAR} ${WPYTHON_DIR}/${WPYTHON_TAR} && ${TAR} ${WPYTHON_DIR}/${WPYTHON_TAR} -C ${WPYTHON_DIR} && rm -rf ${WPYTHON_DIR}/${WPYTHON_TAR} - endif -+ifeq (${uname_S},FreeBSD) -+ mkdir -p $(STAGEDIR)${INSTALLDIR}/lib -+ find $(STAGEDIR)${WPYTHON_DIR} -name "*${WLIBPYTHON}" -exec ln -f {} $(STAGEDIR)${INSTALLDIR}/lib/${WLIBPYTHON} \; -+else - find ${WPYTHON_DIR} -name "*${WLIBPYTHON}" -exec ln -f {} ${INSTALLDIR}/lib/${WLIBPYTHON} \; -+endif - - python_dependencies := requirements.txt - -+ifeq (${uname_S},FreeBSD) -+install_dependencies: -+ifneq (,$(wildcard ${EXTERNAL_CPYTHON})) -+ $(STAGEDIR)${WPYTHON_DIR}/bin/python3 -B -m pip install --upgrade pip --prefix=${WPYTHON_DIR} --root=$(STAGEDIR) --no-index --find-links=wazuh-cache/ --cache-dir=wazuh-cache/ --no-compile -+ LD_LIBRARY_PATH="$(STAGEDIR)${INSTALLDIR}/lib" LDFLAGS="-L$(STAGEDIR)${INSTALLDIR}/lib" $(STAGEDIR)${WPYTHON_DIR}/bin/python3 -m pip install wazuh-cache-any/*.whl --root=$(STAGEDIR) --prefix=${WPYTHON_DIR} --no-deps --no-compile -+ LD_LIBRARY_PATH="$(STAGEDIR)${INSTALLDIR}/lib" LDFLAGS="-L$(STAGEDIR)${INSTALLDIR}/lib" $(STAGEDIR)${WPYTHON_DIR}/bin/python3 -m pip install wazuh-cache/*.whl --root=$(STAGEDIR) --prefix=${WPYTHON_DIR} --no-deps --no-compile -+endif -+ -+install_framework: -+ LD_LIBRARY_PATH="$(STAGEDIR)${INSTALLDIR}/lib" LDFLAGS="-L$(STAGEDIR)${INSTALLDIR}/lib" $(STAGEDIR)${WPYTHON_DIR}/bin/python3 -m pip install wazuh-python/wazuh*.whl --root=$(STAGEDIR) --prefix=${WPYTHON_DIR} --no-deps --no-compile -+ chmod -R o=- $(STAGEDIR)${WPYTHON_DIR} -+ -+install_api: -+ LD_LIBRARY_PATH="$(STAGEDIR)${INSTALLDIR}/lib" LDFLAGS="-L$(STAGEDIR)${INSTALLDIR}/lib" $(STAGEDIR)${WPYTHON_DIR}/bin/python3 -m pip install wazuh-python/api*.whl --root=$(STAGEDIR) --prefix=${WPYTHON_DIR} --no-deps --no-compile -+ -+install_mitre: -+ export CRYPTOGRAPHY_OPENSSL_NO_LEGACY=1 && cd ../tools/mitre && $(STAGEDIR)${WPYTHON_DIR}/bin/python3 mitredb.py -d $(STAGEDIR)${INSTALLDIR}/var/db/mitre.db -+else - install_dependencies: install_python - ifneq (,$(wildcard ${EXTERNAL_CPYTHON})) - ${WPYTHON_DIR}/bin/python3 -m pip install --upgrade pip --index-url=file://${ROUTE_PATH}/${EXTERNAL_CPYTHON}/Dependencies/simple -@@ -2531,6 +2564,7 @@ - - install_mitre: install_python - cd ../tools/mitre && ${WPYTHON_DIR}/bin/python3 mitredb.py -d ${INSTALLDIR}/var/db/mitre.db -+endif - - #################### - #### test ########## diff --git a/security/wazuh-manager/files/patch-src_analysisd_analysisd.c b/security/wazuh-manager/files/patch-src_analysisd_analysisd.c deleted file mode 100644 index aa1a242a682b..000000000000 --- a/security/wazuh-manager/files/patch-src_analysisd_analysisd.c +++ /dev/null @@ -1,79 +0,0 @@ ---- src/analysisd/analysisd.c 2025-09-23 06:59:40.000000000 -0700 -+++ src/analysisd/analysisd.c 2025-10-13 02:16:24.332647000 -0700 -@@ -237,7 +237,11 @@ - /* Hourly alerts mutex */ - pthread_mutex_t hourly_alert_mutex = PTHREAD_MUTEX_INITIALIZER; - /* hot reload mutes */ -+#if defined(__FreeBSD__) -+static portable_rwlock_t g_hotreload_ruleset_mutex; -+#else - static pthread_rwlock_t g_hotreload_ruleset_mutex; -+#endif - - /* Reported mutexes */ - static pthread_mutex_t writer_threads_mutex = PTHREAD_MUTEX_INITIALIZER; -@@ -842,11 +846,15 @@ - w_init_queues(); - - /* Sync for event queues and API, for hot reload */ -+#if defined(__FreeBSD__) -+ portable_rwlock_init(&g_hotreload_ruleset_mutex); -+#else - pthread_rwlockattr_t rwlock_attr; - pthread_rwlockattr_init(&rwlock_attr); - pthread_rwlockattr_setkind_np(&rwlock_attr, PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP); - pthread_rwlock_init(&g_hotreload_ruleset_mutex, &rwlock_attr); - pthread_rwlockattr_destroy(&rwlock_attr); -+#endif - - // Start com request thread - w_create_thread(asyscom_main, NULL); -@@ -1226,7 +1234,11 @@ - - result = -1; - // take the ruleset -+#if defined(__FreeBSD__) -+ w_portable_rwlock_rdlock(&g_hotreload_ruleset_mutex); -+#else - w_rwlock_rdlock(&g_hotreload_ruleset_mutex); -+#endif - - if (msg[0] == SYSCHECK_MQ) { - if (!queue_full(decode_queue_syscheck_input)) { -@@ -1426,8 +1438,11 @@ - } - } - -- -+#if defined(__FreeBSD__) -+ w_portable_rwlock_unlock_read(&g_hotreload_ruleset_mutex); -+#else - w_rwlock_unlock(&g_hotreload_ruleset_mutex); -+#endif - - if (result == -1) { - if (!reported_eps_drop) { -@@ -2454,7 +2469,11 @@ - - // Sync thread for reloading ruleset, - mdebug1("Blocking input threads to reload ruleset"); -+#if defined(__FreeBSD__) -+ w_portable_rwlock_wrlock(&g_hotreload_ruleset_mutex); -+#else - w_rwlock_wrlock(&g_hotreload_ruleset_mutex); -+#endif - - // Wait for a clean pipeline - mdebug1("Wait for pipeline to be clean"); -@@ -2481,7 +2500,11 @@ - w_hotreload_reload_internal_decoders(); - - // Run the new ruleset -+#if defined(__FreeBSD__) -+ w_portable_rwlock_unlock_write(&g_hotreload_ruleset_mutex); -+#else - w_rwlock_unlock(&g_hotreload_ruleset_mutex); -+#endif - - mdebug1("Unblocking input threads (Enable new ruleset)"); - diff --git a/security/wazuh-manager/files/patch-src_data__provider-CMakeLists.txt b/security/wazuh-manager/files/patch-src_data__provider-CMakeLists.txt deleted file mode 100644 index 03dd0efcd223..000000000000 --- a/security/wazuh-manager/files/patch-src_data__provider-CMakeLists.txt +++ /dev/null @@ -1,39 +0,0 @@ ---- src/data_provider/CMakeLists.txt 2025-11-07 08:46:03.000000000 +0000 -+++ src/data_provider/CMakeLists.txt 2026-01-13 15:21:46.999172000 +0000 -@@ -104,7 +104,6 @@ - include_directories(${CMAKE_SOURCE_DIR}/src/extended_sources/wrappers/unix/darwin) - endif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") - -- - if(CMAKE_SYSTEM_NAME STREQUAL "HP-UX") - link_directories(${INSTALL_PREFIX}/lib) - endif(CMAKE_SYSTEM_NAME STREQUAL "HP-UX") -@@ -119,6 +118,11 @@ - include_directories(${CMAKE_SOURCE_DIR}/src/extended_sources/wrappers/unix/darwin) - endif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") - -+if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") -+ include_directories(${CMAKE_SOURCE_DIR}/src/extended_sources/wrappers/unix/) -+ include_directories(${CMAKE_SOURCE_DIR}/src/extended_sources/wrappers/unix/freebsd) -+endif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") -+ - link_directories(${SRC_FOLDER}) - link_directories(${SRC_FOLDER}/external/sqlite/) - link_directories(${SRC_FOLDER}/external/cJSON/) -@@ -210,6 +214,7 @@ - - if(CMAKE_SYSTEM_NAME STREQUAL "Linux" OR - CMAKE_SYSTEM_NAME STREQUAL "Darwin" OR -+ CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR - CMAKE_SYSTEM_NAME STREQUAL "Windows") - add_subdirectory(src/extended_sources) - endif() -@@ -250,7 +255,7 @@ - target_link_libraries(sysinfo cjson ${SRC_FOLDER}/external/libplist/bin/lib/libplist-2.0.a ${iokit_lib} ${corefoundation_lib} groups users services browser_extensions) - endif(CMAKE_SYSTEM_NAME STREQUAL "Windows") - --target_link_libraries(sysinfo wazuhext) -+target_link_libraries(sysinfo nghttp2 wazuhext users groups) - - if(CMAKE_SYSTEM_NAME STREQUAL "Linux") - set(CURL_DEP "wazuhext") diff --git a/security/wazuh-manager/files/patch-src_data__provider_src-sysInfoFreeBSD.cpp b/security/wazuh-manager/files/patch-src_data__provider_src-sysInfoFreeBSD.cpp deleted file mode 100644 index 8ef1dd376f3e..000000000000 --- a/security/wazuh-manager/files/patch-src_data__provider_src-sysInfoFreeBSD.cpp +++ /dev/null @@ -1,634 +0,0 @@ ---- src/data_provider/src/sysInfoFreeBSD.cpp 2025-11-07 08:46:03.000000000 +0000 -+++ src/data_provider/src/sysInfoFreeBSD.cpp 2026-01-14 16:59:37.014537000 +0000 -@@ -11,20 +11,33 @@ - #include "sysInfo.hpp" - #include "cmdHelper.h" - #include "stringHelper.h" -+#include "timeHelper.h" - #include "osinfo/sysOsParsers.h" -+#include "sqliteWrapperTemp.h" -+#include "filesystemHelper.h" - #include <sys/sysctl.h> - #include <sys/vmmeter.h> - #include <sys/utsname.h> - #include "sharedDefs.h" -+#include <regex> -+#include "groups_freebsd.hpp" -+#include "user_groups_freebsd.hpp" -+#include "logged_in_users_freebsd.hpp" -+#include "sudoers_unix.hpp" -+#include "users_freebsd.hpp" - -+const std::string PKG_DB_PATHNAME {"/var/db/pkg/local.sqlite"}; -+const std::string PKG_QUERY {"SELECT p.name, p.maintainer, p.version, p.arch, p.comment, p.flatsize, p.time, v.annotation AS repository,p.origin FROM packages p LEFT JOIN (SELECT pa.package_id, pa.value_id FROM pkg_annotation pa JOIN annotation t ON t.annotation_id = pa.tag_id AND t.annotation = 'repository') pr ON pr.package_id = p.id LEFT JOIN annotation v ON v.annotation_id = pr.value_id;"}; -+ - static void getMemory(nlohmann::json& info) - { -+ constexpr auto vmFree{"vm.stats.vm.v_free_count"}; -+ constexpr auto vmInactive{"vm.stats.vm.v_inactive_count"}; - constexpr auto vmPageSize{"vm.stats.vm.v_page_size"}; -- constexpr auto vmTotal{"vm.vmtotal"}; -+ constexpr auto vmTotal{"hw.physmem"}; - uint64_t ram{0}; -- const std::vector<int> mib{CTL_HW, HW_PHYSMEM}; - size_t len{sizeof(ram)}; -- auto ret{sysctl(const_cast<int*>(mib.data()), mib.size(), &ram, &len, nullptr, 0)}; -+ auto ret{sysctlbyname(vmTotal, &ram, &len, nullptr, 0)}; - - if (ret) - { -@@ -52,11 +65,23 @@ - }; - } - -- struct vmtotal vmt {}; -+ uint64_t freeMem{0}; -+ len = sizeof(freeMem); -+ ret = sysctlbyname(vmFree, &freeMem, &len, nullptr, 0); - -- len = sizeof(vmt); -+ if (ret) -+ { -+ throw std::system_error -+ { -+ ret, -+ std::system_category(), -+ "Error reading free memory size." -+ }; -+ } - -- ret = sysctlbyname(vmTotal, &vmt, &len, nullptr, 0); -+ uint64_t inactiveMem{0}; -+ len = sizeof(inactiveMem); -+ ret = sysctlbyname(vmInactive, &inactiveMem, &len, nullptr, 0); - - if (ret) - { -@@ -64,11 +89,11 @@ - { - ret, - std::system_category(), -- "Error reading total memory." -+ "Error reading inactive memory size." - }; - } - -- const auto ramFree{(vmt.t_free * pageSize) / KByte}; -+ const auto ramFree{(freeMem + inactiveMem) * pageSize / KByte}; - info["ram_free"] = ramFree; - info["ram_usage"] = 100 - (100 * ramFree / ramTotal); - } -@@ -96,7 +121,43 @@ - - static std::string getSerialNumber() - { -- return UNKNOWN_VALUE; -+ size_t len{0}; -+ auto ret{sysctlbyname("kern.hostuuid", nullptr, &len, nullptr, 0)}; -+ -+ if (ret) -+ { -+ throw std::system_error -+ { -+ ret, -+ std::system_category(), -+ "Error reading serial number (aka hostuuid)." -+ }; -+ } -+ -+ const auto spBuff{std::make_unique<char[]>(len + 1)}; -+ -+ if (!spBuff) -+ { -+ throw std::runtime_error -+ { -+ "Error allocating memory to read the serial number (aka hostuuid)." -+ }; -+ } -+ -+ ret = sysctlbyname("kern.hostuuid", spBuff.get(), &len, nullptr, 0); -+ -+ if (ret) -+ { -+ throw std::system_error -+ { -+ ret, -+ std::system_category(), -+ "Error reading serial number (aka hostuuid)." -+ }; -+ } -+ -+ spBuff.get()[len] = 0; -+ return std::string{reinterpret_cast<const char*>(spBuff.get())}; - } - - static int getCpuCores() -@@ -184,8 +245,12 @@ - - nlohmann::json SysInfo::getProcessesInfo() const - { -- // Currently not supported for this OS -- return nlohmann::json {}; -+ nlohmann::json ret; -+ getProcessesInfo([&ret](nlohmann::json & data) -+ { -+ ret.push_back(data); -+ }); -+ return ret; - } - - nlohmann::json SysInfo::getOsInfo() const -@@ -196,11 +261,12 @@ - - if (!spParser->parseUname(Utils::exec("uname -r"), ret)) - { -- ret["os_name"] = "BSD"; - ret["os_platform"] = "bsd"; - ret["os_version"] = UNKNOWN_VALUE; - } - -+ ret["os_name"] = "FreeBSD"; -+ - if (uname(&uts) >= 0) - { - ret["sysname"] = uts.sysname; -@@ -215,44 +281,260 @@ - - nlohmann::json SysInfo::getPorts() const - { -- // Currently not supported for this OS. -- return nlohmann::json {}; --} -+ nlohmann::json ports {}; -+ -+ /* USER COMMAND PID FD PROTO LOCAL_ADDRESS FOREIGN_ADDRESS PATH_STATE CONN_STATE */ -+ -+#if __FreeBSD_version > 1500045 -+ const auto query{exec(R"(sockstat -46qs --libxo json)")}; - --void SysInfo::getProcessesInfo(std::function<void(nlohmann::json&)> /*callback*/) const --{ -- // Currently not supported for this OS. -+ if (!query.empty()) -+ { -+ nlohmann::json portsjson; -+ portsjson = nlohmann::json::parse(query); -+ auto &portsResult = portsjson["sockstat"]["socket"]; -+ -+ for(auto &port : portsResult) { -+ std::string localip = ""; -+ std::string localport = ""; -+ std::string remoteip = ""; -+ std::string remoteport = ""; -+ std::string statedata = ""; -+ -+ if (port["pid"] != nullptr) { -+ -+ localip = port["local"]["address"]; -+ remoteip = port["foreign"]["address"]; -+ statedata = port["conn-state"] != nullptr ? (port["conn-state"] == "LISTEN" ? "listening" : Utils::toLowerCase(port["conn-state"])) : statedata; -+ -+ if (port["local"]["address"] == "*") { -+ if ((port["proto"] == "udp4") || (port["proto"] == "tcp4")) { -+ localip = "0.0.0.0"; -+ } else { -+ localip = "::"; -+ } -+ } -+ -+ localport = port["local"]["port"]; -+ -+ if (port["foreign"]["address"] == "*") { -+ if ((port["proto"] == "udp4") || (port["proto"] == "tcp4")) { -+ remoteip = 0.0.0.0; -+ } else { -+ remoteip = "::"; -+ } -+ } -+ -+ remoteport = port["foreign"]["port"]; -+ -+ nlohmann::json portRecord {}; -+ -+ portRecord["protocol"] = port["proto"]; -+ portRecord["local_ip"] = localip; -+ portRecord["local_port"] = localport == "*" ? "0" : localport; -+ portRecord["remote_ip"] = remoteip; -+ portRecord["remote_port"] = remoteport == "*" ? "0" : remoteport; -+ portRecord["tx_queue"] = 0; -+ portRecord["rx_queue"] = 0; -+ portRecord["inode"] = port["fd"]; -+ portRecord["state"] = statedata == "??" ? "" : statedata; -+ portRecord["pid"] = port["pid"]; -+ portRecord["process"] = port["command"]; -+ -+ ports.push_back(portRecord); -+ } -+ } -+ } -+#else -+ const auto query{Utils::exec(R"(sockstat -46qs)")}; -+ -+ if (!query.empty()) -+ { -+ const auto lines{Utils::split(Utils::trimToOneSpace(query), '\n')}; -+ -+ std::regex expression(R"(^(\S+)\s+(\S+)\s+(\d+)\s+(\d+)\s*(\S+)\s+(\S+)\s+(\S+)(?:\s+(\S+))?\s*$)"); -+ -+ for (const auto& line : lines) -+ { -+ std::smatch data; -+ -+ if (std::regex_search(line, data, expression)) -+ { -+ std::string localip = ""; -+ std::string localport = ""; -+ std::string remoteip = ""; -+ std::string remoteport = ""; -+ std::string statedata = ""; -+ -+ auto localdata{Utils::split(data[6], ':')}; -+ auto remotedata{Utils::split(data[7], ':')}; -+ -+ if (data[8].matched ) { -+ statedata = data[8] == "LISTEN" ? "listening" : Utils::toLowerCase(data[8]); -+ } -+ -+ localport = localdata[localdata.size() - 1]; -+ localdata.pop_back(); -+ localip = Utils::join(localdata, ":"); -+ remoteport = remotedata[remotedata.size() - 1]; -+ remotedata.pop_back(); -+ remoteip = Utils::join(remotedata, ":"); -+ -+ if(localip == "*") { -+ if((data[5] == "tcp4") || (data[5] == "udp4")) { -+ localip = "0.0.0.0"; -+ } else { -+ localip = "::"; -+ } -+ } -+ -+ if(remoteip == "*") { -+ if((data[5] == "tcp4") || (data[5] == "udp4")) { -+ remoteip = "0.0.0.0"; -+ } else { -+ remoteip = "::"; -+ } -+ } -+ -+ if(data[0] != "?") { -+ nlohmann::json port {}; -+ -+ port["protocol"] = data[5]; -+ port["local_ip"] = localip; -+ port["local_port"] = localport == "*" ? "0" : localport; -+ port["remote_ip"] = remoteip; -+ port["remote_port"] = remoteport == "*" ? "0" : remoteport; -+ port["tx_queue"] = 0; -+ port["rx_queue"] = 0; -+ port["inode"] = data[4]; -+ port["state"] = statedata == "??" ? "" : statedata; -+ port["pid"] = data[3]; -+ port["process"] = data[2]; -+ -+ ports.push_back(port); -+ } -+ } -+ } -+ } -+#endif -+ return ports; - } - --void SysInfo::getPackages(std::function<void(nlohmann::json&)> callback) const -+void SysInfo::getProcessesInfo(std::function<void(nlohmann::json&)> callback) const - { -- const auto query{Utils::exec(R"(pkg query -a "%n|%m|%v|%q|%c")")}; -+ const auto query{Utils::exec(R"(ps -ax -w -o pid,comm,state,ppid,usertime,systime,user,ruser,svuid,group,rgroup,svgid,pri,nice,ssiz,vsz,rss,pmem,etimes,sid,pgid,tpgid,tty,cpu,nlwp,args --libxo json)")}; - - if (!query.empty()) - { -- const auto lines{Utils::split(query, '\n')}; -+ nlohmann::json psjson; -+ int64_t agenttime = {Utils::getSecondsFromEpoch()}; -+ int64_t etimes{0}; -+ psjson = nlohmann::json::parse(query); -+ auto &processes = psjson["process-information"]["process"]; - -- for (const auto& line : lines) -+ for(auto &process : processes) { -+ std::string user_time{""}; -+ std::string system_time{""}; -+ etimes = std::stoll(process["elapsed-times"].get<std::string>()); -+ -+ user_time = process["user-time"].get<std::string>(); -+ system_time = process["system-time"].get<std::string>(); -+ -+ nlohmann::json jsProcessInfo{}; -+ jsProcessInfo["pid"] = process["pid"].get<std::string>(); -+ jsProcessInfo["name"] = process["command"].get<std::string>(); -+ jsProcessInfo["state"] = process["state"].get<std::string>(); -+ jsProcessInfo["ppid"] = process["ppid"].get<std::string>(); -+ jsProcessInfo["utime"] = Utils::timeToSeconds(user_time); -+ jsProcessInfo["stime"] = Utils::timeToSeconds(system_time); -+ jsProcessInfo["cmd"] = process["command"].get<std::string>(); -+ jsProcessInfo["argvs"] = process["arguments"].get<std::string>(); -+ jsProcessInfo["euser"] = process["user"].get<std::string>(); -+ jsProcessInfo["ruser"] = process["real-user"].get<std::string>(); -+ jsProcessInfo["suser"] = process["saved-uid"].get<std::string>(); -+ jsProcessInfo["egroup"] = process["group"].get<std::string>(); -+ jsProcessInfo["rgroup"] = process["real-group"].get<std::string>(); -+ jsProcessInfo["sgroup"] = process["saved-gid"].get<std::string>(); -+ jsProcessInfo["fgroup"] = process["group"].get<std::string>(); -+ jsProcessInfo["priority"] = process["priority"].get<std::string>(); -+ jsProcessInfo["nice"] = process["nice"].get<std::string>(); -+ jsProcessInfo["size"] = process["stack-size"].get<std::string>(); -+ jsProcessInfo["vm_size"] = process["virtual-size"].get<std::string>(); -+ jsProcessInfo["resident"] = process["rss"].get<std::string>(); -+ //jsProcessInfo["share"] = process["percent-memory"].get<std::string>(); -+ jsProcessInfo["start_time"] = agenttime - etimes; -+ jsProcessInfo["pgrp"] = process["process-group"].get<std::string>(); -+ jsProcessInfo["session"] = process["sid"].get<std::string>(); -+ jsProcessInfo["tgid"] = process["terminal-process-gid"].get<std::string>(); -+ //jsProcessInfo["tty"] = process["tty"].get<std::string>(); // this field should be TEXT into local.db -+ jsProcessInfo["processor"] = process["on-cpu"].get<std::string>(); -+ jsProcessInfo["nlwp"] = process["threads"].get<std::string>(); -+ -+ callback(jsProcessInfo); -+ } -+ } -+} -+ -+void SysInfo::getPackages(std::function<void(nlohmann::json&)> callback) const -+{ -+ if (Utils::existsRegular(PKG_DB_PATHNAME)) -+ { -+ try - { -- const auto data{Utils::split(line, '|')}; -- nlohmann::json package; -+ std::shared_ptr<SQLite::IConnection> sqliteConnection = std::make_shared<SQLite::Connection>(PKG_DB_PATHNAME, SQLITE_OPEN_READONLY); - -- package["name"] = data[0]; -- package["vendor"] = data[1]; -- package["version"] = data[2]; -- package["install_time"] = UNKNOWN_VALUE; -- package["location"] = UNKNOWN_VALUE; -- package["architecture"] = data[3]; -- package["groups"] = UNKNOWN_VALUE; -- package["description"] = data[4]; -- package["size"] = 0; -- package["priority"] = UNKNOWN_VALUE; -- package["source"] = UNKNOWN_VALUE; -- package["format"] = "pkg"; -- // The multiarch field won't have a default value -+ SQLite::Statement stmt -+ { -+ sqliteConnection, -+ PKG_QUERY -+ }; - -- callback(package); -+ while (SQLITE_ROW == stmt.step()) -+ { -+ try -+ { -+ auto pkg_name{ stmt.column(0) }; -+ auto pkg_maintainer{ stmt.column(1) }; -+ auto pkg_version{ stmt.column(2) }; -+ auto pkg_arch{ stmt.column(3) }; -+ auto pkg_comment{ stmt.column(4) }; -+ auto pkg_flatsize{ stmt.column(5) }; -+ auto pkg_time{ stmt.column(6) }; -+ auto pkg_repository{ stmt.column(7) }; -+ auto pkg_origin{ stmt.column(8) }; -+ -+ const auto archdata{Utils::split(pkg_arch->value(std::string{}), ':')}; -+ const auto sectiondata{Utils::split(pkg_origin->value(std::string{}), '/')}; -+ -+ nlohmann::json package; -+ -+ package["name"] = pkg_name->value(std::string{}); -+ package["vendor"] = pkg_maintainer->value(std::string{}); -+ package["version"] = pkg_version->value(std::string{}); -+ package["install_time"] = pkg_time->value(std::string{}); -+ package["location"] = UNKNOWN_VALUE; -+ package["architecture"] = archdata[2]; -+ package["groups"] = UNKNOWN_VALUE; -+ package["description"] = pkg_comment->value(std::string{}); -+ package["size"] = pkg_flatsize->value(uint64_t{}); -+ package["priority"] = UNKNOWN_VALUE; -+ package["source"] = pkg_repository->value(std::string{}); -+ package["section"] = sectiondata[0]; -+ package["format"] = "pkg"; -+ // The multiarch field won't have a default value -+ -+ callback(package); -+ } -+ catch (const std::exception& e) -+ { -+ std::cerr << e.what() << std::endl; -+ } -+ } - } -+ catch (const std::exception& e) -+ { -+ std::cerr << e.what() << std::endl; -+ } - } - } - -@@ -264,14 +546,188 @@ - - nlohmann::json SysInfo::getGroups() const - { -- //TODO: Pending implementation. -- return nlohmann::json(); -+ nlohmann::json result; -+ GroupsProvider groupsProvider; -+ UserGroupsProvider userGroupsProvider; -+ -+ auto collectedGroups = groupsProvider.collect({}); -+ -+ for (auto& group : collectedGroups) -+ { -+ nlohmann::json groupItem {}; -+ -+ groupItem["group_id"] = group["gid"]; -+ groupItem["group_name"] = (group.contains("groupname") && !group["groupname"].get<std::string>().empty()) ? group["groupname"] : UNKNOWN_VALUE; -+ groupItem["group_description"] = UNKNOWN_VALUE; -+ groupItem["group_id_signed"] = group["gid_signed"]; -+ groupItem["group_uuid"] = UNKNOWN_VALUE; -+ groupItem["group_is_hidden"] = 0; -+ -+ std::set<gid_t> gids {static_cast<gid_t>(group["gid"].get<int>())}; -+ auto collectedUsersGroups = userGroupsProvider.getUserNamesByGid(gids); -+ -+ if (collectedUsersGroups.empty()) -+ { -+ groupItem["group_users"] = UNKNOWN_VALUE; -+ } -+ else -+ { -+ std::string usersConcatenated; -+ -+ for (const auto& user : collectedUsersGroups) -+ { -+ if (!usersConcatenated.empty()) -+ { -+ usersConcatenated += secondaryArraySeparator; -+ } -+ -+ usersConcatenated += user.get<std::string>(); -+ } -+ -+ groupItem["group_users"] = usersConcatenated; -+ } -+ -+ result.push_back(std::move(groupItem)); -+ -+ } -+ -+ return result; - } - - nlohmann::json SysInfo::getUsers() const - { -- //TODO: Pending implementation. -- return nlohmann::json(); -+ nlohmann::json result; -+ -+ UsersProvider usersProvider; -+ auto collectedUsers = usersProvider.collect(); -+ -+ LoggedInUsersProvider loggedInUserProvider; -+ auto collectedLoggedInUser = loggedInUserProvider.collect(); -+ -+ UserGroupsProvider userGroupsProvider; -+ -+ for (auto& user : collectedUsers) -+ { -+ nlohmann::json userItem {}; -+ -+ std::string username = (user.contains("username") && !user["username"].get<std::string>().empty()) ? user["username"] : UNKNOWN_VALUE; -+ -+ userItem["user_id"] = user["uid"]; -+ userItem["user_full_name"] = user["description"]; -+ userItem["user_home"] = user["directory"]; -+ userItem["user_is_remote"] = user["include_remote"]; -+ userItem["user_name"] = username; -+ userItem["user_shell"] = user["shell"]; -+ userItem["user_uid_signed"] = user["uid_signed"]; -+ userItem["user_group_id_signed"] = user["gid_signed"]; -+ userItem["user_group_id"] = user["gid"]; -+ -+ std::set<uid_t> uid {static_cast<uid_t>(user["uid"].get<int>())}; -+ auto collectedUsersGroups = userGroupsProvider.getGroupNamesByUid(uid); -+ -+ if (collectedUsersGroups.empty()) -+ { -+ userItem["user_groups"] = UNKNOWN_VALUE; -+ } -+ else -+ { -+ std::string accumGroups; -+ -+ for (const auto& group : collectedUsersGroups) -+ { -+ if (!accumGroups.empty()) -+ { -+ accumGroups += secondaryArraySeparator; -+ } -+ -+ accumGroups += group.get<std::string>(); -+ } -+ -+ userItem["user_groups"] = accumGroups; -+ } -+ -+ // Only in windows -+ userItem["user_type"] = UNKNOWN_VALUE; -+ -+ // Macos or windows -+ userItem["user_uuid"] = UNKNOWN_VALUE; -+ -+ // Macos -+ userItem["user_is_hidden"] = 0; -+ userItem["user_created"] = 0; -+ userItem["user_auth_failed_count"] = 0; -+ userItem["user_auth_failed_timestamp"] = 0; -+ -+ auto matched = false; -+ auto lastLogin = 0; -+ -+ userItem["host_ip"] = UNKNOWN_VALUE; -+ -+ //TODO: Avoid this iteration, move logic to LoggedInUsersProvider -+ for (auto& item : collectedLoggedInUser) -+ { -+ // By default, user is not logged in. -+ userItem["login_status"] = 0; -+ -+ // tty,host,time and pid can take more than one value due to different logins. -+ if (item["user"] == username) -+ { -+ matched = true; -+ userItem["login_status"] = 1; -+ -+ auto newDate = item["time"].get<int32_t>(); -+ -+ if (newDate > lastLogin) -+ { -+ lastLogin = newDate; -+ userItem["user_last_login"] = newDate; -+ userItem["login_tty"] = item["tty"].get<std::string>(); -+ userItem["login_type"] = item["type"].get<std::string>(); -+ userItem["process_pid"] = item["pid"].get<int32_t>(); -+ } -+ -+ const auto& hostStr = item["host"].get_ref<const std::string&>(); -+ -+ if (!hostStr.empty()) -+ { -+ userItem["host_ip"] = userItem["host_ip"].get<std::string>() == UNKNOWN_VALUE -+ ? hostStr -+ : (userItem["host_ip"].get<std::string>() + primaryArraySeparator + hostStr); -+ } -+ } -+ } -+ -+ if (!matched) -+ { -+ userItem["login_status"] = 0; -+ userItem["login_tty"] = UNKNOWN_VALUE; -+ userItem["login_type"] = UNKNOWN_VALUE; -+ userItem["process_pid"] = 0; -+ userItem["user_last_login"] = 0; -+ } -+ -+ matched = false; -+ -+ if (!matched) -+ { -+ userItem["user_password_expiration_date"] = 0; -+ userItem["user_password_hash_algorithm"] = UNKNOWN_VALUE; -+ userItem["user_password_inactive_days"] = 0; -+ userItem["user_password_last_change"] = 0; -+ userItem["user_password_max_days_between_changes"] = 0; -+ userItem["user_password_min_days_between_changes"] = 0; -+ userItem["user_password_status"] = UNKNOWN_VALUE; -+ userItem["user_password_warning_days_before_expiration"] = 0; -+ } -+ -+ -+ // By default, user is not sudoer. -+ userItem["user_roles"] = UNKNOWN_VALUE; -+ -+ result.push_back(std::move(userItem)); -+ } -+ -+ return result; - } - - nlohmann::json SysInfo::getServices() const diff --git a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources-CMakeLists.txt b/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources-CMakeLists.txt deleted file mode 100644 index 458b05f1655e..000000000000 --- a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources-CMakeLists.txt +++ /dev/null @@ -1,18 +0,0 @@ ---- src/data_provider/src/extended_sources/CMakeLists.txt 2025-11-07 08:46:03.000000000 +0000 -+++ src/data_provider/src/extended_sources/CMakeLists.txt 2026-01-13 15:00:46.789677000 +0000 -@@ -1,6 +1,11 @@ - include_directories(wrappers) - --add_subdirectory(groups) --add_subdirectory(services) --add_subdirectory(users) --add_subdirectory(browser_extensions) -+if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") -+ add_subdirectory(groups) -+ add_subdirectory(users) -+else() -+ add_subdirectory(groups) -+ add_subdirectory(services) -+ add_subdirectory(users) -+ add_subdirectory(browser_extensions) -+endif() diff --git a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_groups-CMakeLists.txt b/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_groups-CMakeLists.txt deleted file mode 100644 index 0f34a531e850..000000000000 --- a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_groups-CMakeLists.txt +++ /dev/null @@ -1,22 +0,0 @@ ---- src/data_provider/src/extended_sources/groups/CMakeLists.txt 2026-01-13 15:01:19.871247000 +0000 -+++ src/data_provider/src/extended_sources/groups/CMakeLists.txt 2026-01-13 15:07:52.828437000 +0000 -@@ -18,6 +18,8 @@ - include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../wrappers/unix/linux) - elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") - include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../wrappers/unix/darwin) -+ elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") -+ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../wrappers/unix/freebsd) - endif() - endif() - -@@ -35,6 +37,10 @@ - list(APPEND SRC_FILES - src/groups_linux.cpp - src/user_groups_linux.cpp) -+ elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") -+ list(APPEND SRC_FILES -+ src/groups_freebsd.cpp -+ src/user_groups_freebsd.cpp) - elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") - find_library(OPEN_DIRECTORY OpenDirectory) - find_library(FOUNDATION Foundation) diff --git a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_groups_include-groups_freebsd.hpp b/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_groups_include-groups_freebsd.hpp deleted file mode 100644 index a756e0bb02f7..000000000000 --- a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_groups_include-groups_freebsd.hpp +++ /dev/null @@ -1,46 +0,0 @@ ---- /dev/null 2026-01-13 23:10:56.926889000 +0000 -+++ src/data_provider/src/extended_sources/groups/include/groups_freebsd.hpp 2026-01-13 22:43:51.149789000 +0000 -@@ -0,0 +1,43 @@ -+/* Copyright (C) 2015, Wazuh Inc. -+ * All rights reserved. -+ * -+ * This program is free software; you can redistribute it -+ * and/or modify it under the terms of the GNU General Public -+ * License (version 2) as published by the FSF - Free Software -+ * Foundation. -+ */ -+ -+#pragma once -+ -+#include <set> -+ -+#include "json.hpp" -+#include "igroup_wrapper.hpp" -+ -+/// @brief Class for collecting group information on FreeBSD systems. -+/// -+/// This class provides methods to collect group information from the -+/// Darwin operating system. It uses the system's group database to retrieve -+/// group details such as group name and GID. The collected data is returned -+/// in JSON format. -+class GroupsProvider -+{ -+ public: -+ explicit GroupsProvider(std::shared_ptr<IGroupWrapperFreeBSD> groupWrapper); -+ -+ /// @brief Default destructor. -+ GroupsProvider(); -+ -+ /// @brief Collects group information based on provided group IDs. -+ /// @param gids A set of group IDs to collect information for. -+ /// @return A JSON array containing group information. -+ nlohmann::json collect(const std::set<gid_t>& gids = {}); -+ -+ private: -+ std::shared_ptr<IGroupWrapperFreeBSD> m_groupWrapper; -+ -+ /// @brief Adds a group to the results JSON array. -+ /// @param results A reference to the JSON array where the group information will be added. -+ /// @param group A pointer to the group structure containing the group information. -+ void addGroupToResults(nlohmann::json& results, const struct group* group); -+}; diff --git a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_groups_include-user_groups_freebsd.hpp b/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_groups_include-user_groups_freebsd.hpp deleted file mode 100644 index 3fdc455fed39..000000000000 --- a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_groups_include-user_groups_freebsd.hpp +++ /dev/null @@ -1,84 +0,0 @@ ---- /dev/null 2026-01-13 23:11:31.853795000 +0000 -+++ src/data_provider/src/extended_sources/groups/include/user_groups_freebsd.hpp 2026-01-13 22:43:51.149735000 +0000 -@@ -0,0 +1,81 @@ -+/* Copyright (C) 2015, Wazuh Inc. -+ * All rights reserved. -+ * -+ * This program is free software; you can redistribute it -+ * and/or modify it under the terms of the GNU General Public -+ * License (version 2) as published by the FSF - Free Software -+ * Foundation. -+ */ -+ -+#pragma once -+ -+#include <set> -+ -+#include "json.hpp" -+#include "igroup_wrapper.hpp" -+#include "ipasswd_wrapper.hpp" -+ -+#define EXPECTED_GROUPS_MAX 64 -+ -+class UserGroupsProvider -+{ -+ public: -+ /// @brief Constructs a UserGroupsProvider with specific wrappers. -+ /// @param groupWrapper A shared pointer to an IGroupWrapperFreeBSD instance for group operations. -+ /// @param passwdWrapper A shared pointer to an IPasswdWrapperFreeBSD instance for passwd operations. -+ /// @param sysWrapper A shared pointer to an ISystemWrapper instance for system operations. -+ explicit UserGroupsProvider(std::shared_ptr<IGroupWrapperFreeBSD> groupWrapper, -+ std::shared_ptr<IPasswdWrapperFreeBSD> passwdWrapper); -+ -+ /// @brief Default constructor that initializes the UserGroupsProvider with default wrappers. -+ /// @note This constructor uses default implementations of IGroupWrapperFreeBSD, and IPasswdWrapperFreeBSD. -+ UserGroupsProvider(); -+ -+ /// @brief Collects user groups information. -+ /// @param uids A set of user IDs (UIDs) to filter the results. If empty, all users are collected. -+ /// @return A JSON array containing user groups information, where each entry includes UID, GID, and group details. -+ nlohmann::json collect(const std::set<uid_t>& uids = {}); -+ -+ /// @brief Retrieves group names associated with the specified UIDs. -+ /// @param uids A set of user IDs (UIDs) for which to retrieve group names. -+ /// @return A JSON object where keys are UIDs and values are arrays of group names associated with those UIDs. -+ /// If a UID has no associated groups, the value will be an empty array. -+ /// @note This method is useful for quickly mapping UIDs to their group names without retrieving full group details. -+ /// @note If `uids` is empty, it retrieves group names for all users. -+ nlohmann::json getGroupNamesByUid(const std::set<uid_t>& uids = {}); -+ -+ /// @brief Retrieves usernames associated with the specified GIDs. -+ /// @param gids A set of group IDs (GIDs) for which to retrieve usernames. -+ /// @return A JSON object where keys are GIDs and values are arrays of usernames associated with those GIDs. -+ /// If a GID has no associated usernames, the value will be an empty array. -+ /// @note This method is useful for quickly mapping GIDs to their usernames without retrieving full user details. -+ /// @note If `gids` is empty, it retrieves usernames for all groups. -+ nlohmann::json getUserNamesByGid(const std::set<gid_t>& gids = {}); -+ -+ private: -+ std::shared_ptr<IGroupWrapperFreeBSD> m_groupWrapper; -+ std::shared_ptr<IPasswdWrapperFreeBSD> m_passwdWrapper; -+ -+ /// @brief Structure to hold user information. -+ struct UserInfo -+ { -+ const char* name; -+ uid_t uid; -+ gid_t gid; -+ }; -+ -+ /// @brief Retrieves groups for each user and returns a vector of pairs containing UID and their associated groups. -+ /// @param uids A set of user IDs (UIDs) to filter the results. If empty, all users are processed. -+ /// @return A vector of pairs, where each pair contains a UID and a vector of GIDs representing the groups associated with that UID. -+ /// @note This method is used internally to gather user-group associations before formatting the results into JSON. -+ /// @note If a user has no associated groups, the vector of GIDs will be empty. -+ std::vector<std::pair<uid_t, std::vector<gid_t>>> getUserGroups(const std::set<uid_t>& uids); -+ -+ /// @brief Adds groups to the results JSON array for a specific user. -+ /// @param results A reference to the JSON array where the group information will be added. -+ /// @param uid The user ID for which the groups are being added. -+ /// @param groups A pointer to an array of group IDs (GIDs) associated with the user. -+ /// @param ngroups The number of groups in the `groups` array. -+ /// @note This method formats the group information into JSON objects and appends them to the results array. -+ void addGroupsToResults(nlohmann::json& results, uid_t uid, const gid_t* groups, int ngroups); -+}; diff --git a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_groups_src-groups_freebsd.hpp b/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_groups_src-groups_freebsd.hpp deleted file mode 100644 index d65c4b178507..000000000000 --- a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_groups_src-groups_freebsd.hpp +++ /dev/null @@ -1,95 +0,0 @@ ---- /dev/null 2026-01-13 23:12:14.070467000 +0000 -+++ src/data_provider/src/extended_sources/groups/src/groups_freebsd.cpp 2026-01-13 22:43:51.150488000 +0000 -@@ -0,0 +1,92 @@ -+/* Copyright (C) 2015, Wazuh Inc. -+ * All rights reserved. -+ * -+ * This program is free software; you can redistribute it -+ * and/or modify it under the terms of the GNU General Public -+ * License (version 2) as published by the FSF - Free Software -+ * Foundation. -+ */ -+ -+#include "groups_freebsd.hpp" -+#include "group_wrapper.hpp" -+ -+constexpr size_t MAX_GETPW_R_BUF_SIZE = 16 * 1024; -+ -+GroupsProvider::GroupsProvider(std::shared_ptr<IGroupWrapperFreeBSD> groupWrapper) -+ : m_groupWrapper(std::move(groupWrapper)) {} -+ -+GroupsProvider::GroupsProvider() -+ : m_groupWrapper(std::make_shared<GroupWrapperFreeBSD>()) {} -+ -+nlohmann::json GroupsProvider::collect(const std::set<gid_t>& gids) -+{ -+ nlohmann::json results = nlohmann::json::array(); -+ struct group* groupResult -+ { -+ nullptr -+ }; -+ struct group group; -+ -+ size_t bufSize = MAX_GETPW_R_BUF_SIZE; -+ auto buf = std::make_unique<char[]>(bufSize); -+ -+ if (!gids.empty()) -+ { -+ for (const auto& gid : gids) -+ { -+ while (m_groupWrapper->getgrgid_r(gid, &group, buf.get(), bufSize, &groupResult) == ERANGE) -+ { -+ bufSize *= 2; -+ buf = std::make_unique<char[]>(bufSize); -+ } -+ -+ if (groupResult == nullptr) -+ { -+ continue; -+ } -+ -+ addGroupToResults(results, groupResult); -+ } -+ } -+ else -+ { -+ std::set<long> groupsIn; -+ m_groupWrapper->setgrent(); -+ -+ while (1) -+ { -+ while (m_groupWrapper->getgrent_r(&group, buf.get(), bufSize, &groupResult) == ERANGE) -+ { -+ bufSize *= 2; -+ buf = std::make_unique<char[]>(bufSize); -+ } -+ -+ if (groupResult == nullptr) -+ { -+ break; -+ } -+ -+ if (std::find(groupsIn.begin(), groupsIn.end(), groupResult->gr_gid) == groupsIn.end()) -+ { -+ addGroupToResults(results, groupResult); -+ groupsIn.insert(groupResult->gr_gid); -+ } -+ } -+ -+ m_groupWrapper->endgrent(); -+ groupsIn.clear(); -+ } -+ -+ return results; -+} -+ -+void GroupsProvider::addGroupToResults(nlohmann::json& results, const group* group) -+{ -+ nlohmann::json groupJson; -+ -+ groupJson["groupname"] = group->gr_name; -+ groupJson["gid"] = group->gr_gid; -+ groupJson["gid_signed"] = static_cast<int32_t>(group->gr_gid); -+ -+ results.push_back(groupJson); -+} diff --git a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_groups_src-user_groups_freebsd.hpp b/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_groups_src-user_groups_freebsd.hpp deleted file mode 100644 index ef6229d3ef82..000000000000 --- a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_groups_src-user_groups_freebsd.hpp +++ /dev/null @@ -1,262 +0,0 @@ ---- /dev/null 2026-01-13 23:12:49.062343000 +0000 -+++ src/data_provider/src/extended_sources/groups/src/user_groups_freebsd.cpp 2026-01-13 22:43:51.150552000 +0000 -@@ -0,0 +1,259 @@ -+/* Copyright (C) 2015, Wazuh Inc. -+ * All rights reserved. -+ * -+ * This program is free software; you can redistribute it -+ * and/or modify it under the terms of the GNU General Public -+ * License (version 2) as published by the FSF - Free Software -+ * Foundation. -+ */ -+ -+#include <iostream> -+#include <unistd.h> -+#include "user_groups_freebsd.hpp" -+#include "group_wrapper.hpp" -+#include "passwd_wrapper.hpp" -+ -+constexpr size_t MAX_GETPW_R_BUF_SIZE = 16 * 1024; -+ -+UserGroupsProvider::UserGroupsProvider(std::shared_ptr<IGroupWrapperFreeBSD> groupWrapper, -+ std::shared_ptr<IPasswdWrapperFreeBSD> passwdWrapper) -+ : m_groupWrapper(std::move(groupWrapper)) -+ , m_passwdWrapper(std::move(passwdWrapper)) -+{ -+} -+ -+UserGroupsProvider::UserGroupsProvider() -+ : m_groupWrapper(std::make_shared<GroupWrapperFreeBSD>()) -+ , m_passwdWrapper(std::make_shared<PasswdWrapperFreeBSD>()) -+{ -+} -+ -+nlohmann::json UserGroupsProvider::collect(const std::set<uid_t>& uids) -+{ -+ nlohmann::json results = nlohmann::json::array(); -+ auto usersGroups = getUserGroups(uids); -+ -+ for (const auto& [uid, groups] : usersGroups) -+ { -+ addGroupsToResults(results, uid, groups.data(), static_cast<int>(groups.size())); -+ } -+ -+ return results; -+} -+ -+nlohmann::json UserGroupsProvider::getGroupNamesByUid(const std::set<uid_t>& uids) -+{ -+ const bool singleUid = (uids.size() == 1); -+ nlohmann::json result = singleUid ? nlohmann::json::array() : nlohmann::json::object(); -+ auto usersGroups = getUserGroups(uids); -+ -+ size_t bufSize = sysconf(_SC_GETGR_R_SIZE_MAX); -+ -+ if (bufSize > MAX_GETPW_R_BUF_SIZE) -+ { -+ bufSize = MAX_GETPW_R_BUF_SIZE; -+ } -+ -+ for (const auto& [uid, groups] : usersGroups) -+ { -+ nlohmann::json groupNames = nlohmann::json::array(); -+ -+ for (const auto& gid : groups) -+ { -+ struct group grp; -+ struct group* grpResult = nullptr; -+ auto groupBuf = std::make_unique<char[]>(bufSize); -+ -+ if (m_groupWrapper->getgrgid_r(gid, &grp, groupBuf.get(), bufSize, &grpResult) == 0 && grpResult != nullptr) -+ { -+ groupNames.push_back(grpResult->gr_name); -+ } -+ } -+ -+ if (singleUid) -+ { -+ result = groupNames; -+ } -+ else -+ { -+ result[std::to_string(uid)] = groupNames; -+ } -+ } -+ -+ return result; -+} -+ -+nlohmann::json UserGroupsProvider::getUserNamesByGid(const std::set<gid_t>& gids) -+{ -+ const bool allGroups = gids.empty(); -+ const bool singleGid = (!allGroups && gids.size() == 1); -+ nlohmann::json result = singleGid ? nlohmann::json::array() : nlohmann::json::object(); -+ -+ size_t bufSize = sysconf(_SC_GETPW_R_SIZE_MAX); -+ -+ if (bufSize > MAX_GETPW_R_BUF_SIZE) -+ { -+ bufSize = MAX_GETPW_R_BUF_SIZE; -+ } -+ -+ std::map<gid_t, std::set<std::string>> gidToUsernames; -+ -+ if (allGroups) -+ { -+ struct group* grp = nullptr; -+ m_groupWrapper->setgrent(); -+ -+ while ((grp = m_groupWrapper->getgrent()) != nullptr) -+ { -+ gid_t gid = grp->gr_gid; -+ char** members = grp->gr_mem; -+ -+ while (members && *members) -+ { -+ gidToUsernames[gid].insert(*members); -+ ++members; -+ } -+ } -+ -+ m_groupWrapper->endgrent(); -+ } -+ else -+ { -+ for (const auto& gid : gids) -+ { -+ struct group grp; -+ struct group* grpResult = nullptr; -+ auto groupBuf = std::make_unique<char[]>(bufSize); -+ -+ if (m_groupWrapper->getgrgid_r(gid, &grp, groupBuf.get(), bufSize, &grpResult) == 0 && grpResult != nullptr) -+ { -+ char** members = grpResult->gr_mem; -+ -+ while (members && *members) -+ { -+ gidToUsernames[gid].insert(*members); -+ ++members; -+ } -+ } -+ } -+ } -+ -+ struct passwd* pwd = nullptr; -+ -+ m_passwdWrapper->setpwent(); -+ -+ while ((pwd = m_passwdWrapper->getpwent()) != nullptr) -+ { -+ if (allGroups || gids.count(pwd->pw_gid)) -+ { -+ gidToUsernames[pwd->pw_gid].insert(pwd->pw_name); -+ } -+ } -+ -+ m_passwdWrapper->endpwent(); -+ -+ for (const auto& [gid, usernames] : gidToUsernames) -+ { -+ nlohmann::json jsonUsernames = nlohmann::json::array(); -+ -+ for (const auto& name : usernames) -+ { -+ jsonUsernames.push_back(name); -+ } -+ -+ if (singleGid) -+ { -+ result = jsonUsernames; -+ } -+ else -+ { -+ result[std::to_string(gid)] = jsonUsernames; -+ } -+ } -+ -+ return result; -+} -+ -+std::vector<std::pair<uid_t, std::vector<gid_t>>> UserGroupsProvider::getUserGroups(const std::set<uid_t>& uids) -+{ -+ std::vector<std::pair<uid_t, std::vector<gid_t>>> userGroups; -+ struct passwd pwd; -+ struct passwd* pwdResults = nullptr; -+ -+ size_t bufSize = sysconf(_SC_GETPW_R_SIZE_MAX); -+ -+ if (bufSize > MAX_GETPW_R_BUF_SIZE) -+ { -+ bufSize = MAX_GETPW_R_BUF_SIZE; -+ } -+ -+ auto buf = std::make_unique<char[]>(bufSize); -+ -+ auto processUser = [&](const struct passwd * pwdInfo) -+ { -+ UserInfo user {pwdInfo->pw_name, pwdInfo->pw_uid, pwdInfo->pw_gid}; -+ -+ std::vector<gid_t> groups(EXPECTED_GROUPS_MAX); -+ int nGroups = EXPECTED_GROUPS_MAX; -+ -+ if (m_groupWrapper->getgrouplist(user.name, user.gid, groups.data(), &nGroups) < 0) -+ { -+ groups.resize(nGroups); -+ -+ if (m_groupWrapper->getgrouplist(user.name, user.gid, groups.data(), &nGroups) < 0) -+ { -+ // std::cerr << "Could not get user's group list" << std::endl; -+ return; -+ } -+ -+ groups.resize(nGroups); -+ } -+ else -+ { -+ groups.resize(nGroups); -+ } -+ -+ userGroups.emplace_back(user.uid, std::move(groups)); -+ }; -+ -+ if (!uids.empty()) -+ { -+ for (const auto& uid : uids) -+ { -+ if (m_passwdWrapper->getpwuid_r(uid, &pwd, buf.get(), bufSize, &pwdResults) == 0 && pwdResults != nullptr) -+ { -+ processUser(pwdResults); -+ } -+ } -+ } -+ else -+ { -+ std::set<uid_t> processed_uids; -+ m_passwdWrapper->setpwent(); -+ -+ while (m_passwdWrapper->getpwent_r(&pwd, buf.get(), bufSize, &pwdResults) == 0 && pwdResults != nullptr) -+ { -+ if (processed_uids.insert(pwdResults->pw_uid).second) -+ { -+ processUser(pwdResults); -+ } -+ } -+ -+ m_passwdWrapper->endpwent(); -+ } -+ -+ return userGroups; -+} -+ -+void UserGroupsProvider::addGroupsToResults(nlohmann::json& results, uid_t uid, const gid_t* groups, int nGroups) -+{ -+ for (int i = 0; i < nGroups; i++) -+ { -+ nlohmann::json groupJson; -+ -+ groupJson["uid"] = uid; -+ groupJson["gid"] = groups[i]; -+ -+ results.push_back(groupJson); -+ } -+} diff --git a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_users-CMakeLists.txt b/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_users-CMakeLists.txt deleted file mode 100644 index 2dc3067c5068..000000000000 --- a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_users-CMakeLists.txt +++ /dev/null @@ -1,21 +0,0 @@ ---- src/data_provider/src/extended_sources/users/CMakeLists.txt 2025-11-07 08:46:03.000000000 +0000 -+++ src/data_provider/src/extended_sources/users/CMakeLists.txt 2026-01-12 14:53:32.100182000 +0000 -@@ -18,6 +18,8 @@ - include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../wrappers/unix/linux) - elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin") - include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../wrappers/unix/darwin) -+ elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") -+ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../wrappers/unix/freebsd) - endif() - endif() - -@@ -40,6 +42,9 @@ - - list(APPEND SRC_FILES src/users_darwin.cpp ${CMAKE_CURRENT_SOURCE_DIR}/../wrappers/unix/darwin/od_wrapper.mm) - set(PLATFORM_LIBS_USERS ${OPEN_DIRECTORY} ${FOUNDATION}) -+ elseif(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") -+ list(APPEND SRC_FILES src/logged_in_users_freebsd.cpp) -+ list(APPEND SRC_FILES src/users_freebsd.cpp) - endif() - endif() - diff --git a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_users_include-logged_in_users_freebsd.hpp b/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_users_include-logged_in_users_freebsd.hpp deleted file mode 100644 index 83195510bddb..000000000000 --- a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_users_include-logged_in_users_freebsd.hpp +++ /dev/null @@ -1,37 +0,0 @@ ---- /dev/null 2026-01-13 23:08:55.189229000 +0000 -+++ src/data_provider/src/extended_sources/users/include/logged_in_users_freebsd.hpp 2026-01-13 22:43:51.148959000 +0000 -@@ -0,0 +1,34 @@ -+/* Copyright (C) 2015, Wazuh Inc. -+ * All rights reserved. -+ * -+ * This program is free software; you can redistribute it -+ * and/or modify it under the terms of the GNU General Public -+ * License (version 2) as published by the FSF - Free Software -+ * Foundation. -+ */ -+ -+#pragma once -+ -+#include <map> -+#include <mutex> -+#include <string> -+#include <vector> -+ -+#include "json.hpp" -+#include "iutmpx_wrapper.hpp" -+ -+class LoggedInUsersProvider -+{ -+ public: -+ explicit LoggedInUsersProvider(std::shared_ptr<IUtmpxWrapper> utmpxWrapper); -+ -+ LoggedInUsersProvider(); -+ -+ nlohmann::json collect(); -+ -+ private: -+ std::shared_ptr<IUtmpxWrapper> m_utmpxWrapper; -+ -+ static std::mutex utmpxMutex; -+ static const std::map<size_t, std::string> loginTypes; -+}; diff --git a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_users_include-users_freebsd.hpp b/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_users_include-users_freebsd.hpp deleted file mode 100644 index f6884ce8f1fc..000000000000 --- a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_users_include-users_freebsd.hpp +++ /dev/null @@ -1,69 +0,0 @@ ---- /dev/null 2026-01-13 23:09:49.988051000 +0000 -+++ src/data_provider/src/extended_sources/users/include/users_freebsd.hpp 2026-01-13 22:43:51.149043000 +0000 -@@ -0,0 +1,66 @@ -+/* Copyright (C) 2015, Wazuh Inc. -+ * All rights reserved. -+ * -+ * This program is free software; you can redistribute it -+ * and/or modify it under the terms of the GNU General Public -+ * License (version 2) as published by the FSF - Free Software -+ * Foundation. -+ */ -+ -+#include <map> -+#include <memory> -+#include <set> -+#include <string> -+ -+#include "json.hpp" -+ -+#include "ipasswd_wrapper.hpp" -+ -+/// @brief Provides user information on FreeBSD systems. -+/// -+/// Collects user data by combining information from the passwd database, -+/// -+/// Dependencies are injected via wrappers for testability and abstraction. -+class UsersProvider -+{ -+ public: -+ /// @brief Constructs a UsersProvider with the given wrappers. -+ /// @param passwdWrapper Wrapper for password database operations. -+ /// @param sysWrapper Wrapper for system-level operations. -+ explicit UsersProvider( -+ std::shared_ptr<IPasswdWrapperFreeBSD> passwdWrapper); -+ -+ /// @brief Default constructor. -+ UsersProvider(); -+ -+ /// @brief Collects all user information, optionally including remote users. -+ /// @param include_remote Whether to include remote users in the collection (default: true). -+ /// @return JSON array of user information objects. -+ nlohmann::json collect(bool include_remote = true); -+ -+ /// @brief Collects user information filtered by usernames and UIDs, optionally including remote users. -+ /// @param usernames Set of usernames to filter. -+ /// @param uids Set of UIDs to filter. -+ /// @param include_remote Whether to include remote users in the collection. -+ /// @return JSON array of user information objects matching the constraints. -+ nlohmann::json collectWithConstraints(const std::set<std::string>& usernames, -+ const std::set<uid_t>& uids, -+ bool include_remote); -+ -+ private: -+ /// @brief Generates a JSON representation of a user from passwd struct. -+ /// @param pwd Pointer to passwd struct representing the user. -+ /// @param include_remote Boolean indicating whether remote users are included. -+ /// @return JSON object representing the user. -+ nlohmann::json genUserJson(const struct passwd* pwd, bool include_remote); -+ -+ /// @brief Collects local users filtered by usernames and UIDs. -+ /// @param usernames Set of usernames to filter. -+ /// @param uids Set of UIDs to filter. -+ /// @return JSON array of local user information. -+ nlohmann::json collectUsers(const std::set<std::string>& usernames, -+ const std::set<uid_t>& uids); -+ -+ /// @brief Passwd wrapper dependency. -+ std::shared_ptr<IPasswdWrapperFreeBSD> m_passwdWrapper; -+}; diff --git a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_users_src-logged_in_users_freebsd.cpp b/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_users_src-logged_in_users_freebsd.cpp deleted file mode 100644 index d5359d1524b8..000000000000 --- a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_users_src-logged_in_users_freebsd.cpp +++ /dev/null @@ -1,72 +0,0 @@ ---- /dev/null 2026-01-13 23:08:16.219538000 +0000 -+++ src/data_provider/src/extended_sources/users/src/logged_in_users_freebsd.cpp 2026-01-13 22:43:51.148867000 +0000 -@@ -0,0 +1,69 @@ -+/* Copyright (C) 2015, Wazuh Inc. -+ * All rights reserved. -+ * -+ * This program is free software; you can redistribute it -+ * and/or modify it under the terms of the GNU General Public -+ * License (version 2) as published by the FSF - Free Software -+ * Foundation. -+ */ -+ -+#include "logged_in_users_freebsd.hpp" -+#include "utmpx_wrapper.hpp" -+ -+#include <utmpx.h> -+#include <paths.h> -+ -+#include <cstring> -+#include <string> -+ -+std::mutex LoggedInUsersProvider::utmpxMutex; -+ -+const std::map<size_t, std::string> LoggedInUsersProvider::loginTypes = -+{ -+ {EMPTY, "empty"}, -+ {BOOT_TIME, "boot_time"}, -+ {NEW_TIME, "new_time"}, -+ {OLD_TIME, "old_time"}, -+ {INIT_PROCESS, "init"}, -+ {LOGIN_PROCESS, "login"}, -+ {USER_PROCESS, "user"}, -+ {DEAD_PROCESS, "dead"}, -+}; -+ -+LoggedInUsersProvider::LoggedInUsersProvider(std::shared_ptr<IUtmpxWrapper> wrapper) -+ : m_utmpxWrapper(std::move(wrapper)) {} -+ -+LoggedInUsersProvider::LoggedInUsersProvider() -+ : m_utmpxWrapper(std::make_shared<UtmpxWrapper>()) {} -+ -+nlohmann::json LoggedInUsersProvider::collect() -+{ -+ std::lock_guard<std::mutex> lock(utmpxMutex); -+ nlohmann::json results = nlohmann::json::array(); -+ struct utmpx* entry = nullptr; -+ -+ m_utmpxWrapper->setutxent(); -+ -+ while ((entry = m_utmpxWrapper->getutxent()) != nullptr) -+ { -+ if (entry->ut_pid == 1) -+ { -+ continue; -+ } -+ -+ nlohmann::json row; -+ auto it = loginTypes.find(entry->ut_type); -+ row["type"] = (it != loginTypes.end()) ? it->second : "unknown"; -+ -+ row["user"] = std::string(entry->ut_user, strnlen(entry->ut_user, sizeof(entry->ut_user))); -+ row["tty"] = std::string(entry->ut_line, strnlen(entry->ut_line, sizeof(entry->ut_line))); -+ row["host"] = std::string(entry->ut_host, strnlen(entry->ut_host, sizeof(entry->ut_host))); -+ row["time"] = entry->ut_tv.tv_sec; -+ row["pid"] = entry->ut_pid; -+ -+ results.push_back(std::move(row)); -+ } -+ -+ m_utmpxWrapper->endutxent(); -+ return results; -+} diff --git a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_users_src-users_freebsd.cpp b/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_users_src-users_freebsd.cpp deleted file mode 100644 index 195be19ed3a9..000000000000 --- a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_users_src-users_freebsd.cpp +++ /dev/null @@ -1,106 +0,0 @@ ---- /dev/null 2026-01-13 23:07:27.483265000 +0000 -+++ src/data_provider/src/extended_sources/users/src/users_freebsd.cpp 2026-01-13 22:53:15.807751000 +0000 -@@ -0,0 +1,103 @@ -+/* Copyright (C) 2015, Wazuh Inc. -+ * All rights reserved. -+ * -+ * This program is free software; you can redistribute it -+ * and/or modify it under the terms of the GNU General Public -+ * License (version 2) as published by the FSF - Free Software -+ * Foundation. -+ */ -+ -+#include <unistd.h> -+#include <set> -+#include <string> -+#include <map> -+#include <memory> -+ -+#include "users_freebsd.hpp" -+#include "passwd_wrapper.hpp" -+ -+constexpr size_t MAX_GETPW_R_BUF_SIZE = 16 * 1024; -+ -+UsersProvider::UsersProvider( -+ std::shared_ptr<IPasswdWrapperFreeBSD> passwdWrapper) -+ : m_passwdWrapper(std::move(passwdWrapper)) {} -+ -+UsersProvider::UsersProvider() -+ : m_passwdWrapper(std::make_shared<PasswdWrapperFreeBSD>()) {} -+ -+nlohmann::json UsersProvider::collect(bool include_remote) -+{ -+ return collectWithConstraints({}, {}, include_remote); -+} -+ -+nlohmann::json UsersProvider::collectWithConstraints(const std::set<std::string>& usernames, -+ const std::set<uid_t>& uids, -+ bool include_remote) -+{ -+// if (include_remote) -+// { -+// return collectRemoteUsers(usernames, uids); -+// } -+ -+ return collectUsers(usernames, uids); -+} -+ -+nlohmann::json UsersProvider::genUserJson(const struct passwd* pwd, bool include_remote) -+{ -+ nlohmann::json r; -+ r["uid"] = pwd->pw_uid; -+ r["gid"] = pwd->pw_gid; -+ r["uid_signed"] = static_cast<int32_t>(pwd->pw_uid); -+ r["gid_signed"] = static_cast<int32_t>(pwd->pw_gid); -+ -+ r["username"] = (pwd->pw_name != nullptr) ? pwd->pw_name : ""; -+ r["description"] = (pwd->pw_gecos != nullptr) ? pwd->pw_gecos : ""; -+ r["directory"] = (pwd->pw_dir != nullptr) ? pwd->pw_dir : ""; -+ r["shell"] = (pwd->pw_shell != nullptr) ? pwd->pw_shell : ""; -+ -+ r["pid_with_namespace"] = "0"; -+ r["include_remote"] = static_cast<int>(include_remote); -+ -+ return r; -+} -+ -+nlohmann::json UsersProvider::collectUsers(const std::set<std::string>& usernames, -+ const std::set<uid_t>& uids) -+{ -+ nlohmann::json results = nlohmann::json::array(); -+ -+ size_t bufsize = sysconf(_SC_GETPW_R_SIZE_MAX); -+ -+ if (bufsize > MAX_GETPW_R_BUF_SIZE) -+ { -+ bufsize = MAX_GETPW_R_BUF_SIZE; -+ } -+ -+ auto buf = std::make_unique<char[]>(bufsize); -+ -+ struct passwd pwd; -+ struct passwd* pwd_results -+ { -+ nullptr -+ }; -+ -+ m_passwdWrapper->setpwent(); -+ -+ while (m_passwdWrapper->getpwent_r(&pwd, buf.get(), bufsize, &pwd_results) == 0 && pwd_results != nullptr) -+ { -+ if (!usernames.empty() && usernames.find(pwd_results->pw_name) == usernames.end()) -+ { -+ continue; -+ } -+ else if (!uids.empty() && uids.find(pwd_results->pw_uid) == uids.end()) -+ { -+ continue; -+ } -+ -+ results.push_back(genUserJson(pwd_results, true)); -+ } -+ -+ m_passwdWrapper->endpwent(); -+ -+ return results; -+} diff --git a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_wrappers_unix-iutmpx_wrapper.hpp b/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_wrappers_unix-iutmpx_wrapper.hpp deleted file mode 100644 index 2f646ad8c1d6..000000000000 --- a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_wrappers_unix-iutmpx_wrapper.hpp +++ /dev/null @@ -1,12 +0,0 @@ ---- src/data_provider/src/extended_sources/wrappers/unix/iutmpx_wrapper.hpp 2025-11-07 08:46:03.000000000 +0000 -+++ src/data_provider/src/extended_sources/wrappers/unix/iutmpx_wrapper.hpp 2026-01-12 14:51:47.552260000 +0000 -@@ -20,7 +20,9 @@ - - /// @brief Sets the utmpx file to be used by the library functions. - /// @param file Path to the utmpx file. -+#if !defined(__FreeBSD__) - virtual void utmpxname(const char* file) = 0; -+#endif - - /// @brief Resets the input stream to the beginning of the utmpx file. - virtual void setutxent() = 0; diff --git a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_wrappers_unix-utmpx_wrapper.hpp b/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_wrappers_unix-utmpx_wrapper.hpp deleted file mode 100644 index edf75f578f7b..000000000000 --- a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_wrappers_unix-utmpx_wrapper.hpp +++ /dev/null @@ -1,16 +0,0 @@ ---- src/data_provider/src/extended_sources/wrappers/unix/utmpx_wrapper.hpp 2025-11-07 08:46:03.000000000 +0000 -+++ src/data_provider/src/extended_sources/wrappers/unix/utmpx_wrapper.hpp 2026-01-12 14:51:47.552488000 +0000 -@@ -18,11 +18,12 @@ - public: - /// @brief Sets the utmpx file to be used by the library functions. - /// @param file Path to the utmpx file. -+#if !defined(__FreeBSD__) - void utmpxname(const char* file) override - { - ::utmpxname(file); - } -- -+#endif - /// @brief Resets the input stream to the beginning of the utmpx file. - void setutxent() override - { diff --git a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_wrappers_unix_freebsd-group_wrapper.hpp b/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_wrappers_unix_freebsd-group_wrapper.hpp deleted file mode 100644 index 57202254a120..000000000000 --- a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_wrappers_unix_freebsd-group_wrapper.hpp +++ /dev/null @@ -1,93 +0,0 @@ ---- /dev/null 2026-01-13 23:16:40.390101000 +0000 -+++ src/data_provider/src/extended_sources/wrappers/unix/freebsd/group_wrapper.hpp 2026-01-13 22:43:51.149572000 +0000 -@@ -0,0 +1,90 @@ -+/* Copyright (C) 2015, Wazuh Inc. -+ * All rights reserved. -+ * -+ * This program is free software; you can redistribute it -+ * and/or modify it under the terms of the GNU General Public -+ * License (version 2) as published by the FSF - Free Software -+ * Foundation. -+ */ -+ -+#pragma once -+ -+#include "igroup_wrapper.hpp" -+ -+#include <grp.h> -+#include <unistd.h> -+ -+/// @brief Wrapper class for group-related operations on FreeBSD systems. -+/// -+/// Provides methods to retrieve group lists and counts for users, allowing for dependency injection -+/// and easier testing. This class implements the IGroupWrapperFreeBSD interface and uses the system calls -+/// to interact with the group database. -+class GroupWrapperFreeBSD : public IGroupWrapperFreeBSD -+{ -+ public: -+ /// @brief Retrieves the group entry for a given group ID. -+ /// @param gid The group ID to search for. -+ /// @param resultbuf A pointer to a group structure where the result will be stored. -+ /// @param buffer A buffer to hold the string data for the group entry. -+ /// @param buflen The size of the buffer. -+ /// @param result A pointer to a group structure pointer that will point to the result. -+ /// @return 0 on success, or an error code on failure. -+ int getgrgid_r(gid_t gid, struct group* resultbuf, char* buffer, size_t buflen, struct group** result) const override -+ { -+ return ::getgrgid_r(gid, resultbuf, buffer, buflen, result); -+ } -+ -+ /// @brief Retrieves a group by its GID. -+ /// @param gid The group ID for which to retrieve the group structure. -+ /// @return A pointer to the group structure if found, or nullptr if not found. -+ struct group* getgrgid(gid_t gid) const override -+ { -+ return ::getgrgid(gid); -+ } -+ -+ /// @brief Retrieves the group entry for a given group name. -+ /// @param resultbuf A pointer to a group structure where the result will be stored. -+ /// @param buffer A buffer to hold the string data for the group entry. -+ /// @param buflen The size of the buffer. -+ /// @param result A pointer to a group structure pointer that will point to the result. -+ int getgrent_r(struct group* resultbuf, char* buffer, size_t buflen, struct group** result) const override -+ { -+ return ::getgrent_r(resultbuf, buffer, buflen, result); -+ } -+ -+ /// @brief Retrieves the next group entry from the group database. -+ /// @return A pointer to the next group structure, or nullptr if there are no more entries. -+ struct group* getgrent() const override -+ { -+ return ::getgrent(); -+ } -+ -+ /// @brief Rewind the group-file stream. -+ void setgrent() const override -+ { -+ ::setgrent(); -+ } -+ /// @brief Close the group-file stream. -+ void endgrent() const override -+ { -+ ::endgrent(); -+ } -+ /// @brief Retrieves a group by its name. -+ /// @param name The name of the group to retrieve. -+ /// @return A pointer to the group structure if found, or nullptr if not found. -+ struct group* getgrnam(const char* name) const override -+ { -+ return ::getgrnam(name); -+ } -+ -+ /// @brief Retrieves the list of groups for a user. -+ /// @param user The username for which to retrieve the group list. -+ /// @param group The primary group ID of the user. -+ /// @param groups Pointer to an array where the group IDs will be stored. -+ /// @param ngroups Pointer to an integer that indicates the size of the groups array. -+ /// @return The number of groups the user belongs to, or -1 on error. -+ int getgrouplist(const char* user, gid_t group, gid_t* groups, int* ngroups) const override -+ { -+ return ::getgrouplist(user, group, groups, ngroups); -+ } -+}; diff --git a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_wrappers_unix_freebsd-igroup_wrapper.hpp b/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_wrappers_unix_freebsd-igroup_wrapper.hpp deleted file mode 100644 index a62f2fa241fc..000000000000 --- a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_wrappers_unix_freebsd-igroup_wrapper.hpp +++ /dev/null @@ -1,70 +0,0 @@ ---- /dev/null 2026-01-13 23:16:28.442788000 +0000 -+++ src/data_provider/src/extended_sources/wrappers/unix/freebsd/igroup_wrapper.hpp 2026-01-13 22:43:51.149445000 +0000 -@@ -0,0 +1,67 @@ -+/* Copyright (C) 2015, Wazuh Inc. -+ * All rights reserved. -+ * -+ * This program is free software; you can redistribute it -+ * and/or modify it under the terms of the GNU General Public -+ * License (version 2) as published by the FSF - Free Software -+ * Foundation. -+ */ -+ -+#pragma once -+ -+#include <grp.h> -+ -+/// @brief Interface for group-related operations on FreeBSD systems. -+/// -+/// Provides methods to retrieve group lists and counts for users, allowing for dependency injection -+/// and easier testing. This interface abstracts the system calls used to interact with the group database. -+class IGroupWrapperFreeBSD -+{ -+ public: -+ /// @brief Default constructor. -+ virtual ~IGroupWrapperFreeBSD() = default; -+ -+ /// @brief Retrieves the group entry for a given group ID. -+ /// @param gid The group ID to search for. -+ /// @param resultbuf A pointer to a group structure where the result will be stored. -+ /// @param buffer A buffer to hold the string data for the group entry. -+ /// @param buflen The size of the buffer. -+ /// @param result A pointer to a group structure pointer that will point to the result. -+ /// @return 0 on success, or an error code on failure. -+ virtual int getgrgid_r(gid_t gid, struct group* resultbuf, char* buffer, size_t buflen, struct group** result) const = 0; -+ -+ /// @brief Retrieves the group entry for a given group name. -+ /// @param resultbuf A pointer to a group structure where the result will be stored. -+ /// @param buffer A buffer to hold the string data for the group entry. -+ /// @param buflen The size of the buffer. -+ /// @param result A pointer to a group structure pointer that will point to the result. -+ virtual int getgrent_r(struct group* resultbuf, char* buffer, size_t buflen, struct group** result) const = 0; -+ -+ /// @brief Retrieves a group by its GID. -+ /// @param gid The group ID for which to retrieve the group structure. -+ /// @return A pointer to the group structure if found, or nullptr if not found. -+ virtual struct group* getgrgid(gid_t gid) const = 0; -+ -+ /// @brief Retrieves the next group entry from the group database. -+ /// @return A pointer to the next group structure, or nullptr if there are no more entries -+ virtual struct group* getgrent() const = 0; -+ -+ /// @brief Rewind the group-file stream. -+ virtual void setgrent() const = 0; -+ -+ /// @brief Close the group-file stream. -+ virtual void endgrent() const = 0; -+ -+ /// @brief Retrieves a group by its name. -+ /// @param name The name of the group to retrieve. -+ /// @return A pointer to the group structure if found, or nullptr if not found. -+ virtual struct group* getgrnam(const char* name) const = 0; -+ -+ /// @brief Retrieves the list of groups for a user. -+ /// @param user The username for which to retrieve the group list. -+ /// @param group The primary group ID of the user. -+ /// @param groups Pointer to an array where the group IDs will be stored. -+ /// @param ngroups Pointer to an integer that indicates the size of the groups array. -+ /// @return The number of groups the user belongs to, or -1 on error. -+ virtual int getgrouplist(const char* user, gid_t group, gid_t* groups, int* ngroups) const = 0; -+}; diff --git a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_wrappers_unix_freebsd-ipasswd_wrapper.hpp b/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_wrappers_unix_freebsd-ipasswd_wrapper.hpp deleted file mode 100644 index a2119a381499..000000000000 --- a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_wrappers_unix_freebsd-ipasswd_wrapper.hpp +++ /dev/null @@ -1,72 +0,0 @@ ---- /dev/null 2026-01-13 23:17:10.457712000 +0000 -+++ src/data_provider/src/extended_sources/wrappers/unix/freebsd/ipasswd_wrapper.hpp 2026-01-13 22:43:51.149517000 +0000 -@@ -0,0 +1,69 @@ -+/* Copyright (C) 2015, Wazuh Inc. -+ * All rights reserved. -+ * -+ * This program is free software; you can redistribute it -+ * and/or modify it under the terms of the GNU General Public -+ * License (version 2) as published by the FSF - Free Software -+ * Foundation. -+ */ -+ -+#pragma once -+ -+#include <pwd.h> -+ -+// Interface for the pwd darwin wrapper -+class IPasswdWrapperFreeBSD -+{ -+ public: -+ /// Destructor -+ virtual ~IPasswdWrapperFreeBSD() = default; -+ -+ /// @brief Retrieves the passwd entry for the given username. -+ /// @param name The username to search for. -+ /// @return A pointer to the passwd structure, or nullptr if not found. -+ virtual struct passwd* getpwnam(const char* name) = 0; -+ -+ /// @brief Retrieves the passwd entry for the given user ID. -+ /// @param uid The user ID to search for. -+ /// @return A pointer to the passwd structure, or nullptr if not found. -+ virtual struct passwd* getpwuid(uid_t uid) = 0; -+ -+ /// @brief Retrieves the passwd entry for the given user ID. -+ /// @param uid User ID to search. -+ /// @param pwd Pointer to a passwd structure to fill. -+ /// @param buf Buffer used to store string fields. -+ /// @param buflen Size of the buffer. -+ /// @param result Pointer to store the result (null if not found). -+ /// @return 0 on success, or an error number on failure. -+ virtual int getpwuid_r(uid_t uid, struct passwd* pwd, -+ char* buf, size_t buflen, struct passwd** result) = 0; -+ -+ /// @brief Retrieves the passwd entry for the given username. -+ /// @param name Username to search. -+ /// @param pwd Pointer to a passwd structure to fill. -+ /// @param buf Buffer used to store string fields. -+ /// @param buflen Size of the buffer. -+ /// @param result Pointer to store the result (null if not found). -+ /// @return 0 on success, or an error number on failure. -+ virtual int getpwnam_r(const char* name, struct passwd* pwd, -+ char* buf, size_t buflen, struct passwd** result) = 0; -+ -+ /// @brief Rewinds the passwd database to the beginning. -+ virtual void setpwent() = 0; -+ -+ /// @brief Retrieves the next entry from the passwd database. -+ /// @return A pointer to the passwd structure, or nullptr if no more entries. -+ virtual struct passwd* getpwent() = 0; -+ -+ /// @brief Retrieves the next entry from the passwd database. -+ /// @param pwd Pointer to a passwd structure to fill. -+ /// @param buf Buffer used to store string fields. -+ /// @param buflen Size of the buffer. -+ /// @param result Pointer to store the result (null if not found). -+ /// @return 0 on success, or an error number on failure. -+ virtual int getpwent_r(struct passwd* pwd, char* buf, -+ size_t buflen, struct passwd** result) = 0; -+ -+ /// @brief Closes the passwd database. -+ virtual void endpwent() = 0; -+}; diff --git a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_wrappers_unix_freebsd-passwd_wrapper.hpp b/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_wrappers_unix_freebsd-passwd_wrapper.hpp deleted file mode 100644 index 9d12098e14f5..000000000000 --- a/security/wazuh-manager/files/patch-src_data__provider_src_extended__sources_wrappers_unix_freebsd-passwd_wrapper.hpp +++ /dev/null @@ -1,96 +0,0 @@ ---- /dev/null 2026-01-13 23:17:03.875999000 +0000 -+++ src/data_provider/src/extended_sources/wrappers/unix/freebsd/passwd_wrapper.hpp 2026-01-13 22:43:51.149624000 +0000 -@@ -0,0 +1,93 @@ -+/* Copyright (C) 2015, Wazuh Inc. -+ * All rights reserved. -+ * -+ * This program is free software; you can redistribute it -+ * and/or modify it under the terms of the GNU General Public -+ * License (version 2) as published by the FSF - Free Software -+ * Foundation. -+ */ -+ -+#pragma once -+ -+#include "ipasswd_wrapper.hpp" -+ -+/// @brief Wrapper class for FreeBSD-specific passwd database access. -+/// -+/// Encapsulates system calls used to retrieve user information on FreeBSD, -+/// allowing for dependency injection and easier testing. -+class PasswdWrapperFreeBSD : public IPasswdWrapperFreeBSD -+{ -+ public: -+ /// @brief Retrieves the passwd entry for the given username. -+ /// @param name The username to search for. -+ /// @return A pointer to the passwd structure, or nullptr if not found. -+ struct passwd* getpwnam(const char* name) override -+ { -+ return ::getpwnam(name); -+ } -+ -+ /// @brief Retrieves the passwd entry for the given user ID. -+ /// @param uid The user ID to search for. -+ /// @return A pointer to the passwd structure, or nullptr if not found. -+ struct passwd* getpwuid(uid_t uid) override -+ { -+ return ::getpwuid(uid); -+ } -+ -+ /// @brief Retrieves the passwd entry for the given user ID. -+ /// @param uid User ID to search. -+ /// @param pwd Pointer to a passwd structure to fill. -+ /// @param buf Buffer used to store string fields. -+ /// @param buflen Size of the buffer. -+ /// @param result Pointer to store the result (null if not found). -+ /// @return 0 on success, or an error number on failure. -+ int getpwuid_r(uid_t uid, struct passwd* pwd, -+ char* buf, size_t buflen, struct passwd** result) override -+ { -+ return ::getpwuid_r(uid, pwd, buf, buflen, result); -+ } -+ -+ /// @brief Retrieves the passwd entry for the given username. -+ /// @param name Username to search. -+ /// @param pwd Pointer to a passwd structure to fill. -+ /// @param buf Buffer used to store string fields. -+ /// @param buflen Size of the buffer. -+ /// @param result Pointer to store the result (null if not found). -+ /// @return 0 on success, or an error number on failure. -+ int getpwnam_r(const char* name, struct passwd* pwd, -+ char* buf, size_t buflen, struct passwd** result) override -+ { -+ return ::getpwnam_r(name, pwd, buf, buflen, result); -+ } -+ -+ /// @brief Rewinds the passwd database to the beginning. -+ void setpwent() override -+ { -+ ::setpwent(); -+ } -+ -+ /// @brief Retrieves the next entry from the passwd database. -+ /// @return A pointer to the passwd structure, or nullptr if no more entries. -+ struct passwd* getpwent() override -+ { -+ return ::getpwent(); -+ } -+ -+ /// @brief Retrieves the next entry from the passwd database. -+ /// @param pwd Pointer to a passwd structure to fill. -+ /// @param buf Buffer used to store string fields. -+ /// @param buflen Size of the buffer. -+ /// @param result Pointer to store the result (null if not found). -+ /// @return 0 on success, or an error number on failure. -+ int getpwent_r(struct passwd* pwd, char* buf, -+ size_t buflen, struct passwd** result) override -+ { -+ return ::getpwent_r(pwd, buf, buflen, result); -+ } -+ -+ /// @brief Closes the passwd database. -+ void endpwent() override -+ { -+ ::endpwent(); -+ } -+}; diff --git a/security/wazuh-manager/files/patch-src_headers_pthreads_op.h b/security/wazuh-manager/files/patch-src_headers_pthreads_op.h deleted file mode 100644 index 607c15ffdb07..000000000000 --- a/security/wazuh-manager/files/patch-src_headers_pthreads_op.h +++ /dev/null @@ -1,40 +0,0 @@ ---- src/headers/pthreads_op.h 2025-09-23 06:59:40.000000000 -0700 -+++ src/headers/pthreads_op.h 2025-10-13 00:48:19.635169000 -0700 -@@ -25,6 +25,37 @@ - #define w_cond_signal(x) { int error = pthread_cond_signal(x); if (error) merror_exit("At pthread_cond_signal(): %s", strerror(error)); } - #define w_cond_broadcast(x) { int error = pthread_cond_broadcast(x); if (error) merror_exit("At pthread_cond_broadcast(): %s", strerror(error)); } - #define w_cond_destroy(x) { int error = pthread_cond_destroy(x); if (error) merror_exit("At pthread_cond_destroy(): %s", strerror(error)); } -+#if defined(__FreeBSD__) -+#define w_portable_rwlock_init(x, y) { \ -+ if (portable_rwlock_init(x) != 0) \ -+ merror_exit("At portable_rwlock_init(): failed to initialize rwlock"); \ -+} -+ -+#define w_portable_rwlock_rdlock(x) { \ -+ if (portable_rwlock_rdlock(x) != 0) \ -+ merror_exit("At portable_rwlock_rdlock(): failed to acquire read lock"); \ -+} -+ -+#define w_portable_rwlock_wrlock(x) { \ -+ if (portable_rwlock_wrlock(x) != 0) \ -+ merror_exit("At portable_rwlock_wrlock(): failed to acquire write lock"); \ -+} -+ -+#define w_portable_rwlock_unlock_read(x) { \ -+ if (portable_rwlock_rdunlock(x) != 0) \ -+ merror_exit("At portable_rwlock_rdunlock(): failed to release read lock"); \ -+} -+ -+#define w_portable_rwlock_unlock_write(x) { \ -+ if (portable_rwlock_wrunlock(x) != 0) \ -+ merror_exit("At portable_rwlock_wrunlock(): failed to release write lock"); \ -+} -+ -+#define w_portable_rwlock_destroy(x) { \ -+ if (portable_rwlock_destroy(x) != 0) \ -+ merror_exit("At portable_rwlock_destroy(): failed to destroy rwlock"); \ -+} -+#endif - #define w_rwlock_init(x, y) { int error = pthread_rwlock_init(x, y); if (error) merror_exit("At pthread_rwlock_init(): %s", strerror(error)); } - #define w_rwlock_rdlock(x) { int error = pthread_rwlock_rdlock(x); if (error) merror_exit("At pthread_rwlock_rdlock(): %s", strerror(error)); } - #define w_rwlock_wrlock(x) { int error = pthread_rwlock_wrlock(x); if (error) merror_exit("At pthread_rwlock_wrlock(): %s", strerror(error)); } diff --git a/security/wazuh-manager/files/patch-src_headers_shared.h b/security/wazuh-manager/files/patch-src_headers_shared.h deleted file mode 100644 index ba698bed03c2..000000000000 --- a/security/wazuh-manager/files/patch-src_headers_shared.h +++ /dev/null @@ -1,10 +0,0 @@ ---- src/headers/shared.h 2025-10-12 17:57:55.002875000 -0700 -+++ src/headers/shared.h 2025-10-12 17:41:58.102112000 -0700 -@@ -242,6 +242,7 @@ - #include "math_op.h" - #include "mq_op.h" - #include "privsep_op.h" -+#include "pthreads_portable.h" - #include "pthreads_op.h" - #include "regex_op.h" - #include "sig_op.h" diff --git a/security/wazuh-manager/files/patch-src_remoted_manager.c b/security/wazuh-manager/files/patch-src_remoted_manager.c deleted file mode 100644 index a36845ec26ed..000000000000 --- a/security/wazuh-manager/files/patch-src_remoted_manager.c +++ /dev/null @@ -1,16 +0,0 @@ ---- src/remoted/manager.c 2025-12-16 11:37:43.185027000 -0800 -+++ src/remoted/manager.c 2025-12-16 11:38:04.427583000 -0800 -@@ -18,7 +18,12 @@ - #include "../os_crypto/sha256/sha256_op.h" - #include <pthread.h> - --#if defined(__FreeBSD__) || defined(__MACH__) || defined(__sun__) -+#if defined(__FreeBSD__) -+#include <sys/param.h> -+#define HOST_NAME_MAX MAXHOSTNAMELEN -+#endif -+ -+#if defined(__MACH__) || defined(__sun__) - #define HOST_NAME_MAX 64 - #endif - diff --git a/security/wazuh-manager/files/patch-src_rootcheck_os__string.c b/security/wazuh-manager/files/patch-src_rootcheck_os__string.c deleted file mode 100644 index 45c9be82edc8..000000000000 --- a/security/wazuh-manager/files/patch-src_rootcheck_os__string.c +++ /dev/null @@ -1,12 +0,0 @@ ---- src/rootcheck/os_string.c.orig 2023-05-12 12:30:40 UTC -+++ src/rootcheck/os_string.c -@@ -42,6 +42,9 @@ - #include <locale.h> - #include <unistd.h> - #include <netinet/in.h> -+#ifdef __FreeBSD__ -+#define __LDPGSZ 4096 -+#endif - - #ifdef SOLARIS - #include <sys/exechdr.h> diff --git a/security/wazuh-manager/files/patch-src_shared__modules_content__manager_testtool_main.cpp b/security/wazuh-manager/files/patch-src_shared__modules_content__manager_testtool_main.cpp deleted file mode 100644 index 6ff185b90917..000000000000 --- a/security/wazuh-manager/files/patch-src_shared__modules_content__manager_testtool_main.cpp +++ /dev/null @@ -1,11 +0,0 @@ ---- src/shared_modules/content_manager/testtool/main.cpp 2025-01-19 00:10:00.441927000 -0800 -+++ src/shared_modules/content_manager/testtool/main.cpp 2025-01-19 00:10:08.656971000 -0800 -@@ -1,7 +1,7 @@ -+#include "contentRegister.hpp" - #include "HTTPRequest.hpp" - #include "UNIXSocketRequest.hpp" - #include "contentManager.hpp" --#include "contentRegister.hpp" - #include "defs.h" - #include <chrono> - #include <iostream> diff --git a/security/wazuh-manager/files/patch-src_shared__modules_dbsync_CMakeLists.txt b/security/wazuh-manager/files/patch-src_shared__modules_dbsync_CMakeLists.txt deleted file mode 100644 index 07797273e673..000000000000 --- a/security/wazuh-manager/files/patch-src_shared__modules_dbsync_CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ ---- src/shared_modules/dbsync/CMakeLists.txt.orig 2023-05-22 04:54:30 UTC -+++ src/shared_modules/dbsync/CMakeLists.txt -@@ -70,7 +70,7 @@ elseif(UNIX AND NOT APPLE) - endif(NOT CMAKE_SYSTEM_NAME STREQUAL "AIX") - endif(CMAKE_SYSTEM_NAME STREQUAL "Windows") - --target_link_libraries(dbsync wazuhext) -+target_link_libraries(dbsync nghttp2 wazuhext) - - if(CMAKE_BUILD_TYPE STREQUAL "Release") - if(CMAKE_SYSTEM_NAME STREQUAL "AIX") diff --git a/security/wazuh-manager/files/patch-src_shared__modules_indexer__connector_CMakeLists.txt b/security/wazuh-manager/files/patch-src_shared__modules_indexer__connector_CMakeLists.txt deleted file mode 100644 index f9d64661f0cb..000000000000 --- a/security/wazuh-manager/files/patch-src_shared__modules_indexer__connector_CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ ---- src/shared_modules/indexer_connector/CMakeLists.txt.orig 2024-10-21 18:38:06.742709000 -0700 -+++ src/shared_modules/indexer_connector/CMakeLists.txt 2024-10-21 18:38:18.634415000 -0700 -@@ -45,7 +45,7 @@ - ${INDEXER_CONNECTOR_SRC} - ) - --target_link_libraries(indexer_connector rocksdb urlrequest gcc_s wazuhext keystore) -+target_link_libraries(indexer_connector rocksdb urlrequest gcc_s wazuhext keystore pthread) - - set_target_properties(indexer_connector PROPERTIES - BUILD_RPATH_USE_ORIGIN TRUE diff --git a/security/wazuh-manager/files/patch-src_shared__modules_keystore_CMakeLists.txt b/security/wazuh-manager/files/patch-src_shared__modules_keystore_CMakeLists.txt deleted file mode 100644 index ede7c2db0909..000000000000 --- a/security/wazuh-manager/files/patch-src_shared__modules_keystore_CMakeLists.txt +++ /dev/null @@ -1,19 +0,0 @@ ---- src/shared_modules/keystore/CMakeLists.txt.orig 2024-10-21 18:36:36.879008000 -0700 -+++ src/shared_modules/keystore/CMakeLists.txt 2024-10-21 18:37:38.427862000 -0700 -@@ -28,6 +28,7 @@ - endif() - - include_directories(include) -+include_directories($ENV{LOCALBASE}/include/libepoll-shim) - include_directories(src) - include_directories(${SRC_FOLDER}/external/rocksdb/include) - include_directories(${SRC_FOLDER}/external/openssl/include) -@@ -40,7 +41,7 @@ - - add_library(keystore STATIC ${KEYSTORE_SRC}) - --target_link_libraries(keystore rocksdb wazuhext) -+target_link_libraries(keystore rocksdb epoll-shim wazuhext) - - add_executable(wazuh-keystore src/main.cpp) - diff --git a/security/wazuh-manager/files/patch-src_shared__modules_router_CMakeLists.txt b/security/wazuh-manager/files/patch-src_shared__modules_router_CMakeLists.txt deleted file mode 100644 index c0614dbf67c4..000000000000 --- a/security/wazuh-manager/files/patch-src_shared__modules_router_CMakeLists.txt +++ /dev/null @@ -1,19 +0,0 @@ ---- src/shared_modules/router/CMakeLists.txt 2025-09-23 06:59:40.000000000 -0700 -+++ src/shared_modules/router/CMakeLists.txt 2025-10-11 22:43:21.449602000 -0700 -@@ -19,6 +19,7 @@ - - # Include directories - include_directories(include) -+include_directories($ENV{LOCALBASE}/include/libepoll-shim) - - include_directories(${SRC_FOLDER}) - include_directories(${SRC_FOLDER}/headers) -@@ -42,7 +43,7 @@ - ${ROUTER_SRC} - ) - --target_link_libraries(router gcc_s flatbuffers wazuhext simdjson) -+target_link_libraries(router gcc_s flatbuffers wazuhext simdjson epoll-shim) - - set_target_properties(router PROPERTIES - BUILD_RPATH_USE_ORIGIN TRUE diff --git a/security/wazuh-manager/files/patch-src_shared__modules_rsync_CMakeLists.txt b/security/wazuh-manager/files/patch-src_shared__modules_rsync_CMakeLists.txt deleted file mode 100644 index e9f6fa46f511..000000000000 --- a/security/wazuh-manager/files/patch-src_shared__modules_rsync_CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ ---- src/shared_modules/rsync/CMakeLists.txt.orig 2023-05-22 04:56:09 UTC -+++ src/shared_modules/rsync/CMakeLists.txt -@@ -72,7 +72,7 @@ elseif(UNIX AND NOT APPLE) - endif(NOT CMAKE_SYSTEM_NAME STREQUAL "AIX") - endif(CMAKE_SYSTEM_NAME STREQUAL "Windows") - --target_link_libraries(rsync dbsync wazuhext) -+target_link_libraries(rsync dbsync nghttp2 wazuhext) - - if(CMAKE_BUILD_TYPE STREQUAL "Release") - if(CMAKE_SYSTEM_NAME STREQUAL "AIX") diff --git a/security/wazuh-manager/files/patch-src_shared__modules_utils_rocksDBQueueCF.hpp b/security/wazuh-manager/files/patch-src_shared__modules_utils_rocksDBQueueCF.hpp deleted file mode 100644 index 6c492252dd96..000000000000 --- a/security/wazuh-manager/files/patch-src_shared__modules_utils_rocksDBQueueCF.hpp +++ /dev/null @@ -1,20 +0,0 @@ ---- src/shared_modules/utils/rocksDBQueueCF.hpp 2025-05-23 17:21:34.827040000 -0700 -+++ src/shared_modules/utils/rocksDBQueueCF.hpp 2025-05-23 17:22:52.671141000 -0700 -@@ -192,7 +192,7 @@ - m_db->Delete(rocksdb::WriteOptions(), std::string(id) + "_" + std::to_string(index)); - !status.ok()) - { -- throw std::runtime_error("Failed to dequeue element: " + index); -+ throw std::runtime_error("Failed to dequeue element: " + std::to_string(index)); - } - else - { -@@ -291,7 +291,7 @@ - { - if (status != rocksdb::Status::NotFound()) - { -- throw std::runtime_error("Failed to get elements, error: " + status.code()); -+ throw std::runtime_error("Failed to get elements, error: " + std::to_string(status.code())); - } - } - ++index; diff --git a/security/wazuh-manager/files/patch-src_shared__modules_utils_socketWrapper.hpp b/security/wazuh-manager/files/patch-src_shared__modules_utils_socketWrapper.hpp deleted file mode 100644 index 607e1b96e765..000000000000 --- a/security/wazuh-manager/files/patch-src_shared__modules_utils_socketWrapper.hpp +++ /dev/null @@ -1,14 +0,0 @@ ---- src/shared_modules/utils/socketWrapper.hpp 2025-09-23 06:59:40.000000000 -0700 -+++ src/shared_modules/utils/socketWrapper.hpp 2025-10-11 22:55:35.847683000 -0700 -@@ -28,6 +28,11 @@ - #include <thread> - #include <unistd.h> - -+#if defined(__FreeBSD__) -+#define SO_RCVBUFFORCE SO_RCVBUF -+#define SO_SNDBUFFORCE SO_SNDBUF -+#endif -+ - #ifdef INVALID_SOCKET - #undef INVALID_SOCKET - #endif diff --git a/security/wazuh-manager/files/patch-src_shared__modules_utils_xz_fileDataCollector.hpp b/security/wazuh-manager/files/patch-src_shared__modules_utils_xz_fileDataCollector.hpp deleted file mode 100644 index 7f03920bb7c6..000000000000 --- a/security/wazuh-manager/files/patch-src_shared__modules_utils_xz_fileDataCollector.hpp +++ /dev/null @@ -1,11 +0,0 @@ ---- src/shared_modules/utils/xz/fileDataCollector.hpp.orig 2024-10-21 21:27:17.811078000 -0700 -+++ src/shared_modules/utils/xz/fileDataCollector.hpp 2024-10-21 21:27:30.311015000 -0700 -@@ -59,7 +59,7 @@ - /*! @copydoc IDataCollector::finish() */ - void finish() override - { -- m_file.close(); -+ (m_file.close)(); - } - - /*! @copydoc IDataCollector::setBuffer() */ diff --git a/security/wazuh-manager/files/patch-src_syscheckd_src_db_CMakeLists.txt b/security/wazuh-manager/files/patch-src_syscheckd_src_db_CMakeLists.txt deleted file mode 100644 index 8cd1e6d8d6ab..000000000000 --- a/security/wazuh-manager/files/patch-src_syscheckd_src_db_CMakeLists.txt +++ /dev/null @@ -1,19 +0,0 @@ ---- src/syscheckd/src/db/CMakeLists.txt 2025-11-07 00:46:03.000000000 -0800 -+++ src/syscheckd/src/db/CMakeLists.txt 2026-01-10 15:42:49.547479000 -0800 -@@ -9,6 +9,7 @@ - include_directories(${SRC_FOLDER}/shared_modules/rsync/include/) - include_directories(${SRC_FOLDER}/syscheckd) - include_directories(${SRC_FOLDER}/syscheckd/src/db/src) -+include_directories($ENV{LOCALBASE}/include/libepoll-shim) - - if(CMAKE_SYSTEM_NAME STREQUAL "HP-UX") - link_directories(${INSTALL_PREFIX}/lib) -@@ -64,7 +65,7 @@ - endif(CMAKE_SYSTEM_NAME STREQUAL "Windows") - - if(NOT CMAKE_SYSTEM_NAME STREQUAL "AIX") -- target_link_libraries(fimdb dbsync rsync wazuhext) -+ target_link_libraries(fimdb dbsync ${SRC_FOLDER}/shared_modules/rsync/build/lib/librsync.so wazuhext) - else() - target_link_libraries( - fimdb diff --git a/security/wazuh-manager/files/patch-src_wazuh__modules_syscollector_CMakeLists.txt b/security/wazuh-manager/files/patch-src_wazuh__modules_syscollector_CMakeLists.txt deleted file mode 100644 index c8721504bef8..000000000000 --- a/security/wazuh-manager/files/patch-src_wazuh__modules_syscollector_CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ ---- src/wazuh_modules/syscollector/CMakeLists.txt.orig 2023-05-12 12:30:40 UTC -+++ src/wazuh_modules/syscollector/CMakeLists.txt -@@ -91,7 +91,7 @@ elseif(UNIX AND NOT APPLE) - endif(CMAKE_SYSTEM_NAME STREQUAL "Windows") - - if(NOT CMAKE_SYSTEM_NAME STREQUAL "AIX") -- target_link_libraries(syscollector dbsync rsync sysinfo wazuhext) -+ target_link_libraries(syscollector dbsync ${SRC_FOLDER}/shared_modules/rsync/build/lib/librsync.so ${SRC_FOLDER}/data_provider/build/lib/libsysinfo.so nghttp2 wazuhext) - else() - string(REPLACE ";" ":" CXX_IMPLICIT_LINK_DIRECTORIES_STR "${CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES}") - string(REPLACE ";" ":" PLATFORM_REQUIRED_RUNTIME_PATH_STR "${CMAKE_PLATFORM_REQUIRED_RUNTIME_PATH}") diff --git a/security/wazuh-manager/files/patch-src_wazuh__modules_vulnerability__scanner_CMakeLists.txt b/security/wazuh-manager/files/patch-src_wazuh__modules_vulnerability__scanner_CMakeLists.txt deleted file mode 100644 index 487935df14fb..000000000000 --- a/security/wazuh-manager/files/patch-src_wazuh__modules_vulnerability__scanner_CMakeLists.txt +++ /dev/null @@ -1,28 +0,0 @@ ---- src/wazuh_modules/vulnerability_scanner/CMakeLists.txt.orig 2024-10-21 19:13:54.830128000 -0700 -+++ src/wazuh_modules/vulnerability_scanner/CMakeLists.txt 2024-10-21 20:06:29.722685000 -0700 -@@ -4,7 +4,7 @@ - - enable_testing() - --set(CMAKE_CXX_STANDARD 17) -+set(CMAKE_CXX_STANDARD 20) - set(CMAKE_CXX_STANDARD_REQUIRED ON) - - add_definitions(-DPROMISE_TYPE=PromiseType::NORMAL) -@@ -26,6 +26,7 @@ - - # Include directories - include_directories(include) -+include_directories($ENV{LOCALBASE}/include/libepoll-shim) - include_directories(src/databaseFeedManager) - include_directories(src/policyManager) - -@@ -106,7 +107,7 @@ - - add_dependencies(database_feed compile_schemas) #Add a dependency between top-level targets. - --target_link_libraries(vulnerability_scanner scan_orchestrator database_feed router content_manager indexer_connector router gcc_s flatbuffers) -+target_link_libraries(vulnerability_scanner scan_orchestrator database_feed router content_manager indexer_connector router gcc_s flatbuffers archive epoll-shim) - - set_target_properties(vulnerability_scanner PROPERTIES - BUILD_RPATH_USE_ORIGIN TRUE diff --git a/security/wazuh-manager/files/patch-src_wazuh__modules_vulnerability__scanner_testtool_databaseFeedManager_argsParser.hpp b/security/wazuh-manager/files/patch-src_wazuh__modules_vulnerability__scanner_testtool_databaseFeedManager_argsParser.hpp deleted file mode 100644 index c9ad8d61dc0f..000000000000 --- a/security/wazuh-manager/files/patch-src_wazuh__modules_vulnerability__scanner_testtool_databaseFeedManager_argsParser.hpp +++ /dev/null @@ -1,12 +0,0 @@ ---- src/wazuh_modules/vulnerability_scanner/testtool/databaseFeedManager/argsParser.hpp.orig 2024-10-21 20:14:47.043154000 -0700 -+++ src/wazuh_modules/vulnerability_scanner/testtool/databaseFeedManager/argsParser.hpp 2024-10-21 20:15:19.106241000 -0700 -@@ -14,6 +14,9 @@ - - #include "json.hpp" - #include <fstream> -+#if defined(__FreeBSD__) -+#include <sstream> -+#endif - #include <iostream> - #include <string> - #include <vector> diff --git a/security/wazuh-manager/files/patch-src_wazuh__modules_vulnerability__scanner_testtool_scanner_argsParser.hpp b/security/wazuh-manager/files/patch-src_wazuh__modules_vulnerability__scanner_testtool_scanner_argsParser.hpp deleted file mode 100644 index eb8f943d489f..000000000000 --- a/security/wazuh-manager/files/patch-src_wazuh__modules_vulnerability__scanner_testtool_scanner_argsParser.hpp +++ /dev/null @@ -1,12 +0,0 @@ ---- src/wazuh_modules/vulnerability_scanner/testtool/scanner/argsParser.hpp.orig 2024-10-21 20:17:13.124429000 -0700 -+++ src/wazuh_modules/vulnerability_scanner/testtool/scanner/argsParser.hpp 2024-10-21 20:17:39.305548000 -0700 -@@ -14,6 +14,9 @@ - - #include "json.hpp" - #include <fstream> -+#if defined(__FreeBSD__) -+#include <sstream> -+#endif - #include <iostream> - #include <string> - #include <vector> diff --git a/security/wazuh-manager/files/patch-src_wazuh__modules_vulnerability__scanner_testtool_wazuhDBQuery_CMakeLists.txt b/security/wazuh-manager/files/patch-src_wazuh__modules_vulnerability__scanner_testtool_wazuhDBQuery_CMakeLists.txt deleted file mode 100644 index 9dcbda3841ce..000000000000 --- a/security/wazuh-manager/files/patch-src_wazuh__modules_vulnerability__scanner_testtool_wazuhDBQuery_CMakeLists.txt +++ /dev/null @@ -1,8 +0,0 @@ ---- src/wazuh_modules/vulnerability_scanner/testtool/wazuhDBQuery/CMakeLists.txt 2025-04-30 02:30:26.000000000 -0700 -+++ src/wazuh_modules/vulnerability_scanner/testtool/wazuhDBQuery/CMakeLists.txt 2025-05-09 19:59:29.885715000 -0700 -@@ -14,4 +14,4 @@ - ) - target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Wextra -Wshadow -Wnon-virtual-dtor -Woverloaded-virtual -Wunused -Wcast-align -Wformat=2) - --target_link_libraries(${PROJECT_NAME} pthread) -+target_link_libraries(${PROJECT_NAME} pthread epoll-shim) diff --git a/security/wazuh-manager/files/patch-src_wazuh_modules_vulnerability_scanner_src_vulnerabilityScannerFacade.cpp b/security/wazuh-manager/files/patch-src_wazuh_modules_vulnerability_scanner_src_vulnerabilityScannerFacade.cpp deleted file mode 100644 index 4346aaddb52e..000000000000 --- a/security/wazuh-manager/files/patch-src_wazuh_modules_vulnerability_scanner_src_vulnerabilityScannerFacade.cpp +++ /dev/null @@ -1,14 +0,0 @@ ---- src/wazuh_modules/vulnerability_scanner/src/vulnerabilityScannerFacade.cpp.orig 2026-01-02 14:42:42.202277000 -0400 -+++ src/wazuh_modules/vulnerability_scanner/src/vulnerabilityScannerFacade.cpp 2026-01-02 14:48:18.703476000 -0400 -@@ -641,7 +641,10 @@ - - // Reset shared pointers - m_indexerConnector.reset(); -- m_databaseFeedManager->teardown(); -+ if (m_databaseFeedManager) -+ { -+ m_databaseFeedManager->teardown(); -+ } - m_databaseFeedManager.reset(); - m_syscollectorRsyncSubscription.reset(); - m_syscollectorDeltasSubscription.reset(); diff --git a/security/wazuh-manager/files/patch-tools_mitre_mitredb.py b/security/wazuh-manager/files/patch-tools_mitre_mitredb.py deleted file mode 100644 index bae41b280221..000000000000 --- a/security/wazuh-manager/files/patch-tools_mitre_mitredb.py +++ /dev/null @@ -1,16 +0,0 @@ ---- tools/mitre/mitredb.py.orig 2023-05-12 12:30:40 UTC -+++ tools/mitre/mitredb.py -@@ -766,13 +766,6 @@ def main(database=None): - # Parse enterprise-attack.json file: - parse_json(pathfile, session, database) - -- # User and group permissions -- os.chmod(database, 0o660) -- uid = pwd.getpwnam("root").pw_uid -- gid = grp.getgrnam("wazuh").gr_gid -- os.chown(database, uid, gid) -- -- - if __name__ == '__main__': - parser = argparse.ArgumentParser(description='This script installs mitre.db in a directory.') - parser.add_argument('--database', '-d', help='-d /your/directory/mitre.db (default: /var/ossec/var/db/mitre.db') diff --git a/security/wazuh-manager/files/pthreads_portable.c b/security/wazuh-manager/files/pthreads_portable.c deleted file mode 100644 index fe9be28e725b..000000000000 --- a/security/wazuh-manager/files/pthreads_portable.c +++ /dev/null @@ -1,91 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause - * - * Copyright (c) 2025 J. Cardenas Marquez <acm@FreeBSD.org> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#include "pthreads_portable.h" - -int portable_rwlock_init(portable_rwlock_t *rw) { - if (pthread_mutex_init(&rw->lock, NULL) != 0) return -1; - if (pthread_cond_init(&rw->readers_ok, NULL) != 0) return -1; - if (pthread_cond_init(&rw->writers_ok, NULL) != 0) return -1; - rw->active_readers = 0; - rw->waiting_writers = 0; - rw->writer_active = 0; - return 0; -} - -int portable_rwlock_rdlock(portable_rwlock_t *rw) { - if (pthread_mutex_lock(&rw->lock) != 0) return -1; - while (rw->writer_active || rw->waiting_writers > 0) { - if (pthread_cond_wait(&rw->readers_ok, &rw->lock) != 0) { - pthread_mutex_unlock(&rw->lock); - return -1; - } - } - rw->active_readers++; - return pthread_mutex_unlock(&rw->lock); -} - -int portable_rwlock_rdunlock(portable_rwlock_t *rw) { - if (pthread_mutex_lock(&rw->lock) != 0) return -1; - rw->active_readers--; - if (rw->active_readers == 0 && rw->waiting_writers > 0) - pthread_cond_signal(&rw->writers_ok); - return pthread_mutex_unlock(&rw->lock); -} - -int portable_rwlock_wrlock(portable_rwlock_t *rw) { - if (pthread_mutex_lock(&rw->lock) != 0) return -1; - rw->waiting_writers++; - while (rw->writer_active || rw->active_readers > 0) { - if (pthread_cond_wait(&rw->writers_ok, &rw->lock) != 0) { - rw->waiting_writers--; - pthread_mutex_unlock(&rw->lock); - return -1; - } - } - rw->waiting_writers--; - rw->writer_active = 1; - return pthread_mutex_unlock(&rw->lock); -} - -int portable_rwlock_wrunlock(portable_rwlock_t *rw) { - if (pthread_mutex_lock(&rw->lock) != 0) return -1; - rw->writer_active = 0; - if (rw->waiting_writers > 0) - pthread_cond_signal(&rw->writers_ok); - else - pthread_cond_broadcast(&rw->readers_ok); - return pthread_mutex_unlock(&rw->lock); -} - -int portable_rwlock_destroy(portable_rwlock_t *rw) { - if (pthread_mutex_destroy(&rw->lock) != 0) return -1; - if (pthread_cond_destroy(&rw->readers_ok) != 0) return -1; - if (pthread_cond_destroy(&rw->writers_ok) != 0) return -1; - return 0; -} diff --git a/security/wazuh-manager/files/pthreads_portable.h b/security/wazuh-manager/files/pthreads_portable.h deleted file mode 100644 index 302f76b54318..000000000000 --- a/security/wazuh-manager/files/pthreads_portable.h +++ /dev/null @@ -1,50 +0,0 @@ -/*- - * SPDX-License-Identifier: BSD-2-Clause - * - * Copyright (c) 2025 J. Alonso Cardenas <acm@FreeBSD.org> - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef PORTABLE_RWLOCK_H -#define PORTABLE_RWLOCK_H - -#include <pthread.h> - -typedef struct { - pthread_mutex_t lock; - pthread_cond_t readers_ok; - pthread_cond_t writers_ok; - int active_readers; - int waiting_writers; - int writer_active; -} portable_rwlock_t; - -int portable_rwlock_init(portable_rwlock_t *rw); -int portable_rwlock_rdlock(portable_rwlock_t *rw); -int portable_rwlock_rdunlock(portable_rwlock_t *rw); -int portable_rwlock_wrlock(portable_rwlock_t *rw); -int portable_rwlock_wrunlock(portable_rwlock_t *rw); -int portable_rwlock_destroy(portable_rwlock_t *rw); - -#endif // PORTABLE_RWLOCK_H diff --git a/security/wazuh-manager/pkg-plist b/security/wazuh-manager/pkg-plist index 221932188520..0cfa20717595 100644 --- a/security/wazuh-manager/pkg-plist +++ b/security/wazuh-manager/pkg-plist @@ -4328,14 +4328,6 @@ /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/Cython/__pycache__/__init__%%PYTHON_TAG%%.opt-1.pyc /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/Cython/__pycache__/__init__%%PYTHON_TAG%%.opt-2.pyc /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/Cython/__pycache__/__init__%%PYTHON_TAG%%.pyc -/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/markupsafe-2.1.2.dist-info/INSTALLER -/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/markupsafe-2.1.2.dist-info/LICENSE.rst -/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/markupsafe-2.1.2.dist-info/METADATA -/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/markupsafe-2.1.2.dist-info/RECORD -/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/markupsafe-2.1.2.dist-info/REQUESTED -/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/markupsafe-2.1.2.dist-info/WHEEL -/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/markupsafe-2.1.2.dist-info/direct_url.json -/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/markupsafe-2.1.2.dist-info/top_level.txt /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/PyJWT-2.10.1.dist-info/AUTHORS.rst /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/PyJWT-2.10.1.dist-info/INSTALLER /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/PyJWT-2.10.1.dist-info/LICENSE @@ -4558,13 +4550,13 @@ /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/anyio/streams/tls.py /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/anyio/to_process.py /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/anyio/to_thread.py -/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/api-4.14.1.dist-info/INSTALLER -/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/api-4.14.1.dist-info/METADATA -/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/api-4.14.1.dist-info/RECORD -/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/api-4.14.1.dist-info/REQUESTED -/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/api-4.14.1.dist-info/WHEEL -/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/api-4.14.1.dist-info/direct_url.json -/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/api-4.14.1.dist-info/top_level.txt +/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/api-4.14.2.dist-info/INSTALLER +/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/api-4.14.2.dist-info/METADATA +/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/api-4.14.2.dist-info/RECORD +/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/api-4.14.2.dist-info/REQUESTED +/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/api-4.14.2.dist-info/WHEEL +/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/api-4.14.2.dist-info/direct_url.json +/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/api-4.14.2.dist-info/top_level.txt /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/api/__init__.py /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/api/__pycache__/__init__%%PYTHON_TAG%%.opt-1.pyc /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/api/__pycache__/__init__%%PYTHON_TAG%%.opt-2.pyc @@ -13605,6 +13597,14 @@ /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/libcst/tests/test_type_enforce.py /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/libcst/tests/test_visitor.py /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/libcst/tool.py +/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/markupsafe-2.1.2.dist-info/INSTALLER +/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/markupsafe-2.1.2.dist-info/LICENSE.rst +/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/markupsafe-2.1.2.dist-info/METADATA +/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/markupsafe-2.1.2.dist-info/RECORD +/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/markupsafe-2.1.2.dist-info/REQUESTED +/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/markupsafe-2.1.2.dist-info/WHEEL +/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/markupsafe-2.1.2.dist-info/direct_url.json +/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/markupsafe-2.1.2.dist-info/top_level.txt /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/markupsafe/__init__.py /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/markupsafe/__pycache__/__init__%%PYTHON_TAG%%.opt-1.pyc /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/markupsafe/__pycache__/__init__%%PYTHON_TAG%%.opt-2.pyc @@ -23970,13 +23970,13 @@ /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/sqlalchemy/util/tool_support.py /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/sqlalchemy/util/topological.py /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/sqlalchemy/util/typing.py -/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/starlette-0.47.2.dist-info/INSTALLER -/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/starlette-0.47.2.dist-info/METADATA -/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/starlette-0.47.2.dist-info/RECORD -/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/starlette-0.47.2.dist-info/REQUESTED -/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/starlette-0.47.2.dist-info/WHEEL -/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/starlette-0.47.2.dist-info/direct_url.json -/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/starlette-0.47.2.dist-info/licenses/LICENSE.md +/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/starlette-0.49.1.dist-info/INSTALLER +/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/starlette-0.49.1.dist-info/METADATA +/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/starlette-0.49.1.dist-info/RECORD +/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/starlette-0.49.1.dist-info/REQUESTED +/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/starlette-0.49.1.dist-info/WHEEL +/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/starlette-0.49.1.dist-info/direct_url.json +/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/starlette-0.49.1.dist-info/licenses/LICENSE.md /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/starlette/__init__.py /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/starlette/__pycache__/__init__%%PYTHON_TAG%%.opt-1.pyc /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/starlette/__pycache__/__init__%%PYTHON_TAG%%.opt-2.pyc @@ -24548,13 +24548,13 @@ /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/uvloop/server.pyx /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/uvloop/sslproto.pxd /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/uvloop/sslproto.pyx -/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/wazuh-4.14.1.dist-info/INSTALLER -/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/wazuh-4.14.1.dist-info/METADATA -/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/wazuh-4.14.1.dist-info/RECORD -/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/wazuh-4.14.1.dist-info/REQUESTED -/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/wazuh-4.14.1.dist-info/WHEEL -/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/wazuh-4.14.1.dist-info/direct_url.json -/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/wazuh-4.14.1.dist-info/top_level.txt +/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/wazuh-4.14.2.dist-info/INSTALLER +/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/wazuh-4.14.2.dist-info/METADATA +/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/wazuh-4.14.2.dist-info/RECORD +/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/wazuh-4.14.2.dist-info/REQUESTED +/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/wazuh-4.14.2.dist-info/WHEEL +/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/wazuh-4.14.2.dist-info/direct_url.json +/var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/wazuh-4.14.2.dist-info/top_level.txt /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/wazuh/__init__.py /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/wazuh/__main__.py /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/wazuh/__pycache__/__init__%%PYTHON_TAG%%.opt-1.pyc @@ -30792,7 +30792,6 @@ @dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/Cython/__pycache__ @dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/Cython @dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/Cython-0.29.36.dist-info -@dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/markupsafe-2.1.2.dist-info @dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/PyJWT-2.10.1.dist-info @dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/SQLAlchemy-2.0.23.dist-info @dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/__pycache__ @@ -30818,7 +30817,7 @@ @dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/api/models @dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/api/spec @dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/api -@dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/api-4.14.1.dist-info +@dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/api-4.14.2.dist-info @dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/asgiref/__pycache__ @dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/asgiref @dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/asgiref-3.7.2.dist-info @@ -32187,6 +32186,7 @@ @dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/libcst-0.3.20.dist-info @dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/markupsafe/__pycache__ @dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/markupsafe +@dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/markupsafe-2.1.2.dist-info @dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/more_itertools/__pycache__ @dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/more_itertools @dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/more_itertools-8.2.0.dist-info @@ -32820,8 +32820,8 @@ @dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/starlette/middleware/__pycache__ @dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/starlette/middleware @dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/starlette -@dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/starlette-0.47.2.dist-info/licenses -@dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/starlette-0.47.2.dist-info +@dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/starlette-0.49.1.dist-info/licenses +@dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/starlette-0.49.1.dist-info @dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/tabulate-0.8.9.dist-info @dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/tools/env/wazuh-manager/xml/__pycache__ @dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/tools/env/wazuh-manager/xml @@ -32879,7 +32879,7 @@ @dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/wazuh/rbac/default @dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/wazuh/rbac @dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/wazuh -@dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/wazuh-4.14.1.dist-info +@dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/wazuh-4.14.2.dist-info @dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/websocket/__pycache__ @dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/websocket/tests/__pycache__ @dir /var/ossec/framework/python/%%PYTHON_SITELIBDIR%%/websocket/tests/data diff --git a/security/wazuh-server/Makefile b/security/wazuh-server/Makefile index 6e3deba69c5a..dbe895150de0 100644 --- a/security/wazuh-server/Makefile +++ b/security/wazuh-server/Makefile @@ -1,6 +1,5 @@ PORTNAME= wazuh -PORTVERSION= 4.14.1 -PORTREVISION= 3 +PORTVERSION= 4.14.2 CATEGORIES= security MASTER_SITES= LOCAL/acm/${PORTNAME}/:config_samples \ https://packages.wazuh.com/4.x/filebeat/:wazuh_module \ @@ -14,7 +13,7 @@ WWW= https://wazuh.com/ LICENSE= GPLv2 -USES= dos2unix +USES= dos2unix NO_BUILD= yes DOS2UNIX_FILES= ${WRKDIR}/wazuh-template.json @@ -29,7 +28,7 @@ SUB_FILES= pkg-message ETCDIR= ${PREFIX}/etc/${PORTNAME}${PKGNAMESUFFIX} WAZUH_LOCALBASE= /var/ossec -WAZUH_MODULE_VER= 0.4 +WAZUH_MODULE_VER= 0.5 OPTIONS_DEFINE= FILEBEAT LOGSTASH WAZUH-MANAGER OPTIONS_DEFAULT= FILEBEAT LOGSTASH WAZUH-MANAGER @@ -41,7 +40,7 @@ WAZUH-MANAGER_DESC= Install wazuh manager component FILEBEAT_RUN_DEPENDS= filebeat:sysutils/beats8 LOGSTASH_RUN_DEPENDS= ${LOCALBASE}/logstash/bin/logstash:sysutils/logstash8 -WAZUH-MANAGER_RUN_DEPENDS= wazuh-manager>=0:security/wazuh-manager +WAZUH-MANAGER_RUN_DEPENDS= ${WAZUH_LOCALBASE}/bin/wazuh-control:security/wazuh-manager do-extract: @${MKDIR} ${WRKSRC} diff --git a/security/wazuh-server/distinfo b/security/wazuh-server/distinfo index 1220060201ce..6b13980b394e 100644 --- a/security/wazuh-server/distinfo +++ b/security/wazuh-server/distinfo @@ -1,9 +1,9 @@ -TIMESTAMP = 1763764270 -SHA256 (wazuh-4.14.1/filebeat.yml) = bbcf6fe806a32b505b0848386d71684868be85965bfb91b117dff15c9de7c247 -SIZE (wazuh-4.14.1/filebeat.yml) = 1120 -SHA256 (wazuh-4.14.1/logstash-wazuh-4.14.1.conf) = 36fb7455a50379e58ef0f63940dcd8971df85ebc7db03b27cce55570ebd60888 -SIZE (wazuh-4.14.1/logstash-wazuh-4.14.1.conf) = 3112 -SHA256 (wazuh-4.14.1/wazuh-filebeat-0.4.tar.gz) = b0683f1d5d7c5d076ea3a565b0aa7ca92e6483f8a14e8b96799e6ee632da2284 -SIZE (wazuh-4.14.1/wazuh-filebeat-0.4.tar.gz) = 1802 -SHA256 (wazuh-4.14.1/wazuh-template.json) = 31a60d5812fb0b5cd7c2d58556b88f57f7fc2f2221dd7b6b32f2256b13ea2886 -SIZE (wazuh-4.14.1/wazuh-template.json) = 84241 +TIMESTAMP = 1768547618 +SHA256 (wazuh-4.14.2/filebeat.yml) = bbcf6fe806a32b505b0848386d71684868be85965bfb91b117dff15c9de7c247 +SIZE (wazuh-4.14.2/filebeat.yml) = 1120 +SHA256 (wazuh-4.14.2/logstash-wazuh-4.14.2.conf) = 36fb7455a50379e58ef0f63940dcd8971df85ebc7db03b27cce55570ebd60888 +SIZE (wazuh-4.14.2/logstash-wazuh-4.14.2.conf) = 3112 +SHA256 (wazuh-4.14.2/wazuh-filebeat-0.5.tar.gz) = 7a8c67c47b22f89ab271b7e35f108f18b2215b7aa411cdd23c9994393070d38d +SIZE (wazuh-4.14.2/wazuh-filebeat-0.5.tar.gz) = 1808 +SHA256 (wazuh-4.14.2/wazuh-template.json) = 31a60d5812fb0b5cd7c2d58556b88f57f7fc2f2221dd7b6b32f2256b13ea2886 +SIZE (wazuh-4.14.2/wazuh-template.json) = 84241 diff --git a/security/wazuh-server/files/pkg-message.in b/security/wazuh-server/files/pkg-message.in index 12e19d9cce62..16e82ff37293 100644 --- a/security/wazuh-server/files/pkg-message.in +++ b/security/wazuh-server/files/pkg-message.in @@ -34,18 +34,17 @@ Wazuh server components were installed 7) Install logstash-output-opensearch plugin. Fetch it from rubygems site or opensearch github # cd %%PREFIX%%/logstash/bin - # sh -c "JAVA_HOME=%%PREFIX%%/openjdk21 ./logstash-plugin install /tmp/logstash-output-opensearch" + # sh -c "JAVA_HOME=%%PREFIX%%/openjdk21 ./logstash-plugin install logstash-output-opensearch" - There are some issues installing this plugin on latest version of sysutils/logstash8. - Try installing gem file directly + If there are some issues installing this plugin, try installing gem file directly: # fetch https://rubygems.org/downloads/logstash-output-opensearch-2.0.3-java.gem -o \ /tmp/logstash-output-opensearch-2.0.3-java.gem - # sh -c "JAVA_HOME=%%PREFIX%%/openjdk17 ./logstash-plugin install /tmp/logstash-output-opensearch-2.0.3-java.gem" + # sh -c "JAVA_HOME=%%PREFIX%%/openjdk21 ./logstash-plugin install /tmp/logstash-output-opensearch-2.0.3-java.gem" 8) Check if logstash-output-opensearch plugin was installed - # sh -c "JAVA_HOME=%%PREFIX%%/openjdk17 ./logstash-plugin list | grep logstash-output-opensearch" + # sh -c "JAVA_HOME=%%PREFIX%%/openjdk21 ./logstash-plugin list | grep logstash-output-opensearch" 9) Add Filebeat and Logstash to /etc/rc.conf |
