diff --git a/sysutils/Makefile b/sysutils/Makefile index 4b4bda31015c..a9bfc4cbda13 100644 --- a/sysutils/Makefile +++ b/sysutils/Makefile @@ -1,1683 +1,1684 @@ COMMENT = System utilities SUBDIR += 3dm SUBDIR += 3mux SUBDIR += 44bsd-more SUBDIR += 915resolution SUBDIR += LPRng SUBDIR += LPRngTool SUBDIR += R-cran-processx SUBDIR += R-cran-ps SUBDIR += R-cran-xopen SUBDIR += RyzenAdj SUBDIR += UEFITool SUBDIR += abduco SUBDIR += abgx360 SUBDIR += accounts-qml-module SUBDIR += accountsservice SUBDIR += acerhdf-kmod SUBDIR += acltool SUBDIR += acpi_call SUBDIR += acpica-tools SUBDIR += acts SUBDIR += adtool SUBDIR += afflib SUBDIR += afio SUBDIR += agedu SUBDIR += ah-tty SUBDIR += aimage SUBDIR += aird SUBDIR += alfio SUBDIR += alloy SUBDIR += am-utils SUBDIR += amazon-ssm-agent SUBDIR += amazon-ssm-plugin SUBDIR += amdmsrtweaker SUBDIR += amrstat SUBDIR += amtc SUBDIR += anacron SUBDIR += and SUBDIR += android-file-transfer SUBDIR += android-ota-payload-extractor SUBDIR += angrysearch SUBDIR += ansible SUBDIR += ansible-iocage SUBDIR += ansible-kld SUBDIR += ansible-sshjail SUBDIR += ansible-sysrc SUBDIR += anvil SUBDIR += aoostar-rs SUBDIR += apachetop SUBDIR += apcctrl SUBDIR += apcpwr SUBDIR += apcupsd SUBDIR += appjail SUBDIR += appjail-devel SUBDIR += apt-mirror-devel SUBDIR += aptly SUBDIR += arc_summary SUBDIR += arcconf SUBDIR += archey4 SUBDIR += ascpu SUBDIR += asfsm SUBDIR += asmctl SUBDIR += asmem SUBDIR += asusoled SUBDIR += async SUBDIR += atf-fvp SUBDIR += atf-master SUBDIR += atf-rk3328 SUBDIR += atf-rk3399 SUBDIR += atf-sun50i_a64 SUBDIR += atf-sun50i_h6 SUBDIR += atop SUBDIR += auto-admin SUBDIR += autojump SUBDIR += automounter SUBDIR += autorestic SUBDIR += awslim SUBDIR += azure-agent SUBDIR += b2sum SUBDIR += b3sum SUBDIR += b43-fwcutter SUBDIR += backdown SUBDIR += backrest SUBDIR += backuppc SUBDIR += backuppc-devel SUBDIR += backuppc4 SUBDIR += backupuser SUBDIR += bacnet-stack-apps SUBDIR += bacula-libs3 SUBDIR += bacula13-client SUBDIR += bacula13-client-static SUBDIR += bacula13-docs SUBDIR += bacula13-server SUBDIR += bacula15-client SUBDIR += bacula15-client-static SUBDIR += bacula15-docs SUBDIR += bacula15-server SUBDIR += baloo-widgets SUBDIR += bamf SUBDIR += bareos-client SUBDIR += bareos-server SUBDIR += bareos-traymonitor SUBDIR += bareos23-client SUBDIR += bareos23-server SUBDIR += bareos23-traymonitor SUBDIR += bareos24-client SUBDIR += bareos24-server SUBDIR += bareos24-traymonitor SUBDIR += barrier SUBDIR += bashtop SUBDIR += bastille SUBDIR += batmon SUBDIR += batterycat SUBDIR += battmond SUBDIR += battray SUBDIR += bchunk SUBDIR += beadm SUBDIR += beats8 + SUBDIR += beats9 SUBDIR += bfs SUBDIR += bhyve-firmware SUBDIR += bhyve-rc SUBDIR += bhyvemgr SUBDIR += biosfont SUBDIR += bkpupsd SUBDIR += bksh SUBDIR += bkt SUBDIR += blisp SUBDIR += bmd SUBDIR += bmd-plugin-avahi SUBDIR += bmd-plugin-hookcmd SUBDIR += boot-extract SUBDIR += bottom SUBDIR += bpytop SUBDIR += brasero SUBDIR += brename SUBDIR += brut SUBDIR += bsd-splash-changer SUBDIR += bsdconfig SUBDIR += bsdcrashtar SUBDIR += bsdebfetch SUBDIR += bsdfan SUBDIR += bsdhwmon SUBDIR += bsdinfo SUBDIR += bsdisks SUBDIR += bsdsensors SUBDIR += bsdstats SUBDIR += bstack SUBDIR += btop SUBDIR += btsixad SUBDIR += budgie-control-center SUBDIR += buildah SUBDIR += bulk_extractor SUBDIR += bupstash SUBDIR += burp SUBDIR += busybox SUBDIR += bvm SUBDIR += byobu SUBDIR += calamares SUBDIR += cardano-cli SUBDIR += catatonit SUBDIR += catfish SUBDIR += catsit SUBDIR += cbsd SUBDIR += cbsd-mq-api SUBDIR += cbsd-mq-router SUBDIR += ccd2iso SUBDIR += cciss_vol_status SUBDIR += ccze SUBDIR += cdargs SUBDIR += cdbkup SUBDIR += cdeploy SUBDIR += cdircmp SUBDIR += cdrdao SUBDIR += cdrkit SUBDIR += cdroot SUBDIR += cdrtools SUBDIR += cfengine SUBDIR += cfengine-devel SUBDIR += cfengine-lts SUBDIR += cfengine-masterfiles SUBDIR += cfengine-masterfiles-devel SUBDIR += cfengine-masterfiles-lts SUBDIR += cfengine-masterfiles321 SUBDIR += cfengine-masterfiles322 SUBDIR += cfengine-masterfiles323 SUBDIR += cfengine-masterfiles324 SUBDIR += cfengine-masterfiles325 SUBDIR += cfengine-masterfiles326 SUBDIR += cfengine-masterfiles327 SUBDIR += cfengine321 SUBDIR += cfengine322 SUBDIR += cfengine323 SUBDIR += cfengine324 SUBDIR += cfengine325 SUBDIR += cfengine326 SUBDIR += cfengine327 SUBDIR += chaoskube SUBDIR += checkrestart SUBDIR += chezmoi SUBDIR += chgrep SUBDIR += choria SUBDIR += chyves SUBDIR += cilium SUBDIR += cinnamon-control-center SUBDIR += cinnamon-settings-daemon SUBDIR += ciso SUBDIR += ciso-maker SUBDIR += ck4up SUBDIR += clean SUBDIR += clockspeed SUBDIR += clone SUBDIR += clonehdd SUBDIR += cloud-nuke SUBDIR += clsync SUBDIR += cluster-glue SUBDIR += cmdwatch SUBDIR += cmocka SUBDIR += cmockery2 SUBDIR += cmogstored SUBDIR += cmospwd SUBDIR += colorize SUBDIR += conan SUBDIR += confctl SUBDIR += conky SUBDIR += conky-awesome SUBDIR += conman SUBDIR += conmon SUBDIR += conserve SUBDIR += consolehm SUBDIR += consolekit2 SUBDIR += consul SUBDIR += consul-alerts SUBDIR += consul-replicate SUBDIR += consul_exporter SUBDIR += containerd SUBDIR += containers-common SUBDIR += contractor SUBDIR += copytape SUBDIR += coreos-ct SUBDIR += coreutils SUBDIR += cpdup SUBDIR += cpdup-FreeBSD SUBDIR += cpu-microcode SUBDIR += cpu-microcode-amd SUBDIR += cpu-microcode-intel SUBDIR += cpu-microcode-rc SUBDIR += cpu-x SUBDIR += cpuburn SUBDIR += cpufetch SUBDIR += cpuid SUBDIR += cpuid2cpuflags SUBDIR += cpulimit SUBDIR += cpupdate SUBDIR += crashme SUBDIR += crate SUBDIR += createrepo_c SUBDIR += cronic SUBDIR += cronolog SUBDIR += cronolog-devel SUBDIR += ctop SUBDIR += currtime SUBDIR += cw SUBDIR += czkawka SUBDIR += daa2iso SUBDIR += dae SUBDIR += daemonize SUBDIR += daemontools SUBDIR += daemontools-encore SUBDIR += damager SUBDIR += dar SUBDIR += data-prepper SUBDIR += dateutils SUBDIR += dc3dd SUBDIR += dcfldd SUBDIR += dd_rescue SUBDIR += ddh SUBDIR += ddpt SUBDIR += ddrescue SUBDIR += ddrescueview SUBDIR += debhelper SUBDIR += debootstrap SUBDIR += deltarpm SUBDIR += deltup SUBDIR += deskflow SUBDIR += desktop-installer SUBDIR += detox SUBDIR += devctl-jail-kmod SUBDIR += devd-mount SUBDIR += devedeng SUBDIR += devstat SUBDIR += devtui SUBDIR += dfc SUBDIR += di SUBDIR += diffoci SUBDIR += digdag SUBDIR += dirdiff SUBDIR += direnv SUBDIR += direvent SUBDIR += dirvish SUBDIR += discus SUBDIR += diskcheckd SUBDIR += diskimage-tools SUBDIR += diskonaut SUBDIR += diskroaster SUBDIR += diskscrub SUBDIR += diskus SUBDIR += dmg2img SUBDIR += dmidecode SUBDIR += dnf SUBDIR += docker SUBDIR += docker-compose SUBDIR += docker-credential-pass SUBDIR += docker-machine SUBDIR += docker-registry SUBDIR += doctl SUBDIR += doinkd SUBDIR += downtimed SUBDIR += dsbbatmon SUBDIR += dsbdriverd SUBDIR += dsblogoutmgr SUBDIR += dsbsu SUBDIR += dsbwrtsysctl SUBDIR += dtc SUBDIR += dtpstree SUBDIR += dtrace-toolkit SUBDIR += du2ps SUBDIR += dua-cli SUBDIR += duf SUBDIR += duff SUBDIR += dunst SUBDIR += dupd SUBDIR += duplicity SUBDIR += duply SUBDIR += dupmerge SUBDIR += dust SUBDIR += dutree SUBDIR += dvd+rw-tools SUBDIR += dvdbackup SUBDIR += dvdimagecmp SUBDIR += dvdisaster SUBDIR += dvdvideo SUBDIR += dvtm SUBDIR += dwatch SUBDIR += dwatch-gource SUBDIR += dwatch-json SUBDIR += dwatch-pwsnoop SUBDIR += dynamic_motd SUBDIR += ebsnvme-id SUBDIR += ec2-scripts SUBDIR += eclat SUBDIR += edid-decode SUBDIR += edk2 SUBDIR += egress-monitor SUBDIR += eject SUBDIR += eksctl SUBDIR += elephant SUBDIR += elfx86exts SUBDIR += endian SUBDIR += enteruser SUBDIR += entr SUBDIR += env4801 SUBDIR += envconsul SUBDIR += epazote SUBDIR += erdtree SUBDIR += etcmerge SUBDIR += ethname SUBDIR += evhz SUBDIR += evisum SUBDIR += evtviewer SUBDIR += exa SUBDIR += extipl SUBDIR += extrace-freebsd SUBDIR += eza SUBDIR += ezjail SUBDIR += f-upgrade SUBDIR += f2 SUBDIR += f3 SUBDIR += fakertc SUBDIR += faketty SUBDIR += fand SUBDIR += fanout SUBDIR += fastfetch SUBDIR += fatback SUBDIR += fclones SUBDIR += fcode-utils SUBDIR += fconfig SUBDIR += fcron SUBDIR += fd SUBDIR += fdupes SUBDIR += fetchlog SUBDIR += file SUBDIR += filedupe SUBDIR += filelight SUBDIR += filemon SUBDIR += fileprune SUBDIR += fileschanged SUBDIR += filetype SUBDIR += filevercmp SUBDIR += filewatcherd SUBDIR += finfo SUBDIR += firstboot-cloudsetup SUBDIR += firstboot-freebsd-update SUBDIR += firstboot-pkgs SUBDIR += flasher SUBDIR += flashrom SUBDIR += flexbackup SUBDIR += flipperbit SUBDIR += flock SUBDIR += flog SUBDIR += flowgger SUBDIR += fluent-bit SUBDIR += fonteditfs SUBDIR += foremost SUBDIR += fortunelock SUBDIR += fpart SUBDIR += framework-system SUBDIR += framework-tool-tui SUBDIR += frand SUBDIR += freebsd-bsdlabel SUBDIR += freebsd-fdisk SUBDIR += freebsd-rustdate SUBDIR += freebsd-shar SUBDIR += freebsd-snapshot SUBDIR += freecolor SUBDIR += freedt SUBDIR += freeipmi SUBDIR += freesbie SUBDIR += froxlor SUBDIR += fsbackup SUBDIR += fsc SUBDIR += fsearch SUBDIR += fselect SUBDIR += ftwin SUBDIR += fvcool SUBDIR += fwup SUBDIR += fwupd SUBDIR += fwupd-efi SUBDIR += fx SUBDIR += g15daemon SUBDIR += gaffitter SUBDIR += ganglia-monitor-core SUBDIR += gapcmon SUBDIR += garcon SUBDIR += gather SUBDIR += gconf-editor SUBDIR += gcp-ops-agent SUBDIR += gdisk SUBDIR += gdmap SUBDIR += gdu SUBDIR += genimage SUBDIR += genisoimage SUBDIR += geomman SUBDIR += getdelta SUBDIR += geteltorito SUBDIR += getssl SUBDIR += gh-md-toc SUBDIR += gigolo SUBDIR += gitwatch SUBDIR += gkfreq SUBDIR += gkleds2 SUBDIR += gkrellflynn SUBDIR += gkrellm-trayicons SUBDIR += gkrellm2 SUBDIR += gkrelltop SUBDIR += glogg SUBDIR += glow SUBDIR += gnome-control-center SUBDIR += gnome-firmware SUBDIR += gnome-power-manager SUBDIR += gnome-settings-daemon SUBDIR += gnome-system-monitor SUBDIR += gnome_subr SUBDIR += go-ntfy SUBDIR += go-wtf SUBDIR += goaccess SUBDIR += goawk SUBDIR += gobi_loader SUBDIR += gol SUBDIR += gomi SUBDIR += gomplate SUBDIR += gonzo SUBDIR += google-compute-engine-oslogin SUBDIR += gotop SUBDIR += govmomi SUBDIR += gpart SUBDIR += graffer SUBDIR += graveman SUBDIR += graylog SUBDIR += grub2-bhyve SUBDIR += grub2-efi SUBDIR += grub2-pcbsd SUBDIR += gsh SUBDIR += gsmartcontrol SUBDIR += gstat-rs SUBDIR += gstopd SUBDIR += gstreamer1-plugins-cdio SUBDIR += handlr SUBDIR += hardlink SUBDIR += hare SUBDIR += hared SUBDIR += hatop SUBDIR += hcloud SUBDIR += hdrecover SUBDIR += healthd SUBDIR += heirloom SUBDIR += helm SUBDIR += helmfile SUBDIR += herbe SUBDIR += hexpeek SUBDIR += hextools SUBDIR += hexyl SUBDIR += hid-tools SUBDIR += highlnk SUBDIR += hilite SUBDIR += host-setup SUBDIR += hostctl SUBDIR += hourglass SUBDIR += hpacucli SUBDIR += hptcli SUBDIR += hs-cputype SUBDIR += hstr SUBDIR += htop SUBDIR += httm SUBDIR += httplog SUBDIR += hw-probe SUBDIR += hwstat SUBDIR += hyprpolkitagent SUBDIR += i2c-tools SUBDIR += i7z SUBDIR += iat SUBDIR += ictree SUBDIR += imgurbash2 SUBDIR += immortal SUBDIR += incron SUBDIR += infracost SUBDIR += initool SUBDIR += inotify-tools SUBDIR += installwatch SUBDIR += intel-epct SUBDIR += intel-nvmupdate-100g SUBDIR += intel-nvmupdate-10g SUBDIR += intel-nvmupdate-40g SUBDIR += intel-pcm SUBDIR += intel-undervolt SUBDIR += inxi SUBDIR += iocage SUBDIR += iocage-devel SUBDIR += iocell SUBDIR += iograph SUBDIR += iohyve SUBDIR += ioping SUBDIR += ipa SUBDIR += ipad_charge SUBDIR += ipdbtools SUBDIR += ipget SUBDIR += ipmi_exporter SUBDIR += ipmitool SUBDIR += ipsc SUBDIR += isc-cron SUBDIR += isomaster SUBDIR += istio SUBDIR += jadm SUBDIR += jail-primer SUBDIR += jail_exporter SUBDIR += jailadmin SUBDIR += jaildaemon SUBDIR += jailmanager SUBDIR += jailme SUBDIR += jailrc SUBDIR += jailutils SUBDIR += javaservicewrapper SUBDIR += jdiskreport SUBDIR += jdupes SUBDIR += jest SUBDIR += jkill SUBDIR += jmore SUBDIR += joshuto SUBDIR += jps SUBDIR += jruls SUBDIR += jstest-gtk SUBDIR += jtop SUBDIR += jtopen SUBDIR += jvmtop SUBDIR += k3b SUBDIR += k4dirstat SUBDIR += k8temp SUBDIR += k9s SUBDIR += kapp SUBDIR += kassiber SUBDIR += kbackup SUBDIR += kcron SUBDIR += kdeadmin SUBDIR += kdebugsettings SUBDIR += kdf SUBDIR += kdialog SUBDIR += keyboard-daemon SUBDIR += keyd SUBDIR += kf5-baloo SUBDIR += kf5-kwallet SUBDIR += kf6-baloo SUBDIR += kf6-kuserfeedback SUBDIR += kf6-kwallet SUBDIR += khelpcenter SUBDIR += kiconvtool SUBDIR += kldfind SUBDIR += kldpatch SUBDIR += kleene-cli SUBDIR += kleene-daemon SUBDIR += kopia SUBDIR += kops SUBDIR += kpmcore SUBDIR += krename SUBDIR += kshutdown SUBDIR += ksystemlog SUBDIR += kubectl SUBDIR += kubetail SUBDIR += kubie SUBDIR += kubo-go SUBDIR += kustomize SUBDIR += kvmclock-kmod SUBDIR += lava SUBDIR += lazyssh SUBDIR += lbl-cf SUBDIR += lbl-hf SUBDIR += lcdproc SUBDIR += ldap-account-manager SUBDIR += ldapvi SUBDIR += ledit SUBDIR += less SUBDIR += lfm SUBDIR += libcdio SUBDIR += libcdio-paranoia SUBDIR += libchk SUBDIR += libcpuid SUBDIR += libdisplay-info SUBDIR += libdnf SUBDIR += libfvde SUBDIR += libg15 SUBDIR += libg15render SUBDIR += libieee1284 SUBDIR += libptytty SUBDIR += libsunacl SUBDIR += libsysstat SUBDIR += libsysstat-qt6 SUBDIR += libtpms SUBDIR += libtree SUBDIR += libudisks SUBDIR += liburcu SUBDIR += limine SUBDIR += lineak-defaultplugin SUBDIR += lineak-xosdplugin SUBDIR += lineakd SUBDIR += linux-c7-lttng-ust SUBDIR += linux-c7-numactl-libs SUBDIR += linux-c7-userspace-rcu SUBDIR += linux-miniconda-installer SUBDIR += linux-racadm SUBDIR += linux-rkbin SUBDIR += littlejet SUBDIR += lmmon SUBDIR += lmon SUBDIR += lnav SUBDIR += loaders-update SUBDIR += localsearch SUBDIR += lockfile-progs SUBDIR += loganalyzer SUBDIR += logrotate SUBDIR += logstalgia SUBDIR += logstash7 SUBDIR += logstash8 SUBDIR += logstash91 SUBDIR += logstash92 SUBDIR += logstash93 SUBDIR += logtool SUBDIR += logwatch SUBDIR += loki SUBDIR += lookat SUBDIR += lr SUBDIR += lsblk SUBDIR += lscpu SUBDIR += lsd SUBDIR += lsof SUBDIR += lsop SUBDIR += lsyncd SUBDIR += ltrace SUBDIR += lttng-ust SUBDIR += lua-puremagic SUBDIR += luckybackup SUBDIR += lxinput SUBDIR += lxqt-admin SUBDIR += lxqt-config SUBDIR += lxqt-policykit SUBDIR += lxqt-powermanagement SUBDIR += lxqt-qt6plugin SUBDIR += lxqt-qtplugin SUBDIR += lxsplit SUBDIR += lxtask SUBDIR += lxterminal SUBDIR += mac_nonet SUBDIR += mac_rtprio SUBDIR += mackerel-agent SUBDIR += magicrescue SUBDIR += manck SUBDIR += mapchan SUBDIR += mapdir SUBDIR += massadmin SUBDIR += mate-control-center SUBDIR += mate-polkit SUBDIR += mate-power-manager SUBDIR += mate-settings-daemon SUBDIR += mate-system-monitor SUBDIR += mbgtools SUBDIR += mcelog SUBDIR += mcfly SUBDIR += mcron SUBDIR += mdcat SUBDIR += mdf2iso SUBDIR += mdfried SUBDIR += megacli SUBDIR += megarc SUBDIR += memdump SUBDIR += memfetch SUBDIR += memtest86 SUBDIR += memtester SUBDIR += metalog SUBDIR += mfid SUBDIR += michaelo-periodic SUBDIR += minikube SUBDIR += minimunin SUBDIR += minipot SUBDIR += minipro SUBDIR += minirsyslogd SUBDIR += mise SUBDIR += mixer SUBDIR += mkdesktop SUBDIR += mkfwimage SUBDIR += mkjail SUBDIR += mkntpwd SUBDIR += mkr SUBDIR += mmc-utils SUBDIR += mmve SUBDIR += modman SUBDIR += mods SUBDIR += modules SUBDIR += mog SUBDIR += mongodb_exporter SUBDIR += monit SUBDIR += monitord SUBDIR += monitorix SUBDIR += moreutils SUBDIR += most SUBDIR += mountsmb2 SUBDIR += mping SUBDIR += mprocs SUBDIR += mptd SUBDIR += msiklm SUBDIR += msktutil SUBDIR += mstflint SUBDIR += mtail SUBDIR += mtm SUBDIR += mtxorbd SUBDIR += mult SUBDIR += multitail SUBDIR += munin-common SUBDIR += munin-contrib SUBDIR += munin-master SUBDIR += munin-node SUBDIR += mxkill SUBDIR += mybashburn SUBDIR += myrescue SUBDIR += n98-magerun SUBDIR += nagios-statd SUBDIR += namefix SUBDIR += nbosd SUBDIR += ncdu SUBDIR += ncdu2 SUBDIR += ndmpd SUBDIR += neofetch SUBDIR += nerdctl SUBDIR += netevent SUBDIR += nfcutils SUBDIR += ngbuddy SUBDIR += nginx-ui SUBDIR += nitro SUBDIR += nitrogen SUBDIR += nix SUBDIR += nmdaemon SUBDIR += nmrpflash SUBDIR += node_exporter SUBDIR += nomad SUBDIR += nomad-driver-podman SUBDIR += nomad-pot-driver SUBDIR += npadmin SUBDIR += npmount SUBDIR += nq SUBDIR += nrg2iso SUBDIR += nss_ndb SUBDIR += nsysctl SUBDIR += ntfy SUBDIR += ntpstat SUBDIR += nut SUBDIR += nut-devel SUBDIR += nut_exporter SUBDIR += nvclock SUBDIR += nvimpager SUBDIR += nvme-cli SUBDIR += nvramtool SUBDIR += oak SUBDIR += obliterate SUBDIR += oc SUBDIR += ocijail SUBDIR += odo SUBDIR += ohmu SUBDIR += omnibackup SUBDIR += onefetch SUBDIR += opa SUBDIR += open SUBDIR += opencorsairlink SUBDIR += opendircolors SUBDIR += openipmi SUBDIR += opensbi SUBDIR += openseachest SUBDIR += opentofu SUBDIR += openupsd SUBDIR += openvox-agent8 SUBDIR += openvox-server8 SUBDIR += osinfo-db-tools SUBDIR += p5-App-Regather SUBDIR += p5-App-RunCron SUBDIR += p5-App-ZFSCurses SUBDIR += p5-BSD-Jail-Object SUBDIR += p5-BSD-Process SUBDIR += p5-BSD-Sysctl SUBDIR += p5-BSD-getloadavg SUBDIR += p5-BackupPC-XS SUBDIR += p5-Brackup SUBDIR += p5-Command-Runner SUBDIR += p5-Device-RAID-Poller SUBDIR += p5-Dir-Purge SUBDIR += p5-File-BackupCopy SUBDIR += p5-File-Cmp SUBDIR += p5-File-DirCompare SUBDIR += p5-File-Listing SUBDIR += p5-File-Log SUBDIR += p5-File-Next SUBDIR += p5-File-Rename SUBDIR += p5-File-Signature SUBDIR += p5-File-Stat-Bits SUBDIR += p5-File-Stat-ModeString SUBDIR += p5-File-Tee SUBDIR += p5-File-Which SUBDIR += p5-Filesys-Df SUBDIR += p5-Filesys-DfPortable SUBDIR += p5-Filesys-DiskFree SUBDIR += p5-Filesys-DiskSpace SUBDIR += p5-Filesys-DiskUsage SUBDIR += p5-Filesys-ZFS SUBDIR += p5-Filesys-ZFS-Stat SUBDIR += p5-Fuse-Simple SUBDIR += p5-Giovanni SUBDIR += p5-Iterator-File SUBDIR += p5-Lchown SUBDIR += p5-Linux-Cpuinfo SUBDIR += p5-Log-Colorize-Helper SUBDIR += p5-Log-Syslog-Constants SUBDIR += p5-Log-Syslog-Fast SUBDIR += p5-MogileFS-Client SUBDIR += p5-MogileFS-Network SUBDIR += p5-MogileFS-Server SUBDIR += p5-MogileFS-Utils SUBDIR += p5-Monitor-Simple SUBDIR += p5-OpenTelemetry SUBDIR += p5-OpenTelemetry-Exporter-OTLP SUBDIR += p5-OpenTelemetry-SDK SUBDIR += p5-POSIX-Run-Capture SUBDIR += p5-Plugtools SUBDIR += p5-Plugtools-Plugins-HomeOU SUBDIR += p5-Probe-Perl SUBDIR += p5-Proc-PidUtil SUBDIR += p5-Proc-ProcessTable-Colorizer SUBDIR += p5-Proc-ProcessTable-InfoString SUBDIR += p5-Proc-ProcessTable-Match SUBDIR += p5-Proc-ProcessTable-ncps SUBDIR += p5-Proclet SUBDIR += p5-Quota SUBDIR += p5-Rex SUBDIR += p5-RundeckAPI SUBDIR += p5-Samba-SIDhelper SUBDIR += p5-Schedule-At SUBDIR += p5-Schedule-Cron SUBDIR += p5-Schedule-Cron-Events SUBDIR += p5-Schedule-Load SUBDIR += p5-Schedule-Match SUBDIR += p5-Shell-Command SUBDIR += p5-Stat-lsMode SUBDIR += p5-Sys-CpuLoad SUBDIR += p5-Sys-Filesystem SUBDIR += p5-Sys-Gamin SUBDIR += p5-Sys-Group-GIDhelper SUBDIR += p5-Sys-HostIP SUBDIR += p5-Sys-Hostname-FQDN SUBDIR += p5-Sys-Hostname-Long SUBDIR += p5-Sys-Load SUBDIR += p5-Sys-Syslog SUBDIR += p5-Sys-User-UIDhelper SUBDIR += p5-Sysadm-Install SUBDIR += p5-SyslogScan SUBDIR += p5-Tail-Stat SUBDIR += p5-Tie-Syslog SUBDIR += p5-Ubic SUBDIR += p5-Unix-ConfigFile SUBDIR += p5-Unix-Lsof SUBDIR += p5-Unix-Mknod SUBDIR += p5-Unix-Processors SUBDIR += p5-Unix-Syslog SUBDIR += p5-User SUBDIR += p5-arclog SUBDIR += p5-reslog SUBDIR += packer SUBDIR += packmule SUBDIR += pacman SUBDIR += paicc SUBDIR += paladin SUBDIR += pam_xdg SUBDIR += panicmail SUBDIR += parafly SUBDIR += parallel SUBDIR += parkverbot SUBDIR += pass-coffin SUBDIR += pass-otp SUBDIR += pass-update SUBDIR += password-store SUBDIR += passwordsafe SUBDIR += patchelf SUBDIR += pax-utils SUBDIR += pbimaker SUBDIR += pc-networkmanager SUBDIR += pcapfix SUBDIR += pciutils SUBDIR += pcpustat SUBDIR += pdixtract SUBDIR += pdsh SUBDIR += pdumpfs SUBDIR += pear-Cache SUBDIR += pear-Cache_Lite SUBDIR += pear-File SUBDIR += pear-File_Find SUBDIR += pear-File_Fstab SUBDIR += pear-File_Gettext SUBDIR += pear-Horde_Log SUBDIR += pear-I18Nv2 SUBDIR += pear-Log SUBDIR += pear-Translation2 SUBDIR += pecl-proctitle SUBDIR += pefs-kmod SUBDIR += perp SUBDIR += personality SUBDIR += pfetch SUBDIR += pfetch-rs SUBDIR += pflogx SUBDIR += pfstat SUBDIR += pftables SUBDIR += pftop SUBDIR += php82-fileinfo SUBDIR += php82-posix SUBDIR += php83-fileinfo SUBDIR += php83-posix SUBDIR += php84-fileinfo SUBDIR += php84-posix SUBDIR += php85-fileinfo SUBDIR += php85-posix SUBDIR += phybs SUBDIR += pick SUBDIR += pidof SUBDIR += pies SUBDIR += pipeform SUBDIR += pipemeter SUBDIR += plasma-pass SUBDIR += plasma5-libksysguard SUBDIR += plasma6-discover SUBDIR += plasma6-kde-cli-tools SUBDIR += plasma6-kinfocenter SUBDIR += plasma6-kmenuedit SUBDIR += plasma6-knighttime SUBDIR += plasma6-ksystemstats SUBDIR += plasma6-libksysguard SUBDIR += plasma6-plasma-disks SUBDIR += plasma6-plasma-systemmonitor SUBDIR += plasma6-polkit-kde-agent-1 SUBDIR += plasma6-powerdevil SUBDIR += plasma6-systemsettings SUBDIR += plconfig SUBDIR += plocate SUBDIR += pmt SUBDIR += pnscan SUBDIR += podman SUBDIR += podman-compose SUBDIR += podman-suite SUBDIR += polkit SUBDIR += polkit-gnome SUBDIR += polkit-qt-1 SUBDIR += pollinfo SUBDIR += popeye SUBDIR += porch SUBDIR += pot SUBDIR += potnet SUBDIR += poweralertd SUBDIR += powerdxx SUBDIR += powerman SUBDIR += powermon SUBDIR += pp SUBDIR += prips SUBDIR += procenv SUBDIR += process-viewer SUBDIR += procmap SUBDIR += procs SUBDIR += progress SUBDIR += pslist SUBDIR += psmisc SUBDIR += pstack SUBDIR += pstacku SUBDIR += pstree SUBDIR += puppet-lint SUBDIR += puppet-mode.el SUBDIR += puppet8 SUBDIR += puppetserver8 SUBDIR += pv SUBDIR += pwd_unmkdb SUBDIR += pwgen SUBDIR += pwol SUBDIR += pwsafe SUBDIR += pxattr SUBDIR += py-ansible-compat SUBDIR += py-ansible-core SUBDIR += py-ansible-core219 SUBDIR += py-ansible-core220 SUBDIR += py-ansible-lint SUBDIR += py-ansible-runner SUBDIR += py-appjail-gui SUBDIR += py-azure-cli SUBDIR += py-azure-cli-acr SUBDIR += py-azure-cli-base SUBDIR += py-azure-cli-core SUBDIR += py-azure-cli-telemetry SUBDIR += py-bitrot SUBDIR += py-blinkstick SUBDIR += py-borgmatic SUBDIR += py-clustershell SUBDIR += py-concurrent-log-handler SUBDIR += py-container-inspector SUBDIR += py-cron-descriptor SUBDIR += py-croniter SUBDIR += py-croniter2 SUBDIR += py-dbuild SUBDIR += py-debian-inspector SUBDIR += py-dict-toolbox SUBDIR += py-diffoscope SUBDIR += py-director SUBDIR += py-dirsync SUBDIR += py-distro SUBDIR += py-dlipower SUBDIR += py-docker SUBDIR += py-drmaa SUBDIR += py-elf_diff SUBDIR += py-execnet SUBDIR += py-filelike SUBDIR += py-filelock SUBDIR += py-focker SUBDIR += py-glances SUBDIR += py-google-compute-engine SUBDIR += py-hared SUBDIR += py-hcloud SUBDIR += py-healthchecks SUBDIR += py-honcho SUBDIR += py-howdoi SUBDIR += py-hpilo SUBDIR += py-iowait SUBDIR += py-ioztat SUBDIR += py-jailconf SUBDIR += py-keep SUBDIR += py-kubernetes SUBDIR += py-leviathan SUBDIR += py-liquidctl SUBDIR += py-mitogen SUBDIR += py-mqttwarn SUBDIR += py-nagiosplugin SUBDIR += py-nvitop SUBDIR += py-overlord SUBDIR += py-packet-python SUBDIR += py-pkginfo SUBDIR += py-ploy SUBDIR += py-ploy_ezjail SUBDIR += py-plumbum SUBDIR += py-power SUBDIR += py-psutil SUBDIR += py-ptyprocess SUBDIR += py-puremagic SUBDIR += py-py-cpuinfo SUBDIR += py-pyinfra SUBDIR += py-python-bareos SUBDIR += py-python-consul SUBDIR += py-python-crontab SUBDIR += py-python-nomad SUBDIR += py-python-on-whales SUBDIR += py-pytsk SUBDIR += py-pywatchman SUBDIR += py-pyznap SUBDIR += py-qmk SUBDIR += py-queuelib SUBDIR += py-ranger SUBDIR += py-rdiff-backup SUBDIR += py-rendercv SUBDIR += py-resolve-march-native SUBDIR += py-salt SUBDIR += py-salt-tower SUBDIR += py-scandir SUBDIR += py-scarab SUBDIR += py-supervisor SUBDIR += py-tarsnapper SUBDIR += py-tldr SUBDIR += py-tmuxp SUBDIR += py-uptime SUBDIR += qchroot SUBDIR += qdirstat SUBDIR += qflipper SUBDIR += qjail SUBDIR += qjail54 SUBDIR += qlogtools SUBDIR += qmk_hid SUBDIR += qsudo SUBDIR += qt5-qtdiag SUBDIR += qt5-qtpaths SUBDIR += qt5-qtplugininfo SUBDIR += qtpass SUBDIR += qtxdg-tools SUBDIR += quickjail SUBDIR += quicksynergy SUBDIR += racktables SUBDIR += radeontool SUBDIR += radeontop SUBDIR += radmind SUBDIR += rainbarf SUBDIR += raincoat SUBDIR += rcadm SUBDIR += rclean SUBDIR += rcm SUBDIR += rdate SUBDIR += rdfind SUBDIR += rdup SUBDIR += read-edid SUBDIR += recoverdm SUBDIR += reed SUBDIR += reggae SUBDIR += rej SUBDIR += rename SUBDIR += renameutils SUBDIR += reoback SUBDIR += reproduce SUBDIR += reptyr SUBDIR += respond SUBDIR += rest-server SUBDIR += restic SUBDIR += retail SUBDIR += rex SUBDIR += rhc SUBDIR += rinse SUBDIR += rkbin SUBDIR += rldd SUBDIR += rmlint SUBDIR += rocinante SUBDIR += rocr SUBDIR += roct SUBDIR += root-tail SUBDIR += rovclock SUBDIR += rpi-firmware SUBDIR += rset SUBDIR += rshim-user-space SUBDIR += rsnapshot SUBDIR += rsyncbackup SUBDIR += rsyncrypto SUBDIR += rsyslog8 SUBDIR += rtkit-unix SUBDIR += rtty SUBDIR += rubygem-backup SUBDIR += rubygem-bolt SUBDIR += rubygem-bosh-gen SUBDIR += rubygem-bundle-audit SUBDIR += rubygem-bundler SUBDIR += rubygem-bundler-audit SUBDIR += rubygem-bundler_ext SUBDIR += rubygem-capistrano SUBDIR += rubygem-capistrano-ext SUBDIR += rubygem-capistrano-harrow SUBDIR += rubygem-chef SUBDIR += rubygem-chef-bin SUBDIR += rubygem-chef-cleanroom SUBDIR += rubygem-chef-config SUBDIR += rubygem-chef-config18 SUBDIR += rubygem-chef-licensing SUBDIR += rubygem-chef-telemetry SUBDIR += rubygem-chef-utils SUBDIR += rubygem-chef-utils18 SUBDIR += rubygem-chef-vault SUBDIR += rubygem-chef-winrm SUBDIR += rubygem-chef-winrm-elevated SUBDIR += rubygem-chef-zero SUBDIR += rubygem-choria-mcorpc-support SUBDIR += rubygem-facter SUBDIR += rubygem-fluent-mixin-plaintextformatter SUBDIR += rubygem-fluent-plugin-config-expander SUBDIR += rubygem-fluent-plugin-file-alternative SUBDIR += rubygem-fluent-plugin-tail-asis SUBDIR += rubygem-fluentd SUBDIR += rubygem-fssm SUBDIR += rubygem-god SUBDIR += rubygem-guard SUBDIR += rubygem-guard-compat SUBDIR += rubygem-guard-cucumber SUBDIR += rubygem-guard-livereload SUBDIR += rubygem-guard-minitest SUBDIR += rubygem-guard-rspec SUBDIR += rubygem-hammer_cli SUBDIR += rubygem-hammer_cli_foreman SUBDIR += rubygem-hammer_cli_foreman_bootdisk SUBDIR += rubygem-hammer_cli_foreman_salt SUBDIR += rubygem-hammer_cli_foreman_ssh SUBDIR += rubygem-hiera SUBDIR += rubygem-hiera-eyaml SUBDIR += rubygem-hiera-file SUBDIR += rubygem-hieracles SUBDIR += rubygem-httplog SUBDIR += rubygem-itamae SUBDIR += rubygem-librarian-puppet SUBDIR += rubygem-license-acceptance SUBDIR += rubygem-license_scout SUBDIR += rubygem-log4r SUBDIR += rubygem-logify SUBDIR += rubygem-mdless SUBDIR += rubygem-mogilefs-client SUBDIR += rubygem-mothra SUBDIR += rubygem-murder SUBDIR += rubygem-ohai SUBDIR += rubygem-ohai18 SUBDIR += rubygem-openbolt SUBDIR += rubygem-openfact SUBDIR += rubygem-openvoxserver-ca SUBDIR += rubygem-parallel SUBDIR += rubygem-puppet_forge SUBDIR += rubygem-puppetfile-resolver SUBDIR += rubygem-puppetserver-ca SUBDIR += rubygem-r10k SUBDIR += rubygem-redfish_client SUBDIR += rubygem-rubyipmi SUBDIR += rubygem-serverspec SUBDIR += rubygem-shellany SUBDIR += rubygem-smart_proxy_dynflow SUBDIR += rubygem-smart_proxy_remote_execution_ssh SUBDIR += rubygem-smart_proxy_salt SUBDIR += rubygem-specinfra SUBDIR += rubygem-sys-admin SUBDIR += rubygem-sys-cpu SUBDIR += rubygem-sys-filesystem SUBDIR += rubygem-sys-filesystem14 SUBDIR += rubygem-sys-host SUBDIR += rubygem-sys-proctable SUBDIR += rubygem-sys-uname SUBDIR += rubygem-sys-uptime SUBDIR += rubygem-syslog-logger SUBDIR += rubygem-teamocil SUBDIR += rubygem-tmuxinator SUBDIR += rubygem-vagrant-bhyve SUBDIR += rubygem-vagrant-mutate SUBDIR += rubygem-vagrant_cloud SUBDIR += rubygem-vagrant_cloud-gitlab SUBDIR += rubygem-vmstat SUBDIR += rubygem-win32-file SUBDIR += rubygem-win32-file-security SUBDIR += rubygem-win32-file-stat SUBDIR += rubygem-winrm SUBDIR += rubygem-winrm-elevated SUBDIR += rubygem-winrm-elevated-gitlab SUBDIR += rubygem-winrm-gitlab SUBDIR += rubygem-yell SUBDIR += rucola SUBDIR += runas SUBDIR += rundeck SUBDIR += runiq SUBDIR += runit SUBDIR += runit-faster SUBDIR += runj SUBDIR += runwhen SUBDIR += rush SUBDIR += rust-coreutils SUBDIR += rust-findutils SUBDIR += rustic SUBDIR += rw SUBDIR += rw-tui SUBDIR += s-tui SUBDIR += s6 SUBDIR += s6-rc SUBDIR += safe-rm SUBDIR += safecat SUBDIR += safecopy SUBDIR += sake SUBDIR += samdruckerclientshell SUBDIR += samefile SUBDIR += samesame SUBDIR += sanoid SUBDIR += sanoid-devel SUBDIR += sas2ircu SUBDIR += sas3ircu SUBDIR += savelogs SUBDIR += scalpel SUBDIR += scanbd SUBDIR += scanbuttond SUBDIR += scanmem SUBDIR += scct SUBDIR += schedutils SUBDIR += schilyutils SUBDIR += screen SUBDIR += screen-devel SUBDIR += screenfetch SUBDIR += screenie SUBDIR += scterc SUBDIR += sd-agent SUBDIR += sdmon SUBDIR += sdparm SUBDIR += seatd SUBDIR += seatools SUBDIR += sec SUBDIR += sensors SUBDIR += sensu-go SUBDIR += serf SUBDIR += setcdboot SUBDIR += setsid SUBDIR += sg3_utils SUBDIR += shlock SUBDIR += shmcat SUBDIR += shuf SUBDIR += siegfried SUBDIR += signon-kwallet-extension SUBDIR += signon-plugin-oauth2 SUBDIR += signon-ui SUBDIR += signond SUBDIR += simplesnap SUBDIR += sispmctl SUBDIR += skopeo SUBDIR += slack SUBDIR += sleuthkit SUBDIR += slurm-wlm SUBDIR += smart SUBDIR += smartmontools SUBDIR += smenu SUBDIR += smp_utils SUBDIR += smug SUBDIR += snap SUBDIR += snapraid SUBDIR += sndy SUBDIR += snmp_exporter SUBDIR += snmp_exporter20 SUBDIR += snooze SUBDIR += sockaddr SUBDIR += socklog SUBDIR += solaar SUBDIR += spcm SUBDIR += spindown SUBDIR += spinner SUBDIR += spiped SUBDIR += ssd_report SUBDIR += sshsudo SUBDIR += ssync SUBDIR += stackit SUBDIR += stalepid SUBDIR += stepsync SUBDIR += storcli SUBDIR += stow SUBDIR += stowES SUBDIR += stress SUBDIR += superfile SUBDIR += superiotool SUBDIR += swapd SUBDIR += swapexd SUBDIR += swapmon SUBDIR += swapusage SUBDIR += sweeper SUBDIR += swtpm SUBDIR += symlinks SUBDIR += symon SUBDIR += synergy SUBDIR += syngesture SUBDIR += sysctlbyname-improved-kmod SUBDIR += sysctlinfo-kmod SUBDIR += sysctltui SUBDIR += sysgather SUBDIR += sysinfo SUBDIR += syslinux SUBDIR += syslog-ng SUBDIR += syslogger SUBDIR += systeroid SUBDIR += sysvbanner SUBDIR += szyszka SUBDIR += tai64nfrac SUBDIR += tailspin SUBDIR += tarbsd-builder SUBDIR += tarsnap SUBDIR += tarsnap-gui SUBDIR += tarsnap-periodic SUBDIR += tartarus SUBDIR += tbku SUBDIR += tclsyslog SUBDIR += tcplist SUBDIR += tdir SUBDIR += tealdeer SUBDIR += tempo SUBDIR += tenshi SUBDIR += tere SUBDIR += terraform SUBDIR += terraform-docs SUBDIR += terraform-provider-gridscale SUBDIR += terraform-provider-vultr SUBDIR += terraform-switcher SUBDIR += terragrunt SUBDIR += testdisk SUBDIR += tflint SUBDIR += thefish SUBDIR += tiempo SUBDIR += timelimit SUBDIR += timemon SUBDIR += tiramisu SUBDIR += titlefix SUBDIR += tkdvd SUBDIR += tldr SUBDIR += tlsdate SUBDIR += tm SUBDIR += tmate SUBDIR += tmate-ssh-server SUBDIR += tmpreaper SUBDIR += tmpwatch SUBDIR += tmux SUBDIR += tmux-mem-cpu-load SUBDIR += tmux-xpanes SUBDIR += tmux23 SUBDIR += topgrade SUBDIR += topless SUBDIR += toshctl SUBDIR += touchegg SUBDIR += toybox SUBDIR += tree SUBDIR += treemd SUBDIR += treetop SUBDIR += triton SUBDIR += trueos-libqt5 SUBDIR += try-rs SUBDIR += ts SUBDIR += tty-clock SUBDIR += ttyd SUBDIR += ttyload SUBDIR += tuckr SUBDIR += tuptime SUBDIR += turbostat SUBDIR += tvterm SUBDIR += tw_cli SUBDIR += twa-kmod SUBDIR += twmn SUBDIR += tzdialog SUBDIR += u-boot-a13-olinuxino SUBDIR += u-boot-a64-olinuxino SUBDIR += u-boot-bananapi SUBDIR += u-boot-bananapi-r2-pro SUBDIR += u-boot-bananapim2 SUBDIR += u-boot-beaglebone SUBDIR += u-boot-bhyve-arm64 SUBDIR += u-boot-bhyve-riscv SUBDIR += u-boot-chip SUBDIR += u-boot-clearfog SUBDIR += u-boot-cubieboard SUBDIR += u-boot-cubieboard2 SUBDIR += u-boot-cubox-hummingboard SUBDIR += u-boot-firefly-rk3399 SUBDIR += u-boot-imx-serial-loader SUBDIR += u-boot-master SUBDIR += u-boot-nanopi-a64 SUBDIR += u-boot-nanopi-m1plus SUBDIR += u-boot-nanopi-neo SUBDIR += u-boot-nanopi-neo-air SUBDIR += u-boot-nanopi-neo2 SUBDIR += u-boot-nanopi-r2s SUBDIR += u-boot-nanopi-r4s SUBDIR += u-boot-nanopi-r5s SUBDIR += u-boot-nanopi-r6s SUBDIR += u-boot-olimex-a20-som-evb SUBDIR += u-boot-olinuxino-lime SUBDIR += u-boot-olinuxino-lime2 SUBDIR += u-boot-olinuxino-lime2-emmc SUBDIR += u-boot-orangepi-one SUBDIR += u-boot-orangepi-pc SUBDIR += u-boot-orangepi-pc-plus SUBDIR += u-boot-orangepi-pc2 SUBDIR += u-boot-orangepi-plus-2e SUBDIR += u-boot-orangepi-r1 SUBDIR += u-boot-orangepi-zero SUBDIR += u-boot-orangepi-zero-plus SUBDIR += u-boot-pcduino3 SUBDIR += u-boot-pine-h64 SUBDIR += u-boot-pine64 SUBDIR += u-boot-pine64-lts SUBDIR += u-boot-pinebook SUBDIR += u-boot-pinebookpro SUBDIR += u-boot-qemu-arm SUBDIR += u-boot-qemu-arm64 SUBDIR += u-boot-qemu-riscv64 SUBDIR += u-boot-quartz64-a SUBDIR += u-boot-quartz64-b SUBDIR += u-boot-radxa-zero3 SUBDIR += u-boot-riotboard SUBDIR += u-boot-rock-pi-4 SUBDIR += u-boot-rock64 SUBDIR += u-boot-rockpro64 SUBDIR += u-boot-rpi SUBDIR += u-boot-rpi-0-w SUBDIR += u-boot-rpi-arm64 SUBDIR += u-boot-rpi2 SUBDIR += u-boot-rpi3 SUBDIR += u-boot-rpi3-32 SUBDIR += u-boot-rpi4 SUBDIR += u-boot-sifive-fu540 SUBDIR += u-boot-sifive-fu740 SUBDIR += u-boot-sinovoip-bpi-m3 SUBDIR += u-boot-sopine SUBDIR += u-boot-sopine-spi SUBDIR += u-boot-starfive-visionfive2 SUBDIR += u-boot-tools SUBDIR += u-boot-wandboard SUBDIR += ua SUBDIR += ucored SUBDIR += ucspi-ipc SUBDIR += ucspi-proxy SUBDIR += ucspi-ssl SUBDIR += ucspi-tcp SUBDIR += ucspi-unix SUBDIR += udfclient SUBDIR += ufetch SUBDIR += uhidd SUBDIR += uhubctl SUBDIR += uif2iso SUBDIR += unetbootin SUBDIR += uniutils SUBDIR += unquote SUBDIR += unstow SUBDIR += upower SUBDIR += upsdaemon SUBDIR += uptimed SUBDIR += usacloud SUBDIR += usacloud-core SUBDIR += usb_modeswitch SUBDIR += usbhid-dump SUBDIR += usbtop SUBDIR += usbutils SUBDIR += uschedule SUBDIR += userinfo SUBDIR += userlist SUBDIR += usermatic SUBDIR += usermin SUBDIR += userneu SUBDIR += userneu-devel SUBDIR += usrinfo SUBDIR += utcount SUBDIR += util-linux SUBDIR += vagrant SUBDIR += vagrant-gitlab SUBDIR += vbetool SUBDIR += vchanger SUBDIR += vcp SUBDIR += viddy SUBDIR += videogen SUBDIR += vii SUBDIR += vils SUBDIR += vimpager SUBDIR += virt-firmware SUBDIR += virt-what SUBDIR += virtualmin SUBDIR += vivid SUBDIR += vm-bhyve SUBDIR += vm-bhyve-devel SUBDIR += vm-bhyve-zcomp SUBDIR += vmdktool SUBDIR += vmstated SUBDIR += vmtouch SUBDIR += vobcopy SUBDIR += volman SUBDIR += vpnc-scripts SUBDIR += vtm SUBDIR += vttest SUBDIR += wait_on SUBDIR += waitforssh SUBDIR += walk SUBDIR += watchcat SUBDIR += watchfolder SUBDIR += watchman SUBDIR += watchmen SUBDIR += waynergy SUBDIR += webmin SUBDIR += weedit SUBDIR += wemux SUBDIR += whatpix SUBDIR += whowatch SUBDIR += wiper SUBDIR += witr SUBDIR += wmapmload SUBDIR += wmbluecpu SUBDIR += wmbsdbatt SUBDIR += wmcpuload SUBDIR += wmcube SUBDIR += wmdiskmon SUBDIR += wmflame SUBDIR += wmmemfree SUBDIR += wmmemload SUBDIR += wmscript SUBDIR += wmtop SUBDIR += wmupmon SUBDIR += work-tuimer SUBDIR += worldtools SUBDIR += wuzzah SUBDIR += xbatt SUBDIR += xbattbar SUBDIR += xcdroast SUBDIR += xclipsync SUBDIR += xcp SUBDIR += xcpustate SUBDIR += xdu SUBDIR += xe SUBDIR += xe-guest-utilities SUBDIR += xen-guest-tools SUBDIR += xen-tools SUBDIR += xfburn SUBDIR += xfce4-battery-plugin SUBDIR += xfce4-bsdcpufreq-plugin SUBDIR += xfce4-cpugraph-plugin SUBDIR += xfce4-diskperf-plugin SUBDIR += xfce4-fsguard-plugin SUBDIR += xfce4-genmon-plugin SUBDIR += xfce4-mount-plugin SUBDIR += xfce4-netload-plugin SUBDIR += xfce4-places-plugin SUBDIR += xfce4-power-manager SUBDIR += xfce4-settings SUBDIR += xfce4-systemload-plugin SUBDIR += xfce4-wavelan-plugin SUBDIR += xin SUBDIR += xjobs SUBDIR += xmbmon SUBDIR += xnvme SUBDIR += xorriso SUBDIR += xosview SUBDIR += xpipe SUBDIR += xstow SUBDIR += xsysstats SUBDIR += xxd SUBDIR += yadf SUBDIR += yadm SUBDIR += yank SUBDIR += yazi SUBDIR += z SUBDIR += zbackup SUBDIR += zeitgeist SUBDIR += zellij SUBDIR += zelta SUBDIR += zeroer SUBDIR += zetaback SUBDIR += zetaback-devel SUBDIR += zidrav SUBDIR += zli SUBDIR += znapzend SUBDIR += zogftw SUBDIR += zot SUBDIR += zoxide SUBDIR += zpool-iostat-viz SUBDIR += zrep SUBDIR += zsd SUBDIR += zsm .include diff --git a/sysutils/beats8/Makefile b/sysutils/beats8/Makefile index 169bfff398b2..5adb4b4a34b3 100644 --- a/sysutils/beats8/Makefile +++ b/sysutils/beats8/Makefile @@ -1,133 +1,133 @@ PORTNAME= beats DISTVERSIONPREFIX= v DISTVERSION= 8.14.3 -PORTREVISION= 16 +PORTREVISION= 17 CATEGORIES= sysutils MASTER_SITES= https://raw.githubusercontent.com/${GH_ACCOUNT}/${GH_PROJECT}/${DISTVERSIONFULL}/:gomod PKGNAMESUFFIX?= 8 DISTFILES= go.mod:gomod MAINTAINER= elastic@FreeBSD.org COMMENT= Send logs, network, metrics and heartbeat to elasticsearch or logstash WWW= https://www.elastic.co/products/beats/ LICENSE= APACHE20 USES= go:modules USE_GITHUB= yes GH_ACCOUNT= elastic USE_RC_SUBR= ${GO_TARGET:C,\./,,g} GO_MODULE= github.com/elastic/beats/v8 CGO_CFLAGS= -I. CGO_LDFLAGS= -L. MAKE_ENV+= GOBUILD_FLAGS="-mod=vendor" -CONFLICTS= beats6 beats7 +CONFLICTS= beats6 beats7 beats9 PORTSCOUT= limit:^8 SUB_FILES= pkg-message OPTIONS_DEFINE= AUDITBEAT FILEBEAT HEARTBEAT METRICBEAT PACKETBEAT OPTIONS_DEFAULT= FILEBEAT HEARTBEAT METRICBEAT OPTIONS_SUB= yes AUDITBEAT_DESC= Auditbeat FILEBEAT_DESC= Filebeat HEARTBEAT_DESC= Heartbeat METRICBEAT_DESC= Metricbeat PACKETBEAT_DESC= Packetbeat AUDITBEAT_MASTER_SITES= https://artifacts.elastic.co/downloads/beats/auditbeat/:auditbeat AUDITBEAT_DISTFILES= auditbeat-${DISTVERSION}-darwin-x86_64.tar.gz:auditbeat AUDITBEAT_VARS= GO_TARGET+=./auditbeat FILEBEAT_MASTER_SITES= https://artifacts.elastic.co/downloads/beats/filebeat/:filebeat FILEBEAT_DISTFILES= filebeat-${DISTVERSION}-darwin-x86_64.tar.gz:filebeat FILEBEAT_VARS= GO_TARGET+=./filebeat HEARTBEAT_MASTER_SITES= https://artifacts.elastic.co/downloads/beats/heartbeat/:heartbeat HEARTBEAT_DISTFILES= heartbeat-${DISTVERSION}-darwin-x86_64.tar.gz:heartbeat HEARTBEAT_VARS= GO_TARGET+=./heartbeat METRICBEAT_MASTER_SITES= https://artifacts.elastic.co/downloads/beats/metricbeat/:metricbeat METRICBEAT_DISTFILES= metricbeat-${DISTVERSION}-darwin-x86_64.tar.gz:metricbeat METRICBEAT_VARS= GO_TARGET+=./metricbeat PACKETBEAT_MASTER_SITES= https://artifacts.elastic.co/downloads/beats/packetbeat/:packetbeat PACKETBEAT_DISTFILES= packetbeat-${DISTVERSION}-darwin-x86_64.tar.gz:packetbeat PACKETBEAT_VARS= CGO_CFLAGS+=-I/usr/include \ CGO_LDFLAGS+=-L/usr/lib \ GO_TARGET+=./packetbeat .include post-patch: ${REINPLACE_CMD} -e "s|%%BEATSVERSION%%|v${PORTVERSION}|g" ${WRKSRC}/dev-tools/mage/settings.go .for BEATMOD in ${GO_TARGET:C,\./,,g} ${REINPLACE_CMD} -e "s|%%DATADIR%%|${DATADIR}|g" ${WRKSRC}/${BEATMOD}/*.yml .endfor do-install: ${MKDIR} ${STAGEDIR}${ETCDIR} .for BEATMOD in ${GO_TARGET:C,^\./,,g} ${MKDIR} ${STAGEDIR}/var/db/beats/${BEATMOD} && \ ${INSTALL_PROGRAM} ${WRKDIR}/bin/${BEATMOD} \ ${STAGEDIR}${PREFIX}/sbin && \ ${INSTALL_DATA} ${WRKSRC}/${BEATMOD}/${BEATMOD}.yml \ ${STAGEDIR}${ETCDIR}/${BEATMOD}.yml.sample && \ ${INSTALL_DATA} ${WRKSRC}/${BEATMOD}/${BEATMOD}.reference.yml \ ${STAGEDIR}${ETCDIR}/${BEATMOD}.yml.reference (MODULE_SRC=${WRKDIR}/${BEATMOD}-${DISTVERSION}-darwin-x86_64/module; \ if [ -d $${MODULE_SRC} ]; then \ MODULE_DEST=${STAGEDIR}${DATADIR}/${BEATMOD}/module && \ ${MKDIR} $${MODULE_DEST} && \ cd $${MODULE_SRC} && ${COPYTREE_SHARE} . $${MODULE_DEST} && \ cd $${MODULE_DEST} && \ ${FIND} . -type d -empty | ${SORT} | \ ${SED} -e 's,^\.,@dir ${DATADIR_REL}/${BEATMOD}/module,' >> ${TMPPLIST} && \ ${FIND} . -not -type d | ${SORT} | \ ${SED} -e 's,^\.,${DATADIR_REL}/${BEATMOD}/module,' >> ${TMPPLIST}; \ fi) && \ (MODULESD_SRC=${WRKDIR}/${BEATMOD}-${DISTVERSION}-darwin-x86_64/modules.d; \ if [ -d $${MODULESD_SRC} ]; then \ MODULESD_DEST=${STAGEDIR}${EXAMPLESDIR}/${BEATMOD}.modules.d && \ ${MKDIR} $${MODULESD_DEST} && \ cd $${MODULESD_SRC} && ${COPYTREE_SHARE} . $${MODULESD_DEST} && \ cd $${MODULESD_DEST} && \ ${FIND} . -type d -empty | ${SORT} | \ ${SED} -e 's,^\.,@dir ${EXAMPLESDIR_REL}/${BEATMOD}.modules.d,' >> ${TMPPLIST} && \ ${FIND} . -not -type d | ${SORT} | \ ${SED} -e 's,^\.,${EXAMPLESDIR_REL}/${BEATMOD}.modules.d,' >> ${TMPPLIST}; \ ${MKDIR} ${STAGEDIR}${ETCDIR}/${BEATMOD}.modules.d && \ ${ECHO_CMD} "The modules.d files are now in ${EXAMPLESDIR}/${BEATMOD}.modules.d" > \ ${STAGEDIR}${ETCDIR}/${BEATMOD}.modules.d/README; \ ${ECHO_CMD} ${ETCDIR_REL}/${BEATMOD}.modules.d/README >> ${TMPPLIST}; \ fi) && \ (MONITORSD_SRC=${WRKDIR}/${BEATMOD}-${DISTVERSION}-darwin-x86_64/monitors.d; \ if [ -d $${MONITORSD_SRC} ]; then \ MONITORSD_DEST=${STAGEDIR}${EXAMPLESDIR}/${BEATMOD}.monitors.d && \ ${MKDIR} $${MONITORSD_DEST} && \ cd $${MONITORSD_SRC} && ${COPYTREE_SHARE} . $${MONITORSD_DEST} && \ cd $${MONITORSD_DEST} && \ ${FIND} . -type d -empty | ${SORT} | \ ${SED} -e 's,^\.,@dir ${EXAMPLESDIR_REL}/${BEATMOD}.monitors.d,' >> ${TMPPLIST} && \ ${FIND} . -not -type d | ${SORT} | \ ${SED} -e 's,^\.,${EXAMPLESDIR_REL}/${BEATMOD}.monitors.d,' >> ${TMPPLIST}; \ ${MKDIR} ${STAGEDIR}${ETCDIR}/${BEATMOD}.monitors.d && \ ${ECHO_CMD} "The monitors.d files are now in ${EXAMPLESDIR}/${BEATMOD}.monitors.d" > \ ${STAGEDIR}${ETCDIR}/${BEATMOD}.monitors.d/README; \ ${ECHO_CMD} ${ETCDIR_REL}/${BEATMOD}.monitors.d/README >> ${TMPPLIST}; \ fi) && \ (KIBANA_SRC=${WRKDIR}/${BEATMOD}-${DISTVERSION}-darwin-x86_64/kibana; \ if [ -d $${KIBANA_SRC} ]; then \ KIBANA_PATH=${STAGEDIR}${DATADIR}/${BEATMOD}/kibana; \ ${MKDIR} $${KIBANA_PATH} && \ cd $${KIBANA_SRC} && ${COPYTREE_SHARE} . $${KIBANA_PATH}; \ cd $${KIBANA_PATH} && \ ${FIND} . -type d -empty | ${SORT} | \ ${SED} -e 's,^\.,@dir ${DATADIR_REL}/${BEATMOD}/kibana,' >> ${TMPPLIST}; \ ${FIND} . -not -type d | ${SORT} | \ ${SED} -e 's,^\.,${DATADIR_REL}/${BEATMOD}/kibana,' >> ${TMPPLIST}; \ fi) .endfor .include diff --git a/sysutils/beats8/Makefile b/sysutils/beats9/Makefile similarity index 93% copy from sysutils/beats8/Makefile copy to sysutils/beats9/Makefile index 169bfff398b2..642e0d19e048 100644 --- a/sysutils/beats8/Makefile +++ b/sysutils/beats9/Makefile @@ -1,133 +1,133 @@ PORTNAME= beats DISTVERSIONPREFIX= v -DISTVERSION= 8.14.3 -PORTREVISION= 16 +DISTVERSION= 9.3.1 CATEGORIES= sysutils MASTER_SITES= https://raw.githubusercontent.com/${GH_ACCOUNT}/${GH_PROJECT}/${DISTVERSIONFULL}/:gomod -PKGNAMESUFFIX?= 8 +PKGNAMESUFFIX?= 9 DISTFILES= go.mod:gomod MAINTAINER= elastic@FreeBSD.org -COMMENT= Send logs, network, metrics and heartbeat to elasticsearch or logstash +COMMENT= Send logs, network, metrics and heartbeat to Elasticsearch or Logstash WWW= https://www.elastic.co/products/beats/ LICENSE= APACHE20 USES= go:modules USE_GITHUB= yes GH_ACCOUNT= elastic USE_RC_SUBR= ${GO_TARGET:C,\./,,g} -GO_MODULE= github.com/elastic/beats/v8 +GO_MODULE= github.com/elastic/beats/v9 CGO_CFLAGS= -I. CGO_LDFLAGS= -L. MAKE_ENV+= GOBUILD_FLAGS="-mod=vendor" -CONFLICTS= beats6 beats7 +CONFLICTS= beats6 beats7 beats8 -PORTSCOUT= limit:^8 +PORTSCOUT= limit:^9 SUB_FILES= pkg-message OPTIONS_DEFINE= AUDITBEAT FILEBEAT HEARTBEAT METRICBEAT PACKETBEAT OPTIONS_DEFAULT= FILEBEAT HEARTBEAT METRICBEAT OPTIONS_SUB= yes AUDITBEAT_DESC= Auditbeat FILEBEAT_DESC= Filebeat HEARTBEAT_DESC= Heartbeat METRICBEAT_DESC= Metricbeat PACKETBEAT_DESC= Packetbeat AUDITBEAT_MASTER_SITES= https://artifacts.elastic.co/downloads/beats/auditbeat/:auditbeat AUDITBEAT_DISTFILES= auditbeat-${DISTVERSION}-darwin-x86_64.tar.gz:auditbeat AUDITBEAT_VARS= GO_TARGET+=./auditbeat FILEBEAT_MASTER_SITES= https://artifacts.elastic.co/downloads/beats/filebeat/:filebeat FILEBEAT_DISTFILES= filebeat-${DISTVERSION}-darwin-x86_64.tar.gz:filebeat FILEBEAT_VARS= GO_TARGET+=./filebeat HEARTBEAT_MASTER_SITES= https://artifacts.elastic.co/downloads/beats/heartbeat/:heartbeat HEARTBEAT_DISTFILES= heartbeat-${DISTVERSION}-darwin-x86_64.tar.gz:heartbeat HEARTBEAT_VARS= GO_TARGET+=./heartbeat METRICBEAT_MASTER_SITES= https://artifacts.elastic.co/downloads/beats/metricbeat/:metricbeat METRICBEAT_DISTFILES= metricbeat-${DISTVERSION}-darwin-x86_64.tar.gz:metricbeat METRICBEAT_VARS= GO_TARGET+=./metricbeat PACKETBEAT_MASTER_SITES= https://artifacts.elastic.co/downloads/beats/packetbeat/:packetbeat PACKETBEAT_DISTFILES= packetbeat-${DISTVERSION}-darwin-x86_64.tar.gz:packetbeat PACKETBEAT_VARS= CGO_CFLAGS+=-I/usr/include \ CGO_LDFLAGS+=-L/usr/lib \ GO_TARGET+=./packetbeat .include post-patch: ${REINPLACE_CMD} -e "s|%%BEATSVERSION%%|v${PORTVERSION}|g" ${WRKSRC}/dev-tools/mage/settings.go .for BEATMOD in ${GO_TARGET:C,\./,,g} - ${REINPLACE_CMD} -e "s|%%DATADIR%%|${DATADIR}|g" ${WRKSRC}/${BEATMOD}/*.yml + ${REINPLACE_CMD} -e "s|%%DATADIR%%|${DATADIR}|g" \ + ${WRKSRC}/${BEATMOD}/${BEATMOD}.yml ${WRKSRC}/${BEATMOD}/${BEATMOD}.reference.yml .endfor do-install: ${MKDIR} ${STAGEDIR}${ETCDIR} .for BEATMOD in ${GO_TARGET:C,^\./,,g} ${MKDIR} ${STAGEDIR}/var/db/beats/${BEATMOD} && \ ${INSTALL_PROGRAM} ${WRKDIR}/bin/${BEATMOD} \ ${STAGEDIR}${PREFIX}/sbin && \ ${INSTALL_DATA} ${WRKSRC}/${BEATMOD}/${BEATMOD}.yml \ ${STAGEDIR}${ETCDIR}/${BEATMOD}.yml.sample && \ ${INSTALL_DATA} ${WRKSRC}/${BEATMOD}/${BEATMOD}.reference.yml \ ${STAGEDIR}${ETCDIR}/${BEATMOD}.yml.reference (MODULE_SRC=${WRKDIR}/${BEATMOD}-${DISTVERSION}-darwin-x86_64/module; \ if [ -d $${MODULE_SRC} ]; then \ MODULE_DEST=${STAGEDIR}${DATADIR}/${BEATMOD}/module && \ ${MKDIR} $${MODULE_DEST} && \ cd $${MODULE_SRC} && ${COPYTREE_SHARE} . $${MODULE_DEST} && \ cd $${MODULE_DEST} && \ ${FIND} . -type d -empty | ${SORT} | \ ${SED} -e 's,^\.,@dir ${DATADIR_REL}/${BEATMOD}/module,' >> ${TMPPLIST} && \ ${FIND} . -not -type d | ${SORT} | \ ${SED} -e 's,^\.,${DATADIR_REL}/${BEATMOD}/module,' >> ${TMPPLIST}; \ fi) && \ (MODULESD_SRC=${WRKDIR}/${BEATMOD}-${DISTVERSION}-darwin-x86_64/modules.d; \ if [ -d $${MODULESD_SRC} ]; then \ MODULESD_DEST=${STAGEDIR}${EXAMPLESDIR}/${BEATMOD}.modules.d && \ ${MKDIR} $${MODULESD_DEST} && \ cd $${MODULESD_SRC} && ${COPYTREE_SHARE} . $${MODULESD_DEST} && \ cd $${MODULESD_DEST} && \ ${FIND} . -type d -empty | ${SORT} | \ ${SED} -e 's,^\.,@dir ${EXAMPLESDIR_REL}/${BEATMOD}.modules.d,' >> ${TMPPLIST} && \ ${FIND} . -not -type d | ${SORT} | \ ${SED} -e 's,^\.,${EXAMPLESDIR_REL}/${BEATMOD}.modules.d,' >> ${TMPPLIST}; \ ${MKDIR} ${STAGEDIR}${ETCDIR}/${BEATMOD}.modules.d && \ ${ECHO_CMD} "The modules.d files are now in ${EXAMPLESDIR}/${BEATMOD}.modules.d" > \ ${STAGEDIR}${ETCDIR}/${BEATMOD}.modules.d/README; \ ${ECHO_CMD} ${ETCDIR_REL}/${BEATMOD}.modules.d/README >> ${TMPPLIST}; \ fi) && \ (MONITORSD_SRC=${WRKDIR}/${BEATMOD}-${DISTVERSION}-darwin-x86_64/monitors.d; \ if [ -d $${MONITORSD_SRC} ]; then \ MONITORSD_DEST=${STAGEDIR}${EXAMPLESDIR}/${BEATMOD}.monitors.d && \ ${MKDIR} $${MONITORSD_DEST} && \ cd $${MONITORSD_SRC} && ${COPYTREE_SHARE} . $${MONITORSD_DEST} && \ cd $${MONITORSD_DEST} && \ ${FIND} . -type d -empty | ${SORT} | \ ${SED} -e 's,^\.,@dir ${EXAMPLESDIR_REL}/${BEATMOD}.monitors.d,' >> ${TMPPLIST} && \ ${FIND} . -not -type d | ${SORT} | \ ${SED} -e 's,^\.,${EXAMPLESDIR_REL}/${BEATMOD}.monitors.d,' >> ${TMPPLIST}; \ ${MKDIR} ${STAGEDIR}${ETCDIR}/${BEATMOD}.monitors.d && \ ${ECHO_CMD} "The monitors.d files are now in ${EXAMPLESDIR}/${BEATMOD}.monitors.d" > \ ${STAGEDIR}${ETCDIR}/${BEATMOD}.monitors.d/README; \ ${ECHO_CMD} ${ETCDIR_REL}/${BEATMOD}.monitors.d/README >> ${TMPPLIST}; \ fi) && \ (KIBANA_SRC=${WRKDIR}/${BEATMOD}-${DISTVERSION}-darwin-x86_64/kibana; \ if [ -d $${KIBANA_SRC} ]; then \ KIBANA_PATH=${STAGEDIR}${DATADIR}/${BEATMOD}/kibana; \ ${MKDIR} $${KIBANA_PATH} && \ cd $${KIBANA_SRC} && ${COPYTREE_SHARE} . $${KIBANA_PATH}; \ cd $${KIBANA_PATH} && \ ${FIND} . -type d -empty | ${SORT} | \ ${SED} -e 's,^\.,@dir ${DATADIR_REL}/${BEATMOD}/kibana,' >> ${TMPPLIST}; \ ${FIND} . -not -type d | ${SORT} | \ ${SED} -e 's,^\.,${DATADIR_REL}/${BEATMOD}/kibana,' >> ${TMPPLIST}; \ fi) .endfor .include diff --git a/sysutils/beats9/distinfo b/sysutils/beats9/distinfo new file mode 100644 index 000000000000..f7a3906545ed --- /dev/null +++ b/sysutils/beats9/distinfo @@ -0,0 +1,11 @@ +TIMESTAMP = 1773752247 +SHA256 (go/sysutils_beats9/elastic-beats-v9.3.1_GH0/go.mod) = 12a772a95a1c7e8a86e5cef7bac4ffcaf86ba08a7f5c741fa748b63f728d12cb +SIZE (go/sysutils_beats9/elastic-beats-v9.3.1_GH0/go.mod) = 28847 +SHA256 (go/sysutils_beats9/elastic-beats-v9.3.1_GH0/filebeat-9.3.1-darwin-x86_64.tar.gz) = 9d1f0af9ab8ce78525496506adea24688744f8ad91eee063dc48e7763e05bcac +SIZE (go/sysutils_beats9/elastic-beats-v9.3.1_GH0/filebeat-9.3.1-darwin-x86_64.tar.gz) = 56132282 +SHA256 (go/sysutils_beats9/elastic-beats-v9.3.1_GH0/heartbeat-9.3.1-darwin-x86_64.tar.gz) = 60e5169dc1d5454faf3d5ca3b72b401255acb5a07f237ec18ed8b1b189ead94d +SIZE (go/sysutils_beats9/elastic-beats-v9.3.1_GH0/heartbeat-9.3.1-darwin-x86_64.tar.gz) = 35745443 +SHA256 (go/sysutils_beats9/elastic-beats-v9.3.1_GH0/metricbeat-9.3.1-darwin-x86_64.tar.gz) = e8885267e1c9229e87dd4a0f81afe06bd99e2fbef1131a8914a243457d8e1172 +SIZE (go/sysutils_beats9/elastic-beats-v9.3.1_GH0/metricbeat-9.3.1-darwin-x86_64.tar.gz) = 60065375 +SHA256 (go/sysutils_beats9/elastic-beats-v9.3.1_GH0/elastic-beats-v9.3.1_GH0.tar.gz) = 77851327be677219aa116531e8d37c6359d59aff9ab6feff9e5f3d570a54a221 +SIZE (go/sysutils_beats9/elastic-beats-v9.3.1_GH0/elastic-beats-v9.3.1_GH0.tar.gz) = 104227700 diff --git a/sysutils/beats9/files/auditbeat.in b/sysutils/beats9/files/auditbeat.in new file mode 100644 index 000000000000..67909ad68d67 --- /dev/null +++ b/sysutils/beats9/files/auditbeat.in @@ -0,0 +1,51 @@ +#!/bin/sh + +# PROVIDE: auditbeat +# REQUIRE: DAEMON +# BEFORE: LOGIN +# KEYWORD: shutdown + +# Add the following lines to /etc/rc.conf to enable auditbeat: +# +# auditbeat_enable (bool): Set to YES to enable auditbeat +# Default: NO +# auditbeat_flags (str): Extra flags passed to auditbeat +# auditbeat_config (str): auditbeat configuration directory +# Default: ${PREFIX}/etc/beats +# auditbeat_conffile (str): auditbeat configuration file +# relative to ${auditbeat_conf} +# Default: auditbeat.yml + +. /etc/rc.subr + +name="auditbeat" +rcvar=${name}_enable +load_rc_config $name + +: ${auditbeat_enable:="NO"} +: ${auditbeat_config:="%%ETCDIR%%"} +: ${auditbeat_conffile:="auditbeat.yml"} +: ${auditbeat_home:="%%DATADIR%%/auditbeat"} +: ${auditbeat_logs:="/var/log/beats"} +: ${auditbeat_data:="/var/db/beats/auditbeat"} + +# daemon +start_precmd=auditbeat_prestart +command=/usr/sbin/daemon +pidfile="/var/run/${name}" +command_args="-frP ${pidfile} %%PREFIX%%/sbin/${name} ${auditbeat_flags} --path.config ${auditbeat_config} --path.home ${auditbeat_home} --path.data ${auditbeat_data} --path.logs ${auditbeat_logs} -c ${auditbeat_conffile}" + +auditbeat_prestart() { +# Have to empty rc_flags so they don't get passed to daemon(8) + rc_flags="" +} + +# auditbeat will refuse to quit if linprocfs is mounted, and sadly requires -9 +[ -f /compat/linux/proc/cpuinfo ] && stop_cmd=auditbeat_stop + +auditbeat_stop() { + pkill -9 -F ${pidfile} > /dev/null 2>&1 + pkill -9 -F ${pidfile}.child > /dev/null 2>&1 +} + +run_rc_command "$1" diff --git a/sysutils/beats9/files/filebeat.in b/sysutils/beats9/files/filebeat.in new file mode 100644 index 000000000000..8ae08af5b398 --- /dev/null +++ b/sysutils/beats9/files/filebeat.in @@ -0,0 +1,43 @@ +#!/bin/sh + +# PROVIDE: filebeat +# REQUIRE: DAEMON +# BEFORE: LOGIN +# KEYWORD: shutdown + +# Add the following lines to /etc/rc.conf to enable filebeat: +# +# filebeat_enable (bool): Set to YES to enable filebeat +# Default: NO +# filebeat_flags (str): Extra flags passed to filebeat +# filebeat_config (str): filebeat configuration directory +# Default: ${PREFIX}/etc/beats +# filebeat_conffile (str): filebeat configuration file +# relative to ${filebeat_conf} +# Default: filebeat.yml + +. /etc/rc.subr + +name="filebeat" +rcvar=${name}_enable +load_rc_config $name + +: ${filebeat_enable:="NO"} +: ${filebeat_config:="%%ETCDIR%%"} +: ${filebeat_conffile:="filebeat.yml"} +: ${filebeat_home:="%%DATADIR%%/filebeat"} +: ${filebeat_logs:="/var/log/beats"} +: ${filebeat_data:="/var/db/beats/filebeat"} + +# daemon +start_precmd=filebeat_prestart +command=/usr/sbin/daemon +pidfile="/var/run/${name}" +command_args="-frP ${pidfile} %%PREFIX%%/sbin/${name} ${filebeat_flags} --path.config ${filebeat_config} --path.home ${filebeat_home} --path.data ${filebeat_data} --path.logs ${filebeat_logs} -c ${filebeat_conffile}" + +filebeat_prestart() { +# Have to empty rc_flags so they don't get passed to daemon(8) + rc_flags="" +} + +run_rc_command "$1" diff --git a/sysutils/beats9/files/heartbeat.in b/sysutils/beats9/files/heartbeat.in new file mode 100644 index 000000000000..d99374ab011c --- /dev/null +++ b/sysutils/beats9/files/heartbeat.in @@ -0,0 +1,44 @@ +#!/bin/sh + +# PROVIDE: heartbeat +# REQUIRE: DAEMON +# BEFORE: LOGIN +# KEYWORD: shutdown + +# Add the following lines to /etc/rc.conf to enable heartbeat: +# +# heartbeat_enable (bool): Set to YES to enable heartbeat +# Default: NO +# heartbeat_flags (str): Extra flags passed to heartbeat +# heartbeat_config (str): heartbeat configuration directory +# Default: ${PREFIX}/etc/beats +# heartbeat_conffile (str): heartbeat configuration file +# relative to ${heartbeat_conf} +# Default: heartbeat.yml + +. /etc/rc.subr + +name="heartbeat" +rcvar=${name}_enable +load_rc_config $name + +: ${heartbeat_enable:="NO"} +: ${heartbeat_config:="%%ETCDIR%%"} +: ${heartbeat_conffile:="heartbeat.yml"} +: ${heartbeat_home:="%%DATADIR%%/heartbeat"} +: ${heartbeat_logs:="/var/log/beats"} +: ${heartbeat_data:="/var/db/beats/heartbeat"} + + +# daemon +start_precmd=heartbeat_prestart +command=/usr/sbin/daemon +pidfile="/var/run/${name}" +command_args="-frP ${pidfile} %%PREFIX%%/sbin/${name} ${heartbeat_flags} --path.config ${heartbeat_config} --path.home ${heartbeat_home} --path.data ${heartbeat_data} --path.logs ${heartbeat_logs} -c ${heartbeat_conffile}" + +heartbeat_prestart() { +# Have to empty rc_flags so they don't get passed to daemon(8) + rc_flags="" +} + +run_rc_command "$1" diff --git a/sysutils/beats9/files/metricbeat.in b/sysutils/beats9/files/metricbeat.in new file mode 100644 index 000000000000..270966c4f669 --- /dev/null +++ b/sysutils/beats9/files/metricbeat.in @@ -0,0 +1,51 @@ +#!/bin/sh + +# PROVIDE: metricbeat +# REQUIRE: DAEMON +# BEFORE: LOGIN +# KEYWORD: shutdown + +# Add the following lines to /etc/rc.conf to enable metricbeat: +# +# metricbeat_enable (bool): Set to YES to enable metricbeat +# Default: NO +# metricbeat_flags (str): Extra flags passed to metricbeat +# metricbeat_config (str): metricbeat configuration directory +# Default: ${PREFIX}/etc/beats +# metricbeat_conffile (str): metricbeat configuration file +# relative to ${metricbeat_conf} +# Default: metricbeat.yml + +. /etc/rc.subr + +name="metricbeat" +rcvar=${name}_enable +load_rc_config $name + +: ${metricbeat_enable:="NO"} +: ${metricbeat_config:="%%ETCDIR%%"} +: ${metricbeat_conffile:="metricbeat.yml"} +: ${metricbeat_home:="%%DATADIR%%/metricbeat"} +: ${metricbeat_logs:="/var/log/beats"} +: ${metricbeat_data:="/var/db/beats/metricbeat"} + +# daemon +start_precmd=metricbeat_prestart +command=/usr/sbin/daemon +pidfile="/var/run/${name}" +command_args="-frP ${pidfile} %%PREFIX%%/sbin/${name} ${metricbeat_flags} --path.config ${metricbeat_config} --path.home ${metricbeat_home} --path.data ${metricbeat_data} --path.logs ${metricbeat_logs} -c ${metricbeat_conffile}" + +metricbeat_prestart() { +# Have to empty rc_flags so they don't get passed to daemon(8) + rc_flags="" +} + +# metricbeat will refuse to quit if linprocfs is mounted, and sadly requires -9 +[ -f /compat/linux/proc/cpuinfo ] && stop_cmd=metricbeat_stop + +metricbeat_stop() { + pkill -9 -F ${pidfile} > /dev/null 2>&1 + pkill -9 -F ${pidfile}.child > /dev/null 2>&1 +} + +run_rc_command "$1" diff --git a/sysutils/beats9/files/packetbeat.in b/sysutils/beats9/files/packetbeat.in new file mode 100644 index 000000000000..4dc21856c49a --- /dev/null +++ b/sysutils/beats9/files/packetbeat.in @@ -0,0 +1,43 @@ +#!/bin/sh + +# PROVIDE: packetbeat +# REQUIRE: DAEMON +# BEFORE: LOGIN +# KEYWORD: shutdown + +# Add the following lines to /etc/rc.conf to enable packetbeat +# +# packetbeat_enable (bool): Set to YES to enable packetbeat +# Default: NO +# packetbeat_flags (str): Extra flags passed to packetbeat +# packetbeat_config (str): packetbeat configuration directory +# Default: ${PREFIX}/etc/beats +# packetbeat_conffile (str): packetbeat configuration file +# relative to ${packetbeat_conf} +# Default: packetbeat.yml + +. /etc/rc.subr + +name="packetbeat" +rcvar=${name}_enable +load_rc_config $name + +: ${packetbeat_enable:="NO"} +: ${packetbeat_config:="%%ETCDIR%%"} +: ${packetbeat_conffile:="packetbeat.yml"} +: ${packetbeat_home:="%%DATADIR%%/packetbeat"} +: ${packetbeat_logs:="/var/log/beats"} +: ${packetbeat_data:="/var/db/beats/packetbeat"} + +# daemon +start_precmd=packetbeat_prestart +command=/usr/sbin/daemon +pidfile="/var/run/${name}" +command_args="-frP ${pidfile} %%PREFIX%%/sbin/${name} ${packetbeat_flags} --path.config ${packetbeat_config} --path.home ${packetbeat_home} --path.data ${packetbeat_data} --path.logs ${packetbeat_logs} -c ${packetbeat_conffile}" + +packetbeat_prestart() { +# Have to empty rc_flags so they don't get passed to daemon(8) + rc_flags="" +} + +run_rc_command "$1" diff --git a/sysutils/beats9/files/patch-auditbeat_auditbeat.reference.yml b/sysutils/beats9/files/patch-auditbeat_auditbeat.reference.yml new file mode 100644 index 000000000000..04ef963d9642 --- /dev/null +++ b/sysutils/beats9/files/patch-auditbeat_auditbeat.reference.yml @@ -0,0 +1,20 @@ +--- auditbeat/auditbeat.reference.yml.orig 2025-09-15 19:57:17 UTC ++++ auditbeat/auditbeat.reference.yml +@@ -14,7 +14,7 @@ auditbeat.config.modules: + auditbeat.config.modules: + + # Glob pattern for configuration reloading +- path: ${path.config}/modules.d/*.yml ++ path: ${path.config}/auditbeat.modules.d/*.yml + + # Period on which files under path should be checked for changes + reload.period: 10s +@@ -1250,7 +1250,7 @@ output.elasticsearch: + + # The directory from where to read the dashboards. The default is the `kibana` + # folder in the home path. +-#setup.dashboards.directory: ${path.home}/kibana ++#setup.dashboards.directory: %%DATADIR%%/auditbeat/kibana + + # The URL from where to download the dashboard archive. It is used instead of + # the directory if it has a value. diff --git a/sysutils/beats9/files/patch-auditbeat_auditbeat.yml b/sysutils/beats9/files/patch-auditbeat_auditbeat.yml new file mode 100644 index 000000000000..b9c74affaee6 --- /dev/null +++ b/sysutils/beats9/files/patch-auditbeat_auditbeat.yml @@ -0,0 +1,13 @@ +--- auditbeat/auditbeat.yml.orig 2025-09-15 19:57:17 UTC ++++ auditbeat/auditbeat.yml +@@ -82,6 +82,10 @@ setup.template.settings: + # website. + #setup.dashboards.url: + ++# The directory from where to read the dashboards. The default is the `kibana` ++# folder in the home path. ++#setup.dashboards.directory: %%DATADIR%%/auditbeat/kibana ++ + # =================================== Kibana =================================== + + # Starting with Beats version 6.0.0, the dashboards are loaded via the Kibana API. diff --git a/sysutils/beats9/files/patch-dev-tools_mage_settings.go b/sysutils/beats9/files/patch-dev-tools_mage_settings.go new file mode 100644 index 000000000000..fff0c065e200 --- /dev/null +++ b/sysutils/beats9/files/patch-dev-tools_mage_settings.go @@ -0,0 +1,20 @@ +--- dev-tools/mage/settings.go.orig 2025-09-15 19:57:17 UTC ++++ dev-tools/mage/settings.go +@@ -31,7 +31,6 @@ import ( + "sync" + "time" + +- "github.com/magefile/mage/sh" + "golang.org/x/text/cases" + "golang.org/x/text/language" + "gopkg.in/yaml.v3" +@@ -282,7 +281,8 @@ func CommitHash() (string, error) { + func CommitHash() (string, error) { + var err error + commitHashOnce.Do(func() { +- commitHash, err = sh.Output("git", "rev-parse", "HEAD") ++ err = nil ++ commitHash = "%%BEATSVERSION%%" + }) + return commitHash, err + } diff --git a/sysutils/beats9/files/patch-filebeat_filebeat.reference.yml b/sysutils/beats9/files/patch-filebeat_filebeat.reference.yml new file mode 100644 index 000000000000..33dc3a22fd11 --- /dev/null +++ b/sysutils/beats9/files/patch-filebeat_filebeat.reference.yml @@ -0,0 +1,26 @@ +--- filebeat/filebeat.reference.yml.orig 2025-09-15 19:57:17 UTC ++++ filebeat/filebeat.reference.yml +@@ -1329,12 +1329,12 @@ - type: filestream + #filebeat.config: + #inputs: + #enabled: false +- #path: inputs.d/*.yml ++ #path: filebeat.inputs.d/*.yml + #reload.enabled: true + #reload.period: 10s + #modules: + #enabled: true +- #path: modules.d/*.yml ++ #path: filebeat.modules.d/*.yml + #reload.enabled: true + #reload.period: 10s + +@@ -2408,7 +2408,7 @@ output.elasticsearch: + + # The directory from where to read the dashboards. The default is the `kibana` + # folder in the home path. +-#setup.dashboards.directory: ${path.home}/kibana ++#setup.dashboards.directory: %%DATADIR%%/filebeat/kibana + + # The URL from where to download the dashboard archive. It is used instead of + # the directory if it has a value. diff --git a/sysutils/beats9/files/patch-filebeat_filebeat.yml b/sysutils/beats9/files/patch-filebeat_filebeat.yml new file mode 100644 index 000000000000..c9a078cc6ffb --- /dev/null +++ b/sysutils/beats9/files/patch-filebeat_filebeat.yml @@ -0,0 +1,33 @@ +--- filebeat/filebeat.yml.orig 2025-09-15 19:57:17 UTC ++++ filebeat/filebeat.yml +@@ -81,7 +81,7 @@ filebeat.config.modules: + + filebeat.config.modules: + # Glob pattern for configuration loading +- path: ${path.config}/modules.d/*.yml ++ path: ${path.config}/filebeat.modules.d/*.yml + + # Set to true to enable config reloading + reload.enabled: false +@@ -124,6 +124,10 @@ setup.template.settings: + # website. + #setup.dashboards.url: + ++# The directory from where to read the dashboards. The default is the `kibana` ++# folder in the home path. ++#setup.dashboards.directory: %%DATADIR%%/filebeat/kibana ++ + # =================================== Kibana =================================== + + # Starting with Beats version 6.0.0, the dashboards are loaded via the Kibana API. +@@ -195,8 +199,8 @@ processors: + - add_host_metadata: + when.not.contains.tags: forwarded + - add_cloud_metadata: ~ +- - add_docker_metadata: ~ +- - add_kubernetes_metadata: ~ ++# - add_docker_metadata: ~ ++# - add_kubernetes_metadata: ~ + + # ================================== Logging =================================== + diff --git a/sysutils/beats9/files/patch-go-sysinfo b/sysutils/beats9/files/patch-go-sysinfo new file mode 100644 index 000000000000..2ac3e3daee55 --- /dev/null +++ b/sysutils/beats9/files/patch-go-sysinfo @@ -0,0 +1,1314 @@ +--- vendor/github.com/elastic/go-sysinfo/internal/cgo/disabled.go.orig 2025-09-19 18:12:17 UTC ++++ vendor/github.com/elastic/go-sysinfo/internal/cgo/disabled.go +@@ -0,0 +1,23 @@ ++// Licensed to Elasticsearch B.V. under one or more contributor ++// license agreements. See the NOTICE file distributed with ++// this work for additional information regarding copyright ++// ownership. Elasticsearch B.V. licenses this file to you under ++// the Apache License, Version 2.0 (the "License"); you may ++// not use this file except in compliance with the License. ++// You may obtain a copy of the License at ++// ++// http://www.apache.org/licenses/LICENSE-2.0 ++// ++// Unless required by applicable law or agreed to in writing, ++// software distributed under the License is distributed on an ++// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++// KIND, either express or implied. See the License for the ++// specific language governing permissions and limitations ++// under the License. ++ ++//go:build !cgo ++ ++package cgo ++ ++// Enabled is true if cgo was enabled at compile-time. ++const Enabled = false +--- vendor/github.com/elastic/go-sysinfo/internal/cgo/enabled.go.orig 2025-09-19 18:12:17 UTC ++++ vendor/github.com/elastic/go-sysinfo/internal/cgo/enabled.go +@@ -0,0 +1,23 @@ ++// Licensed to Elasticsearch B.V. under one or more contributor ++// license agreements. See the NOTICE file distributed with ++// this work for additional information regarding copyright ++// ownership. Elasticsearch B.V. licenses this file to you under ++// the Apache License, Version 2.0 (the "License"); you may ++// not use this file except in compliance with the License. ++// You may obtain a copy of the License at ++// ++// http://www.apache.org/licenses/LICENSE-2.0 ++// ++// Unless required by applicable law or agreed to in writing, ++// software distributed under the License is distributed on an ++// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++// KIND, either express or implied. See the License for the ++// specific language governing permissions and limitations ++// under the License. ++ ++//go:build cgo ++ ++package cgo ++ ++// Enabled is true if cgo was enabled at compile-time. ++const Enabled = true +--- vendor/github.com/elastic/go-sysinfo/providers/freebsd/defs_freebsd.go.orig 2025-09-19 18:12:17 UTC ++++ vendor/github.com/elastic/go-sysinfo/providers/freebsd/defs_freebsd.go +@@ -0,0 +1,33 @@ ++// Licensed to Elasticsearch B.V. under one or more contributor ++// license agreements. See the NOTICE file distributed with ++// this work for additional information regarding copyright ++// ownership. Elasticsearch B.V. licenses this file to you under ++// the Apache License, Version 2.0 (the "License"); you may ++// not use this file except in compliance with the License. ++// You may obtain a copy of the License at ++// ++// http://www.apache.org/licenses/LICENSE-2.0 ++// ++// Unless required by applicable law or agreed to in writing, ++// software distributed under the License is distributed on an ++// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++// KIND, either express or implied. See the License for the ++// specific language governing permissions and limitations ++// under the License. ++ ++//go:build ignore ++// +build ignore ++ ++package freebsd ++ ++/* ++#include ++#include ++#include ++#include ++*/ ++import "C" ++ ++type kvmSwap C.struct_kvm_swap ++ ++type clockInfo C.struct_clockinfo +--- vendor/github.com/elastic/go-sysinfo/providers/freebsd/doc.go.orig 2025-09-19 18:12:17 UTC ++++ vendor/github.com/elastic/go-sysinfo/providers/freebsd/doc.go +@@ -0,0 +1,22 @@ ++// Licensed to Elasticsearch B.V. under one or more contributor ++// license agreements. See the NOTICE file distributed with ++// this work for additional information regarding copyright ++// ownership. Elasticsearch B.V. licenses this file to you under ++// the Apache License, Version 2.0 (the "License"); you may ++// not use this file except in compliance with the License. ++// You may obtain a copy of the License at ++// ++// http://www.apache.org/licenses/LICENSE-2.0 ++// ++// Unless required by applicable law or agreed to in writing, ++// software distributed under the License is distributed on an ++// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++// KIND, either express or implied. See the License for the ++// specific language governing permissions and limitations ++// under the License. ++ ++// Package freebsd implements the HostProvider and ProcessProvider interfaces ++// for providing information about FreeBSD. ++package freebsd ++ ++//go:generate sh -c "go tool cgo -godefs defs_freebsd.go > ztypes_freebsd.go" +--- vendor/github.com/elastic/go-sysinfo/providers/freebsd/host_freebsd_cgo.go.orig 2025-09-19 18:12:17 UTC ++++ vendor/github.com/elastic/go-sysinfo/providers/freebsd/host_freebsd_cgo.go +@@ -0,0 +1,238 @@ ++// Licensed to Elasticsearch B.V. under one or more contributor ++// license agreements. See the NOTICE file distributed with ++// this work for additional information regarding copyright ++// ownership. Elasticsearch B.V. licenses this file to you under ++// the Apache License, Version 2.0 (the "License"); you may ++// not use this file except in compliance with the License. ++// You may obtain a copy of the License at ++// ++// http://www.apache.org/licenses/LICENSE-2.0 ++// ++// Unless required by applicable law or agreed to in writing, ++// software distributed under the License is distributed on an ++// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++// KIND, either express or implied. See the License for the ++// specific language governing permissions and limitations ++// under the License. ++ ++//go:build freebsd && cgo ++ ++package freebsd ++ ++import ( ++ "context" ++ "errors" ++ "os" ++ "path/filepath" ++ "time" ++ ++ "github.com/prometheus/procfs" ++ ++ "github.com/elastic/go-sysinfo/internal/registry" ++ "github.com/elastic/go-sysinfo/providers/shared" ++ "github.com/elastic/go-sysinfo/types" ++) ++ ++func init() { ++ registry.Register(newFreeBSDSystem()) ++} ++ ++type freebsdSystem struct{} ++ ++func newFreeBSDSystem() freebsdSystem { ++ return freebsdSystem{} ++} ++ ++func (s freebsdSystem) Host() (types.Host, error) { ++ return newHost() ++} ++ ++type host struct { ++ procFS procFS ++ info types.HostInfo ++} ++ ++func (h *host) Info() types.HostInfo { ++ return h.info ++} ++ ++func (h *host) CPUTime() (types.CPUTimes, error) { ++ cpu := types.CPUTimes{} ++ r := &reader{} ++ r.cpuTime(&cpu) ++ return cpu, r.Err() ++} ++ ++func (h *host) Memory() (*types.HostMemoryInfo, error) { ++ m := &types.HostMemoryInfo{} ++ r := &reader{} ++ r.memInfo(m) ++ return m, r.Err() ++} ++ ++func (h *host) FQDNWithContext(ctx context.Context) (string, error) { ++ return shared.FQDNWithContext(ctx) ++} ++ ++func (h *host) FQDN() (string, error) { ++ return h.FQDNWithContext(context.Background()) ++} ++ ++func newHost() (*host, error) { ++ h := &host{} ++ r := &reader{} ++ r.architecture(h) ++ r.bootTime(h) ++ r.hostname(h) ++ r.network(h) ++ r.kernelVersion(h) ++ r.os(h) ++ r.time(h) ++ r.uniqueID(h) ++ return h, r.Err() ++} ++ ++type reader struct { ++ errs []error ++} ++ ++func (r *reader) addErr(err error) bool { ++ if err != nil { ++ if !errors.Is(err, types.ErrNotImplemented) { ++ r.errs = append(r.errs, err) ++ } ++ return true ++ } ++ return false ++} ++ ++func (r *reader) Err() error { ++ return errors.Join(r.errs...) ++} ++ ++func (r *reader) cpuTime(cpu *types.CPUTimes) { ++ times, err := cpuStateTimes() ++ if r.addErr(err) { ++ return ++ } ++ *cpu = *times ++} ++ ++func (r *reader) memInfo(m *types.HostMemoryInfo) { ++ // Memory counter calculations: ++ // total = physical memory ++ // used = active + wired ++ // free = free ++ // available = buffers + inactive + cache + free ++ ++ pageSize, err := pageSizeBytes() ++ if r.addErr(err) { ++ return ++ } ++ ++ m.Total = totalPhysicalMem(r) ++ activePages := activePageCount(r) ++ ++ m.Metrics = make(map[string]uint64, 6) ++ m.Metrics["active_bytes"] = activePages * pageSize ++ ++ wirePages := wirePageCount(r) ++ m.Metrics["wired_bytes"] = wirePages * pageSize ++ ++ inactivePages := inactivePageCount(r) ++ m.Metrics["inactive_bytes"] = inactivePages * pageSize ++ ++ cachePages := cachePageCount(r) ++ m.Metrics["cache_bytes"] = cachePages * pageSize ++ ++ freePages := freePageCount(r) ++ m.Metrics["free_bytes"] = freePages * pageSize ++ ++ buffers := buffersUsedBytes(r) ++ m.Metrics["buffer_bytes"] = buffers ++ ++ m.Used = (activePages + wirePages) * pageSize ++ m.Free = freePages * pageSize ++ m.Available = (inactivePages+cachePages+freePages)*pageSize + buffers ++ ++ // Virtual (swap) Memory ++ swap, err := kvmGetSwapInfo() ++ if r.addErr(err) { ++ return ++ } ++ ++ m.VirtualTotal = uint64(swap.Total) * pageSize ++ m.VirtualUsed = uint64(swap.Used) * pageSize ++ m.VirtualFree = m.VirtualTotal - m.VirtualUsed ++} ++ ++func (r *reader) architecture(h *host) { ++ v, err := architecture() ++ if r.addErr(err) { ++ return ++ } ++ h.info.Architecture = v ++} ++ ++func (r *reader) bootTime(h *host) { ++ v, err := bootTime() ++ if r.addErr(err) { ++ return ++ } ++ h.info.BootTime = v ++} ++ ++func (r *reader) hostname(h *host) { ++ v, err := os.Hostname() ++ if r.addErr(err) { ++ return ++ } ++ h.info.Hostname = v ++} ++ ++func (r *reader) network(h *host) { ++ ips, macs, err := shared.Network() ++ if r.addErr(err) { ++ return ++ } ++ h.info.IPs = ips ++ h.info.MACs = macs ++} ++ ++func (r *reader) kernelVersion(h *host) { ++ v, err := kernelVersion() ++ if r.addErr(err) { ++ return ++ } ++ h.info.KernelVersion = v ++} ++ ++func (r *reader) os(h *host) { ++ v, err := operatingSystem() ++ if r.addErr(err) { ++ return ++ } ++ h.info.OS = v ++} ++ ++func (r *reader) time(h *host) { ++ h.info.Timezone, h.info.TimezoneOffsetSec = time.Now().Zone() ++} ++ ++func (r *reader) uniqueID(h *host) { ++ v, err := machineID() ++ if r.addErr(err) { ++ return ++ } ++ h.info.UniqueID = v ++} ++ ++type procFS struct { ++ procfs.FS ++ mountPoint string ++} ++ ++func (fs *procFS) path(p ...string) string { ++ elem := append([]string{fs.mountPoint}, p...) ++ return filepath.Join(elem...) ++} +--- vendor/github.com/elastic/go-sysinfo/providers/freebsd/host_freebsd_cgo_test.go.orig 2025-09-19 18:12:17 UTC ++++ vendor/github.com/elastic/go-sysinfo/providers/freebsd/host_freebsd_cgo_test.go +@@ -0,0 +1,53 @@ ++// Licensed to Elasticsearch B.V. under one or more contributor ++// license agreements. See the NOTICE file distributed with ++// this work for additional information regarding copyright ++// ownership. Elasticsearch B.V. licenses this file to you under ++// the Apache License, Version 2.0 (the "License"); you may ++// not use this file except in compliance with the License. ++// You may obtain a copy of the License at ++// ++// http://www.apache.org/licenses/LICENSE-2.0 ++// ++// Unless required by applicable law or agreed to in writing, ++// software distributed under the License is distributed on an ++// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++// KIND, either express or implied. See the License for the ++// specific language governing permissions and limitations ++// under the License. ++ ++//go:build freebsd && cgo ++ ++package freebsd ++ ++import ( ++ "encoding/json" ++ "testing" ++ ++ "github.com/elastic/go-sysinfo/internal/registry" ++) ++ ++var _ registry.HostProvider = freebsdSystem{} ++ ++func TestHost(t *testing.T) { ++ host, err := newFreeBSDSystem().Host() ++ if err != nil { ++ t.Fatal(err) ++ } ++ ++ t.Run("Info", func(t *testing.T) { ++ info := host.Info() ++ ++ data, _ := json.MarshalIndent(info, "", " ") ++ t.Log(string(data)) ++ }) ++ ++ t.Run("Memory", func(t *testing.T) { ++ mem, err := host.Memory() ++ if err != nil { ++ t.Fatal(err) ++ } ++ ++ data, _ := json.MarshalIndent(mem, "", " ") ++ t.Log(string(data)) ++ }) ++} +--- vendor/github.com/elastic/go-sysinfo/providers/freebsd/kvm_freebsd_cgo.go.orig 2025-09-19 18:12:17 UTC ++++ vendor/github.com/elastic/go-sysinfo/providers/freebsd/kvm_freebsd_cgo.go +@@ -0,0 +1,58 @@ ++// Licensed to Elasticsearch B.V. under one or more contributor ++// license agreements. See the NOTICE file distributed with ++// this work for additional information regarding copyright ++// ownership. Elasticsearch B.V. licenses this file to you under ++// the Apache License, Version 2.0 (the "License"); you may ++// not use this file except in compliance with the License. ++// You may obtain a copy of the License at ++// ++// http://www.apache.org/licenses/LICENSE-2.0 ++// ++// Unless required by applicable law or agreed to in writing, ++// software distributed under the License is distributed on an ++// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++// KIND, either express or implied. See the License for the ++// specific language governing permissions and limitations ++// under the License. ++ ++//go:build freebsd && cgo ++ ++package freebsd ++ ++/* ++#cgo LDFLAGS: -lkvm ++#include ++#include ++#include ++ ++#include ++#include ++#include ++*/ ++import "C" ++ ++import ( ++ "fmt" ++ "unsafe" ++ ++ "golang.org/x/sys/unix" ++) ++ ++// kvmGetSwapInfo returns swap summary statistics for the system. It accesses ++// the kernel virtual memory (kvm) images by using libkvm. ++func kvmGetSwapInfo() (*kvmSwap, error) { ++ // Obtain a KVM file descriptor. ++ var errstr *C.char ++ kd := C.kvm_open(nil, nil, nil, unix.O_RDONLY, errstr) ++ if errstr != nil { ++ return nil, fmt.Errorf("failed calling kvm_open: %s", C.GoString(errstr)) ++ } ++ defer C.kvm_close(kd) ++ ++ var swap kvmSwap ++ if n, err := C.kvm_getswapinfo(kd, (*C.struct_kvm_swap)(unsafe.Pointer(&swap)), 1, 0); n != 0 { ++ return nil, fmt.Errorf("failed to get kvm_getswapinfo: %w", err) ++ } ++ ++ return &swap, nil ++} +--- vendor/github.com/elastic/go-sysinfo/providers/freebsd/process_freebsd_cgo.go.orig 2025-09-19 18:12:17 UTC ++++ vendor/github.com/elastic/go-sysinfo/providers/freebsd/process_freebsd_cgo.go +@@ -0,0 +1,386 @@ ++// Licensed to Elasticsearch B.V. under one or more contributor ++// license agreements. See the NOTICE file distributed with ++// this work for additional information regarding copyright ++// ownership. Elasticsearch B.V. licenses this file to you under ++// the Apache License, Version 2.0 (the "License"); you may ++// not use this file except in compliance with the License. ++// You may obtain a copy of the License at ++// ++// http://www.apache.org/licenses/LICENSE-2.0 ++// ++// Unless required by applicable law or agreed to in writing, ++// software distributed under the License is distributed on an ++// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++// KIND, either express or implied. See the License for the ++// specific language governing permissions and limitations ++// under the License. ++ ++//go:build freebsd && cgo ++ ++package freebsd ++ ++import "C" ++ ++/* ++#cgo LDFLAGS: -lprocstat ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++struct kinfo_proc getProcInfoAt(struct kinfo_proc *procs, unsigned int index) { ++ return procs[index]; ++} ++ ++unsigned int countArrayItems(char **items) { ++ unsigned int i = 0; ++ for (i = 0; items[i] != NULL; ++i); ++ return i; ++} ++ ++char * itemAtIndex(char **items, unsigned int index) { ++ return items[index]; ++} ++ ++unsigned int countFileStats(struct filestat_list *head) { ++ unsigned int count = 0; ++ struct filestat *fst; ++ STAILQ_FOREACH(fst, head, next) { ++ ++count; ++ } ++ ++ return count; ++} ++ ++void copyFileStats(struct filestat_list *head, struct filestat *out, unsigned int size) { ++ unsigned int index = 0; ++ struct filestat *fst; ++ if (size == 0) { ++ return; ++ } ++ STAILQ_FOREACH(fst, head, next) { ++ memcpy(out, fst, sizeof(*fst)); ++ ++out; ++ --size; ++ } ++} ++*/ ++import "C" ++ ++import ( ++ "errors" ++ "fmt" ++ "os" ++ "strconv" ++ "strings" ++ "time" ++ ++ "github.com/elastic/go-sysinfo/types" ++) ++ ++func getProcInfo(op, arg int) ([]process, error) { ++ procstat, err := C.procstat_open_sysctl() ++ if procstat == nil { ++ return nil, fmt.Errorf("failed to open procstat sysctl: %w", err) ++ } ++ defer C.procstat_close(procstat) ++ ++ var count C.uint = 0 ++ kprocs, err := C.procstat_getprocs(procstat, C.int(op), C.int(arg), &count) ++ if kprocs == nil { ++ return nil, fmt.Errorf("getprocs failed: %w", err) ++ } ++ defer C.procstat_freeprocs(procstat, kprocs) ++ ++ procs := make([]process, count) ++ var index C.uint ++ for index = 0; index < count; index++ { ++ proc := C.getProcInfoAt(kprocs, index) ++ procs[index].kinfo = proc ++ procs[index].pid = int(proc.ki_pid) ++ } ++ ++ return procs, nil ++} ++ ++func copyArray(from **C.char) []string { ++ if from == nil { ++ return nil ++ } ++ ++ count := C.countArrayItems(from) ++ out := make([]string, count) ++ ++ for index := C.uint(0); index < count; index++ { ++ out[index] = C.GoString(C.itemAtIndex(from, index)) ++ } ++ ++ return out ++} ++ ++func makeMap(from []string) map[string]string { ++ out := make(map[string]string, len(from)) ++ ++ for _, env := range from { ++ parts := strings.Split(env, "=") ++ if len(parts) > 1 { ++ out[parts[0]] = parts[1] ++ } ++ } ++ ++ return out ++} ++ ++func getProcEnv(p *process) (map[string]string, error) { ++ procstat, err := C.procstat_open_sysctl() ++ ++ if procstat == nil { ++ return nil, fmt.Errorf("failed to open procstat sysctl: %w", err) ++ } ++ defer C.procstat_close(procstat) ++ ++ env, err := C.procstat_getenvv(procstat, &p.kinfo, 0) ++ defer C.procstat_freeenvv(procstat) ++ ++ return makeMap(copyArray(env)), err ++} ++ ++func getProcArgs(p *process) ([]string, error) { ++ procstat, err := C.procstat_open_sysctl() ++ ++ if procstat == nil { ++ return nil, fmt.Errorf("failed to open procstat sysctl: %w", err) ++ } ++ defer C.procstat_close(procstat) ++ ++ args, err := C.procstat_getargv(procstat, &p.kinfo, 0) ++ defer C.procstat_freeargv(procstat) ++ ++ return copyArray(args), err ++} ++ ++func getProcPathname(p *process) (string, error) { ++ procstat, err := C.procstat_open_sysctl() ++ ++ if procstat == nil { ++ return "", fmt.Errorf("failed to open procstat sysctl: %w", err) ++ } ++ defer C.procstat_close(procstat) ++ ++ const maxlen = uint(1024) ++ out := make([]C.char, maxlen) ++ if res, err := C.procstat_getpathname(procstat, &p.kinfo, &out[0], C.ulong(maxlen)); res != 0 { ++ return "", err ++ } ++ return C.GoString(&out[0]), nil ++} ++ ++func getFileStats(fileStats *C.struct_filestat_list) []C.struct_filestat { ++ count := C.countFileStats(fileStats) ++ ++ if count < 1 { ++ return nil ++ } ++ ++ out := make([]C.struct_filestat, count) ++ ++ C.copyFileStats(fileStats, &out[0], count) ++ return out ++} ++ ++func getProcCWD(p *process) (string, error) { ++ procstat, err := C.procstat_open_sysctl() ++ ++ if procstat == nil { ++ return "", fmt.Errorf("failed to open procstat sysctl: %w", err) ++ } ++ defer C.procstat_close(procstat) ++ ++ fs, err := C.procstat_getfiles(procstat, &p.kinfo, 0) ++ if fs == nil { ++ return "", fmt.Errorf("failed to get files: %w", err) ++ } ++ ++ defer C.procstat_freefiles(procstat, fs) ++ ++ files := getFileStats(fs) ++ for _, f := range files { ++ if f.fs_uflags == C.PS_FST_UFLAG_CDIR { ++ return C.GoString(f.fs_path), nil ++ } ++ } ++ ++ return "", nil ++} ++ ++type process struct { ++ pid int ++ kinfo C.struct_kinfo_proc ++} ++ ++func timevalToDuration(tm C.struct_timeval) time.Duration { ++ return time.Duration(tm.tv_sec)*time.Second + ++ time.Duration(tm.tv_usec)*time.Microsecond ++} ++ ++func (p *process) CPUTime() (types.CPUTimes, error) { ++ procs, err := getProcInfo(C.KERN_PROC_PID, p.PID()) ++ if err != nil { ++ return types.CPUTimes{}, err ++ } ++ p.kinfo = procs[0].kinfo ++ ++ return types.CPUTimes{ ++ User: timevalToDuration(p.kinfo.ki_rusage.ru_utime), ++ System: timevalToDuration(p.kinfo.ki_rusage.ru_stime), ++ }, nil ++} ++ ++func (p *process) Info() (types.ProcessInfo, error) { ++ procs, err := getProcInfo(C.KERN_PROC_PID, p.PID()) ++ if err != nil { ++ return types.ProcessInfo{}, err ++ } ++ p.kinfo = procs[0].kinfo ++ ++ cwd, err := getProcCWD(p) ++ if err != nil { ++ return types.ProcessInfo{}, err ++ } ++ ++ args, err := getProcArgs(p) ++ if err != nil { ++ return types.ProcessInfo{}, err ++ } ++ ++ exe, _ := getProcPathname(p) ++ ++ return types.ProcessInfo{ ++ Name: C.GoString(&p.kinfo.ki_comm[0]), ++ PID: int(p.kinfo.ki_pid), ++ PPID: int(p.kinfo.ki_ppid), ++ CWD: cwd, ++ Exe: exe, ++ Args: args, ++ StartTime: time.Unix(int64(p.kinfo.ki_start.tv_sec), int64(p.kinfo.ki_start.tv_usec)*1000), ++ }, nil ++} ++ ++func (p *process) Memory() (types.MemoryInfo, error) { ++ pageSize, err := pageSizeBytes() ++ if err != nil { ++ return types.MemoryInfo{}, err ++ } ++ ++ procs, err := getProcInfo(C.KERN_PROC_PID, p.PID()) ++ if err != nil { ++ return types.MemoryInfo{}, err ++ } ++ p.kinfo = procs[0].kinfo ++ ++ return types.MemoryInfo{ ++ Resident: uint64(p.kinfo.ki_rssize) * pageSize, ++ Virtual: uint64(p.kinfo.ki_size), ++ }, nil ++} ++ ++func (p *process) User() (types.UserInfo, error) { ++ procs, err := getProcInfo(C.KERN_PROC_PID, p.PID()) ++ if err != nil { ++ return types.UserInfo{}, err ++ } ++ ++ p.kinfo = procs[0].kinfo ++ ++ return types.UserInfo{ ++ UID: strconv.FormatUint(uint64(p.kinfo.ki_ruid), 10), ++ EUID: strconv.FormatUint(uint64(p.kinfo.ki_uid), 10), ++ SUID: strconv.FormatUint(uint64(p.kinfo.ki_svuid), 10), ++ GID: strconv.FormatUint(uint64(p.kinfo.ki_rgid), 10), ++ EGID: strconv.FormatUint(uint64(p.kinfo.ki_groups[0]), 10), ++ SGID: strconv.FormatUint(uint64(p.kinfo.ki_svgid), 10), ++ }, nil ++} ++ ++func (p *process) PID() int { ++ return p.pid ++} ++ ++func (p *process) OpenHandles() ([]string, error) { ++ procstat := C.procstat_open_sysctl() ++ if procstat == nil { ++ return nil, errors.New("failed to open procstat sysctl") ++ } ++ defer C.procstat_close(procstat) ++ ++ fs := C.procstat_getfiles(procstat, &p.kinfo, 0) ++ defer C.procstat_freefiles(procstat, fs) ++ ++ files := getFileStats(fs) ++ names := make([]string, 0, len(files)) ++ ++ for _, file := range files { ++ if file.fs_type == 1 { ++ if path := C.GoString(file.fs_path); path != "" { ++ names = append(names, path) ++ } ++ } ++ } ++ ++ return names, nil ++} ++ ++func (p *process) OpenHandleCount() (int, error) { ++ procstat := C.procstat_open_sysctl() ++ if procstat == nil { ++ return 0, errors.New("failed to open procstat sysctl") ++ } ++ defer C.procstat_close(procstat) ++ ++ fs := C.procstat_getfiles(procstat, &p.kinfo, 0) ++ defer C.procstat_freefiles(procstat, fs) ++ return int(C.countFileStats(fs)), nil ++} ++ ++func (p *process) Environment() (map[string]string, error) { ++ return getProcEnv(p) ++} ++ ++func (s freebsdSystem) Processes() ([]types.Process, error) { ++ procs, err := getProcInfo(C.KERN_PROC_PROC, 0) ++ out := make([]types.Process, 0, len(procs)) ++ ++ for _, proc := range procs { ++ out = append(out, &process{ ++ pid: proc.pid, ++ kinfo: proc.kinfo, ++ }) ++ } ++ ++ return out, err ++} ++ ++func (s freebsdSystem) Process(pid int) (types.Process, error) { ++ return &process{pid: pid}, nil ++} ++ ++func (s freebsdSystem) Self() (types.Process, error) { ++ return s.Process(os.Getpid()) ++} ++ ++func (p *process) Parent() (types.Process, error) { ++ info, err := p.Info() ++ if err != nil { ++ return nil, err ++ } ++ ++ proc := process{pid: info.PPID} ++ ++ return &proc, nil ++} +--- vendor/github.com/elastic/go-sysinfo/providers/freebsd/sysctl_freebsd.go.orig 2025-09-19 18:12:17 UTC ++++ vendor/github.com/elastic/go-sysinfo/providers/freebsd/sysctl_freebsd.go +@@ -0,0 +1,248 @@ ++// Licensed to Elasticsearch B.V. under one or more contributor ++// license agreements. See the NOTICE file distributed with ++// this work for additional information regarding copyright ++// ownership. Elasticsearch B.V. licenses this file to you under ++// the Apache License, Version 2.0 (the "License"); you may ++// not use this file except in compliance with the License. ++// You may obtain a copy of the License at ++// ++// http://www.apache.org/licenses/LICENSE-2.0 ++// ++// Unless required by applicable law or agreed to in writing, ++// software distributed under the License is distributed on an ++// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++// KIND, either express or implied. See the License for the ++// specific language governing permissions and limitations ++// under the License. ++ ++//go:build freebsd ++ ++package freebsd ++ ++import ( ++ "fmt" ++ "strconv" ++ "strings" ++ "sync" ++ "time" ++ "unsafe" ++ ++ "github.com/elastic/go-sysinfo/types" ++ ++ "golang.org/x/sys/unix" ++) ++ ++var tickDuration = sync.OnceValues(func() (time.Duration, error) { ++ const mib = "kern.clockrate" ++ ++ c, err := unix.SysctlClockinfo(mib) ++ if err != nil { ++ return 0, fmt.Errorf("failed to get %s: %w", mib, err) ++ } ++ return time.Duration(c.Tick) * time.Microsecond, nil ++}) ++ ++var pageSizeBytes = sync.OnceValues(func() (uint64, error) { ++ const mib = "vm.stats.vm.v_page_size" ++ ++ v, err := unix.SysctlUint32(mib) ++ if err != nil { ++ return 0, fmt.Errorf("failed to get %s: %w", mib, err) ++ } ++ ++ return uint64(v), nil ++}) ++ ++func activePageCount(r *reader) uint64 { ++ const mib = "vm.stats.vm.v_active_count" ++ ++ v, err := unix.SysctlUint32(mib) ++ if r.addErr(err) { ++ return 0 ++ } ++ return uint64(v) ++} ++ ++func architecture() (string, error) { ++ const mib = "hw.machine" ++ ++ arch, err := unix.Sysctl(mib) ++ if err != nil { ++ return "", fmt.Errorf("failed to get architecture: %w", err) ++ } ++ ++ return arch, nil ++} ++ ++func bootTime() (time.Time, error) { ++ const mib = "kern.boottime" ++ ++ tv, err := unix.SysctlTimeval(mib) ++ if err != nil { ++ return time.Time{}, fmt.Errorf("failed to get host uptime: %w", err) ++ } ++ ++ bootTime := time.Unix(tv.Sec, tv.Usec*int64(time.Microsecond)) ++ return bootTime, nil ++} ++ ++// buffersUsedBytes returns the number memory bytes used as disk cache. ++func buffersUsedBytes(r *reader) uint64 { ++ const mib = "vfs.bufspace" ++ ++ v, err := unix.SysctlUint64(mib) ++ if r.addErr(err) { ++ return 0 ++ } ++ ++ return v ++} ++ ++func cachePageCount(r *reader) uint64 { ++ const mib = "vm.stats.vm.v_cache_count" ++ ++ v, err := unix.SysctlUint32(mib) ++ if r.addErr(err) { ++ return 0 ++ } ++ ++ return uint64(v) ++} ++ ++const sizeOfUint64 = int(unsafe.Sizeof(uint64(0))) ++ ++// cpuStateTimes uses sysctl kern.cp_time to get the amount of time spent in ++// different CPU states. ++func cpuStateTimes() (*types.CPUTimes, error) { ++ tickDuration, err := tickDuration() ++ if err != nil { ++ return nil, err ++ } ++ ++ const mib = "kern.cp_time" ++ buf, err := unix.SysctlRaw(mib) ++ if err != nil { ++ return nil, fmt.Errorf("failed to get %s: %w", mib, err) ++ } ++ ++ var clockTicks [unix.CPUSTATES]uint64 ++ if len(buf) < len(clockTicks)*sizeOfUint64 { ++ return nil, fmt.Errorf("kern.cp_time data is too short (got %d bytes)", len(buf)) ++ } ++ for i := range clockTicks { ++ val := *(*uint64)(unsafe.Pointer(&buf[sizeOfUint64*i])) ++ clockTicks[i] = val ++ } ++ ++ return &types.CPUTimes{ ++ User: time.Duration(clockTicks[unix.CP_USER]) * tickDuration, ++ System: time.Duration(clockTicks[unix.CP_SYS]) * tickDuration, ++ Idle: time.Duration(clockTicks[unix.CP_IDLE]) * tickDuration, ++ IRQ: time.Duration(clockTicks[unix.CP_INTR]) * tickDuration, ++ Nice: time.Duration(clockTicks[unix.CP_NICE]) * tickDuration, ++ }, nil ++} ++ ++func freePageCount(r *reader) uint64 { ++ const mib = "vm.stats.vm.v_free_count" ++ ++ v, err := unix.SysctlUint32(mib) ++ if r.addErr(err) { ++ return 0 ++ } ++ ++ return uint64(v) ++} ++ ++func inactivePageCount(r *reader) uint64 { ++ const mib = "vm.stats.vm.v_inactive_count" ++ ++ v, err := unix.SysctlUint32(mib) ++ if r.addErr(err) { ++ return 0 ++ } ++ ++ return uint64(v) ++} ++ ++func kernelVersion() (string, error) { ++ const mib = "kern.osrelease" ++ ++ version, err := unix.Sysctl(mib) ++ if err != nil { ++ return "", fmt.Errorf("failed to get kernel version: %w", err) ++ } ++ ++ return version, nil ++} ++ ++func machineID() (string, error) { ++ const mib = "kern.hostuuid" ++ ++ uuid, err := unix.Sysctl(mib) ++ if err != nil { ++ return "", fmt.Errorf("failed to get machine id: %w", err) ++ } ++ ++ return uuid, nil ++} ++ ++func operatingSystem() (*types.OSInfo, error) { ++ info := &types.OSInfo{ ++ Type: "freebsd", ++ Family: "freebsd", ++ Platform: "freebsd", ++ } ++ ++ osType, err := unix.Sysctl("kern.ostype") ++ if err != nil { ++ return info, err ++ } ++ info.Name = osType ++ ++ // Example: 13.0-RELEASE-p11 ++ osRelease, err := unix.Sysctl("kern.osrelease") ++ if err != nil { ++ return info, err ++ } ++ info.Version = osRelease ++ ++ releaseParts := strings.Split(osRelease, "-") ++ ++ majorMinor := strings.Split(releaseParts[0], ".") ++ if len(majorMinor) > 0 { ++ info.Major, _ = strconv.Atoi(majorMinor[0]) ++ } ++ if len(majorMinor) > 1 { ++ info.Minor, _ = strconv.Atoi(majorMinor[1]) ++ } ++ ++ if len(releaseParts) > 1 { ++ info.Build = releaseParts[1] ++ } ++ if len(releaseParts) > 2 { ++ info.Patch, _ = strconv.Atoi(strings.TrimPrefix(releaseParts[2], "p")) ++ } ++ ++ return info, nil ++} ++ ++func totalPhysicalMem(r *reader) uint64 { ++ const mib = "hw.physmem" ++ ++ v, err := unix.SysctlUint64(mib) ++ if r.addErr(err) { ++ return 0 ++ } ++ return v ++} ++ ++func wirePageCount(r *reader) uint64 { ++ const mib = "vm.stats.vm.v_wire_count" ++ ++ v, err := unix.SysctlUint32(mib) ++ if r.addErr(err) { ++ return 0 ++ } ++ return uint64(v) ++} +--- vendor/github.com/elastic/go-sysinfo/providers/freebsd/sysctl_freebsd_test.go.orig 2025-09-19 18:12:17 UTC ++++ vendor/github.com/elastic/go-sysinfo/providers/freebsd/sysctl_freebsd_test.go +@@ -0,0 +1,137 @@ ++// Licensed to Elasticsearch B.V. under one or more contributor ++// license agreements. See the NOTICE file distributed with ++// this work for additional information regarding copyright ++// ownership. Elasticsearch B.V. licenses this file to you under ++// the Apache License, Version 2.0 (the "License"); you may ++// not use this file except in compliance with the License. ++// You may obtain a copy of the License at ++// ++// http://www.apache.org/licenses/LICENSE-2.0 ++// ++// Unless required by applicable law or agreed to in writing, ++// software distributed under the License is distributed on an ++// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++// KIND, either express or implied. See the License for the ++// specific language governing permissions and limitations ++// under the License. ++ ++//go:build freebsd ++ ++package freebsd ++ ++import ( ++ "encoding/json" ++ "github.com/stretchr/testify/assert" ++ "github.com/stretchr/testify/require" ++ "os/exec" ++ "strings" ++ "testing" ++ "time" ++) ++ ++func TestArchitecture(t *testing.T) { ++ arch, err := architecture() ++ if err != nil { ++ t.Fatal(err) ++ } ++ ++ assert.NotEmpty(t, arch) ++ assert.Regexp(t, `(amd64|i386|powerpc|arm(64)?|riscv|mips|sparc64|pc98)`, arch) ++} ++ ++func TestBootTime(t *testing.T) { ++ bootTime, err := bootTime() ++ if err != nil { ++ t.Fatal(err) ++ } ++ ++ bootDiff := time.Since(bootTime) ++ // t.Logf("bootTime in seconds: %#v", int64(bootDiff.Seconds())) ++ ++ cmd := exec.Command("/usr/bin/uptime", "--libxo=json") ++ upcmd, err := cmd.Output() ++ ++ if err != nil { ++ t.Fatal(err) ++ } ++ ++ t.Logf(string(upcmd)) ++ ++ type UptimeOutput struct { ++ UptimeInformation struct { ++ Uptime int64 `json:"uptime"` ++ } `json:"uptime-information"` ++ } ++ ++ var upInfo UptimeOutput ++ err = json.Unmarshal(upcmd, &upInfo) ++ ++ if err != nil { ++ t.Fatal(err) ++ } ++ ++ upsec := upInfo.UptimeInformation.Uptime ++ uptime := time.Duration(upsec * int64(time.Second)) ++ // t.Logf("uptime in seconds: %#v", int64(uptime.Seconds())) ++ ++ assert.InDelta(t, uptime, bootDiff, float64(5*time.Second)) ++} ++ ++func TestCPUStateTimes(t *testing.T) { ++ times, err := cpuStateTimes() ++ if err != nil { ++ t.Fatal(err) ++ } ++ ++ require.NotNil(t, times) ++ assert.NotZero(t, *times) ++} ++ ++func TestKernelVersion(t *testing.T) { ++ kernel, err := kernelVersion() ++ if err != nil { ++ t.Fatal(err) ++ } ++ ++ // Retrieve currently running kernel version ++ cmd := exec.Command("/bin/freebsd-version", "-r") ++ fbsdout, err := cmd.Output() ++ ++ if err != nil { ++ t.Fatal(err) ++ } ++ ++ fbsdver := strings.TrimSuffix(string(fbsdout), "\n") ++ ++ assert.NotEmpty(t, kernel) ++ assert.EqualValues(t, kernel, fbsdver) ++} ++ ++func TestMachineID(t *testing.T) { ++ machineID, err := machineID() ++ if err != nil { ++ t.Fatal(err) ++ } ++ ++ assert.NotEmpty(t, machineID) ++ assert.Regexp(t, "^[a-zA-Z0-9]{8}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{4}-[a-zA-Z0-9]{12}$", machineID) ++} ++ ++func TestOperatingSystem(t *testing.T) { ++ t.Run("freebsd", func(t *testing.T) { ++ os, err := operatingSystem() ++ if err != nil { ++ t.Fatal(err) ++ } ++ assert.Equal(t, "freebsd", os.Type) ++ assert.Equal(t, "freebsd", os.Family) ++ assert.Equal(t, "freebsd", os.Platform) ++ assert.Equal(t, "FreeBSD", os.Name) ++ assert.Regexp(t, `\d{1,2}\.\d{1,2}-(RELEASE|STABLE|CURRENT|RC[0-9]|ALPHA(\d{0,2})|BETA(\d{0,2}))(-p\d)?`, os.Version) ++ assert.Regexp(t, `\d{1,2}`, os.Major) ++ assert.Regexp(t, `\d{1,2}`, os.Minor) ++ assert.Regexp(t, `\d{1,2}`, os.Patch) ++ assert.Regexp(t, `(RELEASE|STABLE|CURRENT|RC[0-9]|ALPHA([0-9]{0,2})|BETA([0-9]{0,2}))`, os.Build) ++ t.Logf("%#v", os) ++ }) ++} +--- vendor/github.com/elastic/go-sysinfo/providers/freebsd/ztypes_freebsd.go.orig 2025-09-19 18:12:17 UTC ++++ vendor/github.com/elastic/go-sysinfo/providers/freebsd/ztypes_freebsd.go +@@ -0,0 +1,39 @@ ++// Licensed to Elasticsearch B.V. under one or more contributor ++// license agreements. See the NOTICE file distributed with ++// this work for additional information regarding copyright ++// ownership. Elasticsearch B.V. licenses this file to you under ++// the Apache License, Version 2.0 (the "License"); you may ++// not use this file except in compliance with the License. ++// You may obtain a copy of the License at ++// ++// http://www.apache.org/licenses/LICENSE-2.0 ++// ++// Unless required by applicable law or agreed to in writing, ++// software distributed under the License is distributed on an ++// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY ++// KIND, either express or implied. See the License for the ++// specific language governing permissions and limitations ++// under the License. ++ ++// Code generated by cmd/cgo -godefs; and then patched up to fix ++// an alignment issue ++// cgo -godefs defs_freebsd.go ++ ++package freebsd ++ ++type kvmSwap struct { ++ Devname [32]int8 ++ Used uint32 ++ Total uint32 ++ Flags int32 ++ Reserved1 uint32 ++ Reserved2 uint32 ++} ++ ++type clockInfo struct { ++ Hz int32 ++ Tick int32 ++ Spare int32 ++ Stathz int32 ++ Profhz int32 ++} +--- vendor/github.com/elastic/go-sysinfo/providers/shared/fqdn.go.orig 2025-09-19 18:12:11 UTC ++++ vendor/github.com/elastic/go-sysinfo/providers/shared/fqdn.go +@@ -15,7 +15,7 @@ + // specific language governing permissions and limitations + // under the License. + +-//go:build linux || darwin || aix ++//go:build linux || darwin || aix || freebsd + + package shared + +--- vendor/github.com/elastic/go-sysinfo/system.go.orig 2025-09-19 18:12:11 UTC ++++ vendor/github.com/elastic/go-sysinfo/system.go +@@ -26,6 +26,7 @@ import ( + // Register host and process providers. + _ "github.com/elastic/go-sysinfo/providers/aix" + _ "github.com/elastic/go-sysinfo/providers/darwin" ++ _ "github.com/elastic/go-sysinfo/providers/freebsd" + _ "github.com/elastic/go-sysinfo/providers/linux" + _ "github.com/elastic/go-sysinfo/providers/windows" + ) diff --git a/sysutils/beats9/files/patch-heartbeat_heartbeat.reference.yml b/sysutils/beats9/files/patch-heartbeat_heartbeat.reference.yml new file mode 100644 index 000000000000..9bcb6527a696 --- /dev/null +++ b/sysutils/beats9/files/patch-heartbeat_heartbeat.reference.yml @@ -0,0 +1,20 @@ +--- heartbeat/heartbeat.reference.yml.bak 2026-02-23 21:59:26.000000000 +0000 ++++ heartbeat/heartbeat.reference.yml 2026-03-17 13:33:31.029015000 +0000 +@@ -14,7 +14,7 @@ + # of individual yaml files. + heartbeat.config.monitors: + # Directory + glob pattern to search for configuration files +- path: ${path.config}/monitors.d/*.yml ++ path: ${path.config}/heartbeat.monitors.d/*.yml + # If enabled, heartbeat will periodically check the config.monitors path for changes + reload.enabled: false + # How often to check for changes +@@ -1333,7 +1333,7 @@ + + # The directory from where to read the dashboards. The default is the `kibana` + # folder in the home path. +-#setup.dashboards.directory: ${path.home}/kibana ++#setup.dashboards.directory: %%DATADIR%%/hearbeat/kibana + + # The URL from where to download the dashboard archive. It is used instead of + # the directory if it has a value. diff --git a/sysutils/beats9/files/patch-heartbeat_heartbeat.yml b/sysutils/beats9/files/patch-heartbeat_heartbeat.yml new file mode 100644 index 000000000000..4e41b4e0d011 --- /dev/null +++ b/sysutils/beats9/files/patch-heartbeat_heartbeat.yml @@ -0,0 +1,11 @@ +--- heartbeat/heartbeat.yml.orig 2021-07-04 13:59:29 UTC ++++ heartbeat/heartbeat.yml +@@ -13,7 +13,7 @@ + # of individual yaml files. + heartbeat.config.monitors: + # Directory + glob pattern to search for configuration files +- path: ${path.config}/monitors.d/*.yml ++ path: ${path.config}/heartbeat.monitors.d/*.yml + # If enabled, heartbeat will periodically check the config.monitors path for changes + reload.enabled: false + # How often to check for changes diff --git a/sysutils/beats9/files/patch-libbeat_autodiscover_providers_docker_config.go b/sysutils/beats9/files/patch-libbeat_autodiscover_providers_docker_config.go new file mode 100644 index 000000000000..e554c26110a0 --- /dev/null +++ b/sysutils/beats9/files/patch-libbeat_autodiscover_providers_docker_config.go @@ -0,0 +1,11 @@ +--- libbeat/autodiscover/providers/docker/config.go.orig 2025-09-15 19:57:17 UTC ++++ libbeat/autodiscover/providers/docker/config.go +@@ -15,7 +15,7 @@ + // specific language governing permissions and limitations + // under the License. + +-//go:build linux || darwin || windows ++//go:build linux || darwin || windows || freebsd + + package docker + diff --git a/sysutils/beats9/files/patch-libbeat_autodiscover_providers_docker_docker.go b/sysutils/beats9/files/patch-libbeat_autodiscover_providers_docker_docker.go new file mode 100644 index 000000000000..1ba78ac9207b --- /dev/null +++ b/sysutils/beats9/files/patch-libbeat_autodiscover_providers_docker_docker.go @@ -0,0 +1,20 @@ +--- libbeat/autodiscover/providers/docker/docker.go.orig 2025-09-15 19:57:17 UTC ++++ libbeat/autodiscover/providers/docker/docker.go +@@ -15,7 +15,7 @@ + // specific language governing permissions and limitations + // under the License. + +-//go:build linux || darwin || windows ++//go:build linux || darwin || windows || freebsd + + package docker + +@@ -32,7 +32,7 @@ import ( + "github.com/elastic/beats/v7/libbeat/common" + + "github.com/elastic/elastic-agent-autodiscover/bus" +- "github.com/elastic/elastic-agent-autodiscover/docker" ++ docker "github.com/elastic/elastic-agent-autodiscover/docker" + "github.com/elastic/elastic-agent-autodiscover/utils" + "github.com/elastic/elastic-agent-libs/config" + "github.com/elastic/elastic-agent-libs/keystore" diff --git a/sysutils/beats9/files/patch-libbeat_autodiscover_providers_kubernetes_config.go b/sysutils/beats9/files/patch-libbeat_autodiscover_providers_kubernetes_config.go new file mode 100644 index 000000000000..d61cc99ec22f --- /dev/null +++ b/sysutils/beats9/files/patch-libbeat_autodiscover_providers_kubernetes_config.go @@ -0,0 +1,11 @@ +--- libbeat/autodiscover/providers/kubernetes/config.go.orig 2025-09-15 19:57:17 UTC ++++ libbeat/autodiscover/providers/kubernetes/config.go +@@ -15,7 +15,7 @@ + // specific language governing permissions and limitations + // under the License. + +-//go:build linux || darwin || windows ++//go:build linux || darwin || windows || freebsd + + package kubernetes + diff --git a/sysutils/beats9/files/patch-libbeat_autodiscover_providers_kubernetes_kubernetes.go b/sysutils/beats9/files/patch-libbeat_autodiscover_providers_kubernetes_kubernetes.go new file mode 100644 index 000000000000..de1795f28db2 --- /dev/null +++ b/sysutils/beats9/files/patch-libbeat_autodiscover_providers_kubernetes_kubernetes.go @@ -0,0 +1,11 @@ +--- libbeat/autodiscover/providers/kubernetes/kubernetes.go.orig 2025-09-15 19:57:17 UTC ++++ libbeat/autodiscover/providers/kubernetes/kubernetes.go +@@ -15,7 +15,7 @@ + // specific language governing permissions and limitations + // under the License. + +-//go:build linux || darwin || windows ++//go:build linux || darwin || windows || freebsd + + package kubernetes + diff --git a/sysutils/beats9/files/patch-libbeat_scripts_Makefile b/sysutils/beats9/files/patch-libbeat_scripts_Makefile new file mode 100644 index 000000000000..e84469edfa3e --- /dev/null +++ b/sysutils/beats9/files/patch-libbeat_scripts_Makefile @@ -0,0 +1,26 @@ +--- libbeat/scripts/Makefile.orig 2025-09-15 19:57:17 UTC ++++ libbeat/scripts/Makefile +@@ -47,7 +47,7 @@ GOPACKAGES_STRESSTESTS=$(shell find . -type d \( -name + GOFILES_NOVENDOR = $(shell find . -type f -name '*.go' -not -path "*/vendor/*" 2>/dev/null) + GOFILES_ALL = $(GOFILES) $(shell find $(ES_BEATS) -type f -name '*.go' 2>/dev/null) + GOPACKAGES_STRESSTESTS=$(shell find . -type d \( -name "stress" \) 2>/dev/null) +-SHELL=bash ++SHELL=sh + ES_HOST?=elasticsearch + ES_PORT?=9200 + ES_USER?=beats +@@ -346,12 +346,12 @@ update: python-env fields collect config ## @build Upd + update: python-env fields collect config ## @build Update expects the most recent version of libbeat in the GOPATH + @echo "Updating generated files for ${BEAT_NAME}" + +-ifneq ($(shell [[ $(BEAT_NAME) == libbeat || $(BEAT_NAME) == metricbeat ]] && echo true ),true) ++ifneq ($(shell [[ $(BEAT_NAME) = libbeat || $(BEAT_NAME) = metricbeat ]] && echo true ),true) + mkdir -p include + go run ${INSTALL_FLAG} ${ES_BEATS}/dev-tools/cmd/asset/asset.go -license $(LICENSE) -pkg include -in fields.yml -out include/fields.go $(BEAT_NAME) + endif + +-ifneq ($(shell [[ $(BEAT_NAME) == libbeat || $(BEAT_NAME) == metricbeat ]] && echo true ),true) ++ifneq ($(shell [[ $(BEAT_NAME) = libbeat || $(BEAT_NAME) = metricbeat ]] && echo true ),true) + @# Update docs + @mkdir -p docs + @${PYTHON_ENV_EXE} ${ES_BEATS}/libbeat/scripts/generate_fields_docs.py $(PWD)/fields.yml ${BEAT_TITLE} ${ES_BEATS} diff --git a/sysutils/beats9/files/patch-metricbeat_metricbeat.reference.yml b/sysutils/beats9/files/patch-metricbeat_metricbeat.reference.yml new file mode 100644 index 000000000000..170a0e8a37f6 --- /dev/null +++ b/sysutils/beats9/files/patch-metricbeat_metricbeat.reference.yml @@ -0,0 +1,20 @@ +--- metricbeat/metricbeat.reference.yml.orig 2025-09-15 19:57:17 UTC ++++ metricbeat/metricbeat.reference.yml +@@ -14,7 +14,7 @@ metricbeat.config.modules: + metricbeat.config.modules: + + # Glob pattern for configuration reloading +- path: ${path.config}/modules.d/*.yml ++ path: ${path.config}/metricbeat.modules.d/*.yml + + # Period on which files under path should be checked for changes + reload.period: 10s +@@ -2199,7 +2199,7 @@ output.elasticsearch: + + # The directory from where to read the dashboards. The default is the `kibana` + # folder in the home path. +-#setup.dashboards.directory: ${path.home}/kibana ++#setup.dashboards.directory: %%DATADIR%%/metricbeat/kibana + + # The URL from where to download the dashboard archive. It is used instead of + # the directory if it has a value. diff --git a/sysutils/beats9/files/patch-metricbeat_metricbeat.yml b/sysutils/beats9/files/patch-metricbeat_metricbeat.yml new file mode 100644 index 000000000000..7a8524fee677 --- /dev/null +++ b/sysutils/beats9/files/patch-metricbeat_metricbeat.yml @@ -0,0 +1,33 @@ +--- metricbeat/metricbeat.yml.orig 2025-09-15 19:57:17 UTC ++++ metricbeat/metricbeat.yml +@@ -11,7 +11,7 @@ metricbeat.config.modules: + + metricbeat.config.modules: + # Glob pattern for configuration loading +- path: ${path.config}/modules.d/*.yml ++ path: ${path.config}/metricbeat.modules.d/*.yml + + # Set to true to enable config reloading + reload.enabled: false +@@ -54,6 +54,10 @@ setup.template.settings: + # website. + #setup.dashboards.url: + ++# The directory from where to read the dashboards. The default is the `kibana` ++# folder in the home path. ++#setup.dashboards.directory: %%DATADIR%%/metricbeat/kibana ++ + # =================================== Kibana =================================== + + # Starting with Beats version 6.0.0, the dashboards are loaded via the Kibana API. +@@ -127,8 +131,8 @@ processors: + processors: + - add_host_metadata: ~ + - add_cloud_metadata: ~ +- - add_docker_metadata: ~ +- - add_kubernetes_metadata: ~ ++# - add_docker_metadata: ~ ++# - add_kubernetes_metadata: ~ + + + # ================================== Logging =================================== diff --git a/sysutils/beats9/files/patch-packetbeat_packetbeat.reference.yml b/sysutils/beats9/files/patch-packetbeat_packetbeat.reference.yml new file mode 100644 index 000000000000..47c7bf919f8a --- /dev/null +++ b/sysutils/beats9/files/patch-packetbeat_packetbeat.reference.yml @@ -0,0 +1,11 @@ +--- packetbeat/packetbeat.reference.yml.orig 2025-09-15 19:57:17 UTC ++++ packetbeat/packetbeat.reference.yml +@@ -1712,7 +1712,7 @@ output.elasticsearch: + + # The directory from where to read the dashboards. The default is the `kibana` + # folder in the home path. +-#setup.dashboards.directory: ${path.home}/kibana ++#setup.dashboards.directory: %%DATADIR%%/packetbeat/kibana + + # The URL from where to download the dashboard archive. It is used instead of + # the directory if it has a value. diff --git a/sysutils/beats9/files/patch-packetbeat_packetbeat.yml b/sysutils/beats9/files/patch-packetbeat_packetbeat.yml new file mode 100644 index 000000000000..3189a9f70662 --- /dev/null +++ b/sysutils/beats9/files/patch-packetbeat_packetbeat.yml @@ -0,0 +1,23 @@ +--- packetbeat/packetbeat.yml.orig 2025-09-15 19:57:17 UTC ++++ packetbeat/packetbeat.yml +@@ -25,7 +25,8 @@ + # internal_networks: + # - private + # +-packetbeat.interfaces.device: any ++# On FreeBSD, you must specify particular interface to sniff on ++packetbeat.interfaces.device: em0 + + # Specify the amount of time between polling for changes in the default + # route. This option is only used when one of the default route devices +@@ -173,6 +174,10 @@ setup.template.settings: + # versions, this URL points to the dashboard archive on the artifacts.elastic.co + # website. + #setup.dashboards.url: ++ ++# The directory from where to read the dashboards. The default is the `kibana` ++# folder in the home path. ++#setup.dashboards.directory: %%DATADIR%%/packetbeat/kibana + + # =================================== Kibana =================================== + diff --git a/sysutils/beats9/files/patch-vendor_github.com_elastic_elastic-agent-autodiscover_docker_client.go b/sysutils/beats9/files/patch-vendor_github.com_elastic_elastic-agent-autodiscover_docker_client.go new file mode 100644 index 000000000000..4c27b7b7445b --- /dev/null +++ b/sysutils/beats9/files/patch-vendor_github.com_elastic_elastic-agent-autodiscover_docker_client.go @@ -0,0 +1,13 @@ +--- vendor/github.com/elastic/elastic-agent-autodiscover/docker/client.go.orig 2022-11-25 21:51:45 UTC ++++ vendor/github.com/elastic/elastic-agent-autodiscover/docker/client.go +@@ -15,8 +15,8 @@ + // specific language governing permissions and limitations + // under the License. + +-//go:build linux || darwin || windows +-// +build linux darwin windows ++//go:build linux || darwin || windows || freebsd ++// +build linux darwin windows freebsd + + package docker + diff --git a/sysutils/beats9/files/patch-vendor_github.com_elastic_elastic-agent-autodiscover_docker_watcher.go b/sysutils/beats9/files/patch-vendor_github.com_elastic_elastic-agent-autodiscover_docker_watcher.go new file mode 100644 index 000000000000..b3eb5109493f --- /dev/null +++ b/sysutils/beats9/files/patch-vendor_github.com_elastic_elastic-agent-autodiscover_docker_watcher.go @@ -0,0 +1,13 @@ +--- vendor/github.com/elastic/elastic-agent-autodiscover/docker/watcher.go.orig 2022-11-25 21:51:52 UTC ++++ vendor/github.com/elastic/elastic-agent-autodiscover/docker/watcher.go +@@ -15,8 +15,8 @@ + // specific language governing permissions and limitations + // under the License. + +-//go:build linux || darwin || windows +-// +build linux darwin windows ++//go:build linux || darwin || windows || freebsd ++// +build linux darwin windows freebsd + + package docker + diff --git a/sysutils/beats9/files/patch-vendor_github.com_elastic_elastic-agent-system-metrics_metric_cpu_metrics__freebsd.go b/sysutils/beats9/files/patch-vendor_github.com_elastic_elastic-agent-system-metrics_metric_cpu_metrics__freebsd.go new file mode 100644 index 000000000000..d9305bc9d551 --- /dev/null +++ b/sysutils/beats9/files/patch-vendor_github.com_elastic_elastic-agent-system-metrics_metric_cpu_metrics__freebsd.go @@ -0,0 +1,10 @@ +--- vendor/github.com/elastic/elastic-agent-system-metrics/metric/cpu/metrics_freebsd.go.orig 2025-09-19 18:38:09 UTC ++++ vendor/github.com/elastic/elastic-agent-system-metrics/metric/cpu/metrics_freebsd.go +@@ -56,3 +56,7 @@ func parseCPULine(line string) (CPU, error) { + + return cpuData, errors.Join(errs...) + } ++ ++func scanCPUInfoFile(scanner *bufio.Scanner) ([]CPUInfo, error) { ++ return cpuinfoScanner(scanner) ++} diff --git a/sysutils/beats9/files/patch-vendor_github.com_elastic_elastic-agent-system-metrics_metric_cpu_metrics__procfs__common.go b/sysutils/beats9/files/patch-vendor_github.com_elastic_elastic-agent-system-metrics_metric_cpu_metrics__procfs__common.go new file mode 100644 index 000000000000..287667e0d23a --- /dev/null +++ b/sysutils/beats9/files/patch-vendor_github.com_elastic_elastic-agent-system-metrics_metric_cpu_metrics__procfs__common.go @@ -0,0 +1,20 @@ +--- vendor/github.com/elastic/elastic-agent-system-metrics/metric/cpu/metrics_procfs_common.go.orig 2025-09-19 18:44:04 UTC ++++ vendor/github.com/elastic/elastic-agent-system-metrics/metric/cpu/metrics_procfs_common.go +@@ -32,7 +32,7 @@ func Get(m *Monitor) (CPUMetrics, error) { + func Get(m *Monitor) (CPUMetrics, error) { + procfs := m.Hostfs + +- path := procfs.ResolveHostFS("/proc/stat") ++ path := procfs.ResolveHostFS("/compat/linux/proc/stat") + fd, err := os.Open(path) + defer func() { + _ = fd.Close() +@@ -46,7 +46,7 @@ func Get(m *Monitor) (CPUMetrics, error) { + return CPUMetrics{}, fmt.Errorf("scanning stat file: %w", err) + } + +- cpuInfoPath := procfs.ResolveHostFS("/proc/cpuinfo") ++ cpuInfoPath := procfs.ResolveHostFS("/compat/linux/proc/cpuinfo") + cpuInfoFd, err := os.Open(cpuInfoPath) + if err != nil { + return CPUMetrics{}, fmt.Errorf("opening '%s': %w", cpuInfoPath, err) diff --git a/sysutils/beats9/files/patch-vendor_github.com_elastic_elastic-agent-system-metrics_metric_system_filesystem_fs__unix.go b/sysutils/beats9/files/patch-vendor_github.com_elastic_elastic-agent-system-metrics_metric_system_filesystem_fs__unix.go new file mode 100644 index 000000000000..26fa875e63eb --- /dev/null +++ b/sysutils/beats9/files/patch-vendor_github.com_elastic_elastic-agent-system-metrics_metric_system_filesystem_fs__unix.go @@ -0,0 +1,14 @@ +--- vendor/github.com/elastic/elastic-agent-system-metrics/metric/system/filesystem/filesystem_unix.go.orig 2022-11-25 22:00:53 UTC ++++ vendor/github.com/elastic/elastic-agent-system-metrics/metric/system/filesystem/filesystem_unix.go +@@ -37,9 +37,9 @@ func (fs *FSStat) GetUsage() error { + + fs.Total = opt.UintWith(stat.Blocks).MultUint64OrNone(uint64(stat.Bsize)) + fs.Free = opt.UintWith(stat.Bfree).MultUint64OrNone(uint64(stat.Bsize)) +- fs.Avail = opt.UintWith(stat.Bavail).MultUint64OrNone(uint64(stat.Bsize)) ++ fs.Avail = opt.UintWith(uint64(stat.Bavail)).MultUint64OrNone(uint64(stat.Bsize)) + fs.Files = opt.UintWith(stat.Files) +- fs.FreeFiles = opt.UintWith(stat.Ffree) ++ fs.FreeFiles = opt.UintWith(uint64(stat.Ffree)) + + fs.fillMetrics() + diff --git a/sysutils/beats9/files/patch-vendor_modules.txt b/sysutils/beats9/files/patch-vendor_modules.txt new file mode 100644 index 000000000000..9f3a45039b97 --- /dev/null +++ b/sysutils/beats9/files/patch-vendor_modules.txt @@ -0,0 +1,10 @@ +--- vendor/modules.txt.orig 2025-09-19 18:52:36 UTC ++++ vendor/modules.txt +@@ -1952,6 +1952,7 @@ github.com/elastic/go-sysinfo/providers/darwin + github.com/elastic/go-sysinfo/internal/registry + github.com/elastic/go-sysinfo/providers/aix + github.com/elastic/go-sysinfo/providers/darwin ++github.com/elastic/go-sysinfo/providers/freebsd + github.com/elastic/go-sysinfo/providers/linux + github.com/elastic/go-sysinfo/providers/shared + github.com/elastic/go-sysinfo/providers/windows diff --git a/sysutils/beats9/files/pkg-message.in b/sysutils/beats9/files/pkg-message.in new file mode 100644 index 000000000000..8f59c61118ca --- /dev/null +++ b/sysutils/beats9/files/pkg-message.in @@ -0,0 +1,10 @@ +[ +{ type: install + message: <