summaryrefslogtreecommitdiff
path: root/net-analyzer
diff options
context:
space:
mode:
authorroot <root@alpha.trunkmasters.com>2026-06-12 19:09:37 -0500
committerroot <root@alpha.trunkmasters.com>2026-06-12 19:09:37 -0500
commitb590c8d7572b727d565cc0b8ff660d43569845de (patch)
tree06f7a4102ea4e845df8b66660f252920d52952f9 /net-analyzer
parent24f9cbfc4c34fdb6a6e03311674414e881ceab47 (diff)
downloadbaldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.gz
baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.tar.xz
baldeagleos-repo-b590c8d7572b727d565cc0b8ff660d43569845de.zip
Adding metadata
Diffstat (limited to 'net-analyzer')
-rw-r--r--net-analyzer/2ping/2ping-4.5.1-r1.ebuild34
-rw-r--r--net-analyzer/2ping/Manifest1
-rw-r--r--net-analyzer/2ping/files/2pingd35
-rw-r--r--net-analyzer/2ping/files/2pingd.conf2
-rw-r--r--net-analyzer/2ping/metadata.xml9
-rw-r--r--net-analyzer/alive/Manifest1
-rw-r--r--net-analyzer/alive/alive-2.0.5-r100.ebuild33
-rw-r--r--net-analyzer/alive/files/alive-2.0.2-ping-test.patch14
-rw-r--r--net-analyzer/alive/metadata.xml9
-rw-r--r--net-analyzer/apinger/Manifest1
-rw-r--r--net-analyzer/apinger/apinger-0.6.1.ebuild41
-rw-r--r--net-analyzer/apinger/files/apinger-0.4.1-fno-common.patch11
-rw-r--r--net-analyzer/apinger/files/apinger-0.4.1-stray-backslash.patch13
-rw-r--r--net-analyzer/apinger/metadata.xml9
-rw-r--r--net-analyzer/argus-clients/Manifest1
-rw-r--r--net-analyzer/argus-clients/argus-clients-3.0.8.4.ebuild76
-rw-r--r--net-analyzer/argus-clients/files/argus-clients-3.0.4.1-disable-tcp-wrappers-automagic.patch23
-rw-r--r--net-analyzer/argus-clients/files/argus-clients-3.0.7.21-curses-readline.patch21
-rw-r--r--net-analyzer/argus-clients/files/argus-clients-3.0.8.2-ar.patch31
-rw-r--r--net-analyzer/argus-clients/files/argus-clients-3.0.8.2-curses-readline.patch21
-rw-r--r--net-analyzer/argus-clients/files/argus-clients-3.0.8.2-my_bool.patch42
-rw-r--r--net-analyzer/argus-clients/files/argus-clients-3.0.8.3-configure-clang16.patch41
-rw-r--r--net-analyzer/argus-clients/files/argus-clients-3.0.8.4-autoconf-2.70.patch55
-rw-r--r--net-analyzer/argus-clients/metadata.xml13
-rw-r--r--net-analyzer/argus/Manifest1
-rw-r--r--net-analyzer/argus/argus-3.0.8.3-r2.ebuild99
-rw-r--r--net-analyzer/argus/files/argus-3.0.5-Makefile.patch20
-rw-r--r--net-analyzer/argus/files/argus-3.0.7.3-DLT_IPNET.patch17
-rw-r--r--net-analyzer/argus/files/argus-3.0.8.1-disable-tcp-wrappers-automagic.patch22
-rw-r--r--net-analyzer/argus/files/argus-3.0.8.3-ar.patch11
-rw-r--r--net-analyzer/argus/files/argus-3.0.8.3-as-needed.patch11
-rw-r--r--net-analyzer/argus/files/argus-3.0.8.3-configure-clang16.patch41
-rw-r--r--net-analyzer/argus/files/argus.initd19
-rw-r--r--net-analyzer/argus/metadata.xml9
-rw-r--r--net-analyzer/arp-scan/Manifest2
-rw-r--r--net-analyzer/arp-scan/arp-scan-1.10.0.ebuild34
-rw-r--r--net-analyzer/arp-scan/arp-scan-1.9.7.ebuild26
-rw-r--r--net-analyzer/arp-scan/files/arp-scan-1.10.0-dont-clobber-fortify-source.patch25
-rw-r--r--net-analyzer/arp-scan/metadata.xml9
-rw-r--r--net-analyzer/arping/Manifest2
-rw-r--r--net-analyzer/arping/arping-2.25.ebuild56
-rw-r--r--net-analyzer/arping/arping-2.26.ebuild56
-rw-r--r--net-analyzer/arping/arping-9999.ebuild56
-rw-r--r--net-analyzer/arping/metadata.xml9
-rw-r--r--net-analyzer/arpoison/Manifest1
-rw-r--r--net-analyzer/arpoison/arpoison-0.7-r1.ebuild28
-rw-r--r--net-analyzer/arpoison/arpoison-0.7.ebuild35
-rw-r--r--net-analyzer/arpoison/metadata.xml9
-rw-r--r--net-analyzer/arpon/Manifest1
-rw-r--r--net-analyzer/arpon/arpon-3.0-r1.ebuild43
-rw-r--r--net-analyzer/arpon/arpon-3.0.ebuild42
-rw-r--r--net-analyzer/arpon/files/arpon-3.0-CFLAGS.patch17
-rw-r--r--net-analyzer/arpon/files/arpon-3.0-cmake4.patch13
-rw-r--r--net-analyzer/arpon/files/arpon-3.0-gentoo.patch146
-rw-r--r--net-analyzer/arpon/files/arpon.confd-34
-rw-r--r--net-analyzer/arpon/files/arpon.initd-321
-rw-r--r--net-analyzer/arpon/metadata.xml8
-rw-r--r--net-analyzer/arptools/Manifest1
-rw-r--r--net-analyzer/arptools/arptools-1.0.2-r1.ebuild20
-rw-r--r--net-analyzer/arptools/metadata.xml12
-rw-r--r--net-analyzer/arpwatch/Manifest5
-rw-r--r--net-analyzer/arpwatch/arpwatch-3.5.ebuild83
-rw-r--r--net-analyzer/arpwatch/arpwatch-3.6.ebuild83
-rw-r--r--net-analyzer/arpwatch/arpwatch-3.7.ebuild83
-rw-r--r--net-analyzer/arpwatch/arpwatch-3.8.ebuild104
-rw-r--r--net-analyzer/arpwatch/files/0001-Fix-configure-check-for-time.h.patch36
-rw-r--r--net-analyzer/arpwatch/files/0002-Avoid-using-undocumented-internals-for-DNS.patch35
-rw-r--r--net-analyzer/arpwatch/files/0003-Drop-deprecated-resolver-option.patch17
-rw-r--r--net-analyzer/arpwatch/files/0004-Use-correct-datadir.patch14
-rw-r--r--net-analyzer/arpwatch/files/0005-Use-correct-paths-in-update-ethercodes.patch30
-rw-r--r--net-analyzer/arpwatch/files/arpwatch.conf16
-rw-r--r--net-analyzer/arpwatch/files/arpwatch.confd-r218
-rw-r--r--net-analyzer/arpwatch/files/arpwatch.initd-r233
-rw-r--r--net-analyzer/arpwatch/files/arpwatch.service16
-rw-r--r--net-analyzer/arpwatch/metadata.xml17
-rw-r--r--net-analyzer/authforce/Manifest1
-rw-r--r--net-analyzer/authforce/authforce-0.9.9-r4.ebuild50
-rw-r--r--net-analyzer/authforce/files/authforce-0.9.9-Include-stdlib.h-for-free.patch16
-rw-r--r--net-analyzer/authforce/files/authforce-0.9.9-curl.patch10
-rw-r--r--net-analyzer/authforce/files/authforce-0.9.9-fix-parsing-of-sample-config-file.patch54
-rw-r--r--net-analyzer/authforce/files/authforce-0.9.9-fix-submit_dummy_list-re-declaration.patch25
-rw-r--r--net-analyzer/authforce/files/authforce-0.9.9-fixes-for-Wall-warnings.patch111
-rw-r--r--net-analyzer/authforce/files/authforce-0.9.9-locale.patch15
-rw-r--r--net-analyzer/authforce/metadata.xml5
-rw-r--r--net-analyzer/bandwhich/Manifest288
-rw-r--r--net-analyzer/bandwhich/bandwhich-0.23.1.ebuild344
-rw-r--r--net-analyzer/bandwhich/metadata.xml17
-rw-r--r--net-analyzer/barnyard/Manifest2
-rw-r--r--net-analyzer/barnyard/barnyard-0.2.0-r7.ebuild96
-rw-r--r--net-analyzer/barnyard/files/barnyard.confd19
-rw-r--r--net-analyzer/barnyard/files/barnyard.rc629
-rw-r--r--net-analyzer/barnyard/metadata.xml13
-rw-r--r--net-analyzer/barnyard2/Manifest1
-rw-r--r--net-analyzer/barnyard2/barnyard2-1.13.ebuild82
-rw-r--r--net-analyzer/barnyard2/files/barnyard2-1.13-Werror.patch17
-rw-r--r--net-analyzer/barnyard2/files/barnyard2-1.13-free.patch11
-rw-r--r--net-analyzer/barnyard2/files/barnyard2-1.13-libdir.patch112
-rw-r--r--net-analyzer/barnyard2/files/barnyard2-1.13-my_bool.patch11
-rw-r--r--net-analyzer/barnyard2/files/barnyard2-1.13-odbc.patch41
-rw-r--r--net-analyzer/barnyard2/files/barnyard2-1.13-pcap-1.9.0.patch38
-rw-r--r--net-analyzer/barnyard2/files/barnyard2.confd36
-rw-r--r--net-analyzer/barnyard2/files/barnyard2.initd29
-rw-r--r--net-analyzer/barnyard2/metadata.xml30
-rw-r--r--net-analyzer/bmon/Manifest1
-rw-r--r--net-analyzer/bmon/bmon-4.0-r1.ebuild43
-rw-r--r--net-analyzer/bmon/bmon-9999.ebuild41
-rw-r--r--net-analyzer/bmon/files/bmon-3.6-docdir-examples.patch10
-rw-r--r--net-analyzer/bmon/metadata.xml9
-rw-r--r--net-analyzer/boreas/Manifest1
-rw-r--r--net-analyzer/boreas/boreas-22.5.0.ebuild46
-rw-r--r--net-analyzer/boreas/files/boreas-22.5.0-fix-leading-withespaces-ldflags-libpcap.patch14
-rw-r--r--net-analyzer/boreas/metadata.xml18
-rw-r--r--net-analyzer/braa/Manifest1
-rw-r--r--net-analyzer/braa/braa-0.82-r1.ebuild27
-rw-r--r--net-analyzer/braa/files/braa-0.8-gentoo.diff24
-rw-r--r--net-analyzer/braa/metadata.xml9
-rw-r--r--net-analyzer/bwbar/Manifest1
-rw-r--r--net-analyzer/bwbar/bwbar-1.2.3.ebuild24
-rw-r--r--net-analyzer/bwbar/files/bwbar-1.2.3-libpng15.patch19
-rw-r--r--net-analyzer/bwbar/metadata.xml9
-rw-r--r--net-analyzer/bwm-ng/Manifest1
-rw-r--r--net-analyzer/bwm-ng/bwm-ng-0.6.3.ebuild38
-rw-r--r--net-analyzer/bwm-ng/files/bwm-ng-0.6.2-tinfo.patch10
-rw-r--r--net-analyzer/bwm-ng/metadata.xml16
-rw-r--r--net-analyzer/bwmon/Manifest1
-rw-r--r--net-analyzer/bwmon/bwmon-1.3-r2.ebuild34
-rw-r--r--net-analyzer/bwmon/files/bwmon-1.3-build.patch22
-rw-r--r--net-analyzer/bwmon/files/bwmon-1.3-overflow.patch20
-rw-r--r--net-analyzer/bwmon/files/bwmon-1.3-tinfo.patch11
-rw-r--r--net-analyzer/bwmon/files/bwmon-1.3-typo-fix.patch11
-rw-r--r--net-analyzer/bwmon/metadata.xml9
-rw-r--r--net-analyzer/bwping/Manifest2
-rw-r--r--net-analyzer/bwping/bwping-2.5.ebuild16
-rw-r--r--net-analyzer/bwping/bwping-2.6.ebuild16
-rw-r--r--net-analyzer/bwping/metadata.xml23
-rw-r--r--net-analyzer/cacti-spine/Manifest1
-rw-r--r--net-analyzer/cacti-spine/cacti-spine-1.2.20.ebuild45
-rw-r--r--net-analyzer/cacti-spine/cacti-spine-9999.ebuild43
-rw-r--r--net-analyzer/cacti-spine/files/cacti-spine-0.8.8g-net-snmp.patch19
-rw-r--r--net-analyzer/cacti-spine/metadata.xml17
-rw-r--r--net-analyzer/cacti/Manifest1
-rw-r--r--net-analyzer/cacti/cacti-1.2.26.ebuild49
-rw-r--r--net-analyzer/cacti/files/postinstall-en.txt62
-rw-r--r--net-analyzer/cacti/metadata.xml25
-rw-r--r--net-analyzer/calamaris/Manifest2
-rw-r--r--net-analyzer/calamaris/calamaris-2.99.4.5.ebuild37
-rw-r--r--net-analyzer/calamaris/calamaris-2.99.4.7.ebuild37
-rw-r--r--net-analyzer/calamaris/metadata.xml9
-rw-r--r--net-analyzer/cbm/Manifest2
-rw-r--r--net-analyzer/cbm/cbm-0.3.2.ebuild30
-rw-r--r--net-analyzer/cbm/cbm-0.4.ebuild30
-rw-r--r--net-analyzer/cbm/files/cbm-0.2-tinfo.patch21
-rw-r--r--net-analyzer/cbm/metadata.xml15
-rw-r--r--net-analyzer/chronograf/Manifest3
-rw-r--r--net-analyzer/chronograf/chronograf-1.8.5.ebuild67
-rw-r--r--net-analyzer/chronograf/files/chronograf.confd16
-rw-r--r--net-analyzer/chronograf/files/chronograf.rc22
-rw-r--r--net-analyzer/chronograf/metadata.xml9
-rw-r--r--net-analyzer/cloudshark/Manifest1
-rw-r--r--net-analyzer/cloudshark/cloudshark-1.0.4-r1.ebuild45
-rw-r--r--net-analyzer/cloudshark/files/cs_log_dir.patch13
-rw-r--r--net-analyzer/cloudshark/metadata.xml9
-rw-r--r--net-analyzer/cnet/Manifest1
-rw-r--r--net-analyzer/cnet/cnet-3.3.4.ebuild53
-rw-r--r--net-analyzer/cnet/files/cnet-3.3.1-tcl.patch13
-rw-r--r--net-analyzer/cnet/files/cnet-3.3.4-gentoo.patch161
-rw-r--r--net-analyzer/cnet/metadata.xml9
-rw-r--r--net-analyzer/cutter/Manifest1
-rw-r--r--net-analyzer/cutter/cutter-1.04.ebuild36
-rw-r--r--net-analyzer/cutter/files/cutter-1.03-debian.patch182
-rw-r--r--net-analyzer/cutter/files/cutter-1.04-musl-if-ether.patch12
-rw-r--r--net-analyzer/cutter/metadata.xml9
-rw-r--r--net-analyzer/darkstat/Manifest1
-rw-r--r--net-analyzer/darkstat/darkstat-3.0.721-r1.ebuild72
-rw-r--r--net-analyzer/darkstat/darkstat-9999999.ebuild80
-rw-r--r--net-analyzer/darkstat/files/darkstat-3.0.719-strncpy-off-by-one.patch11
-rw-r--r--net-analyzer/darkstat/files/darkstat-confd27
-rw-r--r--net-analyzer/darkstat/files/darkstat-initd58
-rw-r--r--net-analyzer/darkstat/metadata.xml14
-rw-r--r--net-analyzer/dhcp_probe/Manifest1
-rw-r--r--net-analyzer/dhcp_probe/dhcp_probe-1.3.1-r1.ebuild50
-rw-r--r--net-analyzer/dhcp_probe/files/dhcp_probe-1.3.1-fix-configure-CPP.patch26
-rw-r--r--net-analyzer/dhcp_probe/files/dhcp_probe-1.3.1-gcc15.patch14
-rw-r--r--net-analyzer/dhcp_probe/files/dhcp_probe-1.3.1-respect-AR.patch10
-rw-r--r--net-analyzer/dhcp_probe/files/dhcp_probe.confd9
-rw-r--r--net-analyzer/dhcp_probe/files/dhcp_probe.initd47
-rw-r--r--net-analyzer/dhcp_probe/files/dhcp_probe_mail23
-rw-r--r--net-analyzer/dhcp_probe/metadata.xml9
-rw-r--r--net-analyzer/dhcpdump/Manifest1
-rw-r--r--net-analyzer/dhcpdump/dhcpdump-1.9.ebuild30
-rw-r--r--net-analyzer/dhcpdump/metadata.xml13
-rw-r--r--net-analyzer/dnsmap/Manifest1
-rw-r--r--net-analyzer/dnsmap/dnsmap-0.36.ebuild29
-rw-r--r--net-analyzer/dnsmap/metadata.xml8
-rw-r--r--net-analyzer/dnstracer/Manifest1
-rw-r--r--net-analyzer/dnstracer/dnstracer-1.10.ebuild32
-rw-r--r--net-analyzer/dnstracer/files/dnstracer-1.9-argv0.patch11
-rw-r--r--net-analyzer/dnstracer/metadata.xml9
-rw-r--r--net-analyzer/driftnet/Manifest3
-rw-r--r--net-analyzer/driftnet/driftnet-1.3.0.ebuild71
-rw-r--r--net-analyzer/driftnet/driftnet-1.5.0.ebuild78
-rw-r--r--net-analyzer/driftnet/driftnet-1.6.0.ebuild78
-rw-r--r--net-analyzer/driftnet/files/driftnet-1.3.0-CFLAGS.patch21
-rw-r--r--net-analyzer/driftnet/files/driftnet-1.3.0-gtk.patch13
-rw-r--r--net-analyzer/driftnet/files/driftnet-1.3.0-libwebsocket_compat.patch31
-rw-r--r--net-analyzer/driftnet/files/driftnet-1.3.0-musl-stdint.patch113
-rw-r--r--net-analyzer/driftnet/files/driftnet-1.5.0-CFLAGS.patch15
-rw-r--r--net-analyzer/driftnet/files/driftnet-1.5.0-fix_test.patch22
-rw-r--r--net-analyzer/driftnet/files/driftnet-1.5.0-libwebsocket_compat.patch36
-rw-r--r--net-analyzer/driftnet/files/driftnet-1.5.0-missing_else.patch17
-rw-r--r--net-analyzer/driftnet/files/driftnet-1.5.0-use_uint.patch89
-rw-r--r--net-analyzer/driftnet/files/driftnet-1.6.0-CFLAGS.patch15
-rw-r--r--net-analyzer/driftnet/metadata.xml12
-rw-r--r--net-analyzer/dsniff/Manifest2
-rw-r--r--net-analyzer/dsniff/dsniff-2.4_beta1_p34.ebuild83
-rw-r--r--net-analyzer/dsniff/files/dsniff-2.4_beta1_p30-httppostfix.patch21
-rw-r--r--net-analyzer/dsniff/files/dsniff-2.4_beta1_p30-libdir-configure.patch105
-rw-r--r--net-analyzer/dsniff/files/dsniff-2.4_beta1_p30-respect-AR.patch22
-rw-r--r--net-analyzer/dsniff/metadata.xml18
-rw-r--r--net-analyzer/etherape/Manifest2
-rw-r--r--net-analyzer/etherape/etherape-0.9.20.ebuild26
-rw-r--r--net-analyzer/etherape/etherape-0.9.21.ebuild26
-rw-r--r--net-analyzer/etherape/metadata.xml17
-rw-r--r--net-analyzer/ethloop/Manifest1
-rw-r--r--net-analyzer/ethloop/ethloop-10-r4.ebuild28
-rw-r--r--net-analyzer/ethloop/files/ethloop-10-misc.patch65
-rw-r--r--net-analyzer/ethloop/metadata.xml9
-rw-r--r--net-analyzer/ettercap/Manifest1
-rw-r--r--net-analyzer/ettercap/ettercap-0.8.4.1.ebuild93
-rw-r--r--net-analyzer/ettercap/ettercap-9999.ebuild93
-rw-r--r--net-analyzer/ettercap/metadata.xml20
-rw-r--r--net-analyzer/fail2ban/Manifest1
-rw-r--r--net-analyzer/fail2ban/fail2ban-1.1.0-r6.ebuild153
-rw-r--r--net-analyzer/fail2ban/fail2ban-1.1.0-r7.ebuild154
-rw-r--r--net-analyzer/fail2ban/fail2ban-9999.ebuild148
-rw-r--r--net-analyzer/fail2ban/files/fail2ban-0.11.2-adjust-apache-logs-paths.patch29
-rw-r--r--net-analyzer/fail2ban/files/fail2ban-1.0.2-umask-tests.patch45
-rw-r--r--net-analyzer/fail2ban/files/fail2ban-1.1.0-openrc-nftables.patch25
-rw-r--r--net-analyzer/fail2ban/files/fail2ban-1.1.0-openrc-use-supervise-daemon.patch23
-rw-r--r--net-analyzer/fail2ban/files/fail2ban-1.1.0-openssh-9.8-fixups.patch40
-rw-r--r--net-analyzer/fail2ban/files/fail2ban-1.1.0-openssh-9.8.patch75
-rw-r--r--net-analyzer/fail2ban/files/fail2ban-1.1.0-postfix-ddos.patch38
-rw-r--r--net-analyzer/fail2ban/files/fail2ban-1.1.0-postfix-pref.patch32
-rw-r--r--net-analyzer/fail2ban/files/fail2ban-1.1.0-sshd-ddos.patch33
-rw-r--r--net-analyzer/fail2ban/files/fail2ban-1.1.0-systemd-order.patch14
-rw-r--r--net-analyzer/fail2ban/files/fail2ban-tmpfiles.conf1
-rw-r--r--net-analyzer/fail2ban/metadata.xml13
-rw-r--r--net-analyzer/firewalk/Manifest1
-rw-r--r--net-analyzer/firewalk/files/firewalk-5.0-gcc3.4.diff11
-rw-r--r--net-analyzer/firewalk/files/firewalk-5.0-signal.patch36
-rw-r--r--net-analyzer/firewalk/files/firewalk-5.0-usage.diff22
-rw-r--r--net-analyzer/firewalk/firewalk-5.0-r3.ebuild42
-rw-r--r--net-analyzer/firewalk/metadata.xml9
-rw-r--r--net-analyzer/flow-tools/Manifest1
-rw-r--r--net-analyzer/flow-tools/files/flow-tools-0.68.5.1-fno-common.patch42
-rw-r--r--net-analyzer/flow-tools/files/flow-tools-0.68.5.1-openssl11.patch31
-rw-r--r--net-analyzer/flow-tools/files/flow-tools-0.68.5.1-run.patch22
-rw-r--r--net-analyzer/flow-tools/files/flow-tools-0.68.6-c99-c23.patch41
-rw-r--r--net-analyzer/flow-tools/files/flow-tools-0.68.6-lto.patch31
-rw-r--r--net-analyzer/flow-tools/files/flow-tools-0.68.6-mysql.patch15
-rw-r--r--net-analyzer/flow-tools/files/flowcapture.confd51
-rw-r--r--net-analyzer/flow-tools/files/flowcapture.initd30
-rw-r--r--net-analyzer/flow-tools/files/linkme15
-rw-r--r--net-analyzer/flow-tools/flow-tools-0.68.6-r2.ebuild95
-rw-r--r--net-analyzer/flow-tools/metadata.xml16
-rw-r--r--net-analyzer/flowgrind/Manifest1
-rw-r--r--net-analyzer/flowgrind/flowgrind-0.8.2.ebuild40
-rw-r--r--net-analyzer/flowgrind/metadata.xml13
-rw-r--r--net-analyzer/fping/Manifest4
-rw-r--r--net-analyzer/fping/files/fping-5.1-c99-musl.patch39
-rw-r--r--net-analyzer/fping/fping-5.1-r1.ebuild35
-rw-r--r--net-analyzer/fping/fping-5.2.ebuild39
-rw-r--r--net-analyzer/fping/fping-5.3.ebuild39
-rw-r--r--net-analyzer/fping/fping-5.4.ebuild39
-rw-r--r--net-analyzer/fping/metadata.xml9
-rw-r--r--net-analyzer/fprobe/Manifest1
-rw-r--r--net-analyzer/fprobe/files/conf.d-fprobe-r172
-rw-r--r--net-analyzer/fprobe/files/fprobe-1.1-autoconf.patch315
-rw-r--r--net-analyzer/fprobe/files/fprobe-1.1-pidfile-sanity.patch47
-rw-r--r--net-analyzer/fprobe/files/fprobe-1.1-setgroups.patch15
-rw-r--r--net-analyzer/fprobe/files/init.d-fprobe-r140
-rw-r--r--net-analyzer/fprobe/fprobe-1.1-r6.ebuild46
-rw-r--r--net-analyzer/fprobe/fprobe-1.1-r7.ebuild47
-rw-r--r--net-analyzer/fprobe/metadata.xml12
-rw-r--r--net-analyzer/ftester/Manifest1
-rw-r--r--net-analyzer/ftester/ftester-1.0.ebuild26
-rw-r--r--net-analyzer/ftester/metadata.xml9
-rw-r--r--net-analyzer/fwlogwatch/Manifest1
-rw-r--r--net-analyzer/fwlogwatch/fwlogwatch-1.5-r1.ebuild97
-rw-r--r--net-analyzer/fwlogwatch/metadata.xml9
-rw-r--r--net-analyzer/gnome-nettool/Manifest1
-rw-r--r--net-analyzer/gnome-nettool/files/42.0-meson-drop-unused-positional-arguments.patch38
-rw-r--r--net-analyzer/gnome-nettool/gnome-nettool-42.0-r1.ebuild51
-rw-r--r--net-analyzer/gnome-nettool/gnome-nettool-42.0.ebuild51
-rw-r--r--net-analyzer/gnome-nettool/metadata.xml9
-rw-r--r--net-analyzer/goaccess/Manifest2
-rw-r--r--net-analyzer/goaccess/files/goaccess.confd8
-rw-r--r--net-analyzer/goaccess/files/goaccess.initd15
-rw-r--r--net-analyzer/goaccess/files/goaccess.service15
-rw-r--r--net-analyzer/goaccess/files/goaccess.tmpfile1
-rw-r--r--net-analyzer/goaccess/goaccess-1.8.1.ebuild71
-rw-r--r--net-analyzer/goaccess/goaccess-1.9.3.ebuild69
-rw-r--r--net-analyzer/goaccess/goaccess-9999.ebuild71
-rw-r--r--net-analyzer/goaccess/metadata.xml24
-rw-r--r--net-analyzer/gr-fosphor/Manifest1
-rw-r--r--net-analyzer/gr-fosphor/files/gr-fosphor-0.0_p20200131-htmldir.patch8
-rw-r--r--net-analyzer/gr-fosphor/gr-fosphor-0.0_p20260330.ebuild74
-rw-r--r--net-analyzer/gr-fosphor/gr-fosphor-9999.ebuild70
-rw-r--r--net-analyzer/gr-fosphor/metadata.xml12
-rw-r--r--net-analyzer/greenbone-feed-sync/Manifest2
-rw-r--r--net-analyzer/greenbone-feed-sync/files/greenbone-feed-sync.cron7
-rw-r--r--net-analyzer/greenbone-feed-sync/files/greenbone-feed-sync.service11
-rw-r--r--net-analyzer/greenbone-feed-sync/files/greenbone-feed-sync.timer9
-rw-r--r--net-analyzer/greenbone-feed-sync/greenbone-feed-sync-25.1.0.ebuild102
-rw-r--r--net-analyzer/greenbone-feed-sync/greenbone-feed-sync-25.2.0.ebuild102
-rw-r--r--net-analyzer/greenbone-feed-sync/metadata.xml20
-rw-r--r--net-analyzer/gsa/Manifest4
-rw-r--r--net-analyzer/gsa/gsa-26.0.0.ebuild49
-rw-r--r--net-analyzer/gsa/gsa-26.10.1.ebuild49
-rw-r--r--net-analyzer/gsa/metadata.xml18
-rw-r--r--net-analyzer/gsad/Manifest2
-rw-r--r--net-analyzer/gsad/files/gsad-22.init35
-rw-r--r--net-analyzer/gsad/files/gsad-daemon.conf19
-rw-r--r--net-analyzer/gsad/files/gsad.service.conf2
-rw-r--r--net-analyzer/gsad/gsad-24.14.2.ebuild114
-rw-r--r--net-analyzer/gsad/gsad-24.5.4.ebuild114
-rw-r--r--net-analyzer/gsad/metadata.xml13
-rw-r--r--net-analyzer/gspoof/Manifest1
-rw-r--r--net-analyzer/gspoof/files/gspoof-3.2-fno-common.patch221
-rw-r--r--net-analyzer/gspoof/files/gspoof-3.2-icon.patch71
-rw-r--r--net-analyzer/gspoof/files/gspoof-3.2-libdir.patch17
-rw-r--r--net-analyzer/gspoof/files/gspoof-def-values.patch29
-rw-r--r--net-analyzer/gspoof/gspoof-3.2-r3.ebuild53
-rw-r--r--net-analyzer/gspoof/metadata.xml5
-rw-r--r--net-analyzer/gvm-libs/Manifest2
-rw-r--r--net-analyzer/gvm-libs/files/gvm-libs-22.28.0-add-missing-link-to-cjson.patch13
-rw-r--r--net-analyzer/gvm-libs/files/gvm-libs-22.28.0-remove-unworking-tests.patch206
-rw-r--r--net-analyzer/gvm-libs/files/gvm-libs-22.35.4-remove-unworking-tests.patch202
-rw-r--r--net-analyzer/gvm-libs/gvm-libs-22.28.0.ebuild132
-rw-r--r--net-analyzer/gvm-libs/gvm-libs-22.35.4.ebuild130
-rw-r--r--net-analyzer/gvm-libs/metadata.xml18
-rw-r--r--net-analyzer/gvm-tools/Manifest2
-rw-r--r--net-analyzer/gvm-tools/gvm-tools-25.4.0.ebuild23
-rw-r--r--net-analyzer/gvm-tools/gvm-tools-25.4.5.ebuild23
-rw-r--r--net-analyzer/gvm-tools/metadata.xml21
-rw-r--r--net-analyzer/gvm/files/gvm.init25
-rw-r--r--net-analyzer/gvm/files/gvm.target5
-rw-r--r--net-analyzer/gvm/gvm-22.4-r1.ebuild41
-rw-r--r--net-analyzer/gvm/gvm-25.5.0.ebuild44
-rw-r--r--net-analyzer/gvm/metadata.xml23
-rw-r--r--net-analyzer/gvmd/Manifest2
-rw-r--r--net-analyzer/gvmd/files/gvmd-22.init24
-rw-r--r--net-analyzer/gvmd/files/gvmd-26.18.1-remove-unworking-tests.patch35
-rw-r--r--net-analyzer/gvmd/files/gvmd-26.3.0-remove-unworking-tests.patch12
-rw-r--r--net-analyzer/gvmd/files/gvmd-daemon-22.conf32
-rw-r--r--net-analyzer/gvmd/files/gvmd.service.conf27
-rw-r--r--net-analyzer/gvmd/gvmd-26.18.1.ebuild140
-rw-r--r--net-analyzer/gvmd/gvmd-26.3.0.ebuild140
-rw-r--r--net-analyzer/gvmd/metadata.xml20
-rw-r--r--net-analyzer/hexinject/Manifest1
-rw-r--r--net-analyzer/hexinject/files/hexinject-1.6-fix-build-system.patch22
-rw-r--r--net-analyzer/hexinject/hexinject-1.6-r2.ebuild33
-rw-r--r--net-analyzer/hexinject/metadata.xml16
-rw-r--r--net-analyzer/hping/Manifest1
-rw-r--r--net-analyzer/hping/files/hping-3_pre20051105-libtcl.patch16
-rw-r--r--net-analyzer/hping/files/hping-3_pre20051105-tcl.patch11
-rw-r--r--net-analyzer/hping/files/hping-3_pre20051105-tclsh-proper-escaping.patch26
-rw-r--r--net-analyzer/hping/files/hping-3_pre20141226-compile.patch31
-rw-r--r--net-analyzer/hping/files/hping-3_pre20141226-fno-common.patch11
-rw-r--r--net-analyzer/hping/files/hping-3_pre20141226-hping2-2-hping.patch240
-rw-r--r--net-analyzer/hping/files/hping-3_pre20141226-indent.patch13
-rw-r--r--net-analyzer/hping/files/hping-3_pre20141226-pcap-bpf.patch24
-rw-r--r--net-analyzer/hping/files/hping-3_pre20141226-scan-overflow.patch11
-rw-r--r--net-analyzer/hping/files/hping-3_pre20141226-unused-but-set.patch45
-rw-r--r--net-analyzer/hping/hping-3_pre20141226.ebuild65
-rw-r--r--net-analyzer/hping/metadata.xml9
-rw-r--r--net-analyzer/httping/Manifest1
-rw-r--r--net-analyzer/httping/files/httping-2.2.1-flags.patch12
-rw-r--r--net-analyzer/httping/files/httping-2.9-c99.patch35
-rw-r--r--net-analyzer/httping/httping-2.9-r1.ebuild79
-rw-r--r--net-analyzer/httping/metadata.xml12
-rw-r--r--net-analyzer/hydra/Manifest1
-rw-r--r--net-analyzer/hydra/files/hydra-9.5-no-clobber-fortify-source.patch14
-rw-r--r--net-analyzer/hydra/files/hydra-9.6-c23.patch42
-rw-r--r--net-analyzer/hydra/hydra-9.6.ebuild132
-rw-r--r--net-analyzer/hydra/metadata.xml16
-rw-r--r--net-analyzer/ibmonitor/Manifest1
-rw-r--r--net-analyzer/ibmonitor/ibmonitor-1.4-r1.ebuild20
-rw-r--r--net-analyzer/ibmonitor/metadata.xml9
-rw-r--r--net-analyzer/icinga2/Manifest2
-rw-r--r--net-analyzer/icinga2/files/icinga2-boost-1.89.patch23
-rw-r--r--net-analyzer/icinga2/files/icinga2.initd-381
-rw-r--r--net-analyzer/icinga2/icinga2-2.15.0-r2.ebuild159
-rw-r--r--net-analyzer/icinga2/icinga2-2.16.0.ebuild156
-rw-r--r--net-analyzer/icinga2/icinga2-9999.ebuild151
-rw-r--r--net-analyzer/icinga2/metadata.xml16
-rw-r--r--net-analyzer/ifmetric/Manifest1
-rw-r--r--net-analyzer/ifmetric/files/ifmetric-0.3-replybuf.patch11
-rw-r--r--net-analyzer/ifmetric/files/ifmetric-0.3-ul.patch11
-rw-r--r--net-analyzer/ifmetric/ifmetric-0.3-r4.ebuild36
-rw-r--r--net-analyzer/ifmetric/metadata.xml9
-rw-r--r--net-analyzer/ifstat/Manifest1
-rw-r--r--net-analyzer/ifstat/files/ifstat-1.1-hardened.patch11
-rw-r--r--net-analyzer/ifstat/files/ifstat-1.1-make.patch122
-rw-r--r--net-analyzer/ifstat/ifstat-1.1-r2.ebuild33
-rw-r--r--net-analyzer/ifstat/metadata.xml9
-rw-r--r--net-analyzer/ifstatus/Manifest1
-rw-r--r--net-analyzer/ifstatus/files/ifstatus-2.0.0-tinfo.patch11
-rw-r--r--net-analyzer/ifstatus/ifstatus-2.0.0.ebuild40
-rw-r--r--net-analyzer/ifstatus/metadata.xml9
-rw-r--r--net-analyzer/iftop/Manifest1
-rw-r--r--net-analyzer/iftop/files/iftop-1.0_pre4-Makefile.am.patch11
-rw-r--r--net-analyzer/iftop/files/iftop-1.0_pre4-allow-scales-beyond-1gbps.patch43
-rw-r--r--net-analyzer/iftop/files/iftop-1.0_pre4-configure.ac.patch278
-rw-r--r--net-analyzer/iftop/files/iftop-1.0_pre4-fix-MAC-formatting.patch22
-rw-r--r--net-analyzer/iftop/files/iftop-1.0_pre4-fix_c23.patch13
-rw-r--r--net-analyzer/iftop/files/iftop-1.0_pre4-fno-common.patch56
-rw-r--r--net-analyzer/iftop/files/iftop-1.0_pre4-ip6.arpa.patch48
-rw-r--r--net-analyzer/iftop/files/iftop-1.0_pre4-tsent-set-but-not-used.patch12
-rw-r--r--net-analyzer/iftop/files/iftoprc59
-rw-r--r--net-analyzer/iftop/iftop-1.0_pre4-r5.ebuild50
-rw-r--r--net-analyzer/iftop/metadata.xml9
-rw-r--r--net-analyzer/ike-scan/Manifest1
-rw-r--r--net-analyzer/ike-scan/files/ike-scan-1.9.5-clang-16.patch74
-rw-r--r--net-analyzer/ike-scan/files/ike-scan-1.9.5-musl-getopt.patch14
-rw-r--r--net-analyzer/ike-scan/files/ike-scan-1.9.5-openssl-libdir.patch55
-rw-r--r--net-analyzer/ike-scan/ike-scan-1.9.5.ebuild48
-rw-r--r--net-analyzer/ike-scan/metadata.xml9
-rw-r--r--net-analyzer/ipaudit/Manifest1
-rw-r--r--net-analyzer/ipaudit/ipaudit-1.1.ebuild23
-rw-r--r--net-analyzer/ipaudit/metadata.xml9
-rw-r--r--net-analyzer/ipband/Manifest1
-rw-r--r--net-analyzer/ipband/files/ipband-0.8.1-fno-common.patch113
-rw-r--r--net-analyzer/ipband/files/ipband-0.8.1-gentoo.patch20
-rw-r--r--net-analyzer/ipband/files/ipband-0.8.1-postfix.patch13
-rw-r--r--net-analyzer/ipband/files/ipband-init24
-rw-r--r--net-analyzer/ipband/ipband-0.8.1-r2.ebuild42
-rw-r--r--net-analyzer/ipband/metadata.xml9
-rw-r--r--net-analyzer/ipgen/ipgen-9999.ebuild18
-rw-r--r--net-analyzer/ipgen/metadata.xml9
-rw-r--r--net-analyzer/ipguard/Manifest1
-rw-r--r--net-analyzer/ipguard/files/ipguard-1.04-fno-common.patch98
-rw-r--r--net-analyzer/ipguard/files/ipguard-1.04-gentoo.patch50
-rw-r--r--net-analyzer/ipguard/files/ipguard-1.04-init.d.patch36
-rw-r--r--net-analyzer/ipguard/files/ipguard-1.04-runpath.patch11
-rw-r--r--net-analyzer/ipguard/files/ipguard.confd8
-rw-r--r--net-analyzer/ipguard/ipguard-1.04-r1.ebuild47
-rw-r--r--net-analyzer/ipguard/metadata.xml9
-rw-r--r--net-analyzer/iplog/Manifest1
-rw-r--r--net-analyzer/iplog/files/2.2.3-DLT_LINUX_SSL.patch134
-rw-r--r--net-analyzer/iplog/files/iplog-2.2.3-C23.patch42
-rw-r--r--net-analyzer/iplog/files/iplog.rc636
-rw-r--r--net-analyzer/iplog/iplog-2.2.3-r3.ebuild31
-rw-r--r--net-analyzer/iplog/iplog-2.2.3-r4.ebuild41
-rw-r--r--net-analyzer/iplog/metadata.xml9
-rw-r--r--net-analyzer/ippl/Manifest1
-rw-r--r--net-analyzer/ippl/files/ippl-1.4.14-fix-build-system.patch44
-rw-r--r--net-analyzer/ippl/files/ippl-1.4.14-format-warnings.patch20
-rw-r--r--net-analyzer/ippl/files/ippl-1.4.14-includes.patch20
-rw-r--r--net-analyzer/ippl/files/ippl-1.4.14-lto.patch31
-rw-r--r--net-analyzer/ippl/files/ippl-1.4.14-manpage.patch15
-rw-r--r--net-analyzer/ippl/files/ippl-1.4.14-musl.patch301
-rw-r--r--net-analyzer/ippl/files/ippl-1.4.14-noportresolve.patch347
-rw-r--r--net-analyzer/ippl/files/ippl-1.4.14-privilege-drop.patch140
-rw-r--r--net-analyzer/ippl/files/ippl.rc30
-rw-r--r--net-analyzer/ippl/ippl-1.4.14-r7.ebuild55
-rw-r--r--net-analyzer/ippl/metadata.xml9
-rw-r--r--net-analyzer/ipsumdump/Manifest1
-rw-r--r--net-analyzer/ipsumdump/files/ipsumdump-1.86-SIOCGSTAMP.patch10
-rw-r--r--net-analyzer/ipsumdump/ipsumdump-1.86-r1.ebuild39
-rw-r--r--net-analyzer/ipsumdump/metadata.xml16
-rw-r--r--net-analyzer/iptraf-ng/Manifest2
-rw-r--r--net-analyzer/iptraf-ng/files/iptraf-ng-1.2.2-buffer_overflow.patch15
-rw-r--r--net-analyzer/iptraf-ng/iptraf-ng-1.2.1.ebuild60
-rw-r--r--net-analyzer/iptraf-ng/iptraf-ng-1.2.2.ebuild65
-rw-r--r--net-analyzer/iptraf-ng/metadata.xml13
-rw-r--r--net-analyzer/iptstate/Manifest1
-rw-r--r--net-analyzer/iptstate/files/iptstate-2.2.7-respect-CPPFLAGS.patch18
-rw-r--r--net-analyzer/iptstate/files/iptstate-2.2.7-respect-LDFLAGS.patch18
-rw-r--r--net-analyzer/iptstate/files/iptstate-2.2.7-use-pkg-config.patch21
-rw-r--r--net-analyzer/iptstate/iptstate-2.2.7.ebuild34
-rw-r--r--net-analyzer/iptstate/metadata.xml9
-rw-r--r--net-analyzer/ipv6toolkit/Manifest2
-rw-r--r--net-analyzer/ipv6toolkit/ipv6toolkit-2.1_p20200412-r1.ebuild40
-rw-r--r--net-analyzer/ipv6toolkit/ipv6toolkit-2.2.ebuild38
-rw-r--r--net-analyzer/ipv6toolkit/metadata.xml9
-rw-r--r--net-analyzer/isic/Manifest1
-rw-r--r--net-analyzer/isic/files/isic-0.07-configure.patch39
-rw-r--r--net-analyzer/isic/isic-0.07-r2.ebuild33
-rw-r--r--net-analyzer/isic/isic-0.07-r3.ebuild35
-rw-r--r--net-analyzer/isic/metadata.xml9
-rw-r--r--net-analyzer/jnettop/Manifest1
-rw-r--r--net-analyzer/jnettop/files/jnettop-0.13.0-asneeded.patch12
-rw-r--r--net-analyzer/jnettop/files/jnettop-0.13.0-clang16.patch9
-rw-r--r--net-analyzer/jnettop/files/jnettop-0.13.0-tinfo.patch11
-rw-r--r--net-analyzer/jnettop/jnettop-0.13.0-r2.ebuild48
-rw-r--r--net-analyzer/jnettop/metadata.xml9
-rw-r--r--net-analyzer/kapacitor/Manifest1
-rw-r--r--net-analyzer/kapacitor/files/kapacitor.confd12
-rw-r--r--net-analyzer/kapacitor/files/kapacitor.rc35
-rw-r--r--net-analyzer/kapacitor/kapacitor-1.5.5.ebuild47
-rw-r--r--net-analyzer/kapacitor/metadata.xml9
-rw-r--r--net-analyzer/knocker/Manifest1
-rw-r--r--net-analyzer/knocker/files/knocker-0.7.1-knocker_user_is_root.patch11
-rw-r--r--net-analyzer/knocker/files/knocker-0.8.0-fency.patch151
-rw-r--r--net-analyzer/knocker/knocker-0.8.0.ebuild26
-rw-r--r--net-analyzer/knocker/metadata.xml9
-rw-r--r--net-analyzer/lft/Manifest1
-rw-r--r--net-analyzer/lft/files/lft-3.91-strip.patch11
-rw-r--r--net-analyzer/lft/lft-3.91-r1.ebuild30
-rw-r--r--net-analyzer/lft/metadata.xml49
-rw-r--r--net-analyzer/linkchecker/Manifest2
-rw-r--r--net-analyzer/linkchecker/files/linkchecker-9.3-bash-completion.patch21
-rw-r--r--net-analyzer/linkchecker/linkchecker-10.5.0.ebuild67
-rw-r--r--net-analyzer/linkchecker/linkchecker-10.6.0.ebuild66
-rw-r--r--net-analyzer/linkchecker/metadata.xml16
-rw-r--r--net-analyzer/macchanger/Manifest2
-rw-r--r--net-analyzer/macchanger/files/macchanger-1.7.0-fix-caddr_t.patch13
-rw-r--r--net-analyzer/macchanger/macchanger-1.7.0_p5_p4-r2.ebuild49
-rw-r--r--net-analyzer/macchanger/macchanger-1.7.0_p5_p4-r3.ebuild42
-rw-r--r--net-analyzer/macchanger/metadata.xml13
-rw-r--r--net-analyzer/masscan/Manifest1
-rw-r--r--net-analyzer/masscan/files/masscan.conf7
-rw-r--r--net-analyzer/masscan/masscan-1.3.2.ebuild42
-rw-r--r--net-analyzer/masscan/metadata.xml24
-rw-r--r--net-analyzer/mbrowse/Manifest1
-rw-r--r--net-analyzer/mbrowse/files/mbrowse-0.4.3-flags.patch16
-rw-r--r--net-analyzer/mbrowse/files/mbrowse-0.4.3-fno-common.patch29
-rw-r--r--net-analyzer/mbrowse/mbrowse-0.4.3-r1.ebuild38
-rw-r--r--net-analyzer/mbrowse/metadata.xml9
-rw-r--r--net-analyzer/mdns-scan/Manifest1
-rw-r--r--net-analyzer/mdns-scan/mdns-scan-0.5_p20200715.ebuild25
-rw-r--r--net-analyzer/mdns-scan/metadata.xml9
-rw-r--r--net-analyzer/monitoring-plugins/Manifest1
-rw-r--r--net-analyzer/monitoring-plugins/metadata.xml47
-rw-r--r--net-analyzer/monitoring-plugins/monitoring-plugins-2.4.0-r1.ebuild115
-rw-r--r--net-analyzer/monitoring-plugins/monitoring-plugins-2.4.0-r2.ebuild116
-rw-r--r--net-analyzer/mrtg-ping-probe/Manifest1
-rw-r--r--net-analyzer/mrtg-ping-probe/files/mrtg-ping-cfg84
-rw-r--r--net-analyzer/mrtg-ping-probe/metadata.xml9
-rw-r--r--net-analyzer/mrtg-ping-probe/mrtg-ping-probe-2.2.0-r1.ebuild33
-rw-r--r--net-analyzer/mrtg/Manifest1
-rw-r--r--net-analyzer/mrtg/files/mrtg-2.17.10-c23.patch87
-rw-r--r--net-analyzer/mrtg/files/mrtg-2.17.10-implicit.patch10
-rw-r--r--net-analyzer/mrtg/files/mrtg-2.17.4-socket6.patch11
-rw-r--r--net-analyzer/mrtg/files/mrtg.confd16
-rw-r--r--net-analyzer/mrtg/files/mrtg.rc53
-rw-r--r--net-analyzer/mrtg/metadata.xml9
-rw-r--r--net-analyzer/mrtg/mrtg-2.17.10-r1.ebuild50
-rw-r--r--net-analyzer/mtr/Manifest2
-rw-r--r--net-analyzer/mtr/files/mtr-0.88-tinfo.patch14
-rw-r--r--net-analyzer/mtr/files/mtr-0.95-fortify-source-3.patch34
-rw-r--r--net-analyzer/mtr/files/mtr-0.96-tinfo.patch15
-rw-r--r--net-analyzer/mtr/metadata.xml18
-rw-r--r--net-analyzer/mtr/mtr-0.95-r1.ebuild68
-rw-r--r--net-analyzer/mtr/mtr-0.96-r1.ebuild70
-rw-r--r--net-analyzer/mtr/mtr-9999.ebuild70
-rw-r--r--net-analyzer/multimon-ng/Manifest1
-rw-r--r--net-analyzer/multimon-ng/metadata.xml16
-rw-r--r--net-analyzer/multimon-ng/multimon-ng-1.3.0.ebuild32
-rw-r--r--net-analyzer/multimon-ng/multimon-ng-9999.ebuild32
-rw-r--r--net-analyzer/multipath-tcp-tools/Manifest1
-rw-r--r--net-analyzer/multipath-tcp-tools/metadata.xml12
-rw-r--r--net-analyzer/multipath-tcp-tools/multipath-tcp-tools-2018_p12_p21-r1.ebuild46
-rw-r--r--net-analyzer/multipath-tcp-tools/multipath-tcp-tools-999999.ebuild46
-rw-r--r--net-analyzer/munin-plugins-zfs/Manifest1
-rw-r--r--net-analyzer/munin-plugins-zfs/metadata.xml5
-rw-r--r--net-analyzer/munin-plugins-zfs/munin-plugins-zfs-0.20170127-r1.ebuild27
-rw-r--r--net-analyzer/munin/Manifest2
-rw-r--r--net-analyzer/munin/files/logrotate.d-munin.333
-rw-r--r--net-analyzer/munin/files/logrotate.d-munin.433
-rw-r--r--net-analyzer/munin/files/logrotate.d-munin.533
-rw-r--r--net-analyzer/munin/files/munin-1.3.2-plugins.conf80
-rw-r--r--net-analyzer/munin/files/munin-async.service10
-rw-r--r--net-analyzer/munin/files/munin-asyncd.init.220
-rw-r--r--net-analyzer/munin/files/munin-graph.service11
-rw-r--r--net-analyzer/munin/files/munin-graph.socket8
-rw-r--r--net-analyzer/munin/files/munin-html.service11
-rw-r--r--net-analyzer/munin/files/munin-html.socket8
-rw-r--r--net-analyzer/munin/files/munin-node.service11
-rw-r--r--net-analyzer/munin/files/munin-node_conf.d_1.4.6-r27
-rw-r--r--net-analyzer/munin/files/munin-node_init.d_2.0.7327
-rw-r--r--net-analyzer/munin/files/munin.apache.include-2.4-r129
-rw-r--r--net-analyzer/munin/files/patches/0002-build-create-an-install-minimal-target-that-only-ins.patch36
-rw-r--r--net-analyzer/munin/files/patches/0003-master-make-it-possible-to-configure-the-default-cgi.patch113
-rw-r--r--net-analyzer/munin/files/patches/0005-node-use-Net-Domain-hostfqdn-instead-of-Sys-Hostname.patch44
-rw-r--r--net-analyzer/munin/files/patches/0007-node-always-use-the-Effective-UID-not-just-the-UID.patch139
-rw-r--r--net-analyzer/munin/files/patches/0009-perl-526.patch26
-rw-r--r--net-analyzer/munin/metadata.xml92
-rw-r--r--net-analyzer/munin/munin-2.0.75.ebuild417
-rw-r--r--net-analyzer/munin/munin-2.0.76-r2.ebuild418
-rw-r--r--net-analyzer/munin/munin-2.0.76-r3.ebuild418
-rw-r--r--net-analyzer/nagios-check_dnssec/Manifest1
-rw-r--r--net-analyzer/nagios-check_dnssec/metadata.xml9
-rw-r--r--net-analyzer/nagios-check_dnssec/nagios-check_dnssec-0.1_p28.ebuild32
-rw-r--r--net-analyzer/nagios-check_glsa2/Manifest1
-rw-r--r--net-analyzer/nagios-check_glsa2/files/nagios-check_glsa2-20120930-CACHEDIR.patch11
-rw-r--r--net-analyzer/nagios-check_glsa2/metadata.xml9
-rw-r--r--net-analyzer/nagios-check_glsa2/nagios-check_glsa2-20120930-r1.ebuild35
-rw-r--r--net-analyzer/nagios-check_ipmi_sensor/Manifest1
-rw-r--r--net-analyzer/nagios-check_ipmi_sensor/metadata.xml13
-rw-r--r--net-analyzer/nagios-check_ipmi_sensor/nagios-check_ipmi_sensor-3.13.ebuild29
-rw-r--r--net-analyzer/nagios-check_linux_bonding/Manifest1
-rw-r--r--net-analyzer/nagios-check_linux_bonding/metadata.xml5
-rw-r--r--net-analyzer/nagios-check_linux_bonding/nagios-check_linux_bonding-1.4-r1.ebuild32
-rw-r--r--net-analyzer/nagios-check_logfiles/Manifest1
-rw-r--r--net-analyzer/nagios-check_logfiles/metadata.xml9
-rw-r--r--net-analyzer/nagios-check_logfiles/nagios-check_logfiles-4.0.1.3.ebuild25
-rw-r--r--net-analyzer/nagios-check_multiple/Manifest1
-rw-r--r--net-analyzer/nagios-check_multiple/metadata.xml9
-rw-r--r--net-analyzer/nagios-check_multiple/nagios-check_multiple-0.0.1-r4.ebuild46
-rw-r--r--net-analyzer/nagios-check_mysql_health/Manifest1
-rw-r--r--net-analyzer/nagios-check_mysql_health/metadata.xml9
-rw-r--r--net-analyzer/nagios-check_mysql_health/nagios-check_mysql_health-2.2.2-r2.ebuild38
-rw-r--r--net-analyzer/nagios-check_rbl/Manifest1
-rw-r--r--net-analyzer/nagios-check_rbl/metadata.xml13
-rw-r--r--net-analyzer/nagios-check_rbl/nagios-check_rbl-1.7.0.ebuild60
-rw-r--r--net-analyzer/nagios-core/Manifest4
-rw-r--r--net-analyzer/nagios-core/files/99_nagios4-r1.conf16
-rw-r--r--net-analyzer/nagios-core/files/lighttpd_nagios4-r1.conf15
-rw-r--r--net-analyzer/nagios-core/metadata.xml34
-rw-r--r--net-analyzer/nagios-core/nagios-core-4.5.12.ebuild274
-rw-r--r--net-analyzer/nagios-core/nagios-core-4.5.13.ebuild274
-rw-r--r--net-analyzer/nagios-core/nagios-core-4.5.8.ebuild266
-rw-r--r--net-analyzer/nagios-icinga-openvpn/Manifest1
-rw-r--r--net-analyzer/nagios-icinga-openvpn/metadata.xml9
-rw-r--r--net-analyzer/nagios-icinga-openvpn/nagios-icinga-openvpn-0.0.1-r6.ebuild37
-rw-r--r--net-analyzer/nagios-plugin-check_lm_sensors/Manifest1
-rw-r--r--net-analyzer/nagios-plugin-check_lm_sensors/metadata.xml12
-rw-r--r--net-analyzer/nagios-plugin-check_lm_sensors/nagios-plugin-check_lm_sensors-4.1.1_p20191028.ebuild37
-rw-r--r--net-analyzer/nagios-plugin-check_raid/Manifest1
-rw-r--r--net-analyzer/nagios-plugin-check_raid/metadata.xml24
-rw-r--r--net-analyzer/nagios-plugin-check_raid/nagios-plugin-check_raid-4.0.10-r3.ebuild66
-rw-r--r--net-analyzer/nagios-plugins-linux-madrisan/Manifest2
-rw-r--r--net-analyzer/nagios-plugins-linux-madrisan/metadata.xml16
-rw-r--r--net-analyzer/nagios-plugins-linux-madrisan/nagios-plugins-linux-madrisan-34.ebuild48
-rw-r--r--net-analyzer/nagios-plugins-linux-madrisan/nagios-plugins-linux-madrisan-35.ebuild48
-rw-r--r--net-analyzer/nagios-plugins-snmp/Manifest1
-rw-r--r--net-analyzer/nagios-plugins-snmp/files/nagios-plugins-snmp-0.6.0-fno-common.patch86
-rw-r--r--net-analyzer/nagios-plugins-snmp/metadata.xml9
-rw-r--r--net-analyzer/nagios-plugins-snmp/nagios-plugins-snmp-0.6.0-r2.ebuild44
-rw-r--r--net-analyzer/nagios-plugins/Manifest1
-rw-r--r--net-analyzer/nagios-plugins/files/nagios-plugins-2.4.12-postgresql-detection.patch143
-rw-r--r--net-analyzer/nagios-plugins/files/nagios-plugins-2.4.12-snmpgetnext.patch128
-rw-r--r--net-analyzer/nagios-plugins/metadata.xml42
-rw-r--r--net-analyzer/nagios-plugins/nagios-plugins-2.4.12-r4.ebuild140
-rw-r--r--net-analyzer/nagios-plugins/nagios-plugins-2.4.12.ebuild121
-rw-r--r--net-analyzer/nagios/metadata.xml29
-rw-r--r--net-analyzer/nagios/nagios-4.5.12.ebuild14
-rw-r--r--net-analyzer/nagios/nagios-4.5.13.ebuild14
-rw-r--r--net-analyzer/nagios/nagios-4.5.8.ebuild14
-rw-r--r--net-analyzer/nagircbot/Manifest1
-rw-r--r--net-analyzer/nagircbot/files/conf2
-rw-r--r--net-analyzer/nagircbot/files/init19
-rw-r--r--net-analyzer/nagircbot/metadata.xml9
-rw-r--r--net-analyzer/nagircbot/nagircbot-0.0.33.ebuild40
-rw-r--r--net-analyzer/nagstamon/Manifest1
-rw-r--r--net-analyzer/nagstamon/files/nagstamon-3.14.0-setup.patch24
-rw-r--r--net-analyzer/nagstamon/metadata.xml9
-rw-r--r--net-analyzer/nagstamon/nagstamon-3.16.2.ebuild72
-rw-r--r--net-analyzer/nagtrap/Manifest1
-rw-r--r--net-analyzer/nagtrap/metadata.xml5
-rw-r--r--net-analyzer/nagtrap/nagtrap-0.1.3-r1.ebuild44
-rw-r--r--net-analyzer/nast/Manifest1
-rw-r--r--net-analyzer/nast/files/0001-Fix-signal-handler.patch43
-rw-r--r--net-analyzer/nast/files/0002-Fix-Wformat-security.patch58
-rw-r--r--net-analyzer/nast/files/nast-0.2.0-gentoo.patch104
-rw-r--r--net-analyzer/nast/metadata.xml9
-rw-r--r--net-analyzer/nast/nast-0.2.0-r4.ebuild49
-rw-r--r--net-analyzer/nbtscan/Manifest1
-rw-r--r--net-analyzer/nbtscan/metadata.xml9
-rw-r--r--net-analyzer/nbtscan/nbtscan-1.7.2.ebuild22
-rw-r--r--net-analyzer/nbwmon/Manifest1
-rw-r--r--net-analyzer/nbwmon/files/nbwmon-0.5.2-tinfo.patch11
-rw-r--r--net-analyzer/nbwmon/metadata.xml9
-rw-r--r--net-analyzer/nbwmon/nbwmon-0.5.2.ebuild30
-rw-r--r--net-analyzer/ndoutils/Manifest1
-rw-r--r--net-analyzer/ndoutils/files/c23-compatibility.patch40
-rw-r--r--net-analyzer/ndoutils/files/format-security.patch115
-rw-r--r--net-analyzer/ndoutils/files/openrc-init.patch100
-rw-r--r--net-analyzer/ndoutils/files/sample-config-piddir.patch32
-rw-r--r--net-analyzer/ndoutils/metadata.xml12
-rw-r--r--net-analyzer/ndoutils/ndoutils-2.1.4.ebuild103
-rw-r--r--net-analyzer/ndsad/Manifest1
-rw-r--r--net-analyzer/ndsad/files/ndsad-1.33-conf_path.patch11
-rw-r--r--net-analyzer/ndsad/files/ndsad-1.33-gentoo.patch23
-rw-r--r--net-analyzer/ndsad/files/ndsad-1.33-getpid.patch10
-rw-r--r--net-analyzer/ndsad/files/ndsad-1.33-log-path.patch11
-rw-r--r--net-analyzer/ndsad/files/ndsad-1.33-strncpy-overflow.patch12
-rw-r--r--net-analyzer/ndsad/files/ndsad.conf.d8
-rw-r--r--net-analyzer/ndsad/files/ndsad.init32
-rw-r--r--net-analyzer/ndsad/metadata.xml23
-rw-r--r--net-analyzer/ndsad/ndsad-1.33-r2.ebuild45
-rw-r--r--net-analyzer/nessus-agent-bin/Manifest2
-rw-r--r--net-analyzer/nessus-agent-bin/files/nessusagent.initd21
-rw-r--r--net-analyzer/nessus-agent-bin/metadata.xml12
-rw-r--r--net-analyzer/nessus-agent-bin/nessus-agent-bin-11.1.1.ebuild63
-rw-r--r--net-analyzer/nessus-bin/Manifest2
-rw-r--r--net-analyzer/nessus-bin/files/nessusd-initd25
-rw-r--r--net-analyzer/nessus-bin/metadata.xml12
-rw-r--r--net-analyzer/nessus-bin/nessus-bin-10.11.2.ebuild57
-rw-r--r--net-analyzer/net-snmp/Manifest2
-rw-r--r--net-analyzer/net-snmp/files/net-snmp-5.1.2-snmpconf-selinux.patch12
-rw-r--r--net-analyzer/net-snmp/files/net-snmp-5.8-pcap.patch41
-rw-r--r--net-analyzer/net-snmp/files/net-snmp-5.8.1-mysqlclient.patch30
-rw-r--r--net-analyzer/net-snmp/files/net-snmp-5.9-MakeMaker.patch10
-rw-r--r--net-analyzer/net-snmp/files/net-snmp-5.9.3-0001-Fix-LDFLAGS-vs-LIBS-ordering.patch231
-rw-r--r--net-analyzer/net-snmp/files/net-snmp-5.9.3-0002-Tidy-up-net-snmp-config-output.patch51
-rw-r--r--net-analyzer/net-snmp/files/net-snmp-5.9.3-0003-Prune-Libs.private-entries-in-netsnmp-.pc.in.patch30
-rw-r--r--net-analyzer/net-snmp/files/net-snmp-5.9.3-0004-Search-for-ltinfo-in-configure-if-needed.patch24
-rw-r--r--net-analyzer/net-snmp/files/snmpd.conf19
-rw-r--r--net-analyzer/net-snmp/files/snmpd.init.234
-rw-r--r--net-analyzer/net-snmp/files/snmpd.service9
-rw-r--r--net-analyzer/net-snmp/files/snmptrapd.conf15
-rw-r--r--net-analyzer/net-snmp/files/snmptrapd.init.213
-rw-r--r--net-analyzer/net-snmp/files/snmptrapd.service9
-rw-r--r--net-analyzer/net-snmp/metadata.xml23
-rw-r--r--net-analyzer/net-snmp/net-snmp-5.9.5.2.ebuild247
-rw-r--r--net-analyzer/net-snmp/net-snmp-9999.ebuild243
-rw-r--r--net-analyzer/netcat/Manifest1
-rw-r--r--net-analyzer/netcat/files/netcat-110.20180111-c23.patch29
-rw-r--r--net-analyzer/netcat/files/netcat-110.20180111-variadic-holler.patch88
-rw-r--r--net-analyzer/netcat/metadata.xml16
-rw-r--r--net-analyzer/netcat/netcat-110.20180111-r2.ebuild67
-rw-r--r--net-analyzer/netdata-go-plugin/Manifest4
-rw-r--r--net-analyzer/netdata-go-plugin/metadata.xml9
-rw-r--r--net-analyzer/netdata-go-plugin/netdata-go-plugin-1.47.5-r1.ebuild49
-rw-r--r--net-analyzer/netdata-go-plugin/netdata-go-plugin-2.5.3.ebuild49
-rw-r--r--net-analyzer/netdata/Manifest3
-rw-r--r--net-analyzer/netdata/files/netdata-dlib-global_optimization-add-template-argument-list.patch30
-rw-r--r--net-analyzer/netdata/metadata.xml24
-rw-r--r--net-analyzer/netdata/netdata-1.47.5.ebuild157
-rw-r--r--net-analyzer/netdata/netdata-2.5.3.ebuild179
-rw-r--r--net-analyzer/netdata/netdata-9999.ebuild157
-rw-r--r--net-analyzer/netdiscover/Manifest2
-rw-r--r--net-analyzer/netdiscover/metadata.xml9
-rw-r--r--net-analyzer/netdiscover/netdiscover-0.10.ebuild34
-rw-r--r--net-analyzer/netdiscover/netdiscover-0.20.ebuild29
-rw-r--r--net-analyzer/nethogs/Manifest2
-rw-r--r--net-analyzer/nethogs/files/nethogs-0.8.8-meson.patch85
-rw-r--r--net-analyzer/nethogs/metadata.xml17
-rw-r--r--net-analyzer/nethogs/nethogs-0.8.7.ebuild36
-rw-r--r--net-analyzer/nethogs/nethogs-0.8.8.ebuild40
-rw-r--r--net-analyzer/netperf/Manifest2
-rw-r--r--net-analyzer/netperf/files/netperf-2.2-conf4
-rw-r--r--net-analyzer/netperf/files/netperf-2.6.0-log-dir.patch11
-rw-r--r--net-analyzer/netperf/files/netperf-2.7.0-fcommon.patch30
-rw-r--r--net-analyzer/netperf/files/netperf-2.7.0-gcc15.patch167
-rw-r--r--net-analyzer/netperf/files/netperf-2.7.0-includes.patch22
-rw-r--r--net-analyzer/netperf/files/netperf-2.7.0-init23
-rw-r--r--net-analyzer/netperf/files/netperf-2.7.0-inline.patch32
-rw-r--r--net-analyzer/netperf/files/netperf-2.7.0-space.patch17
-rw-r--r--net-analyzer/netperf/files/netperf-fix-scripts.patch34
-rw-r--r--net-analyzer/netperf/files/netperf-log-dir.patch12
-rw-r--r--net-analyzer/netperf/metadata.xml26
-rw-r--r--net-analyzer/netperf/netperf-2.7.0-r5.ebuild82
-rw-r--r--net-analyzer/netperf/netperf-2.7.0_p20210121-r1.ebuild80
-rw-r--r--net-analyzer/netperf/netperf-2.7.0_p20210121.ebuild79
-rw-r--r--net-analyzer/netpipe/Manifest1
-rw-r--r--net-analyzer/netpipe/files/netpipe-3.7.2-fix-makefile.patch44
-rw-r--r--net-analyzer/netpipe/metadata.xml20
-rw-r--r--net-analyzer/netpipe/netpipe-3.7.2-r1.ebuild45
-rw-r--r--net-analyzer/netselect/Manifest2
-rw-r--r--net-analyzer/netselect/files/netselect-0.4-bsd.patch56
-rw-r--r--net-analyzer/netselect/files/netselect-0.4-flags.patch12
-rw-r--r--net-analyzer/netselect/metadata.xml9
-rw-r--r--net-analyzer/netselect/netselect-0.4-r2.ebuild56
-rw-r--r--net-analyzer/netselect/netselect-9999.ebuild58
-rw-r--r--net-analyzer/nettop/Manifest1
-rw-r--r--net-analyzer/nettop/files/nettop-0.2.3-gcc411.patch49
-rw-r--r--net-analyzer/nettop/files/nettop-0.2.3-offbyone.patch29
-rw-r--r--net-analyzer/nettop/metadata.xml9
-rw-r--r--net-analyzer/nettop/nettop-0.2.3-r2.ebuild45
-rw-r--r--net-analyzer/netwatch/Manifest1
-rw-r--r--net-analyzer/netwatch/files/netwatch-1.3.0.1-append_ldflags.patch15
-rw-r--r--net-analyzer/netwatch/files/netwatch-1.3.0.1-c23.patch84
-rw-r--r--net-analyzer/netwatch/files/netwatch-1.3.0.1-clang16.patch22
-rw-r--r--net-analyzer/netwatch/files/netwatch-1.3.0.1-do-not-call.patch14
-rw-r--r--net-analyzer/netwatch/files/netwatch-1.3.0.1-fix-fortify.patch11
-rw-r--r--net-analyzer/netwatch/files/netwatch-1.3.0.1-fno-common.patch44
-rw-r--r--net-analyzer/netwatch/files/netwatch-1.3.0.1-includes.patch22
-rw-r--r--net-analyzer/netwatch/files/netwatch-1.3.0.1-lto-mismatch.patch8
-rw-r--r--net-analyzer/netwatch/files/netwatch-1.3.0.1-musl-GNU_SOURCE.patch12
-rw-r--r--net-analyzer/netwatch/files/netwatch-1.3.0.1-open.patch11
-rw-r--r--net-analyzer/netwatch/files/netwatch-1.3.0.1-stdint.patch527
-rw-r--r--net-analyzer/netwatch/files/netwatch-1.3.0.1-tinfo.patch50
-rw-r--r--net-analyzer/netwatch/metadata.xml9
-rw-r--r--net-analyzer/netwatch/netwatch-1.3.0.1-r5.ebuild50
-rw-r--r--net-analyzer/netwatch/netwatch-1.3.0.1-r6.ebuild54
-rw-r--r--net-analyzer/nfdump/Manifest2
-rw-r--r--net-analyzer/nfdump/files/nfcapd.confd11
-rw-r--r--net-analyzer/nfdump/files/nfcapd.initd60
-rw-r--r--net-analyzer/nfdump/files/nfdump-1.6.19-libft.patch17
-rw-r--r--net-analyzer/nfdump/files/nfdump.service16
-rw-r--r--net-analyzer/nfdump/metadata.xml25
-rw-r--r--net-analyzer/nfdump/nfdump-1.7.6.ebuild105
-rw-r--r--net-analyzer/nfdump/nfdump-1.7.7-r1.ebuild110
-rw-r--r--net-analyzer/ngrep/Manifest2
-rw-r--r--net-analyzer/ngrep/files/ngrep-1.47-clang16.patch30
-rw-r--r--net-analyzer/ngrep/files/ngrep-1.47-regex.patch29
-rw-r--r--net-analyzer/ngrep/metadata.xml18
-rw-r--r--net-analyzer/ngrep/ngrep-1.47-r2.ebuild57
-rw-r--r--net-analyzer/ngrep/ngrep-1.47_p20241209.ebuild61
-rw-r--r--net-analyzer/nikto/Manifest2
-rw-r--r--net-analyzer/nikto/metadata.xml16
-rw-r--r--net-analyzer/nikto/nikto-2.1.6_p20220602.ebuild47
-rw-r--r--net-analyzer/nikto/nikto-2.5.0.ebuild45
-rw-r--r--net-analyzer/nload/Manifest1
-rw-r--r--net-analyzer/nload/files/nload-0.7.5_pre-Makefile-spec-don-t-compress-man-page.patch63
-rw-r--r--net-analyzer/nload/files/nload-0.7.5_pre-tinfo.patch10
-rw-r--r--net-analyzer/nload/metadata.xml17
-rw-r--r--net-analyzer/nload/nload-0.7.5_pre20180309.ebuild36
-rw-r--r--net-analyzer/nmap/Manifest12
-rw-r--r--net-analyzer/nmap/files/nls.m432
-rw-r--r--net-analyzer/nmap/metadata.xml28
-rw-r--r--net-analyzer/nmap/nmap-7.95.ebuild206
-rw-r--r--net-analyzer/nmap/nmap-7.97.ebuild214
-rw-r--r--net-analyzer/nmap/nmap-7.98.ebuild214
-rw-r--r--net-analyzer/nmap/nmap-7.99.ebuild213
-rw-r--r--net-analyzer/nmap/nmap-9999.ebuild213
-rw-r--r--net-analyzer/nmapsi/Manifest1
-rw-r--r--net-analyzer/nmapsi/metadata.xml5
-rw-r--r--net-analyzer/nmapsi/nmapsi-0.5_alpha2_p20240407.ebuild38
-rw-r--r--net-analyzer/nmbscan/Manifest1
-rw-r--r--net-analyzer/nmbscan/files/nmbscan-1.2.5-head.diff11
-rw-r--r--net-analyzer/nmbscan/metadata.xml11
-rw-r--r--net-analyzer/nmbscan/nmbscan-1.2.5-r1.ebuild27
-rw-r--r--net-analyzer/notus-scanner/Manifest1
-rw-r--r--net-analyzer/notus-scanner/files/notus-scanner-22.6.2-remove-tests.patch75
-rw-r--r--net-analyzer/notus-scanner/files/notus-scanner.initd31
-rw-r--r--net-analyzer/notus-scanner/files/notus-scanner.logrotate13
-rw-r--r--net-analyzer/notus-scanner/files/notus-scanner.service.conf7
-rw-r--r--net-analyzer/notus-scanner/files/notus-scanner.toml8
-rw-r--r--net-analyzer/notus-scanner/metadata.xml17
-rw-r--r--net-analyzer/notus-scanner/notus-scanner-22.7.2.ebuild77
-rw-r--r--net-analyzer/nrpe/Manifest4
-rw-r--r--net-analyzer/nrpe/files/nrpe-3.2.1-eliminate-systemd-pid.patch38
-rw-r--r--net-analyzer/nrpe/files/nrpe-4.0.2-disable-tcpd.patch62
-rw-r--r--net-analyzer/nrpe/files/nrpe.xinetd.211
-rw-r--r--net-analyzer/nrpe/metadata.xml20
-rw-r--r--net-analyzer/nrpe/nrpe-4.0.0.ebuild90
-rw-r--r--net-analyzer/nrpe/nrpe-4.0.2.ebuild91
-rw-r--r--net-analyzer/nrpe/nrpe-4.0.3.ebuild101
-rw-r--r--net-analyzer/nrpe/nrpe-4.1.0.ebuild100
-rw-r--r--net-analyzer/nsat/Manifest1
-rw-r--r--net-analyzer/nsat/files/nsat-1.5-amd64-compat.patch33
-rw-r--r--net-analyzer/nsat/files/nsat-1.5-configure-dash.patch79
-rw-r--r--net-analyzer/nsat/files/nsat-1.5-configure.patch25
-rw-r--r--net-analyzer/nsat/files/nsat-1.5-libtirpc.patch33
-rw-r--r--net-analyzer/nsat/files/nsat-1.5-lvalue-gcc4.patch11
-rw-r--r--net-analyzer/nsat/files/nsat-1.5-misc.patch108
-rw-r--r--net-analyzer/nsat/files/nsat-1.5-no-ansi.patch53
-rw-r--r--net-analyzer/nsat/files/nsat-1.5-strip.patch10
-rw-r--r--net-analyzer/nsat/files/nsat-1.5-va_list.patch27
-rw-r--r--net-analyzer/nsat/metadata.xml9
-rw-r--r--net-analyzer/nsat/nsat-1.5-r7.ebuild81
-rw-r--r--net-analyzer/nsca/Manifest1
-rw-r--r--net-analyzer/nsca/files/nsca.conf5
-rw-r--r--net-analyzer/nsca/files/nsca.init33
-rw-r--r--net-analyzer/nsca/metadata.xml38
-rw-r--r--net-analyzer/nsca/nsca-2.7.2-r104.ebuild86
-rw-r--r--net-analyzer/ntopng/Manifest2
-rw-r--r--net-analyzer/ntopng/files/ntopng-5.2.1-mysqltool.patch17
-rw-r--r--net-analyzer/ntopng/files/ntopng-5.4-ndpi-linking.patch49
-rw-r--r--net-analyzer/ntopng/files/ntopng-6.0-dont-const-cast-argv.patch34
-rw-r--r--net-analyzer/ntopng/files/ntopng.conf.d3
-rw-r--r--net-analyzer/ntopng/files/ntopng.init.d19
-rw-r--r--net-analyzer/ntopng/metadata.xml11
-rw-r--r--net-analyzer/ntopng/ntopng-6.0.ebuild111
-rw-r--r--net-analyzer/nuttcp/Manifest1
-rw-r--r--net-analyzer/nuttcp/files/nuttcp-8.1.4-makefile.patch21
-rw-r--r--net-analyzer/nuttcp/files/nuttcp.confd5
-rw-r--r--net-analyzer/nuttcp/files/nuttcp.initd16
-rw-r--r--net-analyzer/nuttcp/metadata.xml24
-rw-r--r--net-analyzer/nuttcp/nuttcp-8.1.4-r1.ebuild62
-rw-r--r--net-analyzer/odhcploc/Manifest1
-rw-r--r--net-analyzer/odhcploc/metadata.xml9
-rw-r--r--net-analyzer/odhcploc/odhcploc-20111021-r2.ebuild31
-rw-r--r--net-analyzer/oinkmaster/Manifest1
-rw-r--r--net-analyzer/oinkmaster/metadata.xml9
-rw-r--r--net-analyzer/oinkmaster/oinkmaster-2.0.ebuild39
-rw-r--r--net-analyzer/ookla-speedtest/Manifest4
-rw-r--r--net-analyzer/ookla-speedtest/metadata.xml16
-rw-r--r--net-analyzer/ookla-speedtest/ookla-speedtest-1.2.0.ebuild27
-rw-r--r--net-analyzer/openbsd-netcat/Manifest6
-rw-r--r--net-analyzer/openbsd-netcat/files/openbsd-netcat-1.105-musl-b64_ntop.patch349
-rw-r--r--net-analyzer/openbsd-netcat/files/openbsd-netcat-1.190-darwin13.patch54
-rw-r--r--net-analyzer/openbsd-netcat/files/openbsd-netcat-1.219-darwin.patch95
-rw-r--r--net-analyzer/openbsd-netcat/metadata.xml9
-rw-r--r--net-analyzer/openbsd-netcat/openbsd-netcat-1.218_p5.ebuild70
-rw-r--r--net-analyzer/openbsd-netcat/openbsd-netcat-1.219_p1.ebuild70
-rw-r--r--net-analyzer/openbsd-netcat/openbsd-netcat-1.234_p1.ebuild70
-rw-r--r--net-analyzer/openvas-scanner/Manifest2
-rw-r--r--net-analyzer/openvas-scanner/files/README.gentoo3
-rw-r--r--net-analyzer/openvas-scanner/files/openvas-scanner-23.40.0-remove-unworking-tests.patch54
-rw-r--r--net-analyzer/openvas-scanner/files/openvas.conf-221
-rw-r--r--net-analyzer/openvas-scanner/files/openvas.logrotate13
-rw-r--r--net-analyzer/openvas-scanner/files/redis-openvas.confd20
-rw-r--r--net-analyzer/openvas-scanner/files/redis-openvas.initd29
-rw-r--r--net-analyzer/openvas-scanner/files/redis-openvas.service13
-rw-r--r--net-analyzer/openvas-scanner/files/redis-openvas.tmpfiles2
-rw-r--r--net-analyzer/openvas-scanner/metadata.xml21
-rw-r--r--net-analyzer/openvas-scanner/openvas-scanner-23.26.1.ebuild157
-rw-r--r--net-analyzer/openvas-scanner/openvas-scanner-23.40.0.ebuild157
-rw-r--r--net-analyzer/opsgenie-lamp/Manifest1
-rw-r--r--net-analyzer/opsgenie-lamp/metadata.xml9
-rw-r--r--net-analyzer/opsgenie-lamp/opsgenie-lamp-3.1.4.ebuild27
-rw-r--r--net-analyzer/ospd-openvas/Manifest2
-rw-r--r--net-analyzer/ospd-openvas/files/ospd-openvas-22.confd4
-rw-r--r--net-analyzer/ospd-openvas/files/ospd-openvas-22.initd24
-rw-r--r--net-analyzer/ospd-openvas/files/ospd-openvas.logrotate13
-rw-r--r--net-analyzer/ospd-openvas/files/ospd-openvas.service.conf7
-rw-r--r--net-analyzer/ospd-openvas/files/ospd-openvas.service_notus.conf9
-rw-r--r--net-analyzer/ospd-openvas/metadata.xml20
-rw-r--r--net-analyzer/ospd-openvas/ospd-openvas-22.10.1.ebuild86
-rw-r--r--net-analyzer/ospd-openvas/ospd-openvas-22.9.0.ebuild86
-rw-r--r--net-analyzer/ossec-hids/Manifest1
-rw-r--r--net-analyzer/ossec-hids/files/gcc-fno-common-3.6.0.patch402
-rw-r--r--net-analyzer/ossec-hids/files/makefile-3.6.0.patch28
-rw-r--r--net-analyzer/ossec-hids/metadata.xml20
-rw-r--r--net-analyzer/ossec-hids/ossec-hids-3.6.0.ebuild74
-rw-r--r--net-analyzer/p0f/Manifest1
-rw-r--r--net-analyzer/p0f/files/p0f-3.09_beta-build.patch66
-rw-r--r--net-analyzer/p0f/metadata.xml9
-rw-r--r--net-analyzer/p0f/p0f-3.09_beta-r1.ebuild53
-rw-r--r--net-analyzer/p0f/p0f-3.09_beta-r2.ebuild50
-rw-r--r--net-analyzer/packit/Manifest1
-rw-r--r--net-analyzer/packit/metadata.xml9
-rw-r--r--net-analyzer/packit/packit-1.8.ebuild30
-rw-r--r--net-analyzer/pathload/Manifest1
-rw-r--r--net-analyzer/pathload/files/pathload-1.3.2-clang16.patch34
-rw-r--r--net-analyzer/pathload/files/pathload-1.3.2-make.patch19
-rw-r--r--net-analyzer/pathload/metadata.xml9
-rw-r--r--net-analyzer/pathload/pathload-1.3.2-r1.ebuild31
-rw-r--r--net-analyzer/pbnj/Manifest1
-rw-r--r--net-analyzer/pbnj/files/pbnj-2.04-ipv4_sort.patch11
-rw-r--r--net-analyzer/pbnj/metadata.xml9
-rw-r--r--net-analyzer/pbnj/pbnj-2.04-r1.ebuild39
-rw-r--r--net-analyzer/pinger/Manifest1
-rw-r--r--net-analyzer/pinger/files/pinger-0.33-clang16.patch8
-rw-r--r--net-analyzer/pinger/files/pinger-0.33-gentoo.patch73
-rw-r--r--net-analyzer/pinger/files/pinger-0.33-interface_ncurses-fix-C23-compat.patch39
-rw-r--r--net-analyzer/pinger/files/pinger-0.33-interface_ncurses-fix-Wformat-security.patch60
-rw-r--r--net-analyzer/pinger/files/pinger-0.33-musl-int-types.patch158
-rw-r--r--net-analyzer/pinger/metadata.xml13
-rw-r--r--net-analyzer/pinger/pinger-0.33-r2.ebuild59
-rw-r--r--net-analyzer/pktstat/Manifest1
-rw-r--r--net-analyzer/pktstat/files/pktstat-1.8.5-gcc15.patch24
-rw-r--r--net-analyzer/pktstat/files/pktstat-1.8.5-smtp_line.patch46
-rw-r--r--net-analyzer/pktstat/files/pktstat-1.8.5-tinfo.patch10
-rw-r--r--net-analyzer/pktstat/metadata.xml9
-rw-r--r--net-analyzer/pktstat/pktstat-1.8.5-r2.ebuild39
-rw-r--r--net-analyzer/pmacct/Manifest1
-rw-r--r--net-analyzer/pmacct/files/nfacctd.service18
-rw-r--r--net-analyzer/pmacct/files/pmacct-1.7.9-build-system.patch27
-rw-r--r--net-analyzer/pmacct/files/pmacct-1.7.9-c23.patch49
-rw-r--r--net-analyzer/pmacct/files/pmacctd-conf.d6
-rw-r--r--net-analyzer/pmacct/files/pmacctd-init.d40
-rw-r--r--net-analyzer/pmacct/files/pmacctd.service19
-rw-r--r--net-analyzer/pmacct/files/sfacctd.service18
-rw-r--r--net-analyzer/pmacct/metadata.xml29
-rw-r--r--net-analyzer/pmacct/pmacct-1.7.9.ebuild108
-rw-r--r--net-analyzer/pmacct/pmacct-9999.ebuild106
-rw-r--r--net-analyzer/pnp4nagios/Manifest2
-rw-r--r--net-analyzer/pnp4nagios/files/98_pnp4nagios-2.4.conf29
-rw-r--r--net-analyzer/pnp4nagios/files/npcd.initd18
-rw-r--r--net-analyzer/pnp4nagios/files/pnp4nagios-0.6.14-makefile.patch32
-rw-r--r--net-analyzer/pnp4nagios/metadata.xml18
-rw-r--r--net-analyzer/pnp4nagios/pnp4nagios-0.6.26_p20230918.ebuild112
-rw-r--r--net-analyzer/pnp4nagios/pnp4nagios-0.6.26_p20241118.ebuild112
-rw-r--r--net-analyzer/poink/Manifest1
-rw-r--r--net-analyzer/poink/files/poink-2.03-signed-char-fixup.patch13
-rw-r--r--net-analyzer/poink/metadata.xml14
-rw-r--r--net-analyzer/poink/poink-2.03.ebuild29
-rw-r--r--net-analyzer/pontos/Manifest2
-rw-r--r--net-analyzer/pontos/metadata.xml18
-rw-r--r--net-analyzer/pontos/pontos-25.7.2.ebuild44
-rw-r--r--net-analyzer/pontos/pontos-25.8.1.ebuild44
-rw-r--r--net-analyzer/portmon/Manifest1
-rw-r--r--net-analyzer/portmon/files/portmon-2.0-fno-common.patch58
-rw-r--r--net-analyzer/portmon/files/portmon.init29
-rw-r--r--net-analyzer/portmon/metadata.xml9
-rw-r--r--net-analyzer/portmon/portmon-2.0-r2.ebuild40
-rw-r--r--net-analyzer/portsentry/Manifest1
-rw-r--r--net-analyzer/portsentry/files/portsentry-1.2-conf.patch17
-rw-r--r--net-analyzer/portsentry/files/portsentry-1.2-config.h.patch11
-rw-r--r--net-analyzer/portsentry/files/portsentry-1.2-gcc.patch12
-rw-r--r--net-analyzer/portsentry/files/portsentry-1.2-ignore.csh.patch11
-rw-r--r--net-analyzer/portsentry/files/portsentry.8151
-rw-r--r--net-analyzer/portsentry/files/portsentry.conf.5217
-rw-r--r--net-analyzer/portsentry/files/portsentry.confd12
-rw-r--r--net-analyzer/portsentry/files/portsentry.rc638
-rw-r--r--net-analyzer/portsentry/metadata.xml9
-rw-r--r--net-analyzer/portsentry/portsentry-1.2-r1.ebuild62
-rw-r--r--net-analyzer/prettyping/Manifest1
-rw-r--r--net-analyzer/prettyping/metadata.xml10
-rw-r--r--net-analyzer/prettyping/prettyping-1.0.1.ebuild20
-rw-r--r--net-analyzer/pypacker/Manifest1
-rw-r--r--net-analyzer/pypacker/metadata.xml15
-rw-r--r--net-analyzer/pypacker/pypacker-5.2.ebuild30
-rw-r--r--net-analyzer/python-gvm/Manifest2
-rw-r--r--net-analyzer/python-gvm/metadata.xml19
-rw-r--r--net-analyzer/python-gvm/python-gvm-26.4.0.ebuild36
-rw-r--r--net-analyzer/python-gvm/python-gvm-26.9.1.ebuild36
-rw-r--r--net-analyzer/raddump/Manifest1
-rw-r--r--net-analyzer/raddump/files/raddump-0.3.1-cast-pointer.patch17
-rw-r--r--net-analyzer/raddump/metadata.xml8
-rw-r--r--net-analyzer/raddump/raddump-0.3.1-r1.ebuild24
-rw-r--r--net-analyzer/raddump/raddump-0.3.1.ebuild23
-rw-r--r--net-analyzer/rrdcollect/Manifest1
-rw-r--r--net-analyzer/rrdcollect/metadata.xml14
-rw-r--r--net-analyzer/rrdcollect/rrdcollect-0.2.10.ebuild39
-rw-r--r--net-analyzer/rrdtool/Manifest1
-rw-r--r--net-analyzer/rrdtool/files/rrdcached.confd-r113
-rw-r--r--net-analyzer/rrdtool/files/rrdcached.init-r123
-rw-r--r--net-analyzer/rrdtool/files/rrdtool-1.7.0-disable-rrd_graph-cgi.patch49
-rw-r--r--net-analyzer/rrdtool/files/rrdtool-1.7.1-configure.ac.patch12
-rw-r--r--net-analyzer/rrdtool/metadata.xml23
-rw-r--r--net-analyzer/rrdtool/rrdtool-1.9.0-r3.ebuild286
-rw-r--r--net-analyzer/rustscan/Manifest271
-rw-r--r--net-analyzer/rustscan/metadata.xml13
-rw-r--r--net-analyzer/rustscan/rustscan-2.4.1.ebuild311
-rw-r--r--net-analyzer/sancp/Manifest6
-rw-r--r--net-analyzer/sancp/files/sancp-1.6.1-compiler.patch45
-rw-r--r--net-analyzer/sancp/files/sancp-1.6.1-extern.patch18
-rw-r--r--net-analyzer/sancp/files/sancp-1.6.1-gcc6.patch26
-rw-r--r--net-analyzer/sancp/files/sancp.confd15
-rw-r--r--net-analyzer/sancp/files/sancp.rc142
-rw-r--r--net-analyzer/sancp/files/sguil_sancp.conf69
-rw-r--r--net-analyzer/sancp/metadata.xml12
-rw-r--r--net-analyzer/sancp/sancp-1.6.1-r7.ebuild69
-rw-r--r--net-analyzer/sarg/Manifest1
-rw-r--r--net-analyzer/sarg/files/sarg-2.4.0-config.patch81
-rw-r--r--net-analyzer/sarg/files/sarg-2.4.0-configure.patch43
-rw-r--r--net-analyzer/sarg/files/sarg-2.4.0-fabs.patch11
-rw-r--r--net-analyzer/sarg/files/sarg-2.4.0-format.patch22
-rw-r--r--net-analyzer/sarg/metadata.xml18
-rw-r--r--net-analyzer/sarg/sarg-2.4.0-r1.ebuild60
-rw-r--r--net-analyzer/sbd/Manifest1
-rw-r--r--net-analyzer/sbd/metadata.xml15
-rw-r--r--net-analyzer/sbd/sbd-1.37-r1.ebuild34
-rw-r--r--net-analyzer/scanlogd/Manifest2
-rw-r--r--net-analyzer/scanlogd/files/scanlogd-2.2.7-gentoo.patch21
-rw-r--r--net-analyzer/scanlogd/files/scanlogd.rc20
-rw-r--r--net-analyzer/scanlogd/metadata.xml13
-rw-r--r--net-analyzer/scanlogd/scanlogd-2.2.8-r1.ebuild60
-rw-r--r--net-analyzer/scanssh/Manifest2
-rw-r--r--net-analyzer/scanssh/files/scanssh-2.0-fix-warnings.diff61
-rw-r--r--net-analyzer/scanssh/files/scanssh-2.1.3-libdir.diff191
-rw-r--r--net-analyzer/scanssh/metadata.xml10
-rw-r--r--net-analyzer/scanssh/scanssh-2.1.3.1.ebuild50
-rw-r--r--net-analyzer/scanssh/scanssh-2.1.3.1_p20260130.ebuild51
-rw-r--r--net-analyzer/scapy/Manifest1
-rw-r--r--net-analyzer/scapy/files/scapy-2.6.1-missing-autorun-test-marker.patch10
-rw-r--r--net-analyzer/scapy/files/scapy-2.6.1-skip-test.patch20
-rw-r--r--net-analyzer/scapy/metadata.xml16
-rw-r--r--net-analyzer/scapy/scapy-2.6.1.ebuild88
-rw-r--r--net-analyzer/sec/Manifest2
-rw-r--r--net-analyzer/sec/files/sec.conf.d12
-rw-r--r--net-analyzer/sec/files/sec.init.d35
-rw-r--r--net-analyzer/sec/metadata.xml9
-rw-r--r--net-analyzer/sec/sec-2.9.3.ebuild30
-rw-r--r--net-analyzer/sec/sec-2.9.4.ebuild29
-rw-r--r--net-analyzer/sflowtool/Manifest1
-rw-r--r--net-analyzer/sflowtool/metadata.xml9
-rw-r--r--net-analyzer/sflowtool/sflowtool-6.06.ebuild35
-rw-r--r--net-analyzer/shodan/Manifest1
-rw-r--r--net-analyzer/shodan/metadata.xml19
-rw-r--r--net-analyzer/shodan/shodan-1.31.0.ebuild36
-rw-r--r--net-analyzer/shodan/shodan-9999.ebuild36
-rw-r--r--net-analyzer/slurm/Manifest1
-rw-r--r--net-analyzer/slurm/metadata.xml17
-rw-r--r--net-analyzer/slurm/slurm-0.4.4.ebuild20
-rw-r--r--net-analyzer/snallygaster/Manifest2
-rw-r--r--net-analyzer/snallygaster/metadata.xml8
-rw-r--r--net-analyzer/snallygaster/snallygaster-0.0.14.ebuild26
-rw-r--r--net-analyzer/snallygaster/snallygaster-0.0.15.ebuild23
-rw-r--r--net-analyzer/sngrep/Manifest1
-rw-r--r--net-analyzer/sngrep/metadata.xml12
-rw-r--r--net-analyzer/sngrep/sngrep-1.8.2.ebuild46
-rw-r--r--net-analyzer/sniffit/Manifest2
-rw-r--r--net-analyzer/sniffit/files/sniffit-0.4.0-tinfo.patch12
-rw-r--r--net-analyzer/sniffit/files/sniffit-0.5.0-implicit-func-decl.patch50
-rw-r--r--net-analyzer/sniffit/files/sniffit-0.6-tinfo.patch12
-rw-r--r--net-analyzer/sniffit/metadata.xml9
-rw-r--r--net-analyzer/sniffit/sniffit-0.5-r1.ebuild31
-rw-r--r--net-analyzer/sniffit/sniffit-0.6_p20240924.ebuild44
-rw-r--r--net-analyzer/snmpclitools/Manifest1
-rw-r--r--net-analyzer/snmpclitools/metadata.xml10
-rw-r--r--net-analyzer/snmpclitools/snmpclitools-0.7.2.ebuild26
-rw-r--r--net-analyzer/snmptt/Manifest1
-rw-r--r--net-analyzer/snmptt/files/snmptt.initd-r119
-rw-r--r--net-analyzer/snmptt/metadata.xml12
-rw-r--r--net-analyzer/snmptt/snmptt-1.4.2.ebuild60
-rw-r--r--net-analyzer/snort/Manifest1
-rw-r--r--net-analyzer/snort/files/snort-2.9.12-snort.pc.patch11
-rw-r--r--net-analyzer/snort/files/snort-2.9.20-gcc-15-fix.patch26
-rw-r--r--net-analyzer/snort/files/snort-2.9.8.3-no-implicit.patch8
-rw-r--r--net-analyzer/snort/files/snort-2.9.8.3-rpc.patch26
-rw-r--r--net-analyzer/snort/files/snort.confd.216
-rw-r--r--net-analyzer/snort/files/snort.rc1260
-rw-r--r--net-analyzer/snort/files/snort.tmpfiles1
-rw-r--r--net-analyzer/snort/files/snort_at.service11
-rw-r--r--net-analyzer/snort/metadata.xml112
-rw-r--r--net-analyzer/snort/snort-2.9.20-r1.ebuild253
-rw-r--r--net-analyzer/snort/snort-2.9.20.ebuild252
-rw-r--r--net-analyzer/snortalog/Manifest1
-rw-r--r--net-analyzer/snortalog/metadata.xml9
-rw-r--r--net-analyzer/snortalog/snortalog-2.4.3-r2.ebuild65
-rw-r--r--net-analyzer/softflowd/Manifest1
-rw-r--r--net-analyzer/softflowd/files/softflowd.confd9
-rw-r--r--net-analyzer/softflowd/files/softflowd.initd53
-rw-r--r--net-analyzer/softflowd/metadata.xml9
-rw-r--r--net-analyzer/softflowd/softflowd-1.0.0.ebuild35
-rw-r--r--net-analyzer/speedtest++/Manifest1
-rw-r--r--net-analyzer/speedtest++/files/speedtest++-0.0.20240407-cmake-4.patch8
-rw-r--r--net-analyzer/speedtest++/metadata.xml9
-rw-r--r--net-analyzer/speedtest++/speedtest++-0.0.20240407.ebuild26
-rw-r--r--net-analyzer/speedtest-cli/Manifest1
-rw-r--r--net-analyzer/speedtest-cli/files/speedtest-cli-2.1.3-json-serverlist.patch88
-rw-r--r--net-analyzer/speedtest-cli/metadata.xml9
-rw-r--r--net-analyzer/speedtest-cli/speedtest-cli-2.1.3-r2.ebuild27
-rw-r--r--net-analyzer/sqlninja/Manifest1
-rw-r--r--net-analyzer/sqlninja/files/sqlninja4
-rw-r--r--net-analyzer/sqlninja/metadata.xml9
-rw-r--r--net-analyzer/sqlninja/sqlninja-0.2.6_p1-r1.ebuild52
-rw-r--r--net-analyzer/squid-graph/Manifest1
-rw-r--r--net-analyzer/squid-graph/metadata.xml9
-rw-r--r--net-analyzer/squid-graph/squid-graph-3.2-r2.ebuild20
-rw-r--r--net-analyzer/squidview/Manifest1
-rw-r--r--net-analyzer/squidview/files/squidview-0.86-tinfo.patch43
-rw-r--r--net-analyzer/squidview/metadata.xml5
-rw-r--r--net-analyzer/squidview/squidview-0.86.ebuild32
-rw-r--r--net-analyzer/ssh-audit/Manifest2
-rw-r--r--net-analyzer/ssh-audit/metadata.xml13
-rw-r--r--net-analyzer/ssh-audit/ssh-audit-3.3.0.ebuild27
-rw-r--r--net-analyzer/ssh-audit/ssh-audit-3.3.0_p20250901.ebuild29
-rw-r--r--net-analyzer/sshping/Manifest1
-rw-r--r--net-analyzer/sshping/files/sshping-0.1.4-cmake-minimum-version.patch30
-rw-r--r--net-analyzer/sshping/files/sshping-0.1.4-fix-man-dir.patch13
-rw-r--r--net-analyzer/sshping/files/sshping-0.1.4-respect-cxxflags.patch13
-rw-r--r--net-analyzer/sshping/metadata.xml9
-rw-r--r--net-analyzer/sshping/sshping-0.1.4-r1.ebuild33
-rw-r--r--net-analyzer/ssldump/Manifest3
-rw-r--r--net-analyzer/ssldump/metadata.xml9
-rw-r--r--net-analyzer/ssldump/ssldump-1.5.ebuild32
-rw-r--r--net-analyzer/ssldump/ssldump-1.8.ebuild26
-rw-r--r--net-analyzer/ssldump/ssldump-1.9.ebuild26
-rw-r--r--net-analyzer/sslscan/Manifest3
-rw-r--r--net-analyzer/sslscan/files/gentoo.config-1.0.2171
-rw-r--r--net-analyzer/sslscan/files/sslscan-2.2.0-use-distfile-openssl.patch18
-rw-r--r--net-analyzer/sslscan/files/sslscan-2.2.1-respect-makej.patch43
-rw-r--r--net-analyzer/sslscan/metadata.xml13
-rw-r--r--net-analyzer/sslscan/sslscan-2.2.0.ebuild82
-rw-r--r--net-analyzer/sslscan/sslscan-2.2.1-r1.ebuild83
-rw-r--r--net-analyzer/sslscan/sslscan-2.2.1.ebuild80
-rw-r--r--net-analyzer/sslsplit/Manifest1
-rw-r--r--net-analyzer/sslsplit/files/sslsplit-0.5.5-libcrypto-pkgconfig.patch23
-rw-r--r--net-analyzer/sslsplit/files/sslsplit-0.5.5-libnet-pkgconfig.patch40
-rw-r--r--net-analyzer/sslsplit/files/sslsplit-0.5.5-openssl3.patch31
-rw-r--r--net-analyzer/sslsplit/metadata.xml21
-rw-r--r--net-analyzer/sslsplit/sslsplit-0.5.5-r1.ebuild57
-rw-r--r--net-analyzer/ssmping/Manifest1
-rw-r--r--net-analyzer/ssmping/files/ssmping-0.9-build.patch23
-rw-r--r--net-analyzer/ssmping/metadata.xml9
-rw-r--r--net-analyzer/ssmping/ssmping-0.9.1.ebuild29
-rw-r--r--net-analyzer/suricata/Manifest2
-rw-r--r--net-analyzer/suricata/files/suricata-5.0.1_configure-no-lz4-automagic.patch23
-rw-r--r--net-analyzer/suricata/files/suricata-5.0.7_configure-no-hyperscan-automagic.patch24
-rw-r--r--net-analyzer/suricata/files/suricata-6.0.0_default-config.patch27
-rw-r--r--net-analyzer/suricata/files/suricata-7.0.2_configure-no-sphinx-pdflatex-automagic.patch20
-rw-r--r--net-analyzer/suricata/files/suricata-7.0.5_configure-fortify_source.patch18
-rw-r--r--net-analyzer/suricata/files/suricata.confd62
-rw-r--r--net-analyzer/suricata/files/suricata.initd147
-rw-r--r--net-analyzer/suricata/files/suricata.service19
-rw-r--r--net-analyzer/suricata/files/suricata.tmpfiles1
-rw-r--r--net-analyzer/suricata/metadata.xml21
-rw-r--r--net-analyzer/suricata/suricata-7.0.15-r1.ebuild232
-rw-r--r--net-analyzer/symon/Manifest2
-rw-r--r--net-analyzer/symon/files/symon-2.89-condition-makefiles.patch39
-rw-r--r--net-analyzer/symon/files/symon-2.89-extern_c.patch441
-rw-r--r--net-analyzer/symon/files/symon-init.d32
-rw-r--r--net-analyzer/symon/files/symon.conf14
-rw-r--r--net-analyzer/symon/files/symux-init.d32
-rw-r--r--net-analyzer/symon/files/symux.conf35
-rw-r--r--net-analyzer/symon/metadata.xml16
-rw-r--r--net-analyzer/symon/symon-2.89.ebuild99
-rw-r--r--net-analyzer/symon/symon-2.90.ebuild98
-rw-r--r--net-analyzer/synscan/Manifest1
-rw-r--r--net-analyzer/synscan/files/synscan-5.02-destdir.patch15
-rw-r--r--net-analyzer/synscan/files/synscan-5.02-lld.patch9
-rw-r--r--net-analyzer/synscan/metadata.xml5
-rw-r--r--net-analyzer/synscan/synscan-5.02.ebuild38
-rw-r--r--net-analyzer/syweb/Manifest2
-rw-r--r--net-analyzer/syweb/files/postinstall-en.txt8
-rw-r--r--net-analyzer/syweb/files/reconfig20
-rw-r--r--net-analyzer/syweb/metadata.xml9
-rw-r--r--net-analyzer/syweb/syweb-0.65-r1.ebuild43
-rw-r--r--net-analyzer/syweb/syweb-0.67.ebuild43
-rw-r--r--net-analyzer/tcpdump/Manifest4
-rw-r--r--net-analyzer/tcpdump/files/tcpdump-4.99.5-lfs.patch22
-rw-r--r--net-analyzer/tcpdump/files/tcpdump-4.99.5-libdir.patch29
-rw-r--r--net-analyzer/tcpdump/metadata.xml15
-rw-r--r--net-analyzer/tcpdump/tcpdump-4.99.5.ebuild101
-rw-r--r--net-analyzer/tcpdump/tcpdump-4.99.6.ebuild106
-rw-r--r--net-analyzer/tcpdump/tcpdump-9999.ebuild106
-rw-r--r--net-analyzer/tcpflow/Manifest3
-rw-r--r--net-analyzer/tcpflow/files/tcpflow-1.5.0_alpha-libcapng.patch13
-rw-r--r--net-analyzer/tcpflow/files/tcpflow-1.5.2-gentoo.patch64
-rw-r--r--net-analyzer/tcpflow/files/tcpflow-1.6.1-gcc13.patch22
-rw-r--r--net-analyzer/tcpflow/files/tcpflow-1.6.1-wformat-security.patch24
-rw-r--r--net-analyzer/tcpflow/metadata.xml12
-rw-r--r--net-analyzer/tcpflow/tcpflow-1.6.1-r1.ebuild57
-rw-r--r--net-analyzer/tcping/Manifest1
-rw-r--r--net-analyzer/tcping/metadata.xml8
-rw-r--r--net-analyzer/tcping/tcping-2.1.0.ebuild29
-rw-r--r--net-analyzer/tcpreen/Manifest1
-rw-r--r--net-analyzer/tcpreen/files/tcpreen-1.4.4-literal-suffix.patch13
-rw-r--r--net-analyzer/tcpreen/metadata.xml9
-rw-r--r--net-analyzer/tcpreen/tcpreen-1.4.4-r1.ebuild27
-rw-r--r--net-analyzer/tcpreplay/Manifest1
-rw-r--r--net-analyzer/tcpreplay/files/tcpreplay-4.3.0-enable-pcap_findalldevs.patch11
-rw-r--r--net-analyzer/tcpreplay/metadata.xml23
-rw-r--r--net-analyzer/tcpreplay/tcpreplay-4.5.2.ebuild86
-rw-r--r--net-analyzer/tcpreplay/tcpreplay-9999.ebuild90
-rw-r--r--net-analyzer/tcpslice/Manifest2
-rw-r--r--net-analyzer/tcpslice/metadata.xml12
-rw-r--r--net-analyzer/tcpslice/tcpslice-1.8.ebuild22
-rw-r--r--net-analyzer/tcptraceroute/Manifest1
-rw-r--r--net-analyzer/tcptraceroute/files/tcptraceroute-1.5_beta7-cross-compile-checks.patch62
-rw-r--r--net-analyzer/tcptraceroute/metadata.xml9
-rw-r--r--net-analyzer/tcptraceroute/tcptraceroute-1.5_beta7-r3.ebuild39
-rw-r--r--net-analyzer/tcptrack/Manifest1
-rw-r--r--net-analyzer/tcptrack/files/tcptrack-1.4.2-tinfo.patch11
-rw-r--r--net-analyzer/tcptrack/metadata.xml9
-rw-r--r--net-analyzer/tcptrack/tcptrack-1.4.2-r1.ebuild36
-rw-r--r--net-analyzer/telegraf/Manifest2
-rw-r--r--net-analyzer/telegraf/files/telegraf.confd2
-rw-r--r--net-analyzer/telegraf/files/telegraf.rc18
-rw-r--r--net-analyzer/telegraf/metadata.xml9
-rw-r--r--net-analyzer/telegraf/telegraf-1.26.3-r1.ebuild47
-rw-r--r--net-analyzer/termshark/Manifest2
-rw-r--r--net-analyzer/termshark/files/2.4.0-column-titles.patch50
-rw-r--r--net-analyzer/termshark/files/2.4.0-use-sort.Strings.patch18
-rw-r--r--net-analyzer/termshark/metadata.xml13
-rw-r--r--net-analyzer/termshark/termshark-2.4.0.ebuild42
-rw-r--r--net-analyzer/testssl/Manifest5
-rw-r--r--net-analyzer/testssl/metadata.xml16
-rw-r--r--net-analyzer/testssl/testssl-3.0.10-r1.ebuild88
-rw-r--r--net-analyzer/testssl/testssl-3.0.10.ebuild79
-rw-r--r--net-analyzer/testssl/testssl-3.2.3.ebuild79
-rw-r--r--net-analyzer/thc-ipv6/Manifest2
-rw-r--r--net-analyzer/thc-ipv6/files/thc-ipv6-3.8_p20250914-fix_parallel.patch14
-rw-r--r--net-analyzer/thc-ipv6/metadata.xml5
-rw-r--r--net-analyzer/thc-ipv6/thc-ipv6-3.8.ebuild50
-rw-r--r--net-analyzer/thc-ipv6/thc-ipv6-3.8_p20250914.ebuild57
-rw-r--r--net-analyzer/thc-ipv6/thc-ipv6-9999.ebuild50
-rw-r--r--net-analyzer/thrulay/Manifest1
-rw-r--r--net-analyzer/thrulay/files/thrulayd-conf.d8
-rw-r--r--net-analyzer/thrulay/files/thrulayd-init.d21
-rw-r--r--net-analyzer/thrulay/metadata.xml8
-rw-r--r--net-analyzer/thrulay/thrulay-0.9-r1.ebuild41
-rw-r--r--net-analyzer/tleds/Manifest2
-rw-r--r--net-analyzer/tleds/files/tleds-1.05_beta11-gentoo.patch53
-rw-r--r--net-analyzer/tleds/files/tleds.conf.d6
-rw-r--r--net-analyzer/tleds/files/tleds.init.d21
-rw-r--r--net-analyzer/tleds/metadata.xml9
-rw-r--r--net-analyzer/tleds/tleds-1.05_beta11-r2.ebuild45
-rw-r--r--net-analyzer/tptest/Manifest1
-rw-r--r--net-analyzer/tptest/files/tptest-3.1.7-clang16-build-fix.patch11
-rw-r--r--net-analyzer/tptest/files/tptest-3.1.7-getstatsfromlinevuln.patch150
-rw-r--r--net-analyzer/tptest/metadata.xml9
-rw-r--r--net-analyzer/tptest/tptest-3.1.7-r3.ebuild50
-rw-r--r--net-analyzer/tracebox/Manifest1
-rw-r--r--net-analyzer/tracebox/files/tracebox-0.4.4-autotools.patch214
-rw-r--r--net-analyzer/tracebox/files/tracebox-0.4.4-include-crafter.patch44
-rw-r--r--net-analyzer/tracebox/metadata.xml15
-rw-r--r--net-analyzer/tracebox/tracebox-0.4.4-r100.ebuild52
-rw-r--r--net-analyzer/traceroute/Manifest2
-rw-r--r--net-analyzer/traceroute/metadata.xml12
-rw-r--r--net-analyzer/traceroute/traceroute-2.1.3.ebuild33
-rw-r--r--net-analyzer/traceroute/traceroute-2.1.5.ebuild33
-rw-r--r--net-analyzer/trippy/Manifest428
-rw-r--r--net-analyzer/trippy/metadata.xml9
-rw-r--r--net-analyzer/trippy/trippy-0.12.2.ebuild330
-rw-r--r--net-analyzer/trippy/trippy-0.13.0.ebuild352
-rw-r--r--net-analyzer/tsung/Manifest1
-rw-r--r--net-analyzer/tsung/metadata.xml9
-rw-r--r--net-analyzer/tsung/tsung-1.8.0.ebuild36
-rw-r--r--net-analyzer/ttcp/Manifest2
-rw-r--r--net-analyzer/ttcp/files/ttcp-1.12-c23.patch77
-rw-r--r--net-analyzer/ttcp/metadata.xml9
-rw-r--r--net-analyzer/ttcp/ttcp-1.12-r3.ebuild38
-rw-r--r--net-analyzer/ttl/Manifest12
-rw-r--r--net-analyzer/ttl/metadata.xml9
-rw-r--r--net-analyzer/ttl/ttl-0.13.3.ebuild47
-rw-r--r--net-analyzer/ttl/ttl-0.15.3.ebuild47
-rw-r--r--net-analyzer/ttl/ttl-0.16.1.ebuild47
-rw-r--r--net-analyzer/ttl/ttl-0.17.0.ebuild51
-rw-r--r--net-analyzer/ttl/ttl-0.18.0.ebuild51
-rw-r--r--net-analyzer/ttl/ttl-0.19.0.ebuild51
-rw-r--r--net-analyzer/vnstat/Manifest2
-rw-r--r--net-analyzer/vnstat/files/vnstat-2.9-conf.patch39
-rw-r--r--net-analyzer/vnstat/files/vnstat.cron-r17
-rw-r--r--net-analyzer/vnstat/files/vnstat.cron-r27
-rw-r--r--net-analyzer/vnstat/files/vnstatd.confd-r118
-rw-r--r--net-analyzer/vnstat/files/vnstatd.initd-r229
-rw-r--r--net-analyzer/vnstat/files/vnstatd.initd-r329
-rw-r--r--net-analyzer/vnstat/files/vnstatd.systemd11
-rw-r--r--net-analyzer/vnstat/files/vnstatd.systemd-r111
-rw-r--r--net-analyzer/vnstat/files/vnstatd.tmpfile1
-rw-r--r--net-analyzer/vnstat/metadata.xml22
-rw-r--r--net-analyzer/vnstat/vnstat-2.13-r2.ebuild79
-rw-r--r--net-analyzer/vnstat/vnstat-2.13.ebuild90
-rw-r--r--net-analyzer/vnstat/vnstat-9999.ebuild79
-rw-r--r--net-analyzer/wireshark/Manifest4
-rw-r--r--net-analyzer/wireshark/files/4.4.6-lto.patch164
-rw-r--r--net-analyzer/wireshark/files/4.6.2-gnutls-pkcs11.patch45
-rw-r--r--net-analyzer/wireshark/files/4.6.5-disable-sidebar.patch21
-rw-r--r--net-analyzer/wireshark/files/4.6.5-remove-unused-variable.patch36
-rw-r--r--net-analyzer/wireshark/files/release-notes.html6
-rw-r--r--net-analyzer/wireshark/metadata.xml79
-rw-r--r--net-analyzer/wireshark/wireshark-4.6.5-r1.ebuild352
-rw-r--r--net-analyzer/wireshark/wireshark-4.6.6.ebuild338
-rw-r--r--net-analyzer/wireshark/wireshark-9999.ebuild337
-rw-r--r--net-analyzer/wtfis/Manifest2
-rw-r--r--net-analyzer/wtfis/metadata.xml19
-rw-r--r--net-analyzer/wtfis/wtfis-0.14.0.ebuild37
-rw-r--r--net-analyzer/wtfis/wtfis-0.15.0.ebuild37
-rw-r--r--net-analyzer/wtfis/wtfis-9999.ebuild37
-rw-r--r--net-analyzer/xnetload/Manifest1
-rw-r--r--net-analyzer/xnetload/files/xnetload-1.11.3-libdir.patch11
-rw-r--r--net-analyzer/xnetload/metadata.xml9
-rw-r--r--net-analyzer/xnetload/xnetload-1.11.3-r1.ebuild48
-rw-r--r--net-analyzer/xprobe/Manifest1
-rw-r--r--net-analyzer/xprobe/files/xprobe-0.3-clang.patch16
-rw-r--r--net-analyzer/xprobe/files/xprobe-0.3-cxx11.patch11
-rw-r--r--net-analyzer/xprobe/files/xprobe-0.3-demangle-output.patch156
-rw-r--r--net-analyzer/xprobe/files/xprobe-0.3-gcc-12.patch21
-rw-r--r--net-analyzer/xprobe/files/xprobe-0.3-gcc43.patch29
-rw-r--r--net-analyzer/xprobe/files/xprobe-0.3-makefiles.patch99
-rw-r--r--net-analyzer/xprobe/metadata.xml15
-rw-r--r--net-analyzer/xprobe/xprobe-0.3-r1.ebuild41
-rw-r--r--net-analyzer/xprobe/xprobe-0.3-r2.ebuild41
-rw-r--r--net-analyzer/yersinia/Manifest1
-rw-r--r--net-analyzer/yersinia/files/yersinia-0.7.1-no-ncurses.patch13
-rw-r--r--net-analyzer/yersinia/files/yersinia-0.7.3-tinfo.patch27
-rw-r--r--net-analyzer/yersinia/files/yersinia-0.8.2-C23.patch12
-rw-r--r--net-analyzer/yersinia/metadata.xml14
-rw-r--r--net-analyzer/yersinia/yersinia-0.8.2_p20221119.ebuild65
-rw-r--r--net-analyzer/zabbix/Manifest18
-rw-r--r--net-analyzer/zabbix/files/zabbix-3.0.30-security-disable-PidFile.patch41
-rw-r--r--net-analyzer/zabbix/files/zabbix-4.0.18-modulepathfix.patch11
-rw-r--r--net-analyzer/zabbix/files/zabbix-6.0.3-system.sw.packages.patch26
-rw-r--r--net-analyzer/zabbix/files/zabbix-6.4.0-configure-sscanf.patch12
-rw-r--r--net-analyzer/zabbix/files/zabbix-agent2.init20
-rw-r--r--net-analyzer/zabbix/files/zabbix-agent2.service12
-rw-r--r--net-analyzer/zabbix/files/zabbix-agent2.tmpfiles1
-rw-r--r--net-analyzer/zabbix/files/zabbix-agentd.init20
-rw-r--r--net-analyzer/zabbix/files/zabbix-agentd.service12
-rw-r--r--net-analyzer/zabbix/files/zabbix-agentd.tmpfiles1
-rw-r--r--net-analyzer/zabbix/files/zabbix-jmx-proxy.conf12
-rw-r--r--net-analyzer/zabbix/files/zabbix-jmx-proxy.init33
-rw-r--r--net-analyzer/zabbix/files/zabbix-proxy.init20
-rw-r--r--net-analyzer/zabbix/files/zabbix-proxy.service12
-rw-r--r--net-analyzer/zabbix/files/zabbix-proxy.tmpfiles1
-rw-r--r--net-analyzer/zabbix/files/zabbix-server-r1.init25
-rw-r--r--net-analyzer/zabbix/files/zabbix-server.service15
-rw-r--r--net-analyzer/zabbix/files/zabbix-server.tmpfiles1
-rw-r--r--net-analyzer/zabbix/metadata.xml37
-rw-r--r--net-analyzer/zabbix/zabbix-6.0.41.ebuild389
-rw-r--r--net-analyzer/zabbix/zabbix-6.0.43.ebuild389
-rw-r--r--net-analyzer/zabbix/zabbix-6.0.46.ebuild389
-rw-r--r--net-analyzer/zabbix/zabbix-7.0.18.ebuild371
-rw-r--r--net-analyzer/zabbix/zabbix-7.0.22.ebuild371
-rw-r--r--net-analyzer/zabbix/zabbix-7.0.26.ebuild371
-rw-r--r--net-analyzer/zabbix/zabbix-7.4.10.ebuild371
-rw-r--r--net-analyzer/zabbix/zabbix-7.4.2.ebuild371
-rw-r--r--net-analyzer/zabbix/zabbix-7.4.6.ebuild371
-rw-r--r--net-analyzer/zmap/Manifest1
-rw-r--r--net-analyzer/zmap/files/zmap-4.3.2-cmake.patch12
-rw-r--r--net-analyzer/zmap/files/zmap-4.3.2-pkgconfig.patch18
-rw-r--r--net-analyzer/zmap/metadata.xml16
-rw-r--r--net-analyzer/zmap/zmap-4.3.2.ebuild53
1384 files changed, 55465 insertions, 0 deletions
diff --git a/net-analyzer/2ping/2ping-4.5.1-r1.ebuild b/net-analyzer/2ping/2ping-4.5.1-r1.ebuild
new file mode 100644
index 000000000000..3dd3f42cc528
--- /dev/null
+++ b/net-analyzer/2ping/2ping-4.5.1-r1.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+inherit bash-completion-r1 distutils-r1
+
+DESCRIPTION="A bi-directional ping utility"
+HOMEPAGE="https://www.finnie.org/software/2ping/"
+SRC_URI="https://www.finnie.org/software/2ping/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~mips ~ppc ~ppc64 ~riscv ~x86"
+IUSE="server"
+
+distutils_enable_tests pytest
+
+src_install() {
+ distutils-r1_src_install
+
+ doman doc/2ping.1
+ dodoc doc/{2ping-protocol-examples.py,2ping-protocol.md}
+
+ newbashcomp 2ping.bash_completion 2ping
+ dosym 2ping $(get_bashcompdir)/2ping6
+
+ use server && {
+ doinitd "${FILESDIR}"/2pingd
+ newconfd "${FILESDIR}"/2pingd.conf 2pingd
+ }
+}
diff --git a/net-analyzer/2ping/Manifest b/net-analyzer/2ping/Manifest
new file mode 100644
index 000000000000..8bb597955867
--- /dev/null
+++ b/net-analyzer/2ping/Manifest
@@ -0,0 +1 @@
+DIST 2ping-4.5.1.tar.gz 77053 BLAKE2B e1255264dde4e0deb2d064e0acbaf96270e64a057334a0c0eea4e413e472cd52ffdf2181718dca4309eb8843791ef2bef866b7cf5642f9ff41e9916c3d7180e0 SHA512 13ab8c34d6b4e8d53bc0f1c33afa1c71bf61313d29350d2211a44557b244062cb090cf5d66cc6eed58f9f4c41a667bb24a8c1155243864e8343c741770b60cd6
diff --git a/net-analyzer/2ping/files/2pingd b/net-analyzer/2ping/files/2pingd
new file mode 100644
index 000000000000..b558de2d18f6
--- /dev/null
+++ b/net-analyzer/2ping/files/2pingd
@@ -0,0 +1,35 @@
+#!/sbin/openrc-run
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+DAEMON="/usr/bin/2ping"
+PIDFILE="/run/2ping.pid"
+
+depend() {
+ need net
+}
+
+start() {
+ ebegin "Starting 2ping server"
+ start-stop-daemon --start \
+ --background --make-pidfile \
+ --pidfile "${PIDFILE}" \
+ --exec "${DAEMON}" -- \
+ --listen -q ${OPTS} \
+ >/dev/null
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping 2ping server"
+ start-stop-daemon --stop --pidfile "${PIDFILE}"
+ eend $?
+}
+
+restart() {
+ ebegin "Restarting 2ping server"
+ start-stop-daemon --stop --pidfile "${PIDFILE}"
+ sleep 1
+ start-stop-daemon --start --exec "${DAEMON}" --pidfile "${PIDFILE}"
+ eend $?
+}
diff --git a/net-analyzer/2ping/files/2pingd.conf b/net-analyzer/2ping/files/2pingd.conf
new file mode 100644
index 000000000000..12c263d3d054
--- /dev/null
+++ b/net-analyzer/2ping/files/2pingd.conf
@@ -0,0 +1,2 @@
+#Pass any extra 2ping server options here
+#OPTS="--ipv6"
diff --git a/net-analyzer/2ping/metadata.xml b/net-analyzer/2ping/metadata.xml
new file mode 100644
index 000000000000..328a0a33132f
--- /dev/null
+++ b/net-analyzer/2ping/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <use>
+ <flag name="server">Install the server init scripts.</flag>
+ </use>
+ <stabilize-allarches />
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/alive/Manifest b/net-analyzer/alive/Manifest
new file mode 100644
index 000000000000..bb460f83ecf4
--- /dev/null
+++ b/net-analyzer/alive/Manifest
@@ -0,0 +1 @@
+DIST alive-2.0.5.tar.lz 186304 BLAKE2B 8528d7b86030ff0b54cd391a7cd7b42be974d5f605c66c6340468855959d2adf31940312d6693580839e9180813a3e96c2fe86a3842f3abd00af0e08b7f301ee SHA512 f760f9386019ddeac8690eec9119d557d4e288cc8698ce69adc8d9915eb0bc27fcf4015e9c4710411321d21c11731e61be754e9b827dceceab6463e531ed4240
diff --git a/net-analyzer/alive/alive-2.0.5-r100.ebuild b/net-analyzer/alive/alive-2.0.5-r100.ebuild
new file mode 100644
index 000000000000..277a47bb198a
--- /dev/null
+++ b/net-analyzer/alive/alive-2.0.5-r100.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+GUILE_COMPAT=( 2-2 3-0 )
+inherit autotools guile-single unpacker
+
+DESCRIPTION="Periodic ping program"
+HOMEPAGE="https://www.gnu.org/software/alive/"
+SRC_URI="mirror://gnu/${PN}/${P}.tar.lz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~x86"
+
+REQUIRED_USE="${GUILE_REQUIRED_USE}"
+
+DEPEND="${GUILE_DEPS}"
+RDEPEND="${DEPEND}
+ dev-scheme/xdgdirs
+ net-misc/iputils"
+BDEPEND="$(unpacker_src_uri_depends)"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.0.2-ping-test.patch
+)
+
+src_prepare() {
+ guile-single_src_prepare
+
+ eautoreconf
+}
diff --git a/net-analyzer/alive/files/alive-2.0.2-ping-test.patch b/net-analyzer/alive/files/alive-2.0.2-ping-test.patch
new file mode 100644
index 000000000000..3b1b1257c9b3
--- /dev/null
+++ b/net-analyzer/alive/files/alive-2.0.2-ping-test.patch
@@ -0,0 +1,14 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -35,11 +35,6 @@
+ [alive_cv_nice_ping=yes],
+ [alive_cv_nice_ping=no])])
+
+-dnl Luckily both inetutils-ping and iputils-ping are nice.
+-AS_IF([test xno = x$alive_cv_nice_ping],
+-[AC_MSG_ERROR([$PING does not support ‘-n -c 1’.
+-Please install a ping program that does, and retry.])])
+-
+ AC_CONFIG_FILES([
+ Makefile
+ src/Makefile
diff --git a/net-analyzer/alive/metadata.xml b/net-analyzer/alive/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/alive/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/apinger/Manifest b/net-analyzer/apinger/Manifest
new file mode 100644
index 000000000000..650ea64a3ae2
--- /dev/null
+++ b/net-analyzer/apinger/Manifest
@@ -0,0 +1 @@
+DIST apinger-0.6.1.tar.gz 134127 BLAKE2B 8f54d5514a5410973b5f44166741582fc16a2b0b1398eab001943e2924704ae5400e2c0ce4ca1694cadfc6fa3e47d395aa3d6affd7e4873fb172bf027c26c251 SHA512 eca6cee186d538200619188d9481154114ef9d7eae4f11f389eb61382f507d108bc64622fe99b1bae17ecc3ca7b2bc4ff4d0a3156ebf2913803e7be24b0d3f94
diff --git a/net-analyzer/apinger/apinger-0.6.1.ebuild b/net-analyzer/apinger/apinger-0.6.1.ebuild
new file mode 100644
index 000000000000..98e7484f48b9
--- /dev/null
+++ b/net-analyzer/apinger/apinger-0.6.1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit autotools
+
+DESCRIPTION="Alarm Pinger"
+HOMEPAGE="https://github.com/Jajcus/apinger/"
+SRC_URI="
+ https://dev.gentoo.org/~jsmolic/distfiles/${P}.tar.gz
+"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND="
+ app-alternatives/lex
+ app-alternatives/yacc
+"
+DOCS=( AUTHORS ChangeLog NEWS README TODO )
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.4.1-fno-common.patch
+ "${FILESDIR}"/${PN}-0.4.1-stray-backslash.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_compile() {
+ emake -C src/ cfgparser1.h
+ default
+}
+
+src_install() {
+ default
+ insinto /etc
+ doins src/${PN}.conf
+}
diff --git a/net-analyzer/apinger/files/apinger-0.4.1-fno-common.patch b/net-analyzer/apinger/files/apinger-0.4.1-fno-common.patch
new file mode 100644
index 000000000000..d74dc1c66f27
--- /dev/null
+++ b/net-analyzer/apinger/files/apinger-0.4.1-fno-common.patch
@@ -0,0 +1,11 @@
+--- a/src/apinger.h
++++ b/src/apinger.h
+@@ -99,7 +99,7 @@
+ void *target_id;
+ };
+
+-struct target *targets;
++extern struct target *targets;
+
+ extern int foreground;
+ extern char *config_file;
diff --git a/net-analyzer/apinger/files/apinger-0.4.1-stray-backslash.patch b/net-analyzer/apinger/files/apinger-0.4.1-stray-backslash.patch
new file mode 100644
index 000000000000..3c5d5158563a
--- /dev/null
+++ b/net-analyzer/apinger/files/apinger-0.4.1-stray-backslash.patch
@@ -0,0 +1,13 @@
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -39,8 +39,8 @@
+ [$jk_inet_includes
+ $jk_icmp_includes])
+
+-AC_CHECK_MEMBERS([struct icmp.icmp_type, struct icmp.icmp_code,\
+-struct icmp.icmp_cksum, struct icmp.icmp_seq,\
++AC_CHECK_MEMBERS([struct icmp.icmp_type, struct icmp.icmp_code,
++struct icmp.icmp_cksum, struct icmp.icmp_seq,
+ struct icmp.icmp_id],[],
+ AC_MSG_ERROR(struct icmp not defined or not compatible),
+ [$jk_inet_includes
diff --git a/net-analyzer/apinger/metadata.xml b/net-analyzer/apinger/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/apinger/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/argus-clients/Manifest b/net-analyzer/argus-clients/Manifest
new file mode 100644
index 000000000000..e8b59fc9f84c
--- /dev/null
+++ b/net-analyzer/argus-clients/Manifest
@@ -0,0 +1 @@
+DIST argus-clients-3.0.8.4.tar.gz 2773840 BLAKE2B 0b5a24bc6a5c3163a0ac19a3a354e6573491e130c4b854bc4c9b19e6dfa1d27acea8338a88e589043b839994182756b04e205d9ef6815b2f7dc347fb51405c88 SHA512 5b6a03528c31b534d56370b4b8189d223691bb0d8f465349e7850bf54b4663e9851bddb54060a8bc263be3b80f4eab829413a7ff4da312e6640e2f7191d65473
diff --git a/net-analyzer/argus-clients/argus-clients-3.0.8.4.ebuild b/net-analyzer/argus-clients/argus-clients-3.0.8.4.ebuild
new file mode 100644
index 000000000000..4410c5ca3d0f
--- /dev/null
+++ b/net-analyzer/argus-clients/argus-clients-3.0.8.4.ebuild
@@ -0,0 +1,76 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools toolchain-funcs
+
+DESCRIPTION="Clients for net-analyzer/argus"
+HOMEPAGE="https://openargus.org/"
+SRC_URI="https://github.com/openargus/clients/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}"/clients-${PV}
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86"
+IUSE="debug ft geoip mysql sasl tcpd"
+
+RDEPEND="
+ net-analyzer/rrdtool[perl]
+ net-libs/libpcap
+ net-libs/libtirpc:=
+ sys-libs/ncurses:=
+ sys-libs/readline:=
+ virtual/zlib:=
+ ft? ( net-analyzer/flow-tools )
+ geoip? ( dev-libs/geoip )
+ mysql? ( dev-db/mysql-connector-c:0= )
+ sasl? ( dev-libs/cyrus-sasl )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ app-alternatives/yacc
+ app-alternatives/lex
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.0.4.1-disable-tcp-wrappers-automagic.patch
+ "${FILESDIR}"/${PN}-3.0.7.21-curses-readline.patch
+ "${FILESDIR}"/${PN}-3.0.8.2-ar.patch
+ "${FILESDIR}"/${PN}-3.0.8.2-curses-readline.patch
+ "${FILESDIR}"/${PN}-3.0.8.2-my_bool.patch
+ "${FILESDIR}"/${PN}-3.0.8.3-configure-clang16.patch
+ "${FILESDIR}"/${PN}-3.0.8.4-autoconf-2.70.patch
+)
+
+src_prepare() {
+ default
+
+ eautoreconf
+}
+
+src_configure() {
+ tc-export AR RANLIB
+
+ use debug && touch .debug
+ econf \
+ $(use_with ft libft) \
+ $(use_with geoip GeoIP /usr/) \
+ $(use_with sasl) \
+ $(use_with tcpd wrappers) \
+ $(use_with mysql mysql /usr)
+}
+
+src_compile() {
+ emake \
+ CCOPT="${CFLAGS} ${LDFLAGS}" \
+ RANLIB="$(tc-getRANLIB)" \
+ CURSESLIB="$( $(tc-getPKG_CONFIG) --libs ncurses)"
+}
+
+src_install() {
+ dobin bin/ra*
+ dodoc ChangeLog CREDITS README CHANGES
+ doman man/man{1,5}/*
+}
diff --git a/net-analyzer/argus-clients/files/argus-clients-3.0.4.1-disable-tcp-wrappers-automagic.patch b/net-analyzer/argus-clients/files/argus-clients-3.0.4.1-disable-tcp-wrappers-automagic.patch
new file mode 100644
index 000000000000..8e240043625d
--- /dev/null
+++ b/net-analyzer/argus-clients/files/argus-clients-3.0.4.1-disable-tcp-wrappers-automagic.patch
@@ -0,0 +1,23 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -121,6 +121,12 @@
+ esac
+
+ AC_QOSIENT_THREADS(V_THREADS)
++
++AC_ARG_WITH(wrappers,
++ [ --with-wrappers build with libwrappers suuport],
++ with_wrappers="$withval",
++ with_wrappers="yes")
++if test "x$with_wrappers" != "xno"; then
+ AC_QOSIENT_TCPWRAP(V_WRAPDEP, V_INCLS)
+ if test ! -z "$V_WRAPDEP"; then
+ if test -f $V_WRAPDEP; then
+@@ -144,6 +150,7 @@
+ AC_DEFINE([HAVE_TCP_WRAPPER], [], [Using Tcp wrappers])
+ WRAPLIBS="$V_WRAPDEP"
+ fi
++fi
+
+ CURSESLIB=""
+
diff --git a/net-analyzer/argus-clients/files/argus-clients-3.0.7.21-curses-readline.patch b/net-analyzer/argus-clients/files/argus-clients-3.0.7.21-curses-readline.patch
new file mode 100644
index 000000000000..787ff5ac9118
--- /dev/null
+++ b/net-analyzer/argus-clients/files/argus-clients-3.0.7.21-curses-readline.patch
@@ -0,0 +1,21 @@
+--- a/examples/ratop/Makefile.in
++++ b/examples/ratop/Makefile.in
+@@ -54,7 +54,8 @@
+ DEFS = @DEFS@
+ COMPATLIB = @COMPATLIB@ @LIB_SASL@ @LIBS@ @V_THREADS@ @V_GEOIPDEP@ @V_PCRE@ @V_FTDEP@ @ZLIB@
+
+-CURSESLIB = @CURSESLIB@ @V_READLINE@
++CURSESLIB = @CURSESLIB@
++V_READLINE = @V_READLINE@
+
+ # Standard CFLAGS
+ CFLAGS = $(CCOPT) $(INCLS) $(DEFS)
+@@ -93,7 +94,7 @@
+ all: $(PROGS)
+
+ $(INSTALLBIN)/ratop: $(OBJ) $(LIB)
+- $(CC) $(CFLAGS) -o $@ $(OBJ) $(LDFLAGS) $(LIB) $(COMPATLIB) $(CURSESLIB)
++ $(CC) $(CFLAGS) -o $@ $(OBJ) $(LDFLAGS) $(LIB) $(COMPATLIB) $(CURSESLIB) $(V_READLINE)
+
+ CLEANFILES = $(OBJ) $(PROGS)
+
diff --git a/net-analyzer/argus-clients/files/argus-clients-3.0.8.2-ar.patch b/net-analyzer/argus-clients/files/argus-clients-3.0.8.2-ar.patch
new file mode 100644
index 000000000000..e5df5378ab17
--- /dev/null
+++ b/net-analyzer/argus-clients/files/argus-clients-3.0.8.2-ar.patch
@@ -0,0 +1,31 @@
+--- a/common/Makefile.in
++++ b/common/Makefile.in
+@@ -113,23 +113,23 @@
+ all: $(LIBS)
+
+ @INSTALL_LIB@/argus_common.a: $(COMMONOBJ)
+- rm -f $@; ar qc $@ $(COMMONOBJ)
++ rm -f $@; $(AR) qc $@ $(COMMONOBJ)
+ -$(RANLIB) $@
+
+ @INSTALL_LIB@/argus_parse.a: $(PARSEOBJ)
+- rm -f $@; ar qc $@ $(PARSEOBJ)
++ rm -f $@; $(AR) qc $@ $(PARSEOBJ)
+ -$(RANLIB) $@
+
+ @INSTALL_LIB@/argus_client.a: $(CLIENTOBJ)
+- rm -f $@; ar qc $@ $(CLIENTOBJ)
++ rm -f $@; $(AR) qc $@ $(CLIENTOBJ)
+ -$(RANLIB) $@
+
+ @INSTALL_LIB@/argus_output.a: $(OUTPUTOBJ)
+- rm -f $@; ar qc $@ $(OUTPUTOBJ)
++ rm -f $@; $(AR) qc $@ $(OUTPUTOBJ)
+ -$(RANLIB) $@
+
+ @INSTALL_LIB@/argus_event.a: $(EVENTOBJ)
+- rm -f $@; ar qc $@ $(EVENTOBJ)
++ rm -f $@; $(AR) qc $@ $(EVENTOBJ)
+ -$(RANLIB) $@
+
+ scanner.c: scanner.l
diff --git a/net-analyzer/argus-clients/files/argus-clients-3.0.8.2-curses-readline.patch b/net-analyzer/argus-clients/files/argus-clients-3.0.8.2-curses-readline.patch
new file mode 100644
index 000000000000..fc8d3d0ed6e2
--- /dev/null
+++ b/net-analyzer/argus-clients/files/argus-clients-3.0.8.2-curses-readline.patch
@@ -0,0 +1,21 @@
+--- a/examples/ramysql/Makefile.in
++++ b/examples/ramysql/Makefile.in
+@@ -56,7 +56,8 @@
+
+
+ MYSQLLIB = @MYSQL_LDFLAGS@
+-CURSESLIB = @CURSESLIB@ @V_READLINE@
++CURSESLIB = @CURSESLIB@
++V_READLINE = @V_READLINE@
+
+
+ # Standard CFLAGS
+@@ -94,7 +95,7 @@
+ $(CC) $(CCOPT) -o $@ rasql.o $(LDFLAGS) $(MYSQLLIB) $(LIB) $(COMPATLIB)
+
+ $(INSTALLBIN)/rasqlinsert: rasqlinsert.o raclient.o $(LIB)
+- $(CC) $(CCOPT) -o $@ raclient.o rasqlinsert.o @V_PCRE@ $(LDFLAGS) $(MYSQLLIB) $(LIB) $(COMPATLIB) $(CURSESLIB)
++ $(CC) $(CCOPT) -o $@ raclient.o rasqlinsert.o @V_PCRE@ $(LDFLAGS) $(MYSQLLIB) $(LIB) $(COMPATLIB) $(CURSESLIB) $(V_READLINE)
+
+ $(INSTALLBIN)/rasqltimeindex: rasqltimeindex.o $(LIB)
+ $(CC) $(CCOPT) -o $@ rasqltimeindex.o @V_PCRE@ $(LDFLAGS) $(MYSQLLIB) $(LIB) $(COMPATLIB)
diff --git a/net-analyzer/argus-clients/files/argus-clients-3.0.8.2-my_bool.patch b/net-analyzer/argus-clients/files/argus-clients-3.0.8.2-my_bool.patch
new file mode 100644
index 000000000000..99cd6b255ae7
--- /dev/null
+++ b/net-analyzer/argus-clients/files/argus-clients-3.0.8.2-my_bool.patch
@@ -0,0 +1,42 @@
+--- a/examples/ramysql/rasql.c
++++ b/examples/ramysql/rasql.c
+@@ -414,7 +414,7 @@
+ void
+ RaMySQLInit ()
+ {
+- my_bool reconnectbuf = 1, *reconnect = &reconnectbuf;
++ int reconnectbuf = 1, *reconnect = &reconnectbuf;
+ char userbuf[1024], sbuf[1024], db[1024], *dbptr = NULL;
+ char *sptr = NULL, *ptr;
+ MYSQL_RES *mysqlRes;
+--- a/examples/ramysql/rasqlinsert.c
++++ b/examples/ramysql/rasqlinsert.c
+@@ -7026,7 +7026,7 @@
+ void
+ RaMySQLInit ()
+ {
+- my_bool reconnectbuf = 1, *reconnect = &reconnectbuf;
++ int reconnectbuf = 1, *reconnect = &reconnectbuf;
+ char *sptr = NULL, *ptr;
+ char userbuf[1024], sbuf[1024], db[1024], *dbptr = NULL;
+ MYSQL_RES *mysqlRes;
+--- a/examples/ramysql/rasqltimeindex.c
++++ b/examples/ramysql/rasqltimeindex.c
+@@ -539,7 +539,7 @@
+ void
+ RaMySQLInit ()
+ {
+- my_bool reconnectbuf = 1, *reconnect = &reconnectbuf;
++ int reconnectbuf = 1, *reconnect = &reconnectbuf;
+ char *sptr = NULL, *ptr;
+ char userbuf[1024], sbuf[1024], db[1024], *dbptr = NULL;
+ MYSQL_RES *mysqlRes;
+@@ -797,7 +797,7 @@
+ void
+ RaMySQLInit ()
+ {
+- my_bool reconnectbuf = 1, *reconnect = &reconnectbuf;
++ int reconnectbuf = 1, *reconnect = &reconnectbuf;
+ unsigned int RaTableFlags = 0;
+ int retn = 0, x;
+ char *sptr = NULL, *ptr;
diff --git a/net-analyzer/argus-clients/files/argus-clients-3.0.8.3-configure-clang16.patch b/net-analyzer/argus-clients/files/argus-clients-3.0.8.3-configure-clang16.patch
new file mode 100644
index 000000000000..ac974dbdf395
--- /dev/null
+++ b/net-analyzer/argus-clients/files/argus-clients-3.0.8.3-configure-clang16.patch
@@ -0,0 +1,41 @@
+https://github.com/openargus/clients/pull/7
+
+From 00264608bad9655d72927f31a2b2744b5e2e2e31 Mon Sep 17 00:00:00 2001
+From: Florian Weimer <fweimer@redhat.com>
+Date: Fri, 25 Nov 2022 19:03:24 +0100
+Subject: [PATCH] configure (AC_LBL_UNALIGNED_ACCESS): Avoid implicit function
+ decls
+
+Implicit function declarations were removed from the C language
+in 1999. Include the relevant header files to ensure that the
+check still works with future compilers. C99 also requires
+to declare the return types of all functions.
+--- a/acsite.m4
++++ b/acsite.m4
+@@ -298,8 +298,10 @@ AC_DEFUN([AC_LBL_UNALIGNED_ACCESS],
+ # include <sys/types.h>
+ # include <sys/wait.h>
+ # include <stdio.h>
++# include <stdlib.h>
++# include <unistd.h>
+ unsigned char a[[5]] = { 1, 2, 3, 4, 5 };
+- main() {
++ int main() {
+ unsigned int i;
+ pid_t pid;
+ int status;
+--- a/configure
++++ b/configure
+@@ -6711,8 +6711,10 @@ else
+ # include <sys/types.h>
+ # include <sys/wait.h>
+ # include <stdio.h>
++# include <stdlib.h>
++# include <unistd.h>
+ unsigned char a[5] = { 1, 2, 3, 4, 5 };
+- main() {
++ int main() {
+ unsigned int i;
+ pid_t pid;
+ int status;
+
diff --git a/net-analyzer/argus-clients/files/argus-clients-3.0.8.4-autoconf-2.70.patch b/net-analyzer/argus-clients/files/argus-clients-3.0.8.4-autoconf-2.70.patch
new file mode 100644
index 000000000000..b6a322fb6913
--- /dev/null
+++ b/net-analyzer/argus-clients/files/argus-clients-3.0.8.4-autoconf-2.70.patch
@@ -0,0 +1,55 @@
+https://sources.debian.org/patches/argus-clients/1:3.0.8.2-6.1/0007-Fix-autoconf-2.70-build.patch/
+https://bugs.gentoo.org/808861
+
+From: Boyuan Yang <byang@debian.org>
+Date: Fri, 1 Oct 2021 16:13:38 -0400
+Subject: Fix autoconf 2.70 build
+
+Bug-Debian: https://bugs.debian.org/978769
+--- a/acsite.m4
++++ b/acsite.m4
+@@ -715,13 +715,13 @@ AC_DEFUN([AC_QOSIENT_READLINE], [
+ esac
+ fi
+
+- AC_CHECK_HEADERS(readline/readline.h,
+- AC_CHECK_DECLS([rl_event_hook, rl_catch_signals, rl_done, rl_set_keyboard_input_timeout, rl_replace_line, rl_delete_text, rl_resize_terminal, rl_save_prompt ], [] , [] ,
+- [
++ AC_CHECK_HEADERS([readline/readline.h],
++ [AC_CHECK_DECLS([rl_event_hook, rl_catch_signals, rl_done, rl_set_keyboard_input_timeout, rl_replace_line, rl_delete_text, rl_resize_terminal, rl_save_prompt ], [] , [] ,
++ [[
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <readline/readline.h>
+- ]), ac_cv_found_readline=no)
++ ]])], [ac_cv_found_readline=no])
+
+ if test "$ac_cv_found_readline" != no; then
+ $1="-lreadline"
+--- a/configure.ac
++++ b/configure.ac
+@@ -41,17 +41,17 @@ AC_PROG_INSTALL
+ AC_PROG_RANLIB
+ AC_PROG_YACC
+
+-AC_CHECK_PROGS(V_RANLIB, ranlib, @true)
+-AC_QOSIENT_LEX_AND_YACC(V_LEX, V_YACC, argus_)
++AC_CHECK_PROGS([V_RANLIB], [ranlib], [@true])
++AC_QOSIENT_LEX_AND_YACC([V_LEX], [V_YACC], [argus_])
+
+ # Checks for libraries.
+-AC_QOSIENT_READLINE(V_READLINE, V_INCLS)
++AC_QOSIENT_READLINE([V_READLINE], [V_INCLS])
+
+-CMU_SASL2(V_INCLS)
++CMU_SASL2([V_INCLS])
+ AC_CMU_MYSQL
+
+-AC_CHECK_HEADERS(zlib.h, [AC_CHECK_LIB(z, uncompress, ZLIB="-lz")])
+-AC_QOSIENT_FLOWTOOLS(V_FLOWTOOLS, V_INCLS)
++AC_CHECK_HEADERS([zlib.h], [AC_CHECK_LIB([z], [uncompress], [ZLIB="-lz"])])
++AC_QOSIENT_FLOWTOOLS([V_FLOWTOOLS], [V_INCLS])
+
+ if test ! -z "$V_FLOWTOOLS"; then
+ AC_DEFINE([ARGUS_FLOWTOOLS], [], [Using Flow Tools library])
+
diff --git a/net-analyzer/argus-clients/metadata.xml b/net-analyzer/argus-clients/metadata.xml
new file mode 100644
index 000000000000..a3e74286bbcc
--- /dev/null
+++ b/net-analyzer/argus-clients/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <use>
+ <flag name="ft">Enable support for flow packets through <pkg>net-analyzer/flow-tools</pkg>
+ </flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/argus/Manifest b/net-analyzer/argus/Manifest
new file mode 100644
index 000000000000..196e3c621939
--- /dev/null
+++ b/net-analyzer/argus/Manifest
@@ -0,0 +1 @@
+DIST argus-3.0.8.3.tar.gz 524549 BLAKE2B f905784c12d28d4440a7a6954441ce4f0865125a87e3d740edd5785e729f8b5b45967d97aef4f72802d2166b76176e15c6f15ec99b87ae1d14849ae92c65ad76 SHA512 f66db5b3bb1305825b76a7eda413d5805d65182aabef647e27716cfd629327b3aab8c299bc8af419199ac655cef4ac3bfcb83c059080e98b042e09f79f01d82a
diff --git a/net-analyzer/argus/argus-3.0.8.3-r2.ebuild b/net-analyzer/argus/argus-3.0.8.3-r2.ebuild
new file mode 100644
index 000000000000..aed7e841ff06
--- /dev/null
+++ b/net-analyzer/argus/argus-3.0.8.3-r2.ebuild
@@ -0,0 +1,99 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic toolchain-funcs
+
+DESCRIPTION="network Audit Record Generation and Utilization System"
+HOMEPAGE="https://openargus.org/"
+SRC_URI="https://www.qosient.com/argus/dev/${P/_rc/.rc.}.tar.gz"
+S="${WORKDIR}"/${P/_rc/.rc.}
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="debug sasl tcpd"
+
+DEPEND="
+ net-libs/libnsl:=
+ net-libs/libpcap
+ net-libs/libtirpc
+ virtual/zlib:=
+ sasl? ( dev-libs/cyrus-sasl )
+ tcpd? ( >=sys-apps/tcp-wrappers-7.6 )
+"
+RDEPEND="
+ acct-group/argus
+ acct-user/argus
+ ${DEPEND}
+"
+BDEPEND="
+ >=sys-devel/bison-1.28
+ app-alternatives/lex
+"
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.0.8.1-disable-tcp-wrappers-automagic.patch
+ "${FILESDIR}"/${PN}-3.0.5-Makefile.patch
+ "${FILESDIR}"/${PN}-3.0.7.3-DLT_IPNET.patch
+ "${FILESDIR}"/${PN}-3.0.8.3-ar.patch
+ "${FILESDIR}"/${PN}-3.0.8.3-as-needed.patch
+ "${FILESDIR}"/${PN}-3.0.8.3-configure-clang16.patch
+)
+
+src_prepare() {
+ find . -type f -execdir chmod +w {} \; #561360
+ sed -e 's:/etc/argus.conf:/etc/argus/argus.conf:' \
+ -i argus/argus.c \
+ -i support/Config/argus.conf \
+ -i man/man8/argus.8 \
+ -i man/man5/argus.conf.5 || die
+
+ sed -e 's:#\(ARGUS_SETUSER_ID=\).*:\1argus:' \
+ -e 's:#\(ARGUS_SETGROUP_ID=\).*:\1argus:' \
+ -e 's:\(#ARGUS_CHROOT_DIR=\).*:\1/var/lib/argus:' \
+ -i support/Config/argus.conf || die
+
+ default
+ eautoreconf
+}
+
+src_configure() {
+ # -Werror=strict-aliasing
+ # https://bugs.gentoo.org/861146
+ # https://github.com/openargus/argus/issues/8
+ append-flags -fno-strict-aliasing
+ filter-lto
+
+ use debug && touch .debug # enable debugging
+
+ econf \
+ $(use_with sasl) \
+ $(use_with tcpd wrappers)
+}
+
+src_compile() {
+ emake \
+ CCOPT="${CFLAGS} ${LDFLAGS}" \
+ AR="$(tc-getAR)" \
+ RANLIB="$(tc-getRANLIB)"
+}
+
+src_install() {
+ doman man/man5/*.5 man/man8/*.8
+
+ dosbin bin/argus{,bug}
+
+ dodoc ChangeLog CREDITS README
+
+ insinto /etc/argus
+ doins support/Config/argus.conf
+
+ newinitd "${FILESDIR}/argus.initd" argus
+ keepdir /var/lib/argus
+}
+
+pkg_postinst() {
+ elog "Note, if you modify ARGUS_DAEMON value in argus.conf it's quite"
+ elog "possible that the init script will fail to work."
+}
diff --git a/net-analyzer/argus/files/argus-3.0.5-Makefile.patch b/net-analyzer/argus/files/argus-3.0.5-Makefile.patch
new file mode 100644
index 000000000000..87b1c155caf8
--- /dev/null
+++ b/net-analyzer/argus/files/argus-3.0.5-Makefile.patch
@@ -0,0 +1,20 @@
+Do not continue when a sub-make errors (bug #380953).
+
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -55,11 +55,11 @@
+ .PHONY: install installdirs all
+
+ all: force
+- @-for d in $(DIRS);\
++ @for d in $(DIRS);\
+ do \
+- (cd $$d; echo "### Making in" `pwd`;\
+- $(MAKE) $(MFLAGS) ;\
+- echo "### Done with" `pwd`);\
++ echo "### Making in" $$d;\
++ $(MAKE) -C $$d $(MFLAGS) || exit 1;\
++ echo "### Done with" $$d;\
+ done
+
+ install: force
diff --git a/net-analyzer/argus/files/argus-3.0.7.3-DLT_IPNET.patch b/net-analyzer/argus/files/argus-3.0.7.3-DLT_IPNET.patch
new file mode 100644
index 000000000000..f7b4bfa4cc6c
--- /dev/null
+++ b/net-analyzer/argus/files/argus-3.0.7.3-DLT_IPNET.patch
@@ -0,0 +1,17 @@
+In file included from ./ArgusModeler.h:330:0,
+ from ./argus.h:40,
+ from ArgusSource.c:67:
+./ArgusSource.h:893:6: error: ‘ArgusIpNetPacket’ undeclared here (not in a function)
+
+--- a/argus/ArgusSource.h
++++ b/argus/ArgusSource.h
+@@ -889,9 +889,6 @@
+ #ifdef DLT_JUNIPER_ETHER
+ { ArgusJuniperPacket, DLT_JUNIPER_ETHER, "ArgusJuniperPacket()" },
+ #endif
+-#ifdef DLT_IPNET
+- { ArgusIpNetPacket, DLT_IPNET, "ArgusIpNetPacket()" },
+-#endif
+ { NULL, DLT_NULL, "" },
+ #endif
+ { NULL, 0, NULL},
diff --git a/net-analyzer/argus/files/argus-3.0.8.1-disable-tcp-wrappers-automagic.patch b/net-analyzer/argus/files/argus-3.0.8.1-disable-tcp-wrappers-automagic.patch
new file mode 100644
index 000000000000..917f864cf065
--- /dev/null
+++ b/net-analyzer/argus/files/argus-3.0.8.1-disable-tcp-wrappers-automagic.patch
@@ -0,0 +1,22 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -251,6 +251,11 @@
+ AC_QOSIENT_MEMORY
+
+ AC_QOSIENT_THREADS(V_THREADS)
++AC_ARG_WITH(wrappers,
++ [ --with-wrappers build with libwrappers support],
++ with_wrappers="$withval",
++ with_wrappers="yes")
++if test "x$with_wrappers" != "xno"; then
+ AC_QOSIENT_TCPWRAP(V_WRAPDEP, V_INCLS)
+ if test ! -z "$V_WRAPDEP"; then
+ if test -f "$V_WRAPDEP"; then
+@@ -274,6 +279,7 @@
+ AC_DEFINE([HAVE_TCP_WRAPPER], [], [Using Tcp wrappers])
+ WRAPLIBS="$V_WRAPDEP"
+ fi
++fi
+
+ AC_QOSIENT_LIBPCAP(V_PCAPDEP, V_INCLS)
+ if test ! -z "$V_PCAPDEP"; then
diff --git a/net-analyzer/argus/files/argus-3.0.8.3-ar.patch b/net-analyzer/argus/files/argus-3.0.8.3-ar.patch
new file mode 100644
index 000000000000..d17a1d3ff06f
--- /dev/null
+++ b/net-analyzer/argus/files/argus-3.0.8.3-ar.patch
@@ -0,0 +1,11 @@
+--- a/common/Makefile.in
++++ b/common/Makefile.in
+@@ -87,7 +87,7 @@
+ all: $(LIBS)
+
+ @INSTALL_LIB@/argus_common.a: $(COMMONOBJ)
+- rm -f $@; ar qc $@ $(COMMONOBJ)
++ rm -f $@; $(AR) qc $@ $(COMMONOBJ)
+ -$(RANLIB) $@
+
+ scanner.c: scanner.l
diff --git a/net-analyzer/argus/files/argus-3.0.8.3-as-needed.patch b/net-analyzer/argus/files/argus-3.0.8.3-as-needed.patch
new file mode 100644
index 000000000000..b9616d305e01
--- /dev/null
+++ b/net-analyzer/argus/files/argus-3.0.8.3-as-needed.patch
@@ -0,0 +1,11 @@
+--- a/argus/Makefile.in
++++ b/argus/Makefile.in
+@@ -85,7 +85,7 @@
+
+ OBJ = $(SRC:.c=.o)
+
+-LIB = @LIBS@ @V_THREADS@ $(WRAPLIBS) $(SASLLIBS) $(XDRLIBS) $(COMPATLIB) ../lib/argus_common.a -lm
++LIB = ../lib/argus_common.a @LIBS@ @V_THREADS@ $(WRAPLIBS) $(SASLLIBS) $(XDRLIBS) $(COMPATLIB) -lm
+
+ HDR = pcap.h pcap-int.h pcap-namedb.h pcap-nit.h pcap-pf.h \
+ ethertype.h gencode.h gnuc.h
diff --git a/net-analyzer/argus/files/argus-3.0.8.3-configure-clang16.patch b/net-analyzer/argus/files/argus-3.0.8.3-configure-clang16.patch
new file mode 100644
index 000000000000..2e9720c04326
--- /dev/null
+++ b/net-analyzer/argus/files/argus-3.0.8.3-configure-clang16.patch
@@ -0,0 +1,41 @@
+https://github.com/openargus/argus/pull/5
+
+From dd987328bd2b99977a1a686a1a6b36d1a3155ff7 Mon Sep 17 00:00:00 2001
+From: Florian Weimer <fweimer@redhat.com>
+Date: Fri, 25 Nov 2022 19:03:24 +0100
+Subject: [PATCH] configure (AC_LBL_UNALIGNED_ACCESS): Avoid implicit function
+ decls
+
+Implicit function declarations were removed from the C language
+in 1999. Include the relevant header files to ensure that the
+check still works with future compilers. C99 also requires
+to declare the return types of all functions.
+--- a/acsite.m4
++++ b/acsite.m4
+@@ -298,8 +298,10 @@ AC_DEFUN([AC_LBL_UNALIGNED_ACCESS],
+ # include <sys/types.h>
+ # include <sys/wait.h>
+ # include <stdio.h>
++# include <stdlib.h>
++# include <unistd.h>
+ unsigned char a[[5]] = { 1, 2, 3, 4, 5 };
+- main() {
++ int main() {
+ unsigned int i;
+ pid_t pid;
+ int status;
+--- a/configure
++++ b/configure
+@@ -5791,8 +5791,10 @@ else
+ # include <sys/types.h>
+ # include <sys/wait.h>
+ # include <stdio.h>
++# include <stdlib.h>
++# include <unistd.h>
+ unsigned char a[5] = { 1, 2, 3, 4, 5 };
+- main() {
++ int main() {
+ unsigned int i;
+ pid_t pid;
+ int status;
+
diff --git a/net-analyzer/argus/files/argus.initd b/net-analyzer/argus/files/argus.initd
new file mode 100644
index 000000000000..2b02852fdf5c
--- /dev/null
+++ b/net-analyzer/argus/files/argus.initd
@@ -0,0 +1,19 @@
+#!/sbin/openrc-run
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ need net
+}
+
+start() {
+ ebegin "Starting argus"
+ start-stop-daemon --start --quiet --exec /usr/sbin/argus -- -d
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping argus"
+ start-stop-daemon --stop --quiet --exec /usr/sbin/argus
+ eend $?
+}
diff --git a/net-analyzer/argus/metadata.xml b/net-analyzer/argus/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/argus/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/arp-scan/Manifest b/net-analyzer/arp-scan/Manifest
new file mode 100644
index 000000000000..c8b282d0ff65
--- /dev/null
+++ b/net-analyzer/arp-scan/Manifest
@@ -0,0 +1,2 @@
+DIST arp-scan-1.10.0.tar.gz 653900 BLAKE2B 618a8201a2c7f425dce5b4260857542956caa4beed61fde9d85cf763076c12ef24eb5a059a5d332b739f1e5b2b3d18db922e6299ff46f7e02ddfb54562b3fc3e SHA512 716c7727597bdecf9fd3f064fe1715148c246c223c2adeb01a26417865e4d82b9ca47e7fe4a555e510e0ae65f23f8310f0dbdffdb7c3fd969e3b81d0c6e4ae2a
+DIST arp-scan-1.9.7.tar.gz 459544 BLAKE2B bd70b2dd9e005096ce80fca07b8f2d8482b1073d25a2a9f82e8f5c1206148dbeab095046292cb46b5823aa18b56c208a5e86d0b7252d8566ddee5cd714b78cc6 SHA512 2aa808521a64cd3e2a6a270c6725f2cffa4cfce5c251e5483053c8ea9f56fb1368dd9aae2afcf8fffe1030fe2fc37723f0701c9eafa7cd1d52df459c07a80870
diff --git a/net-analyzer/arp-scan/arp-scan-1.10.0.ebuild b/net-analyzer/arp-scan/arp-scan-1.10.0.ebuild
new file mode 100644
index 000000000000..5d4ae629eb22
--- /dev/null
+++ b/net-analyzer/arp-scan/arp-scan-1.10.0.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="ARP scanning and fingerprinting tool"
+HOMEPAGE="https://github.com/royhills/arp-scan"
+SRC_URI="https://github.com/royhills/arp-scan/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+
+DEPEND="
+ net-libs/libpcap
+ sys-libs/libcap
+"
+RDEPEND="
+ ${DEPEND}
+ dev-lang/perl
+"
+# Needed for _F_S patch
+BDEPEND="dev-build/autoconf-archive"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.10.0-dont-clobber-fortify-source.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
diff --git a/net-analyzer/arp-scan/arp-scan-1.9.7.ebuild b/net-analyzer/arp-scan/arp-scan-1.9.7.ebuild
new file mode 100644
index 000000000000..477073db97b9
--- /dev/null
+++ b/net-analyzer/arp-scan/arp-scan-1.9.7.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit autotools
+
+DESCRIPTION="ARP scanning and fingerprinting tool"
+HOMEPAGE="https://github.com/royhills/arp-scan"
+SRC_URI="https://github.com/royhills/arp-scan/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86"
+
+DEPEND="
+ net-libs/libpcap
+"
+RDEPEND="
+ ${DEPEND}
+ dev-lang/perl
+"
+
+src_prepare() {
+ default
+ eautoreconf
+}
diff --git a/net-analyzer/arp-scan/files/arp-scan-1.10.0-dont-clobber-fortify-source.patch b/net-analyzer/arp-scan/files/arp-scan-1.10.0-dont-clobber-fortify-source.patch
new file mode 100644
index 000000000000..f933e965893b
--- /dev/null
+++ b/net-analyzer/arp-scan/files/arp-scan-1.10.0-dont-clobber-fortify-source.patch
@@ -0,0 +1,25 @@
+Don't clobber toolchain defaults.
+
+(TODO: Fix upstream's GCC_FORTIFY_SOURCE macro or just replace it with the
+autoconf-archive one (AX_ADD_FORTIFY_SOURCE)).
+
+https://bugs.gentoo.org/895522
+--- a/configure.ac
++++ b/configure.ac
+@@ -37,7 +37,6 @@ if test -n "$GCC"; then
+ CFLAGS="$CFLAGS -Wall -Wshadow -Wwrite-strings"
+ GCC_WEXTRA
+ GCC_STACK_PROTECT_CC
+- GCC_FORTIFY_SOURCE
+ GCC_FORMAT_SECURITY
+ dnl Uncomment the line below to compile with additional warnings enabled.
+ dnl CFLAGS="$CFLAGS -pedantic -Wpointer-arith -Wcast-qual -Wcast-align -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs"
+@@ -49,6 +48,8 @@ else
+ fi
+ AC_PROG_INSTALL
+
++AX_ADD_FORTIFY_SOURCE
++
+ dnl Checks for libraries.
+ dnl Solaris 10 needs -lnsl for gethostbyname() and -lsocket for socket().
+ dnl Linux, {Free,Open,Net,Dragonfly}BSD and MacOS X do not.
diff --git a/net-analyzer/arp-scan/metadata.xml b/net-analyzer/arp-scan/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/arp-scan/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/arping/Manifest b/net-analyzer/arping/Manifest
new file mode 100644
index 000000000000..0cafeef11967
--- /dev/null
+++ b/net-analyzer/arping/Manifest
@@ -0,0 +1,2 @@
+DIST arping-2.25.tar.gz 62032 BLAKE2B a7b5bdfb693ee31781509584b4a0363e856d8134cebe1119fee974a57c399f1128a306b85e3f3669d4fe8f7031dfb87b9cfcc2f8df76b6f969310a12460363ad SHA512 7cfc1ed73bd7621911f9b1b0ad23680c7dde6f8674a0223e6341dc6e40c7d49bb293bc519e9e9de8abaa9209ad7fedad902901235f87b8d21395f3396739b922
+DIST arping-2.26.tar.gz 62357 BLAKE2B 7714c5d298125311618fe44097f95431741aab2d7d486e4ea5358c1ce5992f6292841e7b9f00b773aafdc93fc1425dc604845307b29d986ab08cf59ecbe573aa SHA512 0a013c697595df9be966ee63948c26a61ae55cd133706a490810d2d56cd9800bd613a4e92bdaddca7571096987bba282331222b5d54e9737fc4a14471e9cf879
diff --git a/net-analyzer/arping/arping-2.25.ebuild b/net-analyzer/arping/arping-2.25.ebuild
new file mode 100644
index 000000000000..2498e16afa80
--- /dev/null
+++ b/net-analyzer/arping/arping-2.25.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools fcaps
+
+DESCRIPTION="Utility to see if a specific IP is taken and what MAC owns it"
+HOMEPAGE="https://www.habets.pp.se/synscan/programs.php?prog=arping"
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/ThomasHabets/arping"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/ThomasHabets/${PN}/archive/${P}.tar.gz"
+ KEYWORDS="~alpha amd64 arm ~hppa ~mips ppc ppc64 ~s390 ~sparc x86"
+
+ S="${WORKDIR}/${PN}-${P}"
+fi
+
+LICENSE="GPL-2+"
+SLOT="2"
+IUSE="+seccomp test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="net-libs/libpcap
+ net-libs/libnet:1.1
+ sys-libs/libcap
+ seccomp? ( sys-libs/libseccomp )
+ !net-misc/iputils[arping(+)]"
+DEPEND="${RDEPEND}
+ test? (
+ dev-libs/check
+ dev-python/python-subunit
+ )"
+
+FILECAPS=( cap_net_raw usr/sbin/arping )
+
+src_prepare() {
+ default
+
+ eautoreconf
+}
+
+src_configure() {
+ local myeconfargs=(
+ # Controls whether seccomp is used by default
+ $(use_enable seccomp)
+ )
+
+ # Needed to actually make it optional and not automagic
+ # (and we want it optional for the non-seccomp arches, like sparc)
+ export ac_cv_lib_seccomp_seccomp_init=$(usex seccomp)
+ export ac_cv_header_seccomp_h=$(usex seccomp)
+
+ econf "${myeconfargs[@]}"
+}
diff --git a/net-analyzer/arping/arping-2.26.ebuild b/net-analyzer/arping/arping-2.26.ebuild
new file mode 100644
index 000000000000..762032cde153
--- /dev/null
+++ b/net-analyzer/arping/arping-2.26.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools fcaps
+
+DESCRIPTION="Utility to see if a specific IP is taken and what MAC owns it"
+HOMEPAGE="https://www.habets.pp.se/synscan/programs.php?prog=arping"
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/ThomasHabets/arping"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/ThomasHabets/${PN}/archive/${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
+
+ S="${WORKDIR}/${PN}-${P}"
+fi
+
+LICENSE="GPL-2+"
+SLOT="2"
+IUSE="+seccomp test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="net-libs/libpcap
+ net-libs/libnet:1.1
+ sys-libs/libcap
+ seccomp? ( sys-libs/libseccomp )
+ !net-misc/iputils[arping(+)]"
+DEPEND="${RDEPEND}
+ test? (
+ dev-libs/check
+ dev-python/python-subunit
+ )"
+
+FILECAPS=( cap_net_raw usr/sbin/arping )
+
+src_prepare() {
+ default
+
+ eautoreconf
+}
+
+src_configure() {
+ local myeconfargs=(
+ # Controls whether seccomp is used by default
+ $(use_enable seccomp)
+ )
+
+ # Needed to actually make it optional and not automagic
+ # (and we want it optional for the non-seccomp arches, like sparc)
+ export ac_cv_lib_seccomp_seccomp_init=$(usex seccomp)
+ export ac_cv_header_seccomp_h=$(usex seccomp)
+
+ econf "${myeconfargs[@]}"
+}
diff --git a/net-analyzer/arping/arping-9999.ebuild b/net-analyzer/arping/arping-9999.ebuild
new file mode 100644
index 000000000000..762032cde153
--- /dev/null
+++ b/net-analyzer/arping/arping-9999.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools fcaps
+
+DESCRIPTION="Utility to see if a specific IP is taken and what MAC owns it"
+HOMEPAGE="https://www.habets.pp.se/synscan/programs.php?prog=arping"
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/ThomasHabets/arping"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/ThomasHabets/${PN}/archive/${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~hppa ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
+
+ S="${WORKDIR}/${PN}-${P}"
+fi
+
+LICENSE="GPL-2+"
+SLOT="2"
+IUSE="+seccomp test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="net-libs/libpcap
+ net-libs/libnet:1.1
+ sys-libs/libcap
+ seccomp? ( sys-libs/libseccomp )
+ !net-misc/iputils[arping(+)]"
+DEPEND="${RDEPEND}
+ test? (
+ dev-libs/check
+ dev-python/python-subunit
+ )"
+
+FILECAPS=( cap_net_raw usr/sbin/arping )
+
+src_prepare() {
+ default
+
+ eautoreconf
+}
+
+src_configure() {
+ local myeconfargs=(
+ # Controls whether seccomp is used by default
+ $(use_enable seccomp)
+ )
+
+ # Needed to actually make it optional and not automagic
+ # (and we want it optional for the non-seccomp arches, like sparc)
+ export ac_cv_lib_seccomp_seccomp_init=$(usex seccomp)
+ export ac_cv_header_seccomp_h=$(usex seccomp)
+
+ econf "${myeconfargs[@]}"
+}
diff --git a/net-analyzer/arping/metadata.xml b/net-analyzer/arping/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/arping/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/arpoison/Manifest b/net-analyzer/arpoison/Manifest
new file mode 100644
index 000000000000..ca0599f89acc
--- /dev/null
+++ b/net-analyzer/arpoison/Manifest
@@ -0,0 +1 @@
+DIST arpoison-0.7.tar.gz 8458 BLAKE2B b0050aa6f3246fec9fb4db8bbb3f9f5f1d52b5b6c37851f0c6bec8b6c89fabd7f1811ae40a4c81af6eae16761f38fb749d0f2a58311645ef360d798b6ccbbb50 SHA512 d5af078c8e2c64eb721da75b5d6659ca017267f146d0dca7e0f1ba77bfd93a0f56363428c198e9c46537768d3568d813c150bfbc091430fc355a269f9327108f
diff --git a/net-analyzer/arpoison/arpoison-0.7-r1.ebuild b/net-analyzer/arpoison/arpoison-0.7-r1.ebuild
new file mode 100644
index 000000000000..9cf32953387a
--- /dev/null
+++ b/net-analyzer/arpoison/arpoison-0.7-r1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs edo
+
+DESCRIPTION="Utility to poison ARP caches"
+HOMEPAGE="https://arpoison.sourceforge.net/ http://www.arpoison.net/"
+SRC_URI="https://dev.gentoo.org/~jsmolic/distfiles/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm ppc ~riscv x86"
+
+RDEPEND="net-libs/libnet:1.1"
+DEPEND="${RDEPEND}"
+BDEPEND="${RDEPEND}"
+
+src_compile() {
+ edo "$(tc-getCC)" "${PN}.c" -o "${PN}" ${CFLAGS} ${LDFLAGS} $("${BROOT}/usr/bin/libnet-config" --cflags --libs)
+}
+
+src_install() {
+ dosbin arpoison
+ doman arpoison.8
+ dodoc README
+}
diff --git a/net-analyzer/arpoison/arpoison-0.7.ebuild b/net-analyzer/arpoison/arpoison-0.7.ebuild
new file mode 100644
index 000000000000..adb0567ef881
--- /dev/null
+++ b/net-analyzer/arpoison/arpoison-0.7.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit toolchain-funcs
+
+DESCRIPTION="Utility to poison ARP caches"
+HOMEPAGE="https://arpoison.sourceforge.net/ http://www.arpoison.net/"
+SRC_URI="https://dev.gentoo.org/~jsmolic/distfiles/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm ppc ~riscv x86"
+
+RDEPEND="
+ net-libs/libnet:1.1
+"
+DEPEND="
+ ${RDEPEND}
+"
+BDEPEND="
+ ${RDEPEND}
+"
+
+src_compile() {
+ local compile="$(tc-getCC) ${PN}.c -o ${PN} ${CFLAGS} ${LDFLAGS} $("${BROOT}/usr/bin/libnet-config" --cflags --libs)"
+ echo "${compile}"
+ ${compile} || die
+}
+
+src_install() {
+ dosbin arpoison
+ doman arpoison.8
+ dodoc README
+}
diff --git a/net-analyzer/arpoison/metadata.xml b/net-analyzer/arpoison/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/arpoison/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/arpon/Manifest b/net-analyzer/arpon/Manifest
new file mode 100644
index 000000000000..6b1fc7d0e9f1
--- /dev/null
+++ b/net-analyzer/arpon/Manifest
@@ -0,0 +1 @@
+DIST ArpON-3.0-ng.tar.gz 8795979 BLAKE2B 81b1fe9a426b5b0960911cbbac984482aeea15a957fac72a10e7dd9a45a609da90ca14163957cc008541be4cfaf426f07fa9c64ac4dff933f568b20284c5211d SHA512 e6338018d65f3f8300958e168a9eb6f6be85cba21ae0aee4b03e9838a29a06afbf2448c2f104367aa18389cc549e4489bcf8dad384ad46eadf2884a0908238af
diff --git a/net-analyzer/arpon/arpon-3.0-r1.ebuild b/net-analyzer/arpon/arpon-3.0-r1.ebuild
new file mode 100644
index 000000000000..0ff324edc9e0
--- /dev/null
+++ b/net-analyzer/arpon/arpon-3.0-r1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+MY_PN="ArpON"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="ArpON (Arp handler inspectiON) is a portable Arp handler"
+HOMEPAGE="https://arpon.sourceforge.io/"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${MY_P}-ng.tar.gz"
+S="${WORKDIR}/${MY_P}-ng"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+DEPEND="
+ dev-libs/libdnet
+ net-libs/libnet:1.1
+ net-libs/libpcap
+"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.0-CFLAGS.patch
+ "${FILESDIR}"/${PN}-3.0-gentoo.patch
+ "${FILESDIR}"/${PN}-3.0-cmake4.patch
+)
+
+DOCS=( AUTHOR CHANGELOG README THANKS )
+
+src_install() {
+ cmake_src_install
+
+ newinitd "${FILESDIR}"/${PN}.initd-3 ${PN}
+ newconfd "${FILESDIR}"/${PN}.confd-3 ${PN}
+
+ rm -r "${ED}"/var/{log,run} || die
+ mv "${ED}"/usr/share/doc/{${PN},${PF}} || die
+}
diff --git a/net-analyzer/arpon/arpon-3.0.ebuild b/net-analyzer/arpon/arpon-3.0.ebuild
new file mode 100644
index 000000000000..d564c5e19b27
--- /dev/null
+++ b/net-analyzer/arpon/arpon-3.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+MY_PN="ArpON"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="ArpON (Arp handler inspectiON) is a portable Arp handler"
+HOMEPAGE="https://arpon.sourceforge.io/"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${MY_P}-ng.tar.gz"
+S="${WORKDIR}/${MY_P}-ng"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+DEPEND="
+ dev-libs/libdnet
+ net-libs/libnet:1.1
+ net-libs/libpcap
+"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.0-CFLAGS.patch
+ "${FILESDIR}"/${PN}-3.0-gentoo.patch
+)
+
+DOCS=( AUTHOR CHANGELOG README THANKS )
+
+src_install() {
+ cmake_src_install
+
+ newinitd "${FILESDIR}"/${PN}.initd-3 ${PN}
+ newconfd "${FILESDIR}"/${PN}.confd-3 ${PN}
+
+ rm -r "${ED}"/var/{log,run} || die
+ mv "${ED}"/usr/share/doc/{${PN},${PF}} || die
+}
diff --git a/net-analyzer/arpon/files/arpon-3.0-CFLAGS.patch b/net-analyzer/arpon/files/arpon-3.0-CFLAGS.patch
new file mode 100644
index 000000000000..7cc917b305c7
--- /dev/null
+++ b/net-analyzer/arpon/files/arpon-3.0-CFLAGS.patch
@@ -0,0 +1,17 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -88,12 +88,12 @@
+ message(STATUS "Build type: Debug")
+
+ set(CMAKE_BUILD_TYPE "Debug")
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Werror -Wextra -Wformat=2 -Winit-self -Wreturn-type -Wswitch-default -Wswitch-enum -Wunused-parameter -Wuninitialized -Wstrict-aliasing=3 -Wstrict-overflow=5 -Wdeclaration-after-statement -Wundef -Wpointer-arith -Wunsafe-loop-optimizations -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Wsizeof-pointer-memaccess -Wlogical-op -Waggregate-return -Wstrict-prototypes -Wold-style-declaration -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs -Winline -Wlong-long -Wvariadic-macros -Wvarargs -Wvla -Wdisabled-optimization -Woverlength-strings -O0 -g -ggdb")
++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -Wformat=2 -Winit-self -Wreturn-type -Wswitch-default -Wswitch-enum -Wunused-parameter -Wuninitialized -Wstrict-aliasing=3 -Wstrict-overflow=5 -Wdeclaration-after-statement -Wundef -Wpointer-arith -Wunsafe-loop-optimizations -Wbad-function-cast -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion -Wsizeof-pointer-memaccess -Wlogical-op -Waggregate-return -Wstrict-prototypes -Wold-style-declaration -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wnested-externs -Winline -Wlong-long -Wvariadic-macros -Wvarargs -Wvla -Wdisabled-optimization -Woverlength-strings")
+ else(cmake_build_type_tolower STREQUAL "debug")
+ message(STATUS "Build type: Release")
+
+ set(CMAKE_BUILD_TYPE "Release")
+- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Werror -Wextra -O3 -DNDEBUG")
++ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wextra -DNDEBUG")
+ endif(cmake_build_type_tolower STREQUAL "debug")
+
+ find_package(Headers)
diff --git a/net-analyzer/arpon/files/arpon-3.0-cmake4.patch b/net-analyzer/arpon/files/arpon-3.0-cmake4.patch
new file mode 100644
index 000000000000..59880378fe47
--- /dev/null
+++ b/net-analyzer/arpon/files/arpon-3.0-cmake4.patch
@@ -0,0 +1,13 @@
+Fix build failures with CMake 4
+https://bugs.gentoo.org/952092
+--- a/CMakeLists.txt 2025-03-26 21:03:28.124742115 +0300
++++ b/CMakeLists.txt 2025-03-26 21:03:56.696915295 +0300
+@@ -40,7 +40,7 @@
+ # By default ArpON will be installed to / path.
+ #
+
+-cmake_minimum_required(VERSION 2.6)
++cmake_minimum_required(VERSION 3.5...4.0)
+
+ project(ArpON C)
+ set(AUTHOR "Andrea Di Pasquale <spikey.it@gmail.com>" INTERNAL "Author")
diff --git a/net-analyzer/arpon/files/arpon-3.0-gentoo.patch b/net-analyzer/arpon/files/arpon-3.0-gentoo.patch
new file mode 100644
index 000000000000..1deda181acf0
--- /dev/null
+++ b/net-analyzer/arpon/files/arpon-3.0-gentoo.patch
@@ -0,0 +1,146 @@
+--- a/doc/CMakeLists.txt
++++ b/doc/CMakeLists.txt
+@@ -31,7 +31,7 @@
+
+ set(arpon_doc_src "${CMAKE_SOURCE_DIR}/doc/arpon")
+
+-if(${CMAKE_INSTALL_PREFIX} STREQUAL "/")
++if(${CMAKE_INSTALL_PREFIX} STREQUAL "/usr")
+ install(DIRECTORY ${arpon_doc_src}
+ DESTINATION /usr/share/doc
+ FILE_PERMISSIONS OWNER_READ GROUP_READ WORLD_READ
+@@ -41,7 +41,7 @@
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/share/doc
+ FILE_PERMISSIONS OWNER_READ GROUP_READ WORLD_READ
+ COMPONENT Doc)
+-endif(${CMAKE_INSTALL_PREFIX} STREQUAL "/")
++endif(${CMAKE_INSTALL_PREFIX} STREQUAL "/usr")
+
+ #
+ # EOF
+--- a/log/CMakeLists.txt
++++ b/log/CMakeLists.txt
+@@ -31,7 +31,7 @@
+
+ set(arpon_log_src "${CMAKE_SOURCE_DIR}/log/arpon.log")
+
+-if(${CMAKE_INSTALL_PREFIX} STREQUAL "/")
++if(${CMAKE_INSTALL_PREFIX} STREQUAL "/usr")
+ install(FILES ${arpon_log_src}
+ DESTINATION /var/log
+ PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ
+@@ -41,7 +41,7 @@
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/log
+ PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ
+ COMPONENT Log)
+-endif(${CMAKE_INSTALL_PREFIX} STREQUAL "/")
++endif(${CMAKE_INSTALL_PREFIX} STREQUAL "/usr")
+
+ #
+ # EOF
+--- a/etc/CMakeLists.txt
++++ b/etc/CMakeLists.txt
+@@ -31,7 +31,7 @@
+
+ set(arpon_etc_src "${CMAKE_SOURCE_DIR}/etc/arpon.conf")
+
+-if(${CMAKE_INSTALL_PREFIX} STREQUAL "/")
++if(${CMAKE_INSTALL_PREFIX} STREQUAL "/usr")
+ install(FILES ${arpon_etc_src}
+ DESTINATION /etc
+ PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+@@ -41,7 +41,7 @@
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/etc
+ PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+ COMPONENT Etc)
+-endif(${CMAKE_INSTALL_PREFIX} STREQUAL "/")
++endif(${CMAKE_INSTALL_PREFIX} STREQUAL "/usr")
+
+ #
+ # EOF
+--- a/run/CMakeLists.txt
++++ b/run/CMakeLists.txt
+@@ -31,7 +31,7 @@
+
+ set(arpon_run_src "${CMAKE_SOURCE_DIR}/run/arpon.pid")
+
+-if(${CMAKE_INSTALL_PREFIX} STREQUAL "/")
++if(${CMAKE_INSTALL_PREFIX} STREQUAL "/usr")
+ install(FILES ${arpon_run_src}
+ DESTINATION /var/run
+ PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+@@ -41,7 +41,7 @@
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/run
+ PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ
+ COMPONENT Run)
+-endif(${CMAKE_INSTALL_PREFIX} STREQUAL "/")
++endif(${CMAKE_INSTALL_PREFIX} STREQUAL "/usr")
+
+ #
+ # EOF
+--- a/man8/CMakeLists.txt
++++ b/man8/CMakeLists.txt
+@@ -31,7 +31,7 @@
+
+ set(arpon_man_src "${CMAKE_SOURCE_DIR}/man8/arpon.8")
+
+-if(${CMAKE_INSTALL_PREFIX} STREQUAL "/")
++if(${CMAKE_INSTALL_PREFIX} STREQUAL "/usr")
+ set(ARPON_DOC_FILE
+ "/usr/share/doc/arpon/index.html")
+ set(ARPON_ETC_FILE
+@@ -49,7 +49,7 @@
+ "${CMAKE_INSTALL_PREFIX}/log/arpon.log")
+ set(ARPON_PID_FILE
+ "${CMAKE_INSTALL_PREFIX}/run/arpon.pid")
+-endif(${CMAKE_INSTALL_PREFIX} STREQUAL "/")
++endif(${CMAKE_INSTALL_PREFIX} STREQUAL "/usr")
+
+ file(READ ${arpon_man_src} FILE_CONTENT)
+ string(REGEX REPLACE "ARPON_DOC" "${ARPON_DOC_FILE}"
+@@ -65,7 +65,7 @@
+ MODIFIED_FILE_CONTENT4 "${MODIFIED_FILE_CONTENT3}")
+ file(WRITE ${PROJECT_BINARY_DIR}/man8/arpon.8 "${MODIFIED_FILE_CONTENT4}")
+
+-if(${CMAKE_INSTALL_PREFIX} STREQUAL "/")
++if(${CMAKE_INSTALL_PREFIX} STREQUAL "/usr")
+ install(FILES
+ ${PROJECT_BINARY_DIR}/man8/arpon.8 DESTINATION /usr/share/man/man8
+ PERMISSIONS OWNER_READ GROUP_READ WORLD_READ
+@@ -76,7 +76,7 @@
+ ${CMAKE_INSTALL_PREFIX}/share/man/man8
+ PERMISSIONS OWNER_READ GROUP_READ WORLD_READ
+ COMPONENT Man)
+-endif(${CMAKE_INSTALL_PREFIX} STREQUAL "/")
++endif(${CMAKE_INSTALL_PREFIX} STREQUAL "/usr")
+
+ #
+ # EOF
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -29,13 +29,13 @@
+ # $ArpON: CMakeLists.txt,v 3.0-ng 01/29/2016 03:07:40 spikey Exp $
+ #
+
+-if(${CMAKE_INSTALL_PREFIX} STREQUAL "/")
+- set(ARPON_SBIN /sbin/arpon)
++if(${CMAKE_INSTALL_PREFIX} STREQUAL "/usr")
++ set(ARPON_SBIN /usr/sbin/arpon)
+ set(ARPON_DOC /usr/share/doc/arpon/index.html)
+ set(ARPON_ETC /etc/arpon.conf)
+ set(ARPON_LOG /var/log/arpon.log)
+ set(ARPON_PID /var/run/arpon.pid)
+- set(install_prefix /sbin)
++ set(install_prefix /usr/sbin)
+ else(${CMAKE_INSTALL_PREFIX} STREQUAL "/")
+ set(ARPON_SBIN ${CMAKE_INSTALL_PREFIX}/sbin/arpon)
+ set(ARPON_DOC ${CMAKE_INSTALL_PREFIX}/share/doc/arpon/index.html)
+@@ -43,7 +43,7 @@
+ set(ARPON_LOG ${CMAKE_INSTALL_PREFIX}/log/arpon.log)
+ set(ARPON_PID ${CMAKE_INSTALL_PREFIX}/run/arpon.pid)
+ set(install_prefix ${CMAKE_INSTALL_PREFIX}/sbin)
+-endif(${CMAKE_INSTALL_PREFIX} STREQUAL "/")
++endif(${CMAKE_INSTALL_PREFIX} STREQUAL "/usr")
+
+ configure_file(
+ "${PROJECT_SOURCE_DIR}/src/config.h.in"
diff --git a/net-analyzer/arpon/files/arpon.confd-3 b/net-analyzer/arpon/files/arpon.confd-3
new file mode 100644
index 000000000000..9508cb644ddf
--- /dev/null
+++ b/net-analyzer/arpon/files/arpon.confd-3
@@ -0,0 +1,4 @@
+METHOD="--darpi"
+IFACE="eth0"
+
+ARPON_OPTS="${METHOD} --interface ${IFACE}"
diff --git a/net-analyzer/arpon/files/arpon.initd-3 b/net-analyzer/arpon/files/arpon.initd-3
new file mode 100644
index 000000000000..0fad4cebb3bf
--- /dev/null
+++ b/net-analyzer/arpon/files/arpon.initd-3
@@ -0,0 +1,21 @@
+#!/sbin/openrc-run
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ need net
+}
+
+start() {
+ checkpath -f /var/log/arpon.log
+ checkpath -f /var/run/arpon.pid
+ ebegin "Starting arpon"
+ start-stop-daemon --start --background --make-pidfile --pidfile "/var/run/arpon.pid" \
+ --exec /usr/sbin/arpon -- ${ARPON_OPTS} >/dev/null 2>&1
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping arpon"
+ start-stop-daemon --stop --pidfile "/var/run/arpon.pid"
+ eend $?
+}
diff --git a/net-analyzer/arpon/metadata.xml b/net-analyzer/arpon/metadata.xml
new file mode 100644
index 000000000000..011d298371ee
--- /dev/null
+++ b/net-analyzer/arpon/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/arptools/Manifest b/net-analyzer/arptools/Manifest
new file mode 100644
index 000000000000..d0d6a29a041c
--- /dev/null
+++ b/net-analyzer/arptools/Manifest
@@ -0,0 +1 @@
+DIST arptools-1.0.2.tar.gz 87475 BLAKE2B 1bbfa8082db28abaa78a3f9f363ed255909e6c6dc2a9fabc1668f66228977b9ecc5b70d4cf3514affb324daf31b906b40b1ec7d88ecc9568504362789ece42fb SHA512 c976a5a7778a9330ebda6ed69ef045ede3747b98d27a7e575f985646a52bf57e4a6584da280a0a13520a43b5d765b2ddbec2239d7c3ac865ffdf1ae23f5ff347
diff --git a/net-analyzer/arptools/arptools-1.0.2-r1.ebuild b/net-analyzer/arptools/arptools-1.0.2-r1.ebuild
new file mode 100644
index 000000000000..6b1d50d07a27
--- /dev/null
+++ b/net-analyzer/arptools/arptools-1.0.2-r1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Collection of libnet and libpcap based ARP utilities"
+HOMEPAGE="https://github.com/burghardt/arptools"
+SRC_URI="http://www.burghardt.pl/files/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~riscv ~x86"
+
+DEPEND="
+ net-libs/libnet:1.1
+ net-libs/libpcap
+"
+RDEPEND="${DEPEND}"
+
+DOCS=( AUTHORS ChangeLog NEWS README TODO )
diff --git a/net-analyzer/arptools/metadata.xml b/net-analyzer/arptools/metadata.xml
new file mode 100644
index 000000000000..f960c668d704
--- /dev/null
+++ b/net-analyzer/arptools/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>robbat2@gentoo.org</email>
+ </maintainer>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/arpwatch/Manifest b/net-analyzer/arpwatch/Manifest
new file mode 100644
index 000000000000..e22d5e67642a
--- /dev/null
+++ b/net-analyzer/arpwatch/Manifest
@@ -0,0 +1,5 @@
+DIST arpwatch-3.5.tar.gz 117594 BLAKE2B 73b979ec279e5bf5baaeac05949e1bddf08cd9c3c7afcd29b37991ba55ba2bb8968b57b407eb571ec52871017372f479e586ba84b0f1aee67331ce7617309fb8 SHA512 e46b350c483f0e7c873eb177be337f238b2db3d859d8b305df5a74d9d97ca449750f9ed50a99c5d4c51618e22747731d70ceb3f13aae39c39d258b960258fb88
+DIST arpwatch-3.6.tar.gz 117254 BLAKE2B 77cb129bb543a45e22e27c02193b2ceaf4c65fd56b4d77e710379a2fbcaa5f1be4d625ea0b99f63843358ae993c7bee95db764baf36e0802a7aceae5d81706c7 SHA512 5ba47b15f294396f79efa4b72743169b9eb36747d675144e8f456a23d3987dc0d719d9b97704e7eeec0795f03ee7ef7e8fe8a4ba1ee35d19ab8ec6b077d345e8
+DIST arpwatch-3.7.tar.gz 117274 BLAKE2B 512f271979e964ed26148eea2587bca61a55df065960444f629993ec04eaf49be9e8016ed18278566935be38de4e6e71a03a9ab8d6b4befcef3e1fa4b02ad850 SHA512 8bdda7fc94241813ee57c91683ce5c6a8e4d5e66255bf2cc302d69763086e29c6548b009805660274437edca7a5b8bbf24566846357afe1f96015bd26db89624
+DIST arpwatch-3.8.tar.gz 117299 BLAKE2B 2ec0360ed12722e09cfccd06a1ab48ed77ea017d9ebf182cf2792dac53b61b1f0d6b5895fe30ec4d6b9e05d78aa75762775e548573f7bd5b2918ce8ca775eed3 SHA512 9147da89f187adaaa26bc2cef0f04a69baa9a5ff96844f6a7e32ee269a3e1c4fed75b186ca3eb6b97f3579b648f63a7590e0534f545e7480d7ec14d9c7c18f89
+DIST ethercodes.dat-20200628.xz 239028 BLAKE2B e702b9109ef3ccce73e2637f96126bf19e7dfa533774c0bd623042b3609f147981263b84397ec155a65ae12fa57247c32644e1e7e57c2c749ef768156d853027 SHA512 2edc05d384f387e6b43d07da99038625f9c55c8044b5a48d1bcf9f657df691bf413a97fb9ca915f04dbdafab23f919edd15d906c4ce8bff12be0b255a6717f07
diff --git a/net-analyzer/arpwatch/arpwatch-3.5.ebuild b/net-analyzer/arpwatch/arpwatch-3.5.ebuild
new file mode 100644
index 000000000000..47678541e489
--- /dev/null
+++ b/net-analyzer/arpwatch/arpwatch-3.5.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools systemd
+
+ETHERCODES_DATE=20200628
+DESCRIPTION="An ethernet monitor program that keeps track of ethernet/IP address pairings"
+HOMEPAGE="https://ee.lbl.gov/"
+SRC_URI="
+ https://ee.lbl.gov/downloads/${PN}/${P}.tar.gz
+ https://dev.gentoo.org/~jsmolic/distfiles/ethercodes.dat-${ETHERCODES_DATE}.xz
+"
+
+LICENSE="BSD GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~hppa ppc ~riscv ~sparc x86"
+IUSE="selinux"
+
+DEPEND="
+ acct-group/arpwatch
+ net-libs/libpcap
+ sys-libs/ncurses:=
+"
+RDEPEND="
+ ${DEPEND}
+ acct-user/arpwatch
+ virtual/mta
+ selinux? ( sec-policy/selinux-arpwatch )
+"
+
+PATCHES=(
+ # sent upstream on 2023-12-05
+ "${FILESDIR}"/0001-Fix-configure-check-for-time.h.patch
+ "${FILESDIR}"/0002-Avoid-using-undocumented-internals-for-DNS.patch
+)
+
+src_prepare() {
+ default
+
+ # Temporary for 0001-Fix-configure-check-for-time.h.patch
+ eautoreconf
+}
+
+src_install() {
+ dosbin arp2ethers arpfetch arpsnmp arpwatch bihourly.sh massagevendor.py update-ethercodes.sh
+ doman arpsnmp.8 arpwatch.8
+
+ insinto /usr/share/arpwatch
+ newins "${WORKDIR}"/ethercodes.dat-${ETHERCODES_DATE} ethercodes.dat
+
+ insinto /usr/share/arpwatch/awk
+ doins d.awk duplicates.awk e.awk euppertolower.awk p.awk
+
+ diropts --group=arpwatch --mode=770
+ keepdir /var/lib/arpwatch
+ dodoc README CHANGES
+
+ newconfd "${FILESDIR}"/arpwatch.confd-r2 arpwatch
+ newinitd "${FILESDIR}"/arpwatch.initd-r2 arpwatch
+
+ systemd_dounit "${FILESDIR}/arpwatch.service"
+ systemd_install_serviced "${FILESDIR}/arpwatch.conf"
+}
+
+pkg_postinst() {
+ # Previous revisions installed /var/lib/arpwatch with the wrong
+ # ownership. Instead of the intended arpwatch:root, it was left as
+ # root:root. If we find any such mis-owned directories, we fix them,
+ # and then set the permission bits how we want them in *this*
+ # revision.
+ #
+ # The "--from" flag ensures that we only fix directories that need
+ # fixing, and the "&& chmod" ensures that we only adjust the
+ # permissions if the owner also needed fixing.
+ chown \
+ --from=root:root \
+ --no-dereference \
+ :arpwatch \
+ "${ROOT}"/var/lib/arpwatch && \
+ chmod 770 "${ROOT}"/var/lib/arpwatch
+}
diff --git a/net-analyzer/arpwatch/arpwatch-3.6.ebuild b/net-analyzer/arpwatch/arpwatch-3.6.ebuild
new file mode 100644
index 000000000000..47678541e489
--- /dev/null
+++ b/net-analyzer/arpwatch/arpwatch-3.6.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools systemd
+
+ETHERCODES_DATE=20200628
+DESCRIPTION="An ethernet monitor program that keeps track of ethernet/IP address pairings"
+HOMEPAGE="https://ee.lbl.gov/"
+SRC_URI="
+ https://ee.lbl.gov/downloads/${PN}/${P}.tar.gz
+ https://dev.gentoo.org/~jsmolic/distfiles/ethercodes.dat-${ETHERCODES_DATE}.xz
+"
+
+LICENSE="BSD GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~hppa ppc ~riscv ~sparc x86"
+IUSE="selinux"
+
+DEPEND="
+ acct-group/arpwatch
+ net-libs/libpcap
+ sys-libs/ncurses:=
+"
+RDEPEND="
+ ${DEPEND}
+ acct-user/arpwatch
+ virtual/mta
+ selinux? ( sec-policy/selinux-arpwatch )
+"
+
+PATCHES=(
+ # sent upstream on 2023-12-05
+ "${FILESDIR}"/0001-Fix-configure-check-for-time.h.patch
+ "${FILESDIR}"/0002-Avoid-using-undocumented-internals-for-DNS.patch
+)
+
+src_prepare() {
+ default
+
+ # Temporary for 0001-Fix-configure-check-for-time.h.patch
+ eautoreconf
+}
+
+src_install() {
+ dosbin arp2ethers arpfetch arpsnmp arpwatch bihourly.sh massagevendor.py update-ethercodes.sh
+ doman arpsnmp.8 arpwatch.8
+
+ insinto /usr/share/arpwatch
+ newins "${WORKDIR}"/ethercodes.dat-${ETHERCODES_DATE} ethercodes.dat
+
+ insinto /usr/share/arpwatch/awk
+ doins d.awk duplicates.awk e.awk euppertolower.awk p.awk
+
+ diropts --group=arpwatch --mode=770
+ keepdir /var/lib/arpwatch
+ dodoc README CHANGES
+
+ newconfd "${FILESDIR}"/arpwatch.confd-r2 arpwatch
+ newinitd "${FILESDIR}"/arpwatch.initd-r2 arpwatch
+
+ systemd_dounit "${FILESDIR}/arpwatch.service"
+ systemd_install_serviced "${FILESDIR}/arpwatch.conf"
+}
+
+pkg_postinst() {
+ # Previous revisions installed /var/lib/arpwatch with the wrong
+ # ownership. Instead of the intended arpwatch:root, it was left as
+ # root:root. If we find any such mis-owned directories, we fix them,
+ # and then set the permission bits how we want them in *this*
+ # revision.
+ #
+ # The "--from" flag ensures that we only fix directories that need
+ # fixing, and the "&& chmod" ensures that we only adjust the
+ # permissions if the owner also needed fixing.
+ chown \
+ --from=root:root \
+ --no-dereference \
+ :arpwatch \
+ "${ROOT}"/var/lib/arpwatch && \
+ chmod 770 "${ROOT}"/var/lib/arpwatch
+}
diff --git a/net-analyzer/arpwatch/arpwatch-3.7.ebuild b/net-analyzer/arpwatch/arpwatch-3.7.ebuild
new file mode 100644
index 000000000000..47678541e489
--- /dev/null
+++ b/net-analyzer/arpwatch/arpwatch-3.7.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools systemd
+
+ETHERCODES_DATE=20200628
+DESCRIPTION="An ethernet monitor program that keeps track of ethernet/IP address pairings"
+HOMEPAGE="https://ee.lbl.gov/"
+SRC_URI="
+ https://ee.lbl.gov/downloads/${PN}/${P}.tar.gz
+ https://dev.gentoo.org/~jsmolic/distfiles/ethercodes.dat-${ETHERCODES_DATE}.xz
+"
+
+LICENSE="BSD GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~hppa ppc ~riscv ~sparc x86"
+IUSE="selinux"
+
+DEPEND="
+ acct-group/arpwatch
+ net-libs/libpcap
+ sys-libs/ncurses:=
+"
+RDEPEND="
+ ${DEPEND}
+ acct-user/arpwatch
+ virtual/mta
+ selinux? ( sec-policy/selinux-arpwatch )
+"
+
+PATCHES=(
+ # sent upstream on 2023-12-05
+ "${FILESDIR}"/0001-Fix-configure-check-for-time.h.patch
+ "${FILESDIR}"/0002-Avoid-using-undocumented-internals-for-DNS.patch
+)
+
+src_prepare() {
+ default
+
+ # Temporary for 0001-Fix-configure-check-for-time.h.patch
+ eautoreconf
+}
+
+src_install() {
+ dosbin arp2ethers arpfetch arpsnmp arpwatch bihourly.sh massagevendor.py update-ethercodes.sh
+ doman arpsnmp.8 arpwatch.8
+
+ insinto /usr/share/arpwatch
+ newins "${WORKDIR}"/ethercodes.dat-${ETHERCODES_DATE} ethercodes.dat
+
+ insinto /usr/share/arpwatch/awk
+ doins d.awk duplicates.awk e.awk euppertolower.awk p.awk
+
+ diropts --group=arpwatch --mode=770
+ keepdir /var/lib/arpwatch
+ dodoc README CHANGES
+
+ newconfd "${FILESDIR}"/arpwatch.confd-r2 arpwatch
+ newinitd "${FILESDIR}"/arpwatch.initd-r2 arpwatch
+
+ systemd_dounit "${FILESDIR}/arpwatch.service"
+ systemd_install_serviced "${FILESDIR}/arpwatch.conf"
+}
+
+pkg_postinst() {
+ # Previous revisions installed /var/lib/arpwatch with the wrong
+ # ownership. Instead of the intended arpwatch:root, it was left as
+ # root:root. If we find any such mis-owned directories, we fix them,
+ # and then set the permission bits how we want them in *this*
+ # revision.
+ #
+ # The "--from" flag ensures that we only fix directories that need
+ # fixing, and the "&& chmod" ensures that we only adjust the
+ # permissions if the owner also needed fixing.
+ chown \
+ --from=root:root \
+ --no-dereference \
+ :arpwatch \
+ "${ROOT}"/var/lib/arpwatch && \
+ chmod 770 "${ROOT}"/var/lib/arpwatch
+}
diff --git a/net-analyzer/arpwatch/arpwatch-3.8.ebuild b/net-analyzer/arpwatch/arpwatch-3.8.ebuild
new file mode 100644
index 000000000000..c5457e9ac738
--- /dev/null
+++ b/net-analyzer/arpwatch/arpwatch-3.8.ebuild
@@ -0,0 +1,104 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools systemd
+
+ETHERCODES_DATE=20200628
+DESCRIPTION="An ethernet monitor program that keeps track of ethernet/IP address pairings"
+HOMEPAGE="https://ee.lbl.gov/"
+SRC_URI="
+ https://ee.lbl.gov/downloads/${PN}/${P}.tar.gz
+ https://dev.gentoo.org/~jsmolic/distfiles/ethercodes.dat-${ETHERCODES_DATE}.xz
+"
+
+LICENSE="BSD GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~hppa ppc ~riscv ~sparc x86"
+IUSE="selinux"
+
+DEPEND="
+ acct-group/arpwatch
+ net-libs/libpcap
+ sys-libs/ncurses:=
+"
+RDEPEND="
+ ${DEPEND}
+ acct-user/arpwatch
+ virtual/mta
+ selinux? ( sec-policy/selinux-arpwatch )
+"
+
+PATCHES=(
+ # sent upstream on 2023-12-05
+ "${FILESDIR}"/0001-Fix-configure-check-for-time.h.patch
+ "${FILESDIR}"/0002-Avoid-using-undocumented-internals-for-DNS.patch
+ # custom fix
+ "${FILESDIR}"/0003-Drop-deprecated-resolver-option.patch
+ # bug 783195
+ "${FILESDIR}"/0004-Use-correct-datadir.patch
+ "${FILESDIR}"/0005-Use-correct-paths-in-update-ethercodes.patch
+)
+
+src_prepare() {
+ default
+
+ # Temporary for 0001-Fix-configure-check-for-time.h.patch
+ eautoreconf
+}
+
+src_configure() {
+ # pass missing @sbindir@ (bug 783195)
+ local myconf=(
+ --sbindir="${EPREFIX}/usr/sbin"
+ )
+
+ econf "${myconf[@]}"
+}
+
+src_install() {
+ dosbin arp2ethers arpfetch arpsnmp arpwatch bihourly.sh massagevendor.py update-ethercodes.sh
+ doman arpsnmp.8 arpwatch.8
+
+ insinto /usr/share/arpwatch
+ newins "${WORKDIR}"/ethercodes.dat-${ETHERCODES_DATE} ethercodes.dat
+
+ insinto /usr/share/arpwatch/awk
+ doins d.awk duplicates.awk e.awk euppertolower.awk p.awk
+
+ diropts --group=arpwatch --mode=770
+ keepdir /var/lib/arpwatch
+ dodoc README CHANGES
+
+ newconfd "${FILESDIR}"/arpwatch.confd-r2 arpwatch
+ newinitd "${FILESDIR}"/arpwatch.initd-r2 arpwatch
+
+ systemd_dounit "${FILESDIR}/arpwatch.service"
+ systemd_install_serviced "${FILESDIR}/arpwatch.conf"
+}
+
+pkg_postinst() {
+ # Previous revisions installed /var/lib/arpwatch with the wrong
+ # ownership. Instead of the intended arpwatch:root, it was left as
+ # root:root. If we find any such mis-owned directories, we fix them,
+ # and then set the permission bits how we want them in *this*
+ # revision.
+ #
+ # The "--from" flag ensures that we only fix directories that need
+ # fixing, and the "&& chmod" ensures that we only adjust the
+ # permissions if the owner also needed fixing.
+ chown \
+ --from=root:root \
+ --no-dereference \
+ :arpwatch \
+ "${ROOT}"/var/lib/arpwatch && \
+ chmod 770 "${ROOT}"/var/lib/arpwatch
+
+ # Remind users to update their ethercodes.dat
+ einfo "Please remember to update your ethercodes.dat (IEEE MA-L Assignments) by running:"
+ einfo
+ einfo " /usr/sbin/update-ethercodes.sh"
+ einfo
+ einfo "Without this newer device vendors may not be recognized."
+}
diff --git a/net-analyzer/arpwatch/files/0001-Fix-configure-check-for-time.h.patch b/net-analyzer/arpwatch/files/0001-Fix-configure-check-for-time.h.patch
new file mode 100644
index 000000000000..4c6b1466a452
--- /dev/null
+++ b/net-analyzer/arpwatch/files/0001-Fix-configure-check-for-time.h.patch
@@ -0,0 +1,36 @@
+sent upstream on 2023-12-05
+
+From ea63ce2240a9be492086a56921c644533c740924 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Tue, 5 Dec 2023 08:39:39 +0000
+Subject: [PATCH 1/2] Fix configure check for time.h
+
+Otherwise, we get an implicit function declaration warning/error (with Clang 16,
+GCC 14) for localtime.
+
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/configure.in
++++ b/configure.in
+@@ -21,7 +21,7 @@ fi
+ AC_LBL_C_INIT(V_CCOPT, V_INCLS)
+ AC_PROG_INSTALL
+
+-AC_CHECK_HEADERS(fcntl.h memory.h)
++AC_CHECK_HEADERS(fcntl.h memory.h time.h)
+
+ dnl
+ dnl Install rc.d script on FreeBSD
+--- a/report.c
++++ b/report.c
+@@ -59,7 +59,7 @@ struct rtentry;
+ #include <stdlib.h>
+ #include <string.h>
+ #include <syslog.h>
+-#ifdef TIME_WITH_SYS_TIME
++#ifdef HAVE_TIME_H
+ #include <time.h>
+ #endif
+ #include <unistd.h>
+--
+2.43.0
+
diff --git a/net-analyzer/arpwatch/files/0002-Avoid-using-undocumented-internals-for-DNS.patch b/net-analyzer/arpwatch/files/0002-Avoid-using-undocumented-internals-for-DNS.patch
new file mode 100644
index 000000000000..127c46c67abf
--- /dev/null
+++ b/net-analyzer/arpwatch/files/0002-Avoid-using-undocumented-internals-for-DNS.patch
@@ -0,0 +1,35 @@
+sent upstream on 2023-12-05
+
+From 957425ec7ca2714a4c31431f4746da7644a7f4e9 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Tue, 5 Dec 2023 08:40:31 +0000
+Subject: [PATCH 2/2] Avoid using undocumented internals for DNS
+
+_getshort is a reserved internal function and is deprecated per
+glibc's resolv.h at least.
+
+Use ns_get32 instead as recommended by the deprecation warning.
+
+This also fixes an implicit function declaration warning/error with
+Clang 16 / GCC 14.
+
+Bug: https://bugs.gentoo.org/829633
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/dns.c
++++ b/dns.c
+@@ -115,10 +115,10 @@ gethinfo(char *hostname, char *cpu, int cpulen, char *os, int oslen)
+ (u_char *)cp, (char *)bp, buflen)) < 0)
+ break;
+ cp += n;
+- type = _getshort(cp);
++ type = ns_get32(cp);
+ cp += sizeof(u_short); /* class */
+ cp += sizeof(u_short) + sizeof(u_int32_t);
+- n = _getshort(cp);
++ n = ns_get32(cp);
+ cp += sizeof(u_short);
+ if (type == T_HINFO) {
+ /* Unpack */
+--
+2.43.0
+
diff --git a/net-analyzer/arpwatch/files/0003-Drop-deprecated-resolver-option.patch b/net-analyzer/arpwatch/files/0003-Drop-deprecated-resolver-option.patch
new file mode 100644
index 000000000000..069e8423d786
--- /dev/null
+++ b/net-analyzer/arpwatch/files/0003-Drop-deprecated-resolver-option.patch
@@ -0,0 +1,17 @@
+This enumeration value is deprecated in /usr/include/resolv.h:
+
+#define RES_AAONLY \
+ __glibc_macro_warning ("RES_AAONLY is deprecated") 0x00000004
+
+Since Gentoo is not using outdated glibc version it is safe to disable it.
+
+--- a/dns.c
++++ b/dns.c
+@@ -150,7 +150,6 @@
+ struct hostent *hp;
+
+ options = _res.options;
+- _res.options |= RES_AAONLY;
+ _res.options &= ~(RES_DEFNAMES | RES_DNSRCH);
+ hp = gethostbyaddr((char *)&a, sizeof(a), AF_INET);
+ _res.options = options;
diff --git a/net-analyzer/arpwatch/files/0004-Use-correct-datadir.patch b/net-analyzer/arpwatch/files/0004-Use-correct-datadir.patch
new file mode 100644
index 000000000000..a8e199a2465c
--- /dev/null
+++ b/net-analyzer/arpwatch/files/0004-Use-correct-datadir.patch
@@ -0,0 +1,14 @@
+Use correct directory for database files.
+Bug: https://bugs.gentoo.org/783195
+
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -40,7 +40,7 @@ MANDEST = @mandir@
+ # The root of the directory tree for read-only
+ datarootdir = @datarootdir@
+ # Pathname of directory to install database file
+-ARPDIR ?= @prefix@/arpwatch
++ARPDIR ?= @datarootdir@/arpwatch
+
+ # VPATH
+ srcdir = @srcdir@
diff --git a/net-analyzer/arpwatch/files/0005-Use-correct-paths-in-update-ethercodes.patch b/net-analyzer/arpwatch/files/0005-Use-correct-paths-in-update-ethercodes.patch
new file mode 100644
index 000000000000..564cf3bc9a0c
--- /dev/null
+++ b/net-analyzer/arpwatch/files/0005-Use-correct-paths-in-update-ethercodes.patch
@@ -0,0 +1,30 @@
+Use correct paths in update-etherncodes.sh
+Bug: https://bugs.gentoo.org/783195
+
+--- a/update-ethercodes.sh.in
++++ b/update-ethercodes.sh.in
+@@ -6,22 +6,19 @@
+
+ prog="`basename $0`"
+
+-PATH=/usr/local/bin:${PATH}
+-export PATH
+-
+ t1=/tmp/${prog}.1.$$
+
+ trap 'rm -f ${t1}; exit 1' 1 2 3 15 EXIT
+
+ if [ ! -f arp.dat ]; then
+- cd /usr/local/arpwatch || exit 1
++ cd @datarootdir@/arpwatch || exit 1
+ fi
+
+ fn=ethercodes.dat
+ url=https://standards-oui.ieee.org/oui/oui.csv
+
+ cmd1="curl --no-progress-meter ${url}"
+-cmd2=./massagevendor
++cmd2=@sbindir@/massagevendor.py
+
+ # Emit exit status of first command in pipe
+ # https://unix.stackexchange.com/a/70675
diff --git a/net-analyzer/arpwatch/files/arpwatch.conf b/net-analyzer/arpwatch/files/arpwatch.conf
new file mode 100644
index 000000000000..070f0edad80b
--- /dev/null
+++ b/net-analyzer/arpwatch/files/arpwatch.conf
@@ -0,0 +1,16 @@
+# Config file for /etc/systemd/system/arpwatch
+# see arpwatch.8 for more information
+
+IFACES=-i eno1
+
+# Location of the PID file
+PIDFILE=-P /run/arpwatch.pid
+
+# Additional options to pass to arpwatch.
+OPTIONS=-N -p -Q -D
+
+# Where to store the data (default is /usr/share/arpwatch)
+DATA=-f /var/log/arpwatch/eno1.dat
+
+# Comment this line if you wish arpwatch to run as root user (not recommended)
+RUNUSER=-u arpwatch
diff --git a/net-analyzer/arpwatch/files/arpwatch.confd-r2 b/net-analyzer/arpwatch/files/arpwatch.confd-r2
new file mode 100644
index 000000000000..2937349cdc83
--- /dev/null
+++ b/net-analyzer/arpwatch/files/arpwatch.confd-r2
@@ -0,0 +1,18 @@
+# See arpwatch.8 for more information
+
+# Specify the interface for arpwatch to listen on here (default: lo).
+# If you need to listen on more than one interface, you should
+# run multiple arpwatch services; for example "arpwatch" and
+# "arpwatch.eth1". These additional services can be configured by
+# symlinking to the "arpwatch" service script, and by creating a new
+# conf.d file whose name matches the new service (symlink) name.
+#
+# Example:
+#
+# ARPWATCH_IFACE="eth0"
+#
+ARPWATCH_IFACE="lo"
+
+# Additional options to pass to arpwatch.
+# See arpwatch(8)
+ARPWATCH_OPTS="-N -p"
diff --git a/net-analyzer/arpwatch/files/arpwatch.initd-r2 b/net-analyzer/arpwatch/files/arpwatch.initd-r2
new file mode 100644
index 000000000000..93438209e1f1
--- /dev/null
+++ b/net-analyzer/arpwatch/files/arpwatch.initd-r2
@@ -0,0 +1,33 @@
+#!/sbin/openrc-run
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Default to "lo" for the interface, so that the init script will work
+# out-of-the-box.
+: ${ARPWATCH_IFACE:=lo}
+
+ARPWATCH_DATAFILE="/var/lib/arpwatch/${RC_SVCNAME}.dat"
+
+command="/usr/sbin/arpwatch"
+pidfile="/run/${RC_SVCNAME}.pid"
+command_args="
+ -i ${ARPWATCH_IFACE}
+ -f ${ARPWATCH_DATAFILE}
+ -P ${pidfile}
+ ${ARPWATCH_OPTS}
+"
+
+depend() {
+ if [ -f "/proc/net/vlan/${ARPWATCH_IFACE}" ]; then
+ _if=$(grep -i "device" /proc/net/vlan/${ARPWATCH_IFACE} |awk '{print $2;}')
+ else
+ _if=${ARPWATCH_IFACE}
+ fi
+ need "net.${_if}"
+}
+
+start_pre() {
+ # The "arpwatch" user must be a member of the "arpwatch" group for
+ # this to work.
+ checkpath --file --owner root:arpwatch --mode 0660 "${ARPWATCH_DATAFILE}"
+}
diff --git a/net-analyzer/arpwatch/files/arpwatch.service b/net-analyzer/arpwatch/files/arpwatch.service
new file mode 100644
index 000000000000..943e3146f8df
--- /dev/null
+++ b/net-analyzer/arpwatch/files/arpwatch.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=Ethernet monitoring program that tracks net/IP pairings
+Documentation=man:arpwatch(8)
+Conflicts=
+After=systemd-networkd.service
+
+PIDFILE=/run/arpwatch.pid
+
+[Service]
+Type=forking
+ExecStartPre=/bin/rm -f /run/arpwatch.pid
+ExecStart=/usr/sbin/arpwatch $IFACES $PIDFILE $RUNUSER $OPTIONS $DATA
+Restart=on-abort
+
+[Install]
+Alias=arpwatchd.service
diff --git a/net-analyzer/arpwatch/metadata.xml b/net-analyzer/arpwatch/metadata.xml
new file mode 100644
index 000000000000..fa7f3959e37d
--- /dev/null
+++ b/net-analyzer/arpwatch/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <longdescription lang="en">
+ The arpwatch package contains arpwatch and arpsnmp. Arpwatch and arpsnmp
+ are both network monitoring tools. Both utilities monitor Ethernet or
+ FDDI network traffic and build databases of Ethernet/IP address pairs,
+ and can report certain changes via email. Install the arpwatch package
+ if you need networking monitoring devices which will automatically keep
+ track of the IP addresses on your network.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/authforce/Manifest b/net-analyzer/authforce/Manifest
new file mode 100644
index 000000000000..41ebfaa169c6
--- /dev/null
+++ b/net-analyzer/authforce/Manifest
@@ -0,0 +1 @@
+DIST authforce-0.9.9.tar.gz 424557 BLAKE2B 3b962f7c3d445525364b8e40e3b47d0c951e04b7b5d40077540b1dc34721aca5163f9328451f23b7f1891d3a5440d003568ca6eb5104a523bdccb33ade61546d SHA512 fd94c6ac5f98f480af4acba2de7c0ad81dbc4c759cce8f3f722dcf8870b0c16a9e7d462f4542784737e021f9c8d480b26895dddb4d5953f730ff8a181ad474b3
diff --git a/net-analyzer/authforce/authforce-0.9.9-r4.ebuild b/net-analyzer/authforce/authforce-0.9.9-r4.ebuild
new file mode 100644
index 000000000000..1c3be5b08d76
--- /dev/null
+++ b/net-analyzer/authforce/authforce-0.9.9-r4.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="An HTTP authentication brute forcer"
+HOMEPAGE="http://www.divineinvasion.net/authforce/"
+SRC_URI="http://www.divineinvasion.net/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86"
+IUSE="curl nls"
+
+RDEPEND="sys-libs/readline:=
+ curl? ( net-misc/curl )"
+DEPEND="${RDEPEND}"
+BDEPEND="nls? ( sys-devel/gettext )"
+
+DOCS=( AUTHORS BUGS NEWS README THANKS TODO )
+
+PATCHES=(
+ "${FILESDIR}"/${P}-curl.patch
+ "${FILESDIR}"/${P}-locale.patch
+ "${FILESDIR}"/${P}-fixes-for-Wall-warnings.patch
+ "${FILESDIR}"/${P}-fix-parsing-of-sample-config-file.patch
+ "${FILESDIR}"/${P}-fix-submit_dummy_list-re-declaration.patch
+ "${FILESDIR}"/${PN}-0.9.9-Include-stdlib.h-for-free.patch
+)
+
+src_prepare() {
+ default
+
+ gunzip doc/${PN}.1.gz || die
+
+ sed -i -e "s/${PN}.1.gz/${PN}.1/g" \
+ -e "s/\/mang/\/man1/g" doc/Makefile* || die
+}
+
+src_configure() {
+ econf \
+ $(use_with curl) \
+ $(use_enable nls) \
+ --with-path=/usr/share/${PN}/data:.
+}
+
+src_install() {
+ default
+ doman doc/${PN}.1
+}
diff --git a/net-analyzer/authforce/files/authforce-0.9.9-Include-stdlib.h-for-free.patch b/net-analyzer/authforce/files/authforce-0.9.9-Include-stdlib.h-for-free.patch
new file mode 100644
index 000000000000..fec77215435c
--- /dev/null
+++ b/net-analyzer/authforce/files/authforce-0.9.9-Include-stdlib.h-for-free.patch
@@ -0,0 +1,16 @@
+From e5e62f92c53f5f8cca9380ad3225c84be5eec04f Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Wed, 19 Oct 2022 03:33:51 +0100
+Subject: [PATCH] Include <stdlib.h> for free()
+
+Bug: https://bugs.gentoo.org/871222
+--- a/src/debug.c
++++ b/src/debug.c
+@@ -3,6 +3,7 @@
+ #include <config.h>
+ #include <stdio.h>
+ #include <stdarg.h>
++#include <stdlib.h>
+ #ifdef MEMWATCH
+ #include "memwatch.h"
+ #endif /* MEMWATCH*/
diff --git a/net-analyzer/authforce/files/authforce-0.9.9-curl.patch b/net-analyzer/authforce/files/authforce-0.9.9-curl.patch
new file mode 100644
index 000000000000..22552f8aafd4
--- /dev/null
+++ b/net-analyzer/authforce/files/authforce-0.9.9-curl.patch
@@ -0,0 +1,10 @@
+--- authforce-0.9.9/src/http.c
++++ authforce-0.9.9/src/http.c
+@@ -7,7 +7,6 @@
+ #include <time.h>
+ #ifdef USE_CURL
+ #include <curl/curl.h>
+-#include <curl/types.h>
+ #include <curl/easy.h>
+ #endif /* USE_CURL */
+ #ifdef MEMWATCH
diff --git a/net-analyzer/authforce/files/authforce-0.9.9-fix-parsing-of-sample-config-file.patch b/net-analyzer/authforce/files/authforce-0.9.9-fix-parsing-of-sample-config-file.patch
new file mode 100644
index 000000000000..902b2a086e0d
--- /dev/null
+++ b/net-analyzer/authforce/files/authforce-0.9.9-fix-parsing-of-sample-config-file.patch
@@ -0,0 +1,54 @@
+From 294ef3529016c29769d10dee9e5f639c2ce02b91 Mon Sep 17 00:00:00 2001
+From: "Zachary P. Landau" <zlandau@jellofund.net>
+Date: Wed, 5 Feb 2020 23:18:31 -0800
+Subject: [PATCH 3/4] Fix parsing of sample config file
+
+This code is horribly broken, but we should at least be able to parse
+the authforcerc.sample file, and report the right line number when
+failing.
+---
+ src/config.c | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/src/config.c b/src/config.c
+index 4462fcc..66313d9 100644
+--- a/src/config.c
++++ b/src/config.c
+@@ -11,7 +11,7 @@
+ #endif /* MEMWATCH */
+ #include "extern.h"
+
+-#define BUFFER_LEN 82
++#define BUFFER_LEN 100
+ #define IS_BIT(x) (!strcmp(x, "0") || !strcmp(x, "1"))
+
+ static void process_boolean(char *option, char *value, int *variable) {
+@@ -30,7 +30,7 @@ void parse_config(char *config) {
+ char *option; /* config file option */
+ char *value; /* value for option */
+
+- int line_number = 1;
++ int line_number = 0;
+ char *chop;
+
+ /* MEMWATCH: reports this isnt freed, why? */
+@@ -45,6 +45,7 @@ void parse_config(char *config) {
+ }
+
+ while (fgets(buffer, sizeof(buffer), fp)) {
++ line_number++;
+ if (buffer[0] == '#' || buffer[0] == ';' || buffer[0] == '\n')
+ continue;
+ remove_crud(buffer);
+@@ -123,8 +124,6 @@ void parse_config(char *config) {
+ else
+ if (!quiet)
+ printf("parse_config: option %s is not valid\n", option);
+-
+- line_number++;
+ }
+
+ debug(3, "parse_config: read %s [%i]\n", config, line_number-1);
+--
+2.25.0
+
diff --git a/net-analyzer/authforce/files/authforce-0.9.9-fix-submit_dummy_list-re-declaration.patch b/net-analyzer/authforce/files/authforce-0.9.9-fix-submit_dummy_list-re-declaration.patch
new file mode 100644
index 000000000000..e6ca243fcad7
--- /dev/null
+++ b/net-analyzer/authforce/files/authforce-0.9.9-fix-submit_dummy_list-re-declaration.patch
@@ -0,0 +1,25 @@
+From d7f718e78444acef635acdd19e34dc4783e741fa Mon Sep 17 00:00:00 2001
+From: "Zachary P. Landau" <zlandau@jellofund.net>
+Date: Wed, 5 Feb 2020 23:00:06 -0800
+Subject: [PATCH 1/4] Fix submit_dummy_list re-declaration
+
+---
+ src/extern.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/extern.h b/src/extern.h
+index 6798bd7..cc08e0a 100644
+--- a/src/extern.h
++++ b/src/extern.h
+@@ -61,7 +61,7 @@ extern void initialize_submit(void);
+ extern int submit(char *username, char *password);
+ extern void shutdown_submit(void);
+ #ifdef USE_DUMMY
+-char **submit_dummy_list;
++extern char **submit_dummy_list;
+ #endif /* USE_DUMMY */
+
+ /* files.c */
+--
+2.25.0
+
diff --git a/net-analyzer/authforce/files/authforce-0.9.9-fixes-for-Wall-warnings.patch b/net-analyzer/authforce/files/authforce-0.9.9-fixes-for-Wall-warnings.patch
new file mode 100644
index 000000000000..083bb93d1296
--- /dev/null
+++ b/net-analyzer/authforce/files/authforce-0.9.9-fixes-for-Wall-warnings.patch
@@ -0,0 +1,111 @@
+From ef74da31208f1390bbc17d4c455c821f141ec78b Mon Sep 17 00:00:00 2001
+From: "Zachary P. Landau" <zlandau@jellofund.net>
+Date: Wed, 5 Feb 2020 23:17:50 -0800
+Subject: [PATCH 2/4] Fixes for -Wall warnings
+
+---
+ src/files.c | 10 +++++-----
+ src/http.c | 4 ----
+ src/methods.c | 4 ++--
+ 3 files changed, 7 insertions(+), 11 deletions(-)
+
+diff --git a/src/files.c b/src/files.c
+index 1068616..92d45ac 100644
+--- a/src/files.c
++++ b/src/files.c
+@@ -70,7 +70,7 @@ char **textlist(char *textfile) {
+
+ /* MEMWATCH: this isnt freed, why? */
+ wordlist[count] = malloc_w(sizeof(NULL));
+- wordlist[count] = (char)NULL;
++ wordlist[count] = NULL;
+
+ fclose(fp);
+
+@@ -83,7 +83,7 @@ char **copy_list(char **list) {
+ char **n_list; /* new list */
+
+ /* find num of elements */
+- while (list[i] != (char)NULL)
++ while (list[i] != NULL)
+ i++;
+ /* plus one for NULL */
+ i++;
+@@ -91,12 +91,12 @@ char **copy_list(char **list) {
+ n_list = malloc_w(i*sizeof(char*));
+
+ i=0;
+- while (list[i] != (char)NULL) {
++ while (list[i] != NULL) {
+ n_list[i] = (char*)strdup_w(list[i]);
+ i++;
+ }
+
+- n_list[i] = (char)NULL;
++ n_list[i] = NULL;
+
+ return (n_list);
+ }
+@@ -104,7 +104,7 @@ char **copy_list(char **list) {
+ void free_list(char **list) {
+ int i=0;
+
+- while (list[i] != (char)NULL) {
++ while (list[i] != NULL) {
+ free(list[i]);
+ i++;
+ }
+diff --git a/src/http.c b/src/http.c
+index 88acdfc..397ac1f 100644
+--- a/src/http.c
++++ b/src/http.c
+@@ -40,7 +40,6 @@ int submit(char *username, char *password) {
+ CURLcode result;
+ char error[CURL_ERROR_SIZE] = "";
+ char authstring[92];
+- time_t before, after;
+
+
+ num_connects++;
+@@ -59,8 +58,6 @@ int submit(char *username, char *password) {
+ } else
+ printf("trying %s->%s\n", username, password);
+
+- before = time(0);
+-
+ if (curl) {
+ curl_easy_setopt(curl, CURLOPT_URL, url);
+ curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, error);
+@@ -79,7 +76,6 @@ int submit(char *username, char *password) {
+ result = curl_easy_perform(curl);
+ }
+
+- after = time(0);
+ /* num_connects jumps the gun earlier on */
+ // acs = stats(acs, after-before, num_connects-1);
+
+diff --git a/src/methods.c b/src/methods.c
+index 3c74c65..bdb6efc 100644
+--- a/src/methods.c
++++ b/src/methods.c
+@@ -76,7 +76,7 @@ char *transform(char *username, char *password) {
+
+ strncpy(old_password, password, sizeof(char)*41);
+
+- while ((cur_element = elements[i]) != (char)NULL) {
++ while ((cur_element = elements[i]) != NULL) {
+ if (!strcmp(password, "{username}"))
+ strncpy(insertion, username, sizeof(insertion));
+ else if (!strcmp(password, "{emanresu}"))
+@@ -120,7 +120,7 @@ void common_pairs(void) {
+ }
+
+ while (1) {
+- if (common_pairs_list[i] == (char)NULL)
++ if (common_pairs_list[i] == NULL)
+ break;
+ strncpy(username, common_pairs_list[i], sizeof(char)*81);
+ password = extract(username, ':');
+--
+2.25.0
+
diff --git a/net-analyzer/authforce/files/authforce-0.9.9-locale.patch b/net-analyzer/authforce/files/authforce-0.9.9-locale.patch
new file mode 100644
index 000000000000..89792db3ea12
--- /dev/null
+++ b/net-analyzer/authforce/files/authforce-0.9.9-locale.patch
@@ -0,0 +1,15 @@
+ src/main.c | 1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/src/main.c b/src/main.c
+index 0fd275a..296e181 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -14,6 +14,7 @@
+ #include "extern.h"
+ #ifdef ENABLE_NLS
+ #define _(x) dgettext(PACKAGE_NAME, x)
++#include <locale.h>
+ #else
+ #define _(x) (x)
+ #endif
diff --git a/net-analyzer/authforce/metadata.xml b/net-analyzer/authforce/metadata.xml
new file mode 100644
index 000000000000..5f33304011d5
--- /dev/null
+++ b/net-analyzer/authforce/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/bandwhich/Manifest b/net-analyzer/bandwhich/Manifest
new file mode 100644
index 000000000000..927bd4ac183b
--- /dev/null
+++ b/net-analyzer/bandwhich/Manifest
@@ -0,0 +1,288 @@
+DIST addr2line-0.24.2.crate 39015 BLAKE2B 57186d6b957542cd71a0aa19f1355dfaabe6efa19b853c42f306494728b03d1e3183efdb2d2c7734a3e2347cd83a985d004f50c097e06b7520bd152310532e9b SHA512 39cbec3c920ffc0f37584afb55e1cfe4f182e4415319a4e9bfe842360f102f7b9315f6171c0cf71ba0337123903e604096cd573fe98698a26c8eebc2376d965b
+DIST adler2-2.0.0.crate 13529 BLAKE2B ec575b0bf12e321399ac3a1d59fce4ddbeabcc60cb3d7c2f362cce23eb29b4ea836451372d6d88552a4435ae29bb41d6230d55f625a4359eace680b9b771d0ad SHA512 12d12579ad617cf1a94cf95ab9d3f5db566c3b2de4bd5735eccd83c668fdad0eff134c996b73c46cbb9f932837682043878b8cc4764191625e9f93ccffcce423
+DIST aes-0.8.4.crate 124812 BLAKE2B c4a9cadbbfd9d24a758bd5d18b851fb86bd74f5b1f0f6f5706275329d92396a00dc2c35fa0aa2af5b55fd336934d35df413a31f85ba886e85a037296f9df25bd SHA512 96243337546acf64f89bf9ba23011eea1a205d82d96707f9c45bf28cc62ef00cdac5cdfacb8d6013155ee1522ad73dd1b7f166c74ed18159bf23c3c48ec77d79
+DIST aho-corasick-1.1.3.crate 183311 BLAKE2B 8dfcbba0b9d94e55eae739b16f5c6474baa43ee7854c5ca792f426a9f46fb0eece79cd493b804e51449181bcad338b96819fe977c02c9907654d713e26b9f830 SHA512 ba422a54688c4678fcf16e34fdf3ed06c333e6e3fc8b75af9272a215add494d43ebaef319021134b61327fd5d3572aec0dc655b714ffb3bc71ba3c265c9ebb69
+DIST allocator-api2-0.2.18.crate 62504 BLAKE2B 8152c5a611be91ba23b1e8647511e21f48e7d4f1a7b9a828083f5bb8747cdc92aee66f73251b19195bbdc1f65aad992632e820d86cbeff287d598257ae3628a6 SHA512 5e5b0e23e1f5b259e5d3746e3e05817af8dee95af7105ea775a5c1d69b4e537a4d6a25e2c1d46ab83e2385217b158f7940dc1315ae581c35ee23289647105e73
+DIST android-tzdata-0.1.1.crate 7674 BLAKE2B 4385a4875aadaacd5284a9ca7d1bf8a7bf14bf8925d1563d52fbabacc3af2c1ea08bfcf77106f3648f4fa052ac295158a21e7a0131d31eb9aecd99ea4ba20055 SHA512 4294024c21ddd0090c42c8eedf708d40d917f55ad5a4cb7aa3e64cfb6551b6df60f2e36bc08620c1d2fc8c7ba7207411518ee5c8635f60ed8ad9efdd458a2077
+DIST android_system_properties-0.1.5.crate 5243 BLAKE2B 86f68ec3bdabf8c6ec47881d794970f08a9eefc7417fc8a2bf4fe9faf9bdd2a2024a94adb0cbf96673409f5fbbd4d0111a1ac371339e7a90a277b6cd5003524e SHA512 b09f51339f9772c0e2e4241b36cf51573c6b96b19ffc1fbbc94b1c1d1d2fdfe8eac3134af54174a675ab05d18ef4f6bcb2c7fcc20114bbeef6e17e3692202191
+DIST anstream-0.6.15.crate 29231 BLAKE2B cc4cf0f381c210fecc20b5796fe872b533419e5f957021b0c3be3cdc23fb84ce029fbef6f9b6f174a76ad713c07f0811145a70572de7c24cfab060fdd990f49a SHA512 1cb01a0293b4c9bcc010909707e71c464416d3ec6fc9789060b7aa9fe4cc04424fefa8013cc8765ccdae6dfd9a1c50a11f7b30b39a32c4aeaf525f28167ddb92
+DIST anstyle-1.0.8.crate 15771 BLAKE2B c039613e7de27cc990e5764810f9351754b160928a8954dc19041354cf9fef1422ed964237a5d39d16e4e9f8592ed52c523ccf36b0b5506f464d4f818f3332ff SHA512 3b867f73df0b2f69a0c7d5d6e62c7515045e053656afaa303e5aade8012e838cdf5d15d2c3d7c297db9e297d08ea69a9c8eed04b97922a83f56c58962c1c0b69
+DIST anstyle-parse-0.2.5.crate 22680 BLAKE2B 7473651b1eee08857a6ed1419d3d62ba4b9a9aa0d6657965ad9c67bddd793d825737d3804961716a89bdebed9879ac43b42c897cd229c6e7bd780859e1e3c247 SHA512 cd94ad0e88ad4547a660da1473bf4e6dfed805a066782124204143c7f754c12db719bd3a1774c299f1a035740bfc4830919da191bd14e0acede410f6dbd1e2ef
+DIST anstyle-query-1.1.1.crate 9891 BLAKE2B c298114c1864a5233fb39c365e079a7f1f4ef23499dc330e5deb06f83f27bc727015befef79075c7e39952547f799b4135d7db287cf72dfc914191df784a4989 SHA512 1b2e888f025142a0d9b01314cf083831a2a45d8da737c1be3a6a9aa177e73e0d2ae7999fe7610dd450b7096115e8cf38c5da23723cebf1deaa7d3501d3dbd5ce
+DIST anstyle-wincon-3.0.4.crate 12234 BLAKE2B 23294d6ed7715c55c8f796eb7b860450c57b22b57e32a5c75847f2e2bd68a52b33c24797db662aa5fd7e799b9644075c8c939d93b0cf8598b16ee80fc817b77f SHA512 24b3a9a44382609ad449425a657d4b42a792d4703c36e0953f09a03817759c266a2f0ff4ecc9e8b93ea8403df2badef1f1af6a6e50af56205176c41b13501ae6
+DIST anyhow-1.0.89.crate 47078 BLAKE2B fc824e72891bff0cc7aa3b538adfb9af7dc843ab6ed12b8b04eb70e62d32aae1decb9090621d3245dbe89841e73080d2d86973b4aee50873e798956da9b3faa6 SHA512 3c09317089ed78601a56c626700d12c0b49396e25fed9a9f05a2dbfbd6f91ad426c430633006a4043decd1f70a85c161c4f8dd7de0e4c00b82a169b89dda8da0
+DIST arbitrary-1.3.2.crate 32037 BLAKE2B f8f6a10a8f42f14eefaad4348b6ff200d0c2fb22faa7a2876247228046359e39c555f3170a1975f64f8537319b97c7ce2030dcab3614229c8334b5d6f9248114 SHA512 faab26c44f25d2c7298add2a657e4010d9fe24b3a61e2270bc6feac05cf2a82895fe225d2fb1c6b63e6c7da54e061955503f39322b96dbdbc4916601bd5e5ccf
+DIST async-trait-0.1.83.crate 29054 BLAKE2B 4991f79abd8b9260b9541e754c30d3e0731ff786fcf65cc3f3eb75a5fcedcb37be147222778e1a0fa6c68d8fb872144b2b55b43cf6f8f4de371f24175cef405d SHA512 15969eafbdbe51e80433b53196962293daed2a70d3d9bac91c58e5e7359f60fc99ef519ceb1fd54e34d627c94f821329474a602f25f85179318d10c3147b5649
+DIST autocfg-1.4.0.crate 17712 BLAKE2B 7f7300439899be03d001dd32b7e797bc4b9a58103081b6f7353c4b5897813cedf870b3fb1fa25d320a75326b334b44d8287e8603de34fc560d0b567143915cc6 SHA512 3b5e7c30bc73e105e4bfcab584c24fc4016db41fac9c356c6649fd841051704bbe8848e09546eb50d7c1f18ea8ce1cb72fbc268a620d5c609b3472114b5be73c
+DIST backtrace-0.3.74.crate 88516 BLAKE2B 594b537f3860560bc790d04d72a91ea25bbf5f2494b9c43377129a8021c02d9c16471a223e518889775a816c45513b14bf097c453846b62302a58b59753a5fcb SHA512 00cb2be0626f0bf6ec8b8f525bb129d3ac74c386c5e46ee0f343edb78c863222521f8132876057a5a1facacf40792dea51f2f20e986b35f3a85bca3dcf5c1520
+DIST bandwhich-0.23.1.tar.gz 3024342 BLAKE2B ecbecee25ef17416058de33250f2b7270d8e837f169006000abbbe249a67104e229e30cac5501cae5cf3fe93c292742db651e2fb6241b31043f50fb6d5e7128a SHA512 d8f247352cf8be18524c571480e5ec70c898f43e3f62bc37c44550b9552d9f637c6248b8d58c3d71f8c578e19e73e1a52f2b6da1749235a66bf107847a142c37
+DIST bitflags-1.3.2.crate 23021 BLAKE2B eb990bb27b2bdeb66fd7212ce582cb36e1c616debbac85df642d0c82b25439e6bf9b1e811fac76b59e58ea3c1bbea6170d03a61e8f9a395e4334a0e2e2987eda SHA512 3c698f757b5cc62f815f9a1cce365c3d2dd88e4db71f331dff8bba86c2865f755b81cb4c9bfc59bd86b7643b0943f9e09a7c4f8ad75eb2ab0e714803d0129f62
+DIST bitflags-2.6.0.crate 45357 BLAKE2B 3a368bd2eb58c095b7b4a46680cc2d90a28e24b2e37c854bbf8647c861c4b8fb37eca827599673c5c7df763048149dd82123d1ede1f8a0e58a6bc23c8250f7e6 SHA512 f9bb3c48931ed7e7e05ec6d13305af5da6b6c18861ff307d7dc17c658f63972c87b70b0527287b3625c8592befc207cfe15550654995faf3862bb12a6d95bacf
+DIST block-buffer-0.10.4.crate 10538 BLAKE2B d819c4f9c4be85868e8b105fb7e479d2e58d3ed85c3339bd677a3e111f85cb1ff624a54d7802ab79a6e1d9221115f66388568340480fe83eae1cb448f19f5b11 SHA512 b7d436d8e627e16e6ddc300ee8f706a6cef28ff6f09eff848eedee46f84bdcd03601303c92ab8996042e55922866a59259948177c0a4496eed723523e77f6fdb
+DIST bumpalo-3.16.0.crate 85677 BLAKE2B 08da17b757931d2910e0299df53eb62731aa8c4ebd8915859b81d1982b331e7455dfac977c754e500a35ee07ba8eff00a61d2f62be99744e2ddbba06c1268f49 SHA512 a51b75c36f6794db444cab20eeb24f42a319080ecb486a56d254d6f873f3d188b5ccba11db30c068bd0c52c4322d4a3f5f5195c81c94b0bc04387030418835b1
+DIST byteorder-1.5.0.crate 23288 BLAKE2B 7f85a7948406844070a2c8202e0bd52f73b3dfc7c666a97046128044eb9352195afb80e2bf894c0742ad109e4473339de1365d09591de70dfec6c8c02a8e1453 SHA512 96caf981177f6ded9f27f025922cb94eb0cd9de5303bd91680099912d922092e77b7361efa70011e84f1595e443193e4f1b354443b9980c123f6ae573b236f7f
+DIST bytes-1.7.2.crate 64287 BLAKE2B 95e8a3b9d66072dfa7fa7d667786aae324a81218001e1b4af30373a9ff18ed1f76e23ea601febe776bb219bce59aa05bf6d5cb155b7dc4279ad523e9d0bdffd8 SHA512 a00cd5567175bbeb6f7c64d5bbdd2c15bce4ed448c0bcbda0a649d8614c1857e01d3c814d02a4c98fc8229487bddfd3251eb131d817e2ccd6a51458387796dfd
+DIST bzip2-0.4.4.crate 34197 BLAKE2B b69f8ad38b44eb4912b33d53467492b0ebe6ed740451bdfe9133e71c47a8dbd85b1110a9607c4cc627fbabc44cd86fe0396bb545864632ffb6169f9cfa547b6c SHA512 9cd2b9159bd0b42ac908ecad41f0a737272af94ae0d6dcfe182d2f44bcea4632d32b0456f02322047ea9d6f46377db6cd083f468782bccd6126bcc75cb852555
+DIST bzip2-sys-0.1.11+1.0.8.crate 633444 BLAKE2B 01578c512443134fc786669bea4f2ec4b9c457b9936c907315299d8b67ed78045d458c83ccc119f0fad511529fb5af5feff5fa2d983fdae832d2fcc1b343e102 SHA512 d0a86b9f03acb1e4e309d5739dc2e88cab582757d467a433afe0017017f0e5d2c0282529e3a117160958ed170d8d695ecae739805888305df0e35e4dc440582b
+DIST cassowary-0.3.0.crate 22876 BLAKE2B 7e74a08e02050548ade7dd1ebba7ce4e4360d258ea6acf126453889dbf16df433bed7b68789736881c957f4c09eead1f763a0c02f2474157b1650a1e77e6eca9 SHA512 0838c0b79ed31f0c514fe4ac82633976e34b0d6cb08616313cda0e00623514fc6498c6c308cfef54ea029f1fdbaafe2991ca8ac3c38437a113ac62e37f9397f8
+DIST castaway-0.2.3.crate 11509 BLAKE2B bbecba400bf98ef4158581f3b1673ca77dbec3ad754d3749f0e9342a47d1fa9f638c1388f0762413277b73251854ade26e08dd85b7d7133c73a5750d4dbf7d92 SHA512 2565a4e5709a25118462ac25b9f741e92456c81ddbf7c4e791d8c647f2ca5227b2f59ffac108f9d32c77cedc12219c517218c51a78b1d22a1baef1bf2c16e0a9
+DIST cc-1.1.28.crate 84424 BLAKE2B 9d617066957c9aa8d3ae86943be8494551624e34d8b1060d86959751fc3f874ef6d83c78235a7905e12ed72c16bfc45666fb36172708c3a53639c99342d34edf SHA512 98571ba96e7967579b70988d9308c8d3616cb1940b84c0d7dbeae837bf31c5a62731fa369b8b9d968ca843638efc7a9791ab76c3cf06deed4348d9d853ddacba
+DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b79b807cea836c89fc3926d693458893baca2882448d3d44e3f64e06141f6d916b748daa10b8cc1ae16d1b SHA512 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff
+DIST chrono-0.4.38.crate 220559 BLAKE2B ab828bfeed56eb737a1797d5e1132cafe87a1e14bf7a1fe4a5098f50e6ceead50ca2e7f041cc2ff63d5f4e41e2853322f6c345bb31ff12a5b412e3e5202f5fea SHA512 858e47e3facebd5383e71898f26b27d92fe4a69027e2cc47da2af59975ead7767355e0b699f4228eabe76a3eff8b2519c7cecf8b60dc3fc60fbf9b28e2f3d4d9
+DIST cipher-0.4.4.crate 19073 BLAKE2B 144c45c1bdc5f7aef7f4fc63b6dd85955c453537567d1f1074e436e50d0d61f8413973cf3da207a48f1560ea92f2280fc5880569c78a1dd66bf97fd1d88ccde7 SHA512 1856d8b08bc3dbd2fa5c8b97e9eae43323c7aa19203ef3e80bb49cf15b5ddc832acb7b97121a52032656353e764f1f722200b638f7c28975fec1b5c9dc908846
+DIST clap-4.5.19.crate 56377 BLAKE2B 23b6ec8ad85063177a79e6a910640e3cff4ff069925b6e608022c50df7c72718a5a05ef9ae1562f869667c21bf6c93afe13f0f15b4b9dc4f91e14e7a108202bc SHA512 55d8cb53951c2a6ecec93ace3881ba20482aefe41dd87705c15e295462d7487b24b15c1caeee5e8ca5917ca28a381cae1c0d72781d6a440c26a41f3c64dd8be4
+DIST clap-verbosity-flag-2.2.2.crate 13009 BLAKE2B 7576561feb3407da0f060c72277188635dbe4b7c5f2893cfcfc99ee83d64f4d9607ad6c339622063a7f60de75f98117973ea53a2d8c15d3142b1a087cc05419d SHA512 63606660c6a811ec2b814cfe382ae9a29e0d91797941abd336742666324c818410df5bfd44ccbe9f4188aaa24952519ab55eb5fdf97988d728b79b334b0aec4a
+DIST clap_builder-4.5.19.crate 163596 BLAKE2B f709ef92a6d8a23051648ac1b2f88e9854d1123d1a21c6aed06ec4175b606b7f97ff05139c9b0d7b18492bd272580659bc0e2a0ee572d6bd4d3eb250bd0726fc SHA512 a0422134a231a9693582016a2acd74c944c4c1f12b93a40abb731a0433cae47bc97c9685c39a37d9c335ed7bf4de08a1a1536e291164600625eacb871293abf9
+DIST clap_complete-4.5.32.crate 47181 BLAKE2B b82c809999e5a3da7484f6807b61ce09dfbcf35f0c59c4bd18b45cb159e1f09952a954ed1c5bbfa6a526645a132b1bf72e47f6af622179a2137e4888b2ebb768 SHA512 89f6fd6f11144a97db81073c37bdd7689967304a3e537956d175fc56fd025a662ebe4f750029fc79f8c2e135719b1e9106c361a76025fe641d7391e825be36c9
+DIST clap_derive-4.5.18.crate 30131 BLAKE2B ff962e52d8d8afcc9639365e27753c6c6943fd809ef89d9e555e8be5b2f13efa650bf1f9ae451f4c127c1529a0af1d892c3b02153b46deb912029b45983e01cb SHA512 035bb918bc7e9badd59341560f23e3a8a2e7cf945b6d8183f74052c4edfcbecf07c9ea6fce0ceef0b84c89a99d62b11760af39398897e4ee7dad0170a96cfefa
+DIST clap_lex-0.7.2.crate 12805 BLAKE2B 952bf3f3885ae7bedd0e8add236590da5fce72a7ccd88ebda063410aef337ce7ccdb5e5e929cb870bc993891610edc0197150a3aa82a62fadc4bbfd96324fcdf SHA512 a8726397e5372fca3389748efdfdbd016b6baedad5b4bd95f33e4e820d4f40e0b94c88b1918ded3678aecf23911028e2261837e73d58ba7fd6f091eb47267380
+DIST clap_mangen-0.2.23.crate 15368 BLAKE2B 915cc4250a3f377ac0f5ea103d18cfaa7b827b3c686fb485f98619465eac23400df828cb06572c4748af42584c7e78c0a903c4114c8e4cb867e320521d8d8add SHA512 fddcf6e7173eb0ff84fd05218bf70b2bcbc3a212b7cc1dbb8eb85cd59504fe89f8b4078669d4a45308ca5c2d9d87d387c5cd0c48cc9a9376646f13008971e531
+DIST colorchoice-1.0.2.crate 7924 BLAKE2B a4027d5f870b4d9a718ac3f9d89ce04e2ed38406658c4a55ffaf39ed0cb1ce7e1c691eb56c66596b519ca82309e8ec7eebac65e69394cdd277f44f9b6280d560 SHA512 f34d5f66f84e90f473b6b9a62a61a59575e712d3e9b140324683f80af42d40c1d079701aa2ed651d0dd95a5ac8838e1f6f6c034e2adef79509d32357b8093117
+DIST compact_str-0.8.0.crate 70994 BLAKE2B 27ab4163d71915f9cfc160fdfa4ed049c98b06d0060def8c4bdd29e8ca37716a1c53877f70d1eb38260d44003e833c538b20bb4960f0b28a7becca5c9b29984e SHA512 5a236c501222b577fef7d7190882e20e85cc6deacf9d1f6a1d710893654b53a91c7d47373f0d10e9bfe138dbb2f4e99802deb2a92001bae7e130f6558ed9d1fd
+DIST console-0.15.8.crate 36364 BLAKE2B 467de2c2fbfe31688cea20b338558ae9671e50ba1fd07983d21f32d7eacb73e565ebdd6ec5e78b2ae04446f09615c70983c0ee534e25ca5a28fd1b408acfdf34 SHA512 b05e49ed145785e29631d481885788f0cc5574d4d7c4d90280dfedaee7f8c1515072c9c4cfe6bd2e017230cd228157222af7e7d41a9fce697cd1888095df4de9
+DIST constant_time_eq-0.3.1.crate 11561 BLAKE2B 9ac06a1b13da2aacfaa20d60e48df4f32f6462e4036fd9ec116c45a9bbe142a18b82cf18d762989876f31b745d98d52ce7e3d32f6c9700a500f16f00649b5699 SHA512 2b6b0d7572c02606b7c3780013fb1d1773b999a0d9934e4b140dd82f94e6c91d2ef82f6daaa1bda94f95bdf6b5997b2f0ea0c8eba8ca7e28a07d1e06b1071b50
+DIST core-foundation-0.9.4.crate 27743 BLAKE2B 5b695e671cc833170bc6bad436b2d0d8d386ffb8181bfcf2e92a1d93cee67c3ba1768cf57064fb91b0897c6aec1be7db40b5bd256a052c1bdaf872ec19f6e15e SHA512 82d0878a1b9e3d56b3666fb5a78f92c6f7806d01665c242c06a640bd6b1fd36260211e92dc05e1a16d1430622bfdd650aabb0b5bd8e5592f74abdcf412448e33
+DIST core-foundation-sys-0.8.7.crate 37712 BLAKE2B 0e1dd99a5bbb0fe92f55181a37426f6e86445cb20e355f553b3162c88ccc075644461731a0cdcd93dcca65b6cef1de62b409afbd73ba3070a199ab8e7422dcfa SHA512 17492d5314db03abdb3b1998bf0c396ec8ed0f83bc978ae22d6026afdc86c50b58cbac073b3a0d97b92da7e98be11302faf1249d24313494bc058add4f4cb63a
+DIST cpufeatures-0.2.14.crate 13165 BLAKE2B 45521d1a4bf2ddc03c6cdb9ceacb900806a03748fd122dd4431f6927d06cbf8608f9830e312b5728dd55b5084476280669129ea80477432fd04fdd68a0e50fb0 SHA512 402c0d6497c65882415841b9eb5953b1dcc1cb35b9fb4512801f3d0e2a056ca95bd32fdf70b6e65a18b048d7df8892c95fef1de975b56b63cfe45460783d5867
+DIST crc-3.2.1.crate 15070 BLAKE2B 9d5f488b57bc232528cfb8d9ef33a88d25d904395dfac8dc10e864dc0d6c89e576585195a20db585fe358859ec50afa998562ad6becf6fd2e505f3969eb36ed8 SHA512 64b7272d8cf55efe9768f9f3218f83302ccb59458a56fe3b7b2de1a53eb5a3b57fbf268647fdba5b230cccdd4058462ba583d76870ba12cb1057ac2787f181db
+DIST crc-catalog-2.4.0.crate 10155 BLAKE2B a9c3ef81871d72635addf1ded611fa6e963b9b128dda198eaa3a256512c8759608bae95df95524704aeb38f81e2fb6c2da2e29e306a8ed3dea595e63cdf05638 SHA512 25536456fe71c44fd8ec527299339c1d186f6e12f1f90142de60eabce337d836c2497ddd6307473b57a6cc720cfc8e29b059f378c70b8165bc171420ccb40a29
+DIST crc32fast-1.4.2.crate 38491 BLAKE2B aaa3acca66e5814a45f12a90ae09f6ff5fc14ca94c8539184dab6ed928abc68cd1d37e539c268c1effd50ab3af20de6038593fb9c6bd6a664785dac52f6939fd SHA512 c7608d33022062e217d3576f536ffbd51479855a5e5874529c71db2bf6a937ce04d814c39cf777309c38445393bf43cb9996161947e28738abd432f11beb7266
+DIST crossbeam-deque-0.8.5.crate 21726 BLAKE2B d97b35e8e8858deaa7fa9a836e836d02914aad29e5c34ab121f52ed65e95213cb2574df82273277365889ea771f04eb40bb2439347c259979f1dd6d5e9853bcf SHA512 0f0c9745763ab156136227cf1415de514952a3f8282ffe413cc249f9f4b345b029940e6a6c87b3be8331a7c783655a35b89c7a2547360ea5ae10aa64ba7ae864
+DIST crossbeam-epoch-0.9.18.crate 46875 BLAKE2B 200c256cad6011a3a14c4664bea6b150fce72d561c4fffc387fa561b08c0480e8756bf51c14874c5fb19f427424547f72d2cd7dd6f56fb8b6666a85f8d52bfd1 SHA512 0a8a199b9d77f4e28e91fe0a0cbff7e0dec58cac283631fd972477fa912d2f6ddfddaed2c695e4978b01cb5440b702822af6333e7c3dfbcb9a2c2086999516b2
+DIST crossbeam-utils-0.8.20.crate 42487 BLAKE2B b50da06721cfbfff07825574feada8a28d3814edb218434288683eec31bddabe2ffbf7e5ef1281ee14a8a77c56db3b66f3c5ceabaea9c72317c1bd2cecda0c26 SHA512 7175eadf9fa7c526fa11ff87e40ff203f0e7a4bcec15cb972f924f3c7ff7cc20b6e2e8dbbc1ede142a0207cd2baa4f446deb25d825d28a54cbd25c263701bfaa
+DIST crossterm-0.28.1.crate 132275 BLAKE2B 30a5bf5b48a4bddbfb53726b675adfdf6d64cc387e027a69d6ab721f5ebe574abed3a862504f0db723a733662fbf0ed13163730a7ab49ac9c7fc05681a3545dd SHA512 0d53e328eb606cabc3e309cc6193b34a14c8746081a7b2c9645c1c03d66dbcda99656d629c0dcfcd43bada7a863df3e83fded6b642b2474035165ed7b16f7931
+DIST crossterm_winapi-0.9.1.crate 16027 BLAKE2B ea63abf751aeab203f326e77260cfbd1de286be26acf714a083ae1262b0cc2a35b5cb6d0bd54f45b33c1942eb22f916141c5870aab34149fdb30faccf4d4642e SHA512 48eee242f477f43b69c00e3a5d4d255de2ce1774f6e73d869c5472b35d85af0b63f3a607097da8ace437b1e52a524ded4106767b83d4ec53c30c2e37ac4b46a7
+DIST crypto-common-0.1.6.crate 8760 BLAKE2B f2422bfb89c15d47a8f91c8f6695e05eb56990a922e3cdf3d426044736f9932324c0d899a151a6df4d6683e6a6b21659c657d3988734014c02cd854bb4b924e7 SHA512 471dbc43f517089d2cfe0868e29510c6ca579875b3bb5d013c70796db969b609b6c4bb35c9a07b9a2917012dc5708b717d48e317a20038adbe7e7039bf3ada6f
+DIST data-encoding-2.6.0.crate 20769 BLAKE2B 9d5713e63f6f6a4d6e5324fb0be9308a231ccefa20d69cda9e19609a2250e2cd72030ec28309068f71c932327a3ef680b749125658e27d35273354c3465f9931 SHA512 a685c7bbd251a5738b27ac3ac8121a0db049221510c99e0ada6f245ed7499d04ec29d725ad01c688ad283e3d2d5aae0751685c804f6d95cae84e63a160d04c9c
+DIST deflate64-0.1.9.crate 15104 BLAKE2B e0b221fb309a56d5172738a09d83e3bc51fc5629db9a4a7977f4c05bd3ed67ddbc246141df8edb65fba7cfee3da2e931f35fc18cc6039b67a9b016bec94c473e SHA512 7b91cb3c9f37e80dcb7fb86ce29e29b2b803e18d6e5b44d0dce907978f439ce9547807b3d19f8172053ca501b71e701e356a889756b84c4c158c3c596c46508d
+DIST deranged-0.3.11.crate 18043 BLAKE2B 738d5a88732e227bb0e0d33c04ab8248a699c7c499100666ffcd78673d1f38ad2d740222ab405e3eaa7a0a6f4596cfef90bd581a1baf77c954dca830c22e74f9 SHA512 48485666d3e50eb7976e91bed36bddbaea80fac4ac664723130069bd7d17893b6d1a2b82a4c3dd61677162e4305ba5ea8aec7bc2793d1b8b92dd1666c204fc43
+DIST derivative-2.2.0.crate 48076 BLAKE2B 56d27e27493c3b818ad45703efda607a0a0d9a48b0d43785b6a013443b8b964b67bb5b5284d242358415c5fb81b86b02079ee7c0595ec07bc658240eb114b887 SHA512 3c65ecdabd2dc202be3d83b06f96b6f68504fe542ede7e2285093c6d360a33ec76a3787c436c6e5ff8f59d430436a4b8ce2f908cf7b2b08cd8b0045de4e5d1da
+DIST derive-new-0.5.9.crate 7733 BLAKE2B 3f0a19b794c10e529da5b3618cfeaa4e575ee31597d2ff1f95618eb5163568c6c8836c5a634323dda65f448bf3fba2bbf066df5f815feb07f59ff99d1f46da26 SHA512 9ce0991fe63d8339a88d9552fcd8cc744d8bbc2c6525f60959faf519e1ffa84256c773291df2101912483c0d9accd4fe5f7dbb199dbd36d299ceae8f607e0b30
+DIST derive_arbitrary-1.3.2.crate 10614 BLAKE2B df96dfb9000a794e3ee6e633ab527621d321db8006221b482e944d58d4293c3f87f6808af4784c53c06b28f3078ec9be6860e3496d6af044ad6d71db35310dae SHA512 5ff36cdb5fdbc1120442571b21405bca9dc3e7a0c0d6f0b4996fc71be0553e1a8cbf2626457c55198ecd9c66d18dda66909823e7c6f1f16151b5d05e1c69d201
+DIST digest-0.10.7.crate 19557 BLAKE2B 61e69d78cb8d6850ae26ad7ff2d52dd6dce820d8c621230def11cc0e8aa6d883a6e1b25340fb45748db52a8ccf3c8d36a8aa0c8cdf4d4eeb4e3f870d86abe09a SHA512 0dd8c012468ab9011b89413ea4d3647d95b1f683b020a0e6274c95ed5148638b56fef19cd9044c837ad53715b582b88eed277fe96e917c27c5d7abdbf7c3794c
+DIST displaydoc-0.2.5.crate 24219 BLAKE2B ba3396c93d27a99a92ff4a0f01a8d192b419bad25e48d9427b76260ebf2f9982291d77f2eb24d239c0b1fbb097e866a20bc46dc1879fdfc6637ea49928444a92 SHA512 5ca35fa59f263162389c1180331e9df607d9374bcb056cb04bc46c98e4d87277162ddb2335ffa8a8c5f69218abc3eabccdcaa71c21b8dd9081cc4146f266b948
+DIST either-1.13.0.crate 19169 BLAKE2B d6223c76421babf163a694aa513fe07adcf4cea329872c02f5af5956e89b2c353a899f5708e5a2924e5a92d871ba748490350ba30c17dcd78dd4379e229f6e11 SHA512 72e803079bae621d282136ab1e423ba71415bf12038b6f386f294cae68a67ad9ff16e4fdf4344eb3fee4418e853f9cac344c248f6befa3006d1c954668b36322
+DIST encode_unicode-0.3.6.crate 45741 BLAKE2B e1e3792bc2bf9db7df33a516d0d755eef5eff1249aa9b2fd7f0dfcb155786c566fb619c9b2d73425a8625c8593988b117e9676c341f65e8795ddc838bf9881c4 SHA512 64193d6ac75f66d58ed864169b5d6228ede36dcf100614395e086bc8e847a3ddd287734d88e8ed50f38c679a99c80ec68449175a67d8ee03b02ec1cfa9d55e77
+DIST enum-as-inner-0.6.1.crate 12190 BLAKE2B c2162a838bb717ea7859d5c11ea820aa6bc79210bd6a9e06e4f05bcd17a3c92bdb7d98453d58911f96dac79bdf553730b58d4949d268321aeae324187602ae09 SHA512 e6f80a4a47f5901301debff47f1e88291ee6d29dda2805373ebee62f77c149a2c7f8d1188f8a365f2e11f5497025036aae4a4c3a7f570928961d1d25d6caabd1
+DIST equivalent-1.0.1.crate 6615 BLAKE2B 302d78069d9df05e78b53f0488a9e4eb98fa2bc1e21893dc8a0acf2234347ba7c4df4b9d6b380ae77d8ffb1074b9c790460fe2dae47318aa1c4fe4208244540a SHA512 b2bc60e804c1b02c461dcefcfd60fc37145af710d183ebe65f9a4d63f2b2072d23193f98dc550a9213c7fdc6a2a837af23b04a89294ebbb681a4aaf5d5031140
+DIST errno-0.3.9.crate 10690 BLAKE2B 8deb19cf0c830ff2adebb733ab961558cb4463f256604f9c76d5c5952f34a79b70dce47e28f68f459977ef34d4821ab5d0f7e79a7a110693700f80b49ba56651 SHA512 777fbac5730d420d58275ef63b7579997d8e6c72106d483ee1e3b1f1ce3977f1f66c56870a05acaa4cfacacb820eaf963e9c763748759cff3668fa2e6f89f04a
+DIST fastrand-2.1.1.crate 14983 BLAKE2B a4535b1612b103376fe64d71a393f7bfc37668c574d9122ca90a631aeb91cf0895bb030e597b79a80a4a37ea4d514c4c0836332030bb10a60bd971573a6d6ee0 SHA512 9a51185132c1c89fc31af463c664e996f431e607ce96676b8301f28ff11a99661d18025dd460e3332e373af68d20017d96481719746fc3c5de742d08d63aba3e
+DIST flate2-1.0.34.crate 109174 BLAKE2B 70fb087904e1e29243facbb9a01f05770581d91d49935290943797cf84c3d2b416a8f78b2c4f9277d86053f1bb79e858ab1d5bac427bacea9771fe1998ea498b SHA512 0526f2c7c061d57f5a39fec9726c547848f6bb36dfc977497c15fd42da6c300bcd332278c31e3acc0a72e897a7161f03deef61e95e072bf3cfe5b0302b5f98f9
+DIST foldhash-0.1.3.crate 13712 BLAKE2B e5913d3aa493d0176af9650354d98870b7e97523ca743a7d9605da3f559463654f391e42438d96fc797397ced449f13ce499c20ed5db7aec772aae97c5f29175 SHA512 844d5b699db632254dfc378d46e34909637118647250e2382cbb88855f6739fb9b5f1b840bb8e250dc8fbd2a97c9155e5d8fd0c5c760b8e02dd0aecd96818a5b
+DIST foreign-types-0.3.2.crate 7504 BLAKE2B 520818b702d990d296ecd31a8646850202509ccfa18edd0e1b260289619a6c351e758f317ec0824bd76eccb209b6f087057c25f1bd01a47897715013dd834867 SHA512 bf27b8243ed482c202d120383374f19ff09422535e24b9c1aebccc66529bf300ca17b8bbc76d67f98ac092e614497afe3add9dc68aa69c93074df05762f91232
+DIST foreign-types-shared-0.1.1.crate 5672 BLAKE2B d2e42e04b6657e7a69fe0bd20c672176629c743e49a55fd007bb30e289710b70045d445ae9cae0eeaa747ee708c90e8abd9b5fc39bad8ec0666befe1b696d4f1 SHA512 bafdb2143e136fb0818e2ffd90b5c862b7181647d6568947d4e4531012bbf7a57b597221ec7056c1b562dfc0c3b5dead26d1a4111ebc15e7863737a873518a4a
+DIST form_urlencoded-1.2.1.crate 8969 BLAKE2B 383d3a197b73fba199220b7708e16d770591ac16725faf4efc1a8c230c569c381870d4a11b8fba623e761e68f9d318630b22101d461e67dd26c67e13a73358a1 SHA512 c65104e2dc08fad572bb31f981700fd43dd29fcff42b01c7ccdbd3d4c23dec12360aed3f1b5fc4766fee386d418a65349b2941b8735f788cb0d35d631a6a8dd1
+DIST futures-0.3.31.crate 54953 BLAKE2B 4b91470d3c85b9260c734dc6be8c985f78491b599d2a6ec0d1e824b82f684cd030be6f64179f7aa7c1d1fbc7cf0c5a1bc5bd045123b73461f490d7c2b9011f9a SHA512 a08d23cdac9e162d0e6ae72bd792201ff4e13d7ade6b498cc597149b3df2062b06814804c0750d941d8b5be5d2ab4cfebbe2d08a98d875d2092bf25e6e71a51d
+DIST futures-channel-0.3.31.crate 31971 BLAKE2B 2a59ebb73f998ec307bef01e997bf2922556d6dea10e2e6e8da9e1b4cd05a8bcfeef01bc1cc57d79c39bbd98b8a0d26871dca5c7641a9d4e9c2bacbb3feb4eeb SHA512 87e49e661cb12c1e03a07d3c94ca9bf5954344a51fa11639a118f5a49877c883387343af54639ad80e7196062a77fa7c9b9aff9804fb1e6ea3d0eb09efc53c69
+DIST futures-core-0.3.31.crate 14318 BLAKE2B 613d16e4f18547e45ed0dd56a7b908306393e479c379ff64f358844eacb1f8d37008ffbbfe6b1a4ed184e501ee9214db149d9cca31651b7d353ab4a99c8f5ee1 SHA512 d2f4c2476c4f480f724a880ee16566fcdd545579d3cacd2f16745812eed9ac4a7a88d59d4a38b163ef466c6f6b612b9cb06308a09d52256506a8a90e358db935
+DIST futures-executor-0.3.31.crate 17965 BLAKE2B e111467391cc99d1b6a1f5fd3aafdb86922a2d2d9e360112402d68489577527aa35f4f65e6c0dc8f48372927e6d7a6a4a97c7b9525c369cb14e34ca2dafbe64c SHA512 337e70bd3a3bd3075b51e2afe8f157902ebe486696587cc2706b6a5770478ee2ee4216aa9e155e9821ed1d02ba437cdd3abd0c05aa960378ea192e2ed39af564
+DIST futures-io-0.3.31.crate 9047 BLAKE2B 667e62b50be304b68b8437d93b734a0e2433d88a3b410010ed0b04eb2bbfbc9984454c3f0a591f720c9983582c6421d7f870f0733c31337c4c518112f52aea54 SHA512 16d21388f7ca083d2c618ec140cb2c0807ca621b8c338698c367d862b99133ec9edda828f051f3f666472c929e7bf7a5cb334fcf167109c7c392c5cc60b54fdf
+DIST futures-macro-0.3.31.crate 11341 BLAKE2B d91ace97b854cbfeba1df90468fabf6313721ef72bb408ca6bee1c110b0162fe91da18d371b628513644f9d3956540d93c3e13bc9917550338f797967acc3967 SHA512 26c45dd8c037831ce3c41a326ddfd581784c2e7aa2805ca4d93b91e439f4d8c078293cd328bcd66d0283cbd5a14724bc624ec607c343d15193b00bd644b86166
+DIST futures-sink-0.3.31.crate 7958 BLAKE2B 7d42180cfe19ae42e2ff486d83ed46f3aaa4b333256d4c30c5a2ce0e0d0b05ae93516b029e6d07105b4296bf23ba29e6fcce19f0e38ecf59b53c6ec9cfe2e188 SHA512 79a57dbee5cfe98f2c003bd463d252648743f70d13e2054af072978b758c7cb8e5fb652fd2f36c760df358ad23d2893cef24ca6ae3df44def28f1d39bcf348a9
+DIST futures-task-0.3.31.crate 11217 BLAKE2B 8c0e0aa0aa14bfc28e668af00a3fcc2532950ca865a9f3935717a4a3770cb60477cd8f4cd080675379315b649fbdc5fee9dce49502f0f24f44db481a24c884bf SHA512 4872fd2f24b07c626efc6fd76c01b44d56efecb9697f972d0877307b38d3ccb06277ff029df38981470ba1f8ac5f93086123ab3af44d3c49bd9c10b6c9158a81
+DIST futures-timer-3.0.3.crate 19739 BLAKE2B b7af71c761197056a6a4db03caa30f31c104de0049c09f52b18b80718ad20c95e0e64bc7a3618c29d1c9a5ef0309379044fdd9c1fee8465930d28b2c58927733 SHA512 c50388e38b45dce2a65a8d7ce56bcd9c3544ae677158c4c10c532136e861c16f0f52df5222a14c0f40ad8e4faf93fde8223affa7fd84d24e95aa6994177e7e76
+DIST futures-util-0.3.31.crate 162124 BLAKE2B 69ca647a261fe24f90a4221d8629169a8dc7eff9dd1c4e07cc700a52a8609ce9b8aa3974b9b09e1ee64d0121d7bcb3efeee6fc15983347aaa0b0b23b068afc34 SHA512 429b1de584546b931b17d475aacbdb0c14824a57d960c44e615aa808e8c0f9c126473e313a7150b3de87ea91b7eebebb1041509f61b3493fee8a9cd2c75c4df3
+DIST generic-array-0.14.7.crate 15950 BLAKE2B e74c785e3127095625951da192a018281ea9976aaeb11019f9088c3f27748c5fed1ef25d577150864486dc48b5138d6892e42f99979339f711a66fc70756c82b SHA512 363a7b04e4102f9ca63d429721c1ada6272be6bf0a2e97da681faf76381f73f0e3acb86623b9ce2dae441de9fda704088391779b9769ec02b3c8c9f9f35f897d
+DIST getrandom-0.2.15.crate 37163 BLAKE2B 7d534e799a4711d01c6553b8c9422dbf01e384a850fb0f7cd76e444628f2b96d28d0f5e8dae042f8081a2bf9340f57c558be50a6f22ed5fa6b0301a15898fb35 SHA512 04789a53d3f4a84862e1e8b2113641af67e471b468de1222470d5e6cef0015232463a2cf3c3518dc2a533b3983b175a7c8922da00665bcf71c1e4e279b67e6fb
+DIST gimli-0.31.1.crate 279515 BLAKE2B c8924ce351af5b8f96ef757a189f7a9be14533c024d496c62037cd4eda790b3f6282cd3013ba82ecc83082acab1b60ea80b83e0fd5f8eeb381fd7f9df88ce0ee SHA512 b9c8c11547dc7420fe936b9f32a4f5ccf3bb68d1d9f39dedffd40d631360f6e032e719d858668826f1099b8a262e8096aa7ae1f6d7d3d7aaf47934d832715949
+DIST glob-0.3.1.crate 18880 BLAKE2B dc89b3a664e810264dd7a01ad892e865ce35b504bfe5dba12d7ea8084da7de84feaa94c2208f1a1eefed90297e552636ad61ccebf6fc8cb4d01f27d605ad0a09 SHA512 29368160138bcb7ea5660f9f30c5711cfca8bc8ba836bbade3fbe8c424e7b4118daf27cffa677962e37e36f025fd2bb5a9c2aea865b0ff155cace455dfbb658b
+DIST hashbrown-0.15.0.crate 136460 BLAKE2B a2bc34b9d2eb7ca52dad7bc59e9bbb38ff9f79925495e1645eda7c0587e86e0a3d0675f8c7f159c5a83dfb2832fee9788a7ba6914168b51c26f762e140bd05b2 SHA512 497310e0f8e256e931ae0e752f66eb3811d5d3b9254dacfe2a1227e8532dc23eac8cce7a3f0758fbe0e0fd8f08b7bb18b5f118dbbf4fdf575a31666283583111
+DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76
+DIST hermit-abi-0.3.9.crate 16165 BLAKE2B b779f005bd4cb9ba9abe401a0a559a5bbcc44726ac37f53e9c8d1f7218389ec8b48f74d14666261bc4fba4fbe5558cfefae873c49a2312c8c8bd4010b8344064 SHA512 f3a5a51d834a6ad55480b53f7e9cdc73a512ab0cc6c246a6ab1e8bf8f9851a0c8a55982f5bba6cb57b5a03b54870e73b0bab0a79195764c308318394a3ea8045
+DIST hex-0.4.3.crate 13299 BLAKE2B deab49bf3d97f6fd7c0a0855b50232422443b226362bc7a4a19e57c2e662fff2cb046d4c5bd7618ddd523045f3d8c78754508f862f9a8ca29ca9247da6d6ec79 SHA512 fd8ff33b68eea2d6f2c6b02a6d82a2807cbcdc209ca5a76e3e3e5d006917ee151f236b6d18e2646cc9a9674bcdda1d6ce6ee363a89cadd99bef00d0eea9989e6
+DIST hmac-0.12.1.crate 42657 BLAKE2B 5d432a666dbcf9077a98e1f8a4aaa3afc88f3d88553cf7a2356d117c66f38efafe686c148598ad67ae89d64ee3edf56387a6f89b75dd9ab5eee63e13953dcead SHA512 77d4bf51f4633a8c36712ce3178945141df31cd645eafcf4bd130b8ecd7cb498bf1ee6f2d9c8dfbbc9f97ac638919fcc81bd3ee600a1b27c3be3fa87313aa0b8
+DIST hostname-0.3.1.crate 9272 BLAKE2B cafcae4bbfadd51d058e3daba3e63d897bc3418723d8e843fd941d9663dbc89dba131c77d14ce7a5da552650ea3c40c4e418c88d465f1bab2fa20c178596852d SHA512 a90407996353c9bcf5b76be03713e3a0455ac80a50892e77a508744cf436a938ddb87ef97d8cc91ec7dc4353cfb7bca0fd28c90a72f8a9ecd4f29220d174edf2
+DIST http_req-0.12.0.crate 78297 BLAKE2B d77a96c93f67b80d583c4942e8b8ad197c9c2003293301087b645774b9724048b5f4fd4e4741c61d94553877719abd634b3fa5e9a2e4e7c6268d3ceccdde9622 SHA512 0cb8986611976088f4cafae79c60e4858d18f50d9e7c939b5addf33709e2ebc404d325962a1cc65b9ca454432fc380bbe11477576f9900d757ebca23a3f0368e
+DIST iana-time-zone-0.1.61.crate 27685 BLAKE2B 2091f0bdbfae3f63ff846e27136d9779a2d65f85cef899ea3ab0ff7c987329e6a584cf49c57de566f08e0277bd4981ac3db30ea0cec6a6757ed50d96e2c6583f SHA512 d16c67f435606334042c3a286350db46ff3409f142c0782509b136150b4069aafff0dc5c2ecfb7519dd8d105b9a2e6649df2a7bec33ee3966dc94034c9d5a1c4
+DIST iana-time-zone-haiku-0.1.2.crate 7185 BLAKE2B 37fa14b589ff092377b9271c414d4e584c5a531f13f70ac48df26df3cc03353db635b4630ba192fc65b800cce11823e91b91f03dfad85e4bed55aa18398156cb SHA512 448224ecafa935472ff6f0aab7cb71f9dabdbe71569c4b94fcc65baea925ef48841577687c9a31106a1826c2105e8dd73c748e9d27fd002648e5b0ce838af6b2
+DIST idna-0.4.0.crate 271429 BLAKE2B 8b81bc4535d2e8a1100ddeaf6f43c043fd601ee3b37eb109a9dff01630a81603223407bd5c2f1a1b108d741c811781b205c10148a0122b8125c237a5d5ba8a58 SHA512 b4133c5f73bd9c4ccc05245a9edcc5c980714129ce4f6eb7851eea7e509617ff972fadefe6ac78db6b4106667d9d6070de52c4d42414c95921e3d9fe1b7a76cb
+DIST idna-0.5.0.crate 271940 BLAKE2B 0b781c2e9bf717af429efb53bdfd18244f2b8c58e5111c3bd3bee50c8a01cc747513fe20db75c38b6b771d5845647bf6c1849ae6667766c9623e018c1f399a9b SHA512 bee6cfbfc99859b113aa8c7b487429a836dabc4e317980f132d28ff8333336f33480bf9f8b186a07115eff33024cd855bc85d346fce85e17c4132e886769c54c
+DIST indexmap-2.6.0.crate 85204 BLAKE2B 420a3cceedab93e5023b476f9b6b93e57057238425d4095de59eb9490c2a088193873e643dcad2f739e34e5798baa9a18939424cac1afc5fc7b93ae496ba188c SHA512 c870348691f5acf97e7bff25c805e60f2e9db9e3ee7b3b939b7be45b6bcfaadee9880e6ad27adbbe2545865193655b5fa9de18487b7a1d030017b2fca48616ca
+DIST inout-0.1.3.crate 10743 BLAKE2B ac2fa5cadd98088ea3f6eb94ca46b3a9ceb6547ba49f0de311d86474d71024d1a087ce9b8d44ec808008db69146e9c81446bcfeebeb2fd74d2e8d0ad2c4975ed SHA512 1db5bc2bd87aae145b3b0be6669a9a722df2aac8f970fda210aaf945c372e641b941cee822917926dfa1ab8381c6e99cc7df4b18d2f4e2fbef17fdec36ed2beb
+DIST insta-1.40.0.crate 88233 BLAKE2B 5ad1ea163be53ae27db497ea56ae9fbdac81b0214f653d4b9c8434cb52b2d03cca5f2105a2beb0b280e73b8b2d9db11d827c6e6e64da20c9593fb5a4a131a919 SHA512 7f629cfc5c31971481253956a0f8e0d5333ec37f2b0b859d1ffe776e6174e9ccb713dc370fbeab5c462b2feffdbcbd9482107ac93fb40a03eff9327e274a185a
+DIST instability-0.3.2.crate 9772 BLAKE2B 36cca360c2a42d7a56992ef5c6abc0699145704e48f9a4b9bae8ed56eb92bebe460ab77da76ccaba9220386161c79826cd9490897409519884cb07bb4f732eec SHA512 6e217c68f45e665ec235993d6f3cd309593d19ecac0a6539777ab967a717eb3c817d7a6e5951987e82b3348e1985e823ebd545fbed30fad8899cd6fbab4714c8
+DIST ipconfig-0.3.2.crate 24468 BLAKE2B dbaedc8f4ec23fbbe48a8c79f16fa1575b8374f055237447d12eb009694067a82bd54b503f73f9520e9b731dbf2b7797ee2d6fe2c07ad3946146b32cdc68ad0e SHA512 6029a7d453db77bcf397580fd44c5c777ce6c288c251376cb591174e9fe0aa66b49925764050cc9bcb2d656a8f6c4af0cbcd6685b2ea4616c2d2cf8de9bd67bf
+DIST ipnet-2.10.1.crate 28407 BLAKE2B 50c27384d58bf57ad2c3dd0ffe44f1ceb1ae302dd40e451b0c0d69f227050fae17c368c417666c1ec9d087caf775132db7387d5a6c919a0863c78a151912ea64 SHA512 7f55f23b2b0936e3a7dafa2db0447dcf1b63a092df4af8f6fd88a02ecc8f0a290b0d21b18fe777eb573201bf82f56ae475a447650ed0803af676b1e0c0970cb4
+DIST ipnetwork-0.20.0.crate 16556 BLAKE2B f6da9b2283241101279ba510c641a287107b2c27ebfc425af183ca342e4c049915aae2a2107bcd7e8349a47e07ca1dae118194acb71b7b756a36f498a6c67f8b SHA512 a8746f25abb73820cdbaf758f537c726bc9f48afa82417361d54c41bf3b86077e5901135ac5e305e2f669f093690ca518c811c89793d107b3deb139861462978
+DIST is_terminal_polyfill-1.70.1.crate 7492 BLAKE2B fa663f858ab8e5fd56202d731b572bfdd4ab0e8262100424e27360a9ffd2820182bc57d6718a305ef82d04c3798111841c0d9f9dcfe219765c0f63edb560dc1e SHA512 4730fa09401cb4e69c92b38b2b43afd74699c61f5bd7b37605efbc0c08ca7a1318d43e4a844e46e0f84f83f42432f01e33771be2b18eb5977702ab9f894837e1
+DIST itertools-0.13.0.crate 146261 BLAKE2B b23d59a87f80d24925bc868c0ac7abb6b9d05aad5ca08833634ef760ce228a1b753062ec4bd22237d0e74727edecd7ba3df9789cee896345b69780d7de66866c SHA512 c6cb8f93a93b6ac1a2cbb3033e66fc81a39f83be773b734bea3311332b96bc71bbb518aae3e6b40cb537590c23de1ca4964361c336795c3985bde63232d410c4
+DIST itoa-1.0.11.crate 10563 BLAKE2B 94da07e0f7f2535d0b1491b3a3c64905274b315ffd35ec8e9a3e36e26cd7211733b462eefb5208963e388345f65be9694804c344a6132b2b595b0bc716c0b328 SHA512 7e22dffac34c9c9f432daef395e0ec710ed658164bc9cd9fc6445c9f984c912a10bac556214a026bcddbe27a3197b35b0c87d6709fd605062637d086b2d20311
+DIST jobserver-0.1.32.crate 27549 BLAKE2B 5f6556788d10af992fafcb578ecfd2c81698eea31b636d3adb7544e12155796082623735c8b10ac4c04d891d1acc307fb4e4ac3f88b2006e181013006f51c8cb SHA512 d4528113dd5a5d4a3765d55599a07e0998c69c7d21a90d2872679755ec4bd7726e9721af9220c36e1179b153ad8a39214a422af63aea15eaafd7cefc828ddff4
+DIST js-sys-0.3.70.crate 53863 BLAKE2B 15e75a94a2b7c77ff18847f98f76a1442b6e5f66960f3375534440c382a255e6b16ba3cb8c5345365d2195f7598564bf856755988f1288eb1b0b964e26446e21 SHA512 5dff8e790447a475b3c0a7068f0bdf1cced5fb8be2d66c92cb6f6c799f9d807f9d3c498e4f42c67e16d83dd4bb3be70472ece20fc42c3a8c8d57615ac8d398d7
+DIST lazy_static-1.5.0.crate 14025 BLAKE2B df29e0e3d1c061815bdd608b41074436024dc407d454f32517705ab04b2fe06075e310086c5e4961df0b4885e91021589d0bca2c1cbe6f0aeffa3ff1b3fd4637 SHA512 6d2f9887cd7f34f019644e42f02f2bf0111accd73aeaa60973ba0b039b6774670debece1ea9a6978e923208ef5d3ab7326473ee3560c078817f0f7ab8ed0f65f
+DIST libc-0.2.159.crate 755366 BLAKE2B 70f46eb6228b4a8958dfbee00cdfa3c7d218f30d66c8591f4ccc9c5d8eda411d83ce9450552384ac4bc29deb2869561a2111dd157c9f228f617baf8f6b537bc4 SHA512 c803939ceea5ad9bdfdd122726c7a5f12ffd8b0cb66cf0bc62c9670e1e5904a504def388c1e043c520f4ece484addf6dac465aebd58578aa6b79995077bbdf9f
+DIST linked-hash-map-0.5.6.crate 15049 BLAKE2B 0f30e388633c60433dcbee353507f1c6857bd210f0b61a4d166a9b95067bdadaebe49d5fca4fa6ce13072e26037c6f75d46cc30cf8dc3c9cfcb3f33b33630093 SHA512 031a87645381c96beff33572e4bac1a9877e52fd2f99d39918fbede17d72291b35e2eb69e07edec20c3058554c35cc38fe85b8f175c2a3c69366136fcc71f707
+DIST linux-raw-sys-0.4.14.crate 1826665 BLAKE2B 804af73daf396bb20da14f831f26ce06325181de14f0c277350bd22d21789f2bdd663a964cc0e7c5cbd2e084285d02a401a6bfbb3e8a8f079c120f9488b56f99 SHA512 28149660bd975ede05624af3582d5c78f498239f5d89713c2c32f5372fc16f4ca024dec35f81ea973a2cf986098890395dbda06ac6cf4ee29df3f9a0e11eaea7
+DIST lock_api-0.4.12.crate 27591 BLAKE2B 4504d146a114d8f8e1fe9ae70b993c713cbfe884dd69c61c54dec978733b95a853c3e5af26f237e48ebb4ee9dbebfce0f6c06067f74a3d122e92f5ace40e22d7 SHA512 525d971f495449bbd02eb70fcd84d4aab05ca582142144a5f314f9aa67ad4c5b4c98dc919a416d0ed2e555063eab037a441d671d56b633f2cb75dfab5d99bcf7
+DIST lockfree-object-pool-0.1.6.crate 12309 BLAKE2B 47c4b3ade2102e8c5154404d6eb8bab943f0173bab01764192a2ba76e4dc454a7763a7e2c6a3df6a72f2d0971c419bf69af4f81a50636c75cac2dd4c692a7962 SHA512 d4a51c7e92184ded686ebeb06467e26905b12dfda6b4da28f230e73901d7406d611798d823c0e1fb5e2c9efec5ab3eabfcd8aadbfe9e319046b3cd0d31008e90
+DIST log-0.4.22.crate 44027 BLAKE2B 831dc5092db05123bf2e909eafa708339983edece9bc8cb802f0ab418d47ddc5045a72c1b58bc7c46ffa68080eebd0fd55d6e4f5b3d5ad3b0bc6b2ea0dcaace1 SHA512 bd7baa9c8a5523fd0864a53bcde955d484cacd782412b5b02c890b89dbf62137624da3a27337a310dd8f62bcc6606925a42bbd4ca161a3b7936ea4ff96bc0d71
+DIST lru-0.12.5.crate 16047 BLAKE2B b5d7d77b4b29973fde0854f55c395edb6ea6e3a309fd33f0c43a6680955bdeb60fab624f02135b637d95e5a0e9da79890a71290c19d797f758c73d16c3d44a27 SHA512 a77230403b1ccb5aa3ed1ed89e7e6af53b3b34d4373e663c1a9789dada12c252e2b5d8b7ac78717c4c4909203c7ea2ce5743ee6cb414aa268c329b889d66a982
+DIST lru-cache-0.1.2.crate 9307 BLAKE2B 606072bc5390a13cf24b4c64c77ba7f84c4c2b1a73c4abe8ead4e1d19067b063888d5cbe478dc9108d193f0a66aa5fb2ddc073f3edfac466de34f85a52a15ef2 SHA512 ecc67b4b2ed8d3596816c47e9c6aa242c7bdd1ee8087646e90c27a60d59175f661ec3ef82058c196bef2abdd302d429b7ea4279169689254a9f322dfd5697bf1
+DIST lzma-rs-0.3.0.crate 29080 BLAKE2B 521d9f12a155fb1c9224b155400ada0cabe8be62a6b46f3b9d73704928446bfce653df97c73ae0951b6b1cf793a2b95c37180d5794c07a399ac581d75ef87337 SHA512 1c554b5fe33e6cd6ab069efaafc2826d3cb0bbb13dc55c2438345e1dd17de99cd43da4aa3419841ce50d9fdfa5956baff477b37a09470f48908fc1b7382086ad
+DIST match_cfg-0.1.0.crate 7153 BLAKE2B d3f40e5b16761fed337ed18dfa9db9e46aa2ad84ca8cfdc7cf7c72bea7cff8d084d95214ce013b3515bbe5b1ad4b8527bfce692569551e4588fe6f396a8a96ee SHA512 fd36f2b128d70a0f278e708bcb3274d90380229f754aed7ce9b808138b0189d5e1a07e0ba732216f788a530cecddcdd980559b3f71efa371d8805a213ff8f2d6
+DIST memchr-2.7.4.crate 96670 BLAKE2B da38114beca670467c3e1fbf4e415af6f22d52e3223715d52e181babb89b872b46511563985bcc16d7ff4e82f812c6e83ad904b0fe2501b14445119dfa8240e6 SHA512 8d0e8b9c30208897d4b1b920f1bdcccd0c2b75d92a06abe4a1b2407938768abb6487d63de56c6a80419798fe69517210643dfaf11f5f5540185f0eccf220adb2
+DIST miniz_oxide-0.8.0.crate 56343 BLAKE2B e4abcacab4c8698d0489faca8556faa7bff53d272ea0c80e2e7843dc0f6f9229b7d5b0a17ae210344722a379853e7f14212505ee05da4e60549081cf77717c1b SHA512 044b641ce6d98d1968c1ee0906f91963f9f524d6f3fdf3059708177a759e1d498c63e595d3a3f0f9f3210c45c828b9b70274134ba078b899d7fefc2bbddbeee6
+DIST mio-1.0.2.crate 102777 BLAKE2B 9b87abd99269c62e48c6be4fa197d2b12527b672c435d5f1f623f986c60ed391597dbde7d5b73a624a4df0eeaf9c9cedcd56cfd7ce4239757d59e67e9892c59f SHA512 77eae1170a318d4a53550dda3462ae070d25656cda51db4cb2dbcb28210802f9b7e279900e6d6eba68314a0c814c90eb4af7acc561f611535cb364f75ad4e317
+DIST native-tls-0.2.12.crate 29517 BLAKE2B 76f4bb2aa8fefc306a04ff50a62d6617f71c3c34aa83ed35f11714ef2306fd82f76c7e26ab7ce50f8eabed40602ba02589dde2d98b55ea6113b45cc539c84bb6 SHA512 15fbc9d02134d3d55334d2f02fe4f64be50db991d75720b38d802088f06cf5f844cba6b25dfd7beb92f2cd367ba477ec2098e3c7336c4e5a5a7fd39c753fc723
+DIST netstat2-0.9.1.crate 81090 BLAKE2B 2820f5360c37a00df985fd5b644f39cdab0ecf9f90e978388c17974a57218b8f8ffe093890782b0b5c9a78d67fa0878e3f27cd25b3beaee915eff53c7c6d49ac SHA512 0cd850e1cc1ae145c4665c0f00929539233d79941b266dd8b7f27ada7010027b1c463055fa8690aa47269963bbb69aba940b5fb346a6b30186b90049218c4c61
+DIST no-std-net-0.6.0.crate 30191 BLAKE2B fa96050f35a605193295b62e7e3d73ee2de7845f2253621cf8ca0b1fd37881413ef155b5c8198aa84903e191134764b52234a621b8df8545e57574c19520bcee SHA512 30c5ba9f1fde0ad8bf9352ccf561456b654bf82b877869a32aeda8296e3928d3daf186f1cbb55c7ada477873d7fed2e2dfcc40e2bfebf668de63e5d13c5e3ae6
+DIST ntapi-0.4.1.crate 126552 BLAKE2B ef5291a32f5edab4b29648fcc73df30f993558e45ed862a62a4d7e85f963f195f0a74c9e61eecf928c8966799da45a23694d0c6a1ad5f7d9ab3a8bce86d6d2eb SHA512 8e32d45a508d20f0d3537e056f363270120980dc23564713306e36acbc12a6d379eb3857026fecc16ca75080431e06742e3806801d3e0a848a01f64a8dd4f2d7
+DIST num-conv-0.1.0.crate 7444 BLAKE2B 4f5c4695006aa3ae77aaf5c55999a07d8ddfab294584fe10d73eb6abbb3f551846646156581599f966a28c74d80d3ac4373c49d2099991f7ed9edb56d36feec4 SHA512 7884c0c6599c66e40b9a79435e1bbcec60aa7e68b59686922dfab19ccbcac6a6e54f208cfb3d5a8a12e86e4dd67e09977d60b69ef6940e308a28256733f36100
+DIST num-derive-0.3.3.crate 14545 BLAKE2B 3af73d35ced61f8e4fa2f2bef695f72a3cf1f1a67c77982d3518d9383331f34c1222dd7d72802cec22baa108ae08a87805a11942132c565ab8439c4983e99871 SHA512 e0f4d06fff26c2d2b140ff5ec1ba655a46c8d8fda484f03a8ad4910e8cf1392f0130d5c0bfbbe3bfb95da1f93e964f73364de6551fddd81e6fc27bfa35c15053
+DIST num-traits-0.2.19.crate 51631 BLAKE2B 78637360cbf32d172510a62bd9442708af9730c0296a2bb4ebd200c08facd49bc31bf8ddd58967e0df7273a938832b620265d9f8f4d26ad16049bf6dac1cb4e5 SHA512 180018a5eceb45085e4e8d103ff21bb4d5079cea874c42a0ad4c76c99d275d434bbc1cc289f0cdec172866daa89dbfe0871410b2cc3407233fe1129786905956
+DIST num_threads-0.1.7.crate 7455 BLAKE2B 282514d1c6ebe67ab2c30f91efd5b6c8880baa078265e22d5d7200eca4f96702aad8b537ba772e5d4e680a6e90fa6919fecfcf37a060668b2a618bb01bbabf2a SHA512 60eecfe49c1afca8efa320c5f4d0cd794f6adf8924193682c903307f484ca0a1ddb56102a772232aca040f29651bbe26ddc1c4939e1f030e229d179837e06bda
+DIST object-0.36.5.crate 327435 BLAKE2B 1ffbb8ba57024a7273217edb1db76eff03e0689f81ba27b0aef0a622972e7f6acdbdc480384b50d603dee6c38c960fd25125a313264187aa0e429aa839198dd4 SHA512 b85375ab3660a8a0c57833c28c4dc665dc0664857e1eb3cd472a61b9ec8c16c470b16475545c2c311fc23cb3c43755967f93feac12c7bfad013cfed5f879e355
+DIST once_cell-1.20.2.crate 33394 BLAKE2B 79dd394fcf1637adfef28b4159ec653c8b71d2bda0e0e36a940c04e3d87698f039dc30c97f26648ecf0d9742962f1f0a117568f7c705a8a3fc167085b0ca3e80 SHA512 bc6005bdab7a154c01e2203fb553a68695727475a9a882cf906d49c054ce886ad92cb491d380b6b9fe71a81b2fd690ce91c9a6cf8dfa8508470ac9acfc8a31c8
+DIST openssl-0.10.66.crate 273705 BLAKE2B 7892e96dac3b24ad5622833b4061bd82028210f9f26ec9772cebb65905ff6e45da8b21ad1aabfb87bb5610f534018da6bd20c10eaee8c189dd08a7ebfbf12b4b SHA512 2f4dd6e40dd8aff8c04563517fabeecd5ac0d986764649cc9af9bf4ce25757a67f75655eee207703b46fe57661a216ff00144358ffcbc70525447a063fa086c1
+DIST openssl-macros-0.1.1.crate 5601 BLAKE2B 69dc1c1f3b7bc4f934cae0dce64c3efa501162e5279efd6af3b74f7a7716c04b6996b306b310f1c045cfa2eff2895314a47ecbb020a817e461c6d77d0bc11e92 SHA512 57e75c84f78fb83f884eeaedb0dd135ecb40192dad2facd908e6a575c9b65b38a2c93bca4630e09ea5a82c77d8bc8364cb2f5778cbfe9d8f484cafe3346b883c
+DIST openssl-probe-0.1.5.crate 7227 BLAKE2B d1fd6a9498b3ab7f25b228f19043067604bf20790530fd0ab6fe3d4d3bc27f13e6e94d1e7ef49314c3663477d8916b8790b90427f74976143b54b95350895165 SHA512 7e560314150709a34520472698060c4f29689d4e608dc4dde146140aa690350d3603279c693367deeb0f21ab34ef61956143a3447827a2b7a3d578b9ccd6552c
+DIST openssl-sys-0.9.103.crate 71552 BLAKE2B 4cc1ab93f5a444b4b985c84f6ae90f345da4639e4ff7c5502dc1ae59f842d46e3855057a7c05855f7cd739b5311f330dff361480ef2a0102fe46471506956148 SHA512 61b802f6baf918ec055be90ee47c69fe0184f6d9a1d29c748386192a11d4df115758961ec9b636126a6b42d7d8f7509248c59f7c035905558c4cc35b804a8eaf
+DIST packet_builder-bf5a89ba75795f5067bb03fa8de00b833ffe4eae.gh.tar.gz 11776 BLAKE2B 01b21d0d1ac5ab6332b5c1f0513fe3fa991a12f5c609b218071880014d70c505ec493abf675171fe00f47bdfe20694cc15ad257adbe5d17bc3821623cdbf6bff SHA512 4191e237ba634d11b475fd277b0129126dee82a52a4e9e65cb1a040971203c41c88bb5302e26fe978e47ddf8f75460f271f023308693e2e50987171c9f2e47c7
+DIST parking_lot-0.12.3.crate 41860 BLAKE2B d1899a1132035aaea3a784290cf4951ea3b36b2018d407e27d333b2a2ce3820e040d635009c44cb6e58ad07cec6565c0347af6f6fb02954eac2d4c348bb036f0 SHA512 368c17203fb5b9e4ecfd4857e3b1ab96b86da3770b8f21be392818c845952f72dde1072a10265760a62aa8a1dd65332bfd585667444e5fbb9dbe3280b5862703
+DIST parking_lot_core-0.9.10.crate 32406 BLAKE2B 25339d028579eb45a957ae5fdbac00288b1472d784c0aa7fa2953fcf9279c750d243ce69744993ee8cbe6899633e71e0a54ffc11e39247755685107f2f8dea54 SHA512 4f30fb60ded274d3154ffb00f6f50ac284b6fb97daebc1a2ac897ce97fa8e2ec6ff30cbdadf3b7419617a410fa7525f30ef5e580334e07d4420f4c0200a57389
+DIST paste-1.0.15.crate 18374 BLAKE2B 69ee7def55e658a9aa72405bad62325e8d6021a4989fbf11c88d1bf05fbac520f7b04d467bc3c6eb45043a41119f65aceecc4a6a1418a9192d73f33134545062 SHA512 5026d3ec7141ec4e2517a0b1283912d0801e9356f77b703d954b379439b8d85e3886d42fb28f7835edaeeac465582da14233564fb010c71425a59c9e1cbd46b4
+DIST pbkdf2-0.12.2.crate 13906 BLAKE2B 062731ec8623719543e497dbfc23b909c8cc62a521ba927f5cb628290c1b3898a0b6ca7677d733b2eb0c563d7af4018981f4ae533b5b3a23c312ce98119eae6c SHA512 5360a661db8ef11586badfa2623dc409e34f3e2f79254cebcb5fb68bfb20c3be47def7bbb16f7779facb42a92bb789cf0e71947d1c4c6f5b1ecb8d358f6b41ef
+DIST percent-encoding-2.3.1.crate 10235 BLAKE2B cf8e2fd7b359a05b7bdaf731f9ae84c7fe6f468a53482eb2db7f93dfdaab64ac812b3664899db260055a93449462e6d219c695942fc5b030517b197b4df9b95f SHA512 5951ea8315e52cf3acfbaa023cb9e13a136b114c54a7da0bd44619ae24cd2159d4a96469d7572a2fdabd94e19513a033387117d7ca81d0eb409fb383e4acda44
+DIST pin-project-lite-0.2.14.crate 28817 BLAKE2B 8e9875967059faff399fbffff82cf8835982c46ea8df942acf50b038e3f500e04d3d8cde39da5a71ebcc38b869553f8c49830e484d1109b353247a4cfdeda89e SHA512 f90a6b9f5ab8701718f72677a4f3597c1b9f32e5fa53198b47a94696227ea37815997599abaa6058b217c5b32a94602582c6b13fdb66e2d683bc98921de95293
+DIST pin-utils-0.1.0.crate 7580 BLAKE2B 457e1287202f16d1873b24bf4f1de1828300128c4ba3131758e64f9784d36d47365f22d85493c3a85d854f0d8dbb4c6cef3a0f5b064014dc03943e58b7ba9178 SHA512 828422b8440cc82ac6b0743e0112fa7540d437aed457564999092b1462cd7672cd6b1f0201b67075431aeedd3d9c5127468a3dd028744109944f7f023c82fd70
+DIST pkg-config-0.3.31.crate 20880 BLAKE2B ab7676e810751f89639b60ae70bdebe1d57edc76319f83077c3680049a701a26e72e8cc485fe77cdc4346fe3571d32c59e7384c8c86fef17e00d7d81df5daf43 SHA512 ac3e8062ee8831a4e4fc717b5247dc7f113da7bf6d64ec95cbca7875959a2afa1497bf81d9dfc27206b5fb10027a2509d51dd9ca1c10139d7b4c78128864fdf4
+DIST pnet-0.34.0.crate 27284 BLAKE2B a4dba2a939a64d882c2bf58f28349d66de6a11e26dc1dceccbf30b29479301cb0270a0d86d44218978e4db00f7f5764654eee2faf446c90c761e582e15a5bb3a SHA512 712ec4a16ea5c23298e2ade129f0b4d97d460fa924bdb30e66733d5fb01ff68870d5689309639a84740cd2c339a6930519809b3fdca3b3307a562078b847fccc
+DIST pnet_base-0.34.0.crate 10239 BLAKE2B 5a433bfc0175be5358799a6a0ceb07a5f845a6f9ea777e0aaa7299fb22a45af671e8f7a5a68cd471a0312d358d4929034584d3fb2de7244c5aeefa742a6b192c SHA512 382bbb54732d028a52cdec63fa6d6d29d51f5a722adb55e77c0c8f06e6e9823b3e532008bca3a5b0b828d35682a84ef42ebb11e3ee75d29c738128c63282e8aa
+DIST pnet_datalink-0.34.0.crate 28287 BLAKE2B 91f9536b69efbe49952ac8658d4209edec1c9b8bec079ad8c8d1d9f045aee51842d16d86c496de88ff9fe466b3d496d0e3497c516e5a596a69920401c58511af SHA512 4067bbf6c770d5ff55b482fb854b103477214faf28a79088309ede40e4e9d5843e67ad0a32a25f1bd0456632b35672188c3226d2f5f9bd3008078eccbbcc168a
+DIST pnet_macros-0.34.0.crate 29179 BLAKE2B c5bb96bb07f88f6ab8e8404146526f685abf52d49c67c7156adcf25153ab82739e5ce54bc04c3df98255f68a3195ea6cce4c8ed4685b2a970aa446790be906e1 SHA512 e926ff2e1eb841c1be49e71a8a368a0f01a01c6f33ffd94868d09986113db463d89c5fa8f1145aac9a33405a6de2d6f6e6ff55d78d35675bed14e86ff172833d
+DIST pnet_macros_support-0.34.0.crate 10735 BLAKE2B 7079824182e0b852930a40fff11694cace9c09e28edcb845b081770a101f6bdb9fe3ec9efdba79986379aeac2a3d1fdf1d036440442025e9dab3352658ed9716 SHA512 97579c9f021cca2b4e12270eacedf9238668302af02402a3c861dd031c2faf81147d2478be116a85d41f4ac247b32866647cc088405d4c04afb5e3c735bde530
+DIST pnet_packet-0.34.0.crate 33979 BLAKE2B f937894d8f4d34b6e4d3b2d65a0ed95e11af2b03ffab93461e149e657152989d668686996abd84fa2453c8da1aed26adfb0486b73e8395109c27ea6e535ec944 SHA512 711189e3d28c139e6b48b479f484dd3180b0b5f7d383db85d1d85f5c2ee3248134fe00d2cdb127ccc17432ee2440bc73f5142ac8ae8e110bab549d71e3c4696e
+DIST pnet_sys-0.34.0.crate 11592 BLAKE2B e5f7745dfa760056714b301b4377f762b094cfa6ea58bd5be7194e1a971676ed5b3d692b1094bff3b558854a6a325166670e390b8dd3ce7e738cdf69ec29301e SHA512 7d5fb11232f540a44bd3e5cd569c9b6ff532cf9f440054a3fe9cd8a7cd695f2afa34bc0a6914ad03cec7e51d96fc1e2b7054998c00c8d33b0e5c1fb8fc414625
+DIST pnet_transport-0.34.0.crate 11051 BLAKE2B 9fdc9f442a7d9374e40173a82ac09e1216d36709f131ca44815b8f4c6e923e49569f8e78f1e46d86e925d714bd229dc3ebaddcec740cd4b37e5a3a577219ad18 SHA512 c53c81ab6ca23721b0afff741479dfe6c01536010b1f24807489aa32f4315c28b5a718f43269e69854e606b5e9e2dc635fa3bd02c66113df8240d9eb3732926f
+DIST powerfmt-0.2.0.crate 15165 BLAKE2B a3e1ce63f5866f75526eeb749bec6607e42cb495bbb953082cde7e98e6aa429ecaa41889d98ff7ed4cf5031258b4f7e0553ff8fc435b3b6f8b4ef2b6d53d9b61 SHA512 0623f92e4d6ab284b3f6dae58220d79d9185df4a738999d68040c50d72fe0380d70358cb622f079c629bab53bb03c6e085e165d5bddfbeea84245864fed90029
+DIST ppv-lite86-0.2.20.crate 22478 BLAKE2B 9d68dc36d8148047d571c0147ed29f586f3c6ac9394b56bd955c8ae5bb18f5a8da5369809f7b8c3199074e23660325158c32c62e1bf69a16cb1f5da2a01f5df0 SHA512 6d171f63b42296f7765732fce3af7ea05d0d81f1541ffb3ad86e81210715ef4afe5bc9e58926e97e757aea6ff96a8012c8411eac78be0fd080898318ed21d7d1
+DIST proc-macro-crate-3.2.0.crate 11164 BLAKE2B dba3e1f4e38f427df72794ad891746fbb8c24239cf06b076e75ab6795a7e8c9abf25ae0f40379e07a696827156e7a3780ae242da7e5442cf1224d058f54b83a6 SHA512 41479ec5e414a8b05dffaa0ece21122387d5165a54e60d8ee3502f8a3c0a2ac0247f56996f933d5d77f1efe41a56bffe16874e8c6a34b66100cf047e4b760863
+DIST proc-macro2-1.0.87.crate 49121 BLAKE2B 4a5136e28b5174c1382037d294dfec51cd7211eb7876c06a98600768d071915e76c81a7958a780cb7b843b98d9df4bd4e01d4f280db226d241bf84de348593f2 SHA512 32ce9c8b5bad55cfae537882c3fffc4d56824f6214ea97aede89ad460e3f66956b52af4a268496fc95c2c0eda0baeaaed4b12cd98df2efab24837e23b48b1f0e
+DIST procfs-0.17.0.crate 73252 BLAKE2B eb205ec08019da77522599f192dde47d733fd68c08eb68611cf2ece6de93708cc1f2a3e0e941abb48b5d6c2f64da9e2ba158c1dc8f3570ea086b43f3e7ec8030 SHA512 76950134beb05f3df3dd0ba32488e1661a8e90fe5ac59a9227b4a5d2413e4ffc9772c9f79d37fc882fa9ef6b2c2c8c96f00458181926b0a1655500da56183a3e
+DIST procfs-core-0.17.0.crate 87533 BLAKE2B 8774dfbc5cd2cfd12c1424de79d6be403c9d3e3a04a0437ec4f4dcbb4535495faf7e6cb30d268bd16c053ec8cd72cfe9a6b2d2e577c6519d15553c9f7e0fa7d5 SHA512 392a6c6702333eca25f4bfbbf10ad0c300d8b1c3f1ffa51151495509b45c0e094e8a8d43a18a9490dbf5910fbffb9fc2669b39b989c8d10bc5aa080377978ef4
+DIST quick-error-1.2.3.crate 15066 BLAKE2B 1c61525d383f3588c1c5017f016f60b484bbf2035e7f63c553bd9a49b638ab0c6106ac3676a41072b24da4e13dde78706e0f99fd1ec9ee329d5be81d45a85866 SHA512 f8aaf9024d20ccd42b706c756eed8320aee339f8776392b47a41cc82ca06b03df1a5b1f00854cea96689c5af261b4d8c5d2b1a242d10f2755e7e33dc41be35b9
+DIST quote-1.0.37.crate 28558 BLAKE2B a7d007a69e619f853af94333e1066bb767013312bd99f147b1b153611242bcfa9c76768b1ba47278589db309a9acd61a772c8ec3b567e48439bb9d831f9326d4 SHA512 c4ed21428c1f89cf22b85d80720a7869831a9c129d694617b0ce8c258278114ab98846f3f653abf736d1c86bc9224bbd695e9a7b06aa3adf292d02e1ef14cc05
+DIST rand-0.8.5.crate 87113 BLAKE2B 516f26bb2a969d0d79e957818133f35d2c0b4d9f1b401098ea23c5b80d27599e842b9298c0c5e46e2a6cb6953857bf8a9fb71ec9366c5ce6708cf17df14f179c SHA512 8b33a8988906ba5e2057a9a84bdd11f867a5536c22f5056eec59ed4ec4e3a6da2fd773da4c0510d343762e5a4ea0f007db4c4a7cef87a47f90e36c1a84d86fb2
+DIST rand_chacha-0.3.1.crate 15251 BLAKE2B 645771b2c3e274f085e0837a20306b1d59f6e9032fba8eb38a6d1b30180d15e2f89ffa2a162bf6358da41e030098242d81e71dab4321980d0a4f6ddfc2974ce3 SHA512 8198c580b1b9b0429758ffa49cd8138fa3ce724f0dcf73c767ea7e55611d6a2e4c7cad9950896510def500ce4062b594386c947ac3d89425b4e5c9b04d0b8075
+DIST rand_core-0.6.4.crate 22666 BLAKE2B 8b6b66d50aade877f2779c006f8038db450f808c66d73d79efa66c4178dc03db06f12201bf0e7930181c4b0f4030c49b20cce6eb7839763cf2217cad9710789a SHA512 36c67eb845aa2ccca49d6d680f28d418229bbc5a050729e487fe6b9f9f384fdd7b8d67fc6508b90b79ffb3c26688e72feceb3ecae57d3d7f59338aeb62296f79
+DIST ratatui-0.28.1.crate 513803 BLAKE2B 305535feba853d08a74ac0add20f310959df2ed5cfb6a581fe8f006023f1a9207434e0e54e90cb916a9c2eba7937047cee37919a97d5a27bd489efda44c1eeaa SHA512 48aadc5e4fca22121fb2ea607e2959a27a757b7e327f73af0f5a6c2a325968db5c8b6a13c545b054a13fab014748ee5cfec2dc475f12ab208e7303605de055df
+DIST rayon-1.10.0.crate 180155 BLAKE2B 16cb706d2317d8a349394c521ec5ab550290c5ab2a0a0dc24f0282fa7eb01fd1351a7dc8b5af3a55ea321e6526fbe037fec3cf8b32463166a082a6e417a51fca SHA512 3f628c58f3af3cbd1f245ca1be9c8393eff41112891fc4e676a2b9e26b6cba7cb80d7b6ce46e75bbb65e42fc00c5c0bb6b6a4b59092882f03febeb31f9cca5d3
+DIST rayon-core-1.12.1.crate 70701 BLAKE2B a32eb9ae9a71b4f0881f7bfd5375aa7db5681f20f7e0b25e6ecb3161f2aad36b93026c1691d02bf298a48ea07ec9475a237fba457ed0b0b8624aebab2b4988df SHA512 33d0297b682f131c50e1eabc3be583211a5abe790301cbca91bf510e43d6714b7564ca39fab7c4bf6f02aa0df6bb394f386a61320f21ddb6bd7aea1372b5e99e
+DIST redox_syscall-0.5.7.crate 26249 BLAKE2B 97f848b130403686404dc193415e5060c32585aa3638b825b4775e54d9a058695b86457ae9e3cc0240bcac27ab4c05dd6b488bdc1c797faecd236c6e477fbc3f SHA512 e9f2d254279a4063089436b699ecca766a997a72718d132a9b35f7c8c8fc82c4b5e25fd8f3e6cbd17920fec484140db520c262376ed1c74f847929b7f43fb97e
+DIST regex-1.11.0.crate 254059 BLAKE2B 9450e54b522c3f12e4f1d814025c3037f8373b9e1feaf2028756b573335cb7f22400b0925e3ceb0716d72aeb19b02b4bcf70b0b435a0252d0d52a7028d95308c SHA512 16c066664ae87497f9880a52222301fb0d44053ae2d6861ea21dc59cab82bd1ab8ac407f9e77228a21a586ee745b02f9eb10e7b9b30df2f3aad73633270bf73d
+DIST regex-automata-0.4.8.crate 617784 BLAKE2B 7535c79f6ddf1b1225e21171921594dcf32fc3afd47519d2067b2047b19070cb7e6fdfd1563b884fec6f91dd568522fc95d85bf095c11f8c02daeac128c45020 SHA512 278e3e2ab230ed5fa7d4837e8ea879fae68ebf35c2da5cc3a67f46b7d593abbcf71e6326a0cf34e38edc0f3f2166ff42a4fcc17a400d9604429aa5b4be075a3f
+DIST regex-syntax-0.8.5.crate 357541 BLAKE2B fc6d125f7a8574c37d81c75cbfd447cbcff736f2d9991b19814ffc1a414ebc5b76e84fb8fd36c983b38e8e391d165cdd9047832b0d9100f0e1ba7085484b7db5 SHA512 549d8d130fea9ec0d5806126f57f31d433f50e9328c5532ad417c44bb5488ec0d20acb0983dbe54dabaa0b453cbea4533cf7baac7144df119e8f78dfe55c5ab8
+DIST relative-path-1.9.3.crate 22400 BLAKE2B c6bd04b060013de042079a741a864150632c02cdc493ca1cfd746bcc12f6ad903f8f0748ec68261c979d833089c0fc091f7c9da2b2936e8f75dad8d4638a7b10 SHA512 fd5c88d370865870570859a110245e009eba557225e4297783a606227b13b42abf0c7e69a4beb5093a5a9dabac1545afd988f4c831abe912c21ccd8013c30382
+DIST resolv-conf-0.7.0.crate 17352 BLAKE2B 32b565a11d5d752e2cce2ac7b44e483b8a682220c99a9ca34d0a440d87cb5a874c407d474e47757f128bc5d78ea57940452eb099ea6fa433d8f6d1fe881f4302 SHA512 538b97f88fee8b82f15845f9a596e09757e3c2869c4e8708ddff97e19348e9f88d4bcf75e810d2aee47113fa64d550a9fe2deac6fc38d95242ebc20228e9b5f4
+DIST roff-0.2.2.crate 11648 BLAKE2B 38431e1dbfe394274c09e32a9f4c99f7e208130efd1765e9df0c08cf313a0ca81d13198158af6342ec658648cfcfe2e3cae5a5306f8e27e18af7b8163359e896 SHA512 0098d4cc921435cd48fd924d96e8dd27f6443a9b6cba847388ec4be7c2222bffa7a1507862b8c120314d32d08e0cc04e52d44973e25d85536a3a2560fa2a06aa
+DIST rstest-0.23.0.crate 45414 BLAKE2B 6e31af0811504c2d644963d14c0ba07cc67506363a7d93c85e1ee06616d14f3382765aef635b68dafac531b58c7a4bc41f3ef82580c065d6f002b7b8670ac988 SHA512 5bedc6c08a003189280efbc0c3fc30d5faac227a93fa34083200601f4d8e2ddd337e36026ef2c1c93bad436c761d9969756cf289b5994dea854f06f2a881ecd7
+DIST rstest_macros-0.23.0.crate 61327 BLAKE2B c522dc07e4544dd1694f02f7ad707b8fdcb315afc735e031abab6c4e90b49a3987856241bc3ec445ccbfdb2cbc6e6568d61724dc2a17ca603e4d6068301f784f SHA512 5b404d73088bcf248e66bd58caee3c25a94fc614975996f52bc58e8be771e0152d093174e9c06440a73937bc682d896a0ec089b2a8cef8b6c8f5c6cd58e639b9
+DIST rustc-demangle-0.1.24.crate 29047 BLAKE2B 8248b014eedb26cdc0b748544ba91b9aae9c992a6f93b4d3ac256b78f691d572f8885a3575492ea556698a241d2759743968293079ca02bb6a5f318b0ed66dd4 SHA512 eb897c35300b87766e6105917a907fca1c5b1f7691fc03c6c1aaf38075ac883a73d1eb54a245d13ba59c7b0f0333d6543e23fc1b1c542fbbd5c750a84660b9e8
+DIST rustc_version-0.4.1.crate 12245 BLAKE2B 0ed627c560d88e5ade830cc5f72c62f6ba88be3e30d0f8db34761fcd0b284e5b2fc063c240149aabdfb12c8410ecdbe50cb10a3544500b5a020f95a31cd6709c SHA512 7aa8a487ca7411b6d23cae62f7568fa3474a7b1fd1589621071be3428a550ed3b7c4ad68277a8f86849e5900397d7d0e9d678f5d423742a045dc7c660fa6c598
+DIST rustix-0.38.37.crate 371243 BLAKE2B bceaa4861747208f1f2b68f8924c7247648d88deb200e97d8ed17c5cbf9c934488065f0ee7e4406bc96e8709b292ee1fe15beb346bff57b5f05af36174420a0c SHA512 6c0ad1be1fcf1b74f670b2c7599ba68c2ce834c760ff7486674d190ae0d552165b0c2abdc35b13eee8c0333a904c67f5dd1efa742c20fd3735c7ccdf2a439619
+DIST rustversion-1.0.17.crate 17621 BLAKE2B 1f077ca6fd90333724d1ea9df7f5b178f37f895b71a7b2814e9ba8618bffcd2307f9cb4ac2eea25d461a6686a4b5b51eebb80f1b1ccc773d4da1948c47fe8abe SHA512 0565cddecaedae17e7cd99bc34f54cda242d4c29cd4269f8e3b178ff91d49f3682e7ffe66e436bbb138299736c8e55cc143fefb74c076911fefcc41ba98064f3
+DIST ryu-1.0.18.crate 47713 BLAKE2B 409cdf4b4e77685394018371e91ad6fdb175ac57e1df9f902871f13208515e5a2ab1daa226fc1e7291278e64448332845be4cc9409bce3b2f3daed409259e104 SHA512 a9b2beac778ec47e6be303148d7512ee681bd2361f6e4ac6db32c8b4baf86a8c5eb5b0d02eacd6131ae88c7b5105c57018c3050676e0b3dd1ed9c4d2fd650e84
+DIST schannel-0.1.26.crate 42791 BLAKE2B 7066c414a30de1ffcf5badb24410371765ac3e6ab94f41892a0587495d8920c3b3809a2d7c4e0fb452f03b904062e114a3eb50b619f910a302aabc45af17db03 SHA512 6db6182cc076df820d44aa0bea24f96013e3f1a581bf9416d84e59e33dbd98a3a5d39a7aca9ae162cf109f1501a0edac683a3a95361bf9107780b2a280e82323
+DIST scopeguard-1.2.0.crate 11619 BLAKE2B 8b7e9ed6cefef9ee55407fb9690d57a2a98bb93e5105aeebdb475a52485e9e185255249e1dce8f83cd80534e7402d485aac3efa7e8493b13135de27550cd4bc4 SHA512 6247719a15fe1e4e2d179127b9a934bd2f99367724f41175ed9522f58824b6bc69b35002eae66b35880375ff61d77ac43ddaa78cbde7160a35183a1da32d3fbb
+DIST security-framework-2.11.1.crate 80188 BLAKE2B 844d36d2b2216cc7055687110d54ea783a7ed9bfe6375fd4dcbea267ec85531e666fe002648110315f42c3364ff5ff5aeba711cf8d1f5358ba65c8393e96f55c SHA512 02786d62fd9dded80bae3942896bc8fea2a90763427f582bf5d9f127ca5682097b59b5dbff2cde373198ba659316ab5906a68d3141ba00c7408b73ebe353fac1
+DIST security-framework-sys-2.12.0.crate 20103 BLAKE2B 4277ccd8d983c2c1a60666dc443637a22b242811a71191b86e177adfe37783e15090d74b7070d6ad49ce13e127c0b12347ddb107eae26bb13b2766463a777cd9 SHA512 676a587b716894339fd65d1e558acca3c5fa1c23bb556fbeeb2b92721d54671b1014420c8893776fc1d21e544b3acf8298f07953ea30c2c118535b0dcb31240b
+DIST semver-1.0.23.crate 30622 BLAKE2B af5f7401daa2004ac1fc419ff907a65feb9b11743ad0feca0929bf2409eb81e03637ec5f92ba9f38ea386c4ee5cde72bd3d2042083e2fb0d6fa0b839b1c5093a SHA512 5ea1fa17c08d1280c3a4bc8d28494e88ee05acd5dc969ef6f0c6f91fd3b5a8fbe999c9e8bbd2da383413038b8d29fabf02b87bd5265bbb8333f3fcbe409103ec
+DIST serde-1.0.210.crate 78338 BLAKE2B b3621d1313312177a346313e6e384fe9660f74eefb18e6cffa39fc2aadc0ab73be84b9037c59b716e5feafcd73f4f054f83e6d17d82746984b3064bf8d3ed338 SHA512 0d853ca51543ae8b4a0c70204ff4e559a4eec77af3d3bdcfc75c5905c80d4ffd1bd9eb8258ea4f6ecfbdd26477ecac7dd698d84d86759fa32e03a9cce02fa4ae
+DIST serde_derive-1.0.210.crate 56020 BLAKE2B b346e574c99b6a8b12dfc29b20a4fd2daf8abfabd3714ccfde059a3a1f14a5628d4acf6a03f8076174fd28adfdb7cb9bbdb8ac0d4403aa2f43e917eed4b08028 SHA512 1c54d70a55007c00d3ff3d8c2096f4f9966431ba7bfd9195bcf41932de71b71c4ab934f9a8c5067cb56a042742cf0efab07377dbabf12feb1af6d20399de00b5
+DIST sha1-0.10.6.crate 13517 BLAKE2B 85ad8dcd237125945f6f9c2d7a48bc9802dfe8398a2bac86ddb96763486092fa18e80a2e69f89cfd6e95599d34d60ced33b26a68cbbe39bf158238a79433584b SHA512 fd37be7e3f1d4b6addd313a36b55215fb70abd21be7831b71de28bd3eb03b7352817d8a7b1a166df002c3a23eadc8224e49edd4a37556c0e5357565305d4128f
+DIST shlex-1.3.0.crate 18713 BLAKE2B 18800c364d3a628f1a3125097ea82fe6286550c2997235df0bf8483a3906aacabc81308cb239887d46ba2f457cc6f8acd5aca78316707eea5098cd5666aea67d SHA512 5c8cedbe666a14b8a0874defb9208146ce64579cde52ed483e4a794cac5dde6a24bf8d684404edff582f842e1fd4fa3fbeddbe074f191e4ec4aa517aa456fe8a
+DIST signal-hook-0.3.17.crate 50296 BLAKE2B 5469a11485362b4a76f99c06071c69f6cc083bf4cceea93fce0b43385163ac3621b7a3c98d18ea1fb9e1439460ea37f470a29bfde9dea199e60a12b248be5d25 SHA512 045ac6268e504c5561d3884610a48c930dfd936086f793839f42602e92e4a8cef289955776e8eba8a5ca1a91b5f27ccb3724f49b32091f8f06c8bde984d82298
+DIST signal-hook-mio-0.2.4.crate 9314 BLAKE2B 018d406ae25802cb376c1f02241ae8e7018f2f7837127a9db40fd17df1cb3e13299c2c372257b0e82aeac1a77b75c732c7344e50e969180e696bf3f8e4836f62 SHA512 1ce372f4550c046f1420b8f4a29cc4c8e904c08fd089cf973f26aa25b39cc6199db56d2ee3bb34684732b79237648e904389eebbc32b5e108f7d6a2d22b1cf3f
+DIST signal-hook-registry-1.4.2.crate 18064 BLAKE2B 7274d4c115678eae2640a709bf9d682ce867c1f6295a0c5f49e492f95dd1c457f20b56207a74221df1fd9d744b24c6260e28f705777e3c7d47b7bdd36f1d57fb SHA512 16362d232b1d301007c069198d7716848aa73d898ef92e050422b36c09001b4334390dc95a6650e5315377fd8960d4336e5ae869b0a305e8525e977b8327c508
+DIST simd-adler32-0.3.7.crate 12086 BLAKE2B 8e0ae18603b344fd8a6573cc3fe1f8594ad542619a6e0d6e8f62e356a3a97409f4de3a215d561b8ed0e063ab431d81b63967a5a0b6561c45537a27ee84eaa362 SHA512 2976bb7fa153854ecd0d68ccdc108bf81d5da374839d53ce9dfb27e80d8db258bb817ea3dac73921e408541d75e2797b6d20fa63c42c1e8a935b6d75dee14bac
+DIST similar-2.6.0.crate 51659 BLAKE2B cfd3fd530a1bb99d63a071f34b7db55210edc3a4568b45a39ad67a0f9c1ba7fe7619a5c78f452732f698cc2f4df8e2e90d174c469e103338a70af016c030499d SHA512 cad3a5fafe3ab0c8eb08d87f982d7d93b9e65a714e3a313db92eb4e3b2c539657bdb7df4bb71597300b690248f45013401ab83f949fa8410606648e2ccb87e0e
+DIST simplelog-0.12.2.crate 21548 BLAKE2B 34f2221981fb5148e9f2b87e3f0c7d2d81c9bbab65f19a952a14d055aee9a6361308e953a8a21a190a10429354b44fef1205f095aae42ea7c1f7da9257fd9ef6 SHA512 d1ac5ae3df161ad76a71d5c56b9e0d4a36ea2be5889fb1a3e457cbc587ea87e742ab7ad4b315305227296fb63a897c675a5f3cb8c8fee96ef1e387fda2e0d715
+DIST slab-0.4.9.crate 17108 BLAKE2B 8e5288c4d00efa915e7be27b55f2204850968624f0d8101c091a357131106bceeea7a63c98007420c12f67893dd2228b15d3f23508108c3a0ceaa605474bc7a9 SHA512 b6b5423ae026472920f7c9a4abe0962314140a36dc562c0a9e3fa60725b2b8b7a8b343110d9d4c0e18fb318b0103e14c0ccbc9ae350d5563a5ac80c35f228c40
+DIST smallvec-1.13.2.crate 35216 BLAKE2B 31a268aad595c06cdb078577a97b089dbea156a0df307a3e6aaaf4861bd9a680c5b11921da9dbdb1bcfe17d58c0cbede1ffe6bba3aef59b384fb1b9703c62d27 SHA512 a97c758b668e40ad9eb572e65feeae4954e09200a04ab92e26a13b48894381cd3a3d2571070c4b7a5e181182e1ede9688f990650342ec69ecfe1a264d234c679
+DIST socket2-0.5.7.crate 55758 BLAKE2B 148d2e2b6610895ec555b1357b340576984eb76cb3ea719f85af50cc4215b2ea2db739e2a61434c09360a0c1ff8e05911764e18dc4a59451c0aeb0eb60b8403f SHA512 ca37157bfa970cf3cee8b45c7fe64930becf2ffbbc309ea4613be968400279b70edd084d159f65b76fe1130917312d81455023c0d7c1bab7a59c79542aef9dcd
+DIST static_assertions-1.1.0.crate 18480 BLAKE2B 358dd5ac413d06f62da0388e2016c5fcb8ec68fd7dceb0dbbcb97665c032b7509b7e083c20701648b6a9174485f117c02682ae4bde7ef037e80a85cdf6a0c86e SHA512 46d0e35f77941dee6f60f574c130472248063dc38494c1c4f84f7c048244cc2a58a86fe17c0990e3f0f01406b75ed385a13d00058612b27cf0e867c8d31c92ee
+DIST strsim-0.11.1.crate 14266 BLAKE2B 252a9ede4241b165525486aa8855dece37af77f5b28e0e1858c4a5d2047db9fa958328db10989234aad69463ab51b2303785ec056c63ea8c95bf95e111ddabf2 SHA512 0cebe0155a92640e56db9a599ae62078cbb32e1d2da8bfa67ed0e8f410a7558dfcf7b3c2720ff5913282e291ecf076aed9fe9bf84c8d44e814a642b1bed3335c
+DIST strum-0.26.3.crate 7237 BLAKE2B bdc348c718c39609c00b9fa7d47b7090b1467022b7a8a28cc7c8a72a0aef20569c6ab22a8a8d26c2d9272f18d000e4ce94858a6647194f0a7b86d812d52b05a9 SHA512 62f116d5bbc6167a6ac68b049f8045bc660901f1ce1252f8bdcd91cb28bef821aad8098905369db6c2fe74c134a5d549e55ddd28e383d7d78f7175258924b268
+DIST strum_macros-0.26.4.crate 27531 BLAKE2B 7f7d57c957a1591054288fcae6590a5e669fba1b47d8f1a52371ce60fd84f91fdb430e48cc7edbb5fc72914be5ce12af29758b653680da3f4177339b31206750 SHA512 77a17ce47d5e8fe8a89cb6aa6c3ca5d5c2625aea0f93456f05a9994238cd3b08b3f7c6a45e9b3db21bca8fb5759f505f15cc111ac84acbbb34d59cdae8307b0b
+DIST subtle-2.6.1.crate 14562 BLAKE2B 3cf4940b7a01f04715da1057f6a92b1043a6b86ab2ee7f9fee0337b680ff781201d330409460f6f90b3f81bb5fd4b563e17c762c6e824ba3b0af99e4ae7d66bd SHA512 f5946ebd9bcb8776ee3446abcbf4afb3cca5d8bd847cadda87e864333ac7ded537a3efa773e9648adf20ce4add2c1da85172cff88c1e1a3a6cb051401b00c6bd
+DIST syn-1.0.109.crate 237611 BLAKE2B e827445d00c79a8eeb91eacde472f1987addd6ce9e1df95d7abf6446a77ff4173a8006845f3ae71c1da47193cfb72e0ead9a6d6bad2573be12c17e90735d9ad9 SHA512 12816b9e8cf984024b2fbce9f0ae14cf94d4d2c06f08cc54fb793ce78770bb4cc1288eb7df0ba5e8e937756e1e8e295c53fe07a0c5dde1ea8ddba03b6203b37d
+DIST syn-2.0.79.crate 268981 BLAKE2B 2bf4bde1890ce4ee91fbacca81bd298d15f0111fedb27b9cf8d675dc2489f46026c1804f9e4e24afbd0718539820096cd5c4ed2c2da02e598370dbfd2b18c293 SHA512 1ee073fa3428c031e53bff8ff305bcd6b37ac142bee3955dcdb44fec1c77c733eb78760c8bfb30b83fc3dacdad8a384e2b6f9f31a89c4cc300359e33457fd433
+DIST sysinfo-0.32.0.crate 183594 BLAKE2B a25da49d5b40bc78ba37960b4aea326e5e0995d3409422331baaa9dc7a439e4a5f97aace5206f53a10c499008ef7030721150a23f89de3217d9fde12a191d647 SHA512 befa9d6c3ad98ad7c5dfb17bc0fafbddf167844d6088286a67f3d58701467819458513f7c9a3637d5dc81e8e390309603a48a805b60bb6ca498be9803d1edadf
+DIST tempfile-3.13.0.crate 34910 BLAKE2B 736378935088ccd8b540997c0554444c3752a74c9a4bd82cfcb700a9b22f572d0f2b3e61252064d4a631b57783199cfb42309e518826346a83fb5adb44843c49 SHA512 68701bee80309cd8dfa96c237b2344f26bd03702d2fc2e1a253820c98654c85d802aee1e0fc856f6372159a92ecbf624f78c8146f34a0cf924f5b56284915f85
+DIST termcolor-1.4.1.crate 18773 BLAKE2B 34676efbde8e242415857d6d40a287ae3459678d8222f5144faefb8c84d635686f640e79588d98635c8f25b7628ec6663a01b16e1e462705b5cba7e8b8e61f44 SHA512 b66aad157c4fa2985f764321d157dfb1f0325fd633811870db7919b5579bf7bc19fefe99e1c706cdfa67504c37dc2ca3d283e11d1bb516edcfaf1eb7747a778a
+DIST thiserror-1.0.64.crate 21574 BLAKE2B d2c7cd7c1a8850dcd3f188aa1af61d4727c4bfc27a069f0e743adf86b7934e6db85d9ee9af14e78c7391e99f4ac828c00277a1354bfe1a47ddf5964211bb2037 SHA512 cff21ebd9d5d37e548c35dd1dc0e6e885a47363cbd8ce3cc8508e8e9b5f844c168b9f3d9ab12ca8d5910a53a9e09b4ddc75a0c32f983e27727fc104e4ff77618
+DIST thiserror-impl-1.0.64.crate 16073 BLAKE2B 8b0eee3d70f926c2719d084676cd14674dc5cf7c474c72e3e628a3cdda7afadd67a78f76224d2a05f1fe04ac59a178b879e467bac1981fc56c5904073153c88e SHA512 75e55f204a290eb38b2215fcdfa91f9f1cb002b121ffdf56bd5f6d75476614e3ce06360da7d74b870c45f6b107fa9e61f85ce39c0e65e713f8c191d79f96f443
+DIST time-0.3.36.crate 119805 BLAKE2B d4da96368ab8565373d034edce261e0d8867036f2ba87e84b5e4a506a70ed3b62b93ba10734aecb39847e258cf7008b6ae57f92df8d0e5229cd3fec488d14caf SHA512 83da6e27691d1f0ef37ed276528e927686a06dab4811b6e29d625ef7a0f7c30fbb86896d74a2b087726e7a24a951b0a83aa1f5f22d711ead54f447d36ac47133
+DIST time-core-0.1.2.crate 7191 BLAKE2B c477ad3410ff29f3bf4a38fc6ac4a043d49b6d2bdf5cf309ffcd2eec3bb6e4c4b62156ee7f069f0b37ea31c163bc75ccbf35abc1db2833cdd4912135e60ddfc9 SHA512 3861724c23cb806829a01186deb5217ae8252c20af622975264e6670cff528f42155039e4937756a9eb312a5580ffab07949437d5504d684a0e70755046cac52
+DIST time-macros-0.2.18.crate 24361 BLAKE2B 09fa325be0b1a5b922285f035484b0de8e339306b49595c87f6374e46459d6777c6db4b12c1a0c6ea9795ae8c741188fbb81208d0499a651760b9f5089323fc7 SHA512 557786115add272290be8305ab79c44f5b4425b64eb698492fe300f15879d9e013c66933cae8aa8faad9c109e2917e7a0e43c8a5eed7f4b0f0fdad092089efe4
+DIST tinyvec-1.8.0.crate 46796 BLAKE2B 720d0e6d881855a36779e12f5ffa708d3a8b96e6d0de9056cb33c9b8ce0d408f99b22f5b2bb9d64bee72a011fef846dbebbea2ccd238d7b951eb5ef0c4866e05 SHA512 b7b32e38229645965900f80f298685f13e6d13e58cfd6945409a6643ca9c9adc2621456956d5998ab9dd91c2db4ae79638b156ca0d9c7c5505023fd9b28414df
+DIST tinyvec_macros-0.1.1.crate 5865 BLAKE2B 2bf4f68ca11dc19c72232951605a4c809b34ff38ee365ee4f592a3c41360e23c9330cfba961e2692a0ad568fef4aaaac51c40808d491178cf7a0c4b5a1c5d484 SHA512 10008c7b3a3d50c94b9c370015b76ee082f5dfb6dcacf014dc2f2dbe92f903618d10d0202b21f48fcf98a94ae76fb712db55a5e8ad353645d378cf0e6ec74f7e
+DIST tokio-1.40.0.crate 789848 BLAKE2B cbb0aba8e31ab37afd21ebfb89b5dc961d3d19d38711786ac0860dfd24cfd7ba8c8998788a1e4e5dd8435c498fa754742c183cb8ead085c0f98a06d851a9dea9 SHA512 3026362f2848d9e7fedc9005e8bfa0413efe18c49a07f85b9c7aba619bd9525f6ee8c3c65621e43df3bf37288f5b7a63ea57ecca061e4ae7153834e93108bc10
+DIST toml_datetime-0.6.8.crate 12028 BLAKE2B 62113366771f22b437b2ed0d3bb2489ae9078cb589cfad2ad2e92c81ddbda48f689e5a573366eea4f54c2b3cbc6b37eaa8b442b6d935b631a992de4917268757 SHA512 d38b98db3b2d4eebd3001d88e2135b6fdbae63b200f7e900c6bb9c121dd3f170e557332bd26f237312c1cbef61666716b0cf550c2d730f86fa7cd9eb5f64a16f
+DIST toml_edit-0.22.22.crate 106387 BLAKE2B c658eef2dc8420266a6928d7ef46340372af2593e4db0d3a67ec88aaf8f601d37d1e9b5bac231a799be8a2ee68a7d98b5f651e9c109d23d8b19b60cf75debddb SHA512 0f98b371f7e27ae7f435a207c0915f942af145cc5dfabfe6d57f2b797efa3e706025401e501fccc6df70c001ce27051381556b8e7824447edd23ea25d047da4d
+DIST tracing-0.1.40.crate 79459 BLAKE2B 33693ee71564fe5925a63dca351e838dfd8612b4b1e49a33a70095e56ca63287c13c772661ace0e540d08c92942d7cbdc51ff2cce4f4b372164d9aa20ec05dee SHA512 5622188a45dddc0d6d3a8244a9b12db6221f4180944ce1019d18f4e613e4bd113dae5d45fb57dd0754f6e8e153b047cdf00c8f200782bb2b868bc2d423d99275
+DIST tracing-attributes-0.1.27.crate 32241 BLAKE2B a20af0f50a90dcd64e5318e55779142da294ba18d1cd40059a8aa964fd3c92834e03ee563e41caaeef71a30e3f027e5c8d167d90e2844da79e0774b267e179b4 SHA512 7dc59f4234c3bf3434fb352baed2b81db4e931eeb3ed207c4a204e480da734be40847b167b808058d2807b5583815625bcd5153e2bbe79804cfa6f069a74ffa0
+DIST tracing-core-0.1.32.crate 61221 BLAKE2B a7815c46af9852ce62498083103c6d359351f4d33609b4291330073b6abf4b63f5e1bb1a7dfed3bbf4d6913ad5217e96999416261af8a70609408a29109e4db6 SHA512 164f79cacfcca533a53b7dbbdc2015aaf851a16e00c72fbc4e5f515b6a6dedfa464e964810009b54f08cbcdc5a314e50245ac7b1b01a71fce4c63db135bf5521
+DIST trust-dns-proto-0.23.2.crate 366401 BLAKE2B 76f0ae5df2aed307373709b73a830e864f06bc65d87b91d852817a16e38fabe385dd09c883426e668b254ecac4b3d1f8079fced691d22e7d8e723b323300c307 SHA512 9f6d4ef2938f72f96ac02ddee1a5bf4a7ebc80f09aa16aad05484ab7b7e73bb9ef0d3729dac0180bf3aed380288a7422d3604c2655e03df22597b899e2fc85db
+DIST trust-dns-resolver-0.23.2.crate 89012 BLAKE2B 238c6734b66db68c47a1be5e60f2faf729b07e5acae33adbe5158f9dedb8d3af97a957714f1fff271cac3b815cb480cc4ae02e763fd420d5474ac38f9557d43e SHA512 f7e4620c11ff13ee8ca68d50afcaf6c3085e7b58db366f7c7351d5789a93f146629994641bf1183e0e1f5322d01b958672f73009d5da24766a3b37abd1ab9c33
+DIST typenum-1.17.0.crate 42849 BLAKE2B a6d1162050679e2c4ab2467f3a77d301f6861882eb7c9749f31d047f383dd5bd2ed5846ad63eed99ccc04d6ac36cc697a305861e1d65880b4d2ef04ee0a79b94 SHA512 99773d5d9f850c0602db4bb67dd062b0ade6f086e155216f1bb2fb6569461ba7e1b7c2f2af81ea8833bc3bfcf3fe5033edecb7c438adae63f59d3e30cf63a508
+DIST unicase-2.7.0.crate 23783 BLAKE2B 2b74b932b45c9d5b984b57bfe8249496c192944e2e66916919177eac81c509e2d7a5d30a85ea58e8cd5a0b47fec746bdb18723f3f14002fc64af3a0d320a9e7d SHA512 c2b05a3bbd8996e1cf65d7458f5ad95de9797c8349484f8db04967bde15c1f057f62b2f7a60e7367871512071ed5076c0da042169dbbdcaf4d6c16cae62da828
+DIST unicode-bidi-0.3.17.crate 58120 BLAKE2B 9d7759554e265136ab9d95dda90bab84763189d3613522a5cb966ad6417ac0ee726d79e296c8821ccca589ef09a999701149c88a9189cabe0ed7d32902040832 SHA512 cf523ff9a2e1face42da035f81bba2476e80d1154f73f3e34cbaf5ce322504e93a520114a54e0a4b2e5d6b930e508ce31b5d8b4f4ed4d39159a8c9a9c7b94d91
+DIST unicode-ident-1.0.13.crate 43279 BLAKE2B b5e935020d1c9f3aa24f7d382f6b73d6510d654a61ce1c9c024e2e365bb817182e076139f370e822573531356fb78ff7499049b1f29aa1e2f4a2cc74a955b47b SHA512 5ba884f39debe9c8eb0b1d251ca713f7e2bc191d211707ed10cd81465487dbdca53914c19e131edfa1da15af132dc2c346260c3969c61e3747b63399ccb1cc51
+DIST unicode-normalization-0.1.24.crate 126536 BLAKE2B 1d6d535a1236562918d2625172d38c261854cd8c45cccc81c5d5aefb052db5d0e33981d95f5c87e8760cf77b3651c60b7ec1762421a7a9caa72fe7eac3f562a0 SHA512 f7af59688773319b9d1523955ce9b82e6735bd72358715ba5c056f41956ca050b6a612cae1b39199cc089674b3c71e4016d85d48167277c794c5cef3df881754
+DIST unicode-segmentation-1.12.0.crate 106323 BLAKE2B 268b60aff6694434f05afb7e2b8187eeccdceb77460f8ce2ac0f84d470f8a4e03182ce3f7906177cd2f00f989273a7e69061a763006245f0876bf21b15076804 SHA512 55eebfe5e9972b39d7c0011d80eb5f517d636de37870999119a3d8f064f21f67b66a5ba9761d562738b05f220e21d56b5be7bbd9cc51662994e40dd67c38f946
+DIST unicode-truncate-1.1.0.crate 12529 BLAKE2B 908c794c44d4928bcb73e3cb7f89a5f57ec39bb0a2931db282849d547fee1e228f0ae01d50421b86a5d08c4860c4960d96909f1444e00179ee7309e25e1a7fd6 SHA512 090050af06ec187902102b07b2caa4f5c4d1a046d013aa1fabef9d18fd3679a6dc4dde6b55b9f606dfb057349fb5c10e2c229d3577116c9fcff07f1099fdf4f2
+DIST unicode-width-0.1.14.crate 271615 BLAKE2B dd2e1504caedecb5d37c397ba05446d3d762b8b6833a8032ebbc213e324d53d89db5e96ed2f7223096e5754d800b39a54105906effc88d9437d7acb9e7beb81e SHA512 3c58a18776aa82cc13c761789a47901616cd98a30356f93d7eb05ae457314209d0a66213e2bbfa5eb8b59be6beacf62438234ce8daafa31b128dbf7d5d6fcadb
+DIST unicode-width-0.2.0.crate 271509 BLAKE2B 53015f24c57ba65d7ffc6e15e947f5ab96fa272996fe5a4d2f9203051972238ea7591c99f1d8ae5d2610c7b83c215b6912eff7aaae034237aec8d79620bfb843 SHA512 38149ad512a44fc79b2c991c6b5667da2e8f8b442ab6bb7e4f404e7fbb034f7540c7e0e8b9e72a1ff6117b899d6034862239f43b6423fa89d55dcf489caff37d
+DIST url-2.5.2.crate 79704 BLAKE2B be3526298a8816fbd88385caf49c2d58aacc7dcbe2d9183478cf501c26fb5f22d7704ef1313ba6d355e849cbf8ab7980310c1aae85e253a2b28d59099e23af29 SHA512 2515903e41c0659cb226f9bb049ef80f2a49d1b609b6ac480e570a84e899088ffe3be4fb58f41a1fa7f5288eb5f97ab513f331aeb6d56979df783d48e2ace28a
+DIST utf8parse-0.2.2.crate 13499 BLAKE2B 095b5d219ab8ff04c06fd6303e03d913ae36a57845f0b2ca3217a40e31a54cb0fb5ecedbde165d28f5f60f1553d8252986d7098fa83befc84a7cb20bf3b76144 SHA512 f3dbf78fe924f1dc3cf9498b6e43fb10174699463f31091a7a8136d8f31ec84fc00e80e3d8551b7e86257e8b3573cfddb56fc0de797fdb2cde0e962a8f239266
+DIST vcpkg-0.2.15.crate 228735 BLAKE2B 6b6bacd9a7fa38919241f45a97f58cae957e58d3aac99df208a26aa718e4f1644f4ccefa31b09151e5c1952288e0e5837c363918b98c7f55079a948a952c1c50 SHA512 7322a21e8811b2fe4e79e09dc321458068ecdf1953f05d36233f3278ecc0b1dfc64194db7010dd46fcf692285f42475beb090c6c6cac0c8f9fe0eb5c770e3172
+DIST version_check-0.9.5.crate 15554 BLAKE2B 131e75cc287518831e142430e2a39b48e4275874f4473780d47a27552294097aa1cddb65c385583e1022478f940b495eb43c24a8b1617b8ac5a24af3340c0d72 SHA512 d11d5a2240ab0c67ea69db56561ce202201edeef9a8e5eda3d9ae7ab7bb5752d8f343fe7f6536d8383de8d55f9024efa84f66a0c21e69563b7a38c4a628014db
+DIST wasi-0.11.0+wasi-snapshot-preview1.crate 28131 BLAKE2B fe501889f25d65e2d032f885cc50c4f8bf7dd70fd5cbc438de349838370d8699e9627b0a4fc76030ea9fe6d508f41d0c9928a875fdbc47e73bfb17241cf7b155 SHA512 043500ab28cd9cb779475255da5d109ebab7fccca72b64873dc28d77bc5a157ba8d96b9e8f05223b5b36c7089bb7b4ba87657fc69bac16b78972f897294a865f
+DIST wasm-bindgen-0.2.93.crate 43769 BLAKE2B e1abf981a042ebbc5c506975d5c2258942278fc000ac62aafe4221725fc52003c4032dc04a396e8fc8ec6712155e056ea9381a72070ee7c45b348ce470f52c7c SHA512 0c0a63b04b02b57fca78d2c0b885ea752ef1e8e4317c27dc84fd35843c9c396ae20557a1321c03a405b050f21895e6f25e95ddb56f3a3e8cec13928858ae8422
+DIST wasm-bindgen-backend-0.2.93.crate 30344 BLAKE2B d0b9f0cd0e6191dc3f57869023450952f2d73c0432fd4516522df5f63090de021f44f11ce7676fd2f87b31f6b236eb155b22b36eb80c3ccf3880f55ca23d4b0b SHA512 c67dad5fa26f78b233612cb6ebd44f48edd84253e46a2f5094e95da935185cf2a7be14d49247e8b8cd1d916721ed82ea44046080a40b2fe37ad88175a5f96597
+DIST wasm-bindgen-macro-0.2.93.crate 6822 BLAKE2B 3704c01b90ae900032e455a265b614d1057a7ed7b7eef1ebfdce75a7b0f0b97083211db562d1602160cf9e70843a1949be836465398787315d66ccf85fbe0801 SHA512 8b1a690bf4fc344728bae21a11c8ce4641d81b02e215d88a489f8155433d8e579ed367c96bc19a345b561f2ddb42afa44056b71e15dc935a4fe38fd7f937a632
+DIST wasm-bindgen-macro-support-0.2.93.crate 20642 BLAKE2B 3fef9d35c09e97317e8531f11c3cfcafc5cb58126ab7a96374cd5e2e3f8736ef016b4c0b3b16bcdc0bef686e9f07439f263c54dc980649e9963b12d0a6814ddc SHA512 9fe590636e229184a944acbb8472c03db0a48a9094cd9ee204c09cee6c5241194a9757f06b09e7c30ba9db1a2feca616cd1e7dc0e52c7f1c1560c50c9d3adbb8
+DIST wasm-bindgen-shared-0.2.93.crate 7527 BLAKE2B a2df995ba72d83beb3f347909c004d9693ee06cec62de248a1f96b0244c05dd8b62d46356f1b7eb0a29122517bc23270eb4eaf045e6cdbb7122089dc84829d9f SHA512 4e9271a746d3b3ea44bae472b7d9722edbcf262fdec2e03c18788d95b923c71c26f309e316ad3c621d5773311d6b1d5ad468cd7bdff015d162193b6effaf8420
+DIST widestring-1.1.0.crate 85046 BLAKE2B 591f8ba6c3c45721d342fd4668805c19915d500b2b46b8e1e75a485ebc772db187acec791205415e5cbf288ee70299a5813a3185d933443d426eb61d7fc6003f SHA512 a4feb959e19d5238e89b0973f040b26849f896e7e9fd567d0e74fbb4972958a4dd76e74de5ea8d407b74cff28f20f9c80446488da6abdbee38aa87a94d683435
+DIST winapi-0.3.9.crate 1200382 BLAKE2B cb5799749ccd935ea2d7068d953cecf19f543d9db7dc16ad4584bb7005373ada34937a3ced7225544d8bc765da599911c7a3190efefb3a25b7c1bb7123b4f673 SHA512 ff8b7b78065f3d8999ec03c725a0460ebc059771bf071c7a3df3f0ecd733edf3b0a2450024d4e24e1aedddaecd9038ce1376c0d8bbf45132068cf45cf4a53a97
+DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2
+DIST winapi-util-0.1.9.crate 12464 BLAKE2B 7fb9dd803fc2608c4e5bc75674472992d82da364f24c22072d5624d6ae6abc44abd3e3ea3c45a7558e045331f3d87572b306b4ab5de52c07ff3706e7f13c2a38 SHA512 c46b893f67ec6e36499b00736bb6b9421e0e2611e76784afa6da01d7ebd033df82f1be7cf8d871d541125d290983f98f26f759488ba9aface49efce8edd682e9
+DIST winapi-x86_64-pc-windows-gnu-0.4.0.crate 2947998 BLAKE2B 2ad1ea8b5fa07d544e910ccba043ae925269b76b26c9da356305b34b86741dd8b9aff0b9ffe3d562db4fcd7d7c46a11ce9e3168b782b1d89ae6881742b7ede82 SHA512 4a654af6a5d649dc87e00497245096b35a2894ae66f155cb62389902c3b93ddcc5cf7d0d8b9dd97b291d2d80bc686af2298e80abef6ac69883f4a54e79712513
+DIST windows-0.57.0.crate 9694564 BLAKE2B f506c91f909e82f0ba7653351bbd9b455a4a028cac24ed0cf7bedf07e3670f3b804391ef65fd21a8a66c554c1089c48244ff1e30530bbe40bb94ea240454778b SHA512 df59ddcb41a6a4e4598b06e66856bc7bc01162e0fd1f109fcfd24e1c6c835475241746fb6a9abe458cff55a7c524837ffc48c6a3e0fc0b4f5edb614cc1d1062c
+DIST windows-core-0.52.0.crate 42154 BLAKE2B 9670bf02261b4ab2a24eff97dad11e305deac823cacfae286965b62b11bc035f19a55ca710eaa4359c8a4905433a94fe62a836b77ddd68f244ad6ac2c9657f58 SHA512 0c8f1c7e63c11bdcf1361150ecc83abbfba8da2c6d28523799bd286bf8aa1df61ffed19175e8cb3ef516a9afb6248b640c2101a2e0c09a99bfd7a18c6741bd36
+DIST windows-core-0.57.0.crate 53695 BLAKE2B b986279aacd34409286ab5761ed38cea9218a2c9b4c5463ba662033b08a167cb65870aae17273e7a0977315ff6a6ad7593011d559fe51d8d8ca157184a1b2542 SHA512 db7dcdfe0f464206b15fbd262539386f67102f2c54c1ff7fe2e6a2e2b28e8d5e4ee0312b787ea55632ecf83260552dc2ba0349933b2d5ada4527b95d196c62fa
+DIST windows-implement-0.57.0.crate 10470 BLAKE2B 62bf0f37b73ba8d02dc316015deb7c47c9ef82e0d64cb7d1e624b320cabb37961a8ffe94132b97abafe1d1792bfd58b79d83b0ac3fb14e917f9ed6d9d5f7d362 SHA512 a78d37c8af8b163fb475f02ba667fdc6242bfd7b647061de2156aa94853ad793db112f0fb69549ed171119d654a4ccff0435c73664d5faaf3a32454054e1f12c
+DIST windows-interface-0.57.0.crate 10931 BLAKE2B deaaf2adfffff0c0ecaea0f43bfa772871e5f0894ddc6cd8a3bbf211c341bd04db653d4c164bb29a779665972d605439a3a79d5d8072ca78a3a228c1969c4fa9 SHA512 5c5814f81f819e9d220e8b16342f7ffc051cd920b466d8213144298e038b9c92e8ebea8e130c5357e5c6e9b04f1b1db125acedfac2d189658d12183f637248aa
+DIST windows-result-0.1.2.crate 10601 BLAKE2B 75db56ada75b59fbc450ea39d73c7ea2ca05239c7a1973bbbcef2445f5fe009e32eb0b1df15ab8b44802cebdb71671ad5e741019beea2d49eb59c37534b63197 SHA512 435649961752a345aa3bf5234f88c87248768ce0ee099f6836e889406941069fbbbb17b4c6cea981fe0aa30bcb8839dba88731fbb023265a14b6232c03fcf7df
+DIST windows-sys-0.48.0.crate 2628884 BLAKE2B 551e900de4f67187ef034b60df9fd0e0d8f82a3100ef28e1eabd543ac129d882dc86ffcc1714071aba09e4cb2ae2d2f07ace1a32b99fd989ce525cf05991edab SHA512 bdf534bcf3face31e9ebe11427a911a53f89f4ff5eaea8cccd094e139bfe14b2aec602b1cab1df774794d999477439d9adc6b627a8e33c20334fc348ba2c47ed
+DIST windows-sys-0.52.0.crate 2576877 BLAKE2B 69d6b560ccfc8f679e2678663ba606060d71fa28efa82c8aef8cceaa2c63b06f2052764d60163964f939649a26bbec6361ee4b094555e941fae92070db566980 SHA512 24ee0df246c2b456a4987a9124786a28acd358768cc7d1305bccd81bc5bb8822b81a03fb18d35174a520b911c6d9b685f81a34ab319fee13da3b985273584f03
+DIST windows-sys-0.59.0.crate 2387323 BLAKE2B 3110c8cd2bc005f8c95cd038a8d574af648dc19788fe4485f977376f92e36b911b1a542d669a07ae9cd4ea72a884ab01ec78b8a2b5587456eb202452d1d8fa0d SHA512 d35e009e979633a1f3c8468cd038bd5c8c0381405165ce03497decd7d9edaaac485d704487e4a61d9aaf4e4d011b4248408912df6a0044d50e8457259867e061
+DIST windows-targets-0.48.5.crate 6904 BLAKE2B 7396bb210f37bd51da86f39fca3425c8f6610721d5c4e94f9fafa0a8a8046303b3fcc6979146bcfaa32f4406d242a0455f6cbb220f84c6ff84650e755acf5223 SHA512 e079eeef255a046be7f8e6a31c14f7b230254ebcf05eed2944827bb3d2a0dc30940d87593cf544d5e7ef35f6312b99430efcfb01421d91b02bb9c4bef7d98709
+DIST windows-targets-0.52.6.crate 6403 BLAKE2B eb98d0a8daeed5fe76e7fa8edb2743e2a3e77dfb9c4ea68605a6ab10532cb7cfc43bc1cea0180869445bd940be762a40136500e26b84ca88b5e0c502004c7a4c SHA512 d6d2dbd96096c6c396dba141a9817e377c35877f3b2fe58b2553280c7cfcb1ed6ee75bd4d62c9b882662de67ddaf0c1049b91530d29c94dd709c230e08eb895f
+DIST windows_aarch64_gnullvm-0.48.5.crate 418492 BLAKE2B 5c6f7d73ad05740f0bac304ed1ef9b2ea63b0d6ca8f875552ae299a0b73b1557e8fe996f1c2b69be9f2df350c9288690f49ee62239a2896991364331d6c55462 SHA512 20158d31454488f6053d3ad7b97d7fc6eae6cf37e4ba0e50c28bd29b368505eed64199ae31104d5f97b66846be54e5ed25c0ad31ea850819205c573a31ac0996
+DIST windows_aarch64_gnullvm-0.52.6.crate 435718 BLAKE2B 8b12ae02892cb69401329034bbca671d13bd268a112120b56b90504707cef89decfbd2560492844a9f0588fab62dc1476ab7e931126b939015d25a8cc91ca334 SHA512 f62b2d942bdb3a9353465b07d47b93de179bb706511aa497e4addd74cff95e689a9b633e7801ce786e73b5ae5f30b506b6faa199c5ab86eefdc1d94652df79c5
+DIST windows_aarch64_msvc-0.48.5.crate 798483 BLAKE2B 60c466d6536426425a34b5ca20da97c8127ebeb4fb9b1363911165bada484f8913fcd50e90410b5661e0c27dbfe8f4eeaa62fb17d1f3566bfc82b6255e11619b SHA512 223f016c6f1a44dbc5c8a8428b39438f75380ea06951b7c26ed0877b19d79410c6fde5e4c7f2c839b6e76159131f39a1230e0e3a208dfc425ba9117e3665c4ff
+DIST windows_aarch64_msvc-0.52.6.crate 832615 BLAKE2B adc8ff61b6dc96d39c92c7d4221ae6aa0575edfc016cfcd046067ca5d8fcfd56d10e8e227be1c038ce34684be22c7ccaf5f18cd5a7638d28fbff4ba15b48b90b SHA512 a3e21305ad0e6de38f5b5ed5d37ee5825b7521064163bcdf31d63341cd87983f54377865d2daf3bb480d2d0aa66d6f598fa09540ec1d71baea74569c86bd213b
+DIST windows_i686_gnu-0.48.5.crate 844891 BLAKE2B fdc37cd74a4982056bf22fdb7b84e1c55dc838f3cb19ff3648730a77e673ef4ecc0380b3e4277bb8df2fcfa25f57b69014713d9e3ed27c28e19b25b3ea2ab774 SHA512 931ba5c1e4eb8ae73248e00d9611298d1c4b4b0dae719fdeb9243930cd420a103a7bc2738e0a4887c42c8f25728d6c5d64ad141dc092bc3f1d0f35dbe37d303a
+DIST windows_i686_gnu-0.52.6.crate 880402 BLAKE2B 5aab8ee07132eccb7695807eb44811beeb0657aadfb672c54e99b6ae39c067ba9b93e38fc69bb5b9b14a9759f263ccd5e301597d2727d83b31b49a409b6bd405 SHA512 a1f6b5dd23d17ec3567bc9d11a4be6f35e196eee21ca342e9b88dbaa6a5f7c46e439c834b77e724f32ac22c0d81573746b3b513a6c944a221b92b2c76fe98822
+DIST windows_i686_gnullvm-0.52.6.crate 475940 BLAKE2B fec4fda8bb2bf319a501a22372fa642ae682e4dee3235b258a028190ee73220bfc55b3142f06249bb4579b17e5fde662bb2b121aefe18544653350d7d0fe7d8e SHA512 95f13af855d530acc0b856214478d4b11b8dbab3f8f79dd223d0b009790c0e46d096fc1773e0277997deb2d5b96c704f17f23c7df11411524629f75415dec99f
+DIST windows_i686_msvc-0.48.5.crate 864300 BLAKE2B 3d3ea8be55e2d6ced0eeda18abe1dffb925a1a78f456d683e4450d9f2fd287ad2e8494d65b2b770c677a12b3a60d10f0435e16c61880e3867c3657fd44892442 SHA512 70e2fb4fdb006a4cbd43ab2c7e940b277a15fb1790dfa2d1fc1f1fd18bead4886f6dc046e44326603e4894d988578917b8932aba5d9a6a4cc8424911cad9dc7e
+DIST windows_i686_msvc-0.52.6.crate 901163 BLAKE2B 99ed34e052db5ba77bab240ed5d38ce450be347a794d63ec39b719304c32722c9999b540ab40abe0216318900b7412970df99dfb36d1516a9517cae0c77d1bdc SHA512 ca97913ce202d73266cf55947b868bea7e964a4516b6a096a81aeab6a60ee73867171032ced35e3afccff741ddfb2def7468343b6eceb95253e4d4f349efbf96
+DIST windows_x86_64_gnu-0.48.5.crate 801619 BLAKE2B aa7e7e6a6ff9f9553ada3a0a39a9aa798e9d995a8eef36e0b6fdb2a0db93ddecee5548970575271fe43aec74797a420d0ee231d503b5bad1bd999059261e0e33 SHA512 1d6056fae430b3d042bdff3c6217c76be4b8b9f5dada9bad06beaac2db7d7ab9b0a82e44f498ec88e61afa73e99f56d84d445dc3847732b9ce5d947e08485f74
+DIST windows_x86_64_gnu-0.52.6.crate 836363 BLAKE2B e2335829155cdbd4a55cc9f9babc237e14e32aab97f6f91afabcdf80d2aee37d6fb4b8669aaf433ff532c85dba59b3d366c7d41b61a2f29b96f960169c900687 SHA512 c4086bb0280042f2bef9b556283b67f8a5cacddd209e1c5fabec63decec6d4fd2d6a7071407973981b98ae0c0cf7034fc612f9e70dc6d3eed9acdec771ae31cb
+DIST windows_x86_64_gnullvm-0.48.5.crate 418486 BLAKE2B 12a2199d434617c1df1a839e9f435620ad64b40c579f6d0c3677553ad7a48e5765d12c266b04946402e15c92cff2e4ac4979ce2130750ef426e2672119680284 SHA512 c016d5b5e73832b61ff67929d92fa8c16e154656294357266ad29ce1f44db4ca2d2935dba31a6b571187dc838b1d22f1e3b41fefffd1d719a338439adf1646aa
+DIST windows_x86_64_gnullvm-0.52.6.crate 435707 BLAKE2B ab77dccd06328cdb00175f41cdbc120594050a9678b7f9820444391fb50aada3911a91ea00f3a6db2b4fa1820fd23bc9a007dfbe65ad41417c26ee1137ef9b96 SHA512 67681f5859e249c56b0183181811f6212cc7008d6471dad78aecc7ebe3d027686b19210b8aa9014c554410f69f913d21ce2aca928eea905eab779bea26464cbd
+DIST windows_x86_64_msvc-0.48.5.crate 798412 BLAKE2B 8abc0721e2fb337fe17c91d278947d36122d9045b839ba0cf3e690202d242265b676f23cc301da5f9d98c56ca4ecb76f7d6f072ee71bf986a1deca87020b90e5 SHA512 fa1c5cd14ca2ff0082e2504cf59d317dc4dc6f7138d35c12f95d4476a9c13d8b7f5537d0ee251eee7c99411ad31b22263171b7fbd391daa5d3ea3488ceaa61a0
+DIST windows_x86_64_msvc-0.52.6.crate 832564 BLAKE2B 8e9a3044654c6de99a9153e7cacd575474e7a8a3d883c67b02132af5d3fc99d03cd5f7a4dd666a3947451d11218e6acc6eb5e2526f012481106cc13453839719 SHA512 21944cd8e3a481b514509e73ae3f62722fe7ed380d37ea0c25f8fbdeba79174dd52ff65d898838da5df4197894b74e00f45d47489418e978753b4e55c7e623e7
+DIST winnow-0.6.20.crate 163617 BLAKE2B b47ba6cd94ec80a72b51ad09c5cb9de350d2243295d3997732d5d3d9f8d08bd83e3129150fb24992243949120da1bd6091d580db5ff10258fd745afaa944c791 SHA512 3347fdfb5b15ec73a40614ecd0cce60f41d3f2d083f49aaafceeaf5db52d5c677dc3eb39fcc2595999fc9f864d1fde81e180e09dc86a6f6124878e16e86e8bc8
+DIST winreg-0.50.0.crate 29703 BLAKE2B db9a968ef96cc07bc1088831affc4627e09c7ab8170a54fdf70a599c2d6180a8a9ac46b6304b61fdd2fac96e01bb004ebd8051940300c7b52c5b7b7975732d11 SHA512 2f52a9e3ab794665263499c88dfdf06009c6477d180a90ebbe86e786ae7f5003c9dc8b3c26224024e79450f3b94688000458f2ea8b1ae1c3691453c3d4df4787
+DIST zerocopy-0.7.35.crate 152645 BLAKE2B 8f13123c9d9257ac5a5c6954d38c3510fa658624442f7e03cdcc6db5a0977d9f26bb4e277be172b7872ec365cf6e58ac742e5578636f7698f9f37093e9249d9a SHA512 17fcb31c029ae89c01e5bae5fb2bb46bd434120199a3dc2c7fe0012dbbcfe2a0bb38934c4a7d3a4920e3fe47c097403beee554fefa54b66cb390f8b1de638d3c
+DIST zerocopy-derive-0.7.35.crate 37829 BLAKE2B badeb7fa5e0bfe93a6788d93fd297604ed31de526b121549300ead3c49d450f49265f499e2e7ce606dcce2b59dd01f7fa817b8fbb3f237475185c5b42f5299c4 SHA512 dbe23573b62a6267d7bc8c744320b75b2fbda03b908c1d175211f7394374fe182bce58021e25485c10671d726b2007f250565dfe53134d51c89293bb607e9feb
+DIST zeroize-1.8.1.crate 20029 BLAKE2B 092eba034cd35ec47290020e0c2b213177ff5dbe14ab9e7f0b4ef3cb1ecbc42fbec2b951414e26ab00bc65aaddc2c93eddd5a1963b27c6cd613ac71c65d5cc24 SHA512 dd40ebe98b98fd742608d4066b5ab66caba94b2e679428fcaff9fe547d8cd6ff2360dc85d671ee9183e32fb79cb554d00d6aef9eb8f3d8ad0ec92d0435aa4ebe
+DIST zeroize_derive-1.4.2.crate 11141 BLAKE2B a40add656369a3a40d5b5f3397a77a1e9f803d4b8ae5b7d51c9f2ebb332a289b3c1ea528655806a26998e081a1cc9f4b07828664542de8d8d2619faf079d25c5 SHA512 d6966b024ce5e265c93e7056659ccbb97bbf6baa30f759fd96dc4391a6487426637f61f0a2713b6160019d778cf7d8ff1f25bb33d6c4f4585b990baae418b226
+DIST zip-2.2.0.crate 108080 BLAKE2B 34fef56b71628ab10ff5a893051f38c88717b7640e7a07c4fc7979d44b75eaf887edc61804a97a86395e94fe6d1d8cc6794ce673a29189186f2a2be8f38d0cb8 SHA512 12d79f9ab656a3ed49497e29dc2a1b99d8f5e43d9b113aa70041b7ec7fc8f95e96d3944a2d07435dcf05a318228926dcad73d8f2c580790f2d02f5ec96eb4e0f
+DIST zopfli-0.8.1.crate 50972 BLAKE2B 27cde48858dc65ec8082d4e0d81e2758f92d3dcc7a1c1f08aa6448e99f2995a865ac3259353b26e787f108c2f88ce3c7610413ea9d3daae6f864900d74565de6 SHA512 799e25c0cc9f0bf2119a7c03225b11ed94e7c3ac83f872a27da8ae15c90206245121c38f5e2b78fece131f5bb428f01fabbfd1b1e18ea456957940042d38f38d
+DIST zstd-0.13.2.crate 30251 BLAKE2B 7a13a094791b13b9215cce3aae5f99b86dc76ff271324a67170747f56b97df514762a0c097e6376752d2a5b35f9ef03d76e0c362e34e15ca02fa3644cc933131 SHA512 9cc3584f74da6da6920b74a7125b4eee9133ae00776aff3c77404fb438e05831f654fce46f7ebab442b04f20f84c11ca58f7ebfe7ff506833c38e919ee3f8572
+DIST zstd-safe-7.2.1.crate 21122 BLAKE2B 49df1ae857449393e6a09293b8963702fecb375622a5cda96d51c3ae96b67044aa40dbc043b96a16ea3b66dac47287dc58007a825c025c3d9b7aac31b441ab9a SHA512 95d0a1d4bb307f64de40f4bad5b400e5a592c901e133a88d8344c46ba3dd51465a8284fa2e3aca74f531c21e7bc3eead112f3797abaea7e439e3f407401b947b
+DIST zstd-sys-2.0.13+zstd.1.5.6.crate 749090 BLAKE2B b5714217ca68255d0881adcaf282a6309de322c481fe4cf8c10d9b68748008a9ca0287e8323f5a118d3b052b7dfb257182555718599da843e09068a1e8df8c5f SHA512 c1f0176ebd0914879d0060796776c7fe376293ce9bc9f8f07ee3b809932a75aa033881d59a1bc99b6cd9af85b8e225fc09bcfc96013e556d7c11f155b759ecbf
diff --git a/net-analyzer/bandwhich/bandwhich-0.23.1.ebuild b/net-analyzer/bandwhich/bandwhich-0.23.1.ebuild
new file mode 100644
index 000000000000..01fd1fb61778
--- /dev/null
+++ b/net-analyzer/bandwhich/bandwhich-0.23.1.ebuild
@@ -0,0 +1,344 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Autogenerated by pycargoebuild 0.13.3
+
+EAPI=8
+
+CRATES="
+ addr2line@0.24.2
+ adler2@2.0.0
+ aes@0.8.4
+ aho-corasick@1.1.3
+ allocator-api2@0.2.18
+ android-tzdata@0.1.1
+ android_system_properties@0.1.5
+ anstream@0.6.15
+ anstyle-parse@0.2.5
+ anstyle-query@1.1.1
+ anstyle-wincon@3.0.4
+ anstyle@1.0.8
+ anyhow@1.0.89
+ arbitrary@1.3.2
+ async-trait@0.1.83
+ autocfg@1.4.0
+ backtrace@0.3.74
+ bitflags@1.3.2
+ bitflags@2.6.0
+ block-buffer@0.10.4
+ bumpalo@3.16.0
+ byteorder@1.5.0
+ bytes@1.7.2
+ bzip2-sys@0.1.11+1.0.8
+ bzip2@0.4.4
+ cassowary@0.3.0
+ castaway@0.2.3
+ cc@1.1.28
+ cfg-if@1.0.0
+ chrono@0.4.38
+ cipher@0.4.4
+ clap-verbosity-flag@2.2.2
+ clap@4.5.19
+ clap_builder@4.5.19
+ clap_complete@4.5.32
+ clap_derive@4.5.18
+ clap_lex@0.7.2
+ clap_mangen@0.2.23
+ colorchoice@1.0.2
+ compact_str@0.8.0
+ console@0.15.8
+ constant_time_eq@0.3.1
+ core-foundation-sys@0.8.7
+ core-foundation@0.9.4
+ cpufeatures@0.2.14
+ crc-catalog@2.4.0
+ crc32fast@1.4.2
+ crc@3.2.1
+ crossbeam-deque@0.8.5
+ crossbeam-epoch@0.9.18
+ crossbeam-utils@0.8.20
+ crossterm@0.28.1
+ crossterm_winapi@0.9.1
+ crypto-common@0.1.6
+ data-encoding@2.6.0
+ deflate64@0.1.9
+ deranged@0.3.11
+ derivative@2.2.0
+ derive-new@0.5.9
+ derive_arbitrary@1.3.2
+ digest@0.10.7
+ displaydoc@0.2.5
+ either@1.13.0
+ encode_unicode@0.3.6
+ enum-as-inner@0.6.1
+ equivalent@1.0.1
+ errno@0.3.9
+ fastrand@2.1.1
+ flate2@1.0.34
+ foldhash@0.1.3
+ foreign-types-shared@0.1.1
+ foreign-types@0.3.2
+ form_urlencoded@1.2.1
+ futures-channel@0.3.31
+ futures-core@0.3.31
+ futures-executor@0.3.31
+ futures-io@0.3.31
+ futures-macro@0.3.31
+ futures-sink@0.3.31
+ futures-task@0.3.31
+ futures-timer@3.0.3
+ futures-util@0.3.31
+ futures@0.3.31
+ generic-array@0.14.7
+ getrandom@0.2.15
+ gimli@0.31.1
+ glob@0.3.1
+ hashbrown@0.15.0
+ heck@0.5.0
+ hermit-abi@0.3.9
+ hex@0.4.3
+ hmac@0.12.1
+ hostname@0.3.1
+ http_req@0.12.0
+ iana-time-zone-haiku@0.1.2
+ iana-time-zone@0.1.61
+ idna@0.4.0
+ idna@0.5.0
+ indexmap@2.6.0
+ inout@0.1.3
+ insta@1.40.0
+ instability@0.3.2
+ ipconfig@0.3.2
+ ipnet@2.10.1
+ ipnetwork@0.20.0
+ is_terminal_polyfill@1.70.1
+ itertools@0.13.0
+ itoa@1.0.11
+ jobserver@0.1.32
+ js-sys@0.3.70
+ lazy_static@1.5.0
+ libc@0.2.159
+ linked-hash-map@0.5.6
+ linux-raw-sys@0.4.14
+ lock_api@0.4.12
+ lockfree-object-pool@0.1.6
+ log@0.4.22
+ lru-cache@0.1.2
+ lru@0.12.5
+ lzma-rs@0.3.0
+ match_cfg@0.1.0
+ memchr@2.7.4
+ miniz_oxide@0.8.0
+ mio@1.0.2
+ native-tls@0.2.12
+ netstat2@0.9.1
+ no-std-net@0.6.0
+ ntapi@0.4.1
+ num-conv@0.1.0
+ num-derive@0.3.3
+ num-traits@0.2.19
+ num_threads@0.1.7
+ object@0.36.5
+ once_cell@1.20.2
+ openssl-macros@0.1.1
+ openssl-probe@0.1.5
+ openssl-sys@0.9.103
+ openssl@0.10.66
+ parking_lot@0.12.3
+ parking_lot_core@0.9.10
+ paste@1.0.15
+ pbkdf2@0.12.2
+ percent-encoding@2.3.1
+ pin-project-lite@0.2.14
+ pin-utils@0.1.0
+ pkg-config@0.3.31
+ pnet@0.34.0
+ pnet_base@0.34.0
+ pnet_datalink@0.34.0
+ pnet_macros@0.34.0
+ pnet_macros_support@0.34.0
+ pnet_packet@0.34.0
+ pnet_sys@0.34.0
+ pnet_transport@0.34.0
+ powerfmt@0.2.0
+ ppv-lite86@0.2.20
+ proc-macro-crate@3.2.0
+ proc-macro2@1.0.87
+ procfs-core@0.17.0
+ procfs@0.17.0
+ quick-error@1.2.3
+ quote@1.0.37
+ rand@0.8.5
+ rand_chacha@0.3.1
+ rand_core@0.6.4
+ ratatui@0.28.1
+ rayon-core@1.12.1
+ rayon@1.10.0
+ redox_syscall@0.5.7
+ regex-automata@0.4.8
+ regex-syntax@0.8.5
+ regex@1.11.0
+ relative-path@1.9.3
+ resolv-conf@0.7.0
+ roff@0.2.2
+ rstest@0.23.0
+ rstest_macros@0.23.0
+ rustc-demangle@0.1.24
+ rustc_version@0.4.1
+ rustix@0.38.37
+ rustversion@1.0.17
+ ryu@1.0.18
+ schannel@0.1.26
+ scopeguard@1.2.0
+ security-framework-sys@2.12.0
+ security-framework@2.11.1
+ semver@1.0.23
+ serde@1.0.210
+ serde_derive@1.0.210
+ sha1@0.10.6
+ shlex@1.3.0
+ signal-hook-mio@0.2.4
+ signal-hook-registry@1.4.2
+ signal-hook@0.3.17
+ simd-adler32@0.3.7
+ similar@2.6.0
+ simplelog@0.12.2
+ slab@0.4.9
+ smallvec@1.13.2
+ socket2@0.5.7
+ static_assertions@1.1.0
+ strsim@0.11.1
+ strum@0.26.3
+ strum_macros@0.26.4
+ subtle@2.6.1
+ syn@1.0.109
+ syn@2.0.79
+ sysinfo@0.32.0
+ tempfile@3.13.0
+ termcolor@1.4.1
+ thiserror-impl@1.0.64
+ thiserror@1.0.64
+ time-core@0.1.2
+ time-macros@0.2.18
+ time@0.3.36
+ tinyvec@1.8.0
+ tinyvec_macros@0.1.1
+ tokio@1.40.0
+ toml_datetime@0.6.8
+ toml_edit@0.22.22
+ tracing-attributes@0.1.27
+ tracing-core@0.1.32
+ tracing@0.1.40
+ trust-dns-proto@0.23.2
+ trust-dns-resolver@0.23.2
+ typenum@1.17.0
+ unicase@2.7.0
+ unicode-bidi@0.3.17
+ unicode-ident@1.0.13
+ unicode-normalization@0.1.24
+ unicode-segmentation@1.12.0
+ unicode-truncate@1.1.0
+ unicode-width@0.1.14
+ unicode-width@0.2.0
+ url@2.5.2
+ utf8parse@0.2.2
+ vcpkg@0.2.15
+ version_check@0.9.5
+ wasi@0.11.0+wasi-snapshot-preview1
+ wasm-bindgen-backend@0.2.93
+ wasm-bindgen-macro-support@0.2.93
+ wasm-bindgen-macro@0.2.93
+ wasm-bindgen-shared@0.2.93
+ wasm-bindgen@0.2.93
+ widestring@1.1.0
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.9
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ winapi@0.3.9
+ windows-core@0.52.0
+ windows-core@0.57.0
+ windows-implement@0.57.0
+ windows-interface@0.57.0
+ windows-result@0.1.2
+ windows-sys@0.48.0
+ windows-sys@0.52.0
+ windows-sys@0.59.0
+ windows-targets@0.48.5
+ windows-targets@0.52.6
+ windows@0.57.0
+ windows_aarch64_gnullvm@0.48.5
+ windows_aarch64_gnullvm@0.52.6
+ windows_aarch64_msvc@0.48.5
+ windows_aarch64_msvc@0.52.6
+ windows_i686_gnu@0.48.5
+ windows_i686_gnu@0.52.6
+ windows_i686_gnullvm@0.52.6
+ windows_i686_msvc@0.48.5
+ windows_i686_msvc@0.52.6
+ windows_x86_64_gnu@0.48.5
+ windows_x86_64_gnu@0.52.6
+ windows_x86_64_gnullvm@0.48.5
+ windows_x86_64_gnullvm@0.52.6
+ windows_x86_64_msvc@0.48.5
+ windows_x86_64_msvc@0.52.6
+ winnow@0.6.20
+ winreg@0.50.0
+ zerocopy-derive@0.7.35
+ zerocopy@0.7.35
+ zeroize@1.8.1
+ zeroize_derive@1.4.2
+ zip@2.2.0
+ zopfli@0.8.1
+ zstd-safe@7.2.1
+ zstd-sys@2.0.13+zstd.1.5.6
+ zstd@0.13.2
+"
+
+# Download the same 'packet-builder' commit that is used in the latest release
+declare -A GIT_CRATES=(
+ [packet-builder]="https://github.com/cyqsimon/packet_builder;bf5a89ba75795f5067bb03fa8de00b833ffe4eae;packet_builder-%commit%"
+)
+
+inherit cargo fcaps shell-completion
+
+DESCRIPTION="Terminal bandwidth utilization tool"
+HOMEPAGE="https://github.com/imsnif/bandwhich"
+SRC_URI="
+ https://github.com/imsnif/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+
+LICENSE="MIT"
+# Dependent crate licenses
+LICENSE+=" Apache-2.0 BSD CC0-1.0 MIT Unicode-DFS-2016"
+SLOT="0"
+KEYWORDS="amd64"
+
+FILECAPS=(
+ cap_sys_ptrace,cap_dac_read_search,cap_net_raw,cap_net_admin+ep "usr/bin/${PN}"
+)
+
+QA_FLAGS_IGNORED="usr/bin/${PN}"
+
+DOCS=(
+ README.md
+ CHANGELOG.md
+)
+
+src_prepare() {
+ mkdir -p "${S}/gen" || die
+ export BANDWHICH_GEN_DIR="${S}/gen"
+
+ default
+}
+
+src_install() {
+ cargo_src_install
+
+ dodoc -r "${DOCS[@]}"
+ doman "${BANDWHICH_GEN_DIR}/${PN}.1"
+
+ newbashcomp "${BANDWHICH_GEN_DIR}/${PN}.bash" "${PN}"
+ dozshcomp "${BANDWHICH_GEN_DIR}/_${PN}"
+ dofishcomp "${BANDWHICH_GEN_DIR}/${PN}.fish"
+}
diff --git a/net-analyzer/bandwhich/metadata.xml b/net-analyzer/bandwhich/metadata.xml
new file mode 100644
index 000000000000..de05fc304c89
--- /dev/null
+++ b/net-analyzer/bandwhich/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <name>Jonas Frei</name>
+ <email>freijon@pm.me</email>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://github.com/imsnif/bandwhich/issues</bugs-to>
+ <changelog>https://github.com/imsnif/bandwhich/releases</changelog>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/barnyard/Manifest b/net-analyzer/barnyard/Manifest
new file mode 100644
index 000000000000..a539a07a4360
--- /dev/null
+++ b/net-analyzer/barnyard/Manifest
@@ -0,0 +1,2 @@
+DIST barnyard-0.2.0-patches.tar.xz 13152 BLAKE2B d68aa5298938e50bb1102628cd8ebc0fae55c12fd4094e86306a86aeab3786a096906e4b0612b3dbb0a2de6a8aeba8161fdcfccf3a6915f5492401892eaa8b57 SHA512 9ff4f45e12d12a6b33f22f32be5f258cc9352a53c91d4415c292231ee5e5b03d58ed988011df5d3f13ac0046dd02ff36e0f92b4b0044181f695856118bb9228a
+DIST barnyard-0.2.0.tar.gz 161543 BLAKE2B 07f5fa6b2e01e1b421ea772b8ea0c72b6c8f66569caf176a57d3f4fce438c2dd4b2a8a61dddc4faf27c85b15d002205f1cc3627fe88d523fd25d716cc78747e7 SHA512 73424acf2e0c620b2f8f2f407d74812f7740234ce523e37557273998108c131311fffb16cfc2cea0f652d6b21072431081bad35b045f5654e2245786d27568e6
diff --git a/net-analyzer/barnyard/barnyard-0.2.0-r7.ebuild b/net-analyzer/barnyard/barnyard-0.2.0-r7.ebuild
new file mode 100644
index 000000000000..c937739a33da
--- /dev/null
+++ b/net-analyzer/barnyard/barnyard-0.2.0-r7.ebuild
@@ -0,0 +1,96 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools toolchain-funcs
+
+DESCRIPTION="Fast output system for Snort"
+HOMEPAGE="https://sourceforge.net/projects/barnyard"
+SRC_URI="
+ https://downloads.sourceforge.net/barnyard/barnyard-${PV/_/-}.tar.gz
+ https://dev.gentoo.org/~jsmolic/distfiles/${P}-patches.tar.xz
+"
+
+SLOT="0"
+LICENSE="QPL-1.0 GPL-2" # GPL-2 for init script
+KEYWORDS="~amd64 -sparc ~x86"
+IUSE="mysql postgres sguil"
+
+DEPEND="
+ net-libs/libpcap
+ mysql? ( dev-db/mysql-connector-c:0= )
+ postgres? ( dev-db/postgresql:*[server] )
+ sguil? ( dev-lang/tcl:0 )
+"
+RDEPEND="
+ ${DEPEND}
+ net-analyzer/snort
+"
+
+S=${WORKDIR}/${P/_/-}
+
+DOCS="AUTHORS README docs/*"
+PATCHES=(
+ "${WORKDIR}"/${P}-64bit.patch
+ "${WORKDIR}"/${P}-canonical-ar.patch
+ "${WORKDIR}"/${P}-configure-in.patch
+)
+SGUIL_PATCHES=(
+ "${WORKDIR}"/${P}-op_plugbase.c.patch
+ "${WORKDIR}"/${P}-sguil_files.patch
+)
+
+src_prepare() {
+ use sguil && PATCHES+=( "${SGUIL_PATCHES[@]}" )
+ default
+
+ eautoreconf
+}
+
+src_configure() {
+ tc-export AR
+
+ econf \
+ $(use_enable mysql) \
+ $(use_enable postgres) \
+ $(use_enable sguil tcl) \
+ --sysconfdir=/etc/snort
+}
+
+src_install() {
+ default
+
+ keepdir /var/log/snort
+ keepdir /var/log/snort/archive
+
+ insinto /etc/snort
+ newins etc/barnyard.conf barnyard.conf
+ newconfd "${FILESDIR}"/barnyard.confd barnyard
+ newinitd "${FILESDIR}"/barnyard.rc6 barnyard
+
+ if use sguil ; then
+ sed -i -e "/config hostname:/s%snorthost%$(hostname)%" \
+ -e "/config interface/s:fxp0:eth0:" \
+ -e "s:output alert_fast:#output alert_fast:" \
+ -e "s:output log_dump:#output log_dump:" \
+ "${D}/etc/snort/barnyard.conf" || die "sed failed"
+
+ sed -i -e s:/var/log/snort:/var/lib/sguil/$(hostname): \
+ -e s:/var/run/barnyard.pid:/var/run/sguil/barnyard.pid: \
+ "${D}/etc/conf.d/barnyard" || die "sed failed"
+
+ sed -i -e "/start-stop-daemon --start/s:--exec:-c sguil --exec:" \
+ "${D}/etc/init.d/barnyard" || die "sed failed"
+ fi
+}
+
+pkg_postinst() {
+ if use sguil ; then
+ elog
+ elog "Make sure to edit /etc/snort/barnyard.conf and uncomment the"
+ elog "sguil section along with supplying the appropriate database"
+ elog "information."
+ elog
+ fi
+}
diff --git a/net-analyzer/barnyard/files/barnyard.confd b/net-analyzer/barnyard/files/barnyard.confd
new file mode 100644
index 000000000000..be0013cb1fe9
--- /dev/null
+++ b/net-analyzer/barnyard/files/barnyard.confd
@@ -0,0 +1,19 @@
+# Config file for /etc/init.d/barnyard
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+PIDFILE="/var/run/barnyard.pid"
+LOG_FILE="snort_unified.log"
+
+# You probably don't want to change this, but in case you do
+LOGDIR="/var/log/snort"
+ARCHIVEDIR="$LOGDIR/archive"
+GENMSG_FILE="/etc/snort/gen-msg.map"
+SIDMSG_FILE="/etc/snort/sid-msg.map"
+WALDO_FILE="$LOGDIR/barnyard.waldo"
+
+# Probably not this either
+CONF=/etc/snort/barnyard.conf
+
+# This pulls in the options above
+BARNYARD_OPTS="-D -c $CONF -d $LOGDIR -g $GENMSG_FILE -s $SIDMSG_FILE -w $WALDO_FILE -L $LOGDIR -a $ARCHIVEDIR -f $LOG_FILE -X $PIDFILE"
diff --git a/net-analyzer/barnyard/files/barnyard.rc6 b/net-analyzer/barnyard/files/barnyard.rc6
new file mode 100644
index 000000000000..abe42a194a60
--- /dev/null
+++ b/net-analyzer/barnyard/files/barnyard.rc6
@@ -0,0 +1,29 @@
+#!/sbin/openrc-run
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ need net
+}
+
+checkconfig() {
+ if [ ! -e $CONF ] ; then
+ eerror "You need a configuration file to run barnyard"
+ eerror "There is an example config in /etc/snort/barnyard.conf.distrib"
+ return 1
+ fi
+}
+
+start() {
+ checkconfig || return 1
+ ebegin "Starting barnyard"
+ start-stop-daemon --start --quiet --exec /usr/bin/barnyard \
+ -- ${BARNYARD_OPTS} >/dev/null 2>&1
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping barnyard"
+ start-stop-daemon --stop --quiet --pidfile ${PIDFILE}
+ eend $?
+}
diff --git a/net-analyzer/barnyard/metadata.xml b/net-analyzer/barnyard/metadata.xml
new file mode 100644
index 000000000000..2022b12d5466
--- /dev/null
+++ b/net-analyzer/barnyard/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <use>
+ <flag name="sguil">Enable sguil (The Analyst Console for Network Security
+Monitoring) support</flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/barnyard2/Manifest b/net-analyzer/barnyard2/Manifest
new file mode 100644
index 000000000000..f01457705401
--- /dev/null
+++ b/net-analyzer/barnyard2/Manifest
@@ -0,0 +1 @@
+DIST barnyard2-1.13-github.tar.gz 435017 BLAKE2B 2bfd6b038f4691cd9b40128c48db89cdb0cdefd9c779cbae4f6a86246507849f8faf73e10c986d9a48d45d608b02cbb8486bd731ebe1c78be115fe65c5a97704 SHA512 b9cf42ff3cb066493a3a6e8d095f6af1c59815ebb19725374a75977294620fe825cdbc6650d3600d3f8525860c39d3580aa1d6ef773cd31fbc28d500d6c75246
diff --git a/net-analyzer/barnyard2/barnyard2-1.13.ebuild b/net-analyzer/barnyard2/barnyard2-1.13.ebuild
new file mode 100644
index 000000000000..a6c5e14eee5c
--- /dev/null
+++ b/net-analyzer/barnyard2/barnyard2-1.13.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit autotools
+
+DESCRIPTION="Parser for Snort unified/unified2 files"
+HOMEPAGE="https://github.com/firnsy/barnyard2 https://firnsy.com/projects"
+SRC_URI="https://github.com/firnsy/barnyard2/archive/v2-${PV}.tar.gz -> ${P}-github.tar.gz"
+S="${WORKDIR}/${PN}-2-${PV}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="debug gre mpls mysql odbc postgres sguil"
+
+DEPEND="
+ net-libs/libpcap
+ mysql? ( dev-db/mysql-connector-c:0= )
+ odbc? ( dev-db/unixODBC )
+ postgres? ( dev-db/postgresql:* )
+ sguil? ( dev-lang/tcl:* )
+"
+RDEPEND="
+ ${DEPEND}
+"
+DOCS="RELEASE.NOTES etc/barnyard2.conf doc/README* schemas/create_*"
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.13-free.patch
+ "${FILESDIR}"/${PN}-1.13-libdir.patch
+ "${FILESDIR}"/${PN}-1.13-my_bool.patch
+ "${FILESDIR}"/${PN}-1.13-odbc.patch
+ "${FILESDIR}"/${PN}-1.13-Werror.patch
+ "${FILESDIR}"/${PN}-1.13-pcap-1.9.0.patch
+)
+
+src_prepare() {
+ default
+
+ sed -i -e "s:^#config interface:config interface:" \
+ "etc/barnyard2.conf" || die
+ sed -i -e "s:^output alert_fast:#output alert_fast:" \
+ "etc/barnyard2.conf" || die
+
+ AT_M4DIR="m4" eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_enable debug) \
+ $(use_enable gre) \
+ $(use_enable mpls) \
+ $(use_with mysql) \
+ $(use_with odbc) \
+ $(use_with postgres postgresql) \
+ $(use_with sguil tcl) \
+ --disable-aruba \
+ --disable-ipv6 \
+ --disable-mysql-ssl-support \
+ --disable-prelude \
+ --disable-static \
+ --without-oracle
+}
+
+src_install() {
+ default
+
+ newconfd "${FILESDIR}/barnyard2.confd" barnyard2
+ newinitd "${FILESDIR}/barnyard2.initd" barnyard2
+
+ dodir /etc/barnyard2
+ keepdir /var/log/barnyard2
+ keepdir /var/log/snort/archive
+
+ rm "${D}"/etc/barnyard2.conf || die
+}
+
+pkg_postinst() {
+ elog "Configuration options can be set in /etc/conf.d/barnyard2."
+ elog
+ elog "An example configuration file can be found in /usr/share/doc/${PF}."
+}
diff --git a/net-analyzer/barnyard2/files/barnyard2-1.13-Werror.patch b/net-analyzer/barnyard2/files/barnyard2-1.13-Werror.patch
new file mode 100644
index 000000000000..e3b8b9c9ae2a
--- /dev/null
+++ b/net-analyzer/barnyard2/files/barnyard2-1.13-Werror.patch
@@ -0,0 +1,17 @@
+--- a/configure.in
++++ b/configure.in
+@@ -12,14 +12,6 @@
+ NO_OPTIMIZE="no"
+ ADD_WERROR="no"
+
+-# Test for -Werror and sed it out for now since some of the auto tests,
+-# for example AC_CHECK_LIB, will fail because of
+-# warning: conflicting types for built-in function <func>
+-if eval "echo $CFLAGS | grep -e -Werror"; then
+- CFLAGS=`echo $CFLAGS | sed -e "s/-Werror//g"`
+- ADD_WERROR="yes"
+-fi
+-
+ # Disable annoying practice of recursively re-running the autotools
+ AM_MAINTAINER_MODE
+ AC_PROG_CC_STDC
diff --git a/net-analyzer/barnyard2/files/barnyard2-1.13-free.patch b/net-analyzer/barnyard2/files/barnyard2-1.13-free.patch
new file mode 100644
index 000000000000..216fe480de7a
--- /dev/null
+++ b/net-analyzer/barnyard2/files/barnyard2-1.13-free.patch
@@ -0,0 +1,11 @@
+--- a/src/output-plugins/spo_alert_unixsock.c
++++ b/src/output-plugins/spo_alert_unixsock.c
+@@ -56,6 +56,8 @@
+ #include "spo_alert_unixsock.h"
+ #include "barnyard2.h"
+
++#include <stdlib.h>
++
+ #define UNSOCK_FILE "barnyard2_alert"
+
+
diff --git a/net-analyzer/barnyard2/files/barnyard2-1.13-libdir.patch b/net-analyzer/barnyard2/files/barnyard2-1.13-libdir.patch
new file mode 100644
index 000000000000..5d3c7e37aa38
--- /dev/null
+++ b/net-analyzer/barnyard2/files/barnyard2-1.13-libdir.patch
@@ -0,0 +1,112 @@
+--- a/configure.in
++++ b/configure.in
+@@ -570,53 +570,7 @@
+ fi
+ done
+
+- for i in $mysql_lib_directory; do
+- if test -z "$MYSQL_LIB_DIR"; then
+- str="$i/libmysqlclient.*"
+- for j in `echo $str`; do
+- if test -r $j; then
+- MYSQL_LIB_DIR=$i
+- break 2
+- fi
+- done
+- fi
+- if test -z "$MYSQL_LIB_DIR"; then
+- str="$i/lib/libmysqlclient.*"
+- for j in `echo $str`; do
+- if test -r "$j"; then
+- MYSQL_LIB_DIR="$i/lib"
+- break 2
+- fi
+- done
+- fi
+- if test -z "$MYSQL_LIB_DIR"; then
+- str="$i/mysql/libmysqlclient.*"
+- for j in `echo $str`; do
+- if test -r "$j"; then
+- MYSQL_LIB_DIR="$i/mysql"
+- break 2
+- fi
+- done
+- fi
+- if test -z "$MYSQL_LIB_DIR"; then
+- str="$i/mysql/lib/libmysqlclient.*"
+- for j in `echo $str`; do
+- if test -r "$j"; then
+- MYSQL_LIB_DIR="$i/mysql/lib"
+- break 2
+- fi
+- done
+- fi
+- if test -z "$MYSQL_LIB_DIR"; then
+- str="$i/lib/mysql/libmysqlclient.*"
+- for j in `echo $str`; do
+- if test -r "$j"; then
+- MYSQL_LIB_DIR="$i/lib/mysql"
+- break 2
+- fi
+- done
+- fi
+- done
++ AC_CHECK_LIB([mysqlclient],[mysql_query],[MYSQL_LIB_DIR="$libdir"])
+
+ if test -z "$MYSQL_INC_DIR"; then
+ if test "x$mysql_fail" != "xno"; then
+@@ -760,13 +714,7 @@
+ fi
+ else
+
+- str="$ODBC_DIR/lib/libodbc.*"
+- for j in `echo $str`; do
+- if test -r "$j"; then
+- ODBC_LIB_DIR="$ODBC_DIR/lib"
+- ODBC_LIB="odbc"
+- fi
+- done
++ AC_CHECK_LIB([odbc],[SQLAllocHandle],[ODBC_LIB_DIR="$libdir";ODBC_LIB="odbc"])
+
+ dnl if test -z "$ODBC_LIB_DIR"; then
+ dnl str="$ODBC_DIR/lib/libiodbc.*"
+@@ -786,7 +734,6 @@
+ fi
+ else
+ AC_MSG_RESULT(yes)
+- LDFLAGS="${LDFLAGS} -L${ODBC_LIB_DIR}"
+ CPPFLAGS="${CPPFLAGS} -I${ODBC_INC_DIR} -DENABLE_ODBC"
+ LIBS="${LIBS} -l$ODBC_LIB"
+ fi
+@@ -863,21 +810,7 @@
+ fi
+
+
+- if test -z "$POSTGRESQL_DIR"; then
+- for dir in $postgresql_directory; do
+- for i in "lib" "lib/pgsql"; do
+- str="$dir/$i/libpq.*"
+- for j in `echo $str`; do
+- if test -r $j; then
+- POSTGRESQL_LIB_DIR="$dir/$i"
+- break 2
+- fi
+- done
+- done
+- done
+- else
+- POSTGRESQL_LIB_DIR="$POSTGRESQL_DIR/lib"
+- fi
++ AC_CHECK_LIB([pq],[PQexec],[POSTGRESQL_LIB_DIR="$libdir"])
+
+ if test -z "$POSTGRESQL_LIB_DIR"; then
+ if test "$postgresql_fail" != "no"; then
+@@ -892,7 +825,7 @@
+ CPPFLAGS="${CPPFLAGS} -I${POSTGRESQL_INC_DIR} -DENABLE_POSTGRESQL"
+ AC_CHECK_LIB(pq, PQexec,, PQLIB="no")
+ if test "x$PQLIB" != "xno"; then
+- LIBS="${LIBS} -lpq"
++ :
+ else
+ echo
+ echo " ERROR! libpq (postgresql) not found!"
diff --git a/net-analyzer/barnyard2/files/barnyard2-1.13-my_bool.patch b/net-analyzer/barnyard2/files/barnyard2-1.13-my_bool.patch
new file mode 100644
index 000000000000..9cd93220662e
--- /dev/null
+++ b/net-analyzer/barnyard2/files/barnyard2-1.13-my_bool.patch
@@ -0,0 +1,11 @@
+--- a/src/output-plugins/spo_database.h
++++ b/src/output-plugins/spo_database.h
+@@ -357,7 +357,7 @@
+ /* Herited from shared data globals */
+
+ unsigned long pThreadID; /* Used to store thread information and know if we "reconnected automaticaly" */
+- my_bool mysql_reconnect; /* We will handle it via the api. */
++ u_int8_t mysql_reconnect; /* We will handle it via the api. */
+ #endif /* ENABLE_MYSQL */
+
+ #ifdef ENABLE_POSTGRESQL
diff --git a/net-analyzer/barnyard2/files/barnyard2-1.13-odbc.patch b/net-analyzer/barnyard2/files/barnyard2-1.13-odbc.patch
new file mode 100644
index 000000000000..a7d77ee914fa
--- /dev/null
+++ b/net-analyzer/barnyard2/files/barnyard2-1.13-odbc.patch
@@ -0,0 +1,41 @@
+--- a/src/output-plugins/spo_database_cache.c
++++ b/src/output-plugins/spo_database_cache.c
+@@ -1202,10 +1202,10 @@
+
+
+
+-#if (defined(ENABLE_MYSQL) || defined(ENABLE_POSTGRESQL))
++#if (defined(ENABLE_MYSQL) || defined(ENABLE_POSTGRESQL) || defined(ENABLE_ODBC))
+ u_int32_t curr_row = 0;
+ u_int32_t queryColCount =0;
+-#endif /* (defined(ENABLE_MYSQL) || defined(ENABLE_POSTGRESQL)) */
++#endif /* (defined(ENABLE_MYSQL) || defined(ENABLE_POSTGRESQL) || defined(ENABLE_ODBC)) */
+
+
+ #ifdef ENABLE_ODBC
+--- a/src/output-plugins/spo_database.c
++++ b/src/output-plugins/spo_database.c
+@@ -3443,9 +3443,9 @@
+ #endif
+
+
+-#if defined(ENABLE_MYSQL) || defined(ENABLE_POSTGRESQL)
++#if defined(ENABLE_MYSQL) || defined(ENABLE_POSTGRESQL) || defined(ENABLE_ODBC)
+ int result = 0;
+-#endif /* defined(ENABLE_MYSQL) || defined(ENABLE_POSTGRESQL) */
++#endif /* defined(ENABLE_MYSQL) || defined(ENABLE_POSTGRESQL) || defined(ENABLE_ODBC) */
+
+
+ if( (query == NULL) ||
+@@ -3668,9 +3668,9 @@
+ int Select(char * query, DatabaseData * data,u_int32_t *rval)
+ {
+
+-#if defined(ENABLE_MYSQL) || defined(ENABLE_POSTGRESQL)
++#if defined(ENABLE_MYSQL) || defined(ENABLE_POSTGRESQL) || defined(ENABLE_ODBC)
+ int result = 0;
+-#endif /* defined(ENABLE_MYSQL) || defined(ENABLE_POSTGRESQL) */
++#endif /* defined(ENABLE_MYSQL) || defined(ENABLE_POSTGRESQL) || defined(ENABLE_ODBC) */
+
+ if( (query == NULL) ||
+ (data == NULL) ||
diff --git a/net-analyzer/barnyard2/files/barnyard2-1.13-pcap-1.9.0.patch b/net-analyzer/barnyard2/files/barnyard2-1.13-pcap-1.9.0.patch
new file mode 100644
index 000000000000..87aec539cae1
--- /dev/null
+++ b/net-analyzer/barnyard2/files/barnyard2-1.13-pcap-1.9.0.patch
@@ -0,0 +1,38 @@
+--- a/src/output-plugins/spo_alert_fwsam.c
++++ b/src/output-plugins/spo_alert_fwsam.c
+@@ -115,7 +115,7 @@
+ #include <sys/filio.h>
+ #endif
+
+-typedef int SOCKET;
++typedef int BY2_SOCKET;
+
+ #ifndef INVALID_SOCKET
+ #define INVALID_SOCKET -1
+@@ -961,7 +961,7 @@
+ FWsamPacket sampacket;
+ FWsamStation *station=NULL;
+ FWsamList *fwsamlist;
+- SOCKET stationsocket;
++ BY2_SOCKET stationsocket;
+ int i,len,deletestation,stationtry=0;
+ char *encbuf,*decbuf;
+ static unsigned long lastbsip[FWSAM_REPET_BLOCKS];
+@@ -1387,7 +1387,7 @@
+ void FWsamCheckOut(FWsamStation *station)
+ {
+ FWsamPacket sampacket;
+- SOCKET stationsocket;
++ BY2_SOCKET stationsocket;
+ int i,len;
+ char *encbuf,*decbuf;
+
+@@ -1538,7 +1538,7 @@
+ int i,len,stationok=TRUE;
+ FWsamPacket sampacket;
+ char *encbuf,*decbuf;
+- SOCKET stationsocket;
++ BY2_SOCKET stationsocket;
+
+
+ /* create a socket for the station */
diff --git a/net-analyzer/barnyard2/files/barnyard2.confd b/net-analyzer/barnyard2/files/barnyard2.confd
new file mode 100644
index 000000000000..a924456555aa
--- /dev/null
+++ b/net-analyzer/barnyard2/files/barnyard2.confd
@@ -0,0 +1,36 @@
+# Config file for /etc/init.d/barnyard2
+
+# This file only contains variables needed by the init.d script.
+# All other configuration options are located in the barnyard2.conf file
+
+# This should be the first part of the unified/unified2 log file name (without the time stamp)
+# Ex. If you log files look like this 'snort.unified2.1239801645' then you would use 'snort.unified2'
+SPOOL_FILE="snort.unified2"
+
+# Location of your unified/unified2 log files
+SPOOL_DIR="/var/log/snort"
+
+# Directory to log to
+LOG_DIR="/var/log/barnyard2"
+
+# This MUST match what you set for "config interface:" in your barnyard2.conf
+# If you do not set this correctly then Barnyard2 will not stop when you do a
+# "/etc/init.d/barnyard2 stop"
+INTERFACE="eth0"
+
+# You probably don't want to change this, but in case you do
+PID_FILE="barnyard2_${INTERFACE}.pid"
+PID_PATH="/var/run"
+
+# The waldo file is located in the SPOOL_DIR to support multipule instances of barnyard2
+WALDO_FILE="${SPOOL_DIR}/barnyard2.waldo"
+CONF="/etc/barnyard2/barnyard2.conf"
+
+# Location of the archive directory if you choose to use it.
+# The ARCHIVE_DIR is located in the SPOOL_DIR to support multipule instances of barnyard2
+#ARCHIVE_DIR="${SPOOL_DIR}/archive"
+
+# This pulls in the options above
+BARNYARD_OPTS="-D -c ${CONF} -d ${SPOOL_DIR} -w ${WALDO_FILE} -f ${SPOOL_FILE} -l ${LOG_DIR}"
+# Or with an archive directory
+#BARNYARD_OPTS="-D -c ${CONF} -d ${SPOOL_DIR} -w ${WALDO_FILE} -f ${SPOOL_FILE} -l ${LOG_DIR} -a ${ARCHIVE_DIR}"
diff --git a/net-analyzer/barnyard2/files/barnyard2.initd b/net-analyzer/barnyard2/files/barnyard2.initd
new file mode 100644
index 000000000000..d15308846f12
--- /dev/null
+++ b/net-analyzer/barnyard2/files/barnyard2.initd
@@ -0,0 +1,29 @@
+#!/sbin/openrc-run
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ need net
+}
+
+checkconfig() {
+ if [ ! -e ${CONF} ] ; then
+ eerror "You need a configuration file to run barnyard2"
+ eerror "There is an example config in /etc/snort/barnyard2.conf.distrib"
+ return 1
+ fi
+}
+
+start() {
+ checkconfig || return 1
+ ebegin "Starting barnyard2"
+ start-stop-daemon --start --quiet --exec /usr/bin/barnyard2 \
+ -- --pid-path ${PID_PATH} --nolock-pidfile ${BARNYARD_OPTS} >/dev/null 2>&1
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping barnyard2"
+ start-stop-daemon --stop --quiet --pidfile ${PID_PATH}/${PID_FILE}
+ eend $?
+}
diff --git a/net-analyzer/barnyard2/metadata.xml b/net-analyzer/barnyard2/metadata.xml
new file mode 100644
index 000000000000..9ea524e35d42
--- /dev/null
+++ b/net-analyzer/barnyard2/metadata.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <longdescription>
+ Barnyard2 is a fork of the original barnyard project (which is no longer under development).
+ Barnyard2 is an open source interpreter for Snort unified2 binary output files. Its primary
+ use is allowing Snort to write to disk in an efficient manner and leaving the task of
+ parsing binary data into various formats to a separate process that will not cause Snort to
+ miss network traffic. Barnyard2 is under active development and continues to adapt based on
+ user feedback.
+ </longdescription>
+ <upstream>
+ <maintainer>
+ <email>dev@securixlive.com</email>
+ <name>Securixlive</name>
+ </maintainer>
+ <doc>http://www.securixlive.com/barnyard2/docs/index.php</doc>
+ <bugs-to>mailto:dev@securixlive.com</bugs-to>
+ </upstream>
+ <use>
+ <flag name="gre">Enable GRE support</flag>
+ <flag name="mpls">Enable support for mpls networks</flag>
+ <flag name="sguil">Enable sguil (The Analyst Console for Network Security Monitoring) support</flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/bmon/Manifest b/net-analyzer/bmon/Manifest
new file mode 100644
index 000000000000..68bde58202e1
--- /dev/null
+++ b/net-analyzer/bmon/Manifest
@@ -0,0 +1 @@
+DIST bmon-4.0.tar.gz 61843 BLAKE2B d376cc6ca9f64c71cd7f8aa281e36e0f8717939c2ada3d9ed6d1231e1f6bc489146fa5f88a327abd6bc63803d2ed21eafff2888427bfd11d51156380ed6d6d1c SHA512 2a5b527a78cc1084c3b96d8d621b002ee86d377776d7e25f711dc2869e59bcd6277cc5f103549fe0b635b1368228a66941d5069fd1240cff678b308d7e17218d
diff --git a/net-analyzer/bmon/bmon-4.0-r1.ebuild b/net-analyzer/bmon/bmon-4.0-r1.ebuild
new file mode 100644
index 000000000000..d493ffde31f9
--- /dev/null
+++ b/net-analyzer/bmon/bmon-4.0-r1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools linux-info toolchain-funcs
+
+DESCRIPTION="Interface bandwidth monitor"
+HOMEPAGE="https://github.com/tgraf/bmon/"
+SRC_URI="https://codeload.github.com/tgraf/${PN}/tar.gz/v${PV} -> ${P}.tar.gz"
+
+LICENSE="BSD-2 MIT"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 ~hppa ~ppc ppc64 ~riscv ~sparc x86"
+
+RDEPEND="
+ >=sys-libs/ncurses-5.3-r2:0=
+ dev-libs/confuse:=
+ dev-libs/libnl:3
+"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+DOCS=( ChangeLog NEWS README.md )
+
+CONFIG_CHECK="~NET_SCHED"
+ERROR_NET_SCHED="
+ CONFIG_NET_SCHED is not set when it should be.
+ Run ${PN} -i proc to use the deprecated proc interface instead.
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.6-docdir-examples.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ econf CURSES_LIB="$("$(tc-getPKG_CONFIG)" --libs ncurses)"
+}
diff --git a/net-analyzer/bmon/bmon-9999.ebuild b/net-analyzer/bmon/bmon-9999.ebuild
new file mode 100644
index 000000000000..8fb8ce7ac06f
--- /dev/null
+++ b/net-analyzer/bmon/bmon-9999.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools git-r3 linux-info toolchain-funcs
+
+DESCRIPTION="Interface bandwidth monitor"
+HOMEPAGE="https://github.com/tgraf/bmon/"
+EGIT_REPO_URI="https://github.com/tgraf/bmon/"
+
+LICENSE="BSD-2 MIT"
+SLOT="0"
+
+RDEPEND="
+ >=sys-libs/ncurses-5.3-r2:0=
+ dev-libs/confuse:=
+ dev-libs/libnl:3
+"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+DOCS=( NEWS README.md )
+
+CONFIG_CHECK="~NET_SCHED"
+ERROR_NET_SCHED="
+ CONFIG_NET_SCHED is not set when it should be.
+ Run ${PN} -i proc to use the deprecated proc interface instead.
+"
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.6-docdir-examples.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ econf CURSES_LIB="$("$(tc-getPKG_CONFIG)" --libs ncurses)"
+}
diff --git a/net-analyzer/bmon/files/bmon-3.6-docdir-examples.patch b/net-analyzer/bmon/files/bmon-3.6-docdir-examples.patch
new file mode 100644
index 000000000000..bb7d969cedde
--- /dev/null
+++ b/net-analyzer/bmon/files/bmon-3.6-docdir-examples.patch
@@ -0,0 +1,10 @@
+--- a/examples/Makefile.am
++++ b/examples/Makefile.am
+@@ -1,6 +1,6 @@
+ # -*- Makefile -*-
+
+-exampledir = $(datarootdir)/doc/@PACKAGE@/examples
++exampledir = $(docdir)/examples
+ example_DATA = bmon.conf
+
+ EXTRA_DIST = $(example_DATA)
diff --git a/net-analyzer/bmon/metadata.xml b/net-analyzer/bmon/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/bmon/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/boreas/Manifest b/net-analyzer/boreas/Manifest
new file mode 100644
index 000000000000..54b0c2bce386
--- /dev/null
+++ b/net-analyzer/boreas/Manifest
@@ -0,0 +1 @@
+DIST boreas-22.5.0.tar.gz 128205 BLAKE2B eea2c1bc488c4d54cd678d081846b76789de225daffcd4157ff7b33e6286fcbf7cf6e7961cbfa53f8d849f50da2c12e0c97e44439861c4cb7d79eb8f047a36bc SHA512 46b4982b20e02826296da56415fac0ddfa2703e9154c46352a6140eedf62c57eb14a4d7423c6f2d6e38eef764b36e975aa03cd38987a1664978092dcaddbe7fc
diff --git a/net-analyzer/boreas/boreas-22.5.0.ebuild b/net-analyzer/boreas/boreas-22.5.0.ebuild
new file mode 100644
index 000000000000..c858a0571942
--- /dev/null
+++ b/net-analyzer/boreas/boreas-22.5.0.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="Greenbone Scanner for alive hosts"
+HOMEPAGE="https://www.greenbone.net https://github.com/greenbone/boreas"
+SRC_URI="https://github.com/greenbone/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="doc test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ >=dev-libs/glib-2.42:2
+ >=net-analyzer/gvm-libs-22.4.1
+ net-libs/libpcap
+"
+RDEPEND="${DEPEND}"
+
+BDEPEND="
+ doc? (
+ app-text/doxygen
+ app-text/xmltoman
+ )
+ test? ( dev-libs/cgreen )
+"
+
+PATCHES=(
+ # Fix cmake error https://cmake.org/cmake/help/latest/policy/CMP0004.html
+ # PR upstream: https://github.com/greenbone/boreas/pull/66
+ "${FILESDIR}"/boreas-22.5.0-fix-leading-withespaces-ldflags-libpcap.patch
+)
+
+src_configure() {
+ local mycmakeargs=(
+ "-DLOCALSTATEDIR=${EPREFIX}/var"
+ "-DSYSCONFDIR=${EPREFIX}/etc"
+ "-DBINDIR=${EPREFIX}/usr/bin"
+ )
+ cmake_src_configure
+}
diff --git a/net-analyzer/boreas/files/boreas-22.5.0-fix-leading-withespaces-ldflags-libpcap.patch b/net-analyzer/boreas/files/boreas-22.5.0-fix-leading-withespaces-ldflags-libpcap.patch
new file mode 100644
index 000000000000..9196531765fe
--- /dev/null
+++ b/net-analyzer/boreas/files/boreas-22.5.0-fix-leading-withespaces-ldflags-libpcap.patch
@@ -0,0 +1,14 @@
+Fixes leading withespaces in LDFLAGS for libpcap
+From: Giuseppe Foti <foti.giuseppe@gmail.com>
+Upstream PR: https://github.com/greenbone/boreas/pull/66
+
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -32,6 +32,7 @@ if (PCAP_CONFIG)
+ execute_process (COMMAND pcap-config --libs
+ OUTPUT_VARIABLE PCAP_LDFLAGS
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
++ string(STRIP ${PCAP_LDFLAGS} PCAP_LDFLAGS)
+ execute_process (COMMAND pcap-config --cflags
+ OUTPUT_VARIABLE PCAP_CFLAGS
+ OUTPUT_STRIP_TRAILING_WHITESPACE)
diff --git a/net-analyzer/boreas/metadata.xml b/net-analyzer/boreas/metadata.xml
new file mode 100644
index 000000000000..173ecf4129b7
--- /dev/null
+++ b/net-analyzer/boreas/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>foti.giuseppe@gmail.com</email>
+ <name>Giuseppe Foti</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription lang="en">
+ Boreas is a command line tool to scan for alive hosts. It supports IPv4 and IPv6 address ranges and allows to exclude certain addresses from a range.
+ The alive ping tests support ICMP, TCP-ACK, TCP-SYN and ARP and any combination.
+ For TCP ping an individual port list can be applied.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/braa/Manifest b/net-analyzer/braa/Manifest
new file mode 100644
index 000000000000..6a1880f582fb
--- /dev/null
+++ b/net-analyzer/braa/Manifest
@@ -0,0 +1 @@
+DIST braa-0.82.tar.gz 39927 BLAKE2B 411a106118b2b3e135542ca507ccd07e910f19b256a12336119c3a088eca16b9a8c715840b633461523fd05881a522b083029f3c498588f7c4c38f518165840d SHA512 8c88d288287a12c19c8d49606c8d2b70531b7f2be1aa3c4ccc6b01739aead751c03c56dc3f1a346b3dd20730a8bd0d30e33167a5f7c676f629348195762e23d4
diff --git a/net-analyzer/braa/braa-0.82-r1.ebuild b/net-analyzer/braa/braa-0.82-r1.ebuild
new file mode 100644
index 000000000000..0e0c7cd4ced5
--- /dev/null
+++ b/net-analyzer/braa/braa-0.82-r1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit toolchain-funcs
+
+DESCRIPTION="Quick and dirty mass SNMP scanner"
+HOMEPAGE="http://s-tech.elsat.net.pl/braa/"
+SRC_URI="http://s-tech.elsat.net.pl/braa/${P}.tar.gz"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc x86"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.8-gentoo.diff
+)
+
+src_prepare() {
+ default
+ sed -i braa.c -e 's|0.81|0.82|g' || die
+ tc-export CC
+}
+
+src_install() {
+ dobin braa
+ dodoc README
+}
diff --git a/net-analyzer/braa/files/braa-0.8-gentoo.diff b/net-analyzer/braa/files/braa-0.8-gentoo.diff
new file mode 100644
index 000000000000..3167269f4a68
--- /dev/null
+++ b/net-analyzer/braa/files/braa-0.8-gentoo.diff
@@ -0,0 +1,24 @@
+--- a/Makefile
++++ b/Makefile
+@@ -4,8 +4,6 @@
+ ###################################################################
+
+ # Linux, FreeBSD, OpenBSD
+-CFLAGS =
+-LDFLAGS =
+
+ # Solaris / SPARC
+ # CFLAGS = -DSOLARIS_SPARC
+@@ -24,9 +22,8 @@
+ LIBS =
+
+ all: ${OBJECTS}
+- cc $(OBJECTS) -o $(OUT) $(LDFLAGS) $(LIBS)
+- strip $(OUT)
++ $(CC) $(CFLAGS) $(LDFLAGS) $(OBJECTS) -o $(OUT) $(LIBS)
+
+ clean:
+ rm -rf $(OBJECTS) $(OUT)
+-
+\ No newline at end of file
++
diff --git a/net-analyzer/braa/metadata.xml b/net-analyzer/braa/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/braa/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/bwbar/Manifest b/net-analyzer/bwbar/Manifest
new file mode 100644
index 000000000000..95ac640217d9
--- /dev/null
+++ b/net-analyzer/bwbar/Manifest
@@ -0,0 +1 @@
+DIST bwbar-1.2.3.tar.bz2 30202 BLAKE2B b7c0ed980e5af14e5e2fa2a3fafb8b7f75d96a0bac8b3effed2a7a54098bb00741b07f2ba32e6cb81dc4accd42a0f370c6bd95a5eec1301b1090e96d2e2ce80f SHA512 cb534f50007db6e39aa134d0d9a08ec6935c8a393f8dd5ab80f3c6ef94048821e065cd6c1be80657a2d6338fd16a73dcc0f89f5b15aba9e3bd38f0737a6d43c4
diff --git a/net-analyzer/bwbar/bwbar-1.2.3.ebuild b/net-analyzer/bwbar/bwbar-1.2.3.ebuild
new file mode 100644
index 000000000000..6837e519f3ca
--- /dev/null
+++ b/net-analyzer/bwbar/bwbar-1.2.3.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="The kernel.org \"Current bandwidth utilization\" bar"
+HOMEPAGE="https://www.kernel.org/pub/software/web/bwbar/"
+SRC_URI="https://www.kernel.org/pub/software/web/bwbar/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+RDEPEND=">=media-libs/libpng-1.2"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-libpng15.patch
+)
+
+src_install() {
+ dobin bwbar
+ dodoc README
+}
diff --git a/net-analyzer/bwbar/files/bwbar-1.2.3-libpng15.patch b/net-analyzer/bwbar/files/bwbar-1.2.3-libpng15.patch
new file mode 100644
index 000000000000..4d1bd67c6d34
--- /dev/null
+++ b/net-analyzer/bwbar/files/bwbar-1.2.3-libpng15.patch
@@ -0,0 +1,19 @@
+--- a/bwbar.c
++++ b/bwbar.c
+@@ -30,6 +30,7 @@
+ #include <alloca.h>
+ #include <getopt.h>
+ #include <png.h>
++#include <zlib.h>
+
+ void skipline(FILE *f)
+ {
+@@ -79,7 +80,7 @@
+ if ( !info_ptr )
+ goto barf;
+
+- if ( setjmp(png_ptr->jmpbuf) ) {
++ if ( setjmp(png_jmpbuf(png_ptr)) ) {
+ status = 1;
+ goto barf; /* libpng abort */
+ }
diff --git a/net-analyzer/bwbar/metadata.xml b/net-analyzer/bwbar/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/bwbar/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/bwm-ng/Manifest b/net-analyzer/bwm-ng/Manifest
new file mode 100644
index 000000000000..76957d9f40c0
--- /dev/null
+++ b/net-analyzer/bwm-ng/Manifest
@@ -0,0 +1 @@
+DIST bwm-ng-0.6.3.tar.gz 70094 BLAKE2B bfc5007470a2e4d7f50dc43dc33898f5bcb34a0eaeeb0f53ed74029299ac2b732d343eaf725144a05b778ad8a204c5d546f0ea0b6aaf997995e2e7a6bc3c6cf6 SHA512 85ce29e6ffa9643b4e7c1d731f4e928ddca8cfdc71c86b65ec4e55058b951eb8da9ab80139145300518223589d5fece5bdc11ede91a1ea394d569993ccdb0ab8
diff --git a/net-analyzer/bwm-ng/bwm-ng-0.6.3.ebuild b/net-analyzer/bwm-ng/bwm-ng-0.6.3.ebuild
new file mode 100644
index 000000000000..0e94224d5bbf
--- /dev/null
+++ b/net-analyzer/bwm-ng/bwm-ng-0.6.3.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools
+
+DESCRIPTION="Bandwidth Monitor NG is a small and simple console-based bandwidth monitor"
+HOMEPAGE="http://www.gropp.org/"
+SRC_URI="https://github.com/vgropp/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+KEYWORDS="amd64 ~arm ppc x86"
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="+csv +html"
+
+RDEPEND="
+ >=sys-apps/net-tools-1.60-r1
+ sys-libs/ncurses:0=
+"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.6.2-tinfo.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_enable csv) \
+ $(use_enable html) \
+ --with-ncurses \
+ --with-procnetdev
+}
diff --git a/net-analyzer/bwm-ng/files/bwm-ng-0.6.2-tinfo.patch b/net-analyzer/bwm-ng/files/bwm-ng-0.6.2-tinfo.patch
new file mode 100644
index 000000000000..a51f9c0596aa
--- /dev/null
+++ b/net-analyzer/bwm-ng/files/bwm-ng-0.6.2-tinfo.patch
@@ -0,0 +1,10 @@
+--- a/configure.in
++++ b/configure.in
+@@ -52,6 +52,7 @@
+ CPPFLAGS="$CPPFLAGS -I$withval"
+ fi
+ AC_CHECK_LIB([ncurses],[newterm,timeout],,[ CPPFLAGS=$OLD_CPPFLAGS ])
++ AC_SEARCH_LIBS([wtimeout],[tinfo])
+ CURSES_CHECKED="1"
+ else
+ CURSES_CHECKED="1"
diff --git a/net-analyzer/bwm-ng/metadata.xml b/net-analyzer/bwm-ng/metadata.xml
new file mode 100644
index 000000000000..ce21c91274cc
--- /dev/null
+++ b/net-analyzer/bwm-ng/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <use>
+ <flag name="csv">Enable csv output</flag>
+ <flag name="html">Enable html output</flag>
+ </use>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:bwm-ng_project:bwm-ng</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/bwmon/Manifest b/net-analyzer/bwmon/Manifest
new file mode 100644
index 000000000000..62c508bb7e3c
--- /dev/null
+++ b/net-analyzer/bwmon/Manifest
@@ -0,0 +1 @@
+DIST bwmon-1.3.tar.gz 5668 BLAKE2B b73695ad56516e6134c6b6c6012bcfdf71ad51af99fadabf3af95cc7af745b8cd7ffbfd8c9ced6a13e9d05abb9d2ceebee3e0d7e3c54694ecbcd467be75d8b60 SHA512 6552ba03f0cfe7d2adebe7ae49379cc109b4f8da56dafec1264ac39c114809c7cde161f6321a67516b22b04abbad5d1ab3b4efb313479ad131fb20638c6871e8
diff --git a/net-analyzer/bwmon/bwmon-1.3-r2.ebuild b/net-analyzer/bwmon/bwmon-1.3-r2.ebuild
new file mode 100644
index 000000000000..83647011ae73
--- /dev/null
+++ b/net-analyzer/bwmon/bwmon-1.3-r2.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+DESCRIPTION="Simple ncurses bandwidth monitor"
+HOMEPAGE="https://bwmon.sourceforge.net/"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz"
+
+BDEPEND="virtual/pkgconfig"
+RDEPEND="sys-libs/ncurses"
+DEPEND="${RDEPEND}"
+
+SLOT="0"
+LICENSE="GPL-2 public-domain"
+KEYWORDS="amd64 ~hppa ppc ~sparc x86"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-build.patch
+ "${FILESDIR}"/${P}-typo-fix.patch
+ "${FILESDIR}"/${P}-overflow.patch
+ "${FILESDIR}"/${P}-tinfo.patch
+)
+
+src_compile() {
+ emake -C src CC="$(tc-getCC)" PKG_CONFIG="$(tc-getPKG_CONFIG)"
+}
+
+src_install() {
+ dobin ${PN}
+ dodoc README
+}
diff --git a/net-analyzer/bwmon/files/bwmon-1.3-build.patch b/net-analyzer/bwmon/files/bwmon-1.3-build.patch
new file mode 100644
index 000000000000..6d4eadf15551
--- /dev/null
+++ b/net-analyzer/bwmon/files/bwmon-1.3-build.patch
@@ -0,0 +1,22 @@
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -10,8 +10,8 @@ CC = gcc
+ RM = /bin/rm
+ INSTALL = install
+
+-CFLAGS = -I../include -Wall -D__THREADS
+-LDFLAGS = -lpthread -lncurses
++CFLAGS += -I../include -Wall -D__THREADS
++LIBS = -lpthread -lncurses
+
+ SRC = bwmon.c
+ OBJS = $(SRC:.c=.o)
+@@ -19,7 +19,7 @@ OBJS = $(SRC:.c=.o)
+ all: bwmon
+
+ bwmon: $(OBJS)
+- $(CC) $(LDFLAGS) -o ../$@ $(OBJS)
++ $(CC) $(CFLAGS) $(LDFLAGS) -o ../$@ $(OBJS) $(LIBS)
+
+ clean:
+ @for i in $(OBJS) *~ core bwmon; do \
diff --git a/net-analyzer/bwmon/files/bwmon-1.3-overflow.patch b/net-analyzer/bwmon/files/bwmon-1.3-overflow.patch
new file mode 100644
index 000000000000..052d1d766351
--- /dev/null
+++ b/net-analyzer/bwmon/files/bwmon-1.3-overflow.patch
@@ -0,0 +1,20 @@
+--- a/src/bwmon.c
++++ b/src/bwmon.c
+@@ -408,7 +408,7 @@ bool_t
+ print_uptime(float * uptime)
+ {
+ unsigned int tmp = 0, hour = 0, min = 0, sec = 0;
+- char hostname[30];
++ char hostname[50];
+
+ tmp = (uint)(*uptime);
+ sec = tmp % 60;
+@@ -418,7 +418,7 @@ print_uptime(float * uptime)
+ hour = tmp % 24;
+ tmp = (tmp - hour) / 24;
+
+- if (gethostname(hostname, strlen(hostname)) != 0)
++ if (gethostname(hostname, sizeof(hostname)) != 0)
+ strcpy(hostname, "System");
+
+ printw("\n%s uptime: %u day%c %u hour%c %u minutes and %u seconds\n",
diff --git a/net-analyzer/bwmon/files/bwmon-1.3-tinfo.patch b/net-analyzer/bwmon/files/bwmon-1.3-tinfo.patch
new file mode 100644
index 000000000000..df0bb06cb968
--- /dev/null
+++ b/net-analyzer/bwmon/files/bwmon-1.3-tinfo.patch
@@ -0,0 +1,11 @@
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -11,7 +11,7 @@
+ INSTALL = install
+
+ CFLAGS += -I../include -Wall -D__THREADS
+-LIBS = -lpthread -lncurses
++LIBS = -lpthread $(shell ${PKG_CONFIG} --libs ncurses)
+
+ SRC = bwmon.c
+ OBJS = $(SRC:.c=.o)
diff --git a/net-analyzer/bwmon/files/bwmon-1.3-typo-fix.patch b/net-analyzer/bwmon/files/bwmon-1.3-typo-fix.patch
new file mode 100644
index 000000000000..36f6af8e5ee6
--- /dev/null
+++ b/net-analyzer/bwmon/files/bwmon-1.3-typo-fix.patch
@@ -0,0 +1,11 @@
+--- a/src/bwmon.c
++++ b/src/bwmon.c
+@@ -36,7 +36,7 @@
+ "by Kimmo Nupponen (kimmoon@users.sourceforge.net)\n"
+ "$Date: 2014/07/10 19:51:24 $\n\n"
+ "usage: %s [-b] [-h] [-a] [-m] [-u seconds]\n"
+- "\t-a Print bandwidth utiliasation in Kbytes rather than Kbits. The default\n"
++ "\t-b Print bandwidth utilisation in KBytes rather than Kbits. The default\n"
+ "\t is to use Kbits\n"
+ "\t-a Print also average bandwidth since last boot per interface\n"
+ "\t-m Print maximum bandwidth since launch of this utility\n"
diff --git a/net-analyzer/bwmon/metadata.xml b/net-analyzer/bwmon/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/bwmon/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/bwping/Manifest b/net-analyzer/bwping/Manifest
new file mode 100644
index 000000000000..74c7dde478b9
--- /dev/null
+++ b/net-analyzer/bwping/Manifest
@@ -0,0 +1,2 @@
+DIST bwping-2.5.tar.gz 113076 BLAKE2B c2a01b1d1d9fb83c2f0e40e2b1967d0e1e5a939d912372637558aa84cea0bca08f080cc8d980906d346ca44b39b7f37b54b0d6e18f834928bd59ddd056af43ac SHA512 2c271215476c8f1e0758aaae0e1730c526a326eeb3c7ffac3d8fac5783dbbe84d97fbb6732bfa7199ea8e4caf81a8dc9bd54ee36b63ece46dd2286880c734371
+DIST bwping-2.6.tar.gz 113405 BLAKE2B aa37d0a2351cbfa72605a809d1f2cf01be0347487e87a4f337ecadc8c021f7b2414e31424789ee7a490beb2445bf3d8447f9ca20ce00672d4a352d1b17d203ff SHA512 df880a6a26fc00a18cd64b44de9f6b8fc6ff5aab472b6af2fc80dfd642347238987cad9da963cb2a719d36571ce9951feb579647c4e8a4b69d6902c994ac36d3
diff --git a/net-analyzer/bwping/bwping-2.5.ebuild b/net-analyzer/bwping/bwping-2.5.ebuild
new file mode 100644
index 000000000000..bb17cbaa8b50
--- /dev/null
+++ b/net-analyzer/bwping/bwping-2.5.ebuild
@@ -0,0 +1,16 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="A tool to measure bandwidth and RTT between two hosts using ICMP"
+HOMEPAGE="https://bwping.sourceforge.io/"
+SRC_URI="https://github.com/oleg-derevenetz/bwping/releases/download/RELEASE_${PV}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~sparc x86"
+
+src_test() {
+ [[ ${UID} = 0 ]] && default
+}
diff --git a/net-analyzer/bwping/bwping-2.6.ebuild b/net-analyzer/bwping/bwping-2.6.ebuild
new file mode 100644
index 000000000000..2830202daa23
--- /dev/null
+++ b/net-analyzer/bwping/bwping-2.6.ebuild
@@ -0,0 +1,16 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="A tool to measure bandwidth and RTT between two hosts using ICMP"
+HOMEPAGE="https://bwping.sourceforge.io/"
+SRC_URI="https://github.com/oleg-derevenetz/bwping/releases/download/RELEASE_${PV}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~sparc x86"
+
+src_test() {
+ [[ ${UID} = 0 ]] && default
+}
diff --git a/net-analyzer/bwping/metadata.xml b/net-analyzer/bwping/metadata.xml
new file mode 100644
index 000000000000..9c7056402b14
--- /dev/null
+++ b/net-analyzer/bwping/metadata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>oleg.derevenetz@gmail.com</email>
+ <name>Oleg Derevenetz</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <upstream>
+ <maintainer>
+ <email>oleg.derevenetz@gmail.com</email>
+ <name>Oleg Derevenetz</name>
+ </maintainer>
+ </upstream>
+ <longdescription>
+ A tool to measure bandwidth and response times between two hosts using
+ Internet Control Message Protocol (ICMP) echo request/echo reply mechanism.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/cacti-spine/Manifest b/net-analyzer/cacti-spine/Manifest
new file mode 100644
index 000000000000..8686e9b07669
--- /dev/null
+++ b/net-analyzer/cacti-spine/Manifest
@@ -0,0 +1 @@
+DIST cacti-spine-1.2.20.tar.gz 115258 BLAKE2B 78a9ed8a9e7e69e98bfa9971134dd6f34f540a93b0b1a2aababb66781f3c9787712d57d86b81d7f409487c4cc4447d4f84bd7292890b7eb70ec4137d97248793 SHA512 d7e129f7b42542d7ecc78d55cebc6d9ce481834342d3f3da1fce5538d8e42bc194a825795053d5e3a065b54574e2a3b9413725f1bc0562e55f1db213f9a94d0c
diff --git a/net-analyzer/cacti-spine/cacti-spine-1.2.20.ebuild b/net-analyzer/cacti-spine/cacti-spine-1.2.20.ebuild
new file mode 100644
index 000000000000..e41c722458fd
--- /dev/null
+++ b/net-analyzer/cacti-spine/cacti-spine-1.2.20.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+MY_P=${PN}-${PV/_p/-}
+
+DESCRIPTION="Spine is a fast poller for Cacti (formerly known as Cactid)"
+HOMEPAGE="https://cacti.net/spine_info.php"
+SRC_URI="https://www.cacti.net/downloads/spine/${MY_P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 ~hppa ~ppc64 ~sparc x86"
+
+DEPEND="dev-db/mysql-connector-c:=
+ dev-libs/openssl:=
+ net-analyzer/net-snmp:="
+RDEPEND="${DEPEND}
+ >net-analyzer/cacti-0.8.8"
+BDEPEND="sys-apps/help2man"
+
+src_prepare() {
+ default
+
+ eautoreconf
+}
+
+src_configure() {
+ # Drop CONFIG_SHELL after 1.2.x (fix is on develop branch)
+ CONFIG_SHELL="${BROOT}"/bin/bash econf
+}
+
+src_install() {
+ dosbin spine
+
+ insinto /etc/
+ insopts -m0640 -o root
+ newins spine.conf{.dist,}
+
+ doman spine.1
+ dodoc CHANGELOG
+}
diff --git a/net-analyzer/cacti-spine/cacti-spine-9999.ebuild b/net-analyzer/cacti-spine/cacti-spine-9999.ebuild
new file mode 100644
index 000000000000..cfc27aa3907f
--- /dev/null
+++ b/net-analyzer/cacti-spine/cacti-spine-9999.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools git-r3
+
+MY_P=${PN}-${PV/_p/-}
+
+DESCRIPTION="Spine is a fast poller for Cacti (formerly known as Cactid)"
+HOMEPAGE="https://cacti.net/spine_info.php"
+EGIT_REPO_URI="https://github.com/Cacti/spine"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+
+BDEPEND="sys-apps/help2man"
+DEPEND="dev-libs/openssl:=
+ net-analyzer/net-snmp:=
+ dev-db/mysql-connector-c:0="
+RDEPEND="${DEPEND}
+ >net-analyzer/cacti-0.8.8"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.8.8g-net-snmp.patch
+)
+
+src_prepare() {
+ default
+
+ eautoreconf
+}
+
+src_install() {
+ dosbin spine
+
+ insinto /etc/
+ insopts -m0640 -o root
+ newins spine.conf{.dist,}
+
+ doman spine.1
+ dodoc CHANGELOG
+}
diff --git a/net-analyzer/cacti-spine/files/cacti-spine-0.8.8g-net-snmp.patch b/net-analyzer/cacti-spine/files/cacti-spine-0.8.8g-net-snmp.patch
new file mode 100644
index 000000000000..5ee62e2279a0
--- /dev/null
+++ b/net-analyzer/cacti-spine/files/cacti-spine-0.8.8g-net-snmp.patch
@@ -0,0 +1,19 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -251,14 +251,14 @@
+
+ # Net-SNMP includes v3 support and insists on crypto unless compiled --without-openssl
+ AC_MSG_CHECKING([if Net-SNMP needs crypto support])
+-AC_TRY_COMPILE([#include <net-snmp-config.h>], [exit(NETSNMP_USE_OPENSSL != 1);],
++AC_TRY_COMPILE([#include <net-snmp/net-snmp-config.h>], [exit(NETSNMP_USE_OPENSSL != 1);],
+ [ AC_MSG_RESULT(yes)
+ SNMP_SSL=yes
+ ],
+ AC_MSG_RESULT(no)
+ )
+
+-AC_TRY_COMPILE([ #include <net-snmp-config.h>
++AC_TRY_COMPILE([ #include <net-snmp/net-snmp-config.h>
+ #include <net-snmp/utilities.h>
+ #include <net-snmp/net-snmp-includes.h>
+ #include <net-snmp/config_api.h>
diff --git a/net-analyzer/cacti-spine/metadata.xml b/net-analyzer/cacti-spine/metadata.xml
new file mode 100644
index 000000000000..cad809258c8a
--- /dev/null
+++ b/net-analyzer/cacti-spine/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <longdescription lang="en">
+ Spine (formerly known as Cactid) is a poller for Cacti that primarily
+ strives to be as fast as possible. For this reason it is written in
+ native C, makes use of POSIX threads, and is linked directly against the
+ net-snmp library for minmumal SNMP polling overhead. Spine is a
+ replacement for the default cmd.php poller so you must decide if using
+ Spine makes sense for your installation.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/cacti/Manifest b/net-analyzer/cacti/Manifest
new file mode 100644
index 000000000000..a7c1d7d9253a
--- /dev/null
+++ b/net-analyzer/cacti/Manifest
@@ -0,0 +1 @@
+DIST cacti-1.2.26.tar.gz 43637358 BLAKE2B 862b98e9b194f211a400b37f90c2bfb128bf71ee4660391ba2311deedd8b1342ce0d17d67181d16deae345c12596d7599b1272272b32fd7ab52fe2850f8209f6 SHA512 43bfa2fa5b87267191f845de8be38025b795509eb12817e5ff9884b20676655ec4e5230e015abe2afa9f10354317eec39081613e5c9fec4f6a6f314bedf873ab
diff --git a/net-analyzer/cacti/cacti-1.2.26.ebuild b/net-analyzer/cacti/cacti-1.2.26.ebuild
new file mode 100644
index 000000000000..c07574d0d83f
--- /dev/null
+++ b/net-analyzer/cacti/cacti-1.2.26.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit edos2unix webapp
+
+# Support for _p* in version.
+MY_P=${P/_p*/}
+
+DESCRIPTION="Cacti is a complete frontend to rrdtool"
+HOMEPAGE="https://www.cacti.net/"
+SRC_URI="https://www.cacti.net/downloads/${MY_P}.tar.gz"
+
+LICENSE="GPL-2"
+KEYWORDS="amd64 ~arm ~hppa ~ppc64 ~sparc x86"
+IUSE="snmp doc"
+
+need_httpd
+
+RDEPEND="
+ dev-lang/php[cli,mysql,pdo,session,sockets,xml]
+ dev-php/adodb
+ net-analyzer/rrdtool[graph]
+ virtual/cron
+ snmp? ( >=net-analyzer/net-snmp-5.2.0 )
+"
+
+src_compile() { :; }
+
+src_install() {
+ dodoc CHANGELOG
+ dodoc -r docs
+ mv docs .. || die
+
+ webapp_src_preinst
+
+ edos2unix `find -type f -name '*.php'`
+
+ dodir ${MY_HTDOCSDIR}
+ cp -r . "${ED}"${MY_HTDOCSDIR}
+
+ webapp_serverowned ${MY_HTDOCSDIR}/rra
+ webapp_serverowned ${MY_HTDOCSDIR}/log
+ webapp_configfile ${MY_HTDOCSDIR}/include/config.php
+ webapp_postinst_txt en "${FILESDIR}"/postinstall-en.txt
+
+ webapp_src_install
+}
diff --git a/net-analyzer/cacti/files/postinstall-en.txt b/net-analyzer/cacti/files/postinstall-en.txt
new file mode 100644
index 000000000000..732c718005cb
--- /dev/null
+++ b/net-analyzer/cacti/files/postinstall-en.txt
@@ -0,0 +1,62 @@
+
+New Install
+
+1. Create the new cacti database
+ shell> mysqladmin -p --user=root create cacti
+2. Import the default cacti database:
+ shell> mysql -p --user=root cacti < ${MY_INSTALLDIR}/cacti.sql
+3. Create a MySQL username and password for cacti.
+ shell> mysql -p --user=root mysql
+ mysql> GRANT ALL ON cacti.* TO cactiuser@localhost IDENTIFIED BY 'somepassword';
+ mysql> flush privileges;
+4. Edit ${MY_INSTALLDIR}/include/config.php and modify the MySQL user,
+ password and database for your cacti configuration.
+
+ Example:
+ \$database_default = "cacti";
+ \$database_hostname = "localhost";
+ \$database_username = "cactiuser";
+ \$database_password = "somepassword";
+
+5. Point your web browser to: http://${VHOST_HOSTNAME}/${VHOST_APPDIR}/
+ Make sure to fill in all of the path variables carefully and
+ correctly on the following screen.
+6. After you've gone through the setup wizard, go back to the main cacti page
+ and login as:
+ Username: admin
+ Password: admin
+
+Upgrading
+
+1. Backup DB in the case that something goes wrong.
+ shell> mysqldump -l --add-drop-table cacti > mysql.cacti
+2. Backup your rra/ directory and any custom scripts in your scripts/
+ directory.
+3. Edit ${MY_INSTALLDIR}/include/config.php, and confirm that the MySQL user,
+ password and database is correct for your cacti configuration.
+
+ Example:
+ \$database_default = "cacti";
+ \$database_hostname = "localhost";
+ \$database_username = "cactiuser";
+ \$database_password = "somepassword";
+4. Point your web browser to: http://${VHOST_HOSTNAME}/${VHOST_APPDIR}/
+ Select "Upgrade".
+ Make sure to fill in all of the path variables carefully and
+ correctly on the following screen.
+
+Cronjob
+
+Either new or upgrading, make sure you have a cron job - Add this line to
+your /etc/crontab file:
+
+ */5 * * * * ${VHOST_SERVER_GID} /usr/bin/php ${MY_INSTALLDIR}/poller.php > /dev/null 2>&1
+
+Note that you should use poller.php as the cronjob instead of cmd.php (as it was with
+earlier versions) to enable you to switch between cmd.php and cactid.
+
+Also make sure that the user poller.php runs as ( ${VHOST_SERVER_GID} ) has
+permission to create new files in Cacti's 'rra/' directory which is
+${MY_INSTALLDIR}/rra
+
+
diff --git a/net-analyzer/cacti/metadata.xml b/net-analyzer/cacti/metadata.xml
new file mode 100644
index 000000000000..b5e34e63c841
--- /dev/null
+++ b/net-analyzer/cacti/metadata.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <stabilize-allarches />
+ <longdescription lang="en">
+ Cacti is a complete network graphing solution designed to harness the
+ power of RRDTool's data storage and graphing functionality. Cacti
+ provides a fast poller, advanced graph templating, multiple data
+ acquisition methods, and user management features out of the box. All of
+ this is wrapped in an intuitive, easy to use interface that makes sense
+ for LAN-sized installations up to complex networks with hundreds of
+ devices.
+ </longdescription>
+ <use>
+ <flag name="doc">install html documentation</flag>
+ </use>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:cacti:cacti</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/calamaris/Manifest b/net-analyzer/calamaris/Manifest
new file mode 100644
index 000000000000..6e7a8d331b01
--- /dev/null
+++ b/net-analyzer/calamaris/Manifest
@@ -0,0 +1,2 @@
+DIST calamaris-2.99.4.5.tar.gz 116893 BLAKE2B 9864f135b364dd7d7becd7c30cc28da1f41c4db0fb940f45153d5fd8da04c8df8675a728e19b47f6eb8f602945655817717189349fe047944d0abdacfd0476c9 SHA512 d9bc890afd6a349ea448b4f40281b8d4dd5babf2915cdfe6d4a46c066826e54c3a9e988e575fb13a4cf5ae9500d33faa5d24f295504f7b6fbfbec219610b309d
+DIST calamaris-2.99.4.7.tar.gz 119791 BLAKE2B 390b38cad5f021899592365d763bcd009e41a39e0ccd9e5a3c28b4aa7224ee97b1591995a0441d6970548f9093df7f94c570bf94f0ba0a27ba8d2a854e41572c SHA512 0d2f15214b58dcf5a2d170e30a9ae61f0191e2b2fd1dfbce271655802f358e2e5b02e1884f68aa62fbbe9ff91bc6b564e6cfaaed48c3484a0d781a2b28e15bed
diff --git a/net-analyzer/calamaris/calamaris-2.99.4.5.ebuild b/net-analyzer/calamaris/calamaris-2.99.4.5.ebuild
new file mode 100644
index 000000000000..def7af0634f8
--- /dev/null
+++ b/net-analyzer/calamaris/calamaris-2.99.4.5.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="parses logfiles of a wide variety of web proxy servers and generates reports"
+HOMEPAGE="https://cord.de/calamaris-english"
+SRC_URI="https://cord.de/files/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~x86"
+IUSE="selinux"
+
+RDEPEND="
+ dev-lang/perl
+ dev-perl/GDGraph
+ selinux? ( sec-policy/selinux-calamaris )
+"
+
+src_prepare() {
+ default
+ sed -i \
+ -e "s:\(use lib\).*$:\1 '/usr/share/';:" \
+ calamaris || die
+}
+
+src_install() {
+ dobin calamaris calamaris-cache-convert
+
+ insinto /usr/share/${PN}
+ doins *.pm
+
+ doman calamaris.1
+
+ dodoc BUGS CHANGES EXAMPLES EXAMPLES.v3 README TODO calamaris.conf
+}
diff --git a/net-analyzer/calamaris/calamaris-2.99.4.7.ebuild b/net-analyzer/calamaris/calamaris-2.99.4.7.ebuild
new file mode 100644
index 000000000000..0fc541570a7d
--- /dev/null
+++ b/net-analyzer/calamaris/calamaris-2.99.4.7.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Parses logfiles of a wide variety of web proxy servers and generates reports"
+HOMEPAGE="https://cord.de/calamaris-english"
+SRC_URI="https://cord.de/files/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~x86"
+IUSE="selinux"
+
+RDEPEND="
+ dev-lang/perl
+ dev-perl/GDGraph
+ selinux? ( sec-policy/selinux-calamaris )
+"
+
+src_prepare() {
+ default
+ sed -i \
+ -e "s:\(use lib\).*$:\1 '/usr/share/';:" \
+ calamaris || die
+}
+
+src_install() {
+ dobin calamaris calamaris-cache-convert
+
+ insinto /usr/share/${PN}
+ doins *.pm
+
+ doman calamaris.1
+
+ dodoc BUGS CHANGES EXAMPLES EXAMPLES.v3 README TODO calamaris.conf
+}
diff --git a/net-analyzer/calamaris/metadata.xml b/net-analyzer/calamaris/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/calamaris/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/cbm/Manifest b/net-analyzer/cbm/Manifest
new file mode 100644
index 000000000000..e71149653f35
--- /dev/null
+++ b/net-analyzer/cbm/Manifest
@@ -0,0 +1,2 @@
+DIST cbm-0.3.2.tar.gz 17448 BLAKE2B 21acdfb2e125b31f617bd3204cc11ef199647552b67671e62bec7a94ea4a5c213a1099c72261e6370aee06e4a6686392878a30a863778387c08a1a8095855940 SHA512 7a597467203786023a8efee23ea1ed65195f872f6287ed2767f9be449cc47757980703f629222f37309c25cc5f201d9581a713479d954ddc99347d641ab4ac34
+DIST cbm-0.4.tar.gz 17889 BLAKE2B f46a325156e5cd406448f0c2205615b080f7fe30b93874b306fbfd39a0eca409b76989035f9245b5f3e834a814ed53e57a22d7cf62edeae86e27e56c3809ea7b SHA512 3574b49b403995684da2a6d8d164ad4f3f1ce290060bc91f5a6f5c80e4a4cb81dd7914b7e7dfcff937c0333e20f169de497869d649debf73885e253a7db76222
diff --git a/net-analyzer/cbm/cbm-0.3.2.ebuild b/net-analyzer/cbm/cbm-0.3.2.ebuild
new file mode 100644
index 000000000000..9c8f5b01a4b2
--- /dev/null
+++ b/net-analyzer/cbm/cbm-0.3.2.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools
+
+DESCRIPTION="Color Bandwidth Meter"
+HOMEPAGE="https://github.com/resurrecting-open-source-projects/cbm"
+SRC_URI="https://github.com/resurrecting-open-source-projects/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="sys-libs/ncurses:="
+DEPEND="${RDEPEND}"
+BDEPEND="app-text/docbook-xml-dtd:4.4
+ app-text/xmlto
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.2-tinfo.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
diff --git a/net-analyzer/cbm/cbm-0.4.ebuild b/net-analyzer/cbm/cbm-0.4.ebuild
new file mode 100644
index 000000000000..d50e38348047
--- /dev/null
+++ b/net-analyzer/cbm/cbm-0.4.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="Color Bandwidth Meter"
+HOMEPAGE="https://github.com/resurrecting-open-source-projects/cbm"
+SRC_URI="https://github.com/resurrecting-open-source-projects/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="sys-libs/ncurses:="
+DEPEND="${RDEPEND}"
+BDEPEND="app-text/docbook-xml-dtd:4.4
+ app-text/xmlto
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.2-tinfo.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
diff --git a/net-analyzer/cbm/files/cbm-0.2-tinfo.patch b/net-analyzer/cbm/files/cbm-0.2-tinfo.patch
new file mode 100644
index 000000000000..a719969eaaab
--- /dev/null
+++ b/net-analyzer/cbm/files/cbm-0.2-tinfo.patch
@@ -0,0 +1,21 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -37,6 +37,7 @@
+ AC_CANONICAL_HOST
+
+ # Checks for libraries.
++PKG_CHECK_MODULES(ncurses,ncurses)
+
+ # Checks for header files.
+ AC_CHECK_HEADER(curses.h,[],[ AC_MSG_ERROR(curses.h not found or too old.) ], [])
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -24,7 +24,7 @@
+ cbm_SOURCES = cbm.cpp \
+ ErrnoError.hpp \
+ statistics.cpp statistics.hpp
+-cbm_LDADD = -lncurses widgets/libwidgets.la
++cbm_LDADD = $(ncurses_LIBS) widgets/libwidgets.la
+
+ distclean-local:
+ -rm -f *~ \
diff --git a/net-analyzer/cbm/metadata.xml b/net-analyzer/cbm/metadata.xml
new file mode 100644
index 000000000000..f6067edecf08
--- /dev/null
+++ b/net-analyzer/cbm/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <longdescription>
+ The Color Bandwidth Meter (CBM) is a small program to display the traffic
+ currently flowing through the network devices in a simple curses-based GUI.
+ The traffic for all interfaces include values as receive, transfer and total
+ Bytes/s or bits/s (or its multiples as KB/s and Kb/s).
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/chronograf/Manifest b/net-analyzer/chronograf/Manifest
new file mode 100644
index 000000000000..b906fdb9c76e
--- /dev/null
+++ b/net-analyzer/chronograf/Manifest
@@ -0,0 +1,3 @@
+DIST chronograf-1.8.5-deps.tar.xz 125095248 BLAKE2B e26ebe7f3da1de0b2733fc664252f05bdf74b52610be4bd848c47d299977b8d29e066ce6371bb923190a3323aa0438b58de85bf98d8f2af8831a838822c8533d SHA512 957fa8aa460bb35a98caee2e5c878e987ee3a18ed16b491dc804f7f4d4291dea69dca750a62ca400d077883e777a239ed536eee544de9c3252cc209cb0565681
+DIST chronograf-1.8.5-gen.tar.gz 3006503 BLAKE2B a7d8409d197df5c8a539ae0c0bf0a2fa557d5f56edc491cc9f75566e7dfa3eaea24955f7e36637dba87f9fb54aa6461b83e17c539599164100076e494d208465 SHA512 c7f28644d4143883b792448a62f03f733d7fbc1ea4fa77c29af9d5f7ee6982133c98cf995e13d76a4b43deda6ac30ecf9e8fedf7f0876beb2d9dc58dde3fea68
+DIST chronograf-1.8.5.tar.gz 2208763 BLAKE2B fd5f12c5a3ed8f83016bcfb42afafc309acd642c7b6795ca43c265ee41824e9ee116238d0f56c010b3f3c777a67225c21da3179af763fc66e0f5ef87cb5cca59 SHA512 075f83f38fcfeff199ab7fc6d393cc6aafa95cd1bc7415602dc8bedb0d7203b5b70de386165ac6ba502fdd9503779016a616eb59b31a2e87a96b01ce66ecfa5c
diff --git a/net-analyzer/chronograf/chronograf-1.8.5.ebuild b/net-analyzer/chronograf/chronograf-1.8.5.ebuild
new file mode 100644
index 000000000000..75faf8089855
--- /dev/null
+++ b/net-analyzer/chronograf/chronograf-1.8.5.ebuild
@@ -0,0 +1,67 @@
+# Copyright 2020-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit go-module systemd
+COMMIT=6b7e6cb1a
+
+DESCRIPTION="Monitoring, processing and alerting on time series data"
+HOMEPAGE="https://www.influxdata.com"
+SRC_URI="https://github.com/influxdata/chronograf/archive/${PV}.tar.gz -> ${P}.tar.gz
+ https://dev.gentoo.org/~williamh/dist/${P}-deps.tar.xz
+ https://dev.gentoo.org/~williamh/dist/${P}-gen.tar.gz"
+
+LICENSE="AGPL-3+"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+COMMON_DEPEND="acct-group/chronograf
+ acct-user/chronograf"
+DEPEND="${COMMON_DEPEND}"
+RDEPEND="${COMMON_DEPEND}"
+
+src_prepare() {
+ default
+ mv ../canned/bin_gen.go canned || die
+ mv ../dist/dist_gen.go dist || die
+ mv ../protoboards/bin_gen.go protoboards || die
+ mv ../server/swagger_gen.go server || die
+}
+
+src_compile() {
+ local go_ldflags
+ go_ldflags="
+ -X main.commit=${COMMIT}
+ -X main.version=${PV}"
+ go build \
+ -o chronograf \
+ -ldflags "${go_ldflags}" \
+ ./cmd/chronograf/main.go || die "could not compile chronograf"
+ go build \
+ -o chronoctl \
+ -ldflags "${go_ldflags}" \
+ ./cmd/chronoctl || die "could not compile chronoctl"
+}
+
+src_install() {
+ dobin chronograf chronoctl
+ dodoc CHANGELOG.md
+ insinto /etc/logrotate.d
+ newins etc/scripts/logrotate chronograf
+ systemd_dounit etc/scripts/chronograf.service
+ insinto /usr/share/chronograf/canned
+ doins canned/*.json
+ keepdir /usr/share/chronograf/resources
+ newconfd "${FILESDIR}"/chronograf.confd chronograf
+ newinitd "${FILESDIR}"/chronograf.rc chronograf
+ keepdir /var/log/chronograf
+ fowners chronograf:chronograf /var/log/chronograf
+}
+
+pkg_postinst() {
+ if [[ -z "${REPLACING_VERSIONS}" ]]; then
+ einfo "In order to use chronograf, you will need to configure"
+ einfo "the appropriate options in ${EROOT}/etc/conf.d/chronograf"
+ fi
+}
diff --git a/net-analyzer/chronograf/files/chronograf.confd b/net-analyzer/chronograf/files/chronograf.confd
new file mode 100644
index 000000000000..a70c355c6fb6
--- /dev/null
+++ b/net-analyzer/chronograf/files/chronograf.confd
@@ -0,0 +1,16 @@
+#The convention in this file is to show the default setting commented
+#out.
+#To change the setting, uncomment it then change the value.
+
+#This is the chronograf error log:
+#error_log="/var/log/chronograf/chronograf.log"
+
+#This is the chronograf output log:
+#output_log="/dev/null"
+
+# If you set this to yes, chronograf will report anonymous usage stats
+# to influx data.
+#report_usage_stats="no"
+
+# Extra options to pass to chronograf:
+#chronograf_opts=""
diff --git a/net-analyzer/chronograf/files/chronograf.rc b/net-analyzer/chronograf/files/chronograf.rc
new file mode 100644
index 000000000000..335240dbf269
--- /dev/null
+++ b/net-analyzer/chronograf/files/chronograf.rc
@@ -0,0 +1,22 @@
+#!/sbin/openrc-run
+
+command=/usr/bin/chronograf
+command_args="${chronograf_opts}"
+command_background=yes
+command_user=chronograf:chronograf
+make_pidfile=yes
+pidfile=/var/run/chronografd.pid
+
+# Logging
+error_log="${error_log:-/var/log/chronograf/chronograf.log}"
+output_log="${output_log:-/dev/null}"
+
+start_pre() {
+ export HOST=127.0.0.1
+ export PORT=8888
+ export BOLT_PATH=/var/lib/chronograf/chronograf-v1.db
+ export CANNED_PATH=/usr/share/chronograf/canned
+ export RESOURCES_PATH=/usr/share/chronograf/RESOURCES
+ yesno "${report_usage_stats:-no}" || export REPORTING_DISABLED=yes
+ return 0
+}
diff --git a/net-analyzer/chronograf/metadata.xml b/net-analyzer/chronograf/metadata.xml
new file mode 100644
index 000000000000..17492b5107c4
--- /dev/null
+++ b/net-analyzer/chronograf/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>williamh@gentoo.org</email>
+ <name>William Hubbs</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/cloudshark/Manifest b/net-analyzer/cloudshark/Manifest
new file mode 100644
index 000000000000..04725555ecde
--- /dev/null
+++ b/net-analyzer/cloudshark/Manifest
@@ -0,0 +1 @@
+DIST cloudshark-1.0.4.tar.gz 24947 BLAKE2B e386d8cb2faf941ef97bd593c2d17566c5d97dce4d73af0d2f462d6e5c875a59e6598e5679bebf4c06be1dde8ebd37c05354dac46c6349c19b65ae0b57a1976b SHA512 5cb0e43e348d00c0ecc98f079a35f455865cbbe884e34101369b74429bb5bc14bb98acffa9749ce44a765e3653c0548e8b30cc658fb982b09dd61e2ec31b4f86
diff --git a/net-analyzer/cloudshark/cloudshark-1.0.4-r1.ebuild b/net-analyzer/cloudshark/cloudshark-1.0.4-r1.ebuild
new file mode 100644
index 000000000000..0eee6336f1e0
--- /dev/null
+++ b/net-analyzer/cloudshark/cloudshark-1.0.4-r1.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Easily upload your wireshark captures to CloudShark"
+HOMEPAGE="https://cloudshark.io/articles/wireshark-plugin/ https://github.com/cloudshark/wireshark-plugin"
+SRC_URI="https://github.com/${PN}/wireshark-plugin/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~x86"
+IUSE=""
+
+RDEPEND="
+ net-analyzer/wireshark:=[lua]
+ net-misc/curl
+"
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}/wireshark-plugin-${PV}"
+
+get_PV() {
+ local pv=$(best_version $1)
+ pv=${pv#$1-}; pv=${pv%-r*}
+ pv=${pv//_}; echo ${pv}
+}
+
+src_prepare() {
+ #cloudshark isn't meant to be installed systemwide, we fix that
+ eapply "${FILESDIR}"/cs_log_dir.patch
+
+ sed -i "s#%s/cloudshark_init.lua#/usr/$(get_libdir)/wireshark/plugins/$(get_PV net-analyzer/wireshark)/cloudshark_init.lua#" cloudshark.lua
+
+ #this enables cloudshark by DEFAULT on tshark, not desired
+ #sed -i 's#CLOUDSHARK_TSHARK = "n"#CLOUDSHARK_TSHARK = "y"#' cloudshark_init.default
+ default
+}
+
+src_install() {
+ insinto /usr/$(get_libdir)/wireshark/plugins/$(get_PV net-analyzer/wireshark)
+ doins cloudshark.lua json.lua
+ newins cloudshark_init.default cloudshark_init.lua
+ dodoc README.md
+}
diff --git a/net-analyzer/cloudshark/files/cs_log_dir.patch b/net-analyzer/cloudshark/files/cs_log_dir.patch
new file mode 100644
index 000000000000..9b0424e3cd44
--- /dev/null
+++ b/net-analyzer/cloudshark/files/cs_log_dir.patch
@@ -0,0 +1,13 @@
+diff -Naur cloudshark-1.0.2-174-orig/cloudshark.lua cloudshark-1.0.2-174/cloudshark.lua
+--- cloudshark-1.0.2-174-orig/cloudshark.lua 2013-06-03 00:00:46.669223099 -0400
++++ cloudshark-1.0.2-174/cloudshark.lua 2013-06-03 00:01:31.493224300 -0400
+@@ -180,7 +180,8 @@
+ --
+
+ function cs_log_dir()
+- return persconffile_path('plugins/cloudshark')
++ local log_dir = "/tmp"
++ return log_dir
+ end
+
+ --
diff --git a/net-analyzer/cloudshark/metadata.xml b/net-analyzer/cloudshark/metadata.xml
new file mode 100644
index 000000000000..22d29be8fc24
--- /dev/null
+++ b/net-analyzer/cloudshark/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>zerochaos@gentoo.org</email>
+ <name>Rick Farina</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/cnet/Manifest b/net-analyzer/cnet/Manifest
new file mode 100644
index 000000000000..6f216853448c
--- /dev/null
+++ b/net-analyzer/cnet/Manifest
@@ -0,0 +1 @@
+DIST cnet-3.3.4.tgz 2687235 BLAKE2B dec8b4510cfb9a39ade046dee56955d4ab39094d07acf373b056ce1917f3bbddcf22cf5feefe864b472be4c4a47da3147a3b977cdbf8b0295e0c3a8da95a8420 SHA512 51457541d1023e49bdad4df3502c51d11ea6d62e3e6ae857becfb60229626ba777226b2b42d313d95b982b2790c6b1f80b39e344d9d4bcd4c38ccc31b055d8f9
diff --git a/net-analyzer/cnet/cnet-3.3.4.ebuild b/net-analyzer/cnet/cnet-3.3.4.ebuild
new file mode 100644
index 000000000000..2685af53c5bd
--- /dev/null
+++ b/net-analyzer/cnet/cnet-3.3.4.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+DESCRIPTION="Network simulation tool"
+HOMEPAGE="https://www.csse.uwa.edu.au/cnet3/"
+SRC_URI="https://dev.gentoo.org/~jsmolic/distfiles/${P}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples"
+
+RDEPEND="
+ >=dev-lang/tk-8.5
+ dev-libs/elfutils
+ x11-libs/libX11
+"
+DEPEND="${RDEPEND}"
+
+DOCS=( 1st.README )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.3.4-gentoo.patch
+ "${FILESDIR}"/${PN}-3.3.1-tcl.patch
+)
+
+src_prepare() {
+ # Set libdir properly
+ sed -i -e "/CNETPATH/s:local/lib:$(get_libdir):" src/preferences.h || die
+ sed -i -e "/^LIBDIR/s:lib:$(get_libdir):" Makefile || die
+
+ default
+}
+
+src_compile() {
+ emake \
+ CC="$(tc-getCC)" \
+ C99="$(tc-getCC) -std=c99" \
+ AR="$(tc-getAR)" \
+ RANLIB="$(tc-getRANLIB)"
+}
+
+src_install() {
+ default
+
+ if use examples; then
+ dodoc -r examples
+ fi
+}
diff --git a/net-analyzer/cnet/files/cnet-3.3.1-tcl.patch b/net-analyzer/cnet/files/cnet-3.3.1-tcl.patch
new file mode 100644
index 000000000000..4c30673f2e67
--- /dev/null
+++ b/net-analyzer/cnet/files/cnet-3.3.1-tcl.patch
@@ -0,0 +1,13 @@
+--- a/src/Makefile.linux
++++ b/src/Makefile.linux
+@@ -17,8 +17,8 @@
+ #XLIBS = -ltcl -ltk -lX11
+ #
+ # or you may need something like:
+-XINCLUDES = -I/usr/include/tcl8.5
+-XLIBS = -ltcl8.5 -ltk8.5 -lX11
++#XINCLUDES = -I/usr/include/tcl8.5
++XLIBS = -ltcl -ltk -lX11
+ #
+ C99 = $(CC) -std=c99 -Wall -pedantic
+ CFLAGS += -fPIC $(INCLUDES) $(XINCLUDES)
diff --git a/net-analyzer/cnet/files/cnet-3.3.4-gentoo.patch b/net-analyzer/cnet/files/cnet-3.3.4-gentoo.patch
new file mode 100644
index 000000000000..b68b6d1bc51d
--- /dev/null
+++ b/net-analyzer/cnet/files/cnet-3.3.4-gentoo.patch
@@ -0,0 +1,161 @@
+--- a/Makefile
++++ b/Makefile
+@@ -6,7 +6,7 @@
+ # Comment/uncomment the following 4 constants to suit your system:
+ #
+ # PREFIX defines the directory below which cnet will be installed.
+-PREFIX = /usr/local
++PREFIX = /usr
+ #PREFIX = $(HOME)
+ #
+ # BINDIR defines the directory where the cnet binary will be installed.
+@@ -16,26 +16,24 @@
+ LIBDIR = $(PREFIX)/lib64/cnet
+ #
+ # WWWDIR defines the directory to hold cnet's web-based documentation
+-WWWDIR = /home/httpd/html/cnet
++#WWWDIR = /home/httpd/html/cnet
+ #WWWDIR = $(HOME)/WWW/cnet
+ #
+ # ---------------------------------------------------------------------
+ #
+ it:
+- make -C src
+- make -C support
++ $(MAKE) -C src
++ $(MAKE) -C support
+ @ls -l bin/$(NAME) lib/*.a
+
+ install:
+- make
+- @mkdir -p $(BINDIR) $(LIBDIR)
+- @chmod 755 $(BINDIR) $(LIBDIR)
+- @cp bin/$(NAME) $(BINDIR)/$(NAME)
+- @chmod 755 $(BINDIR)/$(NAME)
+- @rm -rf $(LIBDIR)/*
+- @cp lib/* $(LIBDIR)
+- @chmod 644 $(LIBDIR)/*
+- @ls -l $(BINDIR)/$(NAME) $(LIBDIR)/*.a
++ @mkdir -p $(DESTDIR)$(BINDIR) $(DESTDIR)$(LIBDIR)
++ @chmod 755 $(DESTDIR)$(BINDIR) $(DESTDIR)$(LIBDIR)
++ @cp bin/$(NAME) $(DESTDIR)$(BINDIR)/$(NAME)
++ @chmod 755 $(DESTDIR)$(BINDIR)/$(NAME)
++ @rm -rf $(DESTDIR)$(LIBDIR)/*
++ @cp lib/* $(DESTDIR)$(LIBDIR)
++ @chmod 644 $(DESTDIR)$(LIBDIR)/*
+
+ AND = html/CLICK html/KEYBOARD html/STOPANDWAIT html/TICKTOCK
+ www:
+--- a/src/Makefile.linux
++++ b/src/Makefile.linux
+@@ -5,7 +5,7 @@
+ # binutils 2.5.2, and
+ # libelf (0.6.4 onwards)
+ #
+-WARNINGS = -Wall -Werror -Wshadow -Wpointer-arith -Wcast-qual \
++WARNINGS = -Wall -Wshadow -Wpointer-arith -Wcast-qual \
+ -Wcast-align -Wwrite-strings -Wconversion \
+ -Wstrict-prototypes -Wredundant-decls -Winline \
+ -Wcomments -Wtrigraphs -Wimport -Wundef
+@@ -20,8 +20,8 @@
+ XINCLUDES = -I/usr/include/tcl8.5
+ XLIBS = -ltcl8.5 -ltk8.5 -lX11
+ #
+-C99 = gcc -std=c99 -Wall -Werror -pedantic
+-CFLAGS = -O3 -fPIC $(INCLUDES) $(XINCLUDES)
++C99 = $(CC) -std=c99 -Wall -pedantic
++CFLAGS += -fPIC $(INCLUDES) $(XINCLUDES)
+ #
+ LD = gcc -rdynamic
+ LIBDIRS = $(XLIBDIRS)
+--- a/support/Makefile
++++ b/support/Makefile
+@@ -7,21 +7,21 @@
+
+ it:
+ @if uname -s -r | grep -q "Linux" ; then \
+- make -f Makefile.linux ; fi
++ $(MAKE) -f Makefile.linux ; fi
+ @if uname -s -r | grep -q "Darwin" ; then \
+- make -f Makefile.macosx ; fi
++ $(MAKE) -f Makefile.macosx ; fi
+ @if uname -s -r | grep -q "SunOS 4" ; then \
+- make -f Makefile.sunos ; fi
++ $(MAKE) -f Makefile.sunos ; fi
+ @if uname -s -r | grep -q "SunOS 5" ; then \
+- make -f Makefile.solaris ; fi
++ $(MAKE) -f Makefile.solaris ; fi
+ @if uname -s -r | grep -q "OSF1" ; then \
+- make -f Makefile.osf1 ; fi
++ $(MAKE) -f Makefile.osf1 ; fi
+ @if uname -s -r | grep -q "IRIX" ; then \
+- make -f Makefile.irix5 ; fi
++ $(MAKE) -f Makefile.irix5 ; fi
+ @if uname -s -r | grep -q "FreeBSD" ; then \
+- make -f Makefile.freebsd ; fi
++ $(MAKE) -f Makefile.freebsd ; fi
+ @if uname -s -r | grep -q "NetBSD" ; then \
+- make -f Makefile.netbsd ; fi
++ $(MAKE) -f Makefile.netbsd ; fi
+ @cp -p cnetsupport.h ../lib
+
+ # ---------------------------------------------------------------------
+--- a/src/Makefile
++++ b/src/Makefile
+@@ -8,21 +8,21 @@
+
+ it:
+ @if uname -s -r | grep -q "Linux" ; then \
+- make -f Makefile.linux $(NAME) ; fi
++ $(MAKE) -f Makefile.linux $(NAME) ; fi
+ @if uname -s -r | grep -q "Darwin" ; then \
+- make -f Makefile.macosx $(NAME) ; fi
++ $(MAKE) -f Makefile.macosx $(NAME) ; fi
+ @if uname -s -r | grep -q "SunOS 4" ; then \
+- make -f Makefile.sunos $(NAME) ; fi
++ $(MAKE) -f Makefile.sunos $(NAME) ; fi
+ @if uname -s -r | grep -q "SunOS 5" ; then \
+- make -f Makefile.solaris $(NAME) ; fi
++ $(MAKE) -f Makefile.solaris $(NAME) ; fi
+ @if uname -s -r | grep -q "OSF1" ; then \
+- make -f Makefile.osf1 $(NAME) ; fi
++ $(MAKE) -f Makefile.osf1 $(NAME) ; fi
+ @if uname -s -r | grep -q "IRIX" ; then \
+- make -f Makefile.irix5 $(NAME) ; fi
++ $(MAKE) -f Makefile.irix5 $(NAME) ; fi
+ @if uname -s -r | grep -q "FreeBSD" ; then \
+- make -f Makefile.freebsd $(NAME) ; fi
++ $(MAKE) -f Makefile.freebsd $(NAME) ; fi
+ @if uname -s -r | grep -q "NetBSD" ; then \
+- make -f Makefile.netbsd $(NAME) ; fi
++ $(MAKE) -f Makefile.netbsd $(NAME) ; fi
+ @cp -p $(NAME) ../bin
+ @cp -p cnet.h ../lib
+
+@@ -33,7 +33,7 @@
+ @rm -rf HTML GPATH GRTAGS GSYMS GTAGS
+
+ hide:
+- make clean
++ $(MAKE) clean
+ echo '#if HIDE_GLOBAL_NAMES' > hidenames.h
+ sort < HIDENAMES | \
+ awk '{ if($$0 !~ /#/) printf("#define\t%-36s\t__CN%03d\n", $$0,++n);}'\
+--- a/support/Makefile.common
++++ b/support/Makefile.common
+@@ -1,13 +1,12 @@
+ #
+-C99 = gcc -std=c99 -Wall -Werror -pedantic -O3 -fPIC
+
+ DOTH = cnetsupport.h
+ OBJ = hashtable.o haversine.o lexical.o md5.o queue.o vector.o
+
+ $(NAME): $(OBJ)
+ @echo linking $(NAME)
+- @ar rc $(NAME) $(OBJ)
+- @ranlib $(NAME)
++ $(AR) rc $(NAME) $(OBJ)
++ $(RANLIB) $(NAME)
+ @cp -p $(NAME) ../lib
+
+ %.o : %.c $(DOTH)
diff --git a/net-analyzer/cnet/metadata.xml b/net-analyzer/cnet/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/cnet/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/cutter/Manifest b/net-analyzer/cutter/Manifest
new file mode 100644
index 000000000000..9cd1ba973c97
--- /dev/null
+++ b/net-analyzer/cutter/Manifest
@@ -0,0 +1 @@
+DIST cutter-1.04.tgz 13680 BLAKE2B 373e5e0c0fb14224974ff399c7db0a69dc5568394a881be2c285437050a1ec4cfb26acbcdd593d22519f34a32760bdbe342a96c2a4d55547f7c06bc49806e228 SHA512 79c17ec8c17e696a79aa8b11fda347f2e6929eb35f9a37da450acf6aff7ab9471e13eaef24708f90f3f0c2791fade2eb944443b98df3d3ae4eef0c408abc7b3a
diff --git a/net-analyzer/cutter/cutter-1.04.ebuild b/net-analyzer/cutter/cutter-1.04.ebuild
new file mode 100644
index 000000000000..ebe71d34d0bc
--- /dev/null
+++ b/net-analyzer/cutter/cutter-1.04.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+DESCRIPTION="TCP/IP Connection cutting on Linux Firewalls and Routers"
+HOMEPAGE="http://www.digitage.co.uk/digitage/software/linux-security/cutter"
+SRC_URI="http://www.digitage.co.uk/digitage/files/${PN}/${P}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.03-debian.patch
+ "${FILESDIR}"/${PN}-1.04-musl-if-ether.patch
+)
+
+src_prepare() {
+ default
+
+ # implicit rules are better ;x
+ rm -f Makefile || die
+}
+
+src_compile() {
+ emake cutter CC="$(tc-getCC)"
+}
+
+src_install() {
+ dosbin cutter
+ dodoc README
+ doman debian/cutter.8
+}
diff --git a/net-analyzer/cutter/files/cutter-1.03-debian.patch b/net-analyzer/cutter/files/cutter-1.03-debian.patch
new file mode 100644
index 000000000000..607e06df744f
--- /dev/null
+++ b/net-analyzer/cutter/files/cutter-1.03-debian.patch
@@ -0,0 +1,182 @@
+--- a/Makefile
++++ b/Makefile
+@@ -1,5 +1,5 @@
+ cutter: cutter.c
+- cc cutter.c -o cutter
++ cc $(CFLAGS) cutter.c -o cutter
+
+ clean:
+ rm -f cutter.o cutter
+--- a/cutter.c
++++ b/cutter.c
+@@ -57,6 +57,7 @@
+ #include <arpa/inet.h>
+ #include <net/if.h>
+ #include <errno.h>
++#include <time.h>
+
+ #define ETHHDR sizeof(struct ethhdr)
+ #define TCPHDR sizeof(struct tcphdr)
+@@ -149,7 +150,6 @@
+ int getmac(in_addr_t ip, uchar *mac)
+ {
+ FILE *id = fopen( "/proc/net/arp", "r" );
+- union { uchar c[4]; in_addr_t n; } ipu;
+ in_addr_t ipn;
+ int mac0, mac1, mac2, mac3, mac4, mac5;
+ int hwtype, flags;
+@@ -240,7 +240,7 @@
+ u_short toport
+ )
+ {
+- int i_result, raw_sock, rtn;
++ int i_result, raw_sock;
+ in_addr_t gateway_ip;
+ struct sockaddr_ll myaddr, hisaddr;
+ struct tpack tpack;
+@@ -377,7 +377,7 @@
+
+ for ( ; time(0) < tstart + 15; ) { // give the peer 15 seconds to respond
+ struct sockaddr_ll gotaddr;
+- int addrlen = sizeof(gotaddr);
++ unsigned int addrlen = sizeof(gotaddr);
+ fd_set readfds;
+ struct timeval tv;
+
+@@ -478,8 +478,7 @@
+ {
+ FILE *id = fopen( "/proc/net/ip_conntrack", "r" );
+ char src1[32], dst1[32], src2[32], dst2[32];
+- int sport1, dport1, sport2, dport2, i;
+- int packets1, packets2, bytes1, bytes2;
++ int sport1, dport1, sport2, dport2;
+ in_addr_t src1n, src2n, dst1n, dst2n;
+ char buff[1024], *p;
+ int found = 0;
+--- a/debian/cutter.8
++++ b/debian/cutter.8
+@@ -0,0 +1,124 @@
++.\" Hey, EMACS: -*- nroff -*-
++.TH CUTTER 8 "April, 2005"
++.SH NAME
++cutter \- cut tcp/ip connections
++.SH SYNOPSIS
++.B cutter
++.IR ipaddress1 \ [ \ port1 \ [ \ ipaddress2 \ [ \ port2
++\ ] \ ] \ ]
++.br
++.SH DESCRIPTION
++.B Cutter
++is an open source program that allows Linux firewall
++administrators to abort TCP/IP connections routed over the firewall or
++router on which it is run.
++.br
++.SH WARNING
++.B Cutter
++has been designed for use as a administrators tool for Linux
++firewalls. It's use (as is, or modified) for any other purpose is not
++sanctioned by the author. So - do not use this tool as a parachute, or
++to dry your cat, chill meat, answer your phone, drive you car, teach
++your kids to read or attack other people's computer systems or networks.
++.PP
++This software has been designed for
++.I legal
++and
++.I appropriate
++use
++by network security administrators and the like. It has been written as
++part of a larger Linux firewall project, targetting at controlling traffic
++from peer-to-peer software such as Kazaa, iMesh and others into and out of
++a private network. It is not designed as a tool for malicious use and the
++author in no way sanctions such use.
++.PP
++Users of the software should be aware that it's actions are easily detectable
++using a number of readily available network monitoring tools, and it makes no
++attempt to disguise it's actions. Malicious use of "cutter" could result in a
++jail sentance in a number of countries around the world.
++.PP
++The author is not responsible for the results of using this software. It
++is provided "as is" in the hope that it will be useful, but no garantees
++are made about it's use.
++.br
++.SH USAGE
++.B Cutter
++can be called using one of the following four syntaxes.
++
++.BI cutter \ ip-address
++
++.B Example:
++.RS
++.br
++.BI cutter \ 10.10.0.45
++
++Cuts all connections
++passing through the firewall
++between any ports on the specified ip-address (either a "private" or
++"public" address) and any other hosts. This can be used to close down
++all incoming connections to a particular server, all outgoing
++connections from a particular client or all outgoing connections to a
++server.
++.RE
++
++.B cutter
++.I ip-address port
++
++.B Example:
++.RS
++.br
++.B cutter
++.I 200.1.2.3 80
++
++Cuts all connections to or from the
++specified ip-address/port pair. This allows the user to be a little more
++specific than the previous example and allows targetting of specific
++services on specific hosts.
++.RE
++
++.B cutter
++.I ip-address-1 port-1 ip-address-2
++
++.B Example:
++.RS
++.br
++.B cutter
++.I 200.1.2.3 22 10.10.0.45
++
++Cuts all connections between
++ip-address-2 and ip-address-1/port-1. This allows the user to cut
++connections between a specified "client" and a particular service on a
++specified host. Our example closes host 10.10.0.45's SSH connection to
++server 200.1.2.3.
++.RE
++
++.B cutter
++.I ip-address-1 port-1 ip-address-2 port-2
++
++.B Example:
++.RS
++.br
++.B cutter
++.I 200.1.2.3 22 10.10.0.45 32451
++
++Cuts the specific connection between
++the two ip/port number pairs given.
++.RE
++.SH STATUS
++Cutter 1.03 should be considered
++.B EXPERIMENTAL.
++The author is releasing a
++tool that works on the systems he has access to (namely: IPCop and
++RedHat Linux), and he is seeking input on it's use on other systems,
++ideas for improvement, offers of sponsorship - etc.
++.PP
++.br
++.SH ADDITIONAL DOCUMENTATION
++This program is documented at
++.UR http://www.lowth.com/cutter/
++.I http://www.lowth.com/cutter/
++.UE
++.SH AUTHOR
++Blars Blarson addapted the README and web page written by Chris Lowth
++into this man page for debian package of cutter. This man page may be
++distribuated under the terms of the Gnu GPL version 2.
diff --git a/net-analyzer/cutter/files/cutter-1.04-musl-if-ether.patch b/net-analyzer/cutter/files/cutter-1.04-musl-if-ether.patch
new file mode 100644
index 000000000000..fed8bc26ee02
--- /dev/null
+++ b/net-analyzer/cutter/files/cutter-1.04-musl-if-ether.patch
@@ -0,0 +1,12 @@
+https://git.alpinelinux.org/aports/tree/main/cutter/musl-fix.patch
+https://bugs.gentoo.org/715994
+--- a/cutter.c
++++ b/cutter.c
+@@ -47,7 +47,6 @@
+ #include <linux/socket.h>
+ #include <linux/ip.h>
+ #include <linux/tcp.h>
+-#include <linux/if_ether.h>
+ #include <fcntl.h>
+ #include <netpacket/packet.h>
+ #include <net/ethernet.h> /* the L2 protocols */
diff --git a/net-analyzer/cutter/metadata.xml b/net-analyzer/cutter/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/cutter/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/darkstat/Manifest b/net-analyzer/darkstat/Manifest
new file mode 100644
index 000000000000..1a0ef22ae56d
--- /dev/null
+++ b/net-analyzer/darkstat/Manifest
@@ -0,0 +1 @@
+DIST darkstat-3.0.721.tar.gz 104050 BLAKE2B 1005bd3e40be59ad214c95908b34e70eb8b60e33a9b85ee3f6b7fa7f8f6691fad73234ef228ec529aaad0e8ad9eb07f0bdb9d08a560103af3cb377fd11765436 SHA512 077eec3cc69b021966d4545f408a7444136cedb8be1dbae96fb1ce94d9bcd3a1db3bf4ea1bed8999088b24f7e2ed333d1166fe39bf974f32772b8c8f6fde707c
diff --git a/net-analyzer/darkstat/darkstat-3.0.721-r1.ebuild b/net-analyzer/darkstat/darkstat-3.0.721-r1.ebuild
new file mode 100644
index 000000000000..84ae0cb8b98a
--- /dev/null
+++ b/net-analyzer/darkstat/darkstat-3.0.721-r1.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="Network traffic analyzer with cute web interface"
+HOMEPAGE="https://unix4lyfe.org/darkstat/"
+if [[ ${PV} == *9999* ]] ; then
+ EGIT_REPO_URI="https://github.com/emikulic/darkstat"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/emikulic/darkstat/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="amd64 ppc x86"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+
+DEPEND="acct-user/darkstat
+ dev-libs/libbsd
+ net-libs/libpcap
+ virtual/zlib:="
+RDEPEND="${DEPEND}"
+
+DARKSTAT_CHROOT_DIR=${DARKSTAT_CHROOT_DIR:-/var/lib/darkstat}
+
+DOCS=( AUTHORS ChangeLog README.md NEWS )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.0.719-strncpy-off-by-one.patch
+)
+
+src_prepare() {
+ default
+
+ sed -i \
+ -e '/-DNDEBUG/d' \
+ -e 's|-flto||g' \
+ configure.ac || die
+
+ eautoreconf
+}
+
+src_configure() {
+ econf --with-privdrop-user=darkstat
+}
+
+src_install() {
+ default
+
+ newinitd "${FILESDIR}"/darkstat-initd darkstat
+ newconfd "${FILESDIR}"/darkstat-confd darkstat
+
+ sed -i -e "s:__CHROOT__:${DARKSTAT_CHROOT_DIR}:g" "${D}"/etc/conf.d/darkstat || die
+ sed -i -e "s:__CHROOT__:${DARKSTAT_CHROOT_DIR}:g" "${D}"/etc/init.d/darkstat || die
+
+ keepdir "${DARKSTAT_CHROOT_DIR}"
+ fowners darkstat:0 "${DARKSTAT_CHROOT_DIR}"
+}
+
+pkg_postinst() {
+ elog "To start different darkstat instances which will listen on a different"
+ elog "interface, create within the ${EROOT}/etc/init.d directory a 'darkstat.if' symlink to"
+ elog "darkstat script where 'if' is the name of the interface."
+ elog "Also in the ${EROOT}/etc/conf.d directory, copy darkstat to darkstat.if"
+ elog "and edit it to change default values."
+ elog
+ elog "darkstat's default chroot directory is: ${EROOT}/var/lib/darkstat."
+ elog "Please chown it to darkstat:0 (or a different directory if you change it)."
+}
diff --git a/net-analyzer/darkstat/darkstat-9999999.ebuild b/net-analyzer/darkstat/darkstat-9999999.ebuild
new file mode 100644
index 000000000000..0814e036ed4c
--- /dev/null
+++ b/net-analyzer/darkstat/darkstat-9999999.ebuild
@@ -0,0 +1,80 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="Network traffic analyzer with cute web interface"
+HOMEPAGE="https://unix4lyfe.org/darkstat/"
+if [[ ${PV} == *9999* ]] ; then
+ EGIT_REPO_URI="https://github.com/emikulic/darkstat"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/emikulic/darkstat/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~ppc ~x86"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+
+DEPEND="acct-user/darkstat
+ dev-libs/libbsd
+ net-libs/libpcap
+ virtual/zlib:="
+RDEPEND="${DEPEND}"
+
+DARKSTAT_CHROOT_DIR=${DARKSTAT_CHROOT_DIR:-/var/lib/darkstat}
+
+DOCS=( AUTHORS ChangeLog README.md NEWS )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.0.719-strncpy-off-by-one.patch
+)
+
+src_prepare() {
+ default
+
+ sed -i \
+ -e '/-DNDEBUG/d' \
+ -e 's|-flto||g' \
+ configure.ac || die
+
+ eautoreconf
+}
+
+src_configure() {
+ econf --with-privdrop-user=darkstat
+}
+
+src_install() {
+ default
+
+ newinitd "${FILESDIR}"/darkstat-initd darkstat
+ newconfd "${FILESDIR}"/darkstat-confd darkstat
+
+ sed -i -e "s:__CHROOT__:${DARKSTAT_CHROOT_DIR}:g" "${D}"/etc/conf.d/darkstat || die
+ sed -i -e "s:__CHROOT__:${DARKSTAT_CHROOT_DIR}:g" "${D}"/etc/init.d/darkstat || die
+
+ keepdir "${DARKSTAT_CHROOT_DIR}"
+ fowners darkstat:0 "${DARKSTAT_CHROOT_DIR}"
+}
+
+pkg_postinst() {
+ # Workaround bug #141619
+ DARKSTAT_CHROOT_DIR=$(
+ sed -n 's/^#CHROOT=\(.*\)/\1/p' "${EROOT}"/etc/conf.d/darkstat
+ )
+
+ if [[ -n "${DARKSTAT_CHROOT_DIR}" ]] && [[ "${DARKSTAT_CHROOT_DIR}" != "${EROOT:-/}" ]] ; then
+ chown darkstat:0 "${EROOT}/${DARKSTAT_CHROOT_DIR#/}/"
+ fi
+
+ elog "To start different darkstat instances which will listen on a different"
+ elog "interface, create within the ${EROOT}/etc/init.d directory a 'darkstat.if' symlink to"
+ elog "darkstat script where 'if' is the name of the interface."
+ elog "Also in the ${EROOT}/etc/conf.d directory, copy darkstat to darkstat.if"
+ elog "and edit it to change default values."
+ elog
+ elog "darkstat's default chroot directory is: ${EROOT}/${DARKSTAT_CHROOT_DIR#/}"
+}
diff --git a/net-analyzer/darkstat/files/darkstat-3.0.719-strncpy-off-by-one.patch b/net-analyzer/darkstat/files/darkstat-3.0.719-strncpy-off-by-one.patch
new file mode 100644
index 000000000000..cab429c0ecec
--- /dev/null
+++ b/net-analyzer/darkstat/files/darkstat-3.0.719-strncpy-off-by-one.patch
@@ -0,0 +1,11 @@
+--- a/localip.c
++++ b/localip.c
+@@ -58,7 +58,7 @@
+ } else {
+ /* Warn about changed address. */
+ if (!addr_equal(ips->addrs + *idx, a)) {
+- static char before[INET6_ADDRSTRLEN];
++ static char before[INET6_ADDRSTRLEN + 1];
+ strncpy(before, addr_to_str(ips->addrs + *idx), INET6_ADDRSTRLEN);
+ verbosef("interface '%s' address %d/%d changed from %s to %s",
+ iface, *idx+1, ips->num_addrs, before, addr_to_str(a));
diff --git a/net-analyzer/darkstat/files/darkstat-confd b/net-analyzer/darkstat/files/darkstat-confd
new file mode 100644
index 000000000000..89e349e68868
--- /dev/null
+++ b/net-analyzer/darkstat/files/darkstat-confd
@@ -0,0 +1,27 @@
+# The interface to listen on
+# Use only with /etc/init.d/darkstat init script. If you use
+# /etc/init.d/darkstat.if init script, then this option should be ignored.
+#INTERFACE="eth0"
+
+# The port for the embedded webserver
+#PORT="667"
+
+# The address the embedded webserver should bind to
+#ADDRESS="0.0.0.0"
+
+# Set the filter. See tcpdump documentation for details.
+#FILTER=""
+
+# Log daily traffic statistics into the named file, relative to the
+# chroot directory (see, below).
+#DAYLOGFILE="darkstat.log"
+
+# Other options:
+DARKSTAT_OPTS="--no-promisc --no-dns --user darkstat"
+
+# The directory to which the program chroots after initialization.
+# If you change this, please note the variable below and adjust
+# the permissions accordingly. Note that if you want to use the
+# --daylog option in EXTRAOPTS, the files are logged relative
+# to the chroot-directory; see the man-page for details.
+#CHROOT=__CHROOT__
diff --git a/net-analyzer/darkstat/files/darkstat-initd b/net-analyzer/darkstat/files/darkstat-initd
new file mode 100644
index 000000000000..c362251dadc8
--- /dev/null
+++ b/net-analyzer/darkstat/files/darkstat-initd
@@ -0,0 +1,58 @@
+#!/sbin/openrc-run
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+IF=${SVCNAME##*.}
+
+if [ -n "${IF}" -a "${SVCNAME}" != "darkstat" ] ; then
+ PIDFILE=/run/darkstat.${IF}.pid
+else
+ PIDFILE=/run/darkstat.pid
+fi
+
+depend() {
+ need net
+}
+
+chkconfig() {
+ if [ -n "${IF}" -a "${SVCNAME}" != "darkstat" ] ; then
+ if [ ! -f "/etc/conf.d/darkstat.${IF}" ] ; then
+ einfo "It's possible to have distinct config in /etc/conf.d/darkstat.${IF}."
+ fi
+ INTERFACE=${IF}
+ else
+ if [ ! -f "/etc/conf.d/darkstat" ] ; then
+ ewarn "/etc/conf.d/darkstat does not exist. Falling on defaults."
+ fi
+ fi
+
+ if [ -z "${INTERFACE}" ]; then
+ ewarn "No interface specified. Trying to use eth0."
+ INTERFACE="eth0"
+ fi
+
+ DARK_OPTS="-i ${INTERFACE}"
+ [ -n "${PORT}" ] && DARK_OPTS="${DARK_OPTS} -p ${PORT}"
+ [ -n "${ADDRESS}" ] && DARK_OPTS="${DARK_OPTS} -b ${ADDRESS}"
+ [ -n "${DAYLOGFILE}" ] && DARK_OPTS="${DARK_OPTS} --daylog ${DAYLOGFILE}"
+
+ return 0
+}
+
+start() {
+ chkconfig || return 1
+
+ # If ${PIDFILE} exist darkstat fails to start
+ [ -f ${PIDFILE} ] && rm ${PIDFILE}
+ ebegin "Starting darkstat on ${INTERFACE}"
+ /sbin/start-stop-daemon --start --exec /usr/sbin/darkstat -- \
+ --chroot "${CHROOT:-__CHROOT__}" --pidfile ${PIDFILE} \
+ ${DARKSTAT_OPTS} ${DARK_OPTS} -f "${FILTER}"
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping darkstat on ${INTERFACE}"
+ /sbin/start-stop-daemon --stop --pidfile ${PIDFILE}
+ eend $?
+}
diff --git a/net-analyzer/darkstat/metadata.xml b/net-analyzer/darkstat/metadata.xml
new file mode 100644
index 000000000000..7bff35633fef
--- /dev/null
+++ b/net-analyzer/darkstat/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <longdescription lang="en">
+ darkstat is a network statistics gatherer. It's a packet sniffer that
+ runs as a background process on a cable/DSL router, gathers all sorts of
+ statistics about network usage, and serves them over HTTP.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/dhcp_probe/Manifest b/net-analyzer/dhcp_probe/Manifest
new file mode 100644
index 000000000000..5ed1a3a8246e
--- /dev/null
+++ b/net-analyzer/dhcp_probe/Manifest
@@ -0,0 +1 @@
+DIST dhcp_probe-1.3.1.tar.gz 246238 BLAKE2B 86c079c4c7951f3a70ced20dbea5d4f0d716335d2f9a18b1b9986965ca0446b5a7b673c7e652405deceeef336218016418a86be1a76d452c7802061403a66e82 SHA512 1002683e6ceb3806289fa9e4879be3d957a9ddc42656d7114942708560f8efba0db058137e04cad092e5a083900987aa1f76c5a7c20db4b57c104dd6a6fcabb6
diff --git a/net-analyzer/dhcp_probe/dhcp_probe-1.3.1-r1.ebuild b/net-analyzer/dhcp_probe/dhcp_probe-1.3.1-r1.ebuild
new file mode 100644
index 000000000000..4ccf2d977a28
--- /dev/null
+++ b/net-analyzer/dhcp_probe/dhcp_probe-1.3.1-r1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic toolchain-funcs
+
+DESCRIPTION="Discover DHCP and BootP servers on a directly-attached Ethernet network"
+HOMEPAGE="https://www.net.princeton.edu/software/dhcp_probe/"
+SRC_URI="https://www.net.princeton.edu/software/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="
+ net-libs/libnet
+ net-libs/libpcap"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.3.1-respect-AR.patch
+ "${FILESDIR}"/${PN}-1.3.1-fix-configure-CPP.patch
+ "${FILESDIR}"/${PN}-1.3.1-gcc15.patch
+)
+
+src_prepare() {
+ default
+
+ # for AR patch
+ eautoreconf
+}
+
+src_configure() {
+ # configure uses CPP
+ tc-export CPP
+
+ use amd64 && append-cppflags -D__ARCH__=64
+
+ STRIP=true econf
+}
+
+src_install() {
+ default
+
+ dodoc extras/dhcp_probe.cf.sample "${FILESDIR}"/${PN}_mail
+
+ newinitd "${FILESDIR}"/${PN}.initd ${PN}
+ newconfd "${FILESDIR}"/${PN}.confd ${PN}
+}
diff --git a/net-analyzer/dhcp_probe/files/dhcp_probe-1.3.1-fix-configure-CPP.patch b/net-analyzer/dhcp_probe/files/dhcp_probe-1.3.1-fix-configure-CPP.patch
new file mode 100644
index 000000000000..fa32f0f73164
--- /dev/null
+++ b/net-analyzer/dhcp_probe/files/dhcp_probe-1.3.1-fix-configure-CPP.patch
@@ -0,0 +1,26 @@
+Before this patch, with CPP exported:
+```
+checking for inet_aton function prototype in arpa/inet.h... ./configure: 6386: CPP: not found
+checking how to run the C preprocessor... x86_64-pc-linux-gnu-gcc -E
+./configure: 6512: ac_fn_c_try_cpp: not found
+./configure: 6512: ac_fn_c_try_cpp: not found
+configure: error: in `/var/tmp/portage/net-analyzer/dhcp_probe-1.3.1/work/dhcp_probe-1.3.1':
+configure: error: C preprocessor "x86_64-pc-linux-gnu-gcc -E" fails sanity check
+See `config.log' for more details
+```
+
+... and unexported:
+```
+checking for inet_aton function prototype in arpa/inet.h... ./configure: 6386: CPP: not found
+[... continues without dying ...]
+```
+--- a/configure.ac
++++ b/configure.ac
+@@ -16,6 +16,7 @@ dnl Checks for programs.
+ AC_PROG_CC
+ AC_PROG_RANLIB
+ AM_PROG_AR
++AC_PROG_CPP
+
+ dnl ##########################################################################
+
diff --git a/net-analyzer/dhcp_probe/files/dhcp_probe-1.3.1-gcc15.patch b/net-analyzer/dhcp_probe/files/dhcp_probe-1.3.1-gcc15.patch
new file mode 100644
index 000000000000..30ef8ab179f1
--- /dev/null
+++ b/net-analyzer/dhcp_probe/files/dhcp_probe-1.3.1-gcc15.patch
@@ -0,0 +1,14 @@
+Fix build with GCC 15
+https://bugs.gentoo.org/945196
+
+--- a/src/report.c
++++ b/src/report.c
+@@ -253,8 +253,6 @@ get_errmsg()
+ {
+ /* Return pointer to static string which gives full filesystem error message.
+ */
+- extern int errno;
+- extern char *strerror();
+
+ return strerror(errno);
+ }
diff --git a/net-analyzer/dhcp_probe/files/dhcp_probe-1.3.1-respect-AR.patch b/net-analyzer/dhcp_probe/files/dhcp_probe-1.3.1-respect-AR.patch
new file mode 100644
index 000000000000..da32b63718ac
--- /dev/null
+++ b/net-analyzer/dhcp_probe/files/dhcp_probe-1.3.1-respect-AR.patch
@@ -0,0 +1,10 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -15,6 +15,7 @@ dnl ##########################################################################
+ dnl Checks for programs.
+ AC_PROG_CC
+ AC_PROG_RANLIB
++AM_PROG_AR
+
+ dnl ##########################################################################
+
diff --git a/net-analyzer/dhcp_probe/files/dhcp_probe.confd b/net-analyzer/dhcp_probe/files/dhcp_probe.confd
new file mode 100644
index 000000000000..62652eac45d3
--- /dev/null
+++ b/net-analyzer/dhcp_probe/files/dhcp_probe.confd
@@ -0,0 +1,9 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+# Config file for /etc/init.d/dhcp_probe
+
+# For more information, see dhcp_probe(8).
+
+DHCP_PROBE_OPTIONS="-d 1"
+
diff --git a/net-analyzer/dhcp_probe/files/dhcp_probe.initd b/net-analyzer/dhcp_probe/files/dhcp_probe.initd
new file mode 100644
index 000000000000..24d09fbc7116
--- /dev/null
+++ b/net-analyzer/dhcp_probe/files/dhcp_probe.initd
@@ -0,0 +1,47 @@
+#!/sbin/openrc-run
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+extra_commands="reload"
+
+DHCP_PROBE_BINARY="/usr/sbin/dhcp_probe"
+DHCP_PROBE_CONFIG="/etc/dhcp_probe.cf"
+DHCP_PROBE_PIDFILE="/var/run/${SVCNAME}.pid"
+DHCP_PROBE_INTERFACE="${SVCNAME#*.}"
+
+depend() {
+ use logger
+ need net
+}
+
+checkconfig() {
+ if [ ! -e ${DHCP_PROBE_CONFIG} ]; then
+ eerror "You need an ${DHCP_PROBE_CONFIG} to run dhcp_probe."
+ eerror "A sample file is available in /usr/share/doc/dhcp_probe*"
+ return 1
+ elif [ ${SVCNAME} = dhcp_probe ]; then
+ eerror "Do not run this script directly! Instead, create symbolic links like so:"
+ eerror " # cd /etc/init.d"
+ eerror " # ln -s dhcp_probe dhcp_probe.[INTERFACE_NAME]"
+ eerror "for each interface that should be monitored"
+ return 1
+ fi
+}
+
+start() {
+ checkconfig
+ ebegin "Starting ${SVCNAME}"
+ ${DHCP_PROBE_BINARY} ${DHCP_PROBE_OPTIONS} -p ${DHCP_PROBE_PIDFILE} ${DHCP_PROBE_INTERFACE}
+ eend ${?}
+}
+
+stop() {
+ if [ "${RC_CMD}" = "restart" ] ; then
+ checkconfig || return 1
+ fi
+ ebegin "Stopping ${SVCNAME}"
+ start-stop-daemon --stop --signal 9 \
+ --pidfile ${DHCP_PROBE_PIDFILE}
+ eend ${?}
+}
+
diff --git a/net-analyzer/dhcp_probe/files/dhcp_probe_mail b/net-analyzer/dhcp_probe/files/dhcp_probe_mail
new file mode 100644
index 000000000000..58b07766bbb3
--- /dev/null
+++ b/net-analyzer/dhcp_probe/files/dhcp_probe_mail
@@ -0,0 +1,23 @@
+#!/bin/bash
+# Old style alert program:
+#
+# Syntax:
+# alert_program_name /absolute/path/name
+#
+# The program specified via 'alert_program_name' will be called as follows:
+# /absolute/path/name name_of_calling_program name_of_interface_on_which_the
+#_response_was_received IP_source_of_the_response ether_src_of_the_response
+
+DHCP_PROBE_DOMAIN=$(dnsdomainname)
+
+sendmail root <<EOF
+From: root@${DHCP_PROBE_DOMAIN}
+Subject: $1 ALERT - $3 is acting as a DHCP server
+
+Called program: $0
+Calling program: $1
+Interface on which response was received: $2
+IP source of the response: $3
+Ethernet source of the response: $4
+
+EOF
diff --git a/net-analyzer/dhcp_probe/metadata.xml b/net-analyzer/dhcp_probe/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/dhcp_probe/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/dhcpdump/Manifest b/net-analyzer/dhcpdump/Manifest
new file mode 100644
index 000000000000..0824b01fbb61
--- /dev/null
+++ b/net-analyzer/dhcpdump/Manifest
@@ -0,0 +1 @@
+DIST dhcpdump-1.9.tar.xz 11520 BLAKE2B a1749a27695aa88dbac46062ed67a45ea2dba500e56220d6f200c92e7ea379d085150c32d1499d4209b1fd774ad7a517f4e49a6221dfce066691077808100abb SHA512 352737e4e4ecc0d3ca80f881b09981bd3998d42f0141fc71f429d99057f49bdeb233ea64888b603470424f99eabd2575d2d92945dd7f606875ec5bc3b6efe7f4
diff --git a/net-analyzer/dhcpdump/dhcpdump-1.9.ebuild b/net-analyzer/dhcpdump/dhcpdump-1.9.ebuild
new file mode 100644
index 000000000000..21abe636b329
--- /dev/null
+++ b/net-analyzer/dhcpdump/dhcpdump-1.9.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="DHCP Packet Analyzer/tcpdump postprocessor"
+HOMEPAGE="https://github.com/bbonev/dhcpdump https://www.mavetju.org/unix/general.php"
+SRC_URI="https://github.com/bbonev/${PN}/releases/download/v${PV}/${P}.tar.xz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64 arm ~mips x86"
+
+# for pod2man
+BDEPEND="dev-lang/perl"
+DEPEND="net-libs/libpcap"
+RDEPEND="${DEPEND}"
+
+src_compile() {
+ tc-export CC
+ emake
+}
+
+src_install() {
+ dobin ${PN}
+ doman ${PN}.8
+ einstalldocs
+}
diff --git a/net-analyzer/dhcpdump/metadata.xml b/net-analyzer/dhcpdump/metadata.xml
new file mode 100644
index 000000000000..a39dfcb57a17
--- /dev/null
+++ b/net-analyzer/dhcpdump/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <longdescription>
+ This command parses the output of tcpdump to display the
+ dhcp-packets for easier checking and debugging.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/dnsmap/Manifest b/net-analyzer/dnsmap/Manifest
new file mode 100644
index 000000000000..fe087b1eb9a2
--- /dev/null
+++ b/net-analyzer/dnsmap/Manifest
@@ -0,0 +1 @@
+DIST dnsmap-0.36.tar.gz 73782 BLAKE2B 94d6aa024979805c81dc5160b213a9e32297283f6b35f91e8eb376db83b5f3627783491530a89d24bbba740ba48870b0073910a1773242f0caedfcfd71e93ef2 SHA512 60f0602314ea6f2b8c16bda1d1d47110c4b2a16f32174882e4406b4ccece39001527337f6ba40da65524287d005c1611e4c14e6a1ec99b25e50f4a20c7e6577f
diff --git a/net-analyzer/dnsmap/dnsmap-0.36.ebuild b/net-analyzer/dnsmap/dnsmap-0.36.ebuild
new file mode 100644
index 000000000000..ccfe8b6421d6
--- /dev/null
+++ b/net-analyzer/dnsmap/dnsmap-0.36.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="Scan for subdomains using bruteforcing techniques"
+HOMEPAGE="https://github.com/resurrecting-open-source-projects/dnsmap"
+SRC_URI="https://github.com/resurrecting-open-source-projects/dnsmap/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DOCS=(
+ CONTRIBUTING.md
+ ChangeLog
+ NEWS
+ README.md
+ TODO
+ doc/CREDITS.old
+)
+
+src_prepare() {
+ default
+
+ eautoreconf
+}
diff --git a/net-analyzer/dnsmap/metadata.xml b/net-analyzer/dnsmap/metadata.xml
new file mode 100644
index 000000000000..011d298371ee
--- /dev/null
+++ b/net-analyzer/dnsmap/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/dnstracer/Manifest b/net-analyzer/dnstracer/Manifest
new file mode 100644
index 000000000000..fcc834eb16f2
--- /dev/null
+++ b/net-analyzer/dnstracer/Manifest
@@ -0,0 +1 @@
+DIST dnstracer-1.10.tar.gz 19169 BLAKE2B 8d549f7968b313778f4ee28a5dae0d782b23ff6ce874d343c079c178e9e7516d37af61c14ac6d4f00888dffa98f50768acd2d3fa2d221358d4db8aea82bc830f SHA512 8174f92c5c1b300c1011a24f0cf2f16dc2b52a082729e52d1033a047e20d132d6005b89618ecbbd25cbdc1c95cdc0748cf666bdc56b769b240d8885469bc6e05
diff --git a/net-analyzer/dnstracer/dnstracer-1.10.ebuild b/net-analyzer/dnstracer/dnstracer-1.10.ebuild
new file mode 100644
index 000000000000..4477a4eddc2d
--- /dev/null
+++ b/net-analyzer/dnstracer/dnstracer-1.10.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+DESCRIPTION="Determines where a given nameserver gets its information from"
+HOMEPAGE="https://www.mavetju.org/unix/general.php"
+SRC_URI="https://www.mavetju.org/download/${P}.tar.bz2 -> ${P}.tar.gz"
+S="${WORKDIR}/${PN}"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="amd64 arm ~hppa ~ppc ppc64 ~s390 ~sparc x86"
+
+BDEPEND="dev-lang/perl"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.9-argv0.patch
+)
+
+src_compile() {
+ emake CC="$(tc-getCC) ${CFLAGS} ${LDFLAGS}"
+}
+
+src_install() {
+ dobin ${PN}
+ doman ${PN}.8
+
+ dodoc CHANGES CONTACT README
+}
diff --git a/net-analyzer/dnstracer/files/dnstracer-1.9-argv0.patch b/net-analyzer/dnstracer/files/dnstracer-1.9-argv0.patch
new file mode 100644
index 000000000000..c83c38ea7d74
--- /dev/null
+++ b/net-analyzer/dnstracer/files/dnstracer-1.9-argv0.patch
@@ -0,0 +1,11 @@
+--- a/dnstracer.c
++++ b/dnstracer.c
+@@ -1619,7 +1619,7 @@
+ if (argv[0] == NULL) usage();
+
+ // check for a trailing dot
+- strcpy(argv0, argv[0]);
++ strncpy(argv0, argv[0], NS_MAXDNAME);
+ if (argv0[strlen(argv[0]) - 1] == '.') argv0[strlen(argv[0]) - 1] = 0;
+
+ printf("Tracing to %s[%s] via %s, maximum of %d retries\n",
diff --git a/net-analyzer/dnstracer/metadata.xml b/net-analyzer/dnstracer/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/dnstracer/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/driftnet/Manifest b/net-analyzer/driftnet/Manifest
new file mode 100644
index 000000000000..5b64cd15e699
--- /dev/null
+++ b/net-analyzer/driftnet/Manifest
@@ -0,0 +1,3 @@
+DIST driftnet-1.3.0.tar.gz 4971618 BLAKE2B 1cf0a46caac2267c093bf21a0d8e150518dbfe0e76acbe21ef87cd760ccbe964313116ee24d25ad7759b3eeba19ef7925200caee4fd06bb28f9836217d889256 SHA512 45f1016a850cf9e5e294756e47e40eccb13f57a316ae7fa885eac2d5e53f68b9d9ef86868415eca76b108f7aa1f4080c550a91f789265edb0f6e3a55e05f5f0c
+DIST driftnet-1.5.0.tar.gz 5691414 BLAKE2B 6bab227ff730d760a2b4c31cd7b6bf41d61bcb7529c844ba1aee071aeaaa0de43d25f32b73c1423bd13d7d87db69ea0d4a5640fdeb507c7cfa6e7380061147fc SHA512 453329abb6f1a2d9538fa3bea788cc7bec142563e66f832aa11b3a935ac4f092779af6fce64e93959f6c5520d817cff74d80e449275fcbb02ac45d247743df73
+DIST driftnet-1.6.0.tar.gz 5772879 BLAKE2B 9d70917a29a830fc8e3afdec0032cbe39bb8cfa1d101bd41473a77e4b63ee2263a4c40db92d9cc8c314ecd117f9fc514c1f55f8750bfbfdd88e31613232f66b7 SHA512 4a381079dbbc3c343fbdf4421ed3ed257e7f4acf1e79be6eeafa702ccf61423404645745f4cc6f6e25b230d0bd0e587b4be64d7066cf827a17225a75a44cb187
diff --git a/net-analyzer/driftnet/driftnet-1.3.0.ebuild b/net-analyzer/driftnet/driftnet-1.3.0.ebuild
new file mode 100644
index 000000000000..273225a06c40
--- /dev/null
+++ b/net-analyzer/driftnet/driftnet-1.3.0.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools fcaps
+
+DESCRIPTION="Watches network traffic and displays media from TCP streams observed"
+HOMEPAGE="http://www.ex-parrot.com/~chris/driftnet/"
+SRC_URI="https://github.com/deiv/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+KEYWORDS="amd64 ~arm64 ppc -sparc x86"
+SLOT="0"
+IUSE="debug gtk suid test"
+
+RDEPEND="
+ net-libs/libpcap
+ net-libs/libwebsockets:=[client,http-proxy,socks5]
+ gtk? (
+ media-libs/giflib:=
+ media-libs/libpng:=
+ virtual/jpeg:0
+ x11-libs/gtk+:2
+ )
+"
+BDEPEND="
+ virtual/pkgconfig
+"
+DEPEND="
+ ${RDEPEND}
+ test? ( dev-util/cmocka )
+"
+RESTRICT="!test? ( test )"
+DOCS="
+ Changelog CREDITS README.md TODO
+"
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.3.0-CFLAGS.patch
+ "${FILESDIR}"/${PN}-1.3.0-gtk.patch
+ "${FILESDIR}"/${PN}-1.3.0-musl-stdint.patch
+ "${FILESDIR}"/${PN}-1.3.0-libwebsocket_compat.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ econf $(use_enable gtk display)
+}
+
+src_install() {
+ default
+
+ gzip -d "${ED}"/usr/share/man/man1/${PN}.1.gz || die
+
+ if use suid ; then
+ elog "marking the no-display driftnet as setuid root."
+ fowners root:wheel "/usr/bin/driftnet"
+ fperms 710 "/usr/bin/driftnet"
+ fperms u+s "/usr/bin/driftnet"
+ fi
+}
+
+pkg_postinst() {
+ fcaps \
+ cap_dac_read_search,cap_net_raw,cap_net_admin \
+ "${EROOT}"/usr/bin/driftnet
+}
diff --git a/net-analyzer/driftnet/driftnet-1.5.0.ebuild b/net-analyzer/driftnet/driftnet-1.5.0.ebuild
new file mode 100644
index 000000000000..3d673bf6ed90
--- /dev/null
+++ b/net-analyzer/driftnet/driftnet-1.5.0.ebuild
@@ -0,0 +1,78 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools fcaps
+
+DESCRIPTION="Watches network traffic and displays media from TCP streams observed"
+HOMEPAGE="https://chris.ex-parrot.com/driftnet/"
+SRC_URI="https://github.com/deiv/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm64 ppc -sparc x86"
+IUSE="debug gtk httpd suid test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ net-libs/libpcap
+ media-libs/libwebp:=
+ gtk? (
+ dev-libs/glib:2
+ media-libs/giflib:=
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ x11-libs/cairo
+ x11-libs/gtk+:3[X]
+ )
+ httpd? ( net-libs/libwebsockets:=[client,http-proxy,socks5] )
+"
+DEPEND="
+ ${RDEPEND}
+ test? ( dev-util/cmocka )
+"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.5.0-CFLAGS.patch
+ # merged in 1.6.0
+ "${FILESDIR}"/${PN}-1.5.0-missing_else.patch
+ # https://github.com/deiv/driftnet/pull/56.patch
+ "${FILESDIR}"/${PN}-1.5.0-fix_test.patch
+ "${FILESDIR}"/${PN}-1.5.0-use_uint.patch
+ # https://github.com/deiv/driftnet/pull/57.patch
+ "${FILESDIR}"/${PN}-1.5.0-libwebsocket_compat.patch
+)
+
+FILECAPS=( cap_dac_read_search,cap_net_raw,cap_net_admin usr/bin/driftnet )
+
+# EXTRA_DIST
+DOCS=( Changelog CREDITS )
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ local myeconfargs=(
+ $(use_enable debug)
+ $(use_enable gtk display)
+ $(use_enable httpd http-display)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+
+ gzip -d "${ED}"/usr/share/man/man1/${PN}.1.gz || die
+
+ if use suid ; then
+ elog "marking driftnet as setuid root."
+ fowners root:wheel "/usr/bin/driftnet"
+ fperms 710 "/usr/bin/driftnet"
+ fperms u+s "/usr/bin/driftnet"
+ fi
+}
diff --git a/net-analyzer/driftnet/driftnet-1.6.0.ebuild b/net-analyzer/driftnet/driftnet-1.6.0.ebuild
new file mode 100644
index 000000000000..cdcb75f4f5b9
--- /dev/null
+++ b/net-analyzer/driftnet/driftnet-1.6.0.ebuild
@@ -0,0 +1,78 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools fcaps
+
+DESCRIPTION="Watches network traffic and displays media from TCP streams observed"
+HOMEPAGE="https://chris.ex-parrot.com/driftnet/"
+SRC_URI="https://github.com/deiv/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm64 ppc -sparc x86"
+IUSE="debug gtk httpd suid test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ net-libs/libpcap
+ media-libs/libwebp:=
+ gtk? (
+ dev-libs/glib:2
+ media-libs/giflib:=
+ media-libs/libjpeg-turbo:=
+ media-libs/libpng:=
+ x11-libs/cairo
+ x11-libs/gtk+:3[X]
+ )
+ httpd? ( net-libs/libwebsockets:=[client,http-proxy,socks5] )
+"
+DEPEND="
+ ${RDEPEND}
+ test? ( dev-util/cmocka )
+"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ # Respect user flags
+ "${FILESDIR}"/${PN}-1.6.0-CFLAGS.patch
+ # https://github.com/deiv/driftnet/pull/56.patch
+ "${FILESDIR}"/${PN}-1.5.0-fix_test.patch
+ "${FILESDIR}"/${PN}-1.5.0-use_uint.patch
+ # https://github.com/deiv/driftnet/pull/57.patch
+ "${FILESDIR}"/${PN}-1.5.0-libwebsocket_compat.patch
+)
+
+FILECAPS=( cap_dac_read_search,cap_net_raw,cap_net_admin usr/bin/driftnet )
+
+# EXTRA_DIST
+DOCS=( Changelog CREDITS )
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ local myeconfargs=(
+ $(use_enable debug)
+ $(use_enable gtk display)
+ $(use_enable httpd http-display)
+ --htmldir="${EPREFIX}"/usr/share/driftnet/static-html
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+
+ gzip -d "${ED}"/usr/share/man/man1/${PN}.1.gz || die
+
+ if use suid ; then
+ elog "marking driftnet as setuid root."
+ fowners root:wheel "/usr/bin/driftnet"
+ fperms 710 "/usr/bin/driftnet"
+ fperms u+s "/usr/bin/driftnet"
+ fi
+}
diff --git a/net-analyzer/driftnet/files/driftnet-1.3.0-CFLAGS.patch b/net-analyzer/driftnet/files/driftnet-1.3.0-CFLAGS.patch
new file mode 100644
index 000000000000..2b25ed45833a
--- /dev/null
+++ b/net-analyzer/driftnet/files/driftnet-1.3.0-CFLAGS.patch
@@ -0,0 +1,21 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -68,12 +68,12 @@
+ ,
+ [enable_debug=yes])
+
+-if test "x$enable_debug" = xyes; then
+- CFLAGS="-O2 -g -DDEBUG"
+-else
+- CFLAGS="-O2 -DNDEBUG"
+-fi
+-#AM_CONDITIONAL(ENABLE_DEBUG, test "$enable_debug" = "yes")
++#if test "x$enable_debug" = xyes; then
++# CFLAGS="-O2 -g -DDEBUG"
++#else
++# CFLAGS="-O2 -DNDEBUG"
++#fi
++AM_CONDITIONAL(ENABLE_DEBUG, test "$enable_debug" = "yes")
+
+ #
+ # Checks for programs.
diff --git a/net-analyzer/driftnet/files/driftnet-1.3.0-gtk.patch b/net-analyzer/driftnet/files/driftnet-1.3.0-gtk.patch
new file mode 100644
index 000000000000..2a8a294e8dbe
--- /dev/null
+++ b/net-analyzer/driftnet/files/driftnet-1.3.0-gtk.patch
@@ -0,0 +1,13 @@
+--- a/src/options.h
++++ b/src/options.h
+@@ -32,10 +32,8 @@
+ char *audio_mpeg_player;
+ int mpeg_player_specified;
+ int newpfx;
+-#ifndef NO_DISPLAY_WINDOW
+ char *savedimgpfx;
+ int enable_gtk_display;
+-#endif
+ char *drop_username;
+ int list_interfaces;
+ int monitor_mode;
diff --git a/net-analyzer/driftnet/files/driftnet-1.3.0-libwebsocket_compat.patch b/net-analyzer/driftnet/files/driftnet-1.3.0-libwebsocket_compat.patch
new file mode 100644
index 000000000000..936dd10474a1
--- /dev/null
+++ b/net-analyzer/driftnet/files/driftnet-1.3.0-libwebsocket_compat.patch
@@ -0,0 +1,31 @@
+fix arguments to build with libwebsockets:0/20
+https://bugs.gentoo.org/962581
+PR pending for driftnet-1.5.0 uses another schema
+https://github.com/deiv/driftnet/pull/57.patch
+--- a/src/http_display/httpd.c
++++ b/src/http_display/httpd.c
+@@ -188,10 +188,22 @@ static void * http_server_dispatch(void *arg)
+ 0,
+ 0,
+ 0,
+- LWSMPRO_FILE, /* mount type is a directory in a filesystem */
++#if LWS_LIBRARY_VERSION_MAJOR >= 4 && LWS_LIBRARY_VERSION_MINOR > 3
++ 0, /* check cache always */
++#endif
++ LWSMPRO_FILE, /* mount type is a directory in a filesystem */
+ 1, /* strlen("/"), ie length of the mountpoint */
+ NULL,
+- { NULL, NULL } // sentinel
++#if LWS_LIBRARY_VERSION_MAJOR >= 4 && LWS_LIBRARY_VERSION_MINOR > 3
++ NULL, /* chroot_path */
++ NULL, /* working directory, default /tmp */
++ NULL, /* override the headers */
++ 0, /* keepalive_timeout */
++#endif
++#if LWS_LIBRARY_VERSION_MAJOR <= 4 && LWS_LIBRARY_VERSION_MINOR < 3
++ NULL, /* sentinel */
++ NULL, /* sentinel */
++#endif
+ };
+
+ memset(&info, 0, sizeof info);
diff --git a/net-analyzer/driftnet/files/driftnet-1.3.0-musl-stdint.patch b/net-analyzer/driftnet/files/driftnet-1.3.0-musl-stdint.patch
new file mode 100644
index 000000000000..7261bbc80e16
--- /dev/null
+++ b/net-analyzer/driftnet/files/driftnet-1.3.0-musl-stdint.patch
@@ -0,0 +1,113 @@
+https://bugs.gentoo.org/832419
+--- a/src/media/image.c
++++ b/src/media/image.c
+@@ -11,6 +11,7 @@
+
+ #include <stdio.h>
+ #include <stdlib.h> /* On many systems (Darwin...), stdio.h is a prerequisite. */
++#include <stdint.h>
+ #include <string.h>
+
+ #include <netinet/in.h> /* ntohl */
+@@ -288,7 +289,7 @@ unsigned char *find_jpeg_image(const unsigned char *data, const size_t len, unsi
+ unsigned char *find_png_eoi(unsigned char *buffer, const size_t len) {
+ unsigned char *end_data, *data, chunk_code[PNG_CODE_LEN + 1];
+ struct png_chunk chunk;
+- u_int32_t datalen;
++ uint32_t datalen;
+
+ /* Move past the PNG header */
+ data = (buffer + PNG_SIG_LEN);
+--- a/src/network/layer2.c
++++ b/src/network/layer2.c
+@@ -12,6 +12,7 @@
+
+ #include "compat/compat.h"
+
++#include <stdint.h>
+ #include <string.h>
+
+ #ifdef __FreeBSD__
+@@ -39,7 +40,7 @@
+ struct ethhdr {
+ unsigned char h_dest[ETH_ALEN];
+ unsigned char h_source[ETH_ALEN];
+- u_int16_t h_proto;
++ uint16_t h_proto;
+ } __attribute__((packed));
+ #endif
+
+@@ -55,20 +56,20 @@ struct ethhdr {
+ #endif
+
+ struct ieee80211_radiotap_header {
+- u_int8_t it_version; /* set to 0 */
+- u_int8_t it_pad;
+- u_int16_t it_len; /* entire length */
+- u_int32_t it_present; /* fields present */
++ uint8_t it_version; /* set to 0 */
++ uint8_t it_pad;
++ uint16_t it_len; /* entire length */
++ uint32_t it_present; /* fields present */
+ };
+
+ struct ieee80211_frame {
+- u_int16_t fc;
+- u_int16_t wi_duration;
+- u_int8_t wi_add1[6];
+- u_int8_t wi_add2[6];
+- u_int8_t wi_add3[6];
+- u_int16_t wi_sequenceControl;
+- // u_int8_t wi_add4[6];
++ uint16_t fc;
++ uint16_t wi_duration;
++ uint8_t wi_add1[6];
++ uint8_t wi_add2[6];
++ uint8_t wi_add3[6];
++ uint16_t wi_sequenceControl;
++ // uint8_t wi_add4[6];
+ //unsigned int qosControl:2;
+ //unsigned int frameBody[23124];
+ };
+@@ -89,13 +90,13 @@ struct frame_control {
+
+ /* SNAP LLC header format */
+ struct snap_header {
+- u_int8_t dsap;
+- u_int8_t ssap;
+- u_int8_t ctl;
+- u_int8_t org1;
+- u_int8_t org2;
+- u_int8_t org3;
+- u_int16_t ether_type; /* ethernet type */
++ uint8_t dsap;
++ uint8_t ssap;
++ uint8_t ctl;
++ uint8_t org1;
++ uint8_t org2;
++ uint8_t org3;
++ uint16_t ether_type; /* ethernet type */
+ };
+
+ /*
+--- a/src/network/layer3.c
++++ b/src/network/layer3.c
+@@ -12,6 +12,7 @@
+
+ #include "compat/compat.h"
+
++#include <stdint.h>
+ #include <string.h>
+ #include <assert.h>
+
+@@ -30,8 +31,8 @@
+ int layer3_find_tcp(const u_char *pkt, uint8_t nextproto, int * offset,
+ struct sockaddr * src, struct sockaddr * dst, struct tcphdr * tcp)
+ {
+- u_int16_t *sport = NULL;
+- u_int16_t *dport = NULL;
++ uint16_t *sport = NULL;
++ uint16_t *dport = NULL;
+
+ while (1) {
+ switch (nextproto) {
diff --git a/net-analyzer/driftnet/files/driftnet-1.5.0-CFLAGS.patch b/net-analyzer/driftnet/files/driftnet-1.5.0-CFLAGS.patch
new file mode 100644
index 000000000000..31f95ba00eda
--- /dev/null
+++ b/net-analyzer/driftnet/files/driftnet-1.5.0-CFLAGS.patch
@@ -0,0 +1,15 @@
+do not erase userflags
+--- a/configure.ac
++++ b/configure.ac
+@@ -81,9 +81,9 @@ AC_ARG_ENABLE([debug],
+ [enable_debug=yes])
+
+ if test "x$enable_debug" = xyes; then
+- CFLAGS="-O2 -g -DDEBUG"
++ CFLAGS="-g -DDEBUG $CFLAGS"
+ else
+- CFLAGS="-O2 -DNDEBUG"
++ CFLAGS="-DNDEBUG $CFLAGS"
+ fi
+ #AM_CONDITIONAL(ENABLE_DEBUG, test "$enable_debug" = "yes")
+
diff --git a/net-analyzer/driftnet/files/driftnet-1.5.0-fix_test.patch b/net-analyzer/driftnet/files/driftnet-1.5.0-fix_test.patch
new file mode 100644
index 000000000000..8853a5009120
--- /dev/null
+++ b/net-analyzer/driftnet/files/driftnet-1.5.0-fix_test.patch
@@ -0,0 +1,22 @@
+PR pending, commit to fix incompatible-pointer-types and missing include
+https://github.com/deiv/driftnet/pull/56.patch
+--- a/src/media/tests/test_unit.c
++++ b/src/media/tests/test_unit.c
+@@ -7,6 +7,8 @@
+ *
+ */
+
++#include "compat/compat.h"
++
+ #include <stdarg.h>
+ #include <stddef.h>
+ #include <setjmp.h>
+@@ -227,7 +229,7 @@ void test_dont_parse_other_formats(void** state)
+ }
+ }
+
+-void test_correct_media_drivers_for_mediatype_count()
++void test_correct_media_drivers_for_mediatype_count(void **state)
+ {
+ drivers_t* image_drivers = NULL;
+ drivers_t* audio_drivers = NULL;
diff --git a/net-analyzer/driftnet/files/driftnet-1.5.0-libwebsocket_compat.patch b/net-analyzer/driftnet/files/driftnet-1.5.0-libwebsocket_compat.patch
new file mode 100644
index 000000000000..e7d8a2c77864
--- /dev/null
+++ b/net-analyzer/driftnet/files/driftnet-1.5.0-libwebsocket_compat.patch
@@ -0,0 +1,36 @@
+PR pending : switch to a simplified configuration for httpd
+fix build with libwebsockets:0/20 #821427
+https://github.com/deiv/driftnet/pull/57.patch
+--- a/src/http_display/httpd.c
++++ b/src/http_display/httpd.c
+@@ -175,26 +175,10 @@ static void * http_server_dispatch(void *arg)
+ };
+
+ const struct lws_http_mount mount = {
+- (struct lws_http_mount *)NULL, /* linked-list pointer to next*/
+- "/", /* mountpoint in URL namespace on this vhost */
+- server_root, /* where to go on the filesystem for that */
+- "index.html", /* default filename if none given */
+- NULL,
+- NULL,
+- mime_types,
+- NULL,
+- 0,
+- 0,
+- 0,
+- 0,
+- 0,
+- 0,
+- LWSMPRO_FILE, /* mount type is a directory in a filesystem */
+- 1, /* strlen("/"), ie length of the mountpoint */
+- NULL,
+-#if LWS_LIBRARY_VERSION_MAJOR <= 4 && LWS_LIBRARY_VERSION_MINOR < 3
+- { NULL, NULL } // sentinel
+-#endif
++ .mountpoint = "/",
++ .origin = server_root,
++ .origin_protocol = LWSMPRO_FILE,
++ .mountpoint_len = 1,
+ };
+
+ memset(&info, 0, sizeof info);
diff --git a/net-analyzer/driftnet/files/driftnet-1.5.0-missing_else.patch b/net-analyzer/driftnet/files/driftnet-1.5.0-missing_else.patch
new file mode 100644
index 000000000000..45d5088f4ba0
--- /dev/null
+++ b/net-analyzer/driftnet/files/driftnet-1.5.0-missing_else.patch
@@ -0,0 +1,17 @@
+Origin: https://github.com/deiv/driftnet/pull/50
+From: Bastian Germann <bage@debian.org>
+Date: Sat, 7 Oct 2023 15:06:52 +0200
+Subject: Recover else clause in endianess if
+
+The else clause was included in the inner (GTK3) if clause in
+465a1ff68a (Add RGB byte ordering implementation in PEL related macros).
+--- a/src/display/img.h
++++ b/src/display/img.h
+@@ -69,6 +69,7 @@ typedef uint32_t pel;
+ # define GETB(p) ((chan)(((p) & (pel)0xff000000) >> 24))
+ # define GETA(p) ((chan)(((p) & (pel)0x000000ff) ))
+ #endif
++#else
+ # error "no endianness defined"
+ #endif
+
diff --git a/net-analyzer/driftnet/files/driftnet-1.5.0-use_uint.patch b/net-analyzer/driftnet/files/driftnet-1.5.0-use_uint.patch
new file mode 100644
index 000000000000..076f000cb54e
--- /dev/null
+++ b/net-analyzer/driftnet/files/driftnet-1.5.0-use_uint.patch
@@ -0,0 +1,89 @@
+PR pending, selected commit to use standard uint* instead of u_int*
+thus fix building w/ musl. rebased for 1.5.0
+https://github.com/deiv/driftnet/pull/56.patch
+--- a/src/media/image.c
++++ b/src/media/image.c
+@@ -290,7 +290,7 @@ unsigned char *find_jpeg_image(const unsigned char *data, const size_t len, unsi
+ unsigned char *find_png_eoi(unsigned char *buffer, const size_t len) {
+ unsigned char *end_data, *data, chunk_code[PNG_CODE_LEN + 1];
+ struct png_chunk chunk;
+- u_int32_t datalen;
++ uint32_t datalen;
+
+ /* Move past the PNG header */
+ data = (buffer + PNG_SIG_LEN);
+--- a/src/network/layer2.c
++++ b/src/network/layer2.c
+@@ -39,7 +39,7 @@
+ struct ethhdr {
+ unsigned char h_dest[ETH_ALEN];
+ unsigned char h_source[ETH_ALEN];
+- u_int16_t h_proto;
++ uint16_t h_proto;
+ } __attribute__((packed));
+ #endif
+
+@@ -55,19 +55,19 @@ struct ethhdr {
+ #endif
+
+ struct ieee80211_radiotap_header {
+- u_int8_t it_version; /* set to 0 */
+- u_int8_t it_pad;
+- u_int16_t it_len; /* entire length */
+- u_int32_t it_present; /* fields present */
++ uint8_t it_version; /* set to 0 */
++ uint8_t it_pad;
++ uint16_t it_len; /* entire length */
++ uint32_t it_present; /* fields present */
+ };
+
+ struct ieee80211_frame {
+- u_int16_t fc;
+- u_int16_t wi_duration;
+- u_int8_t wi_add1[6];
+- u_int8_t wi_add2[6];
+- u_int8_t wi_add3[6];
+- u_int16_t wi_sequenceControl;
++ uint16_t fc;
++ uint16_t wi_duration;
++ uint8_t wi_add1[6];
++ uint8_t wi_add2[6];
++ uint8_t wi_add3[6];
++ uint16_t wi_sequenceControl;
+ // u_int8_t wi_add4[6];
+ //unsigned int qosControl:2;
+ //unsigned int frameBody[23124];
+@@ -89,13 +89,13 @@ struct frame_control {
+
+ /* SNAP LLC header format */
+ struct snap_header {
+- u_int8_t dsap;
+- u_int8_t ssap;
+- u_int8_t ctl;
+- u_int8_t org1;
+- u_int8_t org2;
+- u_int8_t org3;
+- u_int16_t ether_type; /* ethernet type */
++ uint8_t dsap;
++ uint8_t ssap;
++ uint8_t ctl;
++ uint8_t org1;
++ uint8_t org2;
++ uint8_t org3;
++ uint16_t ether_type; /* ethernet type */
+ };
+
+ /*
+--- a/src/network/layer3.c
++++ b/src/network/layer3.c
+@@ -30,8 +30,8 @@
+ int layer3_find_tcp(const u_char *pkt, uint8_t nextproto, int * offset,
+ struct sockaddr * src, struct sockaddr * dst, struct tcphdr * tcp)
+ {
+- u_int16_t *sport = NULL;
+- u_int16_t *dport = NULL;
++ uint16_t *sport = NULL;
++ uint16_t *dport = NULL;
+
+ while (1) {
+ switch (nextproto) {
diff --git a/net-analyzer/driftnet/files/driftnet-1.6.0-CFLAGS.patch b/net-analyzer/driftnet/files/driftnet-1.6.0-CFLAGS.patch
new file mode 100644
index 000000000000..af80103870ee
--- /dev/null
+++ b/net-analyzer/driftnet/files/driftnet-1.6.0-CFLAGS.patch
@@ -0,0 +1,15 @@
+do not erase userflags
+--- a/configure.ac
++++ b/configure.ac
+@@ -80,9 +80,9 @@
+ [enable_debug=yes])
+
+ if test "x$enable_debug" = xyes; then
+- CFLAGS="-g -DDEBUG"
++ CFLAGS="-g -DDEBUG $CFLAGS"
+ else
+- CFLAGS="-O2 -DNDEBUG"
++ CFLAGS="-DNDEBUG $CFLAGS"
+ fi
+ #AM_CONDITIONAL(ENABLE_DEBUG, test "$enable_debug" = "yes")
+
diff --git a/net-analyzer/driftnet/metadata.xml b/net-analyzer/driftnet/metadata.xml
new file mode 100644
index 000000000000..a178046a1ae2
--- /dev/null
+++ b/net-analyzer/driftnet/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <use>
+ <flag name="httpd">Enable the HTTP/WebSockets server to display images</flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/dsniff/Manifest b/net-analyzer/dsniff/Manifest
new file mode 100644
index 000000000000..4c2721d5038c
--- /dev/null
+++ b/net-analyzer/dsniff/Manifest
@@ -0,0 +1,2 @@
+DIST dsniff_2.4b1+debian-34.debian.tar.xz 31148 BLAKE2B 09b605065d8e03ea5c2f9083420feca3a05d4453ca7a46f2886766f34aed23e3cb83d73f12dbb633c1142d187b66a5508b3c583582e1902d4957e3813ed9929a SHA512 f539d59d931acc7fba97f079a33301b415d6dc769bf2ca3f1b3bf0fcfdf9cfc3c2454e017f5c47d39bcc5f47b91f70f6e2abc8cdeae631aa72946eb84b6bebf5
+DIST dsniff_2.4b1+debian.orig.tar.gz 130220 BLAKE2B e6953a5bfc5331b030e1a5335987c51fa4cf2c644fc4e7ac9aefe17f52373a1f66ccef36c5d9136542f68a475350138b1f3e501bc9494a0fd4988c7c5a7b2eef SHA512 09c3a864f112f81b8fdf93436886b14eb8f603ec751b13f18cf027307f24098c018eacf98b3ae353731a0cf6f1c9cacfafbb534a0db8b9f0cc793e7515c41b5a
diff --git a/net-analyzer/dsniff/dsniff-2.4_beta1_p34.ebuild b/net-analyzer/dsniff/dsniff-2.4_beta1_p34.ebuild
new file mode 100644
index 000000000000..4aa1cdbcd003
--- /dev/null
+++ b/net-analyzer/dsniff/dsniff-2.4_beta1_p34.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic toolchain-funcs
+
+MY_PV="${PV/_beta/b}"
+MY_PV="${MY_PV/_p*/}"
+MY_PV="$(ver_rs 1 '.' "${MY_PV}")"
+# 2.4_beta1_p30 -> 2.4beta1-30
+MY_DEB_PV="$(ver_cut 1-2)$(ver_cut 3-4)-$(ver_cut 6)"
+
+DESCRIPTION="A collection of tools for network auditing and penetration testing"
+HOMEPAGE="https://monkey.org/~dugsong/dsniff/"
+SRC_URI="mirror://debian/pool/main/${PN::1}/${PN}/${PN}_${MY_PV}+debian.orig.tar.gz
+ mirror://debian/pool/main/${PN::1}/${PN}/${PN}_${MY_PV}+debian-${PV/*_p}.debian.tar.xz"
+S="${WORKDIR}/${P/_beta1*/}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="X"
+
+# There's a berkdb configure option but we get a build failure if
+# we try to disable it. Not clear how useful the package is
+# without it anyway.
+RDEPEND="
+ net-libs/libpcap
+ >=net-libs/libnet-1.1.2.1-r1
+ >=net-libs/libnids-1.21
+ net-libs/libnsl:=
+ net-libs/libtirpc:=
+ dev-libs/openssl:=
+ >=sys-libs/db-4:=
+ X? ( x11-libs/libXmu )
+"
+DEPEND="
+ ${DEPEND}
+ net-libs/rpcsvc-proto
+"
+# Calls rpcgen during build
+BDEPEND="net-libs/rpcsvc-proto"
+
+PATCHES=(
+ "${WORKDIR}"/debian/patches/
+ "${FILESDIR}"/${PN}-2.4_beta1_p30-httppostfix.patch
+ "${FILESDIR}"/${PN}-2.4_beta1_p30-libdir-configure.patch
+ "${FILESDIR}"/${PN}-2.4_beta1_p30-respect-AR.patch
+)
+
+src_prepare() {
+ default
+
+ mv configure.{in,ac} || die
+ eautoreconf
+}
+
+src_configure() {
+ # bug #946622
+ append-flags -std=gnu17
+ # Opt_dns clash (not worth reporting/patching; we already have
+ # a huge heap of patches from Debian)
+ filter-lto
+
+ tc-export AR
+
+ econf \
+ $(use_with X x)
+}
+
+src_compile() {
+ emake CC="$(tc-getCC)"
+}
+
+src_install() {
+ emake install install_prefix="${D}"
+
+ dodir /etc/dsniff
+ cp "${ED}"/usr/share/dsniff/{dnsspoof.hosts,dsniff.{magic,services}} \
+ "${ED}"/etc/dsniff/ || die
+ dodoc CHANGES README TODO
+}
diff --git a/net-analyzer/dsniff/files/dsniff-2.4_beta1_p30-httppostfix.patch b/net-analyzer/dsniff/files/dsniff-2.4_beta1_p30-httppostfix.patch
new file mode 100644
index 000000000000..487e45321662
--- /dev/null
+++ b/net-analyzer/dsniff/files/dsniff-2.4_beta1_p30-httppostfix.patch
@@ -0,0 +1,21 @@
+Allow mixed case in some fields.
+--- a/decode_http.c
++++ b/decode_http.c
+@@ -139,14 +139,14 @@
+ host = p;
+ }
+ else if (req[0] == 'P') {
+- if (strncmp(p, "Content-type: ", 14) == 0) {
+- if (strncmp(p + 14, "application/"
++ if (strncasecmp(p, "Content-type: ", 14) == 0) {
++ if (strncasecmp(p + 14, "application/"
+ "x-www-form-urlencoded",
+ 33) != 0) {
+ query = NULL;
+ }
+ }
+- else if (strncmp(p, "Content-length: ", 16) == 0) {
++ else if (strncasecmp(p, "Content-length: ", 16) == 0) {
+ p += 16;
+ i = atoi(p);
+ if ((msg = buf_tok(&inbuf, NULL, i)) == NULL)
diff --git a/net-analyzer/dsniff/files/dsniff-2.4_beta1_p30-libdir-configure.patch b/net-analyzer/dsniff/files/dsniff-2.4_beta1_p30-libdir-configure.patch
new file mode 100644
index 000000000000..a2309cd836e8
--- /dev/null
+++ b/net-analyzer/dsniff/files/dsniff-2.4_beta1_p30-libdir-configure.patch
@@ -0,0 +1,105 @@
+Respect libdir rather than always using 'lib'.
+--- a/configure.in
++++ b/configure.in
+@@ -127,13 +127,13 @@ AC_ARG_WITH(db,
+ if test -f ${dir}/include/db_185.h; then
+ AC_DEFINE(HAVE_DB_185_H)
+ DBINC="-I${dir}/include"
+- DBLIB="-L${dir}/lib -ldb"
++ DBLIB="-L${dir}/${libdir#${prefix}} -ldb"
+ have_db=yes
+ break
+ elif test -f ${dir}/include/db.h; then
+ AC_DEFINE(HAVE_DB_H)
+ DBINC="-I${dir}/include"
+- DBLIB="-L${dir}/lib -ldb"
++ DBLIB="-L${dir}/${libdir#${prefix}} -ldb"
+ have_db=yes
+ break
+ fi
+@@ -178,11 +178,11 @@ AC_ARG_WITH(libpcap,
+ PCAPLIB="-L$withval -lpcap"
+ elif test -f $withval/include/pcap.h -a \
+ -f $withval/include/net/bpf.h -a \
+- -f $withval/lib/libpcap.a; then
++ -f $withval/${libdir#${prefix}}/libpcap.a; then
+ owd=`pwd`
+ if cd $withval; then withval=`pwd`; cd $owd; fi
+ PCAPINC="-I$withval/include"
+- PCAPLIB="-L$withval/lib -lpcap"
++ PCAPLIB="-L$withval/${libdir#${prefix}} -lpcap"
+ else
+ AC_ERROR(pcap.h, net/bpf.h, or libpcap.a not found in $withval)
+ fi
+@@ -190,7 +190,7 @@ AC_ARG_WITH(libpcap,
+ esac ],
+ [ if test -f ${prefix}/include/pcap.h; then
+ PCAPINC="-I${prefix}/include"
+- PCAPLIB="-L${prefix}/lib -lpcap"
++ PCAPLIB="-L${prefix}/${libdir#${prefix}} -lpcap"
+ elif test -f /usr/include/pcap/pcap.h; then
+ PCAPINC="-I/usr/include/pcap"
+ PCAPLIB="-lpcap"
+@@ -226,7 +226,7 @@ AC_ARG_WITH(libnet,
+ CFLAGS="$CFLAGS `libnet-config --defines`"
+ fi
+ LNETINC="-I$withval/include"
+- LNETLIB="-L$withval/lib -lnet"
++ LNETLIB="-L$withval/${libdir#${prefix}} -lnet"
+ else
+ AC_ERROR(libnet.h or libnet.a not found in $withval)
+ fi
+@@ -235,7 +235,7 @@ AC_ARG_WITH(libnet,
+ [ if test -f ${prefix}/include/libnet.h; then
+ CFLAGS="$CFLAGS `${prefix}/bin/libnet-config --defines`"
+ LNETINC="-I${prefix}/include"
+- LNETLIB="-L${prefix}/lib -lnet"
++ LNETLIB="-L${prefix}/${libdir#${prefix}} -lnet"
+ elif test -f /usr/include/libnet.h; then
+ CFLAGS="$CFLAGS `libnet-config --defines`"
+ LNETLIB="-lnet"
+@@ -267,7 +267,7 @@ AC_ARG_WITH(libnids,
+ owd=`pwd`
+ if cd $withval; then withval=`pwd`; cd $owd; fi
+ NIDSINC="-I$withval/include"
+- NIDSLIB="-L$withval/lib -lnids"
++ NIDSLIB="-L$withval/${libdir#${prefix}} -lnids"
+ else
+ AC_ERROR(nids.h or libnids.a not found in $withval)
+ fi
+@@ -275,7 +275,7 @@ AC_ARG_WITH(libnids,
+ esac ],
+ [ if test -f ${prefix}/include/nids.h; then
+ NIDSINC="-I${prefix}/include"
+- NIDSLIB="-L${prefix}/lib -lnids"
++ NIDSLIB="-L${prefix}/${libdir#${prefix}} -lnids"
+ elif test -f /usr/include/nids.h; then
+ NIDSLIB="-lnids"
+ else
+@@ -309,11 +309,11 @@ AC_ARG_WITH(openssl,
+ SSLINC="-I$withval/include"
+ SSLLIB="-L$withval -lssl -lcrypto"
+ elif test -f $withval/include/openssl/ssl.h -a \
+- -f $withval/lib/libssl.a; then
++ -f $withval/${libdir#${prefix}}/libssl.a; then
+ owd=`pwd`
+ if cd $withval; then withval=`pwd`; cd $owd; fi
+ SSLINC="-I$withval/include"
+- SSLLIB="-L$withval/lib -lssl -lcrypto"
++ SSLLIB="-L$withval/${libdir#${prefix}} -lssl -lcrypto"
+ else
+ AC_ERROR(ssl.h or libssl.a not found in $withval)
+ fi
+@@ -322,10 +322,10 @@ AC_ARG_WITH(openssl,
+ esac ],
+ [ if test -f ${prefix}/include/openssl/ssl.h; then
+ SSLINC="-I${prefix}/include"
+- SSLLIB="-L${prefix}/lib -lssl -lcrypto"
++ SSLLIB="-L${prefix}/${libdir#${prefix}} -lssl -lcrypto"
+ elif test -f ${prefix}/ssl/include/openssl/ssl.h; then
+ SSLINC="-I${prefix}/ssl/include"
+- SSLLIB="-L${prefix}/ssl/lib -lssl -lcrypto"
++ SSLLIB="-L${prefix}/ssl/${libdir#${prefix}} -lssl -lcrypto"
+ elif test -f /usr/include/openssl/ssl.h; then
+ SSLLIB="-lssl -lcrypto"
+ else
diff --git a/net-analyzer/dsniff/files/dsniff-2.4_beta1_p30-respect-AR.patch b/net-analyzer/dsniff/files/dsniff-2.4_beta1_p30-respect-AR.patch
new file mode 100644
index 000000000000..fd2235fada7d
--- /dev/null
+++ b/net-analyzer/dsniff/files/dsniff-2.4_beta1_p30-respect-AR.patch
@@ -0,0 +1,22 @@
+Respect the 'AR' environment variable.
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -103,7 +103,7 @@ $(LIBOBJS):
+ $(CC) $(CFLAGS) $(CPPFLAGS) $(INCS) -c $(srcdir)/missing/$*.c
+
+ libmissing.a: $(LIBOBJS)
+- ar -cr $@ $(LIBOBJS)
++ $(AR) -cr $@ $(LIBOBJS)
+ $(RANLIB) $@
+
+ dsniff: $(HDRS) $(SRCS) $(OBJS) libmissing.a
+--- a/configure.in
++++ b/configure.in
+@@ -17,6 +17,7 @@ dnl Checks for programs.
+ AC_PROG_CC
+ AC_PROG_INSTALL
+ AC_PROG_RANLIB
++AC_CHECK_PROG(AR,ar,ar)
+
+ dnl Checks for header files.
+ AC_PATH_XTRA
diff --git a/net-analyzer/dsniff/metadata.xml b/net-analyzer/dsniff/metadata.xml
new file mode 100644
index 000000000000..ea5bf4bc8a43
--- /dev/null
+++ b/net-analyzer/dsniff/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <longdescription>
+ dsniff is a collection of tools for network auditing and penetration testing.
+ dsniff, filesnarf, mailsnarf, msgsnarf, urlsnarf, and webspy passively monitor a
+ network for interesting data (passwords, e-mail, files, etc.). arpspoof,
+ dnsspoof, and macof facilitate the interception of network traffic normally
+ unavailable to an attacker (e.g, due to layer-2 switching). sshmitm and webmitm
+ implement active monkey-in-the-middle attacks against redirected SSH and HTTPS
+ sessions by exploiting weak bindings in ad-hoc PKI.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/etherape/Manifest b/net-analyzer/etherape/Manifest
new file mode 100644
index 000000000000..8680e5082481
--- /dev/null
+++ b/net-analyzer/etherape/Manifest
@@ -0,0 +1,2 @@
+DIST etherape-0.9.20.tar.gz 1480790 BLAKE2B 22682d1b7b72206519d0ad32855f558a718bed83674753fcc923419845ac8b97ce970c1121f49eac9b910e10675b5397e5d3a16701af5bc9b78187baee455ccf SHA512 1dbfbb0efff7871a4b78ca90f81ac2155b57ace217b72e443cdc8b3d3807f7ab881c876bec12d93673500026a9dbf1111417a419891df62230e664af9b54b636
+DIST etherape-0.9.21.tar.gz 1505682 BLAKE2B 840a8ffb7173d85973f9ee42e2433020924682d11d4ad51de5ab90128bece92e3c1b682be90b87c6cf628f72dc41ddc6841e804ae947d0d286679729b26224d8 SHA512 0fccf216eff11aae69fa59da810f3c6364e0e94ea8ec538a73a9ba25d7f66d1269bfa7f55b94d5559098a036a4ba85910e373f2815da9f68252536a5e9a783ea
diff --git a/net-analyzer/etherape/etherape-0.9.20.ebuild b/net-analyzer/etherape/etherape-0.9.20.ebuild
new file mode 100644
index 000000000000..be8d1e3d9567
--- /dev/null
+++ b/net-analyzer/etherape/etherape-0.9.20.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="A graphical network monitor for Unix modeled after etherman"
+HOMEPAGE="https://etherape.sourceforge.io/"
+SRC_URI="https://downloads.sourceforge.net/etherape/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm64 ppc ppc64 ~sparc x86"
+
+RDEPEND="
+ dev-libs/glib:2
+ dev-libs/popt
+ net-libs/libpcap
+ x11-libs/goocanvas:2.0
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ app-text/docbook-xml-dtd:4.1.2
+ app-text/yelp-tools
+ >=sys-devel/gettext-0.11.5
+ virtual/pkgconfig
+"
diff --git a/net-analyzer/etherape/etherape-0.9.21.ebuild b/net-analyzer/etherape/etherape-0.9.21.ebuild
new file mode 100644
index 000000000000..194bb1a10983
--- /dev/null
+++ b/net-analyzer/etherape/etherape-0.9.21.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="A graphical network monitor for Unix modeled after etherman"
+HOMEPAGE="https://etherape.sourceforge.io/"
+SRC_URI="https://downloads.sourceforge.net/etherape/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm64 ppc ppc64 ~sparc x86"
+
+RDEPEND="
+ dev-libs/glib:2
+ dev-libs/popt
+ net-libs/libpcap
+ x11-libs/goocanvas:2.0
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ app-text/docbook-xml-dtd:4.1.2
+ app-text/yelp-tools
+ >=sys-devel/gettext-0.11.5
+ virtual/pkgconfig
+"
diff --git a/net-analyzer/etherape/metadata.xml b/net-analyzer/etherape/metadata.xml
new file mode 100644
index 000000000000..ba0b7a1df908
--- /dev/null
+++ b/net-analyzer/etherape/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <longdescription lang="en">
+ EtherApe is a graphical network monitor for Unix modeled after etherman.
+ Featuring link layer, ip and TCP modes, it displays network activity
+ graphically. Hosts and links change in size with traffic. Color coded
+ protocols display. It supports Ethernet, FDDI, Token Ring, ISDN, PPP
+ and SLIP devices. It can filter traffic to be shown, and can read
+ traffic from a file as well as live from the network.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/ethloop/Manifest b/net-analyzer/ethloop/Manifest
new file mode 100644
index 000000000000..9e1c0e8b055f
--- /dev/null
+++ b/net-analyzer/ethloop/Manifest
@@ -0,0 +1 @@
+DIST ethloop10.tgz 3912 BLAKE2B 4cd0ad93693afb2302627b9fcbefa94eefec3d29c55e583c5126aed9cfb20aa7a2d68834fa138debaf767972e7e898245d7297567b322953e1df03b3817a5609 SHA512 82ac0114d0d539f5c057101e1e1f0e2eac32e0bd482bd62e6305f7c4863d0776dcff7bc85167dbcfb136d0b430c9008241c2c0250713beb2703cb052b9b71e63
diff --git a/net-analyzer/ethloop/ethloop-10-r4.ebuild b/net-analyzer/ethloop/ethloop-10-r4.ebuild
new file mode 100644
index 000000000000..dc5653f727a8
--- /dev/null
+++ b/net-analyzer/ethloop/ethloop-10-r4.ebuild
@@ -0,0 +1,28 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+DESCRIPTION="Local simulator for testing Linux QoS disciplines"
+HOMEPAGE="http://luxik.cdi.cz/~devik/qos/ethloop/"
+SRC_URI="http://luxik.cdi.cz/~devik/qos/${PN}/${PN}${PV}.tgz"
+S="${WORKDIR}"/${PN}
+
+LICENSE="all-rights-reserved"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc x86"
+RESTRICT="mirror bindist"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-misc.patch
+)
+
+src_compile() {
+ emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}"
+}
+
+src_install() {
+ dosbin ethloop
+}
diff --git a/net-analyzer/ethloop/files/ethloop-10-misc.patch b/net-analyzer/ethloop/files/ethloop-10-misc.patch
new file mode 100644
index 000000000000..a866386a7006
--- /dev/null
+++ b/net-analyzer/ethloop/files/ethloop-10-misc.patch
@@ -0,0 +1,65 @@
+--- a/ethloop.c
++++ b/ethloop.c
+@@ -1,5 +1,7 @@
+ /* vim: cin sw=4 ts=4
+ */
++#include <arpa/inet.h> /* htons() */
++#include <sys/types.h> /* recv() */
+ #include <sys/socket.h>
+ #include <sys/ioctl.h>
+ #include <sys/poll.h>
+@@ -13,6 +15,7 @@
+ #include <stdlib.h>
+ #include <sys/time.h>
+ #include <signal.h>
++#include <string.h>
+
+ int sock;
+
+@@ -133,11 +136,11 @@
+ int recv_raw(int tmo)
+ {
+ struct pollfd pf = {sock,POLLIN,0};
+- int r; unsigned short proto;
++ ssize_t r;
+ if(poll(&pf,1,tmo) <= 0) return 0;
+- r = recv(sock,&buf,1550,0);
++ r = recv(sock,&buf,sizeof(buf),0);
+ if (r <= 0) {
+- printf("error recv (%d)\n",r);
++ printf("error recv (%ld)\n",r);
+ return 0;
+ }
+ if (ntohs(buf.proto) != ETH_P_CUST) {
+@@ -239,10 +242,10 @@
+ }
+ }
+
+-main(int c,char *av[])
++int main(int c,char *av[])
+ {
+- unsigned long av_k1=0,av_k2=0,t_k1=0,t_k2=0;
+- unsigned long av_k3=0,av_k4=0,t_k3=0,t_k4=0;
++ unsigned long av_k1=0,av_k2=0;
++ unsigned long av_k3=0,av_k4=0;
+ int x,tmo,flow,diff,lcheck = 0,lwrite = 0,i,n;
+ struct flowtab *fp;
+ sock = socket(PF_PACKET,SOCK_RAW,htons(ETH_P_ALL));
+@@ -309,7 +312,7 @@
+ /* write stats every .5 second */
+ if (us - ALIGN(lwrite,LOGTIME) < LOGTIME) continue;
+ lwrite = us;
+- fprintf(stderr,"store %d at %d ms\n",slog_cnt,us/1000);
++ fprintf(stderr,"store %d at %ld ms\n",slog_cnt,us/1000);
+ for (fp = ftab,i=0;i<FLOWS;fp++,i++) {
+ stp = slog + slog_cnt;
+ stp->av_delay[i] = fp->av_delay/EWMAC;
+@@ -338,7 +341,7 @@
+ printf("%d.%d",(i+1)/2,(i&1)?0:5);
+ for (flow = 0; flow <= maxflow; flow++) {
+ fp = ftab + flow;
+- printf(" %d %d %d %d",stp->av_wrate[flow],
++ printf(" %ld %ld %ld %ld",stp->av_wrate[flow],
+ stp->av_rate[flow], stp->av_delay[flow]/1000,
+ stp->av_jitter[flow]);
+ }
diff --git a/net-analyzer/ethloop/metadata.xml b/net-analyzer/ethloop/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/ethloop/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/ettercap/Manifest b/net-analyzer/ettercap/Manifest
new file mode 100644
index 000000000000..232013c7ec67
--- /dev/null
+++ b/net-analyzer/ettercap/Manifest
@@ -0,0 +1 @@
+DIST ettercap-0.8.4.1.tar.gz 5810125 BLAKE2B f3a0bb16e55599301da607252e33db2bb8d477739bab17f1f5e8118352277cf94060aa662a1c1c7d3b2802dc416ae9887b20863c20cfe1f128620b6331f2a725 SHA512 34387ac0b37f8f1dee9d129af075c6995be650cbb8c3e31863c6dac53848aa9221c0ecca254aee9d20bc90e31aeedbf16652317ef3dd16a6a40c26eb54ce722a
diff --git a/net-analyzer/ettercap/ettercap-0.8.4.1.ebuild b/net-analyzer/ettercap/ettercap-0.8.4.1.ebuild
new file mode 100644
index 000000000000..97abd8739187
--- /dev/null
+++ b/net-analyzer/ettercap/ettercap-0.8.4.1.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake xdg
+
+DESCRIPTION="Suite for man in the middle attacks"
+HOMEPAGE="https://github.com/Ettercap/ettercap"
+
+LICENSE="GPL-2+"
+SLOT="0"
+
+if [[ ${PV} == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/Ettercap/${PN}.git"
+else
+ SRC_URI="https://github.com/Ettercap/${PN}/releases/download/v${PV}/${P}.tar.gz"
+ KEYWORDS="~alpha amd64 arm ppc ppc64 ~sparc x86"
+fi
+
+IUSE="doc geoip gtk ipv6 ncurses +plugins test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-libs/libbsd
+ dev-libs/libpcre2:=
+ dev-libs/openssl:=
+ net-libs/libnet:1.1
+ >=net-libs/libpcap-0.8.1
+ virtual/zlib:=
+ geoip? ( dev-libs/libmaxminddb )
+ gtk? (
+ >=app-accessibility/at-spi2-core-2.46.0
+ >=dev-libs/glib-2.2.2:2
+ media-libs/freetype
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf:2
+ >=x11-libs/gtk+-3.12.0:3
+ >=x11-libs/pango-1.2.3
+ )
+ ipv6? ( >=net-libs/libnet-1.1.5:1.1 )
+ ncurses? ( >=sys-libs/ncurses-5.3:= )
+ plugins? ( >=net-misc/curl-7.26.0 )
+"
+DEPEND="
+ app-alternatives/yacc
+ app-alternatives/lex
+"
+BDEPEND="
+ doc? (
+ app-text/ghostscript-gpl
+ sys-apps/groff
+ )
+ test? ( dev-libs/check )
+"
+
+src_prepare() {
+ sed -i "s:Release:Release Gentoo:" CMakeLists.txt || die
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DENABLE_CURSES="$(usex ncurses)"
+ -DENABLE_PLUGINS="$(usex plugins)"
+ -DENABLE_IPV6="$(usex ipv6)"
+ -DENABLE_TESTS="$(usex test)"
+ -DENABLE_PDF_DOCS="$(usex doc)"
+ -DENABLE_GEOIP="$(usex geoip)"
+ -DBUNDLED_LIBS=OFF
+ -DSYSTEM_LIBS=ON
+ -DINSTALL_SYSCONFDIR="${EPREFIX}"/etc
+ )
+
+ if use gtk ; then
+ mycmakeargs+=(-DGTK_BUILD_TYPE=GTK3 -DENABLE_GTK=ON)
+ else
+ mycmakeargs+=(-DINSTALL_DESKTOP=OFF)
+ fi
+
+ cmake_src_configure
+}
+
+pkg_postinst() {
+ xdg_desktop_database_update
+ xdg_icon_cache_update
+}
+
+pkg_postrm() {
+ xdg_desktop_database_update
+ xdg_icon_cache_update
+}
diff --git a/net-analyzer/ettercap/ettercap-9999.ebuild b/net-analyzer/ettercap/ettercap-9999.ebuild
new file mode 100644
index 000000000000..3473a53cea2b
--- /dev/null
+++ b/net-analyzer/ettercap/ettercap-9999.ebuild
@@ -0,0 +1,93 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake xdg
+
+DESCRIPTION="Suite for man in the middle attacks"
+HOMEPAGE="https://github.com/Ettercap/ettercap"
+
+LICENSE="GPL-2+"
+SLOT="0"
+
+if [[ ${PV} == 9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/Ettercap/${PN}.git"
+else
+ SRC_URI="https://github.com/Ettercap/${PN}/releases/download/v${PV}/${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~ppc ~ppc64 ~sparc ~x86"
+fi
+
+IUSE="doc geoip gtk ipv6 ncurses +plugins test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ dev-libs/libbsd
+ dev-libs/libpcre2:=
+ dev-libs/openssl:=
+ net-libs/libnet:1.1
+ >=net-libs/libpcap-0.8.1
+ virtual/zlib:=
+ geoip? ( dev-libs/libmaxminddb )
+ gtk? (
+ >=app-accessibility/at-spi2-core-2.46.0
+ >=dev-libs/glib-2.2.2:2
+ media-libs/freetype
+ x11-libs/cairo
+ x11-libs/gdk-pixbuf:2
+ >=x11-libs/gtk+-3.12.0:3
+ >=x11-libs/pango-1.2.3
+ )
+ ipv6? ( >=net-libs/libnet-1.1.5:1.1 )
+ ncurses? ( >=sys-libs/ncurses-5.3:= )
+ plugins? ( >=net-misc/curl-7.26.0 )
+"
+DEPEND="
+ app-alternatives/yacc
+ app-alternatives/lex
+"
+BDEPEND="
+ doc? (
+ app-text/ghostscript-gpl
+ sys-apps/groff
+ )
+ test? ( dev-libs/check )
+"
+
+src_prepare() {
+ sed -i "s:Release:Release Gentoo:" CMakeLists.txt || die
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DENABLE_CURSES="$(usex ncurses)"
+ -DENABLE_PLUGINS="$(usex plugins)"
+ -DENABLE_IPV6="$(usex ipv6)"
+ -DENABLE_TESTS="$(usex test)"
+ -DENABLE_PDF_DOCS="$(usex doc)"
+ -DENABLE_GEOIP="$(usex geoip)"
+ -DBUNDLED_LIBS=OFF
+ -DSYSTEM_LIBS=ON
+ -DINSTALL_SYSCONFDIR="${EPREFIX}"/etc
+ )
+
+ if use gtk ; then
+ mycmakeargs+=(-DGTK_BUILD_TYPE=GTK3 -DENABLE_GTK=ON)
+ else
+ mycmakeargs+=(-DINSTALL_DESKTOP=OFF)
+ fi
+
+ cmake_src_configure
+}
+
+pkg_postinst() {
+ xdg_desktop_database_update
+ xdg_icon_cache_update
+}
+
+pkg_postrm() {
+ xdg_desktop_database_update
+ xdg_icon_cache_update
+}
diff --git a/net-analyzer/ettercap/metadata.xml b/net-analyzer/ettercap/metadata.xml
new file mode 100644
index 000000000000..ec2c2dae129e
--- /dev/null
+++ b/net-analyzer/ettercap/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>zerochaos@gentoo.org</email>
+ <name>Rick Farina</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>ago@gentoo.org</email>
+ <name>Agostino Sarubbo</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <use>
+ <flag name="plugins">Install ettercap plugins (et_*.so)</flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/fail2ban/Manifest b/net-analyzer/fail2ban/Manifest
new file mode 100644
index 000000000000..a9e07e8f972d
--- /dev/null
+++ b/net-analyzer/fail2ban/Manifest
@@ -0,0 +1 @@
+DIST fail2ban-1.1.0.tar.gz 603854 BLAKE2B f7c2d3a1e5b5cdca1f26d92cefe75958bb61b87ad1cf316380b91527c96f3261e5665478c5fbb053f6419956dda934c8ef3ce837af2819b1b1c8d162246fc15f SHA512 9bff7b9c41e58a953901800468e5c4153c9db6af01c7eb18111ad8620b40d03a0771020472fb759b2809d250e2bb45471e6c7e8283e72ea48290ecf7bf921821
diff --git a/net-analyzer/fail2ban/fail2ban-1.1.0-r6.ebuild b/net-analyzer/fail2ban/fail2ban-1.1.0-r6.ebuild
new file mode 100644
index 000000000000..8d90ec056c05
--- /dev/null
+++ b/net-analyzer/fail2ban/fail2ban-1.1.0-r6.ebuild
@@ -0,0 +1,153 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit bash-completion-r1 edo python-single-r1 systemd tmpfiles
+
+DESCRIPTION="Scans log files and bans IPs that show malicious signs"
+HOMEPAGE="https://www.fail2ban.org/"
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/fail2ban/fail2ban"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/fail2ban/fail2ban/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="selinux systemd test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep '
+ dev-python/pyasyncore[${PYTHON_USEDEP}]
+ dev-python/pyasynchat[${PYTHON_USEDEP}]
+ ' 3.12)
+ virtual/logger
+ virtual/mta
+ selinux? ( sec-policy/selinux-fail2ban )
+ systemd? (
+ $(python_gen_cond_dep '
+ dev-python/python-systemd[${PYTHON_USEDEP}]
+ ')
+ )
+"
+BDEPEND="
+ $(python_gen_cond_dep '
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ')
+ test? (
+ $(python_gen_cond_dep '
+ dev-python/aiosmtpd[${PYTHON_USEDEP}]
+ ')
+ )
+"
+
+DOCS=( ChangeLog DEVELOP README.md THANKS TODO doc/run-rootless.txt )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.11.2-adjust-apache-logs-paths.patch
+ "${FILESDIR}"/${PN}-1.0.2-umask-tests.patch
+ "${FILESDIR}"/${PN}-1.1.0-openssh-9.8.patch
+ "${FILESDIR}"/${PN}-1.1.0-openssh-9.8-fixups.patch
+ "${FILESDIR}"/${PN}-1.1.0-openrc-nftables.patch
+ "${FILESDIR}"/${PN}-1.1.0-systemd-order.patch
+ "${FILESDIR}"/${PN}-1.1.0-postfix-pref.patch
+ "${FILESDIR}"/${PN}-1.1.0-postfix-ddos.patch
+ "${FILESDIR}"/${PN}-1.1.0-sshd-ddos.patch
+)
+
+src_prepare() {
+ default
+
+ # Replace /var/run with /run, but not in the top source directory
+ find . -mindepth 2 -type f -exec \
+ sed -i -e 's|/var\(/run/fail2ban\)|\1|g' {} + || die
+}
+
+src_compile() {
+ edo ${EPYTHON} setup.py build
+}
+
+src_test() {
+ # Skip testRepairDb for bug #907348 (didn't always fail..)
+ # https://github.com/fail2ban/fail2ban/issues/3586
+ bin/fail2ban-testcases \
+ --no-network \
+ --ignore databasetestcase.DatabaseTest.testRepairDb \
+ --verbosity=4 || die "Tests failed with ${EPYTHON}"
+
+ # Workaround for bug #790251
+ rm -rf fail2ban.egg-info || die
+}
+
+src_install() {
+ edo ${EPYTHON} setup.py install --prefix="${EPREFIX}/usr" --root="${D}"
+ python_fix_shebang "${ED}"/usr/bin
+ python_optimize
+
+ einstalldocs
+
+ rm -rf "${ED}"/usr/share/doc/${PN} "${ED}"/run || die
+
+ newconfd files/fail2ban-openrc.conf ${PN}
+ # These two are placed in the ${BUILD_DIR} after being "built"
+ # in install_scripts().
+ newinitd "${S}"/build/fail2ban-openrc.init ${PN}
+ systemd_dounit "${S}"/build/${PN}.service
+
+ dotmpfiles files/${PN}-tmpfiles.conf
+
+ doman man/*.{1,5}
+
+ # Use INSTALL_MASK if you do not want to touch /etc/logrotate.d.
+ # See http://thread.gmane.org/gmane.linux.gentoo.devel/35675
+ insinto /etc/logrotate.d
+ newins files/${PN}-logrotate ${PN}
+
+ keepdir /var/lib/${PN}
+
+ newbashcomp files/bash-completion ${PN}-client
+ bashcomp_alias ${PN}-client ${PN}-server ${PN}-regex
+}
+
+pkg_preinst() {
+ has_version "<${CATEGORY}/${PN}-0.7"
+ previous_less_than_0_7=$?
+}
+
+pkg_postinst() {
+ tmpfiles_process ${PN}-tmpfiles.conf
+
+ if [[ ${previous_less_than_0_7} == 0 ]] ; then
+ elog
+ elog "Configuration files are now in /etc/fail2ban/"
+ elog "You probably have to manually update your configuration"
+ elog "files before restarting Fail2Ban!"
+ elog
+ elog "Fail2Ban is not installed under /usr/lib anymore. The"
+ elog "new location is under /usr/share."
+ elog
+ elog "You are upgrading from version 0.6.x, please see:"
+ elog "http://www.fail2ban.org/wiki/index.php/HOWTO_Upgrade_from_0.6_to_0.8"
+ fi
+
+ if ! has_version dev-python/pyinotify ; then
+ elog "For most jail.conf configurations, it is recommended you install"
+ elog "dev-python/pyinotify to control how log file modifications are detected"
+ fi
+
+ if ! has_version dev-lang/python[sqlite] ; then
+ elog "If you want to use ${PN}'s persistent database, then reinstall"
+ elog "dev-lang/python with USE=sqlite. If you do not use the"
+ elog "persistent database feature, then you should set"
+ elog "dbfile = :memory: in fail2ban.conf accordingly."
+ fi
+}
diff --git a/net-analyzer/fail2ban/fail2ban-1.1.0-r7.ebuild b/net-analyzer/fail2ban/fail2ban-1.1.0-r7.ebuild
new file mode 100644
index 000000000000..11acdf456d92
--- /dev/null
+++ b/net-analyzer/fail2ban/fail2ban-1.1.0-r7.ebuild
@@ -0,0 +1,154 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit bash-completion-r1 edo python-single-r1 systemd tmpfiles
+
+DESCRIPTION="Scans log files and bans IPs that show malicious signs"
+HOMEPAGE="https://www.fail2ban.org/"
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/fail2ban/fail2ban"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/fail2ban/fail2ban/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="selinux systemd test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep '
+ dev-python/pyasyncore[${PYTHON_USEDEP}]
+ dev-python/pyasynchat[${PYTHON_USEDEP}]
+ ' 3.12)
+ virtual/logger
+ virtual/mta
+ selinux? ( sec-policy/selinux-fail2ban )
+ systemd? (
+ $(python_gen_cond_dep '
+ dev-python/python-systemd[${PYTHON_USEDEP}]
+ ')
+ )
+"
+BDEPEND="
+ $(python_gen_cond_dep '
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ')
+ test? (
+ $(python_gen_cond_dep '
+ dev-python/aiosmtpd[${PYTHON_USEDEP}]
+ ')
+ )
+"
+
+DOCS=( ChangeLog DEVELOP README.md THANKS TODO doc/run-rootless.txt )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.11.2-adjust-apache-logs-paths.patch
+ "${FILESDIR}"/${PN}-1.0.2-umask-tests.patch
+ "${FILESDIR}"/${PN}-1.1.0-openssh-9.8.patch
+ "${FILESDIR}"/${PN}-1.1.0-openssh-9.8-fixups.patch
+ "${FILESDIR}"/${PN}-1.1.0-openrc-nftables.patch
+ "${FILESDIR}"/${PN}-1.1.0-systemd-order.patch
+ "${FILESDIR}"/${PN}-1.1.0-postfix-pref.patch
+ "${FILESDIR}"/${PN}-1.1.0-postfix-ddos.patch
+ "${FILESDIR}"/${PN}-1.1.0-sshd-ddos.patch
+ "${FILESDIR}"/${PN}-1.1.0-openrc-use-supervise-daemon.patch
+)
+
+src_prepare() {
+ default
+
+ # Replace /var/run with /run, but not in the top source directory
+ find . -mindepth 2 -type f -exec \
+ sed -i -e 's|/var\(/run/fail2ban\)|\1|g' {} + || die
+}
+
+src_compile() {
+ edo ${EPYTHON} setup.py build
+}
+
+src_test() {
+ # Skip testRepairDb for bug #907348 (didn't always fail..)
+ # https://github.com/fail2ban/fail2ban/issues/3586
+ bin/fail2ban-testcases \
+ --no-network \
+ --ignore databasetestcase.DatabaseTest.testRepairDb \
+ --verbosity=4 || die "Tests failed with ${EPYTHON}"
+
+ # Workaround for bug #790251
+ rm -rf fail2ban.egg-info || die
+}
+
+src_install() {
+ edo ${EPYTHON} setup.py install --prefix="${EPREFIX}/usr" --root="${D}"
+ python_fix_shebang "${ED}"/usr/bin
+ python_optimize
+
+ einstalldocs
+
+ rm -rf "${ED}"/usr/share/doc/${PN} "${ED}"/run || die
+
+ newconfd files/fail2ban-openrc.conf ${PN}
+ # These two are placed in the ${BUILD_DIR} after being "built"
+ # in install_scripts().
+ newinitd "${S}"/build/fail2ban-openrc.init ${PN}
+ systemd_dounit "${S}"/build/${PN}.service
+
+ dotmpfiles files/${PN}-tmpfiles.conf
+
+ doman man/*.{1,5}
+
+ # Use INSTALL_MASK if you do not want to touch /etc/logrotate.d.
+ # See http://thread.gmane.org/gmane.linux.gentoo.devel/35675
+ insinto /etc/logrotate.d
+ newins files/${PN}-logrotate ${PN}
+
+ keepdir /var/lib/${PN}
+
+ newbashcomp files/bash-completion ${PN}-client
+ bashcomp_alias ${PN}-client ${PN}-server ${PN}-regex
+}
+
+pkg_preinst() {
+ has_version "<${CATEGORY}/${PN}-0.7"
+ previous_less_than_0_7=$?
+}
+
+pkg_postinst() {
+ tmpfiles_process ${PN}-tmpfiles.conf
+
+ if [[ ${previous_less_than_0_7} == 0 ]] ; then
+ elog
+ elog "Configuration files are now in /etc/fail2ban/"
+ elog "You probably have to manually update your configuration"
+ elog "files before restarting Fail2Ban!"
+ elog
+ elog "Fail2Ban is not installed under /usr/lib anymore. The"
+ elog "new location is under /usr/share."
+ elog
+ elog "You are upgrading from version 0.6.x, please see:"
+ elog "http://www.fail2ban.org/wiki/index.php/HOWTO_Upgrade_from_0.6_to_0.8"
+ fi
+
+ if ! has_version dev-python/pyinotify ; then
+ elog "For most jail.conf configurations, it is recommended you install"
+ elog "dev-python/pyinotify to control how log file modifications are detected"
+ fi
+
+ if ! has_version dev-lang/python[sqlite] ; then
+ elog "If you want to use ${PN}'s persistent database, then reinstall"
+ elog "dev-lang/python with USE=sqlite. If you do not use the"
+ elog "persistent database feature, then you should set"
+ elog "dbfile = :memory: in fail2ban.conf accordingly."
+ fi
+}
diff --git a/net-analyzer/fail2ban/fail2ban-9999.ebuild b/net-analyzer/fail2ban/fail2ban-9999.ebuild
new file mode 100644
index 000000000000..2d8eb50f2e74
--- /dev/null
+++ b/net-analyzer/fail2ban/fail2ban-9999.ebuild
@@ -0,0 +1,148 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit bash-completion-r1 edo python-single-r1 systemd tmpfiles
+
+DESCRIPTION="Scans log files and bans IPs that show malicious signs"
+HOMEPAGE="https://www.fail2ban.org/"
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/fail2ban/fail2ban"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/fail2ban/fail2ban/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="selinux systemd test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep '
+ dev-python/pyasyncore[${PYTHON_USEDEP}]
+ dev-python/pyasynchat[${PYTHON_USEDEP}]
+ ' 3.12)
+ virtual/logger
+ virtual/mta
+ selinux? ( sec-policy/selinux-fail2ban )
+ systemd? (
+ $(python_gen_cond_dep '
+ dev-python/python-systemd[${PYTHON_USEDEP}]
+ ')
+ )
+"
+BDEPEND="
+ $(python_gen_cond_dep '
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ')
+ test? (
+ $(python_gen_cond_dep '
+ dev-python/aiosmtpd[${PYTHON_USEDEP}]
+ ')
+ )
+"
+
+DOCS=( ChangeLog DEVELOP README.md THANKS TODO doc/run-rootless.txt )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.11.2-adjust-apache-logs-paths.patch
+ "${FILESDIR}"/${PN}-1.0.2-umask-tests.patch
+ "${FILESDIR}"/${PN}-1.1.0-systemd-order.patch
+ "${FILESDIR}"/${PN}-1.1.0-openrc-use-supervise-daemon.patch
+)
+
+src_prepare() {
+ default
+
+ # Replace /var/run with /run, but not in the top source directory
+ find . -mindepth 2 -type f -exec \
+ sed -i -e 's|/var\(/run/fail2ban\)|\1|g' {} + || die
+}
+
+src_compile() {
+ edo ${EPYTHON} setup.py build
+}
+
+src_test() {
+ # Skip testRepairDb for bug #907348 (didn't always fail..)
+ # https://github.com/fail2ban/fail2ban/issues/3586
+ bin/fail2ban-testcases \
+ --no-network \
+ --ignore databasetestcase.DatabaseTest.testRepairDb \
+ --verbosity=4 || die "Tests failed with ${EPYTHON}"
+
+ # Workaround for bug #790251
+ rm -rf fail2ban.egg-info || die
+}
+
+src_install() {
+ edo ${EPYTHON} setup.py install --prefix="${EPREFIX}/usr" --root="${D}"
+ python_fix_shebang "${ED}"/usr/bin
+ python_optimize
+
+ einstalldocs
+
+ rm -rf "${ED}"/usr/share/doc/${PN} "${ED}"/run || die
+
+ newconfd files/fail2ban-openrc.conf ${PN}
+ # These two are placed in the ${BUILD_DIR} after being "built"
+ # in install_scripts().
+ newinitd "${S}"/build/fail2ban-openrc.init ${PN}
+ systemd_dounit "${S}"/build/${PN}.service
+
+ dotmpfiles "${FILESDIR}"/${PN}-tmpfiles.conf
+
+ doman man/*.{1,5}
+
+ # Use INSTALL_MASK if you do not want to touch /etc/logrotate.d.
+ # See http://thread.gmane.org/gmane.linux.gentoo.devel/35675
+ insinto /etc/logrotate.d
+ newins files/${PN}-logrotate ${PN}
+
+ keepdir /var/lib/${PN}
+
+ newbashcomp files/bash-completion ${PN}-client
+ bashcomp_alias ${PN}-client ${PN}-server ${PN}-regex
+}
+
+pkg_preinst() {
+ has_version "<${CATEGORY}/${PN}-0.7"
+ previous_less_than_0_7=$?
+}
+
+pkg_postinst() {
+ tmpfiles_process ${PN}-tmpfiles.conf
+
+ if [[ ${previous_less_than_0_7} == 0 ]] ; then
+ elog
+ elog "Configuration files are now in /etc/fail2ban/"
+ elog "You probably have to manually update your configuration"
+ elog "files before restarting Fail2Ban!"
+ elog
+ elog "Fail2Ban is not installed under /usr/lib anymore. The"
+ elog "new location is under /usr/share."
+ elog
+ elog "You are upgrading from version 0.6.x, please see:"
+ elog "http://www.fail2ban.org/wiki/index.php/HOWTO_Upgrade_from_0.6_to_0.8"
+ fi
+
+ if ! has_version dev-python/pyinotify ; then
+ elog "For most jail.conf configurations, it is recommended you install"
+ elog "dev-python/pyinotify to control how log file modifications are detected"
+ fi
+
+ if ! has_version dev-lang/python[sqlite] ; then
+ elog "If you want to use ${PN}'s persistent database, then reinstall"
+ elog "dev-lang/python with USE=sqlite. If you do not use the"
+ elog "persistent database feature, then you should set"
+ elog "dbfile = :memory: in fail2ban.conf accordingly."
+ fi
+}
diff --git a/net-analyzer/fail2ban/files/fail2ban-0.11.2-adjust-apache-logs-paths.patch b/net-analyzer/fail2ban/files/fail2ban-0.11.2-adjust-apache-logs-paths.patch
new file mode 100644
index 000000000000..3017883f0d5a
--- /dev/null
+++ b/net-analyzer/fail2ban/files/fail2ban-0.11.2-adjust-apache-logs-paths.patch
@@ -0,0 +1,29 @@
+From bda9b88e883207b99781352c68610980e23fa62f Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Wed, 11 Aug 2021 01:58:05 +0100
+Subject: [PATCH] Adjust Apache log paths for Gentoo
+
+Closes: https://bugs.gentoo.org/805485
+---
+ config/paths-common.conf | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/config/paths-common.conf b/config/paths-common.conf
+index 7383caf..4f4a6e1 100644
+--- a/config/paths-common.conf
++++ b/config/paths-common.conf
+@@ -36,9 +36,9 @@ sshd_backend = %(default_backend)s
+ dropbear_log = %(syslog_authpriv)s
+ dropbear_backend = %(default_backend)s
+
+-apache_error_log = /var/log/apache2/*error.log
++apache_error_log = /var/log/apache2/*error_log
+
+-apache_access_log = /var/log/apache2/*access.log
++apache_access_log = /var/log/apache2/*access_log
+
+ # from /etc/audit/auditd.conf
+ auditd_log = /var/log/audit/audit.log
+--
+2.32.0
+
diff --git a/net-analyzer/fail2ban/files/fail2ban-1.0.2-umask-tests.patch b/net-analyzer/fail2ban/files/fail2ban-1.0.2-umask-tests.patch
new file mode 100644
index 000000000000..8feca43412ec
--- /dev/null
+++ b/net-analyzer/fail2ban/files/fail2ban-1.0.2-umask-tests.patch
@@ -0,0 +1,45 @@
+Avoid corrupting umask permanently in the testdir because of fail2ban/server/server.py::start.
+
+In particular:
+* https://bugs.gentoo.org/659010#c11
+* https://bugs.gentoo.org/790251#c10
+* https://bugs.gentoo.org/907350
+
+But see also the many dupes.
+--- a/fail2ban/tests/fail2banclienttestcase.py
++++ b/fail2ban/tests/fail2banclienttestcase.py
+@@ -23,6 +23,7 @@ __author__ = "Serg Brester"
+ __copyright__ = "Copyright (c) 2014- Serg G. Brester (sebres), 2008- Fail2Ban Contributors"
+ __license__ = "GPL"
+
++import atexit
+ import fileinput
+ import os
+ import re
+@@ -40,6 +41,14 @@ from ..client.fail2bancmdline import Fail2banCmdLine
+ from ..client.fail2banclient import exec_command_line as _exec_client, CSocket, VisualWait
+ from ..client.fail2banserver import Fail2banServer, exec_command_line as _exec_server
+ from .. import protocol
++
++def current_umask():
++ tmp = os.umask(0o022)
++ os.umask(tmp)
++ return tmp
++
++old_umask = current_umask()
++
+ from ..server import server
+ from ..server.mytime import MyTime
+ from ..server.utils import Utils
+@@ -48,6 +57,11 @@ from .utils import LogCaptureTestCase, logSys as DefLogSys, with_tmpdir, shutil,
+
+ from ..helpers import getLogger
+
++def restore_umask():
++ os.umask(old_umask)
++
++atexit.register(restore_umask)
++
+ # Gets the instance of the logger.
+ logSys = getLogger(__name__)
+
diff --git a/net-analyzer/fail2ban/files/fail2ban-1.1.0-openrc-nftables.patch b/net-analyzer/fail2ban/files/fail2ban-1.1.0-openrc-nftables.patch
new file mode 100644
index 000000000000..844be1cedd34
--- /dev/null
+++ b/net-analyzer/fail2ban/files/fail2ban-1.1.0-openrc-nftables.patch
@@ -0,0 +1,25 @@
+https://github.com/fail2ban/fail2ban/commit/9e31cfc1f10e8304dc0b5adf0a429d57fcb598a3
+
+From 9e31cfc1f10e8304dc0b5adf0a429d57fcb598a3 Mon Sep 17 00:00:00 2001
+From: Michael Orlitzky <michael@orlitzky.com>
+Date: Sat, 24 Aug 2024 11:59:59 -0400
+Subject: [PATCH] files/fail2ban-openrc.init.in: start after nftables
+
+The "after iptables" clause in the OpenRC service script's depend()
+function causes fail2ban to start after iptables, if iptables is
+scheduled to start. Here we add "after nftables" as well: nftables is
+the successor to iptables, and fail2ban supports it out-of-the-box.
+If nftables is scheduled to start, we want to wait until it's done
+before starting fail2ban.
+--- a/files/fail2ban-openrc.init.in
++++ b/files/fail2ban-openrc.init.in
+@@ -44,7 +44,7 @@ retry="30"
+
+ depend() {
+ use logger
+- after iptables
++ after iptables nftables
+ }
+
+ checkconfig() {
+
diff --git a/net-analyzer/fail2ban/files/fail2ban-1.1.0-openrc-use-supervise-daemon.patch b/net-analyzer/fail2ban/files/fail2ban-1.1.0-openrc-use-supervise-daemon.patch
new file mode 100644
index 000000000000..f65f035e731f
--- /dev/null
+++ b/net-analyzer/fail2ban/files/fail2ban-1.1.0-openrc-use-supervise-daemon.patch
@@ -0,0 +1,23 @@
+I kept hitting a startup failure and couldn't get anywhere with figuring
+out what wa shappening, but OpenRC is moving towards preferring supervise-daemon,
+and this is a bit nicer anyway as it takes any possibility of a race with
+pidfiles out of the equation.
+--- a/files/fail2ban-openrc.init.in
++++ b/files/fail2ban-openrc.init.in
+@@ -33,13 +33,13 @@ FAIL2BAN_SOCKET="${FAIL2BAN_RUNDIR}/${RC_SVCNAME}.sock"
+ # The fail2ban-client program is also capable of starting and stopping
+ # the server, but things are simpler if we let start-stop-daemon do it.
+ command="@BINDIR@/fail2ban-server"
+-pidfile="${FAIL2BAN_RUNDIR}/${RC_SVCNAME}.pid"
+
+-# We force the pidfile/socket location in this service script because
++# We force the socket location in this service script because
+ # we're taking responsibility for ensuring that their parent directory
+ # exists and has the correct permissions (which we can't do if the
+ # user is allowed to change them).
+-command_args="${FAIL2BAN_OPTIONS} -p ${pidfile} -s ${FAIL2BAN_SOCKET}"
++supervisor=supervise-daemon
++command_args="${FAIL2BAN_OPTIONS} -f -s ${FAIL2BAN_SOCKET}"
+ retry="30"
+
+ depend() {
diff --git a/net-analyzer/fail2ban/files/fail2ban-1.1.0-openssh-9.8-fixups.patch b/net-analyzer/fail2ban/files/fail2ban-1.1.0-openssh-9.8-fixups.patch
new file mode 100644
index 000000000000..06ff07bd0599
--- /dev/null
+++ b/net-analyzer/fail2ban/files/fail2ban-1.1.0-openssh-9.8-fixups.patch
@@ -0,0 +1,40 @@
+https://bugs.gentoo.org/936838
+https://github.com/fail2ban/fail2ban/commit/c769046a1f729880cc53efdff4b52ac96010752f
+https://github.com/fail2ban/fail2ban/commit/54c0effceb998b73545073ac59c479d9d9bf19a4
+
+From c769046a1f729880cc53efdff4b52ac96010752f Mon Sep 17 00:00:00 2001
+From: sebres <info@sebres.de>
+Date: Sun, 11 Aug 2024 11:55:39 +0200
+Subject: [PATCH] Revert "`filterd./sshd.conf`: fixed journalmatch
+ (sshd.service seems to be renamed to ssh.service)" - it'd patched in debian
+ branch. This reverts commit 6fce23e7baa484c7d1f9b0c9a11986f3916c41dd.
+
+--- a/config/filter.d/sshd.conf
++++ b/config/filter.d/sshd.conf
+@@ -126,7 +126,7 @@ ignoreregex =
+
+ maxlines = 1
+
+-journalmatch = _SYSTEMD_UNIT=ssh.service + _COMM=sshd
++journalmatch = _SYSTEMD_UNIT=sshd.service + _COMM=sshd
+
+ # DEV Notes:
+ #
+
+From 54c0effceb998b73545073ac59c479d9d9bf19a4 Mon Sep 17 00:00:00 2001
+From: sebres <info@sebres.de>
+Date: Sun, 11 Aug 2024 12:10:12 +0200
+Subject: [PATCH] filter.d/sshd.conf: amend to #3747/#3812 (new ssh version
+ would log with `_COMM=sshd-session`)
+
+--- a/config/filter.d/sshd.conf
++++ b/config/filter.d/sshd.conf
+@@ -126,7 +126,7 @@ ignoreregex =
+
+ maxlines = 1
+
+-journalmatch = _SYSTEMD_UNIT=sshd.service + _COMM=sshd
++journalmatch = _SYSTEMD_UNIT=sshd.service + _COMM=sshd + _COMM=sshd-session
+
+ # DEV Notes:
+ #
diff --git a/net-analyzer/fail2ban/files/fail2ban-1.1.0-openssh-9.8.patch b/net-analyzer/fail2ban/files/fail2ban-1.1.0-openssh-9.8.patch
new file mode 100644
index 000000000000..6b7800ca3f0a
--- /dev/null
+++ b/net-analyzer/fail2ban/files/fail2ban-1.1.0-openssh-9.8.patch
@@ -0,0 +1,75 @@
+https://bugs.gentoo.org/935392
+https://github.com/fail2ban/fail2ban/commit/6fce23e7baa484c7d1f9b0c9a11986f3916c41dd
+https://github.com/fail2ban/fail2ban/commit/2fed408c05ac5206b490368d94599869bd6a056d
+https://github.com/fail2ban/fail2ban/commit/50ff131a0fd8f54fdeb14b48353f842ee8ae8c1a
+
+From 6fce23e7baa484c7d1f9b0c9a11986f3916c41dd Mon Sep 17 00:00:00 2001
+From: "Sergey G. Brester" <serg.brester@sebres.de>
+Date: Mon, 10 Jun 2024 01:40:59 +0200
+Subject: [PATCH] `filterd./sshd.conf`: fixed journalmatch (sshd.service seems
+ to be renamed to ssh.service)
+
+closes gh-3747
+---
+ config/filter.d/sshd.conf | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/config/filter.d/sshd.conf b/config/filter.d/sshd.conf
+index a954774c62..1c8a02deb5 100644
+--- a/config/filter.d/sshd.conf
++++ b/config/filter.d/sshd.conf
+@@ -126,7 +126,7 @@ ignoreregex =
+
+ maxlines = 1
+
+-journalmatch = _SYSTEMD_UNIT=sshd.service + _COMM=sshd
++journalmatch = _SYSTEMD_UNIT=ssh.service + _COMM=sshd
+
+ # DEV Notes:
+ #
+
+From 2fed408c05ac5206b490368d94599869bd6a056d Mon Sep 17 00:00:00 2001
+From: Fabian Dellwing <fabian.dellwing@mbconnectline.de>
+Date: Tue, 2 Jul 2024 07:54:15 +0200
+Subject: [PATCH] Adjust sshd filter for OpenSSH 9.8 new daemon name
+
+---
+ config/filter.d/sshd.conf | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/config/filter.d/sshd.conf b/config/filter.d/sshd.conf
+index 1c8a02deb5..a1fd749aed 100644
+--- a/config/filter.d/sshd.conf
++++ b/config/filter.d/sshd.conf
+@@ -16,7 +16,7 @@ before = common.conf
+
+ [DEFAULT]
+
+-_daemon = sshd
++_daemon = (?:sshd(?:-session)?)
+
+ # optional prefix (logged from several ssh versions) like "error: ", "error: PAM: " or "fatal: "
+ __pref = (?:(?:error|fatal): (?:PAM: )?)?
+
+From 50ff131a0fd8f54fdeb14b48353f842ee8ae8c1a Mon Sep 17 00:00:00 2001
+From: "Sergey G. Brester" <serg.brester@sebres.de>
+Date: Wed, 3 Jul 2024 19:35:28 +0200
+Subject: [PATCH] filter.d/sshd.conf: ungroup (unneeded for _daemon)
+
+---
+ config/filter.d/sshd.conf | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/config/filter.d/sshd.conf b/config/filter.d/sshd.conf
+index a1fd749aed..3a84b1ba52 100644
+--- a/config/filter.d/sshd.conf
++++ b/config/filter.d/sshd.conf
+@@ -16,7 +16,7 @@ before = common.conf
+
+ [DEFAULT]
+
+-_daemon = (?:sshd(?:-session)?)
++_daemon = sshd(?:-session)?
+
+ # optional prefix (logged from several ssh versions) like "error: ", "error: PAM: " or "fatal: "
+ __pref = (?:(?:error|fatal): (?:PAM: )?)?
diff --git a/net-analyzer/fail2ban/files/fail2ban-1.1.0-postfix-ddos.patch b/net-analyzer/fail2ban/files/fail2ban-1.1.0-postfix-ddos.patch
new file mode 100644
index 000000000000..efdc463e1fea
--- /dev/null
+++ b/net-analyzer/fail2ban/files/fail2ban-1.1.0-postfix-ddos.patch
@@ -0,0 +1,38 @@
+https://github.com/fail2ban/fail2ban/pull/4072
+https://bugs.gentoo.org/963047
+
+commit 0fee8dbe9241f8d387f064a079668457a0efd33d
+Author: Ulrich Müller <ulm@gentoo.org>
+Date: Thu Sep 18 07:20:38 2025 +0200
+
+ filter.d/postfix.conf: Add optional "NOQUEUE:" to mdpr-ddos
+
+ The current regex doesn't match the following log entry, seen with
+ Postfix 3.10.2:
+
+ Sep 17 18:19:20 mxhost postfix/smtpd[12345]: NOQUEUE: lost connection after CONNECT from unknown[192.0.2.25]
+ Sep 17 18:19:20 mxhost postfix/smtpd[12345]: disconnect from unknown[192.0.2.25] commands=0/0
+
+--- a/config/filter.d/postfix.conf
++++ b/config/filter.d/postfix.conf
+@@ -38,7 +38,7 @@
+
+ # Includes some of the log messages described in
+ # <http://www.postfix.org/POSTSCREEN_README.html>.
+-mdpr-ddos = (?:lost connection after (?!(?:DATA|AUTH)\b)[A-Z]+|disconnect(?= from \S+(?: \S+=\d+)* auth=0/(?:[1-9]|\d\d+))|(?:PREGREET \d+|HANGUP) after \S+|COMMAND (?:TIME|COUNT|LENGTH) LIMIT)
++mdpr-ddos = (?:NOQUEUE: )?(?:lost connection after (?!(?:DATA|AUTH)\b)[A-Z]+|disconnect(?= from \S+(?: \S+=\d+)* auth=0/(?:[1-9]|\d\d+))|(?:PREGREET \d+|HANGUP) after \S+|COMMAND (?:TIME|COUNT|LENGTH) LIMIT)
+ mdre-ddos = ^from [^[]*\[<HOST>\]%(_port)s:?
+
+ mdpr-extra = (?:%(mdpr-auth)s|%(mdpr-normal)s)
+--- a/fail2ban/tests/files/logs/postfix
++++ b/fail2ban/tests/files/logs/postfix
+@@ -187,6 +187,9 @@
+ # failJSON: { "time": "2005-06-08T23:14:54", "match": true , "host": "192.0.2.26", "desc": "abusive clients hitting command limit (gh-3040)" }
+ Jun 8 23:14:54 proxy2 postfix/postscreen[473]: COMMAND COUNT LIMIT from [192.0.2.26]:15592 after RCPT
+
++# failJSON: { "time": "2004-09-17T18:19:20", "match": true , "host": "192.0.2.25" }
++Sep 17 18:19:20 mxhost postfix/smtpd[12345]: NOQUEUE: lost connection after CONNECT from unknown[192.0.2.25]
++
+
+ # filterOptions: [{}, {"mode": "ddos"}, {"mode": "aggressive"}]
+ # failJSON: { "match": false, "desc": "don't affect lawful data (sporadical connection aborts within DATA-phase, see gh-1813 for discussion)" }
diff --git a/net-analyzer/fail2ban/files/fail2ban-1.1.0-postfix-pref.patch b/net-analyzer/fail2ban/files/fail2ban-1.1.0-postfix-pref.patch
new file mode 100644
index 000000000000..72a21d6681a5
--- /dev/null
+++ b/net-analyzer/fail2ban/files/fail2ban-1.1.0-postfix-pref.patch
@@ -0,0 +1,32 @@
+https://github.com/fail2ban/fail2ban/issues/3800
+
+commit 93810fff75640ddfe4c248e670ed80b5d225bf10
+Author: Serg G. Brester <info@sebres.de>
+Date: Fri Jul 26 19:25:09 2024 +0200
+
+ consider CONNECT and other rejected commands as a valid `_pref`;
+ closes gh-3800
+
+--- a/config/filter.d/postfix.conf
++++ b/config/filter.d/postfix.conf
+@@ -12,7 +12,7 @@
+
+ _daemon = postfix(-\w+)?/[^/\[:\s]+(?:/smtp[ds])?
+ _port = (?::\d+)?
+-_pref = [A-Z]{4}
++_pref = [A-Z]{4,}
+
+ prefregex = ^%(__prefix_line)s<mdpr-<mode>> <F-CONTENT>.+</F-CONTENT>$
+
+--- a/fail2ban/tests/files/logs/postfix
++++ b/fail2ban/tests/files/logs/postfix
+@@ -70,6 +70,9 @@
+ # failJSON: { "time": "2005-05-05T15:51:11", "match": true , "host": "216.245.194.173", "desc": "postfix postscreen / gh-1764" }
+ May 5 15:51:11 xxx postfix/postscreen[1148]: NOQUEUE: reject: RCPT from [216.245.194.173]:60591: 550 5.7.1 Service unavailable; client [216.245.194.173] blocked using rbl.example.com; from=<spammer@example.com>, to=<goodguy@example.com>, proto=ESMTP, helo=<badguy.example.com>
+
++# failJSON: { "time": "2005-06-01T19:00:55", "match": true , "host": "192.0.2.114", "desc": "postfix client restriction / gh-3800" }
++Jun 1 19:00:55 mail postfix/smtpd[7749]: NOQUEUE: reject: CONNECT from unknown[192.0.2.114]: 450 4.7.25 Client host rejected: cannot find your hostname, [178.215.236.114]; proto=SMTP
++
+ # failJSON: { "time": "2005-06-03T06:25:43", "match": true , "host": "192.0.2.11", "desc": "too many errors / gh-2439" }
+ Jun 3 06:25:43 srv postfix/smtpd[29306]: too many errors after RCPT from example.com[192.0.2.11]
+
diff --git a/net-analyzer/fail2ban/files/fail2ban-1.1.0-sshd-ddos.patch b/net-analyzer/fail2ban/files/fail2ban-1.1.0-sshd-ddos.patch
new file mode 100644
index 000000000000..6a19031ca406
--- /dev/null
+++ b/net-analyzer/fail2ban/files/fail2ban-1.1.0-sshd-ddos.patch
@@ -0,0 +1,33 @@
+https://github.com/fail2ban/fail2ban/issues/3907
+https://bugs.gentoo.org/963511
+
+commit 89b5f3bb1ecd3789b3271b648eeb83c620668e6f
+Author: Serg G. Brester <info@sebres.de>
+Date: Thu Dec 26 14:24:15 2024 +0100
+
+ `filter.d/sshd.conf`: `ddos` and `aggressive` modes, regex extended for timeout before authentication (optional connection from part);
+ closes gh-3907
+
+--- a/config/filter.d/sshd.conf
++++ b/config/filter.d/sshd.conf
+@@ -70,7 +70,7 @@
+ # used to differentiate "connection closed" with and without `[preauth]` (fail/nofail cases in ddos mode)
+ mdre-normal-other = ^<F-NOFAIL><F-MLFFORGET>(?:Connection (?:closed|reset)|Disconnect(?:ed|ing))</F-MLFFORGET></F-NOFAIL>%(__authng_user)s <ADDR>%(__on_port_opt)s(?:: (?!Too many authentication failures)[^\[]+)?(?: \[preauth\])?\s*$
+
+-mdre-ddos = ^(?:Did not receive identification string from|Timeout before authentication for) <HOST>
++mdre-ddos = ^(?:Did not receive identification string from|Timeout before authentication for(?: connection from)?) <HOST>
+ ^kex_exchange_identification: (?:read: )?(?:[Cc]lient sent invalid protocol identifier|[Cc]onnection (?:closed by remote host|reset by peer))
+ ^Bad protocol version identification '(?:[^']|.*?)' (?:from )?<HOST>%(__suff)s$
+ ^<F-NOFAIL>SSH: Server;Ltype:</F-NOFAIL> (?:Authname|Version|Kex);Remote: <HOST>-\d+;[A-Z]\w+:
+--- a/fail2ban/tests/files/logs/sshd
++++ b/fail2ban/tests/files/logs/sshd
+@@ -360,6 +360,9 @@
+ # failJSON: { "match": false, "desc": "Connection reset already triggered above (known IP, no-fail helper unused here)" }
+ Jun 7 04:29:10 host sshd[649921]: Connection reset by 192.0.2.16 port 51280
+
++# failJSON: { "time": "2005-06-10T09:43:06", "match": true , "host": "192.0.2.17", "desc": "ddos: timeout ... connection from, gh-3907" }
++Jun 10 09:43:06 host sshd[3801]: Timeout before authentication for connection from 192.0.2.17 to 127.0.0.1, pid = 29098
++
+ # filterOptions: [{"mode": "extra"}, {"mode": "aggressive"}]
+
+ # several other cases from gh-864:
diff --git a/net-analyzer/fail2ban/files/fail2ban-1.1.0-systemd-order.patch b/net-analyzer/fail2ban/files/fail2ban-1.1.0-systemd-order.patch
new file mode 100644
index 000000000000..39da720466ef
--- /dev/null
+++ b/net-analyzer/fail2ban/files/fail2ban-1.1.0-systemd-order.patch
@@ -0,0 +1,14 @@
+https://bugs.gentoo.org/871996
+--- a/files/fail2ban.service.in
++++ b/files/fail2ban.service.in
+@@ -1,7 +1,10 @@
+ [Unit]
+ Description=Fail2Ban Service
+ Documentation=man:fail2ban(1)
++
++Before=iptables-store.service ip6tables-store.service
+ After=network.target iptables.service firewalld.service ip6tables.service ipset.service nftables.service
++After=iptables-restore.service ip6tables-restore.service
+ PartOf=iptables.service firewalld.service ip6tables.service ipset.service nftables.service
+
+ [Service]
diff --git a/net-analyzer/fail2ban/files/fail2ban-tmpfiles.conf b/net-analyzer/fail2ban/files/fail2ban-tmpfiles.conf
new file mode 100644
index 000000000000..6e611c6a2dc6
--- /dev/null
+++ b/net-analyzer/fail2ban/files/fail2ban-tmpfiles.conf
@@ -0,0 +1 @@
+D /run/fail2ban 0755 root root -
diff --git a/net-analyzer/fail2ban/metadata.xml b/net-analyzer/fail2ban/metadata.xml
new file mode 100644
index 000000000000..58bc2cf44318
--- /dev/null
+++ b/net-analyzer/fail2ban/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>sam@gentoo.org</email>
+ <name>Sam James</name>
+ </maintainer>
+ <stabilize-allarches />
+ <upstream>
+ <remote-id type="cpe">cpe:/a:fail2ban:fail2ban</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/firewalk/Manifest b/net-analyzer/firewalk/Manifest
new file mode 100644
index 000000000000..ecd2dcaa1cef
--- /dev/null
+++ b/net-analyzer/firewalk/Manifest
@@ -0,0 +1 @@
+DIST firewalk-5.0.tgz 80446 BLAKE2B 22580800fb21347fda6ff6290c0fd2f177e266778c2d6ce1087839b5484dfcf8e2ffbb415d90012d71e6d345ba4c95f888fecc902adaaa2903124605c1fcf427 SHA512 919aa6e464dac72a02f8967ccf7109de7d0b3a574f0a396bcf69bacc988ab8e13e8e25932d749eadc898cae2546f8f81014d53ef51429e6c784a16d40da90ff2
diff --git a/net-analyzer/firewalk/files/firewalk-5.0-gcc3.4.diff b/net-analyzer/firewalk/files/firewalk-5.0-gcc3.4.diff
new file mode 100644
index 000000000000..925bde7b75f3
--- /dev/null
+++ b/net-analyzer/firewalk/files/firewalk-5.0-gcc3.4.diff
@@ -0,0 +1,11 @@
+--- a/src/firewalk.c
++++ b/src/firewalk.c
+@@ -188,8 +188,6 @@
+ case FW_SERIOUS_ERROR:
+ /* err msg set in fw_packet_capture() */
+ return (FW_SERIOUS_ERROR);
+- default:
+- /* empty */
+ }
+ }
+ }
diff --git a/net-analyzer/firewalk/files/firewalk-5.0-signal.patch b/net-analyzer/firewalk/files/firewalk-5.0-signal.patch
new file mode 100644
index 000000000000..1d0c3423e8ac
--- /dev/null
+++ b/net-analyzer/firewalk/files/firewalk-5.0-signal.patch
@@ -0,0 +1,36 @@
+https://bugs.gentoo.org/945297
+fix signature of signal
+--- a/include/firewalk.h
++++ b/include/firewalk.h
+@@ -248,7 +248,7 @@
+ int /* 1 on success -1 or failure */
+ catch_sig(
+ int, /* signal to catch */
+- void (*)() /* new signal handler */
++ void (*)(int) /* new signal handler */
+ );
+
+ /* handles SIGINT from user */
+--- a/src/signal.c
++++ b/src/signal.c
+@@ -40,7 +40,7 @@
+ extern int loop;
+
+ int
+-catch_sig(int signo, void (*handler)())
++catch_sig(int signo, void (*handler)(int))
+ {
+ struct sigaction action;
+
+https://bugs.gentoo.org/731202
+patch out unneedeed strip - portage does it instead, and right.
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -25,7 +25,6 @@
+
+ all:
+ cp firewalk $(top_srcdir)
+- strip $(top_srcdir)/firewalk
+
+ clean:
+ rm -f $(top_srcdir)/firewalk
diff --git a/net-analyzer/firewalk/files/firewalk-5.0-usage.diff b/net-analyzer/firewalk/files/firewalk-5.0-usage.diff
new file mode 100644
index 000000000000..dac54f558135
--- /dev/null
+++ b/net-analyzer/firewalk/files/firewalk-5.0-usage.diff
@@ -0,0 +1,22 @@
+--- a/include/firewalk.h
++++ b/include/firewalk.h
+@@ -280,7 +280,7 @@
+ /* dump usage */
+ void
+ usage(
+- u_char * /* argv[0] */
++ char * /* argv[0] */
+ );
+
+ #endif /* _FIREWALK_H */
+--- a/src/main.c
++++ b/src/main.c
+@@ -171,7 +171,7 @@
+ }
+
+ void
+-usage(u_char *argv0)
++usage(char *argv0)
+ {
+ fprintf(stderr, "Usage : %s [options] target_gateway metric\n"
+ "\t\t [-d %d - %d] destination port to use (ramping phase)\n"
diff --git a/net-analyzer/firewalk/firewalk-5.0-r3.ebuild b/net-analyzer/firewalk/firewalk-5.0-r3.ebuild
new file mode 100644
index 000000000000..d0c6b27e431f
--- /dev/null
+++ b/net-analyzer/firewalk/firewalk-5.0-r3.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="A tool for determining a firewall's rule set"
+HOMEPAGE="http://packetfactory.openwall.net/projects/firewalk/"
+SRC_URI="mirror://gentoo/${P}.tgz"
+S=${WORKDIR}/${PN^}
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86"
+
+DEPEND="
+ dev-libs/libdnet
+ net-libs/libnet:1.1
+ net-libs/libpcap
+"
+RDEPEND="
+ ${DEPEND}
+"
+DOCS=( README TODO BUGS )
+PATCHES=(
+ "${FILESDIR}"/${P}-gcc3.4.diff
+ "${FILESDIR}"/${P}-usage.diff
+ "${FILESDIR}"/${P}-signal.patch
+)
+
+src_prepare() {
+ default
+
+ # bug https://bugs.gentoo.org/899922
+ eautoreconf
+}
+
+src_install() {
+ default
+ doman man/firewalk.8
+}
diff --git a/net-analyzer/firewalk/metadata.xml b/net-analyzer/firewalk/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/firewalk/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/flow-tools/Manifest b/net-analyzer/flow-tools/Manifest
new file mode 100644
index 000000000000..958d870d3dc3
--- /dev/null
+++ b/net-analyzer/flow-tools/Manifest
@@ -0,0 +1 @@
+DIST flow-tools-0.68.6.tar.gz 1078778 BLAKE2B 8a6179e44f2efa90bb2c3ace73bfbb8a928c1d7aabc8f47a778ca7361a92c13f2df168194bdd9c489c175079c1bd977f6ad9852711a62d99649d1f44609d746b SHA512 fc3d0650ace93ec2180340624648b5967fd7f094900f8409e751b439eb659c9623e2ee55effeb74164ec6b15f0a1edd8ed7735ccfacfd72af08e9c5c0d65b740
diff --git a/net-analyzer/flow-tools/files/flow-tools-0.68.5.1-fno-common.patch b/net-analyzer/flow-tools/files/flow-tools-0.68.5.1-fno-common.patch
new file mode 100644
index 000000000000..1f7464919960
--- /dev/null
+++ b/net-analyzer/flow-tools/files/flow-tools-0.68.5.1-fno-common.patch
@@ -0,0 +1,42 @@
+--- a/src/acl2.h
++++ b/src/acl2.h
+@@ -48,7 +48,7 @@
+ #define ACL_TYPE_STD 1
+ #define ACL_TYPE_EXT 2
+
+-struct acl_list {
++typedef struct acl_list {
+ int num; /* number of entries */
+ int num_std; /* number of standard acl entries */
+ int num_ext; /* number of extended acl entries */
+@@ -59,6 +59,8 @@
+ /* num_ext of these */
+ };
+
++extern struct acl_list acl_list;
++
+ struct acl_names {
+ int num; /* index into standard or extended list */
+ char *name; /* name of this acl */
+--- a/src/aclyacc.y
++++ b/src/aclyacc.y
+@@ -7,8 +7,6 @@
+ unsigned char fmt_buf[32];
+ unsigned char fmt_buf2[32];
+
+-extern struct acl_list acl_list;
+-
+ int x;
+
+ %}
+--- a/src/flow-filter.c
++++ b/src/flow-filter.c
+@@ -56,8 +56,6 @@
+ int debug;
+ int ip_net_only;
+
+-struct acl_list acl_list;
+-
+ int yyparse (void);
+ void usage(void);
+ void yyerror(const char *msg);
diff --git a/net-analyzer/flow-tools/files/flow-tools-0.68.5.1-openssl11.patch b/net-analyzer/flow-tools/files/flow-tools-0.68.5.1-openssl11.patch
new file mode 100644
index 000000000000..cbbddcaae68d
--- /dev/null
+++ b/net-analyzer/flow-tools/files/flow-tools-0.68.5.1-openssl11.patch
@@ -0,0 +1,31 @@
+--- a/lib/ftxlate.c
++++ b/lib/ftxlate.c
+@@ -2040,11 +2048,13 @@
+
+
+ /* init crypto */
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ if (!(cp->cipher_ctx = (EVP_CIPHER_CTX*) malloc(sizeof(EVP_CIPHER_CTX)))) {
+ return -1;
+ }
+
+ EVP_CIPHER_CTX_init(cp->cipher_ctx);
++#endif
+
+ /* disable padding */
+ if (!(EVP_CIPHER_CTX_set_padding(cp->cipher_ctx, 0))) {
+@@ -2083,10 +2093,14 @@
+ {
+
+ #ifdef HAVE_OPENSSL
++#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ EVP_CIPHER_CTX_cleanup(cp->cipher_ctx);
+
+ if (cp->cipher_ctx)
+ free (cp->cipher_ctx);
++#else
++ EVP_CIPHER_CTX_free(cp->cipher_ctx);
++#endif
+ #endif /* HAVE_OPENSSL */
+
+ return 0;
diff --git a/net-analyzer/flow-tools/files/flow-tools-0.68.5.1-run.patch b/net-analyzer/flow-tools/files/flow-tools-0.68.5.1-run.patch
new file mode 100644
index 000000000000..e1b06eee7e00
--- /dev/null
+++ b/net-analyzer/flow-tools/files/flow-tools-0.68.5.1-run.patch
@@ -0,0 +1,22 @@
+--- a/src/flow-fanout.c
++++ b/src/flow-fanout.c
+@@ -57,7 +57,7 @@
+ #endif
+
+
+-#define FANOUT_PIDFILE "/var/run/flow-fanout.pid"
++#define FANOUT_PIDFILE "/run/flow-fanout.pid"
+
+ #define SELECT_TIMEOUT 5 /* 5 seconds */
+
+--- a/src/flow-capture.c
++++ b/src/flow-capture.c
+@@ -61,7 +61,7 @@
+
+ void fterr_exit_handler(int code);
+
+-#define CAPTURE_PIDFILE "/var/run/flow-capture.pid"
++#define CAPTURE_PIDFILE "/run/flow-capture.pid"
+
+ #define SELECT_TIMEOUT 1 /* 1 second */
+
diff --git a/net-analyzer/flow-tools/files/flow-tools-0.68.6-c99-c23.patch b/net-analyzer/flow-tools/files/flow-tools-0.68.6-c99-c23.patch
new file mode 100644
index 000000000000..06f56bf440c5
--- /dev/null
+++ b/net-analyzer/flow-tools/files/flow-tools-0.68.6-c99-c23.patch
@@ -0,0 +1,41 @@
+https://bugs.gentoo.org/945075
+--- a/lib/ftstat.c
++++ b/lib/ftstat.c
+@@ -831,11 +831,11 @@ struct jump {
+
+ struct typelookup {
+ char *name;
+- void* (*f_new)();
+- void* (*f_accum)();
+- void* (*f_calc)();
+- void* (*f_dump)();
+- void* (*f_free)();
++ void* (*f_new)(struct ftstat_rpt *);
++ void* (*f_accum)(struct ftstat_rpt *, char *, struct fts3rec_offsets *);
++ void* (*f_calc)(struct ftstat_rpt *);
++ void* (*f_dump)(FILE *, struct ftio *, struct ftstat_rpt *);
++ void* (*f_free)(void *);
+ int allowed_fields; /* FT_STAT_FIELD_* */
+ int allowed_options;/* FT_STAT_OPT_* */
+ uint64_t xfields; /* FT_XFIELD_* */
+--- a/src/acllex.l
++++ b/src/acllex.l
+@@ -1,4 +1,5 @@
+ %{
++#include <ftconfig.h>
+ #include <ftlib.h>
+
+ #if HAVE_STRINGS_H
+--- a/src/flow-print.c
++++ b/src/flow-print.c
+@@ -89,9 +89,7 @@ struct jump format[] = {{format0}, {format1}, {format2},
+
+ void usage(void);
+
+-int main(argc, argv)
+-int argc;
+-char **argv;
++int main(int argc, char **argv)
+ {
+ struct ftio ftio;
+ struct ftprof ftp;
diff --git a/net-analyzer/flow-tools/files/flow-tools-0.68.6-lto.patch b/net-analyzer/flow-tools/files/flow-tools-0.68.6-lto.patch
new file mode 100644
index 000000000000..0111d356e0e7
--- /dev/null
+++ b/net-analyzer/flow-tools/files/flow-tools-0.68.6-lto.patch
@@ -0,0 +1,31 @@
+We get a linker warning otherwise from YYSTYPE changing.
+--- a/lib/getdate.y
++++ b/lib/getdate.y
+@@ -1,3 +1,5 @@
++%define api.prefix {getdate}
++
+ %{
+ /*
+ ** Originally written by Steven M. Bellovin <smb@research.att.com> while
+@@ -117,10 +119,6 @@ extern struct tm *localtime();
+ extern time_t get_date(char * p, struct timeb * now);
+ /*@=exportheader@*/
+
+-#define yyparse getdate_yyparse
+-#define yylex getdate_yylex
+-#define yyerror getdate_yyerror
+-
+ static int yyparse (void);
+ static int yylex (void);
+ static int yyerror(const char * s);
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -1,7 +1,7 @@
+
+ noinst_HEADERS = flow-dscan.h pcap.h cflowd.h acl2.h
+
+-BUILT_SOURCES = aclyacc.h
++BUILT_SOURCES = aclyacc.h acllex.c
+ AM_YFLAGS = -d
+
+ EXTRA_DIST = ftbuild.sh
diff --git a/net-analyzer/flow-tools/files/flow-tools-0.68.6-mysql.patch b/net-analyzer/flow-tools/files/flow-tools-0.68.6-mysql.patch
new file mode 100644
index 000000000000..a270567fc205
--- /dev/null
+++ b/net-analyzer/flow-tools/files/flow-tools-0.68.6-mysql.patch
@@ -0,0 +1,15 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -62,11 +62,9 @@
+ if test "x$WHERE_MYSQL" != "x"; then
+ old_LIBS="$LIBS"
+ old_LDFLAGS="$LDFLAGS"
+- LDFLAGS="$LDFLAGS -L$WHERE_MYSQL/lib/mysql"
+- AC_CHECK_LIB(mysqlclient, my_init,
++ AC_CHECK_LIB(mysqlclient, mysql_init,
+ [
+ MYSQLCFLAGS="-I$WHERE_MYSQL/include/mysql"
+- MYSQLLDFLAGS="-L$WHERE_MYSQL/lib/mysql"
+ MYSQLLIB="-lmysqlclient"
+ AC_DEFINE(HAVE_MYSQL, 1, [Do we have to build MySQL support])
+ ]
diff --git a/net-analyzer/flow-tools/files/flowcapture.confd b/net-analyzer/flow-tools/files/flowcapture.confd
new file mode 100644
index 000000000000..e926d64a8eec
--- /dev/null
+++ b/net-analyzer/flow-tools/files/flowcapture.confd
@@ -0,0 +1,51 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# Config file for /etc/init.d/flowcap
+
+# This is the default and should be left unless you know what you are doing
+FLOW_VER=5
+
+# local ip. if configured flow-capture will only ps flows sent to this ip.
+LOCALIP=0
+
+# You probably don't want to change this, but in case you do - nest level
+NEST=0
+
+# port to listen on
+PORT=2055
+
+# remote ip. If this is configured only flows from this exporter will be accepted
+# by default we will accept any flows sent to us
+REMOTEIP=0
+
+# program used to rotate
+ROTATE_PROG="/var/lib/flows/bin/linkme"
+
+# number of rotations per day
+ROTATIONS=287
+
+# Retain the maximum number of files so that the total storage is less than SIZE
+# The letters b,K,M,G can be used as multipliers, ie 16 Megabytes is 16M.
+SIZE=1G
+
+# interval in mins at which flowscan will print out stats in logs
+#STAT_INT=5
+# NOTE: with versions of flow-tools >=0.67 there is a bug that will cause a loop if you specify the STAT_INT
+# Only use that variable if you using an older flow-tools (and consequently a custom built ebuild as this config file is not in our older ebuilds)
+
+# dir we will be saving flows and working in
+WORKDIR=/var/lib/flows/ft
+
+# user to run as
+USER=flows
+
+# Pidfile base
+# The daemon takes the pidfile argument and APPENDS .$PORT itself in writing.
+# It may have multiple children by original design, but this is not recommended
+# for Gentoo at this time.
+PIDFILE_BASE=${PIDFILE_BASE:=/run/flows/flowcapture.pid}
+
+# This pulls in the options above
+FLOW_OPTS="-p $PIDFILE_BASE -w $WORKDIR $LOCALIP/$REMOTEIP/$PORT -V $FLOW_VER -E $SIZE -n $ROTATIONS -N $NEST -R $ROTATE_PROG"
+# Use below only if you have sorted out the STAT_INT problem
+#FLOW_OPTS="-p /run/flows/flowcapture.pid.$PORT -w $WORKDIR $LOCALIP/$REMOTEIP/$PORT -S $STAT_INT -V $FLOW_VER -E $SIZE -n $ROTATIONS -N $NEST -R $ROTATE_PROG"
diff --git a/net-analyzer/flow-tools/files/flowcapture.initd b/net-analyzer/flow-tools/files/flowcapture.initd
new file mode 100644
index 000000000000..c6fc34728799
--- /dev/null
+++ b/net-analyzer/flow-tools/files/flowcapture.initd
@@ -0,0 +1,30 @@
+#!/sbin/openrc-run
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+PORT=${PORT:=2055}
+# The daemon takes the pidfile argument and APPENDS .$PORT itself in writing.
+# It may have multiple children by original design, but this is not recommended
+# for Gentoo at this time.
+PIDFILE_BASE=${PIDFILE_BASE:=/run/flows/flowcapture.pid}
+PIDFILE=${PIDFILE:=${PIDFILE_BASE}.${PORT}}
+
+depend() {
+ use net
+}
+
+start() {
+ ebegin "Starting flow-capture"
+ checkpath -d -o flows /run/flows
+ start-stop-daemon --start --user ${USER} --exec /usr/bin/flow-capture \
+ --pidfile ${PIDFILE} \
+ -- ${FLOW_OPTS} >/dev/null 2>&1
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping flow-capture"
+ start-stop-daemon --stop --quiet --exec /usr/bin/flow-capture \
+ --pidfile ${PIDFILE}
+ eend $?
+}
diff --git a/net-analyzer/flow-tools/files/linkme b/net-analyzer/flow-tools/files/linkme
new file mode 100644
index 000000000000..4f666d903d42
--- /dev/null
+++ b/net-analyzer/flow-tools/files/linkme
@@ -0,0 +1,15 @@
+#!/usr/bin/perl
+
+$base = "/var/lib/flows";
+if ($ARGV[0] =~ /.*[\/]*(ft-v05[^\/]*$)/) {
+$fileName = $1;
+} else {
+print "Must specify file\n";
+exit 1;
+}
+
+unless ( symlink("$base/ft/$fileName","$base/$fileName") ) {
+print "Unable to create symbolic link: $base/$fileName\n";
+exit 1;
+}
+
diff --git a/net-analyzer/flow-tools/flow-tools-0.68.6-r2.ebuild b/net-analyzer/flow-tools/flow-tools-0.68.6-r2.ebuild
new file mode 100644
index 000000000000..9f62f5b10615
--- /dev/null
+++ b/net-analyzer/flow-tools/flow-tools-0.68.6-r2.ebuild
@@ -0,0 +1,95 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools eapi9-ver
+
+DESCRIPTION="library and programs to process reports from NetFlow data"
+HOMEPAGE="https://github.com/5u623l20/flow-tools/"
+SRC_URI="https://github.com/5u623l20/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD GPL-3"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86"
+IUSE="debug mysql postgres ssl static-libs"
+
+RDEPEND="
+ acct-group/flows
+ acct-user/flows
+ sys-apps/tcp-wrappers
+ virtual/zlib:=
+ mysql? ( dev-db/mysql-connector-c:= )
+ postgres? ( dev-db/postgresql:* )
+ ssl? ( dev-libs/openssl:= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ app-text/docbook-sgml-utils
+ app-alternatives/lex
+ sys-devel/bison
+"
+
+DOCS=( ChangeLog.old README README.fork SECURITY TODO TODO.old )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.68.5.1-run.patch
+ "${FILESDIR}"/${PN}-0.68.5.1-openssl11.patch
+ "${FILESDIR}"/${PN}-0.68.5.1-fno-common.patch
+ "${FILESDIR}"/${PN}-0.68.6-mysql.patch
+ "${FILESDIR}"/${PN}-0.68.6-c99-c23.patch
+ "${FILESDIR}"/${PN}-0.68.6-lto.patch
+)
+
+src_prepare() {
+ default
+
+ sed -i -e 's|docbook-to-man|docbook2man|g' docs/Makefile.am || die
+ eautoreconf
+}
+
+src_configure() {
+ # Needs bison specifically for LTO patch (for setting a prefix)
+ unset YACC
+
+ local myeconfargs=(
+ $(use_enable static-libs static)
+
+ # configure logic is buggy
+ $(usev mysql --with-mysql)
+ --with-postgresql=$(usex postgres yes no)
+ $(usev ssl --with-openssl)
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+
+ exeinto /var/lib/flows/bin
+ doexe "${FILESDIR}"/linkme
+
+ keepdir /var/lib/flows/ft
+
+ newinitd "${FILESDIR}/flowcapture.initd" flowcapture
+ newconfd "${FILESDIR}/flowcapture.confd" flowcapture
+
+ fowners flows:flows /var/lib/flows
+ fowners flows:flows /var/lib/flows/bin
+ fowners flows:flows /var/lib/flows/ft
+
+ fperms 0755 /var/lib/flows
+ fperms 0755 /var/lib/flows/bin
+
+ find "${ED}" -name '*.la' -delete || die
+}
+
+pkg_postinst() {
+ if ver_replacing -lt 0.68.6-r2 ; then
+ ewarn "Config files have been moved bak to ${EPREFIX}/etc/flow-tools"
+ ewarn "after temporarily being in the wrong location of"
+ ewarn " ${EPREFIX}/etc/flow-tools/flow-tools"
+ ewarn "See bug #785040."
+ fi
+}
diff --git a/net-analyzer/flow-tools/metadata.xml b/net-analyzer/flow-tools/metadata.xml
new file mode 100644
index 000000000000..3093fbfbadf4
--- /dev/null
+++ b/net-analyzer/flow-tools/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <longdescription lang="en">Flow-tools is library and a collection of programs used to collect,
+ send, process, and generate reports from NetFlow data. The tools can be
+ used together on a single server or distributed to multiple servers for
+ large deployments. The flow-toools library provides an API for
+ development of custom applications for NetFlow export versions 1,5,6 and
+ the 14 currently defined version 8 subversions. A Perl and Python
+ interface have been contributed and are included in the distribution.</longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/flowgrind/Manifest b/net-analyzer/flowgrind/Manifest
new file mode 100644
index 000000000000..30f4e0a2a403
--- /dev/null
+++ b/net-analyzer/flowgrind/Manifest
@@ -0,0 +1 @@
+DIST flowgrind-0.8.2.tar.bz2 264486 BLAKE2B f0135abad43066895ce9acfb0050d12a22054d03f59e48164cde0444b3677a7581e86f25a5a967279432c95a65811135a5ce28da0f041553bca6299aabd783fa SHA512 6d1395881f45fb04b2c73bc7e01cea6610795b58f59c297577c8f30942c81334e8e95cefb2331e5e40dc5f4df64a21307a94d471113251fd3127272cd081bb7b
diff --git a/net-analyzer/flowgrind/flowgrind-0.8.2.ebuild b/net-analyzer/flowgrind/flowgrind-0.8.2.ebuild
new file mode 100644
index 000000000000..61eabf771920
--- /dev/null
+++ b/net-analyzer/flowgrind/flowgrind-0.8.2.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Network performance measurement tool"
+HOMEPAGE="http://flowgrind.net/ https://github.com/flowgrind/flowgrind/"
+SRC_URI="https://github.com/${PN}/${PN}/releases/download/${P}/${P}.tar.bz2"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc gsl pcap"
+
+RDEPEND="dev-libs/xmlrpc-c:=[abyss,curl]
+ sys-apps/util-linux
+ gsl? ( sci-libs/gsl:= )
+ pcap? ( net-libs/libpcap )"
+DEPEND="${RDEPEND}"
+BDEPEND="doc? ( app-text/doxygen )"
+
+src_configure() {
+ econf \
+ --disable-debug \
+ $(use_with doc doxygen) \
+ $(use_with gsl) \
+ $(use_with pcap)
+}
+
+src_compile() {
+ default
+
+ use doc && emake html
+}
+
+src_install() {
+ default
+
+ use doc && dodoc -r doc/html
+}
diff --git a/net-analyzer/flowgrind/metadata.xml b/net-analyzer/flowgrind/metadata.xml
new file mode 100644
index 000000000000..45bf9091663a
--- /dev/null
+++ b/net-analyzer/flowgrind/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <use>
+ <flag name="pcap">Enable packet capturing support using <pkg>net-libs/libpcap</pkg>
+ </flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/fping/Manifest b/net-analyzer/fping/Manifest
new file mode 100644
index 000000000000..0adead5abd42
--- /dev/null
+++ b/net-analyzer/fping/Manifest
@@ -0,0 +1,4 @@
+DIST fping-5.1.tar.gz 191224 BLAKE2B 2fb344e650b5a359fb8780f2c599455d39405ae823edf695ee4385aa2661dc5811e088bafa1b9f53846ee90c0afa959a92832381a03346d1fda048eb4e7ee098 SHA512 1a208da8dcd99093d0512af5d85ba5e7b5743ec97993d24c1fe612bb58d93090ac1ba0952f648aa075f16d390a77c4be65e394ae56dbede2a6914e0e8c68e2bd
+DIST fping-5.2.tar.gz 194259 BLAKE2B 7efb445f32ffe2d3766d598da5f1585270ae8e68ceb8b64e418040f330e7736bfaf0313077e28b12031af25ed7952943603d3a5908174c3f78d9a1af0b735da9 SHA512 062896662804c55ffe2d4e3eb7efc2ff796d20a77b367e16f8fa381e302986b5127ca55f0866bbf08f8ae2b2f6795ec4c5d43dc59ebec157fb3e8eff25d0bdb3
+DIST fping-5.3.tar.gz 197370 BLAKE2B cc7b8bd2c8099c8bfb5e14d5b27f45cf1dc1aef24f941f5bf9c7aede95dac9472d2fe4033e8b7ea66fea8d901b99a7c908e7beff5484c0577c3f88517ef1a7ea SHA512 b8cdc6bbd64cc854387b3868843e14d493ddae5ed3edbdc907326e16f1a9418a4bff3c9d07611edd0e78c055bca735ff7d326ef154b34e32b2d2d35956eb06fe
+DIST fping-5.4.tar.gz 195770 BLAKE2B b3c2f3ac8cb2d27593ad7a937c2fb27ab67bef3cd0d912a2a08b52bf9a96b2e5a5637567f0ef1203f86fefc99036a78ee05d69f175bdb1c2d62b6eaf6e474284 SHA512 377032bb1a104fdf7b9cf785808ae2aa23b83e60aab7288096c5a0f27657c1c40da1390f4fe8c7d52a6c3d43b7bf7e84065443b6e7fe73b9e51715623012c6b5
diff --git a/net-analyzer/fping/files/fping-5.1-c99-musl.patch b/net-analyzer/fping/files/fping-5.1-c99-musl.patch
new file mode 100644
index 000000000000..d56bb501682c
--- /dev/null
+++ b/net-analyzer/fping/files/fping-5.1-c99-musl.patch
@@ -0,0 +1,39 @@
+https://bugs.gentoo.org/895182
+https://github.com/schweikert/fping/commit/c0fbccb977c523ba671afdf0f37de40d26351f77
+
+From c0fbccb977c523ba671afdf0f37de40d26351f77 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Mon, 29 Aug 2022 15:41:51 -0700
+Subject: [PATCH] fping: Initialize msghdr struct in a portable way
+
+Initializing the structure assuming glibc layout results in
+compile errors on musl, therefore do partial intialization and then
+assigning the members individually.
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/src/fping.c
++++ b/src/fping.c
+@@ -1962,15 +1962,13 @@ int receive_packet(int64_t wait_time,
+ reply_buf,
+ reply_buf_len
+ };
+- struct msghdr recv_msghdr = {
+- reply_src_addr,
+- reply_src_addr_len,
+- &msg_iov,
+- 1,
+- &msg_control,
+- sizeof(msg_control),
+- 0
+- };
++ struct msghdr recv_msghdr = {0};
++ recv_msghdr.msg_name = reply_src_addr;
++ recv_msghdr.msg_namelen = reply_src_addr_len;
++ recv_msghdr.msg_iov = &msg_iov;
++ recv_msghdr.msg_iovlen = 1;
++ recv_msghdr.msg_control = &msg_control;
++ recv_msghdr.msg_controllen = sizeof(msg_control);
+ #if HAVE_SO_TIMESTAMPNS
+ struct cmsghdr *cmsg;
+ #endif
+
diff --git a/net-analyzer/fping/fping-5.1-r1.ebuild b/net-analyzer/fping/fping-5.1-r1.ebuild
new file mode 100644
index 000000000000..08249530baa5
--- /dev/null
+++ b/net-analyzer/fping/fping-5.1-r1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit fcaps
+
+DESCRIPTION="A utility to ping multiple hosts at once"
+HOMEPAGE="https://fping.org/ https://github.com/schweikert/fping/"
+SRC_URI="https://fping.org/dist/${P}.tar.gz"
+
+LICENSE="fping"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ppc ppc64 ~riscv ~sparc x86"
+IUSE="suid"
+
+FILECAPS=( cap_net_raw+ep usr/sbin/fping )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-5.1-c99-musl.patch
+)
+
+src_configure() {
+ econf --enable-ipv6
+}
+
+src_install() {
+ default
+
+ if use suid; then
+ fperms u+s /usr/sbin/fping
+ fi
+
+ dosym fping /usr/sbin/fping6
+}
diff --git a/net-analyzer/fping/fping-5.2.ebuild b/net-analyzer/fping/fping-5.2.ebuild
new file mode 100644
index 000000000000..48430ee22144
--- /dev/null
+++ b/net-analyzer/fping/fping-5.2.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit fcaps
+
+DESCRIPTION="Utility to ping multiple hosts at once"
+HOMEPAGE="https://fping.org/ https://github.com/schweikert/fping/"
+SRC_URI="
+ https://fping.org/dist/${P}.tar.gz
+ https://github.com/schweikert/fping/releases/download/v${PV}/${P}.tar.gz
+"
+
+LICENSE="fping"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ppc ppc64 ~riscv ~sparc x86"
+IUSE="debug suid"
+# There are some tests in ci/* but they don't seem to be for packaging
+# (they want to modify the live FS by e.g. copying to /tmp.)
+RESTRICT="test"
+
+FILECAPS=( cap_net_raw+ep usr/sbin/fping )
+
+src_configure() {
+ econf \
+ $(use_enable debug) \
+ --enable-ipv6
+}
+
+src_install() {
+ default
+
+ if use suid; then
+ fperms u+s /usr/sbin/fping
+ fi
+
+ dosym fping /usr/sbin/fping6
+}
diff --git a/net-analyzer/fping/fping-5.3.ebuild b/net-analyzer/fping/fping-5.3.ebuild
new file mode 100644
index 000000000000..48430ee22144
--- /dev/null
+++ b/net-analyzer/fping/fping-5.3.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit fcaps
+
+DESCRIPTION="Utility to ping multiple hosts at once"
+HOMEPAGE="https://fping.org/ https://github.com/schweikert/fping/"
+SRC_URI="
+ https://fping.org/dist/${P}.tar.gz
+ https://github.com/schweikert/fping/releases/download/v${PV}/${P}.tar.gz
+"
+
+LICENSE="fping"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ppc ppc64 ~riscv ~sparc x86"
+IUSE="debug suid"
+# There are some tests in ci/* but they don't seem to be for packaging
+# (they want to modify the live FS by e.g. copying to /tmp.)
+RESTRICT="test"
+
+FILECAPS=( cap_net_raw+ep usr/sbin/fping )
+
+src_configure() {
+ econf \
+ $(use_enable debug) \
+ --enable-ipv6
+}
+
+src_install() {
+ default
+
+ if use suid; then
+ fperms u+s /usr/sbin/fping
+ fi
+
+ dosym fping /usr/sbin/fping6
+}
diff --git a/net-analyzer/fping/fping-5.4.ebuild b/net-analyzer/fping/fping-5.4.ebuild
new file mode 100644
index 000000000000..a406a3ce3f73
--- /dev/null
+++ b/net-analyzer/fping/fping-5.4.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit fcaps
+
+DESCRIPTION="Utility to ping multiple hosts at once"
+HOMEPAGE="https://fping.org/ https://github.com/schweikert/fping/"
+SRC_URI="
+ https://fping.org/dist/${P}.tar.gz
+ https://github.com/schweikert/fping/releases/download/v${PV}/${P}.tar.gz
+"
+
+LICENSE="fping"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm arm64 ~hppa ppc ppc64 ~riscv ~sparc x86"
+IUSE="debug suid"
+# There are some tests in ci/* but they don't seem to be for packaging
+# (they want to modify the live FS by e.g. copying to /tmp.)
+RESTRICT="test"
+
+FILECAPS=( cap_net_raw+ep usr/sbin/fping )
+
+src_configure() {
+ econf \
+ $(use_enable debug) \
+ --enable-ipv6
+}
+
+src_install() {
+ default
+
+ if use suid; then
+ fperms u+s /usr/sbin/fping
+ fi
+
+ dosym fping /usr/sbin/fping6
+}
diff --git a/net-analyzer/fping/metadata.xml b/net-analyzer/fping/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/fping/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/fprobe/Manifest b/net-analyzer/fprobe/Manifest
new file mode 100644
index 000000000000..0bbcd5d5901a
--- /dev/null
+++ b/net-analyzer/fprobe/Manifest
@@ -0,0 +1 @@
+DIST fprobe-1.1.tar.bz2 104358 BLAKE2B 960fd8941ec2a7656b9eb02a0b6ae091b6ab564b4f97aa8147ce1bc3785964008168a1ac43a3fbe2e342987ee68fff711648edb910a059222017fe1282205e8e SHA512 35fa4bedf2c615093b6637630322115e12f005bc43186b86c55c6bdc76ae5308dd31e1d05632e26e07a30fba88d76b9acc98632bee4f372edcf9df5da3e32210
diff --git a/net-analyzer/fprobe/files/conf.d-fprobe-r1 b/net-analyzer/fprobe/files/conf.d-fprobe-r1
new file mode 100644
index 000000000000..ca7aff4e4341
--- /dev/null
+++ b/net-analyzer/fprobe/files/conf.d-fprobe-r1
@@ -0,0 +1,72 @@
+# Config file for /etc/init.d/fprobe
+
+# Do we want the interface in promiscous mode [yes/no]
+#PROMISC=no
+
+# Interface
+IFACE=eth0
+
+# required: only capture packets matching this tcpdump expression
+# default is all IP + IPv6
+FILTER="ip or ip6"
+
+# Flow state timers
+#TIMER_EXPIRED=5
+#TIMER_FRAGMENTED=30
+#TIMER_IDLE=60
+#TIMER_ACTIVE=300
+
+# This is the default and should be left unless you know what you are doing
+#FLOW_VER=5
+
+# local ip. if configured fprobe will use this as the source IP for sending ALL flow data
+# If you want to specify a specific source address per collecter, customize it below
+#LOCALIP=
+
+# SNMP iface id
+SNMP_IFACE="${IFACE#eth}"
+
+# Maximum number of concurrent flows to track
+# using a specified amount of memory
+#MEMBULK=10000
+#MEMLIMIT=
+
+# Pending queue
+#PENDING=100
+
+# Kernel capture buffer size (kB)
+#KERNBUF=1024
+
+# Realtime priority [0=disabled, 1..99]
+#RTPRIO=0
+
+# Delay N nanoseconds after each B bytes
+#DELAY="0:0"
+
+# How much of the start of each packet to grab
+#SNAPLEN=256
+
+# chroot() to this location after startup
+CHROOT="/var/empty"
+
+# User to run as. must have perms to the pidfile directory /var/run/fprobe/
+USER=nobody
+
+# logging level for syslog (0=EMERG, ..., 6=INFO, 7=DEBUG)
+#LOGLEVEL=6
+
+# If you want to run multiple instances of fprobe,
+# You MUST set this variable to a unique INTEGER for each one!
+PIDFILE_ID=''
+
+# remote ip. this is where we send flows
+REMOTEIP=127.0.0.1
+# port to listen on
+PORT=2055
+# Collector type, see the manpage for valid types
+TYPE=''
+
+# If you want multiple collectors, just specify each one here
+COLLECTORS="${REMOTEIP}:${PORT}/${LOCALIP}/${TYPE}"
+
+# vim:ft=gentoo-conf-d:
diff --git a/net-analyzer/fprobe/files/fprobe-1.1-autoconf.patch b/net-analyzer/fprobe/files/fprobe-1.1-autoconf.patch
new file mode 100644
index 000000000000..9adccbe127e3
--- /dev/null
+++ b/net-analyzer/fprobe/files/fprobe-1.1-autoconf.patch
@@ -0,0 +1,315 @@
+https://bugs.gentoo.org/921189
+
+Fix various underquoting issues and use of old macros.
+--- a/configure.in
++++ b/configure.in
+@@ -3,44 +3,42 @@ define([AC_CACHE_LOAD], )
+ define([AC_CACHE_SAVE], )
+
+ AC_INIT
+-AC_CANONICAL_SYSTEM
+-AM_INIT_AUTOMAKE(fprobe,1.1)
+-AM_CONFIG_HEADER(config.h)
++AC_CANONICAL_HOST
++AM_INIT_AUTOMAKE([fprobe], [1.1])
++AM_CONFIG_HEADER([config.h])
+
+ AC_PROG_CC
+ AC_PROG_INSTALL
+
+-AC_CHECK_LIB(pthread, pthread_create, ,
+- AC_CHECK_LIB(c_r, pthread_create), ,
+- [AC_ERROR(POSIX threads not found)])
+-AC_SEARCH_LIBS(socket, socket)
+-AC_SEARCH_LIBS(gethostbyname, nsl)
+-AC_SEARCH_LIBS(sched_setscheduler, rt)
++AC_CHECK_LIB([pthread], [pthread_create], [], [AC_CHECK_LIB([c_r], [pthread_create], [], [AC_MSG_ERROR(POSIX threads not found)])])
++AC_SEARCH_LIBS([socket], [socket])
++AC_SEARCH_LIBS([gethostbyname], [nsl])
++AC_SEARCH_LIBS([sched_setscheduler], [rt])
+
+ dnl ************************************************
+ dnl inttypes
+
+-AC_CHECK_HEADER(inttypes.h, ,
+- [AC_CHECK_SIZEOF(int, 8)
+- AC_CHECK_SIZEOF(long, 8)
+- AC_CHECK_SIZEOF(long long, 8)]
+-)
++AC_CHECK_HEADER([inttypes.h], [], [
++ AC_CHECK_SIZEOF([int], [8])
++ AC_CHECK_SIZEOF([long], [8])
++ AC_CHECK_SIZEOF([long long], [8])
++])
+
+ dnl ************************************************
+ dnl OS type
+
+-case "${target}" in
++case "${host}" in
+ *-*-*linux*)
+- AC_DEFINE_UNQUOTED(OS_LINUX, , OS type)
+- AC_DEFINE_UNQUOTED(CLONEBASED_THREADS, , clone()-based threads)
++ AC_DEFINE_UNQUOTED([OS_LINUX], [], [OS type])
++ AC_DEFINE_UNQUOTED([CLONEBASED_THREADS], [], [clone()-based threads])
+ CFLAGS="$CFLAGS -D_BSD_SOURCE"
+ ;;
+ *-*-solaris*)
+- AC_DEFINE_UNQUOTED(OS_SOLARIS, , OS type)
++ AC_DEFINE_UNQUOTED([OS_SOLARIS], [], [OS type])
+ CFLAGS="$CFLAGS -D_POSIX_PTHREAD_SEMANTICS"
+ ;;
+ *-*-freebsd*)
+- AC_DEFINE_UNQUOTED(OS_FREEBSD, , OS type)
++ AC_DEFINE_UNQUOTED([OS_FREEBSD], [], [OS type])
+ CFLAGS="$CFLAGS -pthread"
+ ;;
+ esac
+@@ -48,12 +46,12 @@ esac
+ dnl ************************************************
+ dnl pcap.h location
+
+-AC_ARG_WITH(pcap,
++AC_ARG_WITH([pcap],
+ [ --with-pcap=DIR pcap.h location],
+- pcap="$withval")
++ [pcap="$withval"])
+
+-AC_CHECK_HEADER(pcap.h, , [
+- AC_MSG_CHECKING(for pcap.h in alternative location)
++AC_CHECK_HEADER([pcap.h], [] , [
++ AC_MSG_CHECKING([for pcap.h in alternative location])
+ found=""
+ pcap_dirs="$pcap /usr/include/pcap"
+ for pcap in $pcap_dirs; do
+@@ -64,18 +62,18 @@ AC_CHECK_HEADER(pcap.h, , [
+ fi
+ done
+
+- AC_MSG_RESULT($found)
++ AC_MSG_RESULT([$found])
+ if test -z "$found"; then
+- AC_ERROR(pcap.h not found)
++ AC_MSG_ERROR([pcap.h not found])
+ fi
+ ])
+
+ dnl ************************************************
+ dnl libpcap location
+
+-AC_ARG_WITH(libpcap,
++AC_ARG_WITH([libpcap],
+ [ --with-libpcap=DIR libpcap location],
+- libpcap="$withval")
++ [libpcap="$withval"])
+
+ if test "$libpcap" = "yes"; then
+ libpcap=""
+@@ -85,15 +83,15 @@ if test "$libpcap"; then
+ LDFLAGS="$LDFLAGS -L$libpcap"
+ fi
+
+-AC_CHECK_LIB(pcap, pcap_loop, , AC_ERROR(libpcap not found), $LDFLAGS)
++AC_CHECK_LIB([pcap], [pcap_loop], [], [AC_MSG_ERROR(libpcap not found)], [$LDFLAGS])
+
+ dnl ************************************************
+ dnl Memory bulk indexing mode
+
+-AC_MSG_CHECKING(which memory bulk indexing mode to use)
+-AC_ARG_WITH(membulk,
++AC_MSG_CHECKING([which memory bulk indexing mode to use])
++AC_ARG_WITH([membulk],
+ [ --with-membulk=MODE indexing mode: index8|index16|ptr [default=ptr]],
+- mem="$withval", mem="ptr")
++ [mem="$withval"], [mem="ptr"])
+
+ case "$mem" in
+ ptr)
+@@ -106,95 +104,95 @@ case "$mem" in
+ mem_bits="16"
+ ;;
+ *)
+- AC_ERROR(Invalid argument: "$mem")
++ AC_MSG_ERROR([Invalid argument: "$mem"])
+ ;;
+ esac
+
+-AC_MSG_RESULT("$mem")
+-AC_DEFINE_UNQUOTED(MEM_BITS, $mem_bits, Memory bulk indexing mode)
++AC_MSG_RESULT([$mem])
++AC_DEFINE_UNQUOTED([MEM_BITS], [$mem_bits], [Memory bulk indexing mode])
+
+ dnl ************************************************
+ dnl Hash type
+
+-AC_MSG_CHECKING(which hash type and size to use)
+-AC_ARG_WITH(hash,
++AC_MSG_CHECKING([which hash type and size to use])
++AC_ARG_WITH([hash],
+ [ --with-hash=TYPE hash type: crc16|xor16|xor8 [default=crc16]],
+- hash="$withval", hash="crc16")
++ [hash="$withval"], [hash="crc16"])
+
+ hash_type=`echo "$hash"|cut -b -3`
+ hash_bits=`echo "$hash"|cut -b 4-`
+
+ if test "$hash_type" = "xor"; then
+- AC_DEFINE_UNQUOTED(HASH_TYPE_XOR, , Hash type)
++ AC_DEFINE_UNQUOTED([HASH_TYPE_XOR], [], [Hash type])
+ if test "$hash_bits" != "8" -a "$hash_bits" != "16"; then
+- AC_ERROR(Invalid argument: "$withval")
++ AC_MSG_ERROR([Invalid argument: "$withval"])
+ fi
+ else
+ if test "$hash" != "crc16"; then
+- AC_ERROR(Invalid argument: "$hash")
++ AC_MSG_ERROR([Invalid argument: "$hash"])
+ fi
+- AC_DEFINE_UNQUOTED(HASH_TYPE_CRC, , Hash type)
++ AC_DEFINE_UNQUOTED([HASH_TYPE_CRC], [], [Hash type])
+ fi
+
+-AC_DEFINE_UNQUOTED(HASH_BITS, $hash_bits , Hash size)
+-AC_MSG_RESULT("$hash")
++AC_DEFINE_UNQUOTED([HASH_BITS], [$hash_bits], [Hash size])
++AC_MSG_RESULT([$hash])
+
+ dnl ************************************************
+ dnl Uptime trick
+
+-AC_MSG_CHECKING(whether to enable uptime trick)
+-AC_ARG_ENABLE(uptime_trick,
++AC_MSG_CHECKING([whether to enable uptime trick])
++AC_ARG_ENABLE([uptime_trick],
+ [ --enable-uptime_trick enable uptime trick [default=yes]],
+- uptime_trick="$enableval", uptime_trick="yes")
++ [uptime_trick="$enableval"], [uptime_trick="yes"])
+ case "$uptime_trick" in
+ yes)
+- AC_MSG_RESULT(yes)
+- AC_DEFINE_UNQUOTED(UPTIME_TRICK, , Uptime trick)
++ AC_MSG_RESULT([yes])
++ AC_DEFINE_UNQUOTED([UPTIME_TRICK], [], [Uptime trick])
+ ;;
+ *)
+- AC_MSG_RESULT(no)
++ AC_MSG_RESULT([no])
+ ;;
+ esac
+
+ dnl ************************************************
+ dnl ICMP trick
+
+-AC_MSG_CHECKING(whether to enable icmp trick)
+-AC_ARG_ENABLE(icmp_trick,
++AC_MSG_CHECKING([whether to enable icmp trick])
++AC_ARG_ENABLE([icmp_trick],
+ [ --enable-icmp_trick enable icmp trick: yes|cisco|no [default=yes]],
+- icmp_trick="$enableval", icmp_trick="yes")
++ [icmp_trick="$enableval"], [icmp_trick="yes"])
+ case "$icmp_trick" in
+ yes)
+- AC_MSG_RESULT(yes)
+- AC_DEFINE_UNQUOTED(ICMP_TRICK, , ICMP trick)
++ AC_MSG_RESULT([yes])
++ AC_DEFINE_UNQUOTED([ICMP_TRICK], [], [ICMP trick])
+ ;;
+ cisco)
+- AC_MSG_RESULT(yes: cisco)
+- AC_DEFINE_UNQUOTED(ICMP_TRICK_CISCO, , ICMP trick)
++ AC_MSG_RESULT([yes: cisco])
++ AC_DEFINE_UNQUOTED([ICMP_TRICK_CISCO], [], [ICMP trick])
+ ;;
+ *)
+- AC_MSG_RESULT(no)
++ AC_MSG_RESULT([no])
+ ;;
+ esac
+
+ dnl ************************************************
+ dnl Debugging output
+
+-AC_MSG_CHECKING(whether to enable debugging)
++AC_MSG_CHECKING([whether to enable debugging])
+ AC_ARG_ENABLE(debug,
+ [ --enable-debug enable debugging [default=no]],
+- debug="$enableval", debug="no")
++ [debug="$enableval"], [debug="no"])
+ case "$debug" in
+ no)
+- AC_MSG_RESULT(no)
++ AC_MSG_RESULT([no])
+ debug_val="0"
+ ;;
+ yes)
+- AC_MSG_RESULT(all)
++ AC_MSG_RESULT([all])
+ debug_val="-1"
+ ;;
+ *)
+- AC_MSG_RESULT(custom: $debug)
++ AC_MSG_RESULT([custom: $debug])
+ debug_val="0"
+ debug=`echo $debug|tr , " "`
+ for i in $debug; do
+@@ -202,43 +200,44 @@ case "$debug" in
+ done
+ ;;
+ esac
+-AC_DEFINE_UNQUOTED(DEBUG, ($debug_val) , Debugging output)
++AC_DEFINE_UNQUOTED([DEBUG], [$debug_val], [Debugging output])
+
+ dnl ************************************************
+ dnl Runtime messages
+
+-AC_MSG_CHECKING(whether to enable runtime messages)
+-AC_ARG_ENABLE(messages,
++AC_MSG_CHECKING([whether to enable runtime messages])
++AC_ARG_ENABLE([messages],
+ [ --enable-messages enable runtime messages [default=no]],
+- messages="$enableval", messages="no")
++ [messages="$enableval"], [messages="no"])
+ case "$messages" in
+ yes)
+- AC_MSG_RESULT(yes)
+- AC_DEFINE_UNQUOTED(MESSAGES, , Runtime messages)
++ AC_MSG_RESULT([yes])
++ AC_DEFINE_UNQUOTED([MESSAGES], [], [Runtime messages])
+ ;;
+ *)
+- AC_MSG_RESULT(no)
++ AC_MSG_RESULT([no])
+ ;;
+ esac
+
+ dnl ************************************************
+ dnl Pidfiles location
+
+-AC_MSG_CHECKING(directory to store pidfiles)
+-AC_ARG_WITH(piddir,
++AC_MSG_CHECKING([directory to store pidfiles])
++AC_ARG_WITH([piddir],
+ [ --with-piddir=DIR pidfiles location [default=/var/run]],
+- piddir="$withval", piddir="/var/run")
+- AC_DEFINE_UNQUOTED(PID_DIR, "$piddir", Pidfiles location)
+- AC_MSG_RESULT("$piddir")
++ [piddir="$withval"], [piddir="/var/run"])
++AC_DEFINE_UNQUOTED([PID_DIR], ["$piddir"], [Pidfiles location])
++AC_MSG_RESULT([$piddir])
+
+ dnl ************************************************
+
+ CFLAGS="$CFLAGS -D_REENTRANT"
+ CFLAGS="$CFLAGS -DWALL -W -Wall"
+
+-AC_SUBST(PACKAGE)
+-AC_SUBST(VERSION)
++AC_SUBST([PACKAGE])
++AC_SUBST([VERSION])
+ DATE=`date +%Y-%m-%d`
+-AC_SUBST(DATE)
++AC_SUBST([DATE])
+
+-AC_OUTPUT(Makefile src/Makefile)
++AC_CONFIG_FILES([Makefile src/Makefile])
++AC_OUTPUT
diff --git a/net-analyzer/fprobe/files/fprobe-1.1-pidfile-sanity.patch b/net-analyzer/fprobe/files/fprobe-1.1-pidfile-sanity.patch
new file mode 100644
index 000000000000..c58c2a97c002
--- /dev/null
+++ b/net-analyzer/fprobe/files/fprobe-1.1-pidfile-sanity.patch
@@ -0,0 +1,47 @@
+If we are using the chroot() option or the setuid options, we must create the
+pidfile before doing the chroot OR the setreuid. It's actually best for
+start-stop-daemon if we create the pidfile from the master side of the fork()
+before it exits, since most of the startup checks happen after the chroot()
+unfortunetly.
+
+Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
+
+--- a/src/fprobe.c
++++ b/src/fprobe.c
+@@ -1379,7 +1379,8 @@
+
+ my_log_open(ident, verbosity, log_dest);
+ if (!(log_dest & 2)) {
+- switch (fork()) {
++ pid_t childpid = fork();
++ switch (childpid) {
+ case -1:
+ fprintf(stderr, "fork(): %s", strerror(errno));
+ exit(1);
+@@ -1392,6 +1393,12 @@
+ break;
+
+ default:
++ if (!(pidfile = fopen(pidfilepath, "w")))
++ my_log(LOG_ERR, "Can't create pid file. fopen(): %s", strerror(errno));
++ else {
++ fprintf(pidfile, "%ld\n", (long) childpid);
++ fclose(pidfile);
++ }
+ exit(0);
+ }
+ } else {
+@@ -1548,13 +1555,6 @@
+ }
+ }
+
+- if (!(pidfile = fopen(pidfilepath, "w")))
+- my_log(LOG_ERR, "Can't create pid file. fopen(): %s", strerror(errno));
+- else {
+- fprintf(pidfile, "%ld\n", (long) pid);
+- fclose(pidfile);
+- }
+-
+ my_log(LOG_INFO, "pid: %d", pid);
+ my_log(LOG_INFO, "interface: %s, datalink: %s (%d)",
+ dev, dlt[link_type_idx].descr, link_type);
diff --git a/net-analyzer/fprobe/files/fprobe-1.1-setgroups.patch b/net-analyzer/fprobe/files/fprobe-1.1-setgroups.patch
new file mode 100644
index 000000000000..948c6fee29c1
--- /dev/null
+++ b/net-analyzer/fprobe/files/fprobe-1.1-setgroups.patch
@@ -0,0 +1,15 @@
+This seems to fail after the chroot(), so just squelch the exit for now.
+
+Signed-off-by: Robin H. Johnson <robbat2@gentoo.org>
+
+--- a/src/fprobe.c
++++ b/src/fprobe.c
+@@ -1543,7 +1543,7 @@
+ if (pw) {
+ if (setgroups(0, NULL) < 0) {
+ my_log(LOG_CRIT, "setgroups: %s", strerror(errno));
+- exit(1);
++ //exit(1);
+ }
+ if (setregid(pw->pw_gid, pw->pw_gid)) {
+ my_log(LOG_CRIT, "setregid(%u): %s", pw->pw_gid, strerror(errno));
diff --git a/net-analyzer/fprobe/files/init.d-fprobe-r1 b/net-analyzer/fprobe/files/init.d-fprobe-r1
new file mode 100644
index 000000000000..2dc84b8bfbe9
--- /dev/null
+++ b/net-analyzer/fprobe/files/init.d-fprobe-r1
@@ -0,0 +1,40 @@
+#!/sbin/openrc-run
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ need net
+}
+
+BIN=/usr/sbin/fprobe
+PIDFILE_EXTRA=""
+[ -n "$PIDFILE_ID" ] && PIDFILE_EXTRA="[$PIDFILE_ID]"
+PIDFILE="/var/run/fprobe$PIDFILE_EXTRA.pid"
+
+start() {
+ ebegin "Starting fprobe"
+ local OPTS=""
+ [ "${PROMISC}" = "yes" ] || OPTS="${OPTS} -p"
+ for optname in i:IFACE s:TIMER_EXPIRED g:TIME_FRAGMENTED d:TIMER_IDLE \
+ e:TIMER_ACTIVE n:FLOW_VER a:LOCALIP x:SNMP_IFACE b:MEMBULK \
+ m:MEMLIMIT q:PENDING B:KERNBUF r:RTPRIO t:DELAY S:SNAPLEN \
+ c:CHROOT u:USER v:LOGLEVEL ; do
+ opt="${optname%:*}" optvar="${optname#*:}"
+ eval optvalue='$'$optvar
+ [ -n "$optvalue" ] && OPTS="${OPTS} -${opt} ${optvalue}"
+ done
+ OPTS="${OPTS} -l 1:${PIDFILE_ID} ${COLLECTORS}"
+ start-stop-daemon --start --exec $BIN \
+ --pidfile ${PIDFILE} \
+ -- -f "${FILTER}" ${OPTS}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping fprobe"
+ start-stop-daemon --stop --quiet --exec $BIN \
+ --pidfile ${PIDFILE}
+ eend $?
+}
+
+# vim:ft=gentoo-init-d:
diff --git a/net-analyzer/fprobe/fprobe-1.1-r6.ebuild b/net-analyzer/fprobe/fprobe-1.1-r6.ebuild
new file mode 100644
index 000000000000..31aa5507e0c1
--- /dev/null
+++ b/net-analyzer/fprobe/fprobe-1.1-r6.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="libpcap-based tool to collect network traffic data and emit it as NetFlow flows"
+HOMEPAGE="https://fprobe.sourceforge.net"
+SRC_URI="https://downloads.sourceforge.net/fprobe/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="debug messages"
+
+RDEPEND="net-libs/libpcap"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/fprobe-1.1-pidfile-sanity.patch
+ "${FILESDIR}"/fprobe-1.1-setgroups.patch
+)
+
+src_prepare() {
+ default
+
+ # Clang 16, bug #899924
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_enable debug) \
+ $(use_enable messages)
+}
+
+src_install() {
+ default
+
+ docinto contrib
+ dodoc contrib/tg.sh
+
+ newinitd "${FILESDIR}"/init.d-fprobe-r1 fprobe
+ newconfd "${FILESDIR}"/conf.d-fprobe-r1 fprobe
+}
diff --git a/net-analyzer/fprobe/fprobe-1.1-r7.ebuild b/net-analyzer/fprobe/fprobe-1.1-r7.ebuild
new file mode 100644
index 000000000000..6fcab549b32c
--- /dev/null
+++ b/net-analyzer/fprobe/fprobe-1.1-r7.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="libpcap-based tool to collect network traffic data and emit it as NetFlow flows"
+HOMEPAGE="https://fprobe.sourceforge.net"
+SRC_URI="https://downloads.sourceforge.net/fprobe/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="debug messages"
+
+RDEPEND="net-libs/libpcap"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/fprobe-1.1-pidfile-sanity.patch
+ "${FILESDIR}"/fprobe-1.1-setgroups.patch
+ "${FILESDIR}"/fprobe-1.1-autoconf.patch
+)
+
+src_prepare() {
+ default
+
+ # Clang 16, bug #899924
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_enable debug) \
+ $(use_enable messages)
+}
+
+src_install() {
+ default
+
+ docinto contrib
+ dodoc contrib/tg.sh
+
+ newinitd "${FILESDIR}"/init.d-fprobe-r1 fprobe
+ newconfd "${FILESDIR}"/conf.d-fprobe-r1 fprobe
+}
diff --git a/net-analyzer/fprobe/metadata.xml b/net-analyzer/fprobe/metadata.xml
new file mode 100644
index 000000000000..6b628b2365b7
--- /dev/null
+++ b/net-analyzer/fprobe/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <use>
+ <flag name="messages">enable console messages</flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/ftester/Manifest b/net-analyzer/ftester/Manifest
new file mode 100644
index 000000000000..742337d334b9
--- /dev/null
+++ b/net-analyzer/ftester/Manifest
@@ -0,0 +1 @@
+DIST ftester-1.0.tar.gz 30821 BLAKE2B 3c0fcd7070d09ef8339fa798334cadeb36459617e8dedffde6e04cdc0b88616fc914bb9660056d5d7fce48a34c06acfd56773a06b98348a03f8f7c0dd9fe0436 SHA512 413929178489c755fb5c876a88510bea28c59f1942a279c332fcd008ecbf4b0fd47e6b15abe1068c134d14c9ab2bdb841ffa280f95f77a819779e7e9626e9cfb
diff --git a/net-analyzer/ftester/ftester-1.0.ebuild b/net-analyzer/ftester/ftester-1.0.ebuild
new file mode 100644
index 000000000000..a14b04707519
--- /dev/null
+++ b/net-analyzer/ftester/ftester-1.0.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Firewall and Intrusion Detection System testing tool"
+HOMEPAGE="http://dev.inversepath.com/trac/ftester"
+SRC_URI="http://dev.inversepath.com/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+
+RDEPEND="
+ dev-perl/List-MoreUtils
+ dev-perl/Net-Pcap
+ dev-perl/Net-PcapUtils
+ dev-perl/Net-RawIP
+ dev-perl/NetPacket
+"
+
+src_install() {
+ dodoc CREDITS Changelog ftest.conf
+ doman ${PN}.8
+ dosbin ftestd ftest freport
+}
diff --git a/net-analyzer/ftester/metadata.xml b/net-analyzer/ftester/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/ftester/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/fwlogwatch/Manifest b/net-analyzer/fwlogwatch/Manifest
new file mode 100644
index 000000000000..5572520f8b49
--- /dev/null
+++ b/net-analyzer/fwlogwatch/Manifest
@@ -0,0 +1 @@
+DIST fwlogwatch-1.5.tar.bz2 94451 BLAKE2B c0456931dc425df4ec190f1c8bcba21e0784009dae66869a5f5c0371b68d0bdb1bf57c788468f7c9fd32abf8b676a4029bcde7d348c37e4b7f5771bc48f04297 SHA512 d4890596859929ddc6adfd7f9e735e0c414bad40eff6732120a522a8bd4fb8d1442c7d1026f0f3c6ac5c4d51b76a2bac486d04f0fbceae67395c585098afef85
diff --git a/net-analyzer/fwlogwatch/fwlogwatch-1.5-r1.ebuild b/net-analyzer/fwlogwatch/fwlogwatch-1.5-r1.ebuild
new file mode 100644
index 000000000000..f8552efe1626
--- /dev/null
+++ b/net-analyzer/fwlogwatch/fwlogwatch-1.5-r1.ebuild
@@ -0,0 +1,97 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit flag-o-matic strip-linguas toolchain-funcs
+
+DESCRIPTION="A packet filter and firewall log analyzer"
+HOMEPAGE="http://fwlogwatch.inside-security.de/"
+SRC_URI="http://fwlogwatch.inside-security.de/sw/${P}.tar.bz2"
+
+LICENSE="GPL-1"
+SLOT="0"
+KEYWORDS="amd64 ~ppc ~sparc x86"
+IUSE="geoip nls zlib"
+
+RDEPEND="
+ virtual/libcrypt:=
+ geoip? ( dev-libs/geoip )
+ zlib? ( virtual/zlib:= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ app-alternatives/lex
+ nls? ( sys-devel/gettext )
+"
+
+src_prepare() {
+ default
+
+ if use nls; then
+ strip-linguas -i po/
+ local lingua pofile
+ for pofile in po/*.po; do
+ lingua=${pofile/po\/}
+ lingua=${lingua/.po}
+ if ! has ${lingua} ${LINGUAS}; then
+ sed -i \
+ -e "/${lingua}.[mp]o/d" \
+ Makefile po/Makefile || die
+ fi
+ done
+ fi
+
+ sed -i \
+ -e '/^INSTALL_/s|$| -D|g' \
+ -e 's|make|$(MAKE)|g ' \
+ Makefile || die
+}
+
+src_configure() {
+ if ! use zlib; then
+ sed -i Makefile -e '/^LIBS/ s|-lz||g' || die
+ else
+ append-cflags -DHAVE_ZLIB
+ fi
+
+ if use geoip; then
+ append-cflags -DHAVE_GEOIP
+ sed -i Makefile -e '/^LIBS/ s| #| -lGeoIP #|g' || die
+ fi
+
+ use nls && append-cflags -DHAVE_GETTEXT
+}
+
+src_compile() {
+ # -std=gnu17 for bug #945298 (signal handlers)
+ emake \
+ CC="$(tc-getCC)" \
+ CFLAGS="${CFLAGS} -std=gnu17" \
+ LDFLAGS="${LDFLAGS}"
+ use nls && emake -C po
+}
+
+src_install() {
+ emake \
+ LOCALE_DIR="${D}/usr" INSTALL_DIR="${D}/usr" \
+ install
+
+ use nls && emake \
+ LOCALE_DIR="${D}/usr" INSTALL_DIR="${D}/usr" \
+ install-i18n
+
+ dosbin contrib/fwlw_notify
+ dosbin contrib/fwlw_respond
+
+ dodoc AUTHORS ChangeLog CREDITS README
+
+ insinto /usr/share/fwlogwatch/contrib
+
+ doins contrib/fwlogsummary.cgi
+ doins contrib/fwlogsummary_small.cgi
+ doins contrib/fwlogwatch.php
+
+ insinto /etc
+ doins fwlogwatch.config
+}
diff --git a/net-analyzer/fwlogwatch/metadata.xml b/net-analyzer/fwlogwatch/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/fwlogwatch/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/gnome-nettool/Manifest b/net-analyzer/gnome-nettool/Manifest
new file mode 100644
index 000000000000..3bf87fa30249
--- /dev/null
+++ b/net-analyzer/gnome-nettool/Manifest
@@ -0,0 +1 @@
+DIST gnome-nettool-42.0.tar.xz 422880 BLAKE2B 847f14781865eb936f0ded28a3f45ffa4ed02a20d335aea95a623795a2bb40bf57a49ecb28b26088c2818d028a401b3ef346806ea60305022bcafc9972094f4e SHA512 a640cd7f2008be870c4c457d3f793e6d31a10457b826641ef3cb9b831ea1d80756abc2a39aef7cb093905adafe41f27ee3c5648b1a6a3a01aa3d3ee7988330ce
diff --git a/net-analyzer/gnome-nettool/files/42.0-meson-drop-unused-positional-arguments.patch b/net-analyzer/gnome-nettool/files/42.0-meson-drop-unused-positional-arguments.patch
new file mode 100644
index 000000000000..e1da4288a742
--- /dev/null
+++ b/net-analyzer/gnome-nettool/files/42.0-meson-drop-unused-positional-arguments.patch
@@ -0,0 +1,38 @@
+https://gitlab.gnome.org/GNOME/gnome-nettool/-/merge_requests/3
+
+From 1124c3e1fdb8472d30b7636500229aa16cdc1244 Mon Sep 17 00:00:00 2001
+From: Jeremy Bicha <jeremy.bicha@canonical.com>
+Date: Wed, 6 Apr 2022 13:05:25 -0400
+Subject: [PATCH] meson: drop unused positional arguments
+
+This fixes a build error with newer meson
+---
+ data/meson.build | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/data/meson.build b/data/meson.build
+index 585e6d3..ed1e8bb 100644
+--- a/data/meson.build
++++ b/data/meson.build
+@@ -20,16 +20,14 @@ desktop_in = configure_file(input: 'gnome-nettool.desktop.in.in',
+ output: 'gnome-nettool.desktop.in',
+ configuration: desktop_conf)
+
+-i18n.merge_file('desktop',
+- type: 'desktop',
++i18n.merge_file(type: 'desktop',
+ input: desktop_in,
+ output: 'gnome-nettool.desktop',
+ po_dir: po_dir,
+ install: true,
+ install_dir: join_paths(prefix, datadir, 'applications'))
+
+-i18n.merge_file('appdata',
+- type: 'xml',
++i18n.merge_file(type: 'xml',
+ input: 'gnome-nettool.appdata.xml.in',
+ output: 'gnome-nettool.appdata.xml',
+ po_dir: po_dir,
+--
+GitLab
+
diff --git a/net-analyzer/gnome-nettool/gnome-nettool-42.0-r1.ebuild b/net-analyzer/gnome-nettool/gnome-nettool-42.0-r1.ebuild
new file mode 100644
index 000000000000..400787c3d48b
--- /dev/null
+++ b/net-analyzer/gnome-nettool/gnome-nettool-42.0-r1.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+inherit gnome.org gnome2-utils meson python-any-r1 xdg
+
+DESCRIPTION="Graphical front-ends to various networking command-line"
+HOMEPAGE="https://gitlab.gnome.org/Archive/gnome-nettool"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ppc ~ppc64 ~sparc ~x86"
+
+DEPEND="
+ >=x11-libs/gtk+-3.0.0:3
+ >=dev-libs/glib-2.26:2
+ gnome-base/libgtop:2=
+"
+RDEPEND="${DEPEND}
+ || (
+ net-misc/iputils
+ net-analyzer/tcptraceroute
+ net-analyzer/traceroute
+ )
+ net-analyzer/nmap
+ >=net-dns/bind-9.20
+ net-misc/netkit-fingerd
+ net-misc/whois
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ app-text/yelp-tools
+ virtual/pkgconfig
+ sys-devel/gettext
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PV}-meson-drop-unused-positional-arguments.patch
+)
+
+pkg_postinst() {
+ xdg_pkg_postinst
+ gnome2_schemas_update
+}
+
+pkg_postrm() {
+ xdg_pkg_postrm
+ gnome2_schemas_update
+}
diff --git a/net-analyzer/gnome-nettool/gnome-nettool-42.0.ebuild b/net-analyzer/gnome-nettool/gnome-nettool-42.0.ebuild
new file mode 100644
index 000000000000..1ff32d6b6e51
--- /dev/null
+++ b/net-analyzer/gnome-nettool/gnome-nettool-42.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+inherit gnome.org gnome2-utils meson python-any-r1 xdg
+
+DESCRIPTION="Graphical front-ends to various networking command-line"
+HOMEPAGE="https://gitlab.gnome.org/GNOME/gnome-nettool"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~ppc ~ppc64 ~sparc x86"
+
+DEPEND="
+ >=x11-libs/gtk+-3.0.0:3
+ >=dev-libs/glib-2.26:2
+ gnome-base/libgtop:2=
+"
+RDEPEND="${DEPEND}
+ || (
+ net-misc/iputils
+ net-analyzer/tcptraceroute
+ net-analyzer/traceroute
+ )
+ net-analyzer/nmap
+ net-dns/bind-tools
+ net-misc/netkit-fingerd
+ net-misc/whois
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ app-text/yelp-tools
+ virtual/pkgconfig
+ sys-devel/gettext
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PV}-meson-drop-unused-positional-arguments.patch
+)
+
+pkg_postinst() {
+ xdg_pkg_postinst
+ gnome2_schemas_update
+}
+
+pkg_postrm() {
+ xdg_pkg_postrm
+ gnome2_schemas_update
+}
diff --git a/net-analyzer/gnome-nettool/metadata.xml b/net-analyzer/gnome-nettool/metadata.xml
new file mode 100644
index 000000000000..f6b6cde5f785
--- /dev/null
+++ b/net-analyzer/gnome-nettool/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>gnome@gentoo.org</email>
+ <name>Gentoo GNOME Desktop</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/goaccess/Manifest b/net-analyzer/goaccess/Manifest
new file mode 100644
index 000000000000..f9dd67d760d4
--- /dev/null
+++ b/net-analyzer/goaccess/Manifest
@@ -0,0 +1,2 @@
+DIST goaccess-1.8.1.tar.gz 740177 BLAKE2B cc1f17c72adeeaf50d3b6c7bef47a044a3bbf06fb44d73da9b1ae68ea71d8e276dbe02c6a89cf0a72f3327e817e8d59235f788d29aeb7c7c889bacf81b64292a SHA512 96f0b73f13cfb77ad57748bce7d8791f8486bfd5ce47420d1c0016826a4deb9ab2d2742f4afd5d8b0eed003f9b596aae51f232fa71bf47f823b6ff8119f91354
+DIST goaccess-1.9.3.tar.gz 821878 BLAKE2B 99a3a0f9b73a24bb871df2eb16be44dfefbe8fdcd9f10aec66beca98bae65a8b98085c58168c35407f53cf599cf33bc930247f7f7241742ca7750ef68236992e SHA512 6f838d006bec65819d42115b9ce6edb3d839c1bbb609353163960361684ae67c5ecb859e5c9e19eb3233aac4e97c18bdd4d19e1919b05695b3dfef3ca5e7a192
diff --git a/net-analyzer/goaccess/files/goaccess.confd b/net-analyzer/goaccess/files/goaccess.confd
new file mode 100644
index 000000000000..4ff75a1a4ff6
--- /dev/null
+++ b/net-analyzer/goaccess/files/goaccess.confd
@@ -0,0 +1,8 @@
+# Config file for /etc/init.d/goaccess
+
+# Various options.
+# run `goaccess --help` for valid cmdline options
+OPTS="--user-name=goaccess --pid-file=/run/goaccess/goaccess.pid -o /var/lib/goaccess/goaccess.html -l /var/log/goaccess/goaccess.log"
+
+# GoAccess config file
+#CONFIG="/etc/goaccess/goaccess.conf"
diff --git a/net-analyzer/goaccess/files/goaccess.initd b/net-analyzer/goaccess/files/goaccess.initd
new file mode 100644
index 000000000000..bd782952cfb4
--- /dev/null
+++ b/net-analyzer/goaccess/files/goaccess.initd
@@ -0,0 +1,15 @@
+#!/sbin/openrc-run
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+command="/usr/bin/goaccess"
+name="GoAccess"
+description="Real-time web log analyzer"
+config="${CONFIG:-/etc/goaccess/goaccess.conf}"
+command_args="--real-time-html --daemonize -p $config ${OPTS}"
+pidfile="/run/goaccess/${RC_SVCNAME}.pid"
+start_stop_daemon_args="-q"
+
+depend() {
+ need net
+}
diff --git a/net-analyzer/goaccess/files/goaccess.service b/net-analyzer/goaccess/files/goaccess.service
new file mode 100644
index 000000000000..8fab5f9b7c56
--- /dev/null
+++ b/net-analyzer/goaccess/files/goaccess.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Real-time web log analyzer
+After=network.target
+
+[Service]
+Type=simple
+User=root
+Group=root
+Restart=always
+ExecStart=/usr/bin/goaccess --real-time-html --daemonize -p /etc/goaccess/goaccess.conf --user-name=goaccess -o /var/lib/goaccess/goaccess.html -l /var/log/goaccess/goaccess.log
+StandardOutput=null
+StandardError=null
+
+[Install]
+WantedBy=multi-user.target
diff --git a/net-analyzer/goaccess/files/goaccess.tmpfile b/net-analyzer/goaccess/files/goaccess.tmpfile
new file mode 100644
index 000000000000..caee9ffff853
--- /dev/null
+++ b/net-analyzer/goaccess/files/goaccess.tmpfile
@@ -0,0 +1 @@
+d /run/goaccess 0755 goaccess goaccess
diff --git a/net-analyzer/goaccess/goaccess-1.8.1.ebuild b/net-analyzer/goaccess/goaccess-1.8.1.ebuild
new file mode 100644
index 000000000000..483e675fa316
--- /dev/null
+++ b/net-analyzer/goaccess/goaccess-1.8.1.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# shellcheck disable=SC2207
+
+EAPI=8
+
+inherit autotools optfeature systemd tmpfiles
+
+DESCRIPTION="A real-time web log analyzer and interactive viewer in a terminal"
+HOMEPAGE="https://goaccess.io"
+SRC_URI="https://tar.goaccess.io/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug geoip geoipv2 getline ssl unicode"
+REQUIRED_USE="geoipv2? ( geoip )"
+
+RDEPEND="acct-group/goaccess
+ acct-user/goaccess
+ sys-libs/ncurses:=[unicode(+)?]
+ geoip? (
+ !geoipv2? ( dev-libs/geoip )
+ geoipv2? ( dev-libs/libmaxminddb:0= )
+ )
+ ssl? ( dev-libs/openssl:0= )"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+src_prepare() {
+ default
+
+ # Enable log-format, define log file and db path,
+ # change path to GeoIP bases in config
+ sed -i -e '/log-format COMBINED/s/#//' \
+ -e '/log-file/s/#//' \
+ -e '/db-path/s|tmp|var/lib/goaccess|' \
+ -e '/geoip-database/s|local/||' config/goaccess.conf \
+ || die "sed failed for goaccess.conf"
+
+ eautoreconf
+}
+
+src_configure() {
+ local myeconfargs=(
+ $(use_enable debug)
+ $(use_enable geoip geoip "$(usex geoipv2 mmdb legacy)")
+ $(use_enable unicode utf8)
+ $(use_with getline)
+ $(use_with ssl openssl)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+
+ newinitd "${FILESDIR}"/goaccess.initd goaccess
+ newconfd "${FILESDIR}"/goaccess.confd goaccess
+ systemd_dounit "${FILESDIR}"/goaccess.service
+ newtmpfiles "${FILESDIR}"/goaccess.tmpfile goaccess.conf
+
+ diropts -o goaccess -g goaccess -m 0700
+ keepdir /var/lib/goaccess/db /var/log/goaccess
+}
+
+pkg_postinst() {
+ optfeature "update GeoIP databases" net-misc/geoipupdate
+ tmpfiles_process goaccess.conf
+}
diff --git a/net-analyzer/goaccess/goaccess-1.9.3.ebuild b/net-analyzer/goaccess/goaccess-1.9.3.ebuild
new file mode 100644
index 000000000000..cd8029868ed2
--- /dev/null
+++ b/net-analyzer/goaccess/goaccess-1.9.3.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# shellcheck disable=SC2207
+
+EAPI=8
+
+inherit optfeature systemd tmpfiles
+
+DESCRIPTION="A real-time web log analyzer and interactive viewer in a terminal"
+HOMEPAGE="https://goaccess.io"
+SRC_URI="https://tar.goaccess.io/${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="debug geoip geoipv2 getline ssl unicode"
+REQUIRED_USE="geoipv2? ( geoip )"
+
+RDEPEND="acct-group/goaccess
+ acct-user/goaccess
+ sys-libs/ncurses:=[unicode(+)?]
+ geoip? (
+ !geoipv2? ( dev-libs/geoip )
+ geoipv2? ( dev-libs/libmaxminddb:0= )
+ )
+ ssl? ( dev-libs/openssl:0= )"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+src_prepare() {
+ default
+
+ # Enable log-format, define log file and db path,
+ # change path to GeoIP bases in config
+ sed -i -e '/log-format COMBINED/s/#//' \
+ -e '/log-file/s/#//' \
+ -e '/db-path/s|tmp|var/lib/goaccess|' \
+ -e '/geoip-database/s|local/||' config/goaccess.conf \
+ || die "sed failed for goaccess.conf"
+}
+
+src_configure() {
+ local myeconfargs=(
+ $(use_enable debug)
+ $(use_enable geoip geoip "$(usex geoipv2 mmdb legacy)")
+ $(use_enable unicode utf8)
+ $(use_with getline)
+ $(use_with ssl openssl)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+
+ newinitd "${FILESDIR}"/goaccess.initd goaccess
+ newconfd "${FILESDIR}"/goaccess.confd goaccess
+ systemd_dounit "${FILESDIR}"/goaccess.service
+ newtmpfiles "${FILESDIR}"/goaccess.tmpfile goaccess.conf
+
+ diropts -o goaccess -g goaccess -m 0700
+ keepdir /var/lib/goaccess/db /var/log/goaccess
+}
+
+pkg_postinst() {
+ optfeature "update GeoIP databases" net-misc/geoipupdate
+ tmpfiles_process goaccess.conf
+}
diff --git a/net-analyzer/goaccess/goaccess-9999.ebuild b/net-analyzer/goaccess/goaccess-9999.ebuild
new file mode 100644
index 000000000000..58691f5c27b8
--- /dev/null
+++ b/net-analyzer/goaccess/goaccess-9999.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# shellcheck disable=SC2207
+
+EAPI=8
+
+EGIT_REPO_URI="https://github.com/allinurl/${PN}.git"
+
+inherit autotools git-r3 optfeature systemd tmpfiles
+
+DESCRIPTION="A real-time web log analyzer and interactive viewer in a terminal"
+HOMEPAGE="https://goaccess.io"
+
+LICENSE="MIT"
+SLOT="0"
+IUSE="debug geoip geoipv2 getline ssl unicode"
+REQUIRED_USE="geoipv2? ( geoip )"
+
+RDEPEND="acct-group/goaccess
+ acct-user/goaccess
+ sys-libs/ncurses:=[unicode(+)?]
+ geoip? (
+ !geoipv2? ( dev-libs/geoip )
+ geoipv2? ( dev-libs/libmaxminddb:0= )
+ )
+ ssl? ( dev-libs/openssl:0= )"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+src_prepare() {
+ default
+
+ # Enable log-format, define log file and db path,
+ # change path to GeoIP bases in config
+ sed -i -e '/log-format COMBINED/s/#//' \
+ -e '/log-file/s/#//' \
+ -e '/db-path/s|tmp|var/lib/goaccess|' \
+ -e '/geoip-database/s|local/||' config/goaccess.conf \
+ || die "sed failed for goaccess.conf"
+
+ eautoreconf
+}
+
+src_configure() {
+ local myeconfargs=(
+ $(use_enable debug)
+ $(use_enable geoip geoip "$(usex geoipv2 mmdb legacy)")
+ $(use_enable unicode utf8)
+ $(use_with getline)
+ $(use_with ssl openssl)
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+
+ newinitd "${FILESDIR}"/goaccess.initd goaccess
+ newconfd "${FILESDIR}"/goaccess.confd goaccess
+ systemd_dounit "${FILESDIR}"/goaccess.service
+ newtmpfiles "${FILESDIR}"/goaccess.tmpfile goaccess.conf
+
+ diropts -o goaccess -g goaccess -m 0700
+ keepdir /var/lib/goaccess/db /var/log/goaccess
+}
+
+pkg_postinst() {
+ optfeature "update GeoIP databases" net-misc/geoipupdate
+ tmpfiles_process goaccess.conf
+}
diff --git a/net-analyzer/goaccess/metadata.xml b/net-analyzer/goaccess/metadata.xml
new file mode 100644
index 000000000000..1d54eeedf8ae
--- /dev/null
+++ b/net-analyzer/goaccess/metadata.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>spiderx@spiderx.dp.ua</email>
+ <name>Vladimir Pavljuchenkov</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription lang="en">
+ GoAccess is an open source real-time web log
+ analyzer and interactive viewer that runs in a terminal in *nix systems.
+ It provides fast and valuable HTTP statistics for system administrators
+ that require a visual server report on the fly.
+ </longdescription>
+ <use>
+ <flag name="geoipv2">Enable support for GeoIP2 through <pkg>dev-libs/libmaxminddb</pkg>
+ </flag>
+ <flag name="getline">Use GNU getline() to parse full line requests</flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/gr-fosphor/Manifest b/net-analyzer/gr-fosphor/Manifest
new file mode 100644
index 000000000000..6a00043f7379
--- /dev/null
+++ b/net-analyzer/gr-fosphor/Manifest
@@ -0,0 +1 @@
+DIST gr-fosphor-0.0_p20260330.tar.gz 226409 BLAKE2B bb9daf6901b8de8048664577040bf83321779c48e839b395604ddd54e53adb7c7372ff3400aaa2afb2650638e61f7baece3dc8cbd95b9cb57dcae4a024061f72 SHA512 9b6a2181b8a77f347b75df060e831ae24d042fc37457738b380d1d6cc52710b5ecfbeb531c8490caf281285b97e3a407765501c9450128500748803fb8e3dc1a
diff --git a/net-analyzer/gr-fosphor/files/gr-fosphor-0.0_p20200131-htmldir.patch b/net-analyzer/gr-fosphor/files/gr-fosphor-0.0_p20200131-htmldir.patch
new file mode 100644
index 000000000000..16a4475299bf
--- /dev/null
+++ b/net-analyzer/gr-fosphor/files/gr-fosphor-0.0_p20200131-htmldir.patch
@@ -0,0 +1,8 @@
+--- a/docs/doxygen/CMakeLists.txt
++++ b/docs/doxygen/CMakeLists.txt
+@@ -50,4 +50,4 @@
+
+ add_custom_target(doxygen_target ALL DEPENDS ${BUILT_DIRS})
+
+-install(DIRECTORY ${BUILT_DIRS} DESTINATION ${GR_PKG_DOC_DIR})
++install(DIRECTORY ${BUILT_DIRS} DESTINATION ${CMAKE_INSTALL_DOCDIR})
diff --git a/net-analyzer/gr-fosphor/gr-fosphor-0.0_p20260330.ebuild b/net-analyzer/gr-fosphor/gr-fosphor-0.0_p20260330.ebuild
new file mode 100644
index 000000000000..8d35f0669a8d
--- /dev/null
+++ b/net-analyzer/gr-fosphor/gr-fosphor-0.0_p20260330.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit cmake python-single-r1
+
+DESCRIPTION="gnuradio fosphor block (GPU spectrum display)"
+HOMEPAGE="https://sdr.osmocom.org/trac/wiki/fosphor"
+
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+ #EGIT_REPO_URI="https://github.com/osmocom/${PN}.git"
+ EGIT_REPO_URI="https://github.com/ZeroChaos-/${PN}.git"
+else
+ COMMIT="d62dde896432b0a807bbbc16d20c8e76b9547f0a"
+ #SRC_URI="https://github.com/osmocom/gr-fosphor/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
+ SRC_URI="https://github.com/ZeroChaos-/${PN}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
+ S="${WORKDIR}/${PN}-${COMMIT}"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-3+"
+SLOT="0"
+IUSE="glfw"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="${PYTHON_DEPS}
+ dev-libs/boost:=
+ dev-libs/log4cpp
+ $(python_gen_cond_dep 'dev-python/pygccxml[${PYTHON_USEDEP}]')
+ media-libs/freetype
+ >=net-wireless/gnuradio-3.9:0=[${PYTHON_SINGLE_USEDEP}]
+ glfw? ( >=media-libs/glfw-3 )
+ virtual/opencl
+ virtual/opengl
+"
+DEPEND="${RDEPEND}"
+BDEPEND="$(python_gen_cond_dep 'dev-python/pybind11[${PYTHON_USEDEP}]')"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.0_p20200131-htmldir.patch
+)
+
+src_prepare() {
+ cmake_src_prepare
+
+ # adapt python bindings to use flags
+ use glfw || sed -i -e "s#bind_glfw_sink_c(m)##" \
+ python/bindings/python_bindings.cc || die
+ sed -i -e "s#bind_qt_sink_c(m)##" \
+ python/bindings/python_bindings.cc || die
+}
+
+src_configure() {
+ # tries to run OpenCL test program, but failing doesn't hurt
+ addpredict /dev/dri
+
+ local mycmakeargs=(
+ -DENABLE_DEFAULT=OFF
+ -DENABLE_GLFW="$(usex glfw)"
+ -DENABLE_QT=OFF # bug #961742
+ -DENABLE_PYTHON=ON
+ )
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+ find "${D}" -name '*.py[oc]' -delete || die
+ python_optimize
+}
diff --git a/net-analyzer/gr-fosphor/gr-fosphor-9999.ebuild b/net-analyzer/gr-fosphor/gr-fosphor-9999.ebuild
new file mode 100644
index 000000000000..0aca85c2bcc0
--- /dev/null
+++ b/net-analyzer/gr-fosphor/gr-fosphor-9999.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit cmake python-single-r1
+
+DESCRIPTION="gnuradio fosphor block (GPU spectrum display)"
+HOMEPAGE="https://sdr.osmocom.org/trac/wiki/fosphor"
+
+if [[ ${PV} == *9999* ]]; then
+ inherit git-r3
+ #EGIT_REPO_URI="https://github.com/osmocom/${PN}.git"
+ EGIT_REPO_URI="https://github.com/ZeroChaos-/${PN}.git"
+else
+ COMMIT="662577bb1969fdd9363ff6a574c47af54f1bb607"
+ #SRC_URI="https://github.com/osmocom/gr-fosphor/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
+ SRC_URI="https://github.com/ZeroChaos-/${PN}/archive/${COMMIT}.tar.gz -> ${P}.gh.tar.gz"
+ S="${WORKDIR}/${PN}-${COMMIT}"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-3+"
+SLOT="0"
+IUSE="glfw"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="${PYTHON_DEPS}
+ dev-libs/boost:=
+ dev-libs/log4cpp
+ $(python_gen_cond_dep 'dev-python/pygccxml[${PYTHON_USEDEP}]')
+ media-libs/freetype
+ >=net-wireless/gnuradio-3.9:0=[${PYTHON_SINGLE_USEDEP}]
+ glfw? ( >=media-libs/glfw-3 )
+ virtual/opencl
+ virtual/opengl
+"
+DEPEND="${RDEPEND}"
+BDEPEND="$(python_gen_cond_dep 'dev-python/pybind11[${PYTHON_USEDEP}]')"
+
+src_prepare() {
+ cmake_src_prepare
+
+ # adapt python bindings to use flags
+ use glfw || sed -i -e "s#bind_glfw_sink_c(m)##" \
+ python/bindings/python_bindings.cc || die
+ sed -i -e "s#bind_qt_sink_c(m)##" \
+ python/bindings/python_bindings.cc || die
+}
+
+src_configure() {
+ # tries to run OpenCL test program, but failing doesn't hurt
+ addpredict /dev/dri
+
+ local mycmakeargs=(
+ -DENABLE_DEFAULT=OFF
+ -DENABLE_GLFW="$(usex glfw)"
+ -DENABLE_QT=OFF # bug #961742
+ -DENABLE_PYTHON=ON
+ )
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+ find "${D}" -name '*.py[oc]' -delete || die
+ python_optimize
+}
diff --git a/net-analyzer/gr-fosphor/metadata.xml b/net-analyzer/gr-fosphor/metadata.xml
new file mode 100644
index 000000000000..9543ee732277
--- /dev/null
+++ b/net-analyzer/gr-fosphor/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>radio@gentoo.org</email>
+ <name>Radio</name>
+ </maintainer>
+ <use>
+ <flag name="glfw">enable GLFW based interface</flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/greenbone-feed-sync/Manifest b/net-analyzer/greenbone-feed-sync/Manifest
new file mode 100644
index 000000000000..5f121672a393
--- /dev/null
+++ b/net-analyzer/greenbone-feed-sync/Manifest
@@ -0,0 +1,2 @@
+DIST greenbone-feed-sync-25.1.0.tar.gz 65345 BLAKE2B cf0c8ce7b7387b70ea00a87ecc48b12f1529b80e92f13dadfc31c15c81bd549261aa4ec83124c16be4833fc202c0b5000ca0ef92ca2d5fa5f8686ba4c01b63e8 SHA512 970aa6b0b75fabc45629dca3f036a3fca925fa03e52f704033a1d4497e77afaedcbfe9afea94400ab1b136bb19d8829cdab45d6c3c9de6088e9a48da0871128f
+DIST greenbone-feed-sync-25.2.0.tar.gz 75235 BLAKE2B af655cb9e76e97773ef19288b032d9516c18bd8e848ab622f699508b25a8a68d50040da2f86a8eea0c988a875a53166759f170ffb5e1c6956529fa55761b7772 SHA512 33b61109ea0f7b728c980e8a14f780b25ca5c06bc37e280e60bd25a69e9119594e6a40b1a795f9aa4e439e2c78a68e298822d879c93235228941ec005f55bd0c
diff --git a/net-analyzer/greenbone-feed-sync/files/greenbone-feed-sync.cron b/net-analyzer/greenbone-feed-sync/files/greenbone-feed-sync.cron
new file mode 100644
index 000000000000..5b3755982966
--- /dev/null
+++ b/net-analyzer/greenbone-feed-sync/files/greenbone-feed-sync.cron
@@ -0,0 +1,7 @@
+#!/bin/sh
+#
+# To enable sync via cron, execute "sudo -u gvm touch /etc/gvm/cron-feed-sync-enabled"
+if [[ ! -f /etc/gvm/cron-feed-sync-enabled ]]; then
+ exit
+fi
+sudo -u gvm /usr/bin/greenbone-feed-sync --quiet --type all
diff --git a/net-analyzer/greenbone-feed-sync/files/greenbone-feed-sync.service b/net-analyzer/greenbone-feed-sync/files/greenbone-feed-sync.service
new file mode 100644
index 000000000000..987fe731d47b
--- /dev/null
+++ b/net-analyzer/greenbone-feed-sync/files/greenbone-feed-sync.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=sync the Greenbone Community Feed
+
+[Service]
+Type=oneshot
+ExecStart=/usr/bin/greenbone-feed-sync --quiet --type all
+SyslogIdentifier=greenbone-feed-sync
+User=gvm
+
+[Install]
+WantedBy=multi-user.target
diff --git a/net-analyzer/greenbone-feed-sync/files/greenbone-feed-sync.timer b/net-analyzer/greenbone-feed-sync/files/greenbone-feed-sync.timer
new file mode 100644
index 000000000000..9faf470e013c
--- /dev/null
+++ b/net-analyzer/greenbone-feed-sync/files/greenbone-feed-sync.timer
@@ -0,0 +1,9 @@
+[Unit]
+Description=Daily update of all feeds of the Greenbone Vulerability Management (GMV) suite
+
+[Timer]
+OnCalendar=daily
+RandomizedDelaySec=2hour
+
+[Install]
+WantedBy=timers.target
diff --git a/net-analyzer/greenbone-feed-sync/greenbone-feed-sync-25.1.0.ebuild b/net-analyzer/greenbone-feed-sync/greenbone-feed-sync-25.1.0.ebuild
new file mode 100644
index 000000000000..6ae553941f14
--- /dev/null
+++ b/net-analyzer/greenbone-feed-sync/greenbone-feed-sync-25.1.0.ebuild
@@ -0,0 +1,102 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+DISTUTILS_USE_PEP517=poetry
+inherit distutils-r1 systemd
+
+DESCRIPTION="New script for syncing the Greenbone Community Feed"
+HOMEPAGE="https://github.com/greenbone/greenbone-feed-sync"
+SRC_URI="https://github.com/greenbone/greenbone-feed-sync/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="cron"
+
+COMMON_DEPEND="
+ acct-user/gvm
+ net-misc/rsync
+ >=net-analyzer/gvmd-22.5.0
+ >=dev-python/rich-13.2.0[${PYTHON_USEDEP}]
+ >=dev-python/shtab-1.7.0[${PYTHON_USEDEP}]
+"
+DEPEND="
+ ${COMMON_DEPEND}
+ test? ( >=net-analyzer/pontos-22.12.2[${PYTHON_USEDEP}] )
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ cron? ( virtual/cron )
+"
+
+distutils_enable_tests unittest
+
+src_test() {
+ # Make a copy of the original config
+ cp greenbone/feed/sync/config.py "${T}"/config.py.orig || die
+
+ # Patch the config.py to not use files from /etc/gvm, as this may
+ # cause a PermissionError. See https://bugs.gentoo.org/932836#c10
+ sed -i \
+ -e 's:DEFAULT_CONFIG_FILE = "/etc/gvm/greenbone-feed-sync.toml":DEFAULT_CONFIG_FILE = "'"${WORKDIR}/${P}-${TARGET}"'/install/etc/gvm/greenbone-feed-sync.toml":' \
+ -e 's:DEFAULT_ENTERPRISE_KEY_PATH = "/etc/gvm/greenbone-enterprise-feed-key":DEFAULT_ENTERPRISE_KEY_PATH = "'"${WORKDIR}/${P}-${TARGET}"'/install/etc/gvm/greenbone-enterprise-feed-key":' \
+ greenbone/feed/sync/config.py || die
+
+ # Disable tests that require network access.
+ sed -i \
+ -e 's:test_do_not_run_as_root:_&:' \
+ -e 's:test_sync_nvts:_&:' \
+ -e 's:test_sync_nvts_quiet:_&:' \
+ -e 's:test_sync_nvts_rsync_error:_&:' \
+ -e 's:test_sync_nvts_verbose:_&:' \
+ -e 's:test_sync_nvts:_&:' \
+ -e 's:test_sync_nvts_error:_&:' \
+ tests/test_main.py || die
+
+ distutils-r1_src_test
+
+ # Restore config.py after test.
+ mv "${T}"/config.py.orig greenbone/feed/sync/config.py || die
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ # greenbone-feed-sync should not be run as root to avoid changing file permissions
+ insinto /etc/sudoers.d
+ newins - greenbone-feed-sync <<-EOF
+ gvm ALL = NOPASSWD: /usr/bin/greenbone-feed-sync
+ EOF
+
+ fperms 0750 /etc/sudoers.d
+ fperms 0440 /etc/sudoers.d/greenbone-feed-sync
+
+ if use cron; then
+ exeinto /etc/cron.daily
+ newexe "${FILESDIR}"/${PN}.cron ${PN}
+ fi
+
+ systemd_dounit "${FILESDIR}/${PN}.timer" "${FILESDIR}/${PN}.service"
+}
+
+pkg_postinst() {
+ if [[ -n ${REPLACING_VERSIONS} ]]; then
+ return
+ fi
+
+ if use cron; then
+ elog
+ elog "Edit ${EROOT}/etc/cron.weekly/greenbone-feed-sync to activate daily feed update!"
+ elog
+ fi
+
+ if systemd_is_booted; then
+ elog
+ elog "To enable the systemd timer, run the following command:"
+ elog " systemctl enable --now greenbone-feed-sync.timer"
+ elog
+ fi
+}
diff --git a/net-analyzer/greenbone-feed-sync/greenbone-feed-sync-25.2.0.ebuild b/net-analyzer/greenbone-feed-sync/greenbone-feed-sync-25.2.0.ebuild
new file mode 100644
index 000000000000..9331f86da4fa
--- /dev/null
+++ b/net-analyzer/greenbone-feed-sync/greenbone-feed-sync-25.2.0.ebuild
@@ -0,0 +1,102 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+DISTUTILS_USE_PEP517=poetry
+inherit distutils-r1 systemd
+
+DESCRIPTION="New script for syncing the Greenbone Community Feed"
+HOMEPAGE="https://github.com/greenbone/greenbone-feed-sync"
+SRC_URI="https://github.com/greenbone/greenbone-feed-sync/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="cron"
+
+COMMON_DEPEND="
+ acct-user/gvm
+ net-misc/rsync
+ >=net-analyzer/gvmd-22.5.0
+ >=dev-python/rich-13.2.0[${PYTHON_USEDEP}]
+ >=dev-python/shtab-1.7.0[${PYTHON_USEDEP}]
+"
+DEPEND="
+ ${COMMON_DEPEND}
+ test? ( >=net-analyzer/pontos-22.12.2[${PYTHON_USEDEP}] )
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ cron? ( virtual/cron )
+"
+
+distutils_enable_tests unittest
+
+src_test() {
+ # Make a copy of the original config
+ cp greenbone/feed/sync/config.py "${T}"/config.py.orig || die
+
+ # Patch the config.py to not use files from /etc/gvm, as this may
+ # cause a PermissionError. See https://bugs.gentoo.org/932836#c10
+ sed -i \
+ -e 's:DEFAULT_CONFIG_FILE = "/etc/gvm/greenbone-feed-sync.toml":DEFAULT_CONFIG_FILE = "'"${WORKDIR}/${P}-${TARGET}"'/install/etc/gvm/greenbone-feed-sync.toml":' \
+ -e 's:DEFAULT_ENTERPRISE_KEY_PATH = "/etc/gvm/greenbone-enterprise-feed-key":DEFAULT_ENTERPRISE_KEY_PATH = "'"${WORKDIR}/${P}-${TARGET}"'/install/etc/gvm/greenbone-enterprise-feed-key":' \
+ greenbone/feed/sync/config.py || die
+
+ # Disable tests that require network access.
+ sed -i \
+ -e 's:test_do_not_run_as_root:_&:' \
+ -e 's:test_sync_nvts:_&:' \
+ -e 's:test_sync_nvts_quiet:_&:' \
+ -e 's:test_sync_nvts_rsync_error:_&:' \
+ -e 's:test_sync_nvts_verbose:_&:' \
+ -e 's:test_sync_nvts:_&:' \
+ -e 's:test_sync_nvts_error:_&:' \
+ tests/test_main.py || die
+
+ distutils-r1_src_test
+
+ # Restore config.py after test.
+ mv "${T}"/config.py.orig greenbone/feed/sync/config.py || die
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ # greenbone-feed-sync should not be run as root to avoid changing file permissions
+ insinto /etc/sudoers.d
+ newins - greenbone-feed-sync <<-EOF
+ gvm ALL = NOPASSWD: /usr/bin/greenbone-feed-sync
+ EOF
+
+ fperms 0750 /etc/sudoers.d
+ fperms 0440 /etc/sudoers.d/greenbone-feed-sync
+
+ if use cron; then
+ exeinto /etc/cron.daily
+ newexe "${FILESDIR}"/${PN}.cron ${PN}
+ fi
+
+ systemd_dounit "${FILESDIR}/${PN}.timer" "${FILESDIR}/${PN}.service"
+}
+
+pkg_postinst() {
+ if [[ -n ${REPLACING_VERSIONS} ]]; then
+ return
+ fi
+
+ if use cron; then
+ elog
+ elog "Edit ${EROOT}/etc/cron.weekly/greenbone-feed-sync to activate daily feed update!"
+ elog
+ fi
+
+ if systemd_is_booted; then
+ elog
+ elog "To enable the systemd timer, run the following command:"
+ elog " systemctl enable --now greenbone-feed-sync.timer"
+ elog
+ fi
+}
diff --git a/net-analyzer/greenbone-feed-sync/metadata.xml b/net-analyzer/greenbone-feed-sync/metadata.xml
new file mode 100644
index 000000000000..c132e3720f15
--- /dev/null
+++ b/net-analyzer/greenbone-feed-sync/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>foti.giuseppe@gmail.com</email>
+ <name>Giuseppe Foti</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <use>
+ <flag name="cron">Adds file to enable daily cron job to update Greenbone Community Feed's data"</flag>
+ </use>
+ <longdescription lang="en">
+ This is the new script for syncing the Greenbone Community Feed.
+ The greenbone-nvt-sync script was previously installed by net-analyzer/openvas-scanner.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/gsa/Manifest b/net-analyzer/gsa/Manifest
new file mode 100644
index 000000000000..ce8a99f5b0af
--- /dev/null
+++ b/net-analyzer/gsa/Manifest
@@ -0,0 +1,4 @@
+DIST gsa-26.0.0.tar.gz 2468141 BLAKE2B d51a80960a4d2da02d44eee6653ec047065850e0895ceb85eae9cf2cc7f685bb96ff0738a848b01b514fc3233fb4e681d7124128bcbc7f78f781d0a91dde330e SHA512 1c044b4513908766d332a730732895aa1c864ef6cea9229a62d48f2a0ca3a59fe0ce520c9eacc6433c931bea6131a80eebe132443fd69028d82c9b35bd9bc6d8
+DIST gsa-26.10.1.tar.gz 2634149 BLAKE2B 6fe16db1b7636cb63af5289a5ad9e23fb5b307b1aebfc2cc25dcc88431c8f34d5d0506a469b3e4f96646c85610a9a337a7b7acb01b440bafb52b66867a62ea07 SHA512 0b5029dc60350925995d67d4eda13db02c50c2981bc4c599aa7051a0d92449e02e18e4360359673d216c3f2b23d888a6b9df8d1b4a14b5b3061895399b3164fa
+DIST gsa-node-modules-26.0.0.tar.xz 27178412 BLAKE2B 4eac15731bc208885eee678a51800d1b820b9659098a6d2f07d85530e5089f1173a33935d773324c8d6c9b6067acaee357bc7c2229bc32e9f5171acf74865a65 SHA512 3e2e6a6e345a315d24175c8e88d57b51c09ff51beee45e17d2afc5781097ebd17ba821a9e9b2f693301a6805024e9f2884c2a663091d0202ce9c78985f62d381
+DIST gsa-node-modules-26.10.1.tar.xz 42375572 BLAKE2B d0b03f47483b41e6c2032e17f39c7fc81c38b561651935aa4cde208260953d92ab8575df6853d7133fc884077326eabad201420efe7492f7a0a89893eb06977d SHA512 bab51ade248bfdce8a595e5478fa620782ece3b487f9af895ca915b2746bc814a12f0861ed98fc411b54d55d5de5a6b445c66166b758d757c6e26550c988e160
diff --git a/net-analyzer/gsa/gsa-26.0.0.ebuild b/net-analyzer/gsa/gsa-26.0.0.ebuild
new file mode 100644
index 000000000000..126a0b48c050
--- /dev/null
+++ b/net-analyzer/gsa/gsa-26.0.0.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_NODE_N="node-modules"
+MY_NODE_D="node_modules"
+MY_NODE_PV="${PV}"
+
+DESCRIPTION="Greenbone Security Assistant"
+HOMEPAGE="https://www.greenbone.net https://github.com/greenbone/gsa"
+SRC_URI="
+ https://github.com/greenbone/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ https://github.com/greenbone/${PN}/releases/download/v${PV}/${PN}-${MY_NODE_N}-${PV}.tar.xz
+"
+
+LICENSE="AGPL-3+"
+SLOT="0"
+KEYWORDS="amd64"
+
+BDEPEND="
+ >=net-libs/nodejs-20.0.0[ssl]
+ >=sys-apps/yarn-1.22
+"
+
+MY_NODE_DIR="${S}/${MY_NODE_D}/"
+
+src_prepare() {
+ default
+ # We will use pre-generated npm stuff.
+ mv "${WORKDIR}/${MY_NODE_D}" "${MY_NODE_DIR}" || die "couldn't move node_modules"
+
+ # Make SVGR not traverse the path up to / looking for a
+ # configuration file. Fixes
+ # Error: EACCES: permission denied, open '/.config/svgrrc'
+ # in case a directory /.config exists, see https://bugs.gentoo.org/909731
+ echo "runtimeConfig: false" > .svgrrc.yml || die
+}
+
+src_compile() {
+ # setting correct PATH for finding react-js
+ NODE_ENV=production PATH="${PATH}:${MY_NODE_DIR}/.bin/" \
+ yarn --offline build || die
+}
+
+src_install() {
+ insinto "usr/share/gvm/gsad/web"
+ doins -r build/*
+}
diff --git a/net-analyzer/gsa/gsa-26.10.1.ebuild b/net-analyzer/gsa/gsa-26.10.1.ebuild
new file mode 100644
index 000000000000..1a131c8a47ba
--- /dev/null
+++ b/net-analyzer/gsa/gsa-26.10.1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_NODE_N="node-modules"
+MY_NODE_D="node_modules"
+MY_NODE_PV="${PV}"
+
+DESCRIPTION="Greenbone Security Assistant"
+HOMEPAGE="https://www.greenbone.net https://github.com/greenbone/gsa"
+SRC_URI="
+ https://github.com/greenbone/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz
+ https://github.com/greenbone/${PN}/releases/download/v${PV}/${PN}-${MY_NODE_N}-${PV}.tar.xz
+"
+
+LICENSE="AGPL-3+"
+SLOT="0"
+KEYWORDS="~amd64"
+
+BDEPEND="
+ >=net-libs/nodejs-20.0.0[ssl]
+ >=sys-apps/yarn-1.22
+"
+
+MY_NODE_DIR="${S}/${MY_NODE_D}/"
+
+src_prepare() {
+ default
+ # We will use pre-generated npm stuff.
+ mv "${WORKDIR}/${MY_NODE_D}" "${MY_NODE_DIR}" || die "couldn't move node_modules"
+
+ # Make SVGR not traverse the path up to / looking for a
+ # configuration file. Fixes
+ # Error: EACCES: permission denied, open '/.config/svgrrc'
+ # in case a directory /.config exists, see https://bugs.gentoo.org/909731
+ echo "runtimeConfig: false" > .svgrrc.yml || die
+}
+
+src_compile() {
+ # setting correct PATH for finding react-js
+ NODE_ENV=production PATH="${PATH}:${MY_NODE_DIR}/.bin/" \
+ yarn --offline build || die
+}
+
+src_install() {
+ insinto "usr/share/gvm/gsad/web"
+ doins -r build/*
+}
diff --git a/net-analyzer/gsa/metadata.xml b/net-analyzer/gsa/metadata.xml
new file mode 100644
index 000000000000..59153ef429fa
--- /dev/null
+++ b/net-analyzer/gsa/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>foti.giuseppe@gmail.com</email>
+ <name>Giuseppe Foti</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription lang="en">
+ The Greenbone Security Assistant is the web interface developed for the Greenbone Security Manager appliances.
+ It connects to the Greenbone Vulnerability Manager GVM to provide a full-featured user interface for vulnerability management.
+ Greenbone Security Assistant consists of GSA - The webpage written in React and
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/gsad/Manifest b/net-analyzer/gsad/Manifest
new file mode 100644
index 000000000000..e3769dd6044f
--- /dev/null
+++ b/net-analyzer/gsad/Manifest
@@ -0,0 +1,2 @@
+DIST gsad-24.14.2.tar.gz 237231 BLAKE2B 0fc525947247dc352af5023e77a933a33184f16c7aa0139bd82d75fe3e31470695df4aa3b41c469bcdfe23226ecfecf189cb4a00cf31fbd223415bdd86035bf5 SHA512 143bde6480f9c15b81efe370d1660f57ad15c10ab8ef9564cb48dcc14f036fc531bdef4fbe7340687e1c4f01812d1368a5885218a3024fad61f67904e6186f40
+DIST gsad-24.5.4.tar.gz 235074 BLAKE2B 051b898536f9eda24458796b954c51be07af4beaa342aa656d2064ef2f7ea5248fa8af382bae49e85f9c46c92565b75f5079ac4252955c534b4f74b53726897f SHA512 c5e1202f8f775ffaa910094e2172c19f7075d7e679c56b17391c9e34dc187e9f8730a5ec20fd93e4220afc5e089969f254b19082f649c199c8dc4535ecd22e10
diff --git a/net-analyzer/gsad/files/gsad-22.init b/net-analyzer/gsad/files/gsad-22.init
new file mode 100644
index 000000000000..a17f2dc1c084
--- /dev/null
+++ b/net-analyzer/gsad/files/gsad-22.init
@@ -0,0 +1,35 @@
+#!/sbin/openrc-run
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+: ${GSAD_USER:=gvm}
+: ${GSAD_GROUP:=gvm}
+: ${GSAD_TIMEOUT:=30}
+: ${GSAD_PIDFILE:="/run/gsad/gsad.pid"}
+
+name="Greenbone Security Assistant (GSA)"
+command="/usr/bin/gsad"
+command_args="${GSAD_OPTIONS} ${GSAD_LISTEN_ADDRESS} ${GSAD_LISTEN_PORT} ${GVMD_LISTEN_ADDRESS} ${GVMD_LISTEN_PORT} ${GSAD_GNUTLS_PRIORITIES} --drop-privileges=${GSAD_USER}"
+retry="${GSAD_TIMEOUT}"
+
+depend() {
+ after bootmisc
+ need localmount net
+ want gvmd
+}
+
+start_pre() {
+ checkpath -d --mode 0755 --owner root /run/gsad
+}
+
+start_post() {
+ checkpath -f --mode 0644 --owner "${GSAD_USER}:${GSAD_GROUP}" /var/log/gvm/gsad.log
+}
+
+stop_post() {
+ if [ -f "${GSAD_PIDFILE}" ]; then
+ ebegin "Removing PID file"
+ rm --force "${GSAD_PIDFILE}"
+ eend $?
+ fi
+}
diff --git a/net-analyzer/gsad/files/gsad-daemon.conf b/net-analyzer/gsad/files/gsad-daemon.conf
new file mode 100644
index 000000000000..e74b409cc84a
--- /dev/null
+++ b/net-analyzer/gsad/files/gsad-daemon.conf
@@ -0,0 +1,19 @@
+# Greenbone Security Assistant command args
+
+# e.g. --foreground | e.g. --no-redirect
+GSAD_OPTIONS="--no-redirect --http-only"
+
+# GSAD listen adress
+GSAD_LISTEN_ADDRESS="--listen=127.0.0.1"
+
+# GSAD listen port
+GSAD_LISTEN_PORT="--port=9392"
+
+# GVMD listen address
+GVMD_LISTEN_ADDRESS="--mlisten=127.0.0.1"
+
+# GVMD listen port
+GVMD_LISTEN_PORT="--mport=9390"
+
+# TLS Settings
+GSAD_GNUTLS_PRIORITIES="--gnutls-priorities=NORMAL"
diff --git a/net-analyzer/gsad/files/gsad.service.conf b/net-analyzer/gsad/files/gsad.service.conf
new file mode 100644
index 000000000000..23d1db6f96bc
--- /dev/null
+++ b/net-analyzer/gsad/files/gsad.service.conf
@@ -0,0 +1,2 @@
+[Unit]
+PartOf=gvm.target
diff --git a/net-analyzer/gsad/gsad-24.14.2.ebuild b/net-analyzer/gsad/gsad-24.14.2.ebuild
new file mode 100644
index 000000000000..5ca51a689096
--- /dev/null
+++ b/net-analyzer/gsad/gsad-24.14.2.ebuild
@@ -0,0 +1,114 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake systemd toolchain-funcs
+
+DESCRIPTION="Greenbone Security Assistant"
+HOMEPAGE="https://www.greenbone.net https://github.com/greenbone/gsad"
+SRC_URI="https://github.com/greenbone/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="AGPL-3+"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="brotli doc"
+
+DEPEND="
+ acct-user/gvm
+ >=net-libs/libmicrohttpd-0.9.0:=
+ dev-libs/libxml2:2=
+ >=dev-libs/glib-2.42:2
+ >=net-analyzer/gvm-libs-22.8.2
+ >=net-libs/gnutls-3.2.15:=
+ >=virtual/zlib-1.2:=
+ dev-libs/libgcrypt:0=
+ brotli? (
+ app-arch/brotli
+ )
+"
+
+RDEPEND="
+ ${DEPEND}
+ >=net-analyzer/gvmd-22.4
+ >=net-analyzer/gsa-22.4
+ net-analyzer/ospd-openvas
+"
+
+BDEPEND="
+ dev-python/polib
+ virtual/pkgconfig
+ doc? (
+ app-text/doxygen[dot]
+ app-text/xmltoman
+ )
+"
+
+src_prepare() {
+ cmake_src_prepare
+
+ # QA-Fix | Remove !CLANG doxygen warnings for 9.0.0
+ if use doc; then
+ if ! tc-is-clang; then
+ local f
+ for f in doc/*.in
+ do
+ sed -i \
+ -e "s*CLANG_ASSISTED_PARSING = NO*#CLANG_ASSISTED_PARSING = NO*g" \
+ -e "s*CLANG_OPTIONS*#CLANG_OPTIONS*g" \
+ "${f}" || die "couldn't disable CLANG parsing"
+ done
+ fi
+ fi
+
+ # Avoid the use of brotli when not required by the use flag #942193
+ # Remove brotli automagic dependencies check
+ if ! use brotli; then
+ sed -i \
+ -e 's*^if (BROTLI_FOUND)*#if (BROTLI_FOUND)*' \
+ -e 's*set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHAVE_BROTLI=1")*#set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHAVE_BROTLI=1")*' \
+ -e 's*^endif (BROTLI_FOUND)*#endif (BROTLI_FOUND)*' \
+ src/CMakeLists.txt || die "couldn't disable brotli automagic dependency's check"
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ "-DLOCALSTATEDIR=${EPREFIX}/var"
+ "-DSYSCONFDIR=${EPREFIX}/etc"
+ "-DSBINDIR=${EPREFIX}/usr/bin"
+ "-DGSAD_RUN_DIR=${EPREFIX}/run/gsad"
+ "-DGVMD_RUN_DIR=${EPREFIX}/run/gvmd"
+ "-DGVM_LOG_DIR=${EPREFIX}/var/log/gvm"
+ "-DSYSTEMD_SERVICE_DIR=$(systemd_get_systemunitdir)"
+ "-DLOGROTATE_DIR=${EPREFIX}/etc/logrotate.d"
+ )
+
+ cmake_src_configure
+}
+
+src_compile() {
+ # setting correct PATH for finding react-js
+ NODE_ENV=production PATH="$PATH:${S}/gsa/node_modules/.bin/" cmake_src_compile
+ if use doc; then
+ cmake_build -C "${BUILD_DIR}" doc
+ cmake_build doc-full -C "${BUILD_DIR}" doc
+ fi
+ cmake_build rebuild_cache
+}
+
+src_install() {
+ if use doc; then
+ local HTML_DOCS=( "${BUILD_DIR}/doc/generated/html/." )
+ fi
+ cmake_src_install
+
+ systemd_install_serviced "${FILESDIR}/gsad.service.conf" \
+ ${PN}.service
+
+ insinto /etc/gvm/sysconfig
+ newins "${FILESDIR}/${PN}-daemon.conf" "${PN}-daemon.conf"
+
+ newinitd "${FILESDIR}/${PN}-22.init" "${PN}"
+ newconfd "${FILESDIR}/${PN}-daemon.conf" "${PN}"
+}
diff --git a/net-analyzer/gsad/gsad-24.5.4.ebuild b/net-analyzer/gsad/gsad-24.5.4.ebuild
new file mode 100644
index 000000000000..0ff9d53e977f
--- /dev/null
+++ b/net-analyzer/gsad/gsad-24.5.4.ebuild
@@ -0,0 +1,114 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake systemd toolchain-funcs
+
+DESCRIPTION="Greenbone Security Assistant"
+HOMEPAGE="https://www.greenbone.net https://github.com/greenbone/gsad"
+SRC_URI="https://github.com/greenbone/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="AGPL-3+"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="brotli doc"
+
+DEPEND="
+ acct-user/gvm
+ >=net-libs/libmicrohttpd-0.9.0:=
+ dev-libs/libxml2:2=
+ >=dev-libs/glib-2.42:2
+ >=net-analyzer/gvm-libs-22.8.2
+ >=net-libs/gnutls-3.2.15:=
+ >=virtual/zlib-1.2:=
+ dev-libs/libgcrypt:0=
+ brotli? (
+ app-arch/brotli
+ )
+"
+
+RDEPEND="
+ ${DEPEND}
+ >=net-analyzer/gvmd-22.4
+ >=net-analyzer/gsa-22.4
+ net-analyzer/ospd-openvas
+"
+
+BDEPEND="
+ dev-python/polib
+ virtual/pkgconfig
+ doc? (
+ app-text/doxygen[dot]
+ app-text/xmltoman
+ )
+"
+
+src_prepare() {
+ cmake_src_prepare
+
+ # QA-Fix | Remove !CLANG doxygen warnings for 9.0.0
+ if use doc; then
+ if ! tc-is-clang; then
+ local f
+ for f in doc/*.in
+ do
+ sed -i \
+ -e "s*CLANG_ASSISTED_PARSING = NO*#CLANG_ASSISTED_PARSING = NO*g" \
+ -e "s*CLANG_OPTIONS*#CLANG_OPTIONS*g" \
+ "${f}" || die "couldn't disable CLANG parsing"
+ done
+ fi
+ fi
+
+ # Avoid the use of brotli when not required by the use flag #942193
+ # Remove brotli automagic dependencies check
+ if ! use brotli; then
+ sed -i \
+ -e 's*^if (BROTLI_FOUND)*#if (BROTLI_FOUND)*' \
+ -e 's*set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHAVE_BROTLI=1")*#set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHAVE_BROTLI=1")*' \
+ -e 's*^endif (BROTLI_FOUND)*#endif (BROTLI_FOUND)*' \
+ src/CMakeLists.txt || die "couldn't disable brotli automagic dependency's check"
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ "-DLOCALSTATEDIR=${EPREFIX}/var"
+ "-DSYSCONFDIR=${EPREFIX}/etc"
+ "-DSBINDIR=${EPREFIX}/usr/bin"
+ "-DGSAD_RUN_DIR=${EPREFIX}/run/gsad"
+ "-DGVMD_RUN_DIR=${EPREFIX}/run/gvmd"
+ "-DGVM_LOG_DIR=${EPREFIX}/var/log/gvm"
+ "-DSYSTEMD_SERVICE_DIR=$(systemd_get_systemunitdir)"
+ "-DLOGROTATE_DIR=${EPREFIX}/etc/logrotate.d"
+ )
+
+ cmake_src_configure
+}
+
+src_compile() {
+ # setting correct PATH for finding react-js
+ NODE_ENV=production PATH="$PATH:${S}/gsa/node_modules/.bin/" cmake_src_compile
+ if use doc; then
+ cmake_build -C "${BUILD_DIR}" doc
+ cmake_build doc-full -C "${BUILD_DIR}" doc
+ fi
+ cmake_build rebuild_cache
+}
+
+src_install() {
+ if use doc; then
+ local HTML_DOCS=( "${BUILD_DIR}/doc/generated/html/." )
+ fi
+ cmake_src_install
+
+ systemd_install_serviced "${FILESDIR}/gsad.service.conf" \
+ ${PN}.service
+
+ insinto /etc/gvm/sysconfig
+ newins "${FILESDIR}/${PN}-daemon.conf" "${PN}-daemon.conf"
+
+ newinitd "${FILESDIR}/${PN}-22.init" "${PN}"
+ newconfd "${FILESDIR}/${PN}-daemon.conf" "${PN}"
+}
diff --git a/net-analyzer/gsad/metadata.xml b/net-analyzer/gsad/metadata.xml
new file mode 100644
index 000000000000..a62c335d66ba
--- /dev/null
+++ b/net-analyzer/gsad/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>foti.giuseppe@gmail.com</email>
+ <name>Giuseppe Foti</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/gspoof/Manifest b/net-analyzer/gspoof/Manifest
new file mode 100644
index 000000000000..e154fdd3a631
--- /dev/null
+++ b/net-analyzer/gspoof/Manifest
@@ -0,0 +1 @@
+DIST gspoof-3.2.tar.gz 69340 BLAKE2B c5769a242d6d388b7606594a01b6543822167505ea6210a05f6a514c47ea875efdea3e81b495b1a635fa15d9a065a35b631b20512b326304e366f692f8a73be5 SHA512 be90aeeb9ac93b5c4a190564ecfedd05ee077afed67696b773cb79949043975807dabed8f49597dcd3b08b9b0ee53c598caa9dced6f97bd9d6170f8e82b8f0f9
diff --git a/net-analyzer/gspoof/files/gspoof-3.2-fno-common.patch b/net-analyzer/gspoof/files/gspoof-3.2-fno-common.patch
new file mode 100644
index 000000000000..c91a54231150
--- /dev/null
+++ b/net-analyzer/gspoof/files/gspoof-3.2-fno-common.patch
@@ -0,0 +1,221 @@
+--- a/ginclude.h
++++ b/ginclude.h
+@@ -22,8 +22,8 @@ struct FLAGS
+ urg:1,
+ ece:1,
+ cwr:1;
+-}
+-f;
++};
++extern struct FLAGS f;
+
+ struct CHECKS
+ {
+@@ -31,33 +31,33 @@ struct CHECKS
+ data:1, /* include payload */
+ linkl:1, /* work with datalink */
+ debug:1; /* enable debug mode */
+-}
+-ck;
++};
++extern struct CHECKS ck;
+
+ struct MULTI
+ {
+ u_long number;
+ u_long delay;
+-}
+-m;
++};
++extern struct MULTI m;
+
+ struct ECN
+ {
+ u_int dscp:8;
+ u_int ecn_ct:2;
+ u_int ecn_ce:1;
+-}
+-ipv4_tos;
++};
++extern struct ECN ipv4_tos;
+
+-u_long shost;
+-u_long dhost;
+-u_long seq;
+-u_long ack;
+-u_short id;
+-u_short urgp;
+-u_short tos;
++extern u_long shost;
++extern u_long dhost;
++extern u_long seq;
++extern u_long ack;
++extern u_short id;
++extern u_short urgp;
++extern u_short tos;
+
+-char device[10];
+-char data[128];
++extern char device[10];
++extern char data[128];
+
+-u_char ebuf[LIBNET_ERRBUF_SIZE];
++extern u_char ebuf[LIBNET_ERRBUF_SIZE];
+--- a/interface.h
++++ b/interface.h
+@@ -20,47 +20,47 @@ GtkWidget* create_ECNWin (void);
+ /* Define common Widget */
+
+ /* MainWin */
+-GtkWidget *iface_entry;
+-GtkWidget *srcmac_entry;
+-GtkWidget *dstmac_entry;
+-GtkWidget *ethtype_combo;
+-GtkWidget *ethtype_combo_entry;
+-GtkWidget *DatalinkFrame;
++extern GtkWidget *iface_entry;
++extern GtkWidget *srcmac_entry;
++extern GtkWidget *dstmac_entry;
++extern GtkWidget *ethtype_combo;
++extern GtkWidget *ethtype_combo_entry;
++extern GtkWidget *DatalinkFrame;
+
+-GtkWidget *srcaddr_entry;
+-GtkWidget *dstaddr_entry;
+-GtkWidget *ttl_entry;
+-GtkWidget *id_entry;
+-GtkWidget *tos_entry;
++extern GtkWidget *srcaddr_entry;
++extern GtkWidget *dstaddr_entry;
++extern GtkWidget *ttl_entry;
++extern GtkWidget *id_entry;
++extern GtkWidget *tos_entry;
+
+-GtkWidget *srcport_entry;
+-GtkWidget *dstport_entry;
+-GtkWidget *flags_table;
+-GtkWidget *syn_checkbutton;
+-GtkWidget *fin_checkbutton;
+-GtkWidget *push_checkbutton;
+-GtkWidget *ack_checkbutton;
+-GtkWidget *rst_checkbutton;
+-GtkWidget *urg_checkbutton;
+-GtkWidget *ece_checkbutton;
+-GtkWidget *cwr_checkbutton;
+-GtkWidget *seq_entry;
+-GtkWidget *ack_entry;
+-GtkWidget *win_entry;
+-GtkWidget *urg_entry;
++extern GtkWidget *srcport_entry;
++extern GtkWidget *dstport_entry;
++extern GtkWidget *flags_table;
++extern GtkWidget *syn_checkbutton;
++extern GtkWidget *fin_checkbutton;
++extern GtkWidget *push_checkbutton;
++extern GtkWidget *ack_checkbutton;
++extern GtkWidget *rst_checkbutton;
++extern GtkWidget *urg_checkbutton;
++extern GtkWidget *ece_checkbutton;
++extern GtkWidget *cwr_checkbutton;
++extern GtkWidget *seq_entry;
++extern GtkWidget *ack_entry;
++extern GtkWidget *win_entry;
++extern GtkWidget *urg_entry;
+
+ /* Info TextView */
+-GtkWidget *TextView;
+-GtkTextBuffer *TextBuffer;
+-GtkWidget *VerticalScroll;
++extern GtkWidget *TextView;
++extern GtkTextBuffer *TextBuffer;
++extern GtkWidget *VerticalScroll;
+
+ /* DataWin */
+-GtkWidget *DataEntry;
++extern GtkWidget *DataEntry;
+
+ /* Multi */
+-GtkWidget *table2;
+-GtkWidget *NumberEntryMulti;
+-GtkWidget *DelayEntryMulty;
++extern GtkWidget *table2;
++extern GtkWidget *NumberEntryMulti;
++extern GtkWidget *DelayEntryMulty;
+
+ /* ECN */
+-GtkWidget *dscpEntry;
++extern GtkWidget *dscpEntry;
+--- a/gfuncts.c
++++ b/gfuncts.c
+@@ -19,9 +19,12 @@
+
+ #include "interface.h"
+
++struct FLAGS f;
++struct CHECKS ck;
++struct MULTI m;
++
+ /* private functions */
+ int CheckValues();
+-u_short datalen; /* data (tcp payload) lenght */
+
+ int Initialize()
+ {
+@@ -139,6 +142,7 @@ int SendPacket()
+ /* BEGIN of variables ' declaration */
+ libnet_t *l;
+ char *dataptr;
++ u_short datalen; /* data (tcp payload) lenght */
+
+ u_short sport, dport;
+ u_short flag=0x00;
+--- a/interface.c
++++ b/interface.c
+@@ -27,6 +27,47 @@
+ #include "ginclude.h" /* define payload and multi options */
+ #include "common.h"
+
++GtkWidget *iface_entry;
++GtkWidget *srcmac_entry;
++GtkWidget *dstmac_entry;
++GtkWidget *ethtype_combo;
++GtkWidget *ethtype_combo_entry;
++GtkWidget *DatalinkFrame;
++
++GtkWidget *srcaddr_entry;
++GtkWidget *dstaddr_entry;
++GtkWidget *ttl_entry;
++GtkWidget *id_entry;
++GtkWidget *tos_entry;
++
++GtkWidget *srcport_entry;
++GtkWidget *dstport_entry;
++GtkWidget *flags_table;
++GtkWidget *syn_checkbutton;
++GtkWidget *fin_checkbutton;
++GtkWidget *push_checkbutton;
++GtkWidget *ack_checkbutton;
++GtkWidget *rst_checkbutton;
++GtkWidget *urg_checkbutton;
++GtkWidget *ece_checkbutton;
++GtkWidget *cwr_checkbutton;
++GtkWidget *seq_entry;
++GtkWidget *ack_entry;
++GtkWidget *win_entry;
++GtkWidget *urg_entry;
++
++GtkWidget *TextView;
++GtkTextBuffer *TextBuffer;
++GtkWidget *VerticalScroll;
++
++GtkWidget *DataEntry;
++
++GtkWidget *table2;
++GtkWidget *NumberEntryMulti;
++GtkWidget *DelayEntryMulty;
++
++GtkWidget *dscpEntry;
++
+ #define GLADE_HOOKUP_OBJECT(component,widget,name) \
+ g_object_set_data_full (G_OBJECT (component), name, \
+ gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref)
diff --git a/net-analyzer/gspoof/files/gspoof-3.2-icon.patch b/net-analyzer/gspoof/files/gspoof-3.2-icon.patch
new file mode 100644
index 000000000000..863049e0d2c7
--- /dev/null
+++ b/net-analyzer/gspoof/files/gspoof-3.2-icon.patch
@@ -0,0 +1,71 @@
+Fix icon path and name.
+
+--- a/gtk.c
++++ b/gtk.c
+@@ -24,9 +24,7 @@
+ gtk_set_locale ();
+ gtk_init (&_argc, &_argv);
+
+- add_pixmap_directory ("pixmap");
+- add_pixmap_directory ("/usr/local/share/gspoof/pixmap");
+- add_pixmap_directory ("/usr/share/gspoof/pixmap");
++ add_pixmap_directory ("/usr/share/pixmaps");
+
+ MainWin = create_MainWin();
+
+--- a/interface.c
++++ b/interface.c
+@@ -102,7 +102,7 @@
+ gtk_widget_set_size_request (MainWin, 640, 480);
+ gtk_window_set_title (GTK_WINDOW (MainWin), BANNER);
+ gtk_window_set_position (GTK_WINDOW (MainWin), GTK_WIN_POS_CENTER);
+- MainWin_icon_pixbuf = create_pixbuf ("icon.png");
++ MainWin_icon_pixbuf = create_pixbuf ("gspoof.png");
+ if (MainWin_icon_pixbuf)
+ {
+ gtk_window_set_icon (GTK_WINDOW (MainWin), MainWin_icon_pixbuf);
+@@ -663,7 +663,7 @@
+ gtk_widget_set_extension_events (DataWin, GDK_EXTENSION_EVENTS_CURSOR);
+ gtk_window_set_title (GTK_WINDOW (DataWin), _("Payload options"));
+ gtk_window_set_position (GTK_WINDOW (DataWin), GTK_WIN_POS_CENTER);
+- DataWin_icon_pixbuf = create_pixbuf ("icon.png");
++ DataWin_icon_pixbuf = create_pixbuf ("gspoof.png");
+ if (DataWin_icon_pixbuf)
+ {
+ gtk_window_set_icon (GTK_WINDOW (DataWin), DataWin_icon_pixbuf);
+@@ -754,7 +754,7 @@
+ gtk_window_set_title (GTK_WINDOW (MultiPackets), _("Pseudo-flood options"));
+ gtk_window_set_position (GTK_WINDOW (MultiPackets), GTK_WIN_POS_CENTER);
+ gtk_window_set_resizable (GTK_WINDOW (MultiPackets), FALSE);
+- MultiPackets_icon_pixbuf = create_pixbuf ("icon.png");
++ MultiPackets_icon_pixbuf = create_pixbuf ("gspoof.png");
+ if (MultiPackets_icon_pixbuf)
+ {
+ gtk_window_set_icon (GTK_WINDOW (MultiPackets), MultiPackets_icon_pixbuf);
+@@ -884,7 +884,7 @@
+ gtk_window_set_position (GTK_WINDOW (AboutWin), GTK_WIN_POS_CENTER);
+ gtk_window_set_default_size (GTK_WINDOW (AboutWin), 350, 200);
+ gtk_window_set_resizable (GTK_WINDOW (AboutWin), FALSE);
+- AboutWin_icon_pixbuf = create_pixbuf ("icon.png");
++ AboutWin_icon_pixbuf = create_pixbuf ("gspoof.png");
+ if (AboutWin_icon_pixbuf)
+ {
+ gtk_window_set_icon (GTK_WINDOW (AboutWin), AboutWin_icon_pixbuf);
+@@ -896,7 +896,7 @@
+ gtk_container_add (GTK_CONTAINER (AboutWin), hbox1);
+ gtk_container_set_border_width (GTK_CONTAINER (hbox1), 2);
+
+- image16 = create_pixmap (AboutWin, "icon.png");
++ image16 = create_pixmap (AboutWin, "gspoof.png");
+ gtk_widget_show (image16);
+ gtk_box_pack_start (GTK_BOX (hbox1), image16, TRUE, TRUE, 0);
+
+@@ -936,7 +936,7 @@
+ gtk_widget_set_size_request (ECNWin, -1, 90);
+ gtk_window_set_title (GTK_WINDOW (ECNWin), _("ECN options"));
+ gtk_window_set_position (GTK_WINDOW (ECNWin), GTK_WIN_POS_CENTER);
+- ECNWin_icon_pixbuf = create_pixbuf ("icon.png");
++ ECNWin_icon_pixbuf = create_pixbuf ("gspoof.png");
+ if (ECNWin_icon_pixbuf)
+ {
+ gtk_window_set_icon (GTK_WINDOW (ECNWin), ECNWin_icon_pixbuf);
diff --git a/net-analyzer/gspoof/files/gspoof-3.2-libdir.patch b/net-analyzer/gspoof/files/gspoof-3.2-libdir.patch
new file mode 100644
index 000000000000..67674c2f5155
--- /dev/null
+++ b/net-analyzer/gspoof/files/gspoof-3.2-libdir.patch
@@ -0,0 +1,17 @@
+Don't assume that $(libdir) is lib. Rely on linker defaults instead.
+--- a/configure.ac
++++ b/configure.ac
+@@ -55,13 +55,6 @@ AC_ARG_WITH([libnet-prefix],
+ [ LIBNET_PREFIX=$withval ],
+ [ LIBNET_PREFIX=/usr ])
+
+-AC_CHECK_FILE([$LIBNET_PREFIX/lib/libnet.a],
+- [LDFLAGS="-L$LIBNET_PREFIX/lib"
+- CPPFLAGS="-I$LIBNET_PREFIX/include" ],
+- AC_MSG_ERROR([
+-Libnet-1.1.1 Packet Shaping Library is required!
+-Verify to have installed it and pass --with-libnet-prefix to configure.
+-Or download it from http://www.packetfactory.net/libnet ]))
+
+ AC_CHECK_LIB(net, libnet_name2addr4,,
+ AC_MSG_ERROR([
diff --git a/net-analyzer/gspoof/files/gspoof-def-values.patch b/net-analyzer/gspoof/files/gspoof-def-values.patch
new file mode 100644
index 000000000000..442f8e821b01
--- /dev/null
+++ b/net-analyzer/gspoof/files/gspoof-def-values.patch
@@ -0,0 +1,29 @@
+diff -Naurp gspoof-3.2-orig/gfuncts.c gspoof-3.2/gfuncts.c
+--- gspoof-3.2-orig/gfuncts.c 2006-09-15 16:39:59.000000000 +0200
++++ gspoof-3.2/gfuncts.c 2006-09-15 17:20:49.000000000 +0200
+@@ -47,12 +47,6 @@ int RestoreDefault()
+ struct libnet_ether_addr *ethaddr; /* eth address */
+ libnet_t *l;
+
+- /* put default value */
+- bzero (&f, 6);
+- bzero (&ck, 2);
+- memset (data, '\0', 128);
+- memset (device, '\0', 10);
+-
+ /* loading libnet core */
+ if ((l=libnet_init(LIBNET_LINK, NULL, ebuf))==NULL)
+ {
+@@ -126,6 +120,12 @@ int RestoreDefault()
+ gtk_entry_set_text (GTK_ENTRY (win_entry), "32767");
+ gtk_entry_set_text(GTK_ENTRY (urg_entry), ltostr(urgp));
+
++ /* put default value */
++ bzero (&f, sizeof(f));
++ bzero (&ck, sizeof(ck));
++ memset (data, '\0', 128);
++ memset (device, '\0', 10);
++
+ /* Set default variable values */
+ f.syn=1;
+ m.number=10;
diff --git a/net-analyzer/gspoof/gspoof-3.2-r3.ebuild b/net-analyzer/gspoof/gspoof-3.2-r3.ebuild
new file mode 100644
index 000000000000..b44beb880250
--- /dev/null
+++ b/net-analyzer/gspoof/gspoof-3.2-r3.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools desktop flag-o-matic
+
+DESCRIPTION="A simple GTK/command line TCP/IP packet generator"
+HOMEPAGE="http://gspoof.sourceforge.net/"
+SRC_URI="http://gspoof.sourceforge.net/src/${P}.tar.gz"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86"
+
+DEPEND="
+ x11-libs/gtk+:2
+ dev-libs/glib:2
+ net-libs/libnet:1.1
+"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-def-values.patch"
+ "${FILESDIR}/${PN}-3.2-icon.patch"
+ "${FILESDIR}/${PN}-3.2-libdir.patch"
+ "${FILESDIR}/${PN}-3.2-fno-common.patch"
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ # -Werror=lto-type-mismatch
+ # https://bugs.gentoo.org/861158
+ #
+ # Upstream sourceforge is dead. Software last updated in December 2003.
+ # No bug filed.
+ filter-lto
+
+ default
+}
+
+src_compile() {
+ emake CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}"
+}
+
+src_install() {
+ dobin gspoof
+ newicon pixmap/icon.png ${PN}.png
+ dodoc README CHANGELOG TODO
+}
diff --git a/net-analyzer/gspoof/metadata.xml b/net-analyzer/gspoof/metadata.xml
new file mode 100644
index 000000000000..5f33304011d5
--- /dev/null
+++ b/net-analyzer/gspoof/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/gvm-libs/Manifest b/net-analyzer/gvm-libs/Manifest
new file mode 100644
index 000000000000..9ab9c4f407c1
--- /dev/null
+++ b/net-analyzer/gvm-libs/Manifest
@@ -0,0 +1,2 @@
+DIST gvm-libs-22.28.0.tar.gz 399457 BLAKE2B 4fbe6a8b0b2a70af7c209691d2f406df63f4566a2ac620e85d2b62e489312da079865c0f43abbdee7c1f955122816cfba78de3e450e6d90a607473842a87d584 SHA512 bbe0942c8ba1d45d847724bef59c55d7040c1460ff9438fc0fa8d28e4d2178605a4910f7cce08139f1aa1bf638622ecf1d2030c35f5b83639a21473aca6f4f6e
+DIST gvm-libs-22.35.4.tar.gz 427257 BLAKE2B 0bc76add94910546fd4c1086a0d4faaaf13ce7e9805d264fac6326956d1082e3d2324ecd3f683fc65c8570505396435cbd932985901a6cb8de59e37cf7e1f765 SHA512 91b12b71f04d6a5a59ee1e83dc7c84408a32d44e5b2acdc583b43aff6999e51a007e8a8d5b0150b2c14c64c420601fc1b4d36db38321624afc8ba36984d43f68
diff --git a/net-analyzer/gvm-libs/files/gvm-libs-22.28.0-add-missing-link-to-cjson.patch b/net-analyzer/gvm-libs/files/gvm-libs-22.28.0-add-missing-link-to-cjson.patch
new file mode 100644
index 000000000000..41c52c8b4855
--- /dev/null
+++ b/net-analyzer/gvm-libs/files/gvm-libs-22.28.0-add-missing-link-to-cjson.patch
@@ -0,0 +1,13 @@
+# Upstream: https://github.com/greenbone/gvm-libs/pull/961
+# Fix build error on clang with -Wl,--no-allow-shlib-undefined
+
+--- a/http_scanner/CMakeLists.txt
++++ b/http_scanner/CMakeLists.txt
+@@ -67,6 +67,7 @@ if(BUILD_SHARED)
+ gvm_util_shared
+ ${GLIB_LDFLAGS}
+ ${CURL_LDFLAGS}
++ ${CJSON_LDFLAGS}
+ ${LINKER_HARDENING_FLAGS}
+ )
+ endif(BUILD_SHARED)
diff --git a/net-analyzer/gvm-libs/files/gvm-libs-22.28.0-remove-unworking-tests.patch b/net-analyzer/gvm-libs/files/gvm-libs-22.28.0-remove-unworking-tests.patch
new file mode 100644
index 000000000000..4f42143e9598
--- /dev/null
+++ b/net-analyzer/gvm-libs/files/gvm-libs-22.28.0-remove-unworking-tests.patch
@@ -0,0 +1,206 @@
+# Remove tests that don't work in the network sandbox
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -230,27 +230,27 @@ if(BUILD_TESTS AND NOT SKIP_SRC)
+ set(
+ TESTS
+ array-test
+- boreas-alivedetection-test
+- boreas-cli-test
++ #boreas-alivedetection-test
++ #boreas-cli-test
+ boreas-error-test
+ boreas-io-test
+- boreas-ping-test
+- boreas-sniffer-test
++ #boreas-ping-test
++ #boreas-sniffer-test
+ compressutils-test
+ cpeutils-test
+ cvss-test
+ hosts-test
+ json-test
+ jsonpull-test
+- logging-test
++ #logging-test
+ logging-domain-test
+- networking-test
++ #networking-test
+ nvti-test
+ osp-test
+ passwordbasedauthentication-test
+ streamvalidator-test
+ test-hosts
+- util-test
++ #util-test
+ version-test
+ versionutils-test
+ xmlutils-test
+@@ -266,11 +266,11 @@ if(BUILD_TESTS AND NOT SKIP_SRC)
+ vtparser-test
+ )
+ endif(OPENVASD)
+-
++#[===[
+ if(ENABLE_AGENTS)
+ list(APPEND TESTS agent-controller-test)
+ endif(ENABLE_AGENTS)
+-
++]===]
+ add_custom_target(tests DEPENDS ${TESTS})
+
+ # Code coverage
+--- a/agent_controller/CMakeLists.txt
++++ b/agent_controller/CMakeLists.txt
+@@ -58,6 +58,7 @@ endif()
+ ## Tests
+
+ if(BUILD_TESTS)
++#[===[
+ add_unit_test(
+ agent-controller-test
+ agent_controller_tests.c
+@@ -69,6 +70,7 @@ if(BUILD_TESTS)
+ ${CURL_LDFLAGS}
+ ${LINKER_HARDENING_FLAGS}
+ )
++]===]
+ endif()
+
+ ## Install
+--- a/base/CMakeLists.txt
++++ b/base/CMakeLists.txt
+@@ -134,6 +134,7 @@ if(BUILD_TESTS)
+ NETWORKING_TEST_LINKER_WRAP_OPTIONS
+ "-Wl,-wrap,g_io_channel_new_file,-wrap,g_io_channel_shutdown"
+ )
++#[===[
+ add_unit_test(
+ networking-test
+ networking_tests.c
+@@ -143,6 +144,7 @@ if(BUILD_TESTS)
+ ${LINKER_HARDENING_FLAGS}
+ ${NETWORKING_TEST_LINKER_WRAP_OPTIONS}
+ )
++]===]
+ add_unit_test(
+ pwpolicy-test
+ pwpolicy_tests.c
+@@ -176,6 +178,7 @@ if(BUILD_TESTS)
+ ${GLIB_LDFLAGS}
+ ${LINKER_HARDENING_FLAGS}
+ )
++#[===[
+ add_unit_test(
+ logging-test
+ logging_tests.c
+@@ -183,6 +186,7 @@ if(BUILD_TESTS)
+ ${GLIB_LDFLAGS}
+ ${LINKER_HARDENING_FLAGS}
+ )
++]===]
+ endif(BUILD_TESTS)
+
+ ## Install
+--- a/boreas/CMakeLists.txt
++++ b/boreas/CMakeLists.txt
+@@ -136,6 +136,7 @@ set(LIBGVM_BOREAS_NAME ${LIBGVM_BOREAS_NAME} PARENT_SCOPE)
+ ## Tests
+
+ if(BUILD_TESTS)
++#[===[
+ add_unit_test(
+ boreas-alivedetection-test
+ alivedetection_tests.c
+@@ -148,6 +149,7 @@ if(BUILD_TESTS)
+ ${LINKER_HARDENING_FLAGS}
+ ${CMAKE_THREAD_LIBS_INIT}
+ )
++]===]
+ add_unit_test(
+ boreas-error-test
+ boreas_error_tests.c
+@@ -167,6 +169,7 @@ if(BUILD_TESTS)
+ ${LINKER_HARDENING_FLAGS}
+ ${CMAKE_THREAD_LIBS_INIT}
+ )
++#[===[
+ add_unit_test(
+ boreas-cli-test
+ cli_tests.c
+@@ -202,8 +205,9 @@ if(BUILD_TESTS)
+ ${LINKER_HARDENING_FLAGS}
+ ${CMAKE_THREAD_LIBS_INIT}
+ )
+-
++]===]
+ set(UTIL_TEST_LINKER_WRAP_OPTIONS "-Wl,-wrap,socket,-wrap,setsockopt")
++#[===[
+ add_unit_test(
+ util-test
+ util_tests.c
+@@ -213,6 +217,7 @@ if(BUILD_TESTS)
+ ${CMAKE_THREAD_LIBS_INIT}
+ ${UTIL_TEST_LINKER_WRAP_OPTIONS}
+ )
++]===]
+ endif(BUILD_TESTS)
+
+ ## Install
+--- a/cmake/MacroAddUnitTest.cmake
++++ b/cmake/MacroAddUnitTest.cmake
+@@ -2,12 +2,12 @@ macro(add_unit_test _testName _testSource)
+ add_executable(${_testName} ${_testSource})
+ target_link_libraries(${_testName} ${CGREEN_LIBRARIES} ${ARGN})
+ target_include_directories(${_testName} PRIVATE ${CGREEN_INCLUDE_DIRS})
+- target_compile_options(${_testName} PRIVATE "-fsanitize=address")
+- target_link_options(${_testName} PRIVATE "-fsanitize=address")
++# target_compile_options(${_testName} PRIVATE "-fsanitize=address")
++# target_link_options(${_testName} PRIVATE "-fsanitize=address")
+ add_test(NAME ${_testName} COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${_testName})
+- set_tests_properties(
+- ${_testName}
+- PROPERTIES
+- ENVIRONMENT "ASAN_OPTIONS=detect_leaks=1:halt_on_error=1:abort_on_error=1"
+- )
++# set_tests_properties(
++# ${_testName}
++# PROPERTIES
++# ENVIRONMENT "ASAN_OPTIONS=detect_leaks=1:halt_on_error=1:abort_on_error=1"
++# )
+ endmacro()
+--- a/util/CMakeLists.txt
++++ b/util/CMakeLists.txt
+@@ -258,6 +258,7 @@ if(BUILD_TESTS)
+ ${UUID_LDFLAGS}
+ ${LINKER_HARDENING_FLAGS}
+ )
++#[===[
+ add_unit_test(
+ mqtt-test
+ mqtt_tests.c
+@@ -268,6 +269,7 @@ if(BUILD_TESTS)
+ ${UUID_LDFLAGS}
+ ${LINKER_HARDENING_FLAGS}
+ )
++]===]
+ add_unit_test(
+ kb-test
+ kb_tests.c
+@@ -276,6 +278,7 @@ if(BUILD_TESTS)
+ ${REDIS_LDFLAGS}
+ ${LINKER_HARDENING_FLAGS}
+ )
++#[===[
+ add_unit_test(
+ radiusutils-test
+ radiusutils_tests.c
+@@ -295,6 +298,7 @@ if(BUILD_TESTS)
+ ${GNUTLS_LDFLAGS}
+ ${LINKER_HARDENING_FLAGS}
+ )
++]===]
+ add_unit_test(
+ streamvalidator-test
+ streamvalidator_tests.c
diff --git a/net-analyzer/gvm-libs/files/gvm-libs-22.35.4-remove-unworking-tests.patch b/net-analyzer/gvm-libs/files/gvm-libs-22.35.4-remove-unworking-tests.patch
new file mode 100644
index 000000000000..4fa066c9a390
--- /dev/null
+++ b/net-analyzer/gvm-libs/files/gvm-libs-22.35.4-remove-unworking-tests.patch
@@ -0,0 +1,202 @@
+# Remove tests that don't work in the network sandbox
+
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -231,27 +231,27 @@ if(BUILD_TESTS AND NOT SKIP_SRC)
+ set(
+ TESTS
+ array-test
+- boreas-alivedetection-test
+- boreas-cli-test
++ #boreas-alivedetection-test
++ #boreas-cli-test
+ boreas-error-test
+ boreas-io-test
+- boreas-ping-test
+- boreas-sniffer-test
++ #boreas-ping-test
++ #boreas-sniffer-test
+ compressutils-test
+ cpeutils-test
+ cvss-test
+ hosts-test
+ json-test
+ jsonpull-test
+- logging-test
++ #logging-test
+ logging-domain-test
+- networking-test
++ #networking-test
+ nvti-test
+ osp-test
+ passwordbasedauthentication-test
+ streamvalidator-test
+ test-hosts
+- util-test
++ #util-test
+ version-test
+ versionutils-test
+ xmlutils-test
+@@ -267,11 +267,11 @@ if(BUILD_TESTS AND NOT SKIP_SRC)
+ vtparser-test
+ )
+ endif(ENABLE_OPENVASD)
+-
++#[===[
+ if(ENABLE_AGENTS)
+ list(APPEND TESTS agent-controller-test)
+ endif(ENABLE_AGENTS)
+-
++]===]
+ add_custom_target(tests DEPENDS ${TESTS})
+
+ # Code coverage
+--- a/agent_controller/CMakeLists.txt
++++ b/agent_controller/CMakeLists.txt
+@@ -58,6 +58,7 @@ endif()
+ ## Tests
+
+ if(BUILD_TESTS)
++#[===[
+ add_unit_test(
+ agent-controller-test
+ agent_controller_tests.c
+@@ -69,6 +70,7 @@ if(BUILD_TESTS)
+ ${CURL_LDFLAGS}
+ ${LINKER_HARDENING_FLAGS}
+ )
++]===]
+ endif()
+
+ ## Install
+--- a/base/CMakeLists.txt
++++ b/base/CMakeLists.txt
+@@ -134,6 +134,7 @@ if(BUILD_TESTS)
+ NETWORKING_TEST_LINKER_WRAP_OPTIONS
+ "-Wl,-wrap,g_io_channel_new_file,-wrap,g_io_channel_shutdown,-wrap,g_io_channel_unref"
+ )
++#[===[
+ add_unit_test(
+ networking-test
+ networking_tests.c
+@@ -143,6 +144,7 @@ if(BUILD_TESTS)
+ ${LINKER_HARDENING_FLAGS}
+ ${NETWORKING_TEST_LINKER_WRAP_OPTIONS}
+ )
++]===]
+ add_unit_test(
+ pidfile-test
+ pidfile_tests.c
+@@ -196,6 +198,7 @@ if(BUILD_TESTS)
+ ${GLIB_LDFLAGS}
+ ${LINKER_HARDENING_FLAGS}
+ )
++#[===[
+ add_unit_test(
+ logging-test
+ logging_tests.c
+@@ -203,6 +206,7 @@ if(BUILD_TESTS)
+ ${GLIB_LDFLAGS}
+ ${LINKER_HARDENING_FLAGS}
+ )
++]===]
+ add_unit_test(
+ strings-test
+ strings_tests.c
+--- a/boreas/CMakeLists.txt
++++ b/boreas/CMakeLists.txt
+@@ -136,6 +136,7 @@ set(LIBGVM_BOREAS_NAME ${LIBGVM_BOREAS_NAME} PARENT_SCOPE)
+ ## Tests
+
+ if(BUILD_TESTS)
++#[===[
+ add_unit_test(
+ boreas-alivedetection-test
+ alivedetection_tests.c
+@@ -148,6 +149,7 @@ if(BUILD_TESTS)
+ ${LINKER_HARDENING_FLAGS}
+ ${CMAKE_THREAD_LIBS_INIT}
+ )
++]===]
+ add_unit_test(
+ boreas-arp-test
+ arp_tests.c
+@@ -179,6 +181,7 @@ if(BUILD_TESTS)
+ ${LINKER_HARDENING_FLAGS}
+ ${CMAKE_THREAD_LIBS_INIT}
+ )
++#[===[
+ add_unit_test(
+ boreas-cli-test
+ cli_tests.c
+@@ -191,6 +194,7 @@ if(BUILD_TESTS)
+ ${LINKER_HARDENING_FLAGS}
+ ${CMAKE_THREAD_LIBS_INIT}
+ )
++]===]
+ add_unit_test(
+ boreas-ping-test
+ ping_tests.c
+@@ -216,6 +220,7 @@ if(BUILD_TESTS)
+ )
+
+ set(UTIL_TEST_LINKER_WRAP_OPTIONS "-Wl,-wrap,socket,-wrap,setsockopt")
++#[===[
+ add_unit_test(
+ util-test
+ util_tests.c
+@@ -225,6 +230,7 @@ if(BUILD_TESTS)
+ ${CMAKE_THREAD_LIBS_INIT}
+ ${UTIL_TEST_LINKER_WRAP_OPTIONS}
+ )
++]===]
+ endif(BUILD_TESTS)
+
+ ## Install
+--- a/cmake/MacroAddUnitTest.cmake
++++ b/cmake/MacroAddUnitTest.cmake
+@@ -3,8 +3,8 @@ macro(add_unit_test _testName _testSource)
+ target_link_libraries(${_testName} ${CGREEN_LIBRARIES} ${ARGN})
+ target_include_directories(${_testName} PRIVATE ${CGREEN_INCLUDE_DIRS})
+ if(ENABLE_ADDRESS_SANITIZER)
+- target_compile_options(${_testName} PRIVATE "-fsanitize=address")
+- target_link_options(${_testName} PRIVATE "-fsanitize=address")
++ # target_compile_options(${_testName} PRIVATE "-fsanitize=address")
++ # target_link_options(${_testName} PRIVATE "-fsanitize=address")
+ endif(ENABLE_ADDRESS_SANITIZER)
+ add_test(NAME ${_testName} COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${_testName})
+ endmacro()
+--- a/util/CMakeLists.txt
++++ b/util/CMakeLists.txt
+@@ -294,6 +294,7 @@ if(BUILD_TESTS)
+ ${UUID_LDFLAGS}
+ ${LINKER_HARDENING_FLAGS}
+ )
++#[===[
+ add_unit_test(
+ mqtt-test
+ mqtt_tests.c
+@@ -304,6 +305,7 @@ if(BUILD_TESTS)
+ ${UUID_LDFLAGS}
+ ${LINKER_HARDENING_FLAGS}
+ )
++]===]
+ add_unit_test(
+ kb-test
+ kb_tests.c
+@@ -312,6 +314,7 @@ if(BUILD_TESTS)
+ ${REDIS_LDFLAGS}
+ ${LINKER_HARDENING_FLAGS}
+ )
++#[===[
+ add_unit_test(
+ sshutils-test
+ sshutils_tests.c
+@@ -342,6 +345,7 @@ if(BUILD_TESTS)
+ ${GNUTLS_LDFLAGS}
+ ${LINKER_HARDENING_FLAGS}
+ )
++]===]
+ add_unit_test(
+ streamvalidator-test
+ streamvalidator_tests.c
diff --git a/net-analyzer/gvm-libs/gvm-libs-22.28.0.ebuild b/net-analyzer/gvm-libs/gvm-libs-22.28.0.ebuild
new file mode 100644
index 000000000000..bc6681fe891e
--- /dev/null
+++ b/net-analyzer/gvm-libs/gvm-libs-22.28.0.ebuild
@@ -0,0 +1,132 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake toolchain-funcs
+
+DESCRIPTION="Greenbone Vulnerability Management (GVM) libraries"
+HOMEPAGE="https://www.greenbone.net https://github.com/greenbone/gvm-libs/"
+SRC_URI="https://github.com/greenbone/gvm-libs/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="doc ldap test radius"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ acct-user/gvm
+ >=app-crypt/gpgme-1.7.0:=
+ >=dev-libs/glib-2.42:2
+ >=dev-libs/hiredis-1.1.0:=
+ dev-libs/libgcrypt:=
+ dev-libs/libgpg-error
+ >=dev-libs/cJSON-1.7.14
+ >=dev-libs/libxml2-2.0:2=
+ >=net-libs/gnutls-3.2.15:=
+ net-libs/libnet:1.1
+ net-libs/libpcap
+ >=net-libs/libssh-0.6.0:=
+ >=sys-apps/util-linux-2.25.0
+ sys-libs/libxcrypt:=
+ >=virtual/zlib-1.2.8:=
+ net-libs/paho-mqtt-c:1.3
+ >=net-misc/curl-7.83.0
+ ldap? ( net-nds/openldap:= )
+ radius? ( net-dialup/freeradius-client )
+"
+RDEPEND="${DEPEND}"
+BDEPEND="
+ dev-vcs/git
+ app-alternatives/yacc
+ app-alternatives/lex
+ virtual/pkgconfig
+ doc? (
+ app-text/doxygen[dot]
+ app-text/xmltoman
+ app-text/htmldoc
+ dev-perl/CGI
+ dev-perl/SQL-Translator
+ )
+ test? ( dev-libs/cgreen )
+"
+
+PATCHES=(
+ # Remove tests that don't work in the network sandbox
+ "${FILESDIR}/${P}-remove-unworking-tests.patch"
+ # Issue: https://github.com/greenbone/gvm-libs/issues/960
+ "${FILESDIR}/${P}-add-missing-link-to-cjson.patch"
+)
+
+pkg_setup() {
+ if tc-is-clang; then
+ local clang_major_version=$(clang-major-version);
+ if ! has_version "llvm-runtimes/compiler-rt-sanitizers:${clang_major_version}[profile]"; then
+ eerror "Compiling this package with clang requires llvm-runtimes/compiler-rt-sanitizers to be built with 'profile' USE flag enabled"
+ die "Clang detected, but llvm-runtimes/compiler-rt-sanitizers not build with 'profile' USE flag enabled"
+ fi
+ fi
+ if tc-is-gcc; then
+ local gcc_major_version=$(gcc-major-version);
+ if ! has_version "sys-devel/gcc:${gcc_major_version}[sanitize]"; then
+ eerror "Compiling this package with gcc requires sys-devel/gcc to be built with 'sanitize' USE flag enabled"
+ die "Gcc detected, but sys-devel/gcc not build with 'sanitize' USE flag enabled"
+ fi
+ fi
+}
+
+src_prepare() {
+ cmake_src_prepare
+ # QA-Fix | Remove -Werror compiler flag | Bug: #909558
+ sed -i -e "s/-Werror//" "${S}"/CMakeLists.txt || die
+ # QA-Fix | Remove doxygen warnings for !CLANG
+ if use doc; then
+ if ! tc-is-clang; then
+ local f
+ for f in doc/*.in; do
+ sed -i \
+ -e "s*CLANG_ASSISTED_PARSING = NO*#CLANG_ASSISTED_PARSING = NO*g" \
+ -e "s*CLANG_OPTIONS*#CLANG_OPTIONS*g" \
+ "${f}" || die "couldn't disable CLANG parsing"
+ done
+ fi
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ "-DLOCALSTATEDIR=${EPREFIX}/var"
+ "-DSYSCONFDIR=${EPREFIX}/etc"
+ "-DGVM_RUN_DIR=${EPREFIX}/var/lib/gvm"
+ "-DBUILD_TESTS=$(usex test)"
+ "-DBUILD_WITH_RADIUS=$(usex radius)"
+ "-DBUILD_WITH_LDAP=$(usex ldap)"
+ )
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+ if use doc; then
+ cmake_build -C "${BUILD_DIR}" doc
+ cmake_build doc-full -C "${BUILD_DIR}" doc
+ fi
+ cmake_build rebuild_cache
+ if use test; then
+ cmake_build tests
+ fi
+}
+
+src_install() {
+ if use doc; then
+ local HTML_DOCS=( "${BUILD_DIR}"/doc/generated/html/. )
+ fi
+ cmake_src_install
+
+ # Set proper permissions on required files/directories
+ keepdir /var/lib/gvm
+ if ! use prefix; then
+ fowners -R gvm:gvm /var/lib/gvm
+ fi
+}
diff --git a/net-analyzer/gvm-libs/gvm-libs-22.35.4.ebuild b/net-analyzer/gvm-libs/gvm-libs-22.35.4.ebuild
new file mode 100644
index 000000000000..4202ba358c21
--- /dev/null
+++ b/net-analyzer/gvm-libs/gvm-libs-22.35.4.ebuild
@@ -0,0 +1,130 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake toolchain-funcs
+
+DESCRIPTION="Greenbone Vulnerability Management (GVM) libraries"
+HOMEPAGE="https://www.greenbone.net https://github.com/greenbone/gvm-libs/"
+SRC_URI="https://github.com/greenbone/gvm-libs/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc ldap test radius"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ acct-user/gvm
+ >=app-crypt/gpgme-1.7.0:=
+ >=dev-libs/glib-2.42:2
+ >=dev-libs/hiredis-1.1.0:=
+ dev-libs/libgcrypt:=
+ dev-libs/libgpg-error
+ >=dev-libs/cJSON-1.7.14
+ >=dev-libs/libxml2-2.0:2=
+ >=net-libs/gnutls-3.2.15:=
+ net-libs/libnet:1.1
+ net-libs/libpcap
+ >=net-libs/libssh-0.6.0:=
+ >=sys-apps/util-linux-2.25.0
+ sys-libs/libxcrypt:=
+ >=virtual/zlib-1.2.8:=
+ net-libs/paho-mqtt-c:1.3
+ >=net-misc/curl-7.83.0
+ ldap? ( net-nds/openldap:= )
+ radius? ( net-dialup/freeradius-client )
+"
+RDEPEND="${DEPEND}"
+BDEPEND="
+ dev-vcs/git
+ app-alternatives/yacc
+ app-alternatives/lex
+ virtual/pkgconfig
+ doc? (
+ app-text/doxygen[dot]
+ app-text/xmltoman
+ app-text/htmldoc
+ dev-perl/CGI
+ dev-perl/SQL-Translator
+ )
+ test? ( dev-libs/cgreen )
+"
+
+PATCHES=(
+ # Remove tests that don't work in the network sandbox
+ "${FILESDIR}/${P}-remove-unworking-tests.patch"
+)
+
+pkg_setup() {
+ if tc-is-clang; then
+ local clang_major_version=$(clang-major-version);
+ if ! has_version "llvm-runtimes/compiler-rt-sanitizers:${clang_major_version}[profile]"; then
+ eerror "Compiling this package with clang requires llvm-runtimes/compiler-rt-sanitizers to be built with 'profile' USE flag enabled"
+ die "Clang detected, but llvm-runtimes/compiler-rt-sanitizers not build with 'profile' USE flag enabled"
+ fi
+ fi
+ if tc-is-gcc; then
+ local gcc_major_version=$(gcc-major-version);
+ if ! has_version "sys-devel/gcc:${gcc_major_version}[sanitize]"; then
+ eerror "Compiling this package with gcc requires sys-devel/gcc to be built with 'sanitize' USE flag enabled"
+ die "Gcc detected, but sys-devel/gcc not build with 'sanitize' USE flag enabled"
+ fi
+ fi
+}
+
+src_prepare() {
+ cmake_src_prepare
+ # QA-Fix | Remove -Werror compiler flag | Bug: #909558
+ sed -i -e "s/-Werror//" "${S}"/CMakeLists.txt || die
+ # QA-Fix | Remove doxygen warnings for !CLANG
+ if use doc; then
+ if ! tc-is-clang; then
+ local f
+ for f in doc/*.in; do
+ sed -i \
+ -e "s*CLANG_ASSISTED_PARSING = NO*#CLANG_ASSISTED_PARSING = NO*g" \
+ -e "s*CLANG_OPTIONS*#CLANG_OPTIONS*g" \
+ "${f}" || die "couldn't disable CLANG parsing"
+ done
+ fi
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ "-DLOCALSTATEDIR=${EPREFIX}/var"
+ "-DSYSCONFDIR=${EPREFIX}/etc"
+ "-DGVM_RUN_DIR=${EPREFIX}/var/lib/gvm"
+ "-DBUILD_TESTS=$(usex test)"
+ "-DBUILD_WITH_RADIUS=$(usex radius)"
+ "-DBUILD_WITH_LDAP=$(usex ldap)"
+ )
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+ if use doc; then
+ cmake_build -C "${BUILD_DIR}" doc
+ cmake_build doc-full -C "${BUILD_DIR}" doc
+ fi
+ cmake_build rebuild_cache
+ if use test; then
+ cmake_build tests
+ fi
+}
+
+src_install() {
+ if use doc; then
+ local HTML_DOCS=( "${BUILD_DIR}"/doc/generated/html/. )
+ fi
+ cmake_src_install
+
+ # Set proper permissions on required files/directories
+ keepdir /var/lib/gvm
+ if ! use prefix; then
+ fowners -R gvm:gvm /var/lib/gvm
+ fi
+}
diff --git a/net-analyzer/gvm-libs/metadata.xml b/net-analyzer/gvm-libs/metadata.xml
new file mode 100644
index 000000000000..718d96f60ede
--- /dev/null
+++ b/net-analyzer/gvm-libs/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>foti.giuseppe@gmail.com</email>
+ <name>Giuseppe Foti</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription lang="en">
+ This is the libraries module for the Greenbone Vulnerability Management Solution.
+ It is used for the Greenbone Security Manager appliances and provides various
+ functionalities to support the integrated service daemons.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/gvm-tools/Manifest b/net-analyzer/gvm-tools/Manifest
new file mode 100644
index 000000000000..9ea75eb5bc5f
--- /dev/null
+++ b/net-analyzer/gvm-tools/Manifest
@@ -0,0 +1,2 @@
+DIST gvm-tools-25.4.0.tar.gz 263485 BLAKE2B a70a1a3962ba3892a52c921672dcc3a534f6c448a9db17d17d62e3237ca1cca9dab7828436704918708c5e91006369fa79c23b997273ce1aba0cbb7688e26adb SHA512 988bae093d7b6441f183116139a3f9989a00098edbf277751c288fb807ff7b7a003dbe96b515f12864eff484cf5bc1e9fe8d643c98582601525207507e6e0381
+DIST gvm-tools-25.4.5.tar.gz 274429 BLAKE2B ca4142e2227a1599ef936264bb6b410aa74d7c60fdfb56fd51854d580f7ceeb473e540c885664964df22637785ebe100b321cf2a51348a3fe02c99d33a23f194 SHA512 5fc332c55afdb18893255f89924b0c273408fdfd461d5af5e9b129a425637f730fb863a130fac2c7e10e4f86144572a35864b31589708d628d5a6e64c5f43bd3
diff --git a/net-analyzer/gvm-tools/gvm-tools-25.4.0.ebuild b/net-analyzer/gvm-tools/gvm-tools-25.4.0.ebuild
new file mode 100644
index 000000000000..9b3e6320bcf2
--- /dev/null
+++ b/net-analyzer/gvm-tools/gvm-tools-25.4.0.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+DISTUTILS_USE_PEP517=poetry
+inherit distutils-r1
+
+DESCRIPTION="Remote control for Greenbone Vulnerability Manager, previously named openvas-cli"
+HOMEPAGE="https://www.greenbone.net https://github.com/greenbone/gvm-tools/"
+SRC_URI="https://github.com/greenbone/gvm-tools/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64"
+
+RDEPEND="
+ >=net-analyzer/python-gvm-26.0.0[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}"
+
+distutils_enable_tests unittest
diff --git a/net-analyzer/gvm-tools/gvm-tools-25.4.5.ebuild b/net-analyzer/gvm-tools/gvm-tools-25.4.5.ebuild
new file mode 100644
index 000000000000..f524196a52b0
--- /dev/null
+++ b/net-analyzer/gvm-tools/gvm-tools-25.4.5.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+DISTUTILS_USE_PEP517=poetry
+inherit distutils-r1
+
+DESCRIPTION="Remote control for Greenbone Vulnerability Manager, previously named openvas-cli"
+HOMEPAGE="https://www.greenbone.net https://github.com/greenbone/gvm-tools/"
+SRC_URI="https://github.com/greenbone/gvm-tools/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ >=net-analyzer/python-gvm-26.0.0[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}"
+
+distutils_enable_tests unittest
diff --git a/net-analyzer/gvm-tools/metadata.xml b/net-analyzer/gvm-tools/metadata.xml
new file mode 100644
index 000000000000..807319c9aaa6
--- /dev/null
+++ b/net-analyzer/gvm-tools/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>foti.giuseppe@gmail.com</email>
+ <name>Giuseppe Foti</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription lang="en">
+ The Greenbone Vulnerability Management Tools or gvm-tools
+ in short are a collection of tools that help with remote controlling
+ a Greenbone Security Manager (GSM) appliance and its
+ underlying Greenbone Vulnerability Manager (GVM).
+ The tools essentially aid accessing the communication protocols
+ GMP (Greenbone Management Protocol) and OSP (Open Scanner Protocol).
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/gvm/files/gvm.init b/net-analyzer/gvm/files/gvm.init
new file mode 100644
index 000000000000..22a736c403b3
--- /dev/null
+++ b/net-analyzer/gvm/files/gvm.init
@@ -0,0 +1,25 @@
+#!/sbin/openrc-run
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+: ${GVM_USER:=gvm}
+: ${GVM_GROUP:=$(id -ng ${GVM_USER})}
+: ${GVM_TIMEOUT:=30}
+
+name="Greenbone Vulnerability Manager"
+command="/bin/true"
+command_background="true"
+command_user="${GVM_USER}:${GVM_GROUP}"
+pidfile="/run/gvm/gvm.pid"
+retry="${GVM_TIMEOUT}"
+
+depend() {
+ after bootmisc
+ need localmount net redis-openvas ospd-openvas gvmd gsad
+ want notus-scanner
+}
+
+start_pre() {
+ mkdir /run/gvm
+ chown -R gvm:gvm /run/gvm/
+}
diff --git a/net-analyzer/gvm/files/gvm.target b/net-analyzer/gvm/files/gvm.target
new file mode 100644
index 000000000000..783f8781579a
--- /dev/null
+++ b/net-analyzer/gvm/files/gvm.target
@@ -0,0 +1,5 @@
+[Unit]
+Description=Greenbone Vulnerability Manager
+Requires=multi-user.target redis-openvas.service ospd-openvas.service gvmd.service gsad.service
+Wants=notus-scanner.service
+After=syslog.target network.target networking.service multi-user.target notus-scanner.service redis-openvas.service ospd-openvas.service gvmd.service gsad.service
diff --git a/net-analyzer/gvm/gvm-22.4-r1.ebuild b/net-analyzer/gvm/gvm-22.4-r1.ebuild
new file mode 100644
index 000000000000..7923454943d6
--- /dev/null
+++ b/net-analyzer/gvm/gvm-22.4-r1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit optfeature systemd
+
+DESCRIPTION="Greenbone Vulnerability Management, previously named OpenVAS"
+HOMEPAGE="https://www.greenbone.net"
+
+LICENSE="AGPL-3+"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="cli doc +gsa ldap ospd snmp radius"
+
+RDEPEND="
+ >=net-analyzer/gvm-libs-${PV}[doc?,ldap?,radius?]
+ >=net-analyzer/gvmd-${PV}[doc?]
+ >=net-analyzer/openvas-scanner-${PV}[doc?,snmp?]
+ >=net-analyzer/greenbone-feed-sync-23.6.0
+ cli? ( >=net-analyzer/gvm-tools-21.10.0 )
+ gsa? ( >=net-analyzer/gsad-${PV}[doc?] )
+ ospd? ( >=net-analyzer/ospd-openvas-${PV}[doc?] )
+"
+
+src_unpack() {
+ mkdir "${WORKDIR}/${P}"
+}
+
+src_install() {
+ systemd_dounit "${FILESDIR}/${PN}.target"
+ newinitd "${FILESDIR}/${PN}.init" "${PN}"
+}
+
+pkg_postinst() {
+ optfeature "web server scanning and testing tool" net-analyzer/nikto
+ optfeature "IPsec VPN scanning, fingerprinting and testing tool" net-analyzer/ike-scan
+ optfeature "port scanner" net-analyzer/nmap
+ optfeature "create results from local security checks" net-analyzer/notus-scanner
+ optfeature "command line tool to scan for alive hosts" net-analyzer/boreas
+}
diff --git a/net-analyzer/gvm/gvm-25.5.0.ebuild b/net-analyzer/gvm/gvm-25.5.0.ebuild
new file mode 100644
index 000000000000..9d12c1551028
--- /dev/null
+++ b/net-analyzer/gvm/gvm-25.5.0.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit optfeature systemd
+
+DESCRIPTION="Greenbone Vulnerability Management, previously named OpenVAS"
+HOMEPAGE="https://www.greenbone.net"
+
+LICENSE="AGPL-3+"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="cli doc +gsa ldap ospd snmp radius"
+
+RDEPEND="
+ >=net-analyzer/gvm-libs-22.22.0[doc?,ldap?,radius?]
+ >=net-analyzer/gvmd-26.0.0[doc?]
+ >=net-analyzer/openvas-scanner-23.20.1[doc?,snmp?]
+ >=net-analyzer/greenbone-feed-sync-23.6.0
+ cli? ( >=net-analyzer/gvm-tools-25.3.0 )
+ gsa? (
+ >=net-analyzer/gsad-24.3.0[doc?]
+ >=net-analyzer/gsa-25.0.0
+ )
+ ospd? ( >=net-analyzer/ospd-openvas-22.9.0[doc?] )
+"
+
+src_unpack() {
+ mkdir "${WORKDIR}/${P}"
+}
+
+src_install() {
+ systemd_dounit "${FILESDIR}/${PN}.target"
+ newinitd "${FILESDIR}/${PN}.init" "${PN}"
+}
+
+pkg_postinst() {
+ optfeature "web server scanning and testing tool" net-analyzer/nikto
+ optfeature "IPsec VPN scanning, fingerprinting and testing tool" net-analyzer/ike-scan
+ optfeature "port scanner" net-analyzer/nmap
+ optfeature "create results from local security checks" net-analyzer/notus-scanner
+ optfeature "command line tool to scan for alive hosts" net-analyzer/boreas
+}
diff --git a/net-analyzer/gvm/metadata.xml b/net-analyzer/gvm/metadata.xml
new file mode 100644
index 000000000000..48720611eaa3
--- /dev/null
+++ b/net-analyzer/gvm/metadata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>foti.giuseppe@gmail.com</email>
+ <name>Giuseppe Foti</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <use>
+ <flag name="cli">Command Line Interface for OpenVAS Scanner</flag>
+ <flag name="gsa">Greenbone Security Assistant (WebUI)</flag>
+ <flag name="ospd">Enable support for scanner wrappers</flag>
+ </use>
+ <longdescription lang="en">
+ GVM previously named OpenVAS stands for Open Vulnerability Assessment System and is a network security scanner
+ with associated tools like a graphical user front-end.
+ The core component is a server with a set of network vulnerability tests (NVTs) to detect security problems in remote systems and applications.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/gvmd/Manifest b/net-analyzer/gvmd/Manifest
new file mode 100644
index 000000000000..45435278be87
--- /dev/null
+++ b/net-analyzer/gvmd/Manifest
@@ -0,0 +1,2 @@
+DIST gvmd-26.18.1.tar.gz 1270941 BLAKE2B e1055824d687e820b5a89da4a1f89d1dc09dd16f537dc107e4f318615fd5ed497258f68b77620be32ce6797e51de02ffe4537ae11096d322cc7481db25754347 SHA512 0da3d83a220583ac31ca527f7c3080d6e4a0c86fa3312d09397cc90eaaef11d83229b39a7edf42c8bb204b5e3d92d35cac413bf7b90503efbc53e9991e5e12cd
+DIST gvmd-26.3.0.tar.gz 1217037 BLAKE2B a2a60a04910bee6dac68bb6fd11aa3baba8fb70a506e131e877a82a931858c9c46e8c5dd272794097883dda542fc90d3eee2d025739fd7caa63bf782fb7dc8ce SHA512 cfb351b4c6cd6391f888c0031f44b72a48a16e355798f136ebec063df5561d36726332bf3fd257f7559bde5833990ac08598993d125f4e45e8eac3c595fdf6f7
diff --git a/net-analyzer/gvmd/files/gvmd-22.init b/net-analyzer/gvmd/files/gvmd-22.init
new file mode 100644
index 000000000000..784ac4fd3d80
--- /dev/null
+++ b/net-analyzer/gvmd/files/gvmd-22.init
@@ -0,0 +1,24 @@
+#!/sbin/openrc-run
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+: ${GVMD_USER:=gvm}
+: ${GVMD_GROUP:=$(id -ng ${GVMD_USER})}
+: ${GVMD_TIMEOUT:=30}
+
+name="Greenbone Vulnerability Manager"
+command=/usr/bin/gvmd
+command_args="${GVMD_VT_UPDATE} ${GVMD_OPTIONS} ${GVMD_LISTEN_ADDRESS_TCP} ${GVMD_PORT} ${GVMD_SCANNER_HOST} ${GVMD_GNUTLS_PRIORITIES}"
+command_user="${GVMD_USER}:${GVMD_GROUP}"
+pidfile="/run/gvmd/gvmd.pid"
+retry="${GVMD_TIMEOUT}"
+
+depend() {
+ after bootmisc postgresql postgresql-9.6 postgresql-10 postgresql-11 postgresql-12 postgresql-13 postgresql-14 postgresql-15 postgresql-16 postgresql-17 postgresql-18
+ want postgresql postgresql-9.6 postgresql-10 postgresql-11 postgresql-12 postgresql-13 postgresql-14 postgresql-15 postgresql-16 postgresql-17 postgresql-18
+ need localmount net ospd-openvas
+}
+
+start_pre() {
+ checkpath -d --owner ${GVMD_USER} /run/gvmd
+}
diff --git a/net-analyzer/gvmd/files/gvmd-26.18.1-remove-unworking-tests.patch b/net-analyzer/gvmd/files/gvmd-26.18.1-remove-unworking-tests.patch
new file mode 100644
index 000000000000..e9eb667f5473
--- /dev/null
+++ b/net-analyzer/gvmd/files/gvmd-26.18.1-remove-unworking-tests.patch
@@ -0,0 +1,35 @@
+# Remove tests that don't work in the network sandbox
+# Strip out sanitizer from tests
+
+--- a/cmake/add_unit_test.cmake
++++ b/cmake/add_unit_test.cmake
+@@ -22,14 +22,16 @@ macro(add_unit_test _baseName _objects _extraSource)
+ ${_objects}
+ ${TEST_TARGET_EXTRA_SRC}
+ )
+- target_compile_options(${_testName} PRIVATE "-fsanitize=address")
+- target_link_options(${_testName} PRIVATE "-fsanitize=address")
++# target_compile_options(${_testName} PRIVATE "-fsanitize=address")
++# target_link_options(${_testName} PRIVATE "-fsanitize=address")
+ add_test(${_testName} ${_testName})
++#[===[
+ set_tests_properties(
+ ${_testName}
+ PROPERTIES
+ ENVIRONMENT "ASAN_OPTIONS=detect_leaks=1:halt_on_error=1:abort_on_error=1"
+ )
++]===]
+ target_link_libraries(
+ ${_testName}
+ cgreen
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -428,7 +428,7 @@ set(
+ $<TARGET_OBJECTS:all-misc-obj>
+ $<TARGET_OBJECTS:all-sql-obj>
+ )
+-add_unit_test(gmp-tickets "${ALL_OBJECTS}" "${ALL_GMP_SRC}")
++#add_unit_test(gmp-tickets "${ALL_OBJECTS}" "${ALL_GMP_SRC}")
+
+ set(
+ ALL_OBJECTS
diff --git a/net-analyzer/gvmd/files/gvmd-26.3.0-remove-unworking-tests.patch b/net-analyzer/gvmd/files/gvmd-26.3.0-remove-unworking-tests.patch
new file mode 100644
index 000000000000..c975998fa7cd
--- /dev/null
+++ b/net-analyzer/gvmd/files/gvmd-26.3.0-remove-unworking-tests.patch
@@ -0,0 +1,12 @@
+# Remove tests that don't work in the network sandbox
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -387,7 +387,7 @@ add_executable(
+ ${TEST_TARGET_EXTRA_SRC}
+ )
+
+-add_test(gmp-tickets-test gmp-tickets-test)
++#add_test(gmp-tickets-test gmp-tickets-test)
+
+ set(TEST_TARGET_EXTRA_SRC ${ALL_MISC_SRC})
+ list(REMOVE_ITEM TEST_TARGET_EXTRA_SRC utils.c)
diff --git a/net-analyzer/gvmd/files/gvmd-daemon-22.conf b/net-analyzer/gvmd/files/gvmd-daemon-22.conf
new file mode 100644
index 000000000000..061609e1c45c
--- /dev/null
+++ b/net-analyzer/gvmd/files/gvmd-daemon-22.conf
@@ -0,0 +1,32 @@
+# GVMD command args
+
+# e.g --foreground
+GVMD_OPTIONS=""
+
+# Manager listen address unix socket
+# Failing under non-root user (looking for solution)
+GVMD_LISTEN_ADDRESS_UNIX="--unix-socket=/run/gvmd/gvmd.sock"
+
+# Manager listen address TCP
+GVMD_LISTEN_ADDRESS_TCP="--listen=127.0.0.1"
+
+# Manager listen port
+GVMD_PORT="--port=9390"
+
+# Manager unix socket listen owner
+GVMD_LISTEN_OWNER="--listen-owner=gvm"
+
+# Manager unix socket listen group
+GVMD_LISTEN_GROUP="--listen-group=gvm"
+
+# Manager unix socket listen mode
+GVMD_LISTEN_MODE="--listen-mode=755"
+
+# Scanner listen address unix socket
+GVMD_SCANNER_HOST="--scanner-host=/run/ospd/ospd-openvas.sock"
+
+# Update vt
+GVMD_VT_UPDATE="--osp-vt-update=/run/ospd/ospd-openvas.sock"
+
+# TLS settings
+GVMD_GNUTLS_PRIORITIES="--gnutls-priorities=SECURE256:+SUITEB192:+SECURE192:+SECURE128:+SUITEB128:-MD5:-SHA1:-VERS-TLS1.0:-VERS-TLS1.1:-VERS-SSL3.0"
diff --git a/net-analyzer/gvmd/files/gvmd.service.conf b/net-analyzer/gvmd/files/gvmd.service.conf
new file mode 100644
index 000000000000..4ea1442d4a7a
--- /dev/null
+++ b/net-analyzer/gvmd/files/gvmd.service.conf
@@ -0,0 +1,27 @@
+[Unit]
+After=postgresql-9.6.service
+After=postgresql-10.service
+After=postgresql-11.service
+After=postgresql-12.service
+After=postgresql-13.service
+After=postgresql-14.service
+After=postgresql-15.service
+After=postgresql-16.service
+After=postgresql-17.service
+After=postgresql-18.service
+Wants=postgresql-9.6.service
+Wants=postgresql-10.service
+Wants=postgresql-11.service
+Wants=postgresql-12.service
+Wants=postgresql-13.service
+Wants=postgresql-14.service
+Wants=postgresql-15.service
+Wants=postgresql-16.service
+Wants=postgresql-17.service
+Wants=postgresql-18.service
+PartOf=gvm.target
+
+[Service]
+Type=exec
+ExecStart=
+ExecStart=/usr/bin/gvmd --foreground --osp-vt-update=/run/ospd/ospd-openvas.sock --listen-group=gvm
diff --git a/net-analyzer/gvmd/gvmd-26.18.1.ebuild b/net-analyzer/gvmd/gvmd-26.18.1.ebuild
new file mode 100644
index 000000000000..eeef96c1df11
--- /dev/null
+++ b/net-analyzer/gvmd/gvmd-26.18.1.ebuild
@@ -0,0 +1,140 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake systemd toolchain-funcs
+
+DESCRIPTION="Greenbone vulnerability manager, previously named openvas-manager"
+HOMEPAGE="https://www.greenbone.net https://github.com/greenbone/gvmd/"
+SRC_URI="https://github.com/greenbone/gvmd/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="AGPL-3+"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ acct-user/gvm
+ app-crypt/gpgme:1=
+ dev-libs/libbsd
+ >=dev-db/postgresql-9.6:=[uuid]
+ >=dev-libs/cJSON-1.7.14
+ >=dev-libs/glib-2.42:2
+ >=dev-libs/libical-1.0.0:=
+ >=net-analyzer/gvm-libs-22.34
+ >=net-libs/gnutls-3.2.15:=[tools]
+"
+
+# gvmd (optionally) uses xml_split from XML-Twig at runtime. And texlive
+# and xmlstartlet are used for (PDF) report generator at runtime.
+RDEPEND="
+ ${DEPEND}
+ app-text/xmlstarlet
+ dev-perl/XML-Twig
+ dev-texlive/texlive-latexextra
+ >=net-analyzer/ospd-openvas-22.4
+ >=dev-db/pg-gvm-22.4
+"
+BDEPEND="
+ app-alternatives/yacc
+ app-alternatives/lex
+ virtual/pkgconfig
+ doc? (
+ app-text/doxygen[dot]
+ app-text/xmltoman
+ app-text/htmldoc
+ dev-libs/libxslt
+ )
+ test? ( dev-libs/cgreen )
+"
+
+PATCHES=(
+ # Remove tests that don't work in the network sandbox
+ "${FILESDIR}/${P}-remove-unworking-tests.patch"
+)
+
+src_prepare() {
+ cmake_src_prepare
+ # QA-Fix | Use correct FHS/Gentoo policy paths for 9.0.0
+ sed -i -e "s*share/doc/gvm/html/*share/doc/${PF}/html/*g" docs/CMakeLists.txt || die
+ sed -i -e "s*/doc/gvm/*/doc/${PF}/*g" CMakeLists.txt || die
+ # Fix errors in Doxigen OUTPUT_DIRECTORY paths
+ sed -i -e "s*@/doc/generated*@/docs/generated*g" docs/Doxyfile.in || die
+ sed -i -e "s*@/doc/generated*@/docs/generated*g" docs/Doxyfile_full.in || die
+ sed -i -e "s*@/doc/generated*@/docs/generated*g" docs/Doxyfile_xml.in || die
+ # QA-Fix | Remove !CLANG Doxygen warnings for 9.0.0
+ if use doc; then
+ if ! tc-is-clang; then
+ local f
+ for f in docs/*.in
+ do
+ sed -i \
+ -e "s*CLANG_ASSISTED_PARSING = NO*#CLANG_ASSISTED_PARSING = NO*g" \
+ -e "s*CLANG_OPTIONS*#CLANG_OPTIONS*g" \
+ "${f}" || die "couldn't disable CLANG parsing"
+ done
+ fi
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ "-DLOCALSTATEDIR=${EPREFIX}/var"
+ "-DSYSCONFDIR=${EPREFIX}/etc"
+ "-DLIBDIR=${EPREFIX}/usr/$(get_libdir)"
+ "-DSBINDIR=${EPREFIX}/usr/bin"
+ "-DSYSTEMD_SERVICE_DIR=$(systemd_get_systemunitdir)"
+ "-DGVM_DEFAULT_DROP_USER=gvm"
+ )
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+ if use doc; then
+ cmake_build -C "${BUILD_DIR}" doc
+ cmake_build doc-full -C "${BUILD_DIR}" doc
+ fi
+ if use test; then
+ cmake_build tests
+ fi
+ cmake_build rebuild_cache
+}
+
+src_install() {
+ if use doc; then
+ local HTML_DOCS=( "${BUILD_DIR}"/docs/generated/html/. )
+ fi
+ cmake_src_install
+
+ insinto /etc/gvm/sysconfig
+ newins "${FILESDIR}/${PN}-daemon-22.conf" "${PN}-daemon.conf"
+ if ! use prefix; then
+ fowners -R gvm:gvm /etc/gvm
+ fi
+
+ newinitd "${FILESDIR}/${PN}-22.init" "${PN}"
+ newconfd "${FILESDIR}/${PN}-daemon-22.conf" "${PN}"
+
+ # Set proper permissions on required files/directories
+ keepdir /var/lib/gvm/gvmd
+ if ! use prefix; then
+ fowners -R gvm:gvm /var/lib/gvm
+ fi
+
+ systemd_install_serviced "${FILESDIR}/gvmd.service.conf" \
+ ${PN}.service
+}
+
+pkg_postinst() {
+ if [[ ${REPLACING_VERSIONS} ]]; then
+ elog "If you are upgrading from a previous version, you need to update the database version."
+ elog "Please, create the running directory and give write permission to the database user"
+ elog "then run gvmd as the gvm user with --migrate option:"
+ elog "~# mkdir /run/gvmd"
+ elog "~# setfacl -m u:gvm:rwx /run/gvmd/"
+ elog "~# sudo -u gvm gvmd --migrate"
+ fi
+}
diff --git a/net-analyzer/gvmd/gvmd-26.3.0.ebuild b/net-analyzer/gvmd/gvmd-26.3.0.ebuild
new file mode 100644
index 000000000000..98cbc243d812
--- /dev/null
+++ b/net-analyzer/gvmd/gvmd-26.3.0.ebuild
@@ -0,0 +1,140 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake systemd toolchain-funcs
+
+DESCRIPTION="Greenbone vulnerability manager, previously named openvas-manager"
+HOMEPAGE="https://www.greenbone.net https://github.com/greenbone/gvmd/"
+SRC_URI="https://github.com/greenbone/gvmd/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="AGPL-3+"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="doc test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ acct-user/gvm
+ app-crypt/gpgme:1=
+ dev-libs/libbsd
+ >=dev-db/postgresql-9.6:=[uuid]
+ >=dev-libs/cJSON-1.7.14
+ >=dev-libs/glib-2.42:2
+ >=dev-libs/libical-1.0.0:=
+ >=net-analyzer/gvm-libs-22.28
+ >=net-libs/gnutls-3.2.15:=[tools]
+"
+
+# gvmd (optionally) uses xml_split from XML-Twig at runtime. And texlive
+# and xmlstartlet are used for (PDF) report generator at runtime.
+RDEPEND="
+ ${DEPEND}
+ app-text/xmlstarlet
+ dev-perl/XML-Twig
+ dev-texlive/texlive-latexextra
+ >=net-analyzer/ospd-openvas-22.4
+ >=dev-db/pg-gvm-22.4
+"
+BDEPEND="
+ app-alternatives/yacc
+ app-alternatives/lex
+ virtual/pkgconfig
+ doc? (
+ app-text/doxygen[dot]
+ app-text/xmltoman
+ app-text/htmldoc
+ dev-libs/libxslt
+ )
+ test? ( dev-libs/cgreen )
+"
+
+PATCHES=(
+ # Remove tests that don't work in the network sandbox
+ "${FILESDIR}/${P}-remove-unworking-tests.patch"
+)
+
+src_prepare() {
+ cmake_src_prepare
+ # QA-Fix | Use correct FHS/Gentoo policy paths for 9.0.0
+ sed -i -e "s*share/doc/gvm/html/*share/doc/${PF}/html/*g" docs/CMakeLists.txt || die
+ sed -i -e "s*/doc/gvm/*/doc/${PF}/*g" CMakeLists.txt || die
+ # Fix errors in Doxigen OUTPUT_DIRECTORY paths
+ sed -i -e "s*@/doc/generated*@/docs/generated*g" docs/Doxyfile.in || die
+ sed -i -e "s*@/doc/generated*@/docs/generated*g" docs/Doxyfile_full.in || die
+ sed -i -e "s*@/doc/generated*@/docs/generated*g" docs/Doxyfile_xml.in || die
+ # QA-Fix | Remove !CLANG Doxygen warnings for 9.0.0
+ if use doc; then
+ if ! tc-is-clang; then
+ local f
+ for f in docs/*.in
+ do
+ sed -i \
+ -e "s*CLANG_ASSISTED_PARSING = NO*#CLANG_ASSISTED_PARSING = NO*g" \
+ -e "s*CLANG_OPTIONS*#CLANG_OPTIONS*g" \
+ "${f}" || die "couldn't disable CLANG parsing"
+ done
+ fi
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ "-DLOCALSTATEDIR=${EPREFIX}/var"
+ "-DSYSCONFDIR=${EPREFIX}/etc"
+ "-DLIBDIR=${EPREFIX}/usr/$(get_libdir)"
+ "-DSBINDIR=${EPREFIX}/usr/bin"
+ "-DSYSTEMD_SERVICE_DIR=$(systemd_get_systemunitdir)"
+ "-DGVM_DEFAULT_DROP_USER=gvm"
+ )
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+ if use doc; then
+ cmake_build -C "${BUILD_DIR}" doc
+ cmake_build doc-full -C "${BUILD_DIR}" doc
+ fi
+ if use test; then
+ cmake_build tests
+ fi
+ cmake_build rebuild_cache
+}
+
+src_install() {
+ if use doc; then
+ local HTML_DOCS=( "${BUILD_DIR}"/docs/generated/html/. )
+ fi
+ cmake_src_install
+
+ insinto /etc/gvm/sysconfig
+ newins "${FILESDIR}/${PN}-daemon-22.conf" "${PN}-daemon.conf"
+ if ! use prefix; then
+ fowners -R gvm:gvm /etc/gvm
+ fi
+
+ newinitd "${FILESDIR}/${PN}-22.init" "${PN}"
+ newconfd "${FILESDIR}/${PN}-daemon-22.conf" "${PN}"
+
+ # Set proper permissions on required files/directories
+ keepdir /var/lib/gvm/gvmd
+ if ! use prefix; then
+ fowners -R gvm:gvm /var/lib/gvm
+ fi
+
+ systemd_install_serviced "${FILESDIR}/gvmd.service.conf" \
+ ${PN}.service
+}
+
+pkg_postinst() {
+ if [[ ${REPLACING_VERSIONS} ]]; then
+ elog "If you are upgrading from a previous version, you need to update the database version."
+ elog "Please, create the running directory and give write permission to the database user"
+ elog "then run gvmd as the gvm user with --migrate option:"
+ elog "~# mkdir /run/gvmd"
+ elog "~# setfacl -m u:gvm:rwx /run/gvmd/"
+ elog "~# sudo -u gvm gvmd --migrate"
+ fi
+}
diff --git a/net-analyzer/gvmd/metadata.xml b/net-analyzer/gvmd/metadata.xml
new file mode 100644
index 000000000000..091938b5c7c5
--- /dev/null
+++ b/net-analyzer/gvmd/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>foti.giuseppe@gmail.com</email>
+ <name>Giuseppe Foti</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription lang="en">
+ The Greenbone Vulnerability Manager is the central management service between security scanners and the user clients.
+ It manages the storage of any vulnerability management configurations and of the scan results.
+ Access to data, control commands and workflows is offered via the XML-based Greenbone Management Protocol (GMP).
+ The primary scanner OpenVAS Scanner is controlled directly via protocol OTP while any other
+ remote scanner is coupled with the Open Scanner Protocol (OSP).
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/hexinject/Manifest b/net-analyzer/hexinject/Manifest
new file mode 100644
index 000000000000..8edb0618ffb3
--- /dev/null
+++ b/net-analyzer/hexinject/Manifest
@@ -0,0 +1 @@
+DIST hexinject-1.6.tar.gz 16876 BLAKE2B ac2951a5b4705ec84ed72fa5513e84b8bf031bd7e43b05c76fe83fc601cf3a245352afb0f226cc128bb028124ba898bc67394f2d839554ee01e25ee25c8f0c4d SHA512 7432122a7ca42b7ac066cc55daec2d4a656b08e0f390db1a49f626181080d07687026d04a150573e3341e4e76f87a20b6466deddcc9d022e7d66fadcb8dac1ad
diff --git a/net-analyzer/hexinject/files/hexinject-1.6-fix-build-system.patch b/net-analyzer/hexinject/files/hexinject-1.6-fix-build-system.patch
new file mode 100644
index 000000000000..9d22337afa93
--- /dev/null
+++ b/net-analyzer/hexinject/files/hexinject-1.6-fix-build-system.patch
@@ -0,0 +1,22 @@
+Author: holgersson <holgersson@posteo.de>
+Date: Fri Oct 20 18:30:00 2017 +0200
+
+Respect CC, CFLAGS, CPPFLAGS and LDFLAGS.
+
+--- a/Makefile
++++ b/Makefile
+@@ -1,11 +1,7 @@
+-CC = gcc
+-CFLAGS = -Wall
+-LDFLAGS = -lpcap
++CFLAGS += -Wall
++LDLIBS = -lpcap
+
+-all:
+- $(CC) $(CFLAGS) $(LDFLAGS) -o hexinject hexinject.c
+- $(CC) $(CFLAGS) $(LDFLAGS) -o prettypacket prettypacket.c
+- $(CC) $(CFLAGS) $(LDFLAGS) -o hex2raw hex2raw.c
++all: hexinject prettypacket hex2raw
+
+ clean:
+ rm -f hexinject prettypacket hex2raw *~
diff --git a/net-analyzer/hexinject/hexinject-1.6-r2.ebuild b/net-analyzer/hexinject/hexinject-1.6-r2.ebuild
new file mode 100644
index 000000000000..06bb1f199fdf
--- /dev/null
+++ b/net-analyzer/hexinject/hexinject-1.6-r2.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Network packet sniffer and injector"
+HOMEPAGE="http://hexinject.sourceforge.net/"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz"
+S="${WORKDIR}/${PN}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+tools experimental"
+
+DEPEND="net-libs/libpcap"
+RDEPEND="${DEPEND}
+ experimental? ( dev-lang/tcl )"
+
+PATCHES=( "${FILESDIR}"/${PN}-1.6-fix-build-system.patch )
+
+src_configure() {
+ tc-export CC
+}
+
+src_install() {
+ dobin hexinject
+ use tools && dobin hex2raw prettypacket
+ use experimental && dobin packets.tcl
+ einstalldocs
+}
diff --git a/net-analyzer/hexinject/metadata.xml b/net-analyzer/hexinject/metadata.xml
new file mode 100644
index 000000000000..7321488f7627
--- /dev/null
+++ b/net-analyzer/hexinject/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <longdescription lang="en">
+ HexInject is a very versatile packet injector and sniffer, that provide
+ a command-line framework for raw network access. It's designed to work
+ together with others command-line utilities, and for this reason it
+ facilitates the creation of powerful shell scripts capable of reading,
+ intercepting and modifying network traffic in a transparent manner.
+ </longdescription>
+ <use>
+ <flag name="tools">Install hex2raw and prettypacket tools</flag>
+ <flag name="experimental">Install experimental packets.tcl</flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/hping/Manifest b/net-analyzer/hping/Manifest
new file mode 100644
index 000000000000..783db30a88d5
--- /dev/null
+++ b/net-analyzer/hping/Manifest
@@ -0,0 +1 @@
+DIST hping-3_pre20141226.tar.gz 572322 BLAKE2B d7bacdd6ae7ba7589825bb9157fc6501740f2a684bc9045483a57c40af3ccf89a09f2f7ddc31c939886e5173b7c4d29233d87e044df14b86e6fcba7bda4f8abc SHA512 d03c27ec25b813c74d57b4e26acf1a5b1ade15abd93c5f8cbf29a5464c6dc3a8679e1d255d99ad232462d6cda70dcd3b68df13e70e950cac0943cb69bdb14b4c
diff --git a/net-analyzer/hping/files/hping-3_pre20051105-libtcl.patch b/net-analyzer/hping/files/hping-3_pre20051105-libtcl.patch
new file mode 100644
index 000000000000..807399cb553c
--- /dev/null
+++ b/net-analyzer/hping/files/hping-3_pre20051105-libtcl.patch
@@ -0,0 +1,16 @@
+When anything libtcl (bug #247282) this will fail, and we're only finding out
+the version of the library anyway, so why not use TCL_VER, which is found using
+a slightly less fishy method. -JeR
+
+--- a/configure
++++ b/configure
+@@ -98,8 +98,7 @@
+ fi
+ if [ -n $USE_TCL ]
+ then
+- LIBPOSTFIX=`ls -1 /usr/local/lib/ /usr/lib | grep 'libtcl[0-9]' | grep so | sed -e 's/\.so.*//g' -e 's/libtcl//g' | sort -r | head -1`
+- TCL_LIB="-ltcl${LIBPOSTFIX} -lm -lpthread"
++ TCL_LIB="-ltcl${TCL_VER} -lm -lpthread"
+ fi
+
+ #
diff --git a/net-analyzer/hping/files/hping-3_pre20051105-tcl.patch b/net-analyzer/hping/files/hping-3_pre20051105-tcl.patch
new file mode 100644
index 000000000000..1fb734e349b4
--- /dev/null
+++ b/net-analyzer/hping/files/hping-3_pre20051105-tcl.patch
@@ -0,0 +1,11 @@
+--- a/configure
++++ b/configure
+@@ -63,7 +63,7 @@
+ #
+ for TCLPATH_TRY in "/usr/bin/" "/usr/local/bin/" "/bin/"
+ do
+- for TCLVER_TRY in "8.4" "8.3" "8.2" "8.1" "8.0"
++ for TCLVER_TRY in "8.6" "8.5" "8.4" "8.3" "8.2" "8.1" "8.0"
+ do
+ if [ -z $TCLSH ]
+ then
diff --git a/net-analyzer/hping/files/hping-3_pre20051105-tclsh-proper-escaping.patch b/net-analyzer/hping/files/hping-3_pre20051105-tclsh-proper-escaping.patch
new file mode 100644
index 000000000000..8cd7065c8393
--- /dev/null
+++ b/net-analyzer/hping/files/hping-3_pre20051105-tclsh-proper-escaping.patch
@@ -0,0 +1,26 @@
+Fix for https://bugs.gentoo.org/show_bug.cgi?id=486664
+
+--- a/configure
++++ b/configure
+@@ -65,10 +65,10 @@
+ do
+ for TCLVER_TRY in "8.6" "8.5" "8.4" "8.3" "8.2" "8.1" "8.0"
+ do
+- if [ -z $TCLSH ]
++ if [ -z "$TCLSH" ]
+ then
+ TCLSH_TRY=${TCLPATH_TRY}tclsh${TCLVER_TRY}
+- if [ -f $TCLSH_TRY ]
++ if [ -f "$TCLSH_TRY" ]
+ then
+ TCLSH=$TCLSH_TRY
+ echo "===> Found Tclsh in: $TCLSH"
+@@ -76,7 +76,7 @@
+ fi
+ done
+ done
+-if [ -f $TCLSH ]
++if [ -f "$TCLSH" ]
+ then
+ TCL_VER=`echo puts \\$tcl_version | $TCLSH -`
+ USE_TCL='-DUSE_TCL'
diff --git a/net-analyzer/hping/files/hping-3_pre20141226-compile.patch b/net-analyzer/hping/files/hping-3_pre20141226-compile.patch
new file mode 100644
index 000000000000..14b6eacdae47
--- /dev/null
+++ b/net-analyzer/hping/files/hping-3_pre20141226-compile.patch
@@ -0,0 +1,31 @@
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -6,10 +6,7 @@
+ # $date: Sun Jul 25 17:56:15 MET DST 1999$
+ # $rev: 3$
+
+-CC= gcc
+-AR=/usr/bin/ar
+-RANLIB=/usr/bin/ranlib
+-CCOPT= -O2 -Wall @PCAP_INCLUDE@ @TCL_INC@ @USE_TCL@
++CCOPT= $(CFLAGS) -Wall @PCAP_INCLUDE@ @TCL_INC@ @USE_TCL@
+ DEBUG= -g
+ #uncomment the following if you need libpcap based build under linux
+ #(not raccomanded)
+@@ -50,14 +47,11 @@
+ $(RANLIB) $@
+
+ hping3: byteorder.h $(OBJ)
+- $(CC) -o hping3 $(CCOPT) $(DEBUG) $(OBJ) -L/usr/local/lib $(PCAP) @SOLARISLIB@ @TCL_LIB@
++ $(CC) -o hping3 $(CCOPT) $(LDFLAGS) $(DEBUG) $(OBJ) -L/usr/$(LIBDIR) $(PCAP) @SOLARISLIB@ @TCL_LIB@
+ @echo
+- ./hping3 -v
+- @echo "use \`make strip' to strip hping3 binary"
+- @echo "use \`make install' to install hping3"
+
+ hping3-static: byteorder.h $(OBJ)
+- $(CC) -static -o hping3-static $(CCOPT) $(DEBUG) $(OBJ) -L/usr/local/lib $(PCAP) @SOLARISLIB@ @TCL_LIB@ -ldl
++ $(CC) -static -o hping3-static $(CCOPT) $(DEBUG) $(OBJ) -L/usr/$(LIBDIR) $(PCAP) @SOLARISLIB@ @TCL_LIB@ -ldl
+
+ byteorder.h:
+ ./configure
diff --git a/net-analyzer/hping/files/hping-3_pre20141226-fno-common.patch b/net-analyzer/hping/files/hping-3_pre20141226-fno-common.patch
new file mode 100644
index 000000000000..e21a6d513c59
--- /dev/null
+++ b/net-analyzer/hping/files/hping-3_pre20141226-fno-common.patch
@@ -0,0 +1,11 @@
+--- a/hping2.h
++++ b/hping2.h
+@@ -357,8 +357,6 @@
+ int status;
+ };
+
+-volatile struct delaytable_element delaytable[TABLESIZE];
+-
+ /* protos */
+ void nop(void); /* nop */
+ int parse_options(int, char**); /* option parser */
diff --git a/net-analyzer/hping/files/hping-3_pre20141226-hping2-2-hping.patch b/net-analyzer/hping/files/hping-3_pre20141226-hping2-2-hping.patch
new file mode 100644
index 000000000000..7ceaac921a0b
--- /dev/null
+++ b/net-analyzer/hping/files/hping-3_pre20141226-hping2-2-hping.patch
@@ -0,0 +1,240 @@
+--- a/docs/hping3.8
++++ b/docs/hping3.8
+@@ -1,8 +1,8 @@
+-.TH HPING2 8 "2001 Aug 14"
++.TH HPING 8 "2001 Aug 14"
+ .SH NAME
+-hping2 \- send (almost) arbitrary TCP/IP packets to network hosts
++hping \- send (almost) arbitrary TCP/IP packets to network hosts
+ .SH SYNOPSIS
+-.B hping2
++.B hping
+ [
+ .B \-hvnqVDzZ012WrfxykQbFSRPAUXYjJBuTG
+ ] [
+@@ -116,11 +116,11 @@
+ .br
+ .ad
+ .SH DESCRIPTION
+-hping2 is a network tool able to send custom TCP/IP packets and to
+-display target replies like ping program does with ICMP replies. hping2
++hping is a network tool able to send custom TCP/IP packets and to
++display target replies like ping program does with ICMP replies. hping
+ handle fragmentation, arbitrary packets body and size and can be used in
+ order to transfer files encapsulated under supported protocols. Using
+-hping2 you are able to perform at least the following stuff:
++hping you are able to perform at least the following stuff:
+
+ - Test firewall rules
+ - Advanced port scanning
+@@ -136,7 +136,7 @@
+ - A lot of others.
+
+ .IR "It's also a good didactic tool to learn TCP/IP" .
+-hping2 is developed and maintained by antirez@invece.org and is
++hping is developed and maintained by antirez@invece.org and is
+ licensed under GPL version 2. Development is open so you can send
+ me patches, suggestion and affronts without inhibitions.
+ .SH HPING SITE
+@@ -158,9 +158,9 @@
+ .I -c --count count
+ Stop after sending (and receiving)
+ .I count
+-response packets. After last packet was send hping2 wait COUNTREACHED_TIMEOUT
++response packets. After last packet was send hping wait COUNTREACHED_TIMEOUT
+ seconds target host replies. You are able to tune COUNTREACHED_TIMEOUT editing
+-hping2.h
++hping.h
+ .TP
+ .I -i --interval
+ Wait
+@@ -171,10 +171,10 @@
+ .I wait
+ to X micro seconds.
+ The default is to wait
+-one second between each packet. Using hping2 to transfer files tune this
++one second between each packet. Using hping to transfer files tune this
+ option is really important in order to increase transfer rate. Even using
+-hping2 to perform idle/spoofing scanning you should tune this option, see
+-.B HPING2-HOWTO
++hping to perform idle/spoofing scanning you should tune this option, see
++.B HPING-HOWTO
+ for more information.
+ .TP
+ .I --fast
+@@ -195,13 +195,13 @@
+ startup time and when finished.
+ .TP
+ .I -I --interface interface name
+-By default on linux and BSD systems hping2 uses default routing interface.
++By default on linux and BSD systems hping uses default routing interface.
+ In other systems or when there is no default route
+-hping2 uses the first non-loopback interface.
+-However you are able to force hping2 to use the interface you need using
++hping uses the first non-loopback interface.
++However you are able to force hping to use the interface you need using
+ this option. Note: you don't need to specify the whole name, for
+ example -I et will match eth0 ethernet0 myet1 et cetera. If no interfaces
+-match hping2 will try to use lo.
++match hping will try to use lo.
+ .TP
+ .I -V --verbose
+ Enable verbose output. TCP replies will be shown as follows:
+@@ -211,7 +211,7 @@
+ .TP
+ .I -D --debug
+ Enable debug mode, it's useful when you experience some problem with
+-hping2. When debug mode is enabled you will get more information about
++hping. When debug mode is enabled you will get more information about
+ .B interface detection, data link layer access, interface settings, options
+ .B parsing, fragmentation, HCMP protocol
+ and other stuff.
+@@ -223,30 +223,30 @@
+ CTRL+Z once or twice.
+ .TP
+ .I -Z --unbind
+-Unbind CTRL+Z so you will able to stop hping2.
++Unbind CTRL+Z so you will able to stop hping.
+ .TP
+ .I --beep
+ Beep for every matching received packet (but not for ICMP errors).
+ .SH PROTOCOL SELECTION
+-Default protocol is TCP, by default hping2 will send tcp headers to target
++Default protocol is TCP, by default hping will send tcp headers to target
+ host's port 0 with a winsize of 64 without any tcp flag on. Often this
+ is the best way to do an 'hide ping', useful when target is behind
+ a firewall that drop ICMP. Moreover a tcp null-flag to port 0 has a good
+ probability of not being logged.
+ .TP
+ .I -0 --rawip
+-RAW IP mode, in this mode hping2 will send IP header with data
++RAW IP mode, in this mode hping will send IP header with data
+ appended with --signature and/or --file, see also --ipproto that
+ allows you to set the ip protocol field.
+ .TP
+ .I -1 --icmp
+-ICMP mode, by default hping2 will send ICMP echo-request, you can set
++ICMP mode, by default hping will send ICMP echo-request, you can set
+ other ICMP type/code using
+ .B --icmptype --icmpcode
+ options.
+ .TP
+ .I -2 --udp
+-UDP mode, by default hping2 will send udp to target host's port 0.
++UDP mode, by default hping will send udp to target host's port 0.
+ UDP header tunable options are the following:
+ .B --baseport, --destport, --keep.
+ .TP
+@@ -288,11 +288,11 @@
+ shows interesting details.
+ .TP
+ .I -9 --listen signature
+-HPING2 listen mode, using this option hping2 waits for packet that contain
++HPING listen mode, using this option hping waits for packet that contain
+ .I signature
+ and dump from
+ .I signature
+-end to packet's end. For example if hping2 --listen TEST reads a packet
++end to packet's end. For example if hping --listen TEST reads a packet
+ that contain
+ .B 234-09sdflkjs45-TESThello_world
+ it will display
+@@ -304,7 +304,7 @@
+ ensures that target will not gain your real address. However replies
+ will be sent to spoofed address, so you will can't see them. In order
+ to see how it's possible to perform spoofed/idle scanning see the
+-.BR HPING2-HOWTO .
++.BR HPING-HOWTO .
+ .TP
+ .I --rand-source
+ This option enables the
+@@ -347,7 +347,7 @@
+ or
+ .B --bind
+ options. If in doubt try
+-.BR "" "`" "hping2 some.host.com -t 1 --traceroute" "'."
++.BR "" "`" "hping some.host.com -t 1 --traceroute" "'."
+ .TP
+ .I -N --id
+ Set ip->id field. Default id is random but if fragmentation is turned on
+@@ -361,11 +361,11 @@
+ .I -W --winid
+ id from Windows* systems before Win2k has different byte ordering, if this
+ option is enable
+-hping2 will properly display id replies from those Windows.
++hping will properly display id replies from those Windows.
+ .TP
+ .I -r --rel
+ Display id increments instead of id. See the
+-.B HPING2-HOWTO
++.B HPING-HOWTO
+ for more information. Increments aren't computed as id[N]-id[N-1] but
+ using packet loss compensation. See relid.c for more information.
+ .TP
+@@ -445,7 +445,7 @@
+ .SH TCP/UDP RELATED OPTIONS
+ .TP
+ .I -s --baseport source port
+-hping2 uses source port in order to guess replies sequence number. It
++hping uses source port in order to guess replies sequence number. It
+ starts with a base source port number, and increase this number for each
+ packet sent. When packet is received sequence number can be computed as
+ .IR "replies.dest.port - base.source.port" .
+@@ -485,7 +485,7 @@
+ by target host. This can be useful when you need to analyze whether
+ TCP sequence number is predictable. Output example:
+
+-.B #hping2 win98 --seqnum -p 139 -S -i u1 -I eth0
++.B #hping win98 --seqnum -p 139 -S -i u1 -I eth0
+ .nf
+ HPING uaz (eth0 192.168.4.41): S set, 40 headers + 0 data bytes
+ 2361294848 +2361294848
+@@ -540,8 +540,8 @@
+ .SH COMMON OPTIONS
+ .TP
+ .I -d --data data size
+-Set packet body size. Warning, using --data 40 hping2 will not generate
+-0 byte packets but protocol_header+40 bytes. hping2 will display
++Set packet body size. Warning, using --data 40 hping will not generate
++0 byte packets but protocol_header+40 bytes. hping will display
+ packet size information as first line output, like this:
+ .B HPING www.yahoo.com (ppp0 204.71.200.67): NO FLAGS are set, 40 headers + 40 data bytes
+ .TP
+@@ -577,9 +577,9 @@
+ A to host B you may use the following:
+ .nf
+ .I [host_a]
+-.B # hping2 host_b --udp -p 53 -d 100 --sign signature --safe --file /etc/passwd
++.B # hping host_b --udp -p 53 -d 100 --sign signature --safe --file /etc/passwd
+ .I [host_b]
+-.B # hping2 host_a --listen signature --safe --icmp
++.B # hping host_a --listen signature --safe --icmp
+ .fi
+ .TP
+ .I -u --end
+@@ -587,13 +587,13 @@
+ .I --file filename
+ option, tell you when EOF has been reached. Moreover prevent that other end
+ accept more packets. Please, for more information see the
+-.BR HPING2-HOWTO .
++.BR HPING-HOWTO .
+ .TP
+ .I -T --traceroute
+-Traceroute mode. Using this option hping2 will increase ttl for each
++Traceroute mode. Using this option hping will increase ttl for each
+ .B ICMP time to live 0 during transit
+ received. Try
+-.BR "hping2 host --traceroute" .
++.BR "hping host --traceroute" .
+ This option implies --bind and --ttl 1. You can override the ttl of 1
+ using the --ttl option. Since 2.0.0 stable it prints RTT information.
+ .TP
+@@ -601,7 +601,7 @@
+ Keep the TTL fixed in traceroute mode, so you can monitor just one hop
+ in the route. For example, to monitor how the 5th hop changes or
+ how its RTT changes you can try
+-.BR "hping2 host --traceroute --ttl 5 --tr-keep-ttl" .
++.BR "hping host --traceroute --ttl 5 --tr-keep-ttl" .
+ .TP
+ .I --tr-stop
+ If this option is specified hping will exit once the first packet
diff --git a/net-analyzer/hping/files/hping-3_pre20141226-indent.patch b/net-analyzer/hping/files/hping-3_pre20141226-indent.patch
new file mode 100644
index 000000000000..1f8952d1b3b7
--- /dev/null
+++ b/net-analyzer/hping/files/hping-3_pre20141226-indent.patch
@@ -0,0 +1,13 @@
+--- a/rtt.c
++++ b/rtt.c
+@@ -45,8 +45,8 @@
+ tablepos = i;
+ break;
+ }
+- if (i != TABLESIZE)
+- *seqp = delaytable[i].seq;
++ if (i != TABLESIZE)
++ *seqp = delaytable[i].seq;
+ }
+
+ if (tablepos != -1)
diff --git a/net-analyzer/hping/files/hping-3_pre20141226-pcap-bpf.patch b/net-analyzer/hping/files/hping-3_pre20141226-pcap-bpf.patch
new file mode 100644
index 000000000000..698e404f79ea
--- /dev/null
+++ b/net-analyzer/hping/files/hping-3_pre20141226-pcap-bpf.patch
@@ -0,0 +1,24 @@
+--- a/libpcap_stuff.c
++++ b/libpcap_stuff.c
+@@ -16,8 +16,8 @@
+ #include <string.h>
+ #include <stdlib.h>
+ #include <sys/ioctl.h>
+-#include <net/bpf.h>
+ #include <pcap.h>
++#include <pcap-bpf.h>
+
+ #include "globals.h"
+
+--- a/script.c
++++ b/script.c
+@@ -23,8 +23,8 @@
+ #include <sched.h>
+
+ #include <sys/ioctl.h>
+-#include <net/bpf.h>
+ #include <pcap.h>
++#include <pcap-bpf.h>
+
+ #include "release.h"
+ #include "hping2.h"
diff --git a/net-analyzer/hping/files/hping-3_pre20141226-scan-overflow.patch b/net-analyzer/hping/files/hping-3_pre20141226-scan-overflow.patch
new file mode 100644
index 000000000000..ae3df1e54434
--- /dev/null
+++ b/net-analyzer/hping/files/hping-3_pre20141226-scan-overflow.patch
@@ -0,0 +1,11 @@
+--- a/scan.c
++++ b/scan.c
+@@ -456,7 +456,7 @@
+ continue;
+ /* time to copy headers in a safe place */
+ p = (unsigned char*) packet+linkhdr_size+iphdrlen;
+- memcpy(&icmp, p, sizeof(subtcp));
++ memcpy(&icmp, p, sizeof(icmp));
+ p += sizeof(icmp);
+ memcpy(&subip, p, sizeof(ip));
+ p += sizeof(ip);
diff --git a/net-analyzer/hping/files/hping-3_pre20141226-unused-but-set.patch b/net-analyzer/hping/files/hping-3_pre20141226-unused-but-set.patch
new file mode 100644
index 000000000000..887b90efad93
--- /dev/null
+++ b/net-analyzer/hping/files/hping-3_pre20141226-unused-but-set.patch
@@ -0,0 +1,45 @@
+--- a/apd.c
++++ b/apd.c
+@@ -893,6 +893,7 @@
+ return -ARS_ERROR;
+ err = ars_push_data(pkt, layer, binary, blen);
+ free(binary);
++ return err;
+ } else if (strcasecmp(f, "uint32") == 0) {
+ int err;
+ __u32 t, nt;
+--- a/ars.c
++++ b/ars.c
+@@ -906,15 +906,17 @@
+ * system isn't FreeBSD or NetBSD. */
+ int ars_bsd_fix(struct ars_packet *pkt, unsigned char *packet, size_t size)
+ {
++#if defined OSTYPE_DARWIN || defined OSTYPE_FREEBSD || defined OSTYPE_NETBSD || defined OSTYPE_BSDI
+ struct ars_iphdr *ip;
++#endif
+
+ if (pkt->p_layer[0].l_type != ARS_TYPE_IP ||
+ size < sizeof(struct ars_iphdr)) {
+ ars_set_error(pkt, "BSD fix requested, but layer 0 not IP");
+ return -ARS_INVALID;
+ }
+- ip = (struct ars_iphdr*) packet;
+ #if defined OSTYPE_DARWIN || defined OSTYPE_FREEBSD || defined OSTYPE_NETBSD || defined OSTYPE_BSDI
++ ip = (struct ars_iphdr*) packet;
+ ip->tot_len = ntohs(ip->tot_len);
+ ip->frag_off = ntohs(ip->frag_off);
+ #endif
+--- a/libpcap_stuff.c
++++ b/libpcap_stuff.c
+@@ -23,9 +23,11 @@
+
+ int open_pcap()
+ {
++#if (!defined OSTYPE_LINUX) && (!defined __sun__)
+ int on;
+
+ on = 1; /* no warning if BIOCIMMEDIATE will not be compiled */
++#endif
+ if (opt_debug)
+ printf("DEBUG: pcap_open_live(%s, 99999, 0, 1, %p)\n",
+ ifname, errbuf);
diff --git a/net-analyzer/hping/hping-3_pre20141226.ebuild b/net-analyzer/hping/hping-3_pre20141226.ebuild
new file mode 100644
index 000000000000..600ed753d0ba
--- /dev/null
+++ b/net-analyzer/hping/hping-3_pre20141226.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit flag-o-matic toolchain-funcs
+
+HPING_COMMIT="3547c7691742c6eaa31f8402e0ccbb81387c1b99"
+DESCRIPTION="A ping-like TCP/IP packet assembler/analyzer"
+HOMEPAGE="http://www.hping.org"
+SRC_URI="https://github.com/antirez/${PN}/archive/${HPING_COMMIT}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${PN}-${HPING_COMMIT}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ppc ~sparc x86"
+IUSE="tcl"
+
+DEPEND="
+ net-libs/libpcap
+ tcl? ( dev-lang/tcl:0= )
+"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3_pre20051105-libtcl.patch
+ "${FILESDIR}"/${PN}-3_pre20051105-tcl.patch
+ "${FILESDIR}"/${PN}-3_pre20051105-tclsh-proper-escaping.patch
+ "${FILESDIR}"/${PN}-3_pre20141226-compile.patch
+ "${FILESDIR}"/${PN}-3_pre20141226-hping2-2-hping.patch
+ "${FILESDIR}"/${PN}-3_pre20141226-indent.patch
+ "${FILESDIR}"/${PN}-3_pre20141226-pcap-bpf.patch
+ "${FILESDIR}"/${PN}-3_pre20141226-scan-overflow.patch
+ "${FILESDIR}"/${PN}-3_pre20141226-unused-but-set.patch
+ "${FILESDIR}"/${PN}-3_pre20141226-fno-common.patch
+)
+
+src_configure() {
+ # bug #861161
+ filter-lto
+
+ tc-export CC
+
+ # Not an autotools type configure:
+ sh configure $(usex tcl '' --no-tcl) || die
+}
+
+src_compile() {
+ emake \
+ DEBUG="" \
+ "CFLAGS=${CFLAGS}" \
+ "AR=$(tc-getAR)" \
+ "RANLIB=$(tc-getRANLIB)" \
+ "LIBDIR=$(get_libdir)"
+}
+
+src_install() {
+ dosbin hping3
+ dosym hping3 /usr/sbin/hping
+ dosym hping3 /usr/sbin/hping2
+
+ newman docs/hping3.8 hping.8
+
+ dodoc AUTHORS BUGS CHANGES INSTALL NEWS README TODO
+}
diff --git a/net-analyzer/hping/metadata.xml b/net-analyzer/hping/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/hping/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/httping/Manifest b/net-analyzer/httping/Manifest
new file mode 100644
index 000000000000..e0beef948394
--- /dev/null
+++ b/net-analyzer/httping/Manifest
@@ -0,0 +1 @@
+DIST httping-2.9.tar.gz 83674 BLAKE2B aa1e2b74756ebf62896ad2a4b89e68eff61f73f98ff881bba2fe4e14d2ed2a63af84a2780122ad845d1057ece3f37d567b7bf5d5b62a4b8487c58f1442a90fdf SHA512 74d4a98590b6862a2f15fffdf3bc58e3226a94c7aebbe60135695397b20e6cb71fe8c2af75b8525724f2f9ce6530d1f8eecd3193bc50f31d254bbb9903615019
diff --git a/net-analyzer/httping/files/httping-2.2.1-flags.patch b/net-analyzer/httping/files/httping-2.2.1-flags.patch
new file mode 100644
index 000000000000..194eb473577c
--- /dev/null
+++ b/net-analyzer/httping/files/httping-2.2.1-flags.patch
@@ -0,0 +1,12 @@
+--- a/Makefile
++++ b/Makefile
+@@ -84,8 +84,7 @@
+ endif
+
+ ifeq ($(DEBUG),yes)
+-CFLAGS+=-D_DEBUG -ggdb
+-LDFLAGS+=-g
++CFLAGS+=-D_DEBUG
+ endif
+
+ ifeq ($(ARM),yes)
diff --git a/net-analyzer/httping/files/httping-2.9-c99.patch b/net-analyzer/httping/files/httping-2.9-c99.patch
new file mode 100644
index 000000000000..48e07219d4e8
--- /dev/null
+++ b/net-analyzer/httping/files/httping-2.9-c99.patch
@@ -0,0 +1,35 @@
+https://github.com/folkertvanheusden/HTTPing/pull/12
+
+From 684a6e255ea2f5b11a0548e5d99c2678be7563d9 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Sat, 16 Dec 2023 10:48:17 +0000
+Subject: [PATCH] http.c: add <stdlib.h> for malloc
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+GCC 14 makes implicit function declarations an error by default:
+```
+http.c: In function ‘get_HTTP_headers’:
+http.c:21:32: error: implicit declaration of function ‘malloc’ [-Wimplicit-function-declaration]
+ 21 | char *buffer = (char *)malloc(len + 1);
+ | ^~~~~~
+http.c:16:1: note: include ‘<stdlib.h>’ or provide a declaration of ‘malloc’
+ 15 | #include "utils.h"
+ +++ |+#include <stdlib.h>
+ 16 |
+[...]
+```
+
+Bug: https://bugs.gentoo.org/920107
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/http.c
++++ b/http.c
+@@ -2,6 +2,7 @@
+
+ #include <assert.h>
+ #include <stdio.h>
++#include <stdlib.h>
+ #include <string.h>
+ #include <unistd.h>
+ #ifndef NO_SSL
diff --git a/net-analyzer/httping/httping-2.9-r1.ebuild b/net-analyzer/httping/httping-2.9-r1.ebuild
new file mode 100644
index 000000000000..a9db3b0d13f7
--- /dev/null
+++ b/net-analyzer/httping/httping-2.9-r1.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs flag-o-matic
+
+DESCRIPTION="http protocol ping-like program"
+HOMEPAGE="https://www.vanheusden.com/httping/"
+SRC_URI="https://github.com/folkertvanheusden/HTTPing/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}"/HTTPing-${PV}
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 ~arm64 ~hppa ~mips ~ppc ppc64 ~riscv ~sparc x86"
+IUSE="debug fftw l10n_nl ncurses ssl +tfo"
+
+RDEPEND="
+ fftw? ( sci-libs/fftw:3.0 )
+ ncurses? ( sys-libs/ncurses:= )
+ ssl? ( dev-libs/openssl:= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="ncurses? ( virtual/pkgconfig )"
+
+# This would bring in test? ( dev-util/cppcheck ) but unlike
+# upstream we should only care about compile/run time testing
+RESTRICT="test"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.2.1-flags.patch
+ "${FILESDIR}"/${PN}-2.9-c99.patch
+)
+
+src_prepare() {
+ default
+
+ # Don't clobber toolchain defaults
+ sed -i -e 's:-D_FORTIFY_SOURCE=2::' Makefile || die
+
+ # doman does not get PN-LANG.CAT so we move things around and then point at
+ # it later
+ if use l10n_nl; then
+ mkdir nl || die
+ mv httping-nl.1 nl/httping.1 || die
+ fi
+
+}
+
+src_configure() {
+ # not an autotools script
+ echo > makefile.inc || die
+
+ if use ncurses ; then
+ local ncurses_flags="$($(tc-getPKG_CONFIG) --libs ncurses)"
+
+ # Don't require ncurses with unicode support
+ # bug #731950
+ sed -i -e "s/-lncursesw/${ncurses_flags}/" Makefile || die
+ append-libs "${ncurses_flags}"
+ fi
+}
+
+src_compile() {
+ emake \
+ CC="$(tc-getCC)" \
+ FW=$(usex fftw) \
+ DEBUG=$(usex debug) \
+ NC=$(usex ncurses) \
+ SSL=$(usex ssl) \
+ TFO=$(usex tfo)
+}
+
+src_install() {
+ dobin httping
+ doman httping.1
+
+ use l10n_nl && doman -i18n=nl nl/httping.1
+}
diff --git a/net-analyzer/httping/metadata.xml b/net-analyzer/httping/metadata.xml
new file mode 100644
index 000000000000..36290f4b90fb
--- /dev/null
+++ b/net-analyzer/httping/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <use>
+ <flag name="tfo">Enable support for TCP Fast Open</flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/hydra/Manifest b/net-analyzer/hydra/Manifest
new file mode 100644
index 000000000000..1d89838a306e
--- /dev/null
+++ b/net-analyzer/hydra/Manifest
@@ -0,0 +1 @@
+DIST hydra-9.6.tar.gz 837339 BLAKE2B c55401fe5c7a18789c131739951b2bb43442beb13e2f5ff9f0d83bd3d6a70272a7f97b444c290ec0a9ecc6959793b1aa70faabc1f6b28496ada19469230b0f89 SHA512 588f33b818dd475f19ab538644d54a3a08fa16fd2c119b8baf25ff9de8f15140d24438d2105e3cc1096fe5a6d12c51879992664409e97102c83ba1422b8b5e05
diff --git a/net-analyzer/hydra/files/hydra-9.5-no-clobber-fortify-source.patch b/net-analyzer/hydra/files/hydra-9.5-no-clobber-fortify-source.patch
new file mode 100644
index 000000000000..281e5b63c9ff
--- /dev/null
+++ b/net-analyzer/hydra/files/hydra-9.5-no-clobber-fortify-source.patch
@@ -0,0 +1,14 @@
+Don't clobber toolchain defaults.
+
+https://bugs.gentoo.org/895530
+--- a/configure
++++ b/configure
+@@ -1381,7 +1381,7 @@ fi
+ echo "Checking for secure compile option support in $CC ..."
+ GCCSEC="no"
+ LDSEC="no"
+-GCCSECOPT="-fstack-protector-all --param ssp-buffer-size=4 -D_FORTIFY_SOURCE=2"
++GCCSECOPT="-fstack-protector-all --param ssp-buffer-size=4"
+ echo '#include <stdio.h>' > $TMPC.c
+ echo 'int main() { printf(""); return 0; }' >> $TMPC.c
+ $CC -pie -fPIE $GCCSEPOPT -o $TMPC $TMPC.c > /dev/null 2> $TMPC.c.err
diff --git a/net-analyzer/hydra/files/hydra-9.6-c23.patch b/net-analyzer/hydra/files/hydra-9.6-c23.patch
new file mode 100644
index 000000000000..b770510ceebf
--- /dev/null
+++ b/net-analyzer/hydra/files/hydra-9.6-c23.patch
@@ -0,0 +1,42 @@
+From edf95af0ffcb3169d7c015d22f7a3036a645bb58 Mon Sep 17 00:00:00 2001
+From: Alfred Wingate <parona@protonmail.com>
+Date: Sat, 15 Nov 2025 13:20:06 +0200
+Subject: [PATCH] Avoid warnings over incompatible pointer types
+
+g_timeout_add expects a function prototype with gpointer for data. It
+isn't used here so its just NULL for all.
+
+Signed-off-by: Alfred Wingate <parona@protonmail.com>
+--- a/hydra-gtk/src/callbacks.c
++++ b/hydra-gtk/src/callbacks.c
+@@ -385,7 +385,7 @@ int hydra_get_options(char *options[]) {
+ return i;
+ }
+
+-int update_statusbar() {
++int update_statusbar(gpointer user_data) {
+ int i, j;
+ char *options[128];
+ guint context_id;
+@@ -544,7 +544,7 @@ int *popen_re_unbuffered(char *command) {
+
+ hydra_pid = 0;
+
+- update_statusbar();
++ update_statusbar(NULL);
+
+ /* only allocate once */
+ if (NULL == pfd)
+--- a/hydra-gtk/src/callbacks.h
++++ b/hydra-gtk/src/callbacks.h
+@@ -1,6 +1,6 @@
+ #include <gtk/gtk.h>
+
+-int update_statusbar();
++int update_statusbar(gpointer user_data);
+
+ void on_quit1_activate(GtkMenuItem *menuitem, gpointer user_data);
+
+--
+2.51.2
+
diff --git a/net-analyzer/hydra/hydra-9.6.ebuild b/net-analyzer/hydra/hydra-9.6.ebuild
new file mode 100644
index 000000000000..a97a8a90f38c
--- /dev/null
+++ b/net-analyzer/hydra/hydra-9.6.ebuild
@@ -0,0 +1,132 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit edo toolchain-funcs
+
+DESCRIPTION="Parallelized network login hacker"
+HOMEPAGE="https://github.com/vanhauser-thc/thc-hydra"
+SRC_URI="https://github.com/vanhauser-thc/thc-hydra/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}"/thc-${P}
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86"
+IUSE="debug gcrypt gtk idn memcached mongodb mysql ncurses oracle pcre postgres rdp libssh samba subversion zlib"
+
+RDEPEND="
+ dev-libs/openssl:=
+ gtk? (
+ >=app-accessibility/at-spi2-core-2.46.0
+ dev-libs/glib:2
+ x11-libs/gdk-pixbuf:2
+ x11-libs/gtk+:2
+ )
+ gcrypt? ( dev-libs/libgcrypt )
+ idn? ( net-dns/libidn:= )
+ memcached? (
+ || (
+ dev-libs/libmemcached-awesome[sasl]
+ dev-libs/libmemcached[sasl]
+ )
+ )
+ mongodb? ( dev-libs/mongo-c-driver )
+ mysql? ( dev-db/mysql-connector-c:= )
+ ncurses? ( sys-libs/ncurses:= )
+ oracle? ( dev-db/oracle-instantclient[sdk] )
+ pcre? ( dev-libs/libpcre2 )
+ postgres? ( dev-db/postgresql:* )
+ rdp? ( net-misc/freerdp:3= )
+ libssh? ( >=net-libs/libssh-0.4.0 )
+ samba? ( net-fs/samba )
+ subversion? ( dev-vcs/subversion )
+ zlib? ( virtual/zlib:= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-9.5-no-clobber-fortify-source.patch
+ "${FILESDIR}"/${PN}-9.6-c23.patch
+)
+
+src_prepare() {
+ default
+
+ # None of the settings in Makefile.unix are useful to us
+ mv Makefile.unix{,.gentoo_unused} || die
+ touch Makefile.unix || die
+
+ sed -i \
+ -e 's:|| echo.*$::' \
+ -e '/\t-$(CC)/s:-::' \
+ -e '/^OPTS/{s|=|+=|;s| -O3||}' \
+ -e '/ -o /s:$(OPTS):& $(LDFLAGS):g' \
+ Makefile.am || die
+
+ # Needed to get GTK+ 3 change in configure.in (.in got updated, but
+ # configure not regen'd.)
+ #cd hydra-gtk || die
+ #sed -i -e 's:AC_INIT(configure.in):AC_INIT(configure.ac):' configure.in || die
+ #eautoreconf
+}
+
+src_configure() {
+ # Note: the top level configure script is not autoconf-based
+ tc-export CC PKG_CONFIG
+
+ export OPTS="${CFLAGS}"
+
+ hydra_sed() {
+ if use ${1}; then
+ einfo "Enabling ${1}"
+ if [[ -n "${3}" ]]; then
+ sed -i 's#'"${2}"'#'"${3}"'#' configure || die
+ fi
+ else
+ einfo "Disabling ${1}"
+ sed -i 's#'"${2}"'##; s#'"${4}"'##' configure || die
+ fi
+ }
+
+ hydra_sed gcrypt '-lgcrypt' '$( ${CTARGET:-${CHOST}}-libgcrypt-config --libs )' '-DHAVE_GCRYPT'
+ hydra_sed idn '-lidn' '$( "${PKG_CONFIG}" --libs libidn )' '-DLIBIDN -DHAVE_PR29_H'
+ hydra_sed libssh '-lssh' '$( "${PKG_CONFIG}" --libs libssh )' '-DLIBSSH'
+ hydra_sed memcached '-lmemcached' '$( "${PKG_CONFIG}" --libs libmemcached )' '-DLIBMCACHED'
+ hydra_sed mongodb '-lmongoc-1.0' '$( "${PKG_CONFIG}" --libs libmongoc-1.0 )' '-DLIBMONGODB\|-DLIBBSON'
+ hydra_sed mysql '-lmysqlclient' '$( ${CTARGET:-${CHOST}}-mysql_config --libs )' '-DLIBMYSQLCLIENT'
+ hydra_sed ncurses '-lcurses' '$( "${PKG_CONFIG}" --libs ncurses )' '-DLIBNCURSES'
+ hydra_sed pcre '-lpcre2-8' '$( "${PKG_CONFIG}" --libs libpcre2-8 )' '-DHAVE_PCRE'
+ hydra_sed postgres '-lpq' '$( "${PKG_CONFIG}" --libs libpq )' '-DLIBPOSTGRES'
+ hydra_sed oracle '-locci -lclntsh' '' '-DLIBORACLE'
+ hydra_sed rdp '-lfreerdp3' '$( "${PKG_CONFIG}" --libs freerdp3 )' '-DLIBFREERDP'
+ # TODO: https://bugs.gentoo.org/686148
+ #hydra_sed subversion '-lsvn_client-1 -lapr-1 -laprutil-1 -lsvn_subr-1' '$( "${PKG_CONFIG}" --libs libsvn_client )' '-DLIBSVN'
+ hydra_sed samba '-lsmbclient' '$( "${PKG_CONFIG}" --libs smbclient )' '-DLIBSMBCLIENT'
+ hydra_sed subversion '-lsvn_client-1 -lapr-1 -laprutil-1 -lsvn_subr-1' '' '-DLIBSVN'
+ hydra_sed zlib '-lz' '$( "${PKG_CONFIG}" --libs zlib )' '-DHAVE_ZLIB'
+
+ edo ./configure \
+ $(usev !gtk '--disable-xhydra') \
+ $(usev debug '--debug') \
+ --nostrip \
+ --prefix=/usr \
+ || die
+
+ if use gtk ; then
+ pushd hydra-gtk || die
+ econf
+ fi
+}
+
+src_compile() {
+ emake XLIBPATHS=''
+ use gtk && emake -C hydra-gtk
+}
+
+src_install() {
+ dobin hydra pw-inspector
+ use gtk && dobin hydra-gtk/src/xhydra
+ dodoc CHANGES README
+}
diff --git a/net-analyzer/hydra/metadata.xml b/net-analyzer/hydra/metadata.xml
new file mode 100644
index 000000000000..a7184c1d2f96
--- /dev/null
+++ b/net-analyzer/hydra/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ </maintainer>
+ <use>
+ <flag name="gcrypt">Enable radmin2 support through <pkg>dev-libs/libgcrypt</pkg>
+ </flag>
+ <flag name="libssh">Enable SSH support through <pkg>net-libs/libssh</pkg>
+ </flag>
+ <flag name="mongodb">MongoDB support through <pkg>dev-libs/mongo-c-driver</pkg>
+ </flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/ibmonitor/Manifest b/net-analyzer/ibmonitor/Manifest
new file mode 100644
index 000000000000..729a84a56ec4
--- /dev/null
+++ b/net-analyzer/ibmonitor/Manifest
@@ -0,0 +1 @@
+DIST ibmonitor-1.4.tar.gz 17025 BLAKE2B 33dcd54d3750b5e0dc70caaaf30f58f1dc2215cb2ba24174fafbfa356f27ae98133407505038df19104e9f8e1971ed4f8bf9ffeff37196d4640e90a4054970c6 SHA512 ef74dee22dbb88d07c37af9aaa0a0a49b6c49ff1b45a1637d06acbe32e4bc4e84d79cfe06ee7ba2b04d62fa3cfa0a10605eccde549d2fe04890dfa179adf20db
diff --git a/net-analyzer/ibmonitor/ibmonitor-1.4-r1.ebuild b/net-analyzer/ibmonitor/ibmonitor-1.4-r1.ebuild
new file mode 100644
index 000000000000..8c4bdc7bbd79
--- /dev/null
+++ b/net-analyzer/ibmonitor/ibmonitor-1.4-r1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Interactive bandwidth monitor"
+HOMEPAGE="https://ibmonitor.sourceforge.net"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz"
+S="${WORKDIR}/${PN}"
+
+KEYWORDS="~amd64 ~hppa ~ppc ~riscv x86"
+LICENSE="GPL-2+"
+SLOT="0"
+
+RDEPEND="dev-perl/TermReadKey"
+
+src_install() {
+ dobin ibmonitor
+ dodoc AUTHORS ChangeLog README TODO
+}
diff --git a/net-analyzer/ibmonitor/metadata.xml b/net-analyzer/ibmonitor/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/ibmonitor/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/icinga2/Manifest b/net-analyzer/icinga2/Manifest
new file mode 100644
index 000000000000..bbfea1d0fd24
--- /dev/null
+++ b/net-analyzer/icinga2/Manifest
@@ -0,0 +1,2 @@
+DIST icinga2-2.15.0.tar.gz 9446841 BLAKE2B fb3e55633229c739407976ef3462470b4d6e3f6927df1d70db1188aec32831c01810fadf67d759db646be5dc7336f0ecc273f59bf96002ecc1e2c93bc8be67ea SHA512 247372464f48e87175ca86862f69c82ed204f133b7f012ec78ff63eefc105e1614b5434b9dd3f654479132a0b387e12c7b92efbfb22383ba83304dcc25beb281
+DIST icinga2-2.16.0.tar.gz 9585508 BLAKE2B 296d357830d76c06915b8439d2232611617b2c7bad2794a2ad3603e10a96afaef5681f86f2709c15877b8c17aaedcce0032762c5f0f1903042d11e1b981d9379 SHA512 1bf9060d3589fb70238290d624180f324398375d69caf38d21060857650033b1450ee7c82c6089fbc756a94461f3bfe465c3190558e327d4427a0fc1e1da3199
diff --git a/net-analyzer/icinga2/files/icinga2-boost-1.89.patch b/net-analyzer/icinga2/files/icinga2-boost-1.89.patch
new file mode 100644
index 000000000000..98d51bdf0f22
--- /dev/null
+++ b/net-analyzer/icinga2/files/icinga2-boost-1.89.patch
@@ -0,0 +1,23 @@
+From 76fa0d9e8054f405dc3d1e39a4b48f21e86afdf0 Mon Sep 17 00:00:00 2001
+From: "Alexander A. Klimov" <alexander.klimov@icinga.com>
+Date: Thu, 14 Aug 2025 11:05:37 +0200
+Subject: [PATCH] Boost: don't require "system" component
+
+It's vanished in v1.89.
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 86abc77d661..1a087b8ed2f 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -172,7 +172,7 @@ else()
+ set(LOGROTATE_CREATE "\n\tcreate 644 ${ICINGA2_USER} ${ICINGA2_GROUP}")
+ endif()
+
+-find_package(Boost ${BOOST_MIN_VERSION} COMPONENTS coroutine context date_time filesystem iostreams thread system program_options regex REQUIRED)
++find_package(Boost ${BOOST_MIN_VERSION} COMPONENTS coroutine context date_time filesystem iostreams thread program_options regex REQUIRED)
+
+ # Boost.Coroutine2 (the successor of Boost.Coroutine)
+ # (1) doesn't even exist in old Boost versions and
diff --git a/net-analyzer/icinga2/files/icinga2.initd-3 b/net-analyzer/icinga2/files/icinga2.initd-3
new file mode 100644
index 000000000000..5af259d5ddf8
--- /dev/null
+++ b/net-analyzer/icinga2/files/icinga2.initd-3
@@ -0,0 +1,81 @@
+#!/sbin/openrc-run
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+extra_started_commands="reload"
+
+# Set defaults, see /etc/conf.d/icinga2 to override
+: ${DAEMON:=/usr/sbin/icinga2}
+: ${ICINGA2_CONFIG_FILE:=/etc/icinga2/icinga2.conf}
+: ${ICINGA2_RUN_DIR:=/run/icinga2}
+: ${ICINGA2_STATE_DIR:=/var/cache/icinga2}
+: ${ICINGA2_PID_FILE:=${ICINGA2_RUN_DIR}/icinga2.pid}
+: ${ICINGA2_CMD_DIR:=${ICINGA2_RUN_DIR}/cmd}
+: ${ICINGA2_LOG_DIR:=/var/log/icinga2}
+: ${ICINGA2_ERROR_LOG:=/var/log/icinga2/error.log}
+: ${ICINGA2_STARTUP_LOG:=/var/log/icinga2/startup.log}
+: ${ICINGA2_LOG:=/var/log/icinga2/icinga2.log}
+: ${ICINGA2_CACHE_DIR:=/var/cache/icinga2}
+: ${ICINGA2_USER:=icinga}
+: ${ICINGA2_GROUP:=icingacmd}
+: ${ICINGA2_COMMAND_GROUP:=icingacmd}
+
+ICINGA2_DAEMON_ARGS="daemon -c $ICINGA2_CONFIG_FILE -e $ICINGA2_ERROR_LOG -d"
+
+depend() {
+ need net
+}
+
+checkconfig() {
+ if [ ! -e "$ICINGA2_CONFIG_FILE" ]; then
+ ewarn "Config file '$ICINGA2_CONFIG_FILE' does not exist."
+ eend 1
+ fi
+
+ checkpath -d -m 0750 -o $ICINGA2_USER:$ICINGA2_GROUP $ICINGA2_RUN_DIR
+ checkpath -d -m 0750 -o $ICINGA2_USER:$ICINGA2_GROUP $ICINGA2_STATE_DIR
+ checkpath -d -m 2750 -o $ICINGA2_USER:$ICINGA2_GROUP $ICINGA2_CMD_DIR
+ checkpath -d -m 0750 -o $ICINGA2_USER:$ICINGA2_GROUP $ICINGA2_CACHE_DIR
+
+ if ! $DAEMON daemon -c $ICINGA2_CONFIG_FILE -C > $ICINGA2_STARTUP_LOG 2>&1; then
+ eerror "Icinga2 detected configuration errors. Check '$ICINGA2_STARTUP_LOG' for details."
+ return 1
+ fi
+}
+
+start() {
+ checkconfig || return 1
+
+ ebegin "Starting icinga2"
+ start-stop-daemon --start --exec "${DAEMON}" \
+ --pidfile "${ICINGA2_PID_FILE}" \
+ -- $ICINGA2_DAEMON_ARGS > $ICINGA2_STARTUP_LOG 2>&1
+ local retval=$?
+ if [ $retval -ne 0 ]; then
+ ewarn "Error starting icinga2. '$ICINGA2_STARTUP_LOG' for details."
+ fi
+ eend $retval
+}
+
+stop() {
+ ebegin "Stopping icinga2"
+ start-stop-daemon \
+ --stop \
+ --pidfile $ICINGA2_PID_FILE \
+ --retry "SIGTERM/15 SIGKILL/30" \
+ --progress
+ eend $?
+}
+
+reload() {
+ checkconfig || return 1
+
+ ebegin "Reloading icinga2"
+ start-stop-daemon --signal HUP --pidfile "$ICINGA2_PID_FILE"
+
+ local retval=$?
+ if [ $retval -ne 0 ]; then
+ ewarn "Error reloading icinga2."
+ fi
+ eend $retval
+}
diff --git a/net-analyzer/icinga2/icinga2-2.15.0-r2.ebuild b/net-analyzer/icinga2/icinga2-2.15.0-r2.ebuild
new file mode 100644
index 000000000000..6ae680ff855a
--- /dev/null
+++ b/net-analyzer/icinga2/icinga2-2.15.0-r2.ebuild
@@ -0,0 +1,159 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake eapi9-ver
+
+# https://bugs.gentoo.org/960527#c9
+CMAKE_QA_COMPAT_SKIP=1
+
+if [[ ${PV} != 9999 ]]; then
+ SRC_URI="https://github.com/Icinga/icinga2/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="amd64 ~arm64 x86"
+else
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/Icinga/icinga2.git"
+fi
+
+DESCRIPTION="Distributed, general purpose, network monitoring engine"
+HOMEPAGE="https://icinga.com/"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="console jumbo-build mail mariadb minimal +mysql +plugins postgres test systemd"
+RESTRICT="!test? ( test )"
+
+# Add accounts to DEPEND because of fowners in src_install
+DEPEND="
+ dev-libs/openssl:=
+ dev-libs/boost:=[context]
+ console? ( dev-libs/libedit )
+ mariadb? ( dev-db/mariadb-connector-c:= )
+ mysql? ( dev-db/mysql-connector-c:= )
+ postgres? ( dev-db/postgresql:= )
+ dev-libs/yajl:=
+ acct-user/icinga
+ acct-group/icinga
+ acct-group/icingacmd
+"
+BDEPEND="
+ app-alternatives/yacc
+ app-alternatives/lex
+"
+RDEPEND="
+ ${DEPEND}
+ acct-group/nagios
+ plugins? ( || (
+ net-analyzer/monitoring-plugins
+ net-analyzer/nagios-plugins
+ ) )
+ mail? ( virtual/mailx )
+"
+
+REQUIRED_USE="!minimal? ( || ( mariadb mysql postgres ) )"
+
+PATCHES=(
+ "${FILESDIR}/icinga2-boost-1.89.patch"
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DICINGA2_UNITY_BUILD=$(usex jumbo-build)
+ -DCMAKE_INSTALL_SYSCONFDIR=/etc
+ -DCMAKE_INSTALL_LOCALSTATEDIR=/var
+ -DICINGA2_SYSCONFIGFILE=/etc/conf.d/icinga2
+ -DICINGA2_PLUGINDIR="/usr/$(get_libdir)/nagios/plugins"
+ -DICINGA2_USER=icinga
+ -DICINGA2_GROUP=icingacmd
+ -DICINGA2_COMMAND_GROUP=icingacmd
+ -DICINGA2_RUNDIR=/run
+ -DINSTALL_SYSTEMD_SERVICE_AND_INITSCRIPT=ON
+ -DUSE_SYSTEMD=$(usex systemd)
+ -DICINGA2_WITH_TESTS=$(usex test)
+ -DLOGROTATE_HAS_SU=ON
+ # only appends -flto
+ -DICINGA2_LTO_BUILD=OFF
+ )
+
+ # default to off if minimal, allow the flags to be set otherwise
+ if use minimal; then
+ mycmakeargs+=(
+ -DICINGA2_WITH_MYSQL=OFF
+ -DICINGA2_WITH_PGSQL=OFF
+ )
+ else
+ mycmakeargs+=(
+ -DICINGA2_WITH_PGSQL=$(usex postgres)
+ -DICINGA2_WITH_MYSQL=$(usex mysql yes $(usex mariadb))
+ )
+ fi
+
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ newinitd "${FILESDIR}"/icinga2.initd-3 icinga2
+
+ if use mysql || use mariadb; then
+ docinto schema
+ newdoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_mysql/schema/mysql.sql mysql.sql
+ docinto schema/upgrade
+ dodoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_mysql/schema/upgrade/*
+ fi
+ if use postgres; then
+ docinto schema
+ newdoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_pgsql/schema/pgsql.sql pgsql.sql
+ docinto schema/upgrade
+ dodoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_pgsql/schema/upgrade/*
+ fi
+
+ # See messiness in bug #638686
+ keepdir /etc/icinga2
+ keepdir /var/lib/icinga2/api/log
+ keepdir /var/lib/icinga2/api/repository
+ keepdir /var/lib/icinga2/api/zones
+ keepdir /var/lib/icinga2/api/zones-stage
+ keepdir /var/lib/icinga2/certificate-requests
+ keepdir /var/lib/icinga2/certs
+ keepdir /var/log/icinga2
+ keepdir /var/log/icinga2/compat
+ keepdir /var/log/icinga2/compat/archives
+ keepdir /var/log/icinga2/crash
+ keepdir /var/spool/icinga2/perfdata
+ keepdir /var/spool/icinga2/tmp
+
+ rm -r "${D}/run" || die "failed to remove /run"
+ rm -r "${D}/var/cache" || die "failed to remove /var/cache"
+
+ fowners -R icinga:icinga /etc/icinga2
+ fperms 0750 /etc/icinga2
+ fowners icinga:icinga /var/lib/icinga2
+ fowners -R icinga:icingacmd /var/lib/icinga2/api
+ fowners -R icinga:icingacmd /var/lib/icinga2/certificate-requests
+ fowners -R icinga:icingacmd /var/lib/icinga2/certs
+ fowners icinga:icinga /var/spool/icinga2
+ fowners icinga:icinga /var/spool/icinga2/perfdata
+ fowners icinga:icingacmd /var/log/icinga2
+
+ fperms ug+rwX,o-rwx /etc/icinga2
+ fperms ug+rwX,o-rwx /var/lib/icinga2
+ fperms ug+rwX,o-rwx /var/spool/icinga2
+ fperms ug+rwX,o-rwx /var/log/icinga2
+
+ insinto /usr/share/vim/vimfiles
+ doins -r "${WORKDIR}"/${P}/tools/syntax/vim/ftdetect
+ doins -r "${WORKDIR}"/${P}/tools/syntax/vim/syntax
+
+ insinto /usr/share/nano
+ doins "${WORKDIR}"/${P}/tools/syntax/nano/icinga2.nanorc
+}
+
+pkg_postinst() {
+ if [[ "${PV}" != 9999 ]] && ver_replacing -lt "${PV}"; then
+ elog "DB IDO schema upgrade may be required."
+ elog "https://www.icinga.com/docs/icinga2/latest/doc/16-upgrading-icinga-2/"
+ fi
+}
diff --git a/net-analyzer/icinga2/icinga2-2.16.0.ebuild b/net-analyzer/icinga2/icinga2-2.16.0.ebuild
new file mode 100644
index 000000000000..bc8191bb60be
--- /dev/null
+++ b/net-analyzer/icinga2/icinga2-2.16.0.ebuild
@@ -0,0 +1,156 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake eapi9-ver
+
+# https://bugs.gentoo.org/960527#c9
+CMAKE_QA_COMPAT_SKIP=1
+
+if [[ ${PV} != 9999 ]]; then
+ SRC_URI="https://github.com/Icinga/icinga2/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm64 ~x86"
+else
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/Icinga/icinga2.git"
+fi
+
+DESCRIPTION="Distributed, general purpose, network monitoring engine"
+HOMEPAGE="https://icinga.com/"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="console jumbo-build mail mariadb minimal +mysql opentelemetry +plugins postgres systemd test"
+RESTRICT="!test? ( test )"
+
+# Add accounts to DEPEND because of fowners in src_install
+DEPEND="
+ dev-libs/openssl:=
+ dev-libs/boost:=[context]
+ console? ( dev-libs/libedit )
+ mariadb? ( dev-db/mariadb-connector-c:= )
+ mysql? ( dev-db/mysql-connector-c:= )
+ postgres? ( dev-db/postgresql:= )
+ dev-libs/yajl:=
+ acct-user/icinga
+ acct-group/icinga
+ acct-group/icingacmd
+"
+BDEPEND="
+ app-alternatives/yacc
+ app-alternatives/lex
+"
+RDEPEND="
+ ${DEPEND}
+ acct-group/nagios
+ plugins? ( || (
+ net-analyzer/monitoring-plugins
+ net-analyzer/nagios-plugins
+ ) )
+ mail? ( virtual/mailx )
+"
+
+REQUIRED_USE="!minimal? ( || ( mariadb mysql postgres ) )"
+
+src_configure() {
+ local mycmakeargs=(
+ -DICINGA2_UNITY_BUILD=$(usex jumbo-build)
+ -DCMAKE_INSTALL_SYSCONFDIR=/etc
+ -DCMAKE_INSTALL_LOCALSTATEDIR=/var
+ -DICINGA2_SYSCONFIGFILE=/etc/conf.d/icinga2
+ -DICINGA2_PLUGINDIR="/usr/$(get_libdir)/nagios/plugins"
+ -DICINGA2_USER=icinga
+ -DICINGA2_GROUP=icingacmd
+ -DICINGA2_COMMAND_GROUP=icingacmd
+ -DICINGA2_RUNDIR=/run
+ -DICINGA2_WITH_OPENTELEMETRY=$(usex opentelemetry)
+ -DINSTALL_SYSTEMD_SERVICE_AND_INITSCRIPT=ON
+ -DUSE_SYSTEMD=$(usex systemd)
+ -DBUILD_TESTING=$(usex test)
+ -DLOGROTATE_HAS_SU=ON
+ # only appends -flto
+ -DICINGA2_LTO_BUILD=OFF
+ )
+
+ # default to off if minimal, allow the flags to be set otherwise
+ if use minimal; then
+ mycmakeargs+=(
+ -DICINGA2_WITH_MYSQL=OFF
+ -DICINGA2_WITH_PGSQL=OFF
+ )
+ else
+ mycmakeargs+=(
+ -DICINGA2_WITH_PGSQL=$(usex postgres)
+ -DICINGA2_WITH_MYSQL=$(usex mysql yes $(usex mariadb))
+ )
+ fi
+
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ newinitd "${FILESDIR}"/icinga2.initd-3 icinga2
+
+ if use mysql || use mariadb; then
+ docinto schema
+ newdoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_mysql/schema/mysql.sql mysql.sql
+ docinto schema/upgrade
+ dodoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_mysql/schema/upgrade/*
+ fi
+ if use postgres; then
+ docinto schema
+ newdoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_pgsql/schema/pgsql.sql pgsql.sql
+ docinto schema/upgrade
+ dodoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_pgsql/schema/upgrade/*
+ fi
+
+ # See messiness in bug #638686
+ keepdir /etc/icinga2
+ keepdir /var/lib/icinga2/api/log
+ keepdir /var/lib/icinga2/api/repository
+ keepdir /var/lib/icinga2/api/zones
+ keepdir /var/lib/icinga2/api/zones-stage
+ keepdir /var/lib/icinga2/certificate-requests
+ keepdir /var/lib/icinga2/certs
+ keepdir /var/log/icinga2
+ keepdir /var/log/icinga2/compat
+ keepdir /var/log/icinga2/compat/archives
+ keepdir /var/log/icinga2/crash
+ keepdir /var/spool/icinga2/perfdata
+ keepdir /var/spool/icinga2/tmp
+
+ rm -r "${D}/run" || die "failed to remove /run"
+ rm -r "${D}/var/cache" || die "failed to remove /var/cache"
+
+ fowners -R icinga:icinga /etc/icinga2
+ fperms 0750 /etc/icinga2
+ fowners icinga:icinga /var/lib/icinga2
+ fowners -R icinga:icingacmd /var/lib/icinga2/api
+ fowners -R icinga:icingacmd /var/lib/icinga2/certificate-requests
+ fowners -R icinga:icingacmd /var/lib/icinga2/certs
+ fowners icinga:icinga /var/spool/icinga2
+ fowners icinga:icinga /var/spool/icinga2/perfdata
+ fowners icinga:icingacmd /var/log/icinga2
+
+ fperms ug+rwX,o-rwx /etc/icinga2
+ fperms ug+rwX,o-rwx /var/lib/icinga2
+ fperms ug+rwX,o-rwx /var/spool/icinga2
+ fperms ug+rwX,o-rwx /var/log/icinga2
+
+ insinto /usr/share/vim/vimfiles
+ doins -r "${WORKDIR}"/${P}/tools/syntax/vim/ftdetect
+ doins -r "${WORKDIR}"/${P}/tools/syntax/vim/syntax
+
+ insinto /usr/share/nano
+ doins "${WORKDIR}"/${P}/tools/syntax/nano/icinga2.nanorc
+}
+
+pkg_postinst() {
+ if [[ "${PV}" != 9999 ]] && ver_replacing -lt "${PV}"; then
+ elog "DB IDO schema upgrade may be required."
+ elog "https://www.icinga.com/docs/icinga2/latest/doc/16-upgrading-icinga-2/"
+ fi
+}
diff --git a/net-analyzer/icinga2/icinga2-9999.ebuild b/net-analyzer/icinga2/icinga2-9999.ebuild
new file mode 100644
index 000000000000..99745d7b4483
--- /dev/null
+++ b/net-analyzer/icinga2/icinga2-9999.ebuild
@@ -0,0 +1,151 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake eapi9-ver
+
+if [[ ${PV} != 9999 ]]; then
+ SRC_URI="https://github.com/Icinga/icinga2/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm64 ~x86"
+else
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/Icinga/icinga2.git"
+fi
+
+DESCRIPTION="Distributed, general purpose, network monitoring engine"
+HOMEPAGE="https://icinga.com/"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="console jumbo-build mail mariadb minimal +mysql opentelemetry +plugins postgres systemd"
+
+# Add accounts to DEPEND because of fowners in src_install
+DEPEND="
+ dev-libs/openssl:=
+ dev-libs/boost:=[context]
+ console? ( dev-libs/libedit )
+ mariadb? ( dev-db/mariadb-connector-c:= )
+ mysql? ( dev-db/mysql-connector-c:= )
+ postgres? ( dev-db/postgresql:= )
+ dev-libs/yajl:=
+ acct-user/icinga
+ acct-group/icinga
+ acct-group/icingacmd
+"
+BDEPEND="
+ app-alternatives/yacc
+ app-alternatives/lex
+"
+RDEPEND="
+ ${DEPEND}
+ acct-group/nagios
+ plugins? ( || (
+ net-analyzer/monitoring-plugins
+ net-analyzer/nagios-plugins
+ ) )
+ mail? ( virtual/mailx )
+"
+
+REQUIRED_USE="!minimal? ( || ( mariadb mysql postgres ) )"
+
+src_configure() {
+ local mycmakeargs=(
+ -DICINGA2_UNITY_BUILD=$(usex jumbo-build)
+ -DCMAKE_INSTALL_SYSCONFDIR=/etc
+ -DCMAKE_INSTALL_LOCALSTATEDIR=/var
+ -DICINGA2_SYSCONFIGFILE=/etc/conf.d/icinga2
+ -DICINGA2_PLUGINDIR="/usr/$(get_libdir)/nagios/plugins"
+ -DICINGA2_USER=icinga
+ -DICINGA2_GROUP=icingacmd
+ -DICINGA2_COMMAND_GROUP=icingacmd
+ -DICINGA2_RUNDIR=/run
+ -DICINGA2_WITH_OPENTELEMETRY=$(usex opentelemetry)
+ -DINSTALL_SYSTEMD_SERVICE_AND_INITSCRIPT=ON
+ -DUSE_SYSTEMD=$(usex systemd)
+ -DLOGROTATE_HAS_SU=ON
+ # only appends -flto
+ -DICINGA2_LTO_BUILD=OFF
+ )
+
+ # default to off if minimal, allow the flags to be set otherwise
+ if use minimal; then
+ mycmakeargs+=(
+ -DICINGA2_WITH_MYSQL=OFF
+ -DICINGA2_WITH_PGSQL=OFF
+ )
+ else
+ mycmakeargs+=(
+ -DICINGA2_WITH_PGSQL=$(usex postgres)
+ -DICINGA2_WITH_MYSQL=$(usex mysql yes $(usex mariadb))
+ )
+ fi
+
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ newinitd "${FILESDIR}"/icinga2.initd-3 icinga2
+
+ if use mysql || use mariadb; then
+ docinto schema
+ newdoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_mysql/schema/mysql.sql mysql.sql
+ docinto schema/upgrade
+ dodoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_mysql/schema/upgrade/*
+ fi
+ if use postgres; then
+ docinto schema
+ newdoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_pgsql/schema/pgsql.sql pgsql.sql
+ docinto schema/upgrade
+ dodoc "${WORKDIR}"/icinga2-${PV}/lib/db_ido_pgsql/schema/upgrade/*
+ fi
+
+ # See messiness in bug #638686
+ keepdir /etc/icinga2
+ keepdir /var/lib/icinga2/api/log
+ keepdir /var/lib/icinga2/api/repository
+ keepdir /var/lib/icinga2/api/zones
+ keepdir /var/lib/icinga2/api/zones-stage
+ keepdir /var/lib/icinga2/certificate-requests
+ keepdir /var/lib/icinga2/certs
+ keepdir /var/log/icinga2
+ keepdir /var/log/icinga2/compat
+ keepdir /var/log/icinga2/compat/archives
+ keepdir /var/log/icinga2/crash
+ keepdir /var/spool/icinga2/perfdata
+ keepdir /var/spool/icinga2/tmp
+
+ rm -r "${D}/run" || die "failed to remove /run"
+ rm -r "${D}/var/cache" || die "failed to remove /var/cache"
+
+ fowners -R icinga:icinga /etc/icinga2
+ fperms 0750 /etc/icinga2
+ fowners icinga:icinga /var/lib/icinga2
+ fowners -R icinga:icingacmd /var/lib/icinga2/api
+ fowners -R icinga:icingacmd /var/lib/icinga2/certificate-requests
+ fowners -R icinga:icingacmd /var/lib/icinga2/certs
+ fowners icinga:icinga /var/spool/icinga2
+ fowners icinga:icinga /var/spool/icinga2/perfdata
+ fowners icinga:icingacmd /var/log/icinga2
+
+ fperms ug+rwX,o-rwx /etc/icinga2
+ fperms ug+rwX,o-rwx /var/lib/icinga2
+ fperms ug+rwX,o-rwx /var/spool/icinga2
+ fperms ug+rwX,o-rwx /var/log/icinga2
+
+ insinto /usr/share/vim/vimfiles
+ doins -r "${WORKDIR}"/${P}/tools/syntax/vim/ftdetect
+ doins -r "${WORKDIR}"/${P}/tools/syntax/vim/syntax
+
+ insinto /usr/share/nano
+ doins "${WORKDIR}"/${P}/tools/syntax/nano/icinga2.nanorc
+}
+
+pkg_postinst() {
+ if [[ "${PV}" != 9999 ]] && ver_replacing -lt "${PV}"; then
+ elog "DB IDO schema upgrade may be required."
+ elog "https://www.icinga.com/docs/icinga2/latest/doc/16-upgrading-icinga-2/"
+ fi
+}
diff --git a/net-analyzer/icinga2/metadata.xml b/net-analyzer/icinga2/metadata.xml
new file mode 100644
index 000000000000..02f522269c42
--- /dev/null
+++ b/net-analyzer/icinga2/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>prometheanfire@gentoo.org</email>
+ <name>Matthew Thode</name>
+ </maintainer>
+ <use>
+ <flag name="console">Adds support for line-editing in the console</flag>
+ <flag name="jumbo-build">Combine source files to speed up build process, requires more memory</flag>
+ <flag name="mail">Allows for mailing of alerts</flag>
+ <flag name="mariadb">Enable support for the mariadb database backend</flag>
+ <flag name="plugins">Adds support for nagios plugins</flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/ifmetric/Manifest b/net-analyzer/ifmetric/Manifest
new file mode 100644
index 000000000000..7ab4a1d7efda
--- /dev/null
+++ b/net-analyzer/ifmetric/Manifest
@@ -0,0 +1 @@
+DIST ifmetric-0.3.tar.gz 81502 BLAKE2B f918932edb730e50ee3598eaeaadd036ca970234c955f05d45ba44c719b650c222adf0e6f971ed6c3387900ee019e092d7e313f0da57afcc6cd63ef842c644c9 SHA512 301d6bc1c97a59597fe55d81a04c1b654aee24d12ac10201ab56cf23b5164808270f15c142cc49142787db70b400cc18b96561aefcf212111ba47df28f07aa95
diff --git a/net-analyzer/ifmetric/files/ifmetric-0.3-replybuf.patch b/net-analyzer/ifmetric/files/ifmetric-0.3-replybuf.patch
new file mode 100644
index 000000000000..883ce2b31215
--- /dev/null
+++ b/net-analyzer/ifmetric/files/ifmetric-0.3-replybuf.patch
@@ -0,0 +1,11 @@
+--- a/src/nlrequest.c
++++ b/src/nlrequest.c
+@@ -44,7 +44,7 @@
+
+ for (;;) {
+ int bytes;
+- char replybuf[2048];
++ char replybuf[4096];
+ struct nlmsghdr *p = (struct nlmsghdr *) replybuf;
+
+ if ((bytes = recv(s, &replybuf, sizeof(replybuf), 0)) < 0) {
diff --git a/net-analyzer/ifmetric/files/ifmetric-0.3-ul.patch b/net-analyzer/ifmetric/files/ifmetric-0.3-ul.patch
new file mode 100644
index 000000000000..eb432dc29c0e
--- /dev/null
+++ b/net-analyzer/ifmetric/files/ifmetric-0.3-ul.patch
@@ -0,0 +1,11 @@
+--- a/src/nlrequest.c
++++ b/src/nlrequest.c
+@@ -56,7 +56,7 @@
+ int ret;
+
+ if (!NLMSG_OK(p, bytes) || bytes < sizeof(struct nlmsghdr) || bytes < p->nlmsg_len) {
+- fprintf(stderr, "NETLINK: Packet too small or truncated! %u!=%u!=%u\n", bytes, sizeof(struct nlmsghdr), p->nlmsg_len);
++ fprintf(stderr, "NETLINK: Packet too small or truncated! %u!=%lu!=%u\n", bytes, sizeof(struct nlmsghdr), p->nlmsg_len);
+ return -1;
+ }
+
diff --git a/net-analyzer/ifmetric/ifmetric-0.3-r4.ebuild b/net-analyzer/ifmetric/ifmetric-0.3-r4.ebuild
new file mode 100644
index 000000000000..27101a208ed3
--- /dev/null
+++ b/net-analyzer/ifmetric/ifmetric-0.3-r4.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="Set metrics of all IPv4 routes attached to a given network interface at once"
+HOMEPAGE="http://0pointer.de/lennart/projects/ifmetric/"
+SRC_URI="http://0pointer.de/lennart/projects/ifmetric/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc x86"
+
+DEPEND="sys-kernel/linux-headers"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-ul.patch
+ "${FILESDIR}"/${P}-replybuf.patch
+)
+HTML_DOCS=( doc/README.html )
+
+src_prepare() {
+ default
+
+ # bug #899926
+ eautoreconf
+}
+
+src_configure() {
+ # man page and HTML are already generated
+ econf \
+ --disable-xmltoman \
+ --disable-lynx
+}
diff --git a/net-analyzer/ifmetric/metadata.xml b/net-analyzer/ifmetric/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/ifmetric/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/ifstat/Manifest b/net-analyzer/ifstat/Manifest
new file mode 100644
index 000000000000..ea51723e7850
--- /dev/null
+++ b/net-analyzer/ifstat/Manifest
@@ -0,0 +1 @@
+DIST ifstat-1.1.tar.gz 67920 BLAKE2B b9aeb18488f419fd6a03f698ed41d442b812765d5c1636dc6ea1e0484b5b1a6bc40b484bf88a715c63417d52db92927c128477714264ee3fe14ceb482330cb06 SHA512 b1aef8e7b14cbf265e2d42277478fd12a565287f90f37b0a826ba3e7d29640df757c7d56f149e406bf5890663ed734b2c658c4f1e2b258ded3649f2fc3e9ac64
diff --git a/net-analyzer/ifstat/files/ifstat-1.1-hardened.patch b/net-analyzer/ifstat/files/ifstat-1.1-hardened.patch
new file mode 100644
index 000000000000..10c377ac7678
--- /dev/null
+++ b/net-analyzer/ifstat/files/ifstat-1.1-hardened.patch
@@ -0,0 +1,11 @@
+--- a/configure.in
++++ b/configure.in
+@@ -58,7 +58,7 @@
+ /*) file=$with_proc; with_proc=yes ;;
+ *) file=/proc/net/dev
+ AC_MSG_CHECKING([for proc interface in $file])
+- if grep -q Inter- $file 2>/dev/null; then
++ if true; then
+ AC_DEFINE([USE_PROC], 1, [Define if you want to use /proc to get stats])
+ AC_DEFINE_UNQUOTED([PROC_FILE], ["$file"], [Proc file to poll for stats])
+ with_proc=yes
diff --git a/net-analyzer/ifstat/files/ifstat-1.1-make.patch b/net-analyzer/ifstat/files/ifstat-1.1-make.patch
new file mode 100644
index 000000000000..62feb8b0005a
--- /dev/null
+++ b/net-analyzer/ifstat/files/ifstat-1.1-make.patch
@@ -0,0 +1,122 @@
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -65,14 +65,14 @@
+ install: install-$(TARGET) install-@LIBTARGET@
+
+ install-$(TARGET): $(TARGET)
+- $(INSTALL) -d -m 755 $(bindir)
+- $(INSTALL) -s -m 755 $(TARGET) $(bindir)/$(TARGET)
+- $(INSTALL) -d -m 755 $(mandir)/man1
+- $(INSTALL) -m 644 ifstat.1 $(mandir)/man1/ifstat.1
++ $(INSTALL) -d -m 755 $(DESTDIR)/$(bindir)
++ $(INSTALL) -m 755 $(TARGET) $(DESTDIR)/$(bindir)/$(TARGET)
++ $(INSTALL) -d -m 755 $(DESTDIR)/$(mandir)/man1
++ $(INSTALL) -m 644 ifstat.1 $(DESTDIR)/$(mandir)/man1/ifstat.1
+
+ install-$(LIBTARGET): $(LIBTARGET) libifstat-config
+- $(INSTALL) -d -m 755 $(bindir)
+- $(INSTALL) -m 755 libifstat-config $(bindir)/libifstat-config
++ $(INSTALL) -d -m 755 $(DESTDIR)/$(bindir)
++ $(INSTALL) -m 755 libifstat-config $(DESTDIR)/$(bindir)/libifstat-config
+ $(INSTALL) -d -m 755 $(includedir)
+ $(INSTALL) -m 644 ifstat.h $(includedir)/ifstat.h
+ $(INSTALL) -d -m 755 $(libdir)
+--- a/configure.in
++++ b/configure.in
+@@ -55,9 +55,8 @@
+ # checking for proc (Linux)
+ if test "x$with_proc" != "xno"; then
+ case "$with_proc" in
+- /*) file=$with_proc ;;
+- *) file=/proc/net/dev ;;
+- esac
++ /*) file=$with_proc; with_proc=yes ;;
++ *) file=/proc/net/dev
+ AC_MSG_CHECKING([for proc interface in $file])
+ if grep -q Inter- $file 2>/dev/null; then
+ AC_DEFINE([USE_PROC], 1, [Define if you want to use /proc to get stats])
+@@ -69,6 +68,8 @@
+ with_proc=no
+ fi
+ AC_MSG_RESULT([$with_proc])
++ ;;
++ esac
+ fi
+
+ # checking for kstat (Solaris)
+@@ -393,7 +394,7 @@
+ [snmp_ok=yes], [snmp_ok=no])
+ AC_MSG_RESULT([$snmp_ok])
+ if test "x$snmp_ok" = "xyes"; then
+- with_snmp=yes
++ use_snmp=yes
+ snmp_type=net
+ else
+ CPPFLAGS="$OCPPFLAGS"
+@@ -402,22 +403,22 @@
+ fi
+
+ if test "x$snmp_ok" != "xyes"; then
+- if test "x$with_snmp" != "xyes" ; then
++ if test "x$use_snmp" != "xyes" ; then
+ CPPFLAGS="$CPPFLAGS -I$with_snmp/include"
+ LDFLAGS="$LDFLAGS -L$with_snmp/lib"
+ fi
+ AC_CHECK_HEADER(net-snmp/net-snmp-config.h, snmp_type=net,
+ [AC_CHECK_HEADER(ucd-snmp/ucd-snmp-config.h,
+- snmp_type=ucd, with_snmp=no)])
++ snmp_type=ucd, use_snmp=no)])
+
+- if test "x$with_snmp" != "xno"; then
++ if test "x$use_snmp" != "xno"; then
+ if test "x$snmp_type" = "xnet"; then
+ libsnmp="-lnetsnmp"
+ else
+ libsnmp="-lsnmp"
+ fi
+
+- with_snmp=no
++ use_snmp=no
+ SNMPLIBALONE="$libsnmp"
+ # Setting to be able to force linking with -lcrypto....
+ # This is needed on OpenBSD (at least) where the snmplib port links without -lcrypto,
+@@ -429,18 +430,18 @@
+ SNMPLIBALONE=""
+ fi
+ for lib in $SNMPLIBALONE "$libsnmp -lcrypto" ; do
+- if test "x$with_snmp" != "xyes" ; then
++ if test "x$use_snmp" != "xyes" ; then
+ AC_MSG_CHECKING([for snmp support in $lib])
+ OLIBS="$LIBS"
+ LIBS="$LIBS $lib"
+ AC_TRY_LINK([], [snmp_sess_init();],
+- [with_snmp=yes], [LIBS="$OLIBS"])
+- AC_MSG_RESULT([$with_snmp])
++ [use_snmp=yes], [LIBS="$OLIBS"])
++ AC_MSG_RESULT([$use_snmp])
+ fi
+ done
+ fi
+ fi
+- if test "x$with_snmp" = "xyes" ; then
++ if test "x$use_snmp" = "xyes" ; then
+ AC_DEFINE([USE_SNMP], 1, [Define if you have SNMP support])
+ if test "x$snmp_type" = "xnet"; then
+ AC_DEFINE([HAVE_NET_SNMP], 1,
+@@ -464,10 +465,13 @@
+
+ # checking that we do have at least one driver
+ if test "x$local" != "xyes"; then
++ AC_MSG_WARN([no native stats gathering mechanism found; will use SNMP.])
+ if test "x$with_snmp" = "xyes"; then
+- AC_MSG_WARN([no native stats gathering mechanism found; will use SNMP.])
+- else
+- AC_MSG_ERROR([no statistics gathering methods found, porting needed.])
++ if test "x$use_snmp" = "xno"; then
++ AC_MSG_ERROR([net-snmp requested but not found.])
++ else
++ AC_MSG_ERROR([no statistics gathering methods found, porting needed.])
++ fi
+ fi
+ fi
+
diff --git a/net-analyzer/ifstat/ifstat-1.1-r2.ebuild b/net-analyzer/ifstat/ifstat-1.1-r2.ebuild
new file mode 100644
index 000000000000..8d6d6f5501ea
--- /dev/null
+++ b/net-analyzer/ifstat/ifstat-1.1-r2.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools
+
+DESCRIPTION="Network interface bandwidth usage, with support for snmp targets"
+HOMEPAGE="http://gael.roualland.free.fr/ifstat/"
+SRC_URI="http://gael.roualland.free.fr/ifstat/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~hppa ~mips ppc ppc64 ~riscv ~sparc x86"
+IUSE="snmp"
+
+DEPEND="snmp? ( >=net-analyzer/net-snmp-5.0 )"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-make.patch
+ "${FILESDIR}"/${P}-hardened.patch
+)
+DOCS=( HISTORY README TODO )
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ econf $(use_with snmp)
+}
diff --git a/net-analyzer/ifstat/metadata.xml b/net-analyzer/ifstat/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/ifstat/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/ifstatus/Manifest b/net-analyzer/ifstatus/Manifest
new file mode 100644
index 000000000000..3d533a2aa938
--- /dev/null
+++ b/net-analyzer/ifstatus/Manifest
@@ -0,0 +1 @@
+DIST ifstatus-v2.0.0.tar.gz 24058 BLAKE2B 09a2b0af26cb05dfc24eefdbb6ac52b0ac289a687301f5fa67f0fcaf2622da96e149af3f7c08257e0ef8418f4f08b5ca1b77af71ba7c00dabddcb87cc95ddce7 SHA512 e1720f5dcc26788149cc72ccb72b85fffc72b367f2268e1e4f06a8fe4d80685146d310746c0b1a913e24995f6e93011d7d75ea5b4f9ca479af2d79264b89e27d
diff --git a/net-analyzer/ifstatus/files/ifstatus-2.0.0-tinfo.patch b/net-analyzer/ifstatus/files/ifstatus-2.0.0-tinfo.patch
new file mode 100644
index 000000000000..ab2f5a921368
--- /dev/null
+++ b/net-analyzer/ifstatus/files/ifstatus-2.0.0-tinfo.patch
@@ -0,0 +1,11 @@
+--- a/Makefile
++++ b/Makefile
+@@ -2,7 +2,7 @@
+ # Gabriel Montenegro
+
+ GCC = g++
+-LDFLAGS = -lncurses
++LDFLAGS += $(shell $(PKG_CONFIG) --libs ncurses)
+ CFLAGS = -O2 -Wall
+
+ BIN = ifstatus
diff --git a/net-analyzer/ifstatus/ifstatus-2.0.0.ebuild b/net-analyzer/ifstatus/ifstatus-2.0.0.ebuild
new file mode 100644
index 000000000000..ff7c23bd9489
--- /dev/null
+++ b/net-analyzer/ifstatus/ifstatus-2.0.0.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Simple CLI program for displaying network statistics in real time"
+HOMEPAGE="https://ifstatus.sourceforge.io/"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${PN}-v${PV}.tar.gz"
+S="${WORKDIR}/${PN}-v${PV}"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="amd64 arm ~ppc ~riscv x86"
+
+RDEPEND=">=sys-libs/ncurses-4.2:0="
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.0.0-tinfo.patch
+)
+
+src_compile() {
+ tc-export CXX PKG_CONFIG
+ emake GCC="$(tc-getCXX)" ${PN}
+}
+
+src_install() {
+ dobin ifstatus
+ dodoc AUTHORS README
+}
+
+pkg_postinst() {
+ elog "You may want to configure ~/.ifstatus/ifstatus.cfg"
+ elog "before running ifstatus. For example, you may add"
+ elog "Interfaces = eth0 there. Read the README file for"
+ elog "more information."
+}
diff --git a/net-analyzer/ifstatus/metadata.xml b/net-analyzer/ifstatus/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/ifstatus/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/iftop/Manifest b/net-analyzer/iftop/Manifest
new file mode 100644
index 000000000000..6555606518a5
--- /dev/null
+++ b/net-analyzer/iftop/Manifest
@@ -0,0 +1 @@
+DIST iftop-1.0pre4.tar.gz 204665 BLAKE2B 181385c3fbf43abd4ead975aac11b5ff196de94d9a8d6f195b3f0068aba6ae953067995d19f0175b49ab15c447c99d531542ae786603ee390e080e79bdcd7ae3 SHA512 abd74e8025bb82fef9ebab4997b1d018201a523d47c0128128ca37797490046538d74758dc4471735c22b890e5bd238ad6b2a30776d465138ede367cdd263d22
diff --git a/net-analyzer/iftop/files/iftop-1.0_pre4-Makefile.am.patch b/net-analyzer/iftop/files/iftop-1.0_pre4-Makefile.am.patch
new file mode 100644
index 000000000000..0b1308ab36c5
--- /dev/null
+++ b/net-analyzer/iftop/files/iftop-1.0_pre4-Makefile.am.patch
@@ -0,0 +1,11 @@
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -25,7 +25,7 @@ iftop_SOURCES = addr_hash.c edline.c hash.c iftop.c ns_hash.c \
+ # addrs_ioctl.c addrs_dlpi.c dlcommon.c \
+ # stringmap.c cfgfile.c
+
+-
++iftop_LDADD = $(ncurses_LIBS)
+
+ noinst_HEADERS = addr_hash.h ether.h ethertype.h extract.h hash.h iftop.h \
+ integers.h ip.h llc.h ns_hash.h options.h resolver.h \
diff --git a/net-analyzer/iftop/files/iftop-1.0_pre4-allow-scales-beyond-1gbps.patch b/net-analyzer/iftop/files/iftop-1.0_pre4-allow-scales-beyond-1gbps.patch
new file mode 100644
index 000000000000..9c9892147df5
--- /dev/null
+++ b/net-analyzer/iftop/files/iftop-1.0_pre4-allow-scales-beyond-1gbps.patch
@@ -0,0 +1,43 @@
+https://code.blinkace.com/pdw/iftop/-/commit/77901c8c53e01359d83b8090aacfe62214658183
+https://bugs.gentoo.org/857837
+
+From: Paul Warren <pdw@ex-parrot.com>
+Date: Wed, 3 Oct 2018 18:02:36 +0100
+Subject: [PATCH] Support scales beyond 1Gbps
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Guido Jäkel <Guido.Jaekel@GMX.DE>
+--- a/ui.c
++++ b/ui.c
+@@ -71,7 +71,7 @@ int dontshowdisplay = 0;
+
+ /* Barchart scales. */
+ static struct {
+- int max, interval;
++ long max; int interval;
+ } scale[] = {
+ { 64000, 10 }, /* 64 kbit/s */
+ { 128000, 10 },
+@@ -79,7 +79,9 @@ static struct {
+ { 1000000, 10 }, /* 1 Mbit/s */
+ { 10000000, 10 },
+ { 100000000, 100 },
+- { 1000000000, 100 } /* 1 Gbit/s */
++ { 1000000000, 100 }, /* 1 Gbit/s */
++ {10000000000, 100 },
++ {100000000000, 100 }
+ };
+ static int rateidx = 0, wantbiggerrate;
+
+@@ -105,7 +107,7 @@ static float get_max_bandwidth() {
+ }
+
+ /* rate in bits */
+-static int get_bar_length(const int rate) {
++static int get_bar_length(const long rate) {
+ float l;
+ if (rate <= 0)
+ return 0;
+GitLab
diff --git a/net-analyzer/iftop/files/iftop-1.0_pre4-configure.ac.patch b/net-analyzer/iftop/files/iftop-1.0_pre4-configure.ac.patch
new file mode 100644
index 000000000000..ff13fd89fb57
--- /dev/null
+++ b/net-analyzer/iftop/files/iftop-1.0_pre4-configure.ac.patch
@@ -0,0 +1,278 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -51,10 +51,10 @@
+ forking use the REALLY SUCKY forking resolver.
+ guess run experiments to guess a
+ reasonable value. Only works if you
+- aren't cross-compiling. This
++ are not cross-compiling. This
+ is the default. guess will
+ either select netdb or netdb_1thread.
+- none don't do name resolution.],
++ none do not do name resolution.],
+ [resolver=$withval],
+ [resolver=guess])
+
+@@ -98,45 +98,14 @@
+ AC_CHECK_FUNCS(inet_aton inet_pton)
+
+ dnl
+-dnl Find integers of known physical size. This is a pain in the arse because
+-dnl we can't use AC_CHECK_SIZEOF to find the original variables, since that
+-dnl function doesn't permit us to include a header file. Sigh.
+-dnl
+-
+-for type in u_int8_t u_int16_t u_int32_t ; do
+- AC_MSG_CHECKING([size of $type])
+- AC_RUN_IFELSE([AC_LANG_SOURCE([
+-#include <sys/types.h>
+-#include <stdio.h>
+-int main() {
+- $type dummy;
+- FILE *f=fopen("conftestval", "w");
+- if (!f) exit(1);
+- fprintf(f, "%d\n", sizeof($1));
+- exit(0);
+-}
+- ])], [
+- x=`cat conftestval`
+- eval "size_$type=$x"
+- AC_MSG_RESULT([$x])
+- ], [
+- eval "size_$type=0"
+- AC_MSG_RESULT([unknown type])
+- ], [
+- eval "size_$type=0"
+- AC_MSG_RESULT([can't determine when cross-compiling])
+- ])
+-done
+-
+-dnl Groan. Have to do things this way so that autoheader can do its thing....
+-AC_DEFINE_UNQUOTED(SIZEOF_U_INT8_T, [$size_u_int8_t], [size of u_int8_t])
+-AC_DEFINE_UNQUOTED(SIZEOF_U_INT16_T, [$size_u_int16_t], [size of u_int16_t])
+-AC_DEFINE_UNQUOTED(SIZEOF_U_INT32_T, [$size_u_int32_t], [size of u_int32_t])
++dnl Find integers of known physical size.
++dnl
+
+-dnl If we already have these types, don't piss about any more....
++AC_CHECK_SIZEOF([u_int8_t])
++AC_CHECK_SIZEOF([u_int16_t])
++AC_CHECK_SIZEOF([u_int32_t])
+
+-if test $size_u_int8_t != 1 || test $size_u_int16_t != 2 || test $size_u_int32_t != 4 ; then
+-dnl XXXif test $size_u_int8_t != 1 -o $size_u_int16_t != 2 -o $size_u_int32_t != 4 ; then
++if test $ac_cv_sizeof_u_int8_t = 0 || test $ac_cv_sizeof_u_int16_t = 0 || test $ac_cv_sizeof_u_int32_t = 0; then
+ do_int_types=1
+ AC_CHECK_HEADERS(
+ stdint.h dnl C99
+@@ -154,12 +123,16 @@
+ fi
+ fi
+
++AC_DEFINE_UNQUOTED([SIZEOF_U_INT8_T],[$ac_cv_sizeof_u_int8_t],[size of u_int8_t])
++AC_DEFINE_UNQUOTED([SIZEOF_U_INT16_T],[$ac_cv_sizeof_u_int16_t],[size of u_int16_t])
++AC_DEFINE_UNQUOTED([SIZEOF_U_INT32_T],[$ac_cv_sizeof_u_int32_t],[size of u_int32_t])
++
+ dnl
+ dnl Name resolution.
+ dnl
+ dnl This is complicated because we need some sort of reentrant mechanism for
+ dnl name resolution. Naturally, UNIX vendors have come up with a variety of
+-dnl incompatible schemes for this, many of which don't work at all.
++dnl incompatible schemes for this, many of which do not work at all.
+ dnl
+
+ dnl First, the default resolver, which uses getnameinfo or gethostbyaddr_r. If
+@@ -175,7 +148,7 @@
+ use_getnameinfo=0
+ AC_SEARCH_LIBS(getnameinfo, [nsl], [use_getnameinfo=1])
+
+- dnl XXX For the moment, don't use getnameinfo, since it isn't actually
++ dnl XXX For the moment, do not use getnameinfo, since it is not actually
+ dnl thread safe on, e.g., NetBSD.
+ use_getnameinfo=0
+
+@@ -192,7 +165,7 @@
+ dnl Can use gethostbyaddr_r?
+ AC_SEARCH_LIBS(gethostbyaddr_r, [nsl], , [resolver=guess])
+ if test x$resolver = xguess && test x$specified_resolver != xguess ; then
+- dnl They wanted gethostbyaddr_r, but they can't have it, so stop.
++ dnl They wanted gethostbyaddr_r, but they cannot have it, so stop.
+ AC_MSG_ERROR([no library defines gethostbyaddr_r])
+ fi
+ fi
+@@ -216,15 +189,15 @@
+ AC_DEFINE(GETHOSTBYADDR_R_RETURNS_INT, 1,
+ [8-argument gethostbyaddr_r returns int])], [
+ dnl Neither.
+- AC_MSG_RESULT([don't know how])
++ AC_MSG_RESULT([do not know how])
+ resolver=guess])])
+ if test x$resolver = xguess && test x$specified_resolver != xguess ; then
+- dnl They wanted gethostbyaddr_r, but they can't have it, so stop.
++ dnl They wanted gethostbyaddr_r, but they cannot have it, so stop.
+ AC_MSG_ERROR([gethostbyaddr_r has no known calling convention])
+ fi
+ fi
+
+-dnl If we still want to do gethostbyaddr_r, and we aren't
++dnl If we still want to do gethostbyaddr_r, and we are not
+ dnl cross-compiling, test it.
+ if test x$resolver = xnetdb ; then
+ if test x$ghba_args = x8 ; then
+@@ -237,13 +210,13 @@
+ [AC_MSG_RESULT([yes])],
+ [AC_MSG_RESULT([no])
+ resolver=guess],
+- [AC_MSG_RESULT([can't test because we are cross-compiling])])
++ [AC_MSG_RESULT([cannot test because we are cross-compiling])])
+ if test x$resolver = xguess ; then
+ if test x$specified_resolver = xguess ; then
+- AC_MSG_RESULT([gethostbyaddr_r doesn't work, so we'll try something else])
++ AC_MSG_RESULT([gethostbyaddr_r does not work, so we will try something else])
+ else
+- dnl They wanted gethostbyaddr_r, but it doesn't work, so stop.
+- AC_MSG_ERROR([gethostbyaddr_r doesn't work])
++ dnl They wanted gethostbyaddr_r, but it does not work, so stop.
++ AC_MSG_ERROR([gethostbyaddr_r does not work])
+ fi
+ fi
+ fi
+@@ -260,11 +233,11 @@
+ AC_SEARCH_LIBS(ares_init, [ares], [
+ AC_DEFINE(USE_ARES, 1, [use ARES for name resolution])
+ ], [
+- dnl They asked for ares, but we can't give it to them, so stop.
+- AC_MSG_ERROR([can't find ARES. Re-run configure and ask for a different resolver.])])
++ dnl They asked for ares, but we cannot give it to them, so stop.
++ AC_MSG_ERROR([cannot find ARES. Re-run configure and ask for a different resolver.])])
+ fi
+
+-dnl Last thing to try if we haven't decided yet is netdb_1thread.
++dnl Last thing to try if we have not decided yet is netdb_1thread.
+ if test x$resolver = xguess ; then
+ resolver=netdb_1thread
+ fi
+@@ -317,16 +290,16 @@
+
+ if test $foundpcaph = 0 ; then
+ AC_MSG_RESULT([no idea])
+- AC_MSG_ERROR([can't find pcap.h
+- You're not going to get very far without libpcap.])
++ AC_MSG_ERROR([cannot find pcap.h
++ You are not going to get very far without libpcap.])
+ else
+ dnl assume that -lpcap is under $test_prefix/lib
+ if test x$test_prefix != x ; then
+ LDFLAGS="$LDFLAGS -L$test_prefix/lib"
+ fi
+ AC_CHECK_LIB(pcap, pcap_open_live, , [
+- AC_MSG_ERROR([can't find libpcap
+- You're not going to get very far without libpcap.])
++ AC_MSG_ERROR([cannot find libpcap
++ You are not going to get very far without libpcap.])
+ ])
+ fi
+
+@@ -337,79 +310,50 @@
+ ])
+
+ if test $foundpcap = 0 ; then
+- AC_MSG_ERROR([can't find pcap.h
+- You're not going to get very far without libpcap.])
++ AC_MSG_ERROR([cannot find pcap.h
++ You are not going to get very far without libpcap.])
+ fi
+
+ dnl
+ dnl Curses. Really, we need ncurses or something similarly advanced, since
+ dnl we use the (apparently obscure) mvchgat function. Unfortunately, there's
+-dnl a solid chance that mvchgat is a macro, so we can't just use
++dnl a solid chance that mvchgat is a macro, so we cannot just use
+ dnl AC_SEARCH_LIBS....
+ dnl
+
+-AC_MSG_CHECKING([for a curses library containing mvchgat])
+-oldLIBS=$LIBS
+-for curseslib in ncursesw curses ncurses ; do
+- LIBS="$oldLIBS -l$curseslib"
+- AC_TRY_LINK([
++PKG_PROG_PKG_CONFIG()
++
++PKG_CHECK_MODULES([ncurses], [ncursesw], [foundcurseslib="$ncurses_LIBS"], [
++ PKG_CHECK_MODULES([ncurses], [ncurses], [foundcurseslib="$ncurses_LIBS"], [
++ AC_MSG_CHECKING([for a curses library containing mvchgat])
++ oldLIBS=$LIBS
++ for curseslib in ncursesw curses ncurses ; do
++ LIBS="$oldLIBS -l$curseslib"
++ AC_TRY_LINK([
+ #include <$curseslib.h>
+ ], [
+ mvchgat(0, 0, 1, A_REVERSE, 0, NULL)
+ ], [
+- foundcurseslib=$curseslib
++ foundcurseslib=-l$curseslib
+ break
+ ])
+-done
+-
+-if test x$foundcurseslib = x ; then
+- AC_MSG_RESULT([none found])
++ done
++ ],
+ AC_MSG_ERROR([Curses! Foiled again!
+- (Can't find a curses library supporting mvchgat.)
++ (Cannot find a curses library supporting mvchgat.)
+ Consider installing ncurses.])
+-else
+- AC_MSG_RESULT([-l$foundcurseslib])
+-fi
+-
++ )
++])
+
+ dnl
+ dnl POSIX threads. Different systems like different combinations of flags,
+ dnl libraries, etc. We use a test program to figure this stuff out.
+ dnl
+
+-AC_MSG_CHECKING([POSIX threads compilation])
+-thrfail=1
+-oldCFLAGS=$CFLAGS
+-oldLIBS=$LIBS
+-for flag in "" -mt -pthread -thread ; do
+- CFLAGS="$oldCFLAGS $flag"
+- for lib in "" -lpthread "-lpthread -lposix4" ; do
+- LIBS="$oldLIBS $lib"
+- AC_LINK_IFELSE([AC_LANG_SOURCE([`cat config/pthread.c`])], [
+- foundthrlib=$lib
+- foundthrflag=$flag
+- thrfail=0
+- break
+- ])
+- done
+- if test $thrfail = 0 ; then
+- break
+- fi
+-done
+-
+-if test $thrfail = 1 ; then
+- AC_MSG_RESULT([no idea])
+- AC_MSG_ERROR([can't figure out how to compile with POSIX threads
+- If your system actually supports POSIX threads, this means we've messed up.])
+-fi
+-
+-AC_MSG_RESULT([CFLAGS=$foundthrflag and LIBS=$foundthrlib])
+-AC_MSG_CHECKING([POSIX threads usability])
+-AC_RUN_IFELSE([AC_LANG_SOURCE([`cat config/pthread.c`])],
+- [AC_MSG_RESULT([yes])],
+- [AC_MSG_ERROR(
+- [it fails. We probably guessed the wrong CFLAGS.])],
+- [AC_MSG_RESULT([can't test because we are cross-compiling])])
++AX_PTHREAD(
++ [LIBS="$PTHREAD_LIBS $LIBS"
++ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"],
++ AC_MSG_ERROR([Could not find out how to enable POSIX threads]))
+
+ dnl
+ dnl Are we on a system (like Solaris) that requires promiscuous mode in order to
diff --git a/net-analyzer/iftop/files/iftop-1.0_pre4-fix-MAC-formatting.patch b/net-analyzer/iftop/files/iftop-1.0_pre4-fix-MAC-formatting.patch
new file mode 100644
index 000000000000..d68a8095dce7
--- /dev/null
+++ b/net-analyzer/iftop/files/iftop-1.0_pre4-fix-MAC-formatting.patch
@@ -0,0 +1,22 @@
+From: Xiaoguang Sun <sun.xiaoguang@yoyosys.com>
+Date: Tue, 11 Mar 2014 13:18:46 +0100
+Subject: MAC address format
+
+Forwarded: http://lists.beasts.org/pipermail/iftop-users/2014-March/000413.html
+---
+ iftop.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/iftop.c b/iftop.c
+index a090dcf..883782e 100644
+--- a/iftop.c
++++ b/iftop.c
+@@ -713,7 +713,7 @@ void packet_init() {
+ if(have_hw_addr) {
+ fprintf(stderr, "MAC address is:");
+ for (i = 0; i < 6; ++i)
+- fprintf(stderr, "%c%02x", i ? ':' : ' ', (unsigned int)if_hw_addr[i]);
++ fprintf(stderr, "%c%02x", i ? ':' : ' ', (unsigned char)if_hw_addr[i]);
+ fprintf(stderr, "\n");
+ }
+
diff --git a/net-analyzer/iftop/files/iftop-1.0_pre4-fix_c23.patch b/net-analyzer/iftop/files/iftop-1.0_pre4-fix_c23.patch
new file mode 100644
index 000000000000..464f0c3c275f
--- /dev/null
+++ b/net-analyzer/iftop/files/iftop-1.0_pre4-fix_c23.patch
@@ -0,0 +1,13 @@
+fix c23 unprototyped function, patch from upstream
+https://code.blinkace.com/pdw/iftop/-/commit/67b685c8442528bb30485f6efa212f599ef19baf.patch
+--- a/cfgfile.h
++++ b/cfgfile.h
+@@ -13,7 +13,7 @@ typedef struct {
+ int value;
+ } config_enumeration_type;
+
+-int read_config();
++int read_config(char *file, int whinge_on_error);
+
+ char *config_get_string(const char *directive);
+ int config_get_bool(const char *directive);
diff --git a/net-analyzer/iftop/files/iftop-1.0_pre4-fno-common.patch b/net-analyzer/iftop/files/iftop-1.0_pre4-fno-common.patch
new file mode 100644
index 000000000000..13e0f1058f40
--- /dev/null
+++ b/net-analyzer/iftop/files/iftop-1.0_pre4-fno-common.patch
@@ -0,0 +1,56 @@
+--- a/ui_common.c
++++ b/ui_common.c
+@@ -28,6 +28,13 @@
+ extern int history_pos;
+ extern int history_len;
+
++sorted_list_type screen_list;
++host_pair_line totals;
++int peaksent, peakrecv, peaktotal;
++history_type history_totals;
++hash_type* screen_hash;
++hash_type* service_hash;
++
+ /*
+ * Compare two screen lines based on bandwidth. Start comparing from the
+ * specified column
+--- a/ui_common.h
++++ b/ui_common.h
+@@ -33,12 +33,12 @@
+
+ extern options_t options;
+
+-sorted_list_type screen_list;
+-host_pair_line totals;
+-int peaksent, peakrecv, peaktotal;
++extern sorted_list_type screen_list;
++extern host_pair_line totals;
++extern int peaksent, peakrecv, peaktotal;
+ extern history_type history_totals;
+-hash_type* screen_hash;
+-hash_type* service_hash;
++extern hash_type* screen_hash;
++extern hash_type* service_hash;
+
+ void analyse_data(void);
+ void screen_list_init(void);
+--- a/ui.c
++++ b/ui.c
+@@ -253,7 +253,6 @@
+ }
+ }
+
+-extern history_type history_totals;
+
+
+ void ui_print() {
+--- a/iftop.c
++++ b/iftop.c
+@@ -66,7 +66,6 @@
+ extern options_t options;
+
+ hash_type* history;
+-history_type history_totals;
+ time_t last_timestamp;
+ time_t first_timestamp;
+ int history_pos = 0;
diff --git a/net-analyzer/iftop/files/iftop-1.0_pre4-ip6.arpa.patch b/net-analyzer/iftop/files/iftop-1.0_pre4-ip6.arpa.patch
new file mode 100644
index 000000000000..706db4546db9
--- /dev/null
+++ b/net-analyzer/iftop/files/iftop-1.0_pre4-ip6.arpa.patch
@@ -0,0 +1,48 @@
+From 35af3cf65f17961d173b31fd3b00166ec095c226 Mon Sep 17 00:00:00 2001
+From: Paul Warren <pdw@mythic-beasts.com>
+Date: Mon, 6 Feb 2017 21:35:37 +0000
+Subject: [PATCH] Fix bug with DNS resolution. https://bugzilla.redhat.com/show_bug.cgi?id=1120254
+
+---
+ resolver.c | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/resolver.c b/resolver.c
+index adddbc1..a3123bd 100644
+--- a/resolver.c
++++ b/resolver.c
+@@ -438,11 +438,11 @@ void resolver_worker(void* ptr) {
+ char **ch_pp;
+ void **void_pp;
+ } u_old = { &old };
+- if(hash_find(ns_hash, &addr, u_old.void_pp) == HASH_STATUS_OK) {
++ if(hash_find(ns_hash, &addr.as_addr6, u_old.void_pp) == HASH_STATUS_OK) {
+ hash_delete(ns_hash, &addr);
+ xfree(old);
+ }
+- hash_insert(ns_hash, &addr, (void*)hostname);
++ hash_insert(ns_hash, &addr.as_addr6, (void*)hostname);
+ }
+
+ }
+@@ -488,7 +488,7 @@ void resolve(int af, void* addr, char* result, int buflen) {
+
+ pthread_mutex_lock(&resolver_queue_mutex);
+
+- if(hash_find(ns_hash, raddr, u_hostname.void_pp) == HASH_STATUS_OK) {
++ if(hash_find(ns_hash, &raddr->as_addr6, u_hostname.void_pp) == HASH_STATUS_OK) {
+ /* Found => already resolved, or on the queue, no need to keep
+ * it around */
+ free(raddr);
+@@ -497,7 +497,7 @@ void resolve(int af, void* addr, char* result, int buflen) {
+ hostname = xmalloc(INET6_ADDRSTRLEN);
+ inet_ntop(af, &raddr->addr, hostname, INET6_ADDRSTRLEN);
+
+- hash_insert(ns_hash, raddr, hostname);
++ hash_insert(ns_hash, &raddr->as_addr6, hostname);
+
+ if(((head + 1) % RESOLVE_QUEUE_LENGTH) == tail) {
+ /* queue full */
+--
+libgit2 0.26.0
+
diff --git a/net-analyzer/iftop/files/iftop-1.0_pre4-tsent-set-but-not-used.patch b/net-analyzer/iftop/files/iftop-1.0_pre4-tsent-set-but-not-used.patch
new file mode 100644
index 000000000000..5e12b341fe97
--- /dev/null
+++ b/net-analyzer/iftop/files/iftop-1.0_pre4-tsent-set-but-not-used.patch
@@ -0,0 +1,12 @@
+--- a/ui_common.c
++++ b/ui_common.c
+@@ -263,9 +263,6 @@
+ } u_screen_line = { &screen_line };
+ addr_pair ap;
+ int i;
+- int tsent, trecv;
+- tsent = trecv = 0;
+-
+
+ ap = *(addr_pair*)n->key;
+
diff --git a/net-analyzer/iftop/files/iftoprc b/net-analyzer/iftop/files/iftoprc
new file mode 100644
index 000000000000..83b136952734
--- /dev/null
+++ b/net-analyzer/iftop/files/iftoprc
@@ -0,0 +1,59 @@
+
+# Sets the network interface to if.
+# interface: if
+interface: ppp0
+
+# Controls reverse lookup of IP addresses.
+# dns-resolution: (yes|no)
+dns-resolution: yes
+
+# Controls conversion of port numbers to service names.
+# port-resolution: (yes|no)
+port-resolution: yes
+
+# Sets the filter code to bpf.
+# filter-code: bpf
+
+# Controls display of bar graphs.
+# show-bars: (yes|no)
+show-bars: yes
+
+# Puts the interface into promiscuous mode.
+# promiscuous: (yes|no)
+
+# Controls display of port numbers.
+# port-display: (off|source-only|destination-only|on)
+port-display: on
+
+# Hides source host names.
+# hide-source: (yes|no)
+
+# Hides destination host names.
+# hide-destination: (yes|no)
+
+# Use bytes for bandwidth display, rather than bits.
+# use-bytes: (yes|no)
+use-bytes: yes
+
+# Sets which column is used to sort the display.
+# sort: (2s|10s|40s|source|destination)
+
+# Controls the appearance of each item in the display.
+# line-display: (two-line|one-line-both|one-line-sent|one-line-received)
+
+# Shows cummulative total for each item.
+# show-totals: (yes|no)
+show-totals: yes
+
+# Use a logarithmic scale for bar graphs.
+# log-scale: (yes|no)
+
+# Fixes the maximum for the bar graph scale to bw, e.g. "10M"
+# max-bandwidth: bw
+
+# Defines an IP network boundary for determining packet direction.
+# net-filter: net/mask
+
+# Sets a regular expression to filter screen output.
+# screen-filter: regexp
+
diff --git a/net-analyzer/iftop/iftop-1.0_pre4-r5.ebuild b/net-analyzer/iftop/iftop-1.0_pre4-r5.ebuild
new file mode 100644
index 000000000000..b82f4f787b4c
--- /dev/null
+++ b/net-analyzer/iftop/iftop-1.0_pre4-r5.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="Display bandwidth usage on an interface"
+HOMEPAGE="https://pdw.ex-parrot.com/iftop/ https://code.blinkace.com/pdw/iftop"
+SRC_URI="https://pdw.ex-parrot.com/iftop/download/${P/_/}.tar.gz"
+S="${WORKDIR}"/${P/_/}
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ppc ~ppc64 ~riscv ~sparc x86"
+
+RDEPEND="
+ net-libs/libpcap
+ sys-libs/ncurses:=
+"
+DEPEND="${RDEPEND}"
+# autoconf-archive for ax_pthread, bug #490168
+BDEPEND="
+ dev-build/autoconf-archive
+ virtual/pkgconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.0_pre4-configure.ac.patch
+ "${FILESDIR}"/${PN}-1.0_pre4-Makefile.am.patch
+ "${FILESDIR}"/${PN}-1.0_pre4-tsent-set-but-not-used.patch
+ "${FILESDIR}"/${PN}-1.0_pre4-ip6.arpa.patch
+ "${FILESDIR}"/${PN}-1.0_pre4-fix-MAC-formatting.patch
+ "${FILESDIR}"/${PN}-1.0_pre4-fno-common.patch
+ "${FILESDIR}"/${PN}-1.0_pre4-allow-scales-beyond-1gbps.patch
+ "${FILESDIR}"/${PN}-1.0_pre4-fix_c23.patch
+)
+
+src_prepare() {
+ default
+
+ eautoreconf
+}
+
+src_install() {
+ dosbin iftop
+ doman iftop.8
+
+ dodoc AUTHORS ChangeLog README "${FILESDIR}"/iftoprc
+}
diff --git a/net-analyzer/iftop/metadata.xml b/net-analyzer/iftop/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/iftop/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/ike-scan/Manifest b/net-analyzer/ike-scan/Manifest
new file mode 100644
index 000000000000..992eb7171b88
--- /dev/null
+++ b/net-analyzer/ike-scan/Manifest
@@ -0,0 +1 @@
+DIST ike-scan-1.9.5.tar.gz 1542264 BLAKE2B 3095c2929c7f24da43852402a3e5cfe73dd65100773283ef08b791784be2e2f04bba24843469e407695a027e76e1e0aa18effabc210643414677a35df7f2614c SHA512 5eb98e41c639bc30996041f4e759a6ada7f4baa5b8102992ac2313ed8ff51032d877b116bc24972e0ecd652290849aa67a63523d92ee63af6577112350ee5590
diff --git a/net-analyzer/ike-scan/files/ike-scan-1.9.5-clang-16.patch b/net-analyzer/ike-scan/files/ike-scan-1.9.5-clang-16.patch
new file mode 100644
index 000000000000..31ab6da26398
--- /dev/null
+++ b/net-analyzer/ike-scan/files/ike-scan-1.9.5-clang-16.patch
@@ -0,0 +1,74 @@
+https://github.com/royhills/ike-scan/pull/39
+
+Before:
+```
+checking whether clang accepts -fstack-protector... yes
+checking whether clang accepts -D_FORTIFY_SOURCE... yes
+checking whether clang accepts -Wformat-security... no
+```
+
+After:
+```
+checking whether clang accepts -fstack-protector... yes
+checking whether clang accepts -Wformat-security... yes
+checking whether clang accepts -D_FORTIFY_SOURCE... yes
+```
+
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -144,7 +144,7 @@
+ return 0;
+ return 1;
+ }
+-main() {
++int main() {
+ return ! does_int64_work();
+ }],
+ [Ac_cachevar=yes],
+@@ -180,6 +180,7 @@
+ AC_CACHE_VAL(pgac_cv_snprintf_long_long_int_format,
+ [for pgac_format in '%lld' '%qd' '%I64d'; do
+ AC_TRY_RUN([#include <stdio.h>
++#include <string.h>
+ typedef long long int int64;
+ #define INT64_FORMAT "$pgac_format"
+
+@@ -200,7 +201,7 @@
+ return 0; /* either multiply or snprintf is busted */
+ return 1;
+ }
+-main() {
++int main() {
+ return ! does_int64_snprintf_work();
+ }],
+ [pgac_cv_snprintf_long_long_int_format=$pgac_format; break],
+@@ -278,7 +279,7 @@
+ dnl is not present on all the operating systems that we support, e.g. OpenBSD.
+ dnl
+ AC_DEFUN([GCC_FORTIFY_SOURCE],[
+- if test "x$CC" != "X"; then
++ if test "X$CC" != "X"; then
+ AC_MSG_CHECKING([whether ${CC} accepts -D_FORTIFY_SOURCE])
+ AC_TRY_COMPILE(,[
+ #define GNUC_PREREQ(maj, min) ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
+@@ -311,7 +312,7 @@
+ dnl warnings.
+ dnl
+ AC_DEFUN([GCC_FORMAT_SECURITY],[
+- if test "x$CC" != "X"; then
++ if test "X$CC" != "X"; then
+ AC_MSG_CHECKING([whether ${CC} accepts -Wformat-security])
+ wfs_old_cflags="$CFLAGS"
+ CFLAGS="$CFLAGS -Wall -Werror -Wformat -Wformat-security"
+--- a/configure.ac
++++ b/configure.ac
+@@ -34,8 +34,8 @@
+ CFLAGS="$CFLAGS -Wall -Wshadow -Wwrite-strings"
+ GCC_WEXTRA
+ GCC_STACK_PROTECT_CC
+- GCC_FORTIFY_SOURCE
+ GCC_FORMAT_SECURITY
++ GCC_FORTIFY_SOURCE
+ dnl Uncomment the lines below for testing with stricter warnings.
+ dnl CFLAGS="$CFLAGS -pedantic -Wpointer-arith -Wcast-qual -Wcast-align -Wconversion -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline "
+ dnl Uncomment the line below to check malloc/free with electric fence
diff --git a/net-analyzer/ike-scan/files/ike-scan-1.9.5-musl-getopt.patch b/net-analyzer/ike-scan/files/ike-scan-1.9.5-musl-getopt.patch
new file mode 100644
index 000000000000..84dbde003397
--- /dev/null
+++ b/net-analyzer/ike-scan/files/ike-scan-1.9.5-musl-getopt.patch
@@ -0,0 +1,14 @@
+Minor variations in getopt() output causing musl test failures.
+https://bugs.gentoo.org/836575
+
+--- a/check-error
++++ b/check-error
+@@ -119,7 +119,7 @@
+ echo "FAILED"
+ exit 1
+ fi
+-grep 'ike-scan: unrecognized option ' $TMPFILE >/dev/null
++grep 'ike-scan: unrecognized option' $TMPFILE >/dev/null
+ if test $? -ne 0; then
+ rm -f $TMPFILE
+ echo "FAILED"
diff --git a/net-analyzer/ike-scan/files/ike-scan-1.9.5-openssl-libdir.patch b/net-analyzer/ike-scan/files/ike-scan-1.9.5-openssl-libdir.patch
new file mode 100644
index 000000000000..0ee12dc2f907
--- /dev/null
+++ b/net-analyzer/ike-scan/files/ike-scan-1.9.5-openssl-libdir.patch
@@ -0,0 +1,55 @@
+TODO: switch to pkgconfig
+--- a/configure.ac
++++ b/configure.ac
+@@ -187,49 +187,9 @@ AC_ARG_WITH(openssl,
+ [
+ if test "x$withval" != "xno" ; then
+ AC_MSG_RESULT(yes)
+- for ssldir in $withval /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/local /usr; do
+- if test -f "${ssldir}/include/openssl/ssl.h"; then
+- found_openssl="yes"
+- openssl_header_dir="${ssldir}/include"
+- AC_MSG_NOTICE([Found ${ssldir}/include/openssl/ssl.h])
+- break
+- fi
+- if test -f "${ssldir}/openssl/ssl.h"; then
+- found_openssl="yes"
+- openssl_header_dir="${ssldir}"
+- AC_MSG_NOTICE([Found ${ssldir}/openssl/ssl.h])
+- break
+- fi
+- done
+- if test x$found_openssl != xyes; then
+- AC_MSG_ERROR([Cannot find OpenSSL header files])
+- else
+- AC_MSG_NOTICE([OpenSSL header files found in $openssl_header_dir])
+- CPPFLAGS="-I${openssl_header_dir} ${CPPFLAGS}"
+- fi
+- if test -f "${ssldir}/lib/libcrypto.so"; then
+- openssl_lib_dir="${ssldir}/lib"
+- AC_MSG_NOTICE([Found ${ssldir}/lib/libcrypto.so])
+- elif test -f "${ssldir}/libcrypto.so"; then
+- openssl_lib_dir="${ssldir}"
+- AC_MSG_NOTICE([Found ${ssldir}/libcrypto.so])
+- elif test -f "${ssldir}/lib/libcrypto.dylib"; then
+- openssl_lib_dir="${ssldir}/lib"
+- AC_MSG_NOTICE([Found ${ssldir}/lib/libcrypto.dylib])
+- elif test -f "${ssldir}/libcrypto.dylib"; then
+- openssl_lib_dir="${ssldir}"
+- AC_MSG_NOTICE([Found ${ssldir}/libcrypto.dylib])
+- elif test -f "${ssldir}/lib/libcrypto.a"; then
+- openssl_lib_dir="${ssldir}/lib"
+- AC_MSG_NOTICE([Found ${ssldir}/lib/libcrypto.a])
+- elif test -f "${ssldir}/libcrypto.a"; then
+- openssl_lib_dir="${ssldir}"
+- AC_MSG_NOTICE([Found ${ssldir}/libcrypto.a])
+- else
+- openssl_lib_dir="${ssldir}/lib"
+- AC_MSG_NOTICE([Cannot find libcrypto under $ssldir - assuming its in the standard search path])
+- fi
+ AC_MSG_NOTICE([OpenSSL libraries found in $openssl_lib_dir])
++ openssl_header_dir="${withval}/include/openssl"
++ CPPFLAGS="${CPPFLAGS} -I${openssl_header_dir}"
+ LDFLAGS="-L${openssl_lib_dir} ${LDFLAGS}"
+ LIBS="-lcrypto ${LIBS}"
+
diff --git a/net-analyzer/ike-scan/ike-scan-1.9.5.ebuild b/net-analyzer/ike-scan/ike-scan-1.9.5.ebuild
new file mode 100644
index 000000000000..53ff3d12d350
--- /dev/null
+++ b/net-analyzer/ike-scan/ike-scan-1.9.5.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="A utility for finding, fingerprinting and testing IKE VPN servers"
+HOMEPAGE="https://github.com/royhills/ike-scan"
+SRC_URI="https://github.com/royhills/ike-scan/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc x86"
+IUSE="ssl"
+
+DEPEND="ssl? ( dev-libs/openssl:= )"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.9.5-clang-16.patch
+ "${FILESDIR}"/${PN}-1.9.5-openssl-libdir.patch
+ "${FILESDIR}"/${PN}-1.9.5-musl-getopt.patch
+)
+
+src_prepare() {
+ default
+
+ # Fix buffer overflow, bug #277556
+ sed \
+ -e "/MAXLINE/s:255:511:g" \
+ -i ike-scan.h || die
+
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_with ssl openssl "${ESYSROOT}"/usr)
+
+ # bug 945318, remove bundled "getopt.h"
+ rm getopt.h || die
+}
+
+src_install() {
+ default
+ dodoc udp-backoff-fingerprinting-paper.txt
+}
diff --git a/net-analyzer/ike-scan/metadata.xml b/net-analyzer/ike-scan/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/ike-scan/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/ipaudit/Manifest b/net-analyzer/ipaudit/Manifest
new file mode 100644
index 000000000000..403c37514f35
--- /dev/null
+++ b/net-analyzer/ipaudit/Manifest
@@ -0,0 +1 @@
+DIST ipaudit-1.1.tar.gz 170253 BLAKE2B 6515cab817a35835d5c3eb33dc4d8c9f28a1ceb906854e55c3695fc6ee5d230ad2ae6a6fd59849623e161fe4deb5013f55bdf6effcaaf6ca4d064ded73c148f0 SHA512 5eb1971b454c8c96c02dc260e537a9a627554b7c9d1e269be9de2ffdb5cbfed00272b643de7b15865659cef0db482e4c460f96b1545bcd6c4f208c96d7401ef9
diff --git a/net-analyzer/ipaudit/ipaudit-1.1.ebuild b/net-analyzer/ipaudit/ipaudit-1.1.ebuild
new file mode 100644
index 000000000000..af6d0d9db21d
--- /dev/null
+++ b/net-analyzer/ipaudit/ipaudit-1.1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="IPAudit monitors network activity on a network by host, protocol and port"
+HOMEPAGE="https://ipaudit.sourceforge.net/"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86"
+IUSE="mysql"
+
+RDEPEND="
+ net-libs/libpcap
+ virtual/zlib:=
+ mysql? ( dev-db/mysql-connector-c:= )"
+DEPEND="${RDEPEND}"
+
+src_configure() {
+ econf $(use_with mysql)
+}
diff --git a/net-analyzer/ipaudit/metadata.xml b/net-analyzer/ipaudit/metadata.xml
new file mode 100644
index 000000000000..8772a74e80f9
--- /dev/null
+++ b/net-analyzer/ipaudit/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>robbat2@gentoo.org</email>
+ <name>Robin H. Johnson</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/ipband/Manifest b/net-analyzer/ipband/Manifest
new file mode 100644
index 000000000000..cb7dc8dcee36
--- /dev/null
+++ b/net-analyzer/ipband/Manifest
@@ -0,0 +1 @@
+DIST ipband-0.8.1.tgz 36675 BLAKE2B ab0bab6a455fd7fc8193be8b94d7de6c8a781cf3ad7b3a79866deb5fddff834dd5e752163e55007d34c0852fc8ba7ff5b20095b9d5d62bb0db7ca62c72c83b72 SHA512 66347652fee7c7426620260ae615de2f4cfeedacac21d606643e4ae8da204cc81780bfd3f4062a16a9172a78a4a7799fc97e0141750ed26b0e21c8ac2eab3c4f
diff --git a/net-analyzer/ipband/files/ipband-0.8.1-fno-common.patch b/net-analyzer/ipband/files/ipband-0.8.1-fno-common.patch
new file mode 100644
index 000000000000..4a5fe78fcc49
--- /dev/null
+++ b/net-analyzer/ipband/files/ipband-0.8.1-fno-common.patch
@@ -0,0 +1,113 @@
+--- a/ipband.h
++++ b/ipband.h
+@@ -174,40 +174,40 @@
+ extern char pcap_version[];
+
+ /* Internal use */
+-int isig_m; /* Interupt flag for capture loop */
+-int preload_m; /* Subnets are preloaded flag */
+-char *pcapdev_m; /* Device to listen to */
+-pcap_t *pcapfile_m; /* Pcap input file descriptor */
+-int pcapoffset_m; /* IP header offset */
+-time_t started_m; /* Time when we started */
++extern int isig_m; /* Interupt flag for capture loop */
++extern int preload_m; /* Subnets are preloaded flag */
++extern char *pcapdev_m; /* Device to listen to */
++extern pcap_t *pcapfile_m; /* Pcap input file descriptor */
++extern int pcapoffset_m; /* IP header offset */
++extern time_t started_m; /* Time when we started */
+
+-ll_srvc_t *ll_tcp_cache; /* Resolved tcp services cache */
+-ll_srvc_t *ll_udp_cache; /* Resolved udp services cache */
++extern ll_srvc_t *ll_tcp_cache; /* Resolved tcp services cache */
++extern ll_srvc_t *ll_udp_cache; /* Resolved udp services cache */
+
+
+ /* Variables holding option values */
+-int debug_m; /* Debug option */
+-int do_html; /* Generate HTML output */
+-char *filtercmd_m; /* Pcap filter string */
+-char *repfname_m; /* Subnet report output file */
+-char *htmlfname_m; /* HTML report output file */
+-char *htmltitle_m; /* HTML Title */
+-int mask_m; /* Network aggregation mask bits */
+-int cycle_m; /* Number of sec to average data */
+-int rcycle_m; /* How long in sec bandwidth
+- threshold may be exceeded */
+-float thresh_m; /* Bandwidth threshold in kBps */
+-int fork_m; /* Fork flag */
+-int top_m; /* No of top connections in report */
+-char *config_m; /* Config file name */
+-char *mailto_m; /* E-mail address for reporting */
+-char *mailfoot_m; /* Footer file for e-mail report */
+-char *mtastring_m; /* MTA command string */
+-int report_aggr_m; /* Flag to report aggr exceed time */
+-int promisc_m; /* Use promiscious mode? */
+-int *iplist_m; /* List of local networks */
+-int niplist_m; /* Number of local networks */
+-int lenadj_m; /* IP packet length adjustment in bytes */
++extern int debug_m; /* Debug option */
++extern int do_html; /* Generate HTML output */
++extern char *filtercmd_m; /* Pcap filter string */
++extern char *repfname_m; /* Subnet report output file */
++extern char *htmlfname_m; /* HTML report output file */
++extern char *htmltitle_m; /* HTML Title */
++extern int mask_m; /* Network aggregation mask bits */
++extern int cycle_m; /* Number of sec to average data */
++extern int rcycle_m; /* How long in sec bandwidth
++ threshold may be exceeded */
++extern float thresh_m; /* Bandwidth threshold in kBps */
++extern int fork_m; /* Fork flag */
++extern int top_m; /* No of top connections in report */
++extern char *config_m; /* Config file name */
++extern char *mailto_m; /* E-mail address for reporting */
++extern char *mailfoot_m; /* Footer file for e-mail report */
++extern char *mtastring_m; /* MTA command string */
++extern int report_aggr_m; /* Flag to report aggr exceed time */
++extern int promisc_m; /* Use promiscious mode? */
++extern int *iplist_m; /* List of local networks */
++extern int niplist_m; /* Number of local networks */
++extern int lenadj_m; /* IP packet length adjustment in bytes */
+
+
+ /*
+--- a/main.c
++++ b/main.c
+@@ -26,6 +26,37 @@
+
+ #include "ipband.h"
+
++/* Internal use */
++int isig_m; /* Interupt flag for capture loop */
++int preload_m; /* Subnets are preloaded flag */
++char *pcapdev_m; /* Device to listen to */
++pcap_t *pcapfile_m; /* Pcap input file descriptor */
++int pcapoffset_m; /* IP header offset */
++time_t started_m; /* Time when we started */
++
++/* Variables holding option values */
++int debug_m; /* Debug option */
++int do_html; /* Generate HTML output */
++char *filtercmd_m; /* Pcap filter string */
++char *repfname_m; /* Subnet report output file */
++char *htmlfname_m; /* HTML report output file */
++char *htmltitle_m; /* HTML Title */
++int mask_m; /* Network aggregation mask bits */
++int cycle_m; /* Number of sec to average data */
++int rcycle_m; /* How long in sec bandwidth
++ threshold may be exceeded */
++float thresh_m; /* Bandwidth threshold in kBps */
++int fork_m; /* Fork flag */
++int top_m; /* No of top connections in report */
++char *config_m; /* Config file name */
++char *mailto_m; /* E-mail address for reporting */
++char *mailfoot_m; /* Footer file for e-mail report */
++char *mtastring_m; /* MTA command string */
++int report_aggr_m; /* Flag to report aggr exceed time */
++int promisc_m; /* Use promiscious mode? */
++int *iplist_m; /* List of local networks */
++int niplist_m; /* Number of local networks */
++int lenadj_m; /* IP packet length adjustment in bytes */
+
+ /* Initialize here and not in set_defaults() in case the latter called
+ _after_ the structures are created */
diff --git a/net-analyzer/ipband/files/ipband-0.8.1-gentoo.patch b/net-analyzer/ipband/files/ipband-0.8.1-gentoo.patch
new file mode 100644
index 000000000000..e3929da8cfb4
--- /dev/null
+++ b/net-analyzer/ipband/files/ipband-0.8.1-gentoo.patch
@@ -0,0 +1,20 @@
+--- a/Makefile
++++ b/Makefile
+@@ -12,7 +12,6 @@
+ CPPFLAGS=-I/usr/include/pcap
+ LIBS=-lpcap
+ CFLAGS := -Wall $(CFLAGS)
+-CC=gcc
+
+ ifndef PREFIX
+ PREFIX=/usr
+@@ -49,8 +48,7 @@
+ all: $(BIN)
+
+ $(BIN): $(OBJ_C)
+- $(CC) -o $(BIN) $(OBJ_C) $(LIBS) $(CFLAGS)
+- strip $(BIN)
++ $(CC) $(CFLAGS) $(LDFLAGS) -o $(BIN) $(OBJ_C) $(LIBS)
+
+ install-strip: install
+
diff --git a/net-analyzer/ipband/files/ipband-0.8.1-postfix.patch b/net-analyzer/ipband/files/ipband-0.8.1-postfix.patch
new file mode 100644
index 000000000000..9db8313afb30
--- /dev/null
+++ b/net-analyzer/ipband/files/ipband-0.8.1-postfix.patch
@@ -0,0 +1,13 @@
+--- a/ipband.sample.conf
++++ b/ipband.sample.conf
+@@ -61,7 +61,10 @@
+ # MTA string. Default is "/usr/sbin/sendmail -t -ba". Change it to
+ # whatever runs MTA of your choice. Note that the stringis tokenized and
+ # passed to exec(), so that shell's metacharacters are not interpreted.
++# Sendmail
+ #mtastring "/usr/sbin/sendmail -t -ba"
++# Postfix
++#mtastring "/usr/sbin/sendmail -t"
+
+ # Default number of subnet mask bits.
+ #maskbits 24
diff --git a/net-analyzer/ipband/files/ipband-init b/net-analyzer/ipband/files/ipband-init
new file mode 100644
index 000000000000..aa3474129eb5
--- /dev/null
+++ b/net-analyzer/ipband/files/ipband-init
@@ -0,0 +1,24 @@
+#!/sbin/openrc-run
+# Copyright 1999-2007 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ need net
+}
+
+start() {
+ ebegin "Starting ipband"
+ start-stop-daemon --start --exec /usr/bin/ipband -- -F > /dev/null
+ if [ $? -ne 0 ]; then
+ ewarn "Check settings in /etc/ipband.conf"
+ eend 1
+ else
+ eend 0
+ fi
+}
+
+stop() {
+ ebegin "Stopping ipband"
+ start-stop-daemon --stop --exec /usr/bin/ipband
+ eend $?
+}
diff --git a/net-analyzer/ipband/ipband-0.8.1-r2.ebuild b/net-analyzer/ipband/ipband-0.8.1-r2.ebuild
new file mode 100644
index 000000000000..009254fd9076
--- /dev/null
+++ b/net-analyzer/ipband/ipband-0.8.1-r2.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Pcap based IP traffic and bandwidth monitor"
+HOMEPAGE="https://ipband.sourceforge.net/"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tgz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 x86"
+
+DEPEND="
+ >=net-libs/libpcap-0.4
+"
+RDEPEND="
+ ${DEPEND}
+"
+PATCHES=(
+ "${FILESDIR}"/${P}-gentoo.patch
+ "${FILESDIR}"/${P}-postfix.patch
+ "${FILESDIR}"/${P}-fno-common.patch
+)
+
+src_configure() {
+ tc-export CC
+ default
+}
+
+src_install() {
+ dobin ipband
+ doman ipband.8
+ dodoc CHANGELOG README
+
+ newinitd "${FILESDIR}"/ipband-init ipband
+
+ insinto /etc/
+ newins ipband.sample.conf ipband.conf
+}
diff --git a/net-analyzer/ipband/metadata.xml b/net-analyzer/ipband/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/ipband/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/ipgen/ipgen-9999.ebuild b/net-analyzer/ipgen/ipgen-9999.ebuild
new file mode 100644
index 000000000000..da5631d5332b
--- /dev/null
+++ b/net-analyzer/ipgen/ipgen-9999.ebuild
@@ -0,0 +1,18 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit autotools git-r3
+
+DESCRIPTION="Generate list of IP addresses from a network specification"
+HOMEPAGE="https://github.com/royhills/ipgen"
+EGIT_REPO_URI="https://github.com/royhills/ipgen"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS=""
+
+src_prepare() {
+ default
+ eautoreconf
+}
diff --git a/net-analyzer/ipgen/metadata.xml b/net-analyzer/ipgen/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/ipgen/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/ipguard/Manifest b/net-analyzer/ipguard/Manifest
new file mode 100644
index 000000000000..6585adfd1f2d
--- /dev/null
+++ b/net-analyzer/ipguard/Manifest
@@ -0,0 +1 @@
+DIST ipguard-1.04.tar.gz 24566 BLAKE2B c9d543e6f7886c3b6377fbfe95e91e2d786da6a92fe445c9500c8b7ea6fb859bf8550daf9c83de425494376d0ed7197158e5ff9499a97417793b439e82004326 SHA512 c29c3f594e09ad1c06ca7297f794ddfada48da7ec2b98786694cd6af7508cbff232889e0c90718d96519297870b93132b7b0f9f310a0e4d7a7c2d54a30ca893c
diff --git a/net-analyzer/ipguard/files/ipguard-1.04-fno-common.patch b/net-analyzer/ipguard/files/ipguard-1.04-fno-common.patch
new file mode 100644
index 000000000000..414a91ec09a0
--- /dev/null
+++ b/net-analyzer/ipguard/files/ipguard-1.04-fno-common.patch
@@ -0,0 +1,98 @@
+--- a/ipguard.c
++++ b/ipguard.c
+@@ -29,6 +29,34 @@
+
+ #include "ipguard.h"
+
++char iface[IFNAMSIZ];
++char ethers_name[PATH_MAX];
++char log_name[PATH_MAX];
++char pid_name[PATH_MAX];
++char fmac[18];
++char pcapf[PCAPFSIZ];
++char suser[MAXLOGNAME];
++int ethers_update;
++int fake_regen;
++int fake_num;
++int fake_time;
++int buffer_num;
++int addr_nosubst;
++int nofirst;
++int grant;
++int read_only;
++int duplex;
++int fixbc;
++int hidden;
++int promisc;
++int debug;
++int verbose;
++
++unsigned int all, good, grat, wgrat, zmac, zip, bad, bmac, bsip, btip,
++ bnew, bgrat, mymac, fake, pfake, nzh, nbe, mis;
++char pfmac[18];
++char s[128+1];
++
+ void usage(char *name) {
+ fprintf(stdout, "%s v%s (c) %s <%s>\n\n", NAME, VERSION, AUTHOR, MAIL);
+ fprintf(stdout, "usage: %s [-h] [-ajgrxziovd]\n", name);
+--- a/ipguard.h
++++ b/ipguard.h
+@@ -68,33 +68,33 @@
+ #define NOTICE 3
+ #define INFO 4
+
+-char iface[IFNAMSIZ];
+-char ethers_name[PATH_MAX];
+-char log_name[PATH_MAX];
+-char pid_name[PATH_MAX];
+-char fmac[18];
+-char pcapf[PCAPFSIZ];
+-char suser[MAXLOGNAME];
+-int ethers_update;
+-int fake_regen;
+-int fake_num;
+-int fake_time;
+-int buffer_num;
+-int addr_nosubst;
+-int nofirst;
+-int grant;
+-int read_only;
+-int duplex;
+-int fixbc;
+-int hidden;
+-int promisc;
+-int debug;
+-int verbose;
++extern char iface[IFNAMSIZ];
++extern char ethers_name[PATH_MAX];
++extern char log_name[PATH_MAX];
++extern char pid_name[PATH_MAX];
++extern char fmac[18];
++extern char pcapf[PCAPFSIZ];
++extern char suser[MAXLOGNAME];
++extern int ethers_update;
++extern int fake_regen;
++extern int fake_num;
++extern int fake_time;
++extern int buffer_num;
++extern int addr_nosubst;
++extern int nofirst;
++extern int grant;
++extern int read_only;
++extern int duplex;
++extern int fixbc;
++extern int hidden;
++extern int promisc;
++extern int debug;
++extern int verbose;
+
+-unsigned int all, good, grat, wgrat, zmac, zip, bad, bmac, bsip, btip,
++extern unsigned int all, good, grat, wgrat, zmac, zip, bad, bmac, bsip, btip,
+ bnew, bgrat, mymac, fake, pfake, nzh, nbe, mis;
+-char pfmac[18];
+-char s[128+1];
++extern char pfmac[18];
++extern char s[128+1];
+
+ /* ethers.c
+ */
diff --git a/net-analyzer/ipguard/files/ipguard-1.04-gentoo.patch b/net-analyzer/ipguard/files/ipguard-1.04-gentoo.patch
new file mode 100644
index 000000000000..7d66038581b2
--- /dev/null
+++ b/net-analyzer/ipguard/files/ipguard-1.04-gentoo.patch
@@ -0,0 +1,50 @@
+--- a/Makefile
++++ b/Makefile
+@@ -28,13 +28,13 @@
+ STATIC=
+ CC=gcc
+
+-CFLAGS+=-g -Wall -DETHERS='"$(ETHERS)"'
++CFLAGS+=-Wall -DETHERS='"$(ETHERS)"'
+
+ OBJS=ethers.o ipguard.o packet.o system.o
+
+ .c.o:
+ @echo Compiling $*.c
+- @$(CC) -c $(CFLAGS) $(INCLUDES) $(DEFINES) $<
++ $(CC) -c $(CFLAGS) $(INCLUDES) $(DEFINES) $<
+
+ all: start $(NAME)
+
+@@ -47,7 +47,7 @@
+
+ $(NAME): $(OBJS)
+ @echo Linking $@
+- @$(CC) -o $@ $(OBJS) $(LIBS) $(STATIC)
++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OBJS) $(LIBS) $(STATIC)
+
+ clean:
+ @echo Cleaning OBJS
+@@ -58,16 +58,16 @@
+ @rm -f $(NAME)
+
+ install: all
+- mkdir -p -m 755 $(PREFIX)/sbin
+- install -s -m 755 $(NAME) $(PREFIX)/sbin/$(NAME)
+- mkdir -p -m 755 $(PREFIX)/man/man8
+- install -m 644 doc/$(NAME).8 $(PREFIX)/man/man8/$(NAME).8
++ mkdir -p -m 755 ${D}$(PREFIX)/sbin
++ install -m 755 $(NAME) ${D}$(PREFIX)/sbin/$(NAME)
++ mkdir -p -m 755 ${D}$(PREFIX)/share/man/man8
++ install -m 644 doc/$(NAME).8 ${D}$(PREFIX)/share/man/man8/$(NAME).8
+
+ uninstall: deinstall
+
+ deinstall:
+- rm -f $(PREFIX)/man/man8/$(NAME).8
+- rm -f $(PREFIX)/sbin/$(NAME)
++ rm -f ${D}$(PREFIX)/share/man/man8/$(NAME).8
++ rm -f ${D}$(PREFIX)/sbin/$(NAME)
+
+ ethers.o: ipguard.h
+ ipguard.o: ipguard.h
diff --git a/net-analyzer/ipguard/files/ipguard-1.04-init.d.patch b/net-analyzer/ipguard/files/ipguard-1.04-init.d.patch
new file mode 100644
index 000000000000..447d818bf965
--- /dev/null
+++ b/net-analyzer/ipguard/files/ipguard-1.04-init.d.patch
@@ -0,0 +1,36 @@
+--- a/doc/ipguard.gentoo
++++ b/doc/ipguard.gentoo
+@@ -1,7 +1,7 @@
+ #! /sbin/runscript
+ ## $Id: ipguard.gentoo,v 1.5 2010/07/12 03:46:52 sead Exp $
+
+-opts="reload"
++extra_commands="reload"
+
+ depend() {
+ use net
+@@ -9,20 +9,20 @@
+
+ start() {
+ ebegin "Starting ipguard"
+- start-stop-daemon --start --quiet --pidfile /var/run/ipguard.pid \
+- --exec /usr/sbin/ipguard -- -u 300 -xz
++ start-stop-daemon --start --quiet --pidfile /run/ipguard.pid \
++ --exec /usr/sbin/ipguard -- ${OPTS} ${IFACE}
+ eend $?
+ }
+
+ stop() {
+ ebegin "Stopping ipguard"
+- start-stop-daemon --stop --quiet --pidfile /var/run/ipguard.pid
++ start-stop-daemon --stop --quiet --pidfile /run/ipguard.pid
+ eend $?
+ }
+
+ reload() {
+ ebegin "Reloading ipguard"
+- start-stop-daemon --stop --quiet --pidfile /var/run/ipguard.pid \
++ start-stop-daemon --stop --quiet --pidfile /run/ipguard.pid \
+ --signal HUP
+ eend $?
+ }
diff --git a/net-analyzer/ipguard/files/ipguard-1.04-runpath.patch b/net-analyzer/ipguard/files/ipguard-1.04-runpath.patch
new file mode 100644
index 000000000000..930f2cc84fde
--- /dev/null
+++ b/net-analyzer/ipguard/files/ipguard-1.04-runpath.patch
@@ -0,0 +1,11 @@
+--- a/ipguard.h
++++ b/ipguard.h
+@@ -53,7 +53,7 @@
+
+ #define ETHERSFILE ETHERS
+ #define LOGNAME "/var/log/ipguard"
+-#define PIDNAME "/var/run/ipguard"
++#define PIDNAME "/run/ipguard"
+ #define FAKEMAC "de:ad:xx:xx:xx:xx"
+ #define PCAPFSIZ 128
+
diff --git a/net-analyzer/ipguard/files/ipguard.confd b/net-analyzer/ipguard/files/ipguard.confd
new file mode 100644
index 000000000000..fc7fb66cd46c
--- /dev/null
+++ b/net-analyzer/ipguard/files/ipguard.confd
@@ -0,0 +1,8 @@
+# ipguard configuration file
+
+# IFACE - the name of the network interface you want to monitor
+# IFACE=eth0
+IFACE=eth0
+
+# OPTS - command line options (see ipguard(8)
+OPTS="-u 300 -xz -r"
diff --git a/net-analyzer/ipguard/ipguard-1.04-r1.ebuild b/net-analyzer/ipguard/ipguard-1.04-r1.ebuild
new file mode 100644
index 000000000000..0b9d630790e5
--- /dev/null
+++ b/net-analyzer/ipguard/ipguard-1.04-r1.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+DESCRIPTION="Tool designed to protect LAN IP adress space by ARP spoofing"
+HOMEPAGE="http://ipguard.deep.perm.ru/"
+SRC_URI="http://ipguard.deep.perm.ru/files/${P}.tar.gz"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="
+ net-libs/libnet:1.1
+ net-libs/libpcap
+"
+RDEPEND="${DEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-gentoo.patch
+ "${FILESDIR}"/${P}-init.d.patch
+ "${FILESDIR}"/${P}-runpath.patch
+ "${FILESDIR}"/${P}-fno-common.patch
+)
+
+src_compile() {
+ emake \
+ CC="$(tc-getCC)" \
+ LIBNET_CONFIG="$(tc-getPKG_CONFIG) libnet" \
+ PREFIX=\""${EPREFIX:-/usr}"\"
+}
+
+src_install() {
+ emake \
+ DESTDIR="${D}" \
+ LIBNET_CONFIG="$(tc-getPKG_CONFIG) libnet" \
+ PREFIX=\""${EPREFIX:-/usr}"\" \
+ install
+
+ newinitd doc/${PN}.gentoo ${PN}
+ newconfd "${FILESDIR}"/${PN}.confd ${PN}
+ dodoc doc/{NEWS,README*,ethers.sample}
+}
diff --git a/net-analyzer/ipguard/metadata.xml b/net-analyzer/ipguard/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/ipguard/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/iplog/Manifest b/net-analyzer/iplog/Manifest
new file mode 100644
index 000000000000..39a7d9ae2915
--- /dev/null
+++ b/net-analyzer/iplog/Manifest
@@ -0,0 +1 @@
+DIST iplog-2.2.3.tar.gz 133639 BLAKE2B f8108259f3f9b662297785988c40711d9d4ce6381377ed9a797f441c84fd1dcd9f0c3832e07ed9a660ddcc41bc52777136204274de873b72bce151327738ec2d SHA512 d7669e39b728af366b5199c58d396c6907496b4895ffb1ba0cba54fae0646f9792170f932de1eae9634b5ac356644a5d6d0ccaf7bc77a62641695992245c9aed
diff --git a/net-analyzer/iplog/files/2.2.3-DLT_LINUX_SSL.patch b/net-analyzer/iplog/files/2.2.3-DLT_LINUX_SSL.patch
new file mode 100644
index 000000000000..84a447af4f9f
--- /dev/null
+++ b/net-analyzer/iplog/files/2.2.3-DLT_LINUX_SSL.patch
@@ -0,0 +1,134 @@
+--- a/src/iplog_options.c
++++ b/src/iplog_options.c
+@@ -440,58 +440,58 @@
+
+ static void print_help(void) {
+ mysyslog(
+-"Usage: " PACKAGE " [options] (\"*\" Denotes enabled by default)
+---user or -u <user|UID> Run as specified the user or UID.
+---group or -g <group|GID> Run with specified the group or GID.
+---logfile or -l <file> Log to <file>.
+---pid-file <file> Use <file> as the pid file.
+---ignore or -d Ignore DNS traffic from nameservers listed in
+- /etc/resolv.conf.
+---interface or -i <if0,...,ifN> Listen on the specified interface(s).
+---promisc or -a <network> Log traffic to all hosts on <network>.
+---kill or -k Kill iplog, if it is running.
+---restart or -R Restart iplog, if it is running.
+---no-fork or -o Run in the foreground.
+---stdout or -L Log to stdout.
+---help or -h This help screen.
+---version or -v Print version information and exit.
+-
+---facility <facility> Use the specified syslog facility.
+---priority <priority> Use the specified syslog priority.
+-
+---tcp[=true|false|toggle] %cLog TCP traffic.
+---udp[=true|false|toggle] %cLog UDP traffic.
+---icmp[=true|false|toggle] %cLog ICMP traffic.
+-
+---log-ip[=true|false|toggle] or -w %cLog IP along with hostname.
+---log-dest[=true|false|toggle] or -D %cLog the destination of traffic.
+---dns-cache[=true|false|toggle] or -c %cUse the built-in DNS cache.
+---get-ident[=true|false|toggle] or -e %cGet ident info on connections
+- to listening ports.
+-
+---tcp-resolve[=true|false|toggle] or -T %cResolve IPs of TCP traffic.
+---udp-resolve[=true|false|toggle] or -U %cResolve IPs of UDP traffic.
+---icmp-resolve[=true|false|toggle] or -I %cResolve IPs of ICMP traffic.
+---disable-resolver or -N %cDo not resolve any IPs.
+-
+---verbose[=true|false|toggle] or -V %cBe verbose.
+---fool-nmap[=true|false|toggle] or -z %cFool nmap's OS detection.
+---scans-only[=true|false|toggle] or -m %cOnly log scans.
+---detect-syn-flood[=true|false|toggle] or -s %cStop resolving IPs if a
+- SYN flood is detected.
+-
+---log-frag[=true|false|toggle] or -y %cLog fragment attacks.
+---log-traceroute[=true|false|toggle] or -t %cLog traceroutes.
+---log-ping-flood[=true|false|toggle] or -P %cLog ICMP ping floods.
+---log-smurf[=true|false|toggle] or -S %cLog smurf attacks.
+---log-bogus[=true|false|toggle] or -b %cLog bogus TCP flags.
+---log-portscan[=true|false|toggle] or -p %cLog port scans.
+---log-udp-scan[=true|false|toggle] or -F %cLog UDP scans/floods.
+---log-fin-scan[=true|false|toggle] or -f %cLog FIN scans.
+---log-syn-scan[=true|false|toggle] or -q %cLog SYN scans.
+---log-xmas-scan[=true|false|toggle] or -x %cLog Xmas scans.
+---log-null-scan[=true|false|toggle] or -n %cLog null scans.",
+-IS_DEFAULT(LOG_TCP), IS_DEFAULT(LOG_UDP), IS_DEFAULT(LOG_ICMP),
++"Usage: %s [options] (\"*\" Denotes enabled by default)\n"
++"--user or -u <user|UID> Run as specified the user or UID.\n"
++"--group or -g <group|GID> Run with specified the group or GID.\n"
++"--logfile or -l <file> Log to <file>.\n"
++"--pid-file <file> Use <file> as the pid file.\n"
++"--ignore or -d Ignore DNS traffic from nameservers listed in\n"
++" /etc/resolv.conf.\n"
++"--interface or -i <if0,...,ifN> Listen on the specified interface(s).\n"
++"--promisc or -a <network> Log traffic to all hosts on <network>.\n"
++"--kill or -k Kill iplog, if it is running.\n"
++"--restart or -R Restart iplog, if it is running.\n"
++"--no-fork or -o Run in the foreground.\n"
++"--stdout or -L Log to stdout.\n"
++"--help or -h This help screen.\n"
++"--version or -v Print version information and exit.\n"
++"\n"
++"--facility <facility> Use the specified syslog facility.\n"
++"--priority <priority> Use the specified syslog priority.\n"
++"\n"
++"--tcp[=true|false|toggle] %cLog TCP traffic.\n"
++"--udp[=true|false|toggle] %cLog UDP traffic.\n"
++"--icmp[=true|false|toggle] %cLog ICMP traffic.\n"
++"\n"
++"--log-ip[=true|false|toggle] or -w %cLog IP along with hostname.\n"
++"--log-dest[=true|false|toggle] or -D %cLog the destination of traffic.\n"
++"--dns-cache[=true|false|toggle] or -c %cUse the built-in DNS cache.\n"
++"--get-ident[=true|false|toggle] or -e %cGet ident info on connections\n"
++" to listening ports.\n"
++"\n"
++"--tcp-resolve[=true|false|toggle] or -T %cResolve IPs of TCP traffic.\n"
++"--udp-resolve[=true|false|toggle] or -U %cResolve IPs of UDP traffic.\n"
++"--icmp-resolve[=true|false|toggle] or -I %cResolve IPs of ICMP traffic.\n"
++"--disable-resolver or -N %cDo not resolve any IPs.\n"
++"\n"
++"--verbose[=true|false|toggle] or -V %cBe verbose.\n"
++"--fool-nmap[=true|false|toggle] or -z %cFool nmap's OS detection.\n"
++"--scans-only[=true|false|toggle] or -m %cOnly log scans.\n"
++"--detect-syn-flood[=true|false|toggle] or -s %cStop resolving IPs if a\n"
++" SYN flood is detected.\n"
++"\n"
++"--log-frag[=true|false|toggle] or -y %cLog fragment attacks.\n"
++"--log-traceroute[=true|false|toggle] or -t %cLog traceroutes.\n"
++"--log-ping-flood[=true|false|toggle] or -P %cLog ICMP ping floods.\n"
++"--log-smurf[=true|false|toggle] or -S %cLog smurf attacks.\n"
++"--log-bogus[=true|false|toggle] or -b %cLog bogus TCP flags.\n"
++"--log-portscan[=true|false|toggle] or -p %cLog port scans.\n"
++"--log-udp-scan[=true|false|toggle] or -F %cLog UDP scans/floods.\n"
++"--log-fin-scan[=true|false|toggle] or -f %cLog FIN scans.\n"
++"--log-syn-scan[=true|false|toggle] or -q %cLog SYN scans.\n"
++"--log-xmas-scan[=true|false|toggle] or -x %cLog Xmas scans.\n"
++"--log-null-scan[=true|false|toggle] or -n %cLog null scans.",
++PACKAGE, IS_DEFAULT(LOG_TCP), IS_DEFAULT(LOG_UDP), IS_DEFAULT(LOG_ICMP),
+ IS_DEFAULT(LOG_IP), IS_DEFAULT(LOG_DEST), IS_DEFAULT(DNS_CACHE),
+ IS_DEFAULT(GET_IDENT), IS_DEFAULT(TCP_RES), IS_DEFAULT(UDP_RES),
+ IS_DEFAULT(ICMP_RES), IS_DEFAULT(NO_RESOLV), IS_DEFAULT(VERBOSE),
+--- a/src/iplog_pcap.c
++++ b/src/iplog_pcap.c
+@@ -189,8 +189,16 @@
+ case DLT_PPP_BSDOS:
+ dlt = 24;
+ break;
+- case DLT_SLIP:
+- dlt = 16;
++#ifdef DLT_FDDI
++ case DLT_FDDI:
++ dlt = 21;
++ break;
++#endif
++ case DLT_SLIP:
++#ifdef DLT_LINUX_SLL
++ case DLT_LINUX_SLL:
++#endif
++ dlt = 16;
+ break;
+ case DLT_PPP:
+ case DLT_NULL:
diff --git a/net-analyzer/iplog/files/iplog-2.2.3-C23.patch b/net-analyzer/iplog/files/iplog-2.2.3-C23.patch
new file mode 100644
index 000000000000..8552f4de932a
--- /dev/null
+++ b/net-analyzer/iplog/files/iplog-2.2.3-C23.patch
@@ -0,0 +1,42 @@
+https://bugs.gentoo.org/945194 - guard bool for modern compilers
+https://bugs.gentoo.org/712644 - type aliaces for musl
+--- a/src/iplog.h
++++ b/src/iplog.h
+@@ -21,6 +21,8 @@
+ #ifndef __IPLOG_H
+ #define __IPLOG_H
+
++#include <sys/types.h> /* for u_* types */
++
+ #ifndef HAVE_IPADDR_T
+ typedef u_int32_t ipaddr_t;
+ #endif
+@@ -82,7 +82,9 @@
+ # define min(x,y) ((x) < (y) ? (x) : (y))
+ #endif
+
++#if __STDC_VERSION__ <= 201710L
+ typedef enum { false, true } bool;
++#endif
+
+ #ifdef HAVE_PATHS_H
+ # include <paths.h>
+Explicitly cast sockaddr_in to sockaddr, always correct thing to do in this situation.
+--- a/src/iplog_tcp.c 2025-02-16 22:16:15.486203469 +0400
++++ b/src/iplog_tcp.c 2025-02-16 22:16:58.045309444 +0400
+@@ -142,14 +142,11 @@
+ fn_sin.sin_port = tcp->th_sport;
+ fn_sin.sin_addr.s_addr = ip->ip_src.s_addr;
+
+ ret = sendto(raw_sock, (char *) xip,
+ sizeof(struct ip) + sizeof(struct tcphdr), 0,
+-#if !defined(__GLIBC__) || (__GLIBC__ < 2)
+- (struct sockaddr *)
+-#endif
+- &fn_sin,
++ (struct sockaddr *)&fn_sin,
+ sizeof(struct sockaddr_in));
+
+ if (ret == -1)
+ IDEBUG(("[%s:%d] sendto: %s", __FILE__, __LINE__, strerror(errno)));
+
diff --git a/net-analyzer/iplog/files/iplog.rc6 b/net-analyzer/iplog/files/iplog.rc6
new file mode 100644
index 000000000000..031f0ce3af7c
--- /dev/null
+++ b/net-analyzer/iplog/files/iplog.rc6
@@ -0,0 +1,36 @@
+#!/sbin/openrc-run
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ need net
+}
+
+pidfile=/var/run/iplog.pid
+
+start() {
+ ebegin "Starting iplog"
+ checkconfig
+ rc=$?
+ if [ $rc -eq 0 ]; then
+ start-stop-daemon --start --quiet --startas /usr/sbin/iplog \
+ --pidfile=${pidfile} --name=iplog
+ rc=$?
+ eend $rc "Failed to start iplog $rc"
+ else
+ eend $rc "/etc/iplog.conf does not exist!"
+ fi
+}
+
+stop() {
+ ebegin "Stopping iplog"
+ start-stop-daemon --stop --retry=5 --quiet --pidfile=${pidfile} --name=iplog
+ # due to a bug in the program, it doesn't properly remove it's pidfile sometimes
+ rm -f ${pidfile}
+ eend $? "Failed to stop iplog!"
+}
+
+checkconfig() {
+ [ -f /etc/iplog.conf ] || return 1
+ return 0
+}
diff --git a/net-analyzer/iplog/iplog-2.2.3-r3.ebuild b/net-analyzer/iplog/iplog-2.2.3-r3.ebuild
new file mode 100644
index 000000000000..445a905f4728
--- /dev/null
+++ b/net-analyzer/iplog/iplog-2.2.3-r3.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic toolchain-funcs
+
+DESCRIPTION="TCP/IP traffic logger"
+HOMEPAGE="https://ojnk.sourceforge.net/"
+SRC_URI="https://downloads.sourceforge.net/ojnk/${P}.tar.gz"
+
+LICENSE="|| ( GPL-2 FDL-1.1 )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ppc ~sparc x86"
+
+DEPEND="net-libs/libpcap"
+RDEPEND="${DEPEND}"
+
+PATCHES=( "${FILESDIR}"/${PV}-DLT_LINUX_SSL.patch )
+
+DOCS=( AUTHORS NEWS README TODO example-iplog.conf )
+
+src_compile() {
+ append-cppflags -D_REENTRANT
+ emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}" CPPFLAGS="${CPPFLAGS}" all
+}
+
+src_install() {
+ default
+ newinitd "${FILESDIR}"/iplog.rc6 iplog
+}
diff --git a/net-analyzer/iplog/iplog-2.2.3-r4.ebuild b/net-analyzer/iplog/iplog-2.2.3-r4.ebuild
new file mode 100644
index 000000000000..26c28a11b2d4
--- /dev/null
+++ b/net-analyzer/iplog/iplog-2.2.3-r4.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic toolchain-funcs autotools
+
+DESCRIPTION="TCP/IP traffic logger"
+HOMEPAGE="https://ojnk.sourceforge.net/"
+SRC_URI="https://downloads.sourceforge.net/ojnk/${P}.tar.gz"
+
+LICENSE="|| ( GPL-2 FDL-1.1 )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~ppc ~sparc x86"
+
+DEPEND="net-libs/libpcap"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}/${PV}-DLT_LINUX_SSL.patch"
+ "${FILESDIR}/${P}-C23.patch")
+
+DOCS=( AUTHORS NEWS README TODO example-iplog.conf )
+
+src_prepare() {
+ default
+
+ #https://bugs.gentoo.org/899936
+ #https://bugs.gentoo.org/875155
+ eautoreconf
+}
+
+src_compile() {
+ append-cppflags -D_REENTRANT
+ emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}" CPPFLAGS="${CPPFLAGS}" all
+}
+
+src_install() {
+ default
+ newinitd "${FILESDIR}"/iplog.rc6 iplog
+}
diff --git a/net-analyzer/iplog/metadata.xml b/net-analyzer/iplog/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/iplog/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/ippl/Manifest b/net-analyzer/ippl/Manifest
new file mode 100644
index 000000000000..31f32a3c1b9d
--- /dev/null
+++ b/net-analyzer/ippl/Manifest
@@ -0,0 +1 @@
+DIST ippl-1.4.14.tar.gz 54030 BLAKE2B 384747ea50e55e52695606538850958320afe53dbe3c71e42c90302dff0b535d2167d18a40f0b2953f941cda1aa238490bfe7b7fde8f675071668ea5f561af74 SHA512 3d71afc3ec7a0420cc9b269bf67dc008a777464c68d233dfbad4ee7a2dd2b960e114500e42866977e31b9dbeee26bbefea937fef8a09aa41cf87f96361ba0088
diff --git a/net-analyzer/ippl/files/ippl-1.4.14-fix-build-system.patch b/net-analyzer/ippl/files/ippl-1.4.14-fix-build-system.patch
new file mode 100644
index 000000000000..c6c65cb14d50
--- /dev/null
+++ b/net-analyzer/ippl/files/ippl-1.4.14-fix-build-system.patch
@@ -0,0 +1,44 @@
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -11,10 +11,10 @@
+ all: binary docs
+
+ binary: Makefile Source/Makefile
+- @cd Source && make && cd ..
++ @cd Source && $(MAKE) && cd ..
+
+ docs:
+- @cd Docs && make && cd ..
++ @cd Docs && $(MAKE) && cd ..
+
+ install: all
+ $(INSTALL) -d -m 755 $(SBINDIR)
+@@ -29,7 +29,7 @@
+ $(INSTALL) -m 644 Docs/ippl.conf.5 $(MANDIR)/man5/ippl.conf.5
+
+ clean:
+- @cd Source && make clean && cd .. && cd Docs && make clean && cd ..
++ @cd Source && $(MAKE) clean && cd .. && cd Docs && $(MAKE) clean && cd ..
+
+ distclean: clean
+ $(RM) *~ Makefile.common Makefile Source/Makefile Docs/Makefile build-stamp install-stamp
+--- a/Source/Makefile.in
++++ b/Source/Makefile.in
+@@ -10,7 +10,7 @@
+ CC=@CC@
+ CFLAGS=@CFLAGS@
+ WARNINGS=-Wall@PEDANTIC@
+-LDFLAGS=
++LDFLAGS=@LDFLAGS@
+
+ SRCS= main.c \
+ configuration.c \
+@@ -49,7 +49,7 @@
+ y.tab.c: ippl.y Makefile ../Makefile.common
+ $(YACC) -d $<
+
+-lex.yy.c: ippl.l Makefile ../Makefile.common
++lex.yy.c: ippl.l y.tab.c Makefile ../Makefile.common
+ $(LEX) $<
+
+ clean:
diff --git a/net-analyzer/ippl/files/ippl-1.4.14-format-warnings.patch b/net-analyzer/ippl/files/ippl-1.4.14-format-warnings.patch
new file mode 100644
index 000000000000..db6cfcd7e1d0
--- /dev/null
+++ b/net-analyzer/ippl/files/ippl-1.4.14-format-warnings.patch
@@ -0,0 +1,20 @@
+--- a/Source/log.c
++++ b/Source/log.c
+@@ -147,7 +147,7 @@
+ }
+
+ if (repeats > 0) {
+- snprintf(date, 27, asctime(localtime(&last_repeat)));
++ snprintf(date, 27, "%s", asctime(localtime(&last_repeat)));
+ snprintf(repeat_message, 40, "last message repeated %d time(s)\n", repeats);
+ write(fd, date+4, strlen(date)-10);
+ write(fd, " ", 1);
+@@ -155,7 +155,7 @@
+ repeats = 0;
+ }
+
+- snprintf(date, 27, asctime(localtime(&current)));
++ snprintf(date, 27, "%s", asctime(localtime(&current)));
+ write(fd, date+4, strlen(date)-10);
+ write(fd, " ", 1);
+ write(fd, entry, (strlen(entry) < 1023) ? strlen(entry) : 1023 );
diff --git a/net-analyzer/ippl/files/ippl-1.4.14-includes.patch b/net-analyzer/ippl/files/ippl-1.4.14-includes.patch
new file mode 100644
index 000000000000..12b2832fa342
--- /dev/null
+++ b/net-analyzer/ippl/files/ippl-1.4.14-includes.patch
@@ -0,0 +1,20 @@
+--- a/Source/filter.c
++++ b/Source/filter.c
+@@ -22,6 +22,7 @@
+
+ #include <stdlib.h>
+ #include <ctype.h>
++#include <string.h> /* memcpy() */
+
+ #include <fnmatch.h>
+
+--- a/Source/main.c
++++ b/Source/main.c
+@@ -37,6 +37,7 @@
+ #include <pwd.h>
+ #include <stdlib.h>
+ #include <getopt.h>
++#include <grp.h> /* initgroups() */
+
+ #include "defines.h"
+ #include "configuration.h"
diff --git a/net-analyzer/ippl/files/ippl-1.4.14-lto.patch b/net-analyzer/ippl/files/ippl-1.4.14-lto.patch
new file mode 100644
index 000000000000..2e26b6dbd9cf
--- /dev/null
+++ b/net-analyzer/ippl/files/ippl-1.4.14-lto.patch
@@ -0,0 +1,31 @@
+Holger Hoffstätte 2025-02-12 14:33:04 UTC
+As mentioned on IRC:
+
+The only uses of last_message in configuration.c are
+to initialize the buffer with a terminating null. It
+seems much easier to move the initialization to log.c
+and just remove the declaration/initialization from
+configuration.c.
+
+As there is already an initialisation of the buffer
+in log.c all that's needed is to zap the two unnecessary
+lines:
+
+--- a/Source/configuration.c
++++ b/Source/configuration.c
+@@ -67,7 +67,6 @@ void set_default_values() {
+ extern unsigned short log_closing;
+ extern unsigned short use_ident;
+ extern unsigned int repeats;
+- extern char *last_message;
+
+ dns_expire = DNS_EXPIRE;
+ log_protocols = NONE;
+@@ -79,7 +78,6 @@ void set_default_values() {
+ log_closing = FALSE;
+ use_ident = FALSE;
+ repeats = 0;
+- last_message = '\0';
+ }
+
+ void parse_config_file(char *filename) {
diff --git a/net-analyzer/ippl/files/ippl-1.4.14-manpage.patch b/net-analyzer/ippl/files/ippl-1.4.14-manpage.patch
new file mode 100644
index 000000000000..d17e5939cdee
--- /dev/null
+++ b/net-analyzer/ippl/files/ippl-1.4.14-manpage.patch
@@ -0,0 +1,15 @@
+patch by Marc Haber <mh+debian-packages@zugschlus.de>
+
+--- a/Docs/ippl.conf.man
++++ b/Docs/ippl.conf.man
+@@ -222,9 +222,7 @@
+ .SS Protocol
+ .PP
+ protocol is one of the supported protocols (see the protocols
+-section), except the
+-.I all
+-keyword, which is not supported.
++section).
+
+ .SS Description
+ .PP
diff --git a/net-analyzer/ippl/files/ippl-1.4.14-musl.patch b/net-analyzer/ippl/files/ippl-1.4.14-musl.patch
new file mode 100644
index 000000000000..44596aac3b4a
--- /dev/null
+++ b/net-analyzer/ippl/files/ippl-1.4.14-musl.patch
@@ -0,0 +1,301 @@
+Add missing includes. For some non-POSIX integer types and open()
+Rename global logging facility so it won't try to shadow musl-provided symbol
+and cause build failures
+udphdr union has two variants - RFC and BSD flavors, glibc uses union,
+musl uses BSD flavor in netinet/udp.h with linux/udp.h for RFC flavor.
+Switched header to linux.
+https://bugs.gentoo.org/716916
+https://bugs.gentoo.org/731184
+--- a/Source/defines.h
++++ b/Source/defines.h
+@@ -62,6 +62,7 @@
+
+ /* Useful types */
+ #ifndef _I386_TYPES_H
++#include <sys/types.h>
+ typedef u_int32_t __u32;
+ typedef u_int16_t __u16;
+ typedef u_int8_t __u8;
+--- a/Source/pidfile.c
++++ b/Source/pidfile.c
+@@ -31,6 +31,7 @@
+ #include <string.h>
+ #include <errno.h>
+ #include <signal.h>
++#include <fcntl.h>
+
+ /* read_pid
+ *
+--- a/Source/configuration.c
++++ b/Source/configuration.c
+@@ -39,11 +39,11 @@
+
+ FILE *open_configuration(char *name) {
+ FILE *configfile;
+- extern struct loginfo log;
++ extern struct loginfo local_log;
+
+ configfile = fopen(name, "r");
+ if (configfile == NULL) {
+- log.log(log.level_or_fd, "Cannot open configuration file %s.\n", name);
++ local_log.log(local_log.level_or_fd, "Cannot open configuration file %s.\n", name);
+ exit(1);
+ }
+ return configfile;
+--- a/Source/icmp.c
++++ b/Source/icmp.c
+@@ -46,7 +46,7 @@
+ int icmp_socket;
+
+ struct loginfo icmp_log;
+-extern struct loginfo log;
++extern struct loginfo local_log;
+ extern unsigned short resolve_protocols;
+
+ /*
+@@ -299,7 +299,7 @@
+ icmp_socket = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP);
+ if (icmp_socket <= 0) {
+ int error = errno;
+- log.log(log.level_or_fd, "FATAL: Unable to open icmp raw socket\nERROR No: %d\nERROR : %s", error, strerror(error));
++ local_log.log(local_log.level_or_fd, "FATAL: Unable to open icmp raw socket\nERROR No: %d\nERROR : %s", error, strerror(error));
+ exit(1);
+ }
+
+@@ -311,7 +311,7 @@
+
+ for(;;) {
+ if (read(icmp_socket, (__u8 *) &pkt, ICMP_CAPTURE_LENGTH) == -1) {
+- log.log(log.level_or_fd, "FATAL: Unable to read icmp raw socket");
++ local_log.log(local_log.level_or_fd, "FATAL: Unable to read icmp raw socket");
+ exit(1);
+ }
+
+--- a/Source/log.c
++++ b/Source/log.c
+@@ -32,7 +32,7 @@
+
+ #include "log.h"
+
+-extern struct loginfo log;
++extern struct loginfo local_log;
+
+ /* Mutex either for stdout or for a file */
+ pthread_mutex_t log_mutex = PTHREAD_MUTEX_INITIALIZER;
+@@ -193,7 +193,7 @@
+
+ *fd = open((const char *) filename, O_WRONLY | O_APPEND | O_CREAT, 0640);
+ if (*fd == 0) {
+- log.log(log.level_or_fd, "Can't open log file %s.", filename);
++ local_log.log(local_log.level_or_fd, "Can't open log file %s.", filename);
+ }
+ }
+
+--- a/Source/main.c
++++ b/Source/main.c
+@@ -54,7 +54,7 @@
+ #endif
+
+ /* Logging mechanism */
+-struct loginfo log;
++struct loginfo local_log;
+
+ /* Do we have to run as a daemon? */
+ int run_as_daemon = TRUE;
+@@ -127,17 +127,17 @@
+
+ account = getpwnam(used_user);
+ if (!account) {
+- log.log(log.level_or_fd, "WARNING: I cannot find the \"%s\" account. Not spawning threads.", used_user);
++ local_log.log(local_log.level_or_fd, "WARNING: I cannot find the \"%s\" account. Not spawning threads.", used_user);
+ log_protocols = NONE;
+ return;
+ }
+
+ if (!strcmp(used_user, "root")) {
+- log.log(log.level_or_fd, "WARNING: Using root account to run threads!");
++ local_log.log(local_log.level_or_fd, "WARNING: Using root account to run threads!");
+ }
+
+ if (log_protocols == NONE) {
+- log.log(log.level_or_fd, "WARNING: Nothing to log.");
++ local_log.log(local_log.level_or_fd, "WARNING: Nothing to log.");
+ return;
+ }
+
+@@ -309,7 +309,7 @@
+
+ /* Check PID */
+ if (check_pid(PID_FILE)) {
+- log.log(log.level_or_fd, "Already running. Exiting...");
++ local_log.log(local_log.level_or_fd, "Already running. Exiting...");
+ exit(1);
+ }
+
+@@ -323,7 +323,7 @@
+
+ /* Write PID file */
+ if (!write_pid(PID_FILE)) {
+- log.log(log.level_or_fd, "Can't write pid.\n");
++ local_log.log(local_log.level_or_fd, "Can't write pid.\n");
+ exit(1);
+ }
+
+@@ -360,7 +360,7 @@
+ (void) remove_pid(PID_FILE);
+ }
+
+- log.log(log.level_or_fd, "IP Protocols Logger: stopped (signal %d).", sig);
++ local_log.log(local_log.level_or_fd, "IP Protocols Logger: stopped (signal %d).", sig);
+
+ exit(0);
+ }
+@@ -372,8 +372,8 @@
+ */
+ void sighup(int sig) {
+ // DEPRECATED - reload_configuration();
+- // log.log(log.level_or_fd, "IP Protocols Logger: reloaded configuration.");
+- log.log(log.level_or_fd, "IP Protocols Logger: reload configuration is unsupported.");
++ // local_log.log(local_log.level_or_fd, "IP Protocols Logger: reloaded configuration.");
++ local_log.log(local_log.level_or_fd, "IP Protocols Logger: reload configuration is unsupported.");
+ die(sig);
+ signal(SIGHUP, sighup);
+ }
+@@ -412,15 +412,15 @@
+ if (configuration_file == NULL)
+ configuration_file = strdup(CONFIGURATION_FILE);
+
+- init_loginfo(&log);
+- log.open(&log.level_or_fd, log.file);
++ init_loginfo(&local_log);
++ local_log.open(&local_log.level_or_fd, local_log.file);
+
+ if (run_as_daemon) {
+ go_background();
+ }
+
+ start_all_threads();
+- log.log(log.level_or_fd, "IP Protocols Logger: started.");
++ local_log.log(local_log.level_or_fd, "IP Protocols Logger: started.");
+
+ for(;;) {
+ sleep(dns_expire);
+--- a/Source/netutils.c
++++ b/Source/netutils.c
+@@ -34,7 +34,7 @@
+ #include "netutils.h"
+ #include "log.h"
+
+-extern struct loginfo log;
++extern struct loginfo local_log;
+
+ /* Mutexes */
+ pthread_mutex_t service_mutex = PTHREAD_MUTEX_INITIALIZER;
+@@ -96,7 +96,7 @@
+ pthread_mutex_unlock(&dns_mutex);
+
+ #ifdef CACHE_DEBUG
+- log.log(log.level_or_fd, "DEBUG cache: cleared %d entries", dbg_freed);
++ local_log.log(local_log.level_or_fd, "DEBUG cache: cleared %d entries", dbg_freed);
+ #endif
+ }
+
+@@ -121,7 +121,7 @@
+
+ #ifdef CACHE_DEBUG
+ if (dbg_calls % DUMP_EVERY == 0)
+- log.log(log.level_or_fd, "DEBUG cache: %d calls - %d misses", dbg_calls, dbg_missed);
++ local_log.log(local_log.level_or_fd, "DEBUG cache: %d calls - %d misses", dbg_calls, dbg_missed);
+
+ dbg_calls++;
+ #endif
+@@ -165,8 +165,8 @@
+ #endif
+ res = perform_lookup(host, in);
+ #ifdef CACHE_DEBUG
+- log.log(log.level_or_fd, "DEBUG cache: result of lookup - %s", host);
+- log.log(log.level_or_fd, "DEBUG cache: replacing (%d; %d; %d; %s)", key, table[key].ip, table[key].dirty, table[key].name);
++ local_log.log(local_log.level_or_fd, "DEBUG cache: result of lookup - %s", host);
++ local_log.log(local_log.level_or_fd, "DEBUG cache: replacing (%d; %d; %d; %s)", key, table[key].ip, table[key].dirty, table[key].name);
+ #endif
+ /* Now host contains the correct value; store it in the table */
+ table[key].ip = in;
+--- a/Source/tcp.c
++++ b/Source/tcp.c
+@@ -51,7 +51,7 @@
+ int tcp_socket;
+
+ struct loginfo tcp_log;
+-extern struct loginfo log;
++extern struct loginfo local_log;
+ extern unsigned short resolve_protocols;
+ extern unsigned short portresolve_protocols;
+
+@@ -262,7 +262,7 @@
+ tcp_socket = socket(AF_INET, SOCK_RAW, IPPROTO_TCP);
+ if (tcp_socket <= 0) {
+ int error = errno;
+- log.log(log.level_or_fd, "FATAL: Unable to open tcp raw socket\nERROR No: %d\nERROR : %s", error, strerror(error));
++ local_log.log(local_log.level_or_fd, "FATAL: Unable to open tcp raw socket\nERROR No: %d\nERROR : %s", error, strerror(error));
+ exit(1);
+ }
+
+@@ -274,7 +274,7 @@
+
+ for(;;) {
+ if (read(tcp_socket, (__u8 *) &pkt, TCP_CAPTURE_LENGTH) == -1) {
+- log.log(log.level_or_fd, "FATAL: Unable to read tcp raw socket");
++ local_log.log(local_log.level_or_fd, "FATAL: Unable to read tcp raw socket");
+ exit(1);
+ }
+
+--- a/Source/ippl.y
++++ b/Source/ippl.y
+@@ -535,7 +535,7 @@
+ */
+
+ void print_error(char *s, int l) {
+- extern struct loginfo log;
++ extern struct loginfo local_log;
+
+- log.log(log.level_or_fd, "CFG: Parse error line %d: %s",l,s);
++ local_log.log(local_log.level_or_fd, "CFG: Parse error line %d: %s",l,s);
+ }
+--- a/Source/udp.c
++++ b/Source/udp.c
+@@ -21,7 +21,7 @@
+ #include <netinet/in.h>
+ #include <arpa/inet.h>
+ #include <netinet/ip.h>
+-#include <netinet/udp.h>
++#include <linux/udp.h>
+ #include <sys/types.h>
+ #include <sys/socket.h>
+ #include <netdb.h>
+@@ -48,7 +48,7 @@
+ extern unsigned short resolve_protocols;
+
+ struct loginfo udp_log;
+-extern struct loginfo log;
++extern struct loginfo local_log;
+
+ /*
+ * Structure of a UDP packet
+@@ -141,7 +141,7 @@
+ udp_socket = socket(AF_INET, SOCK_RAW, IPPROTO_UDP);
+ if (udp_socket <= 0) {
+ int error = errno;
+- log.log(log.level_or_fd, "FATAL: Unable to open udp raw socket\nERROR No: %d\nERROR : %s", error, strerror(error));
++ local_log.log(local_log.level_or_fd, "FATAL: Unable to open udp raw socket\nERROR No: %d\nERROR : %s", error, strerror(error));
+ exit(1);
+ }
+
+@@ -153,7 +153,7 @@
+
+ for(;;) {
+ if (read(udp_socket, (__u8 *) &pkt, UDP_CAPTURE_LENGTH) == -1) {
+- log.log(log.level_or_fd, "FATAL: Unable to read udp raw socket");
++ local_log.log(local_log.level_or_fd, "FATAL: Unable to read udp raw socket");
+ exit(1);
+ }
+
diff --git a/net-analyzer/ippl/files/ippl-1.4.14-noportresolve.patch b/net-analyzer/ippl/files/ippl-1.4.14-noportresolve.patch
new file mode 100644
index 000000000000..919623040f7f
--- /dev/null
+++ b/net-analyzer/ippl/files/ippl-1.4.14-noportresolve.patch
@@ -0,0 +1,347 @@
+patch by Marc Haber <mh+debian-packages@zugschlus.de>
+
+--- a/Docs/ippl.conf.man
++++ b/Docs/ippl.conf.man
+@@ -92,6 +92,13 @@
+ .PP
+ By default, IP address resolution is disabled for all the protocols.
+
++Ippl by default resolves tcp/udp port numbers to their respective
++service names. If you pass a protocol to the noportresolve option,
++ippl logs the port number instead. This is a Debian specific extension.
++
++By default service resolving is enabled, since this is the behaviour
++of the upstream program.
++
+ .SH LOGGING FORMAT
+
+ .BR ippl
+@@ -198,6 +205,12 @@
+ .I noresolve
+ disable IP address resolution.
+ .PP
++.I portresolve
++enable IP service resolution.
++.PP
++.I noportresolve
++disable IP service resolution.
++.PP
+ .I ident
+ use ident logging (only for TCP).
+ .PP
+
+--- a/Source/configuration.c
++++ b/Source/configuration.c
+@@ -60,6 +60,7 @@
+ extern unsigned int dns_expire;
+ extern unsigned short log_protocols;
+ extern unsigned short resolve_protocols;
++ extern unsigned short portresolve_protocols;
+ extern unsigned short icmp_format;
+ extern unsigned short tcp_format;
+ extern unsigned short udp_format;
+@@ -71,6 +72,7 @@
+ dns_expire = DNS_EXPIRE;
+ log_protocols = NONE;
+ resolve_protocols = 0; /* Do not resolve by default */
++ portresolve_protocols = RUN_TCP | RUN_UDP | RUN_ICMP; /* Resolve by default */
+ icmp_format = LOGFORMAT_NORMAL;
+ tcp_format = LOGFORMAT_NORMAL;
+ udp_format = LOGFORMAT_NORMAL;
+
+--- a/Source/filter.c
++++ b/Source/filter.c
+@@ -46,6 +46,7 @@
+
+ extern unsigned short use_ident;
+ extern unsigned short resolve_protocols;
++extern unsigned short portresolve_protocols;
+ extern unsigned short icmp_format;
+ extern unsigned short tcp_format;
+ extern unsigned short udp_format;
+@@ -66,7 +67,7 @@
+ #ifdef FILTER_DEBUG
+ void display_info(struct log_info *info, int entries) {
+
+- log.log(log.level_or_fd, "DBG: (e:%d) log:%d ident:%d resolve:%d closing:%d format:%d", entries, info->log, info->ident, info->resolve, info->logclosing, info->logformat);
++ log.log(log.level_or_fd, "DBG: (e:%d) log:%d ident:%d resolve:%d portresolve: %d, closing:%d format:%d", entries, info->log, info->ident, info->resolve, info->portresolve, info->logclosing, info->logformat);
+ }
+ #endif
+
+@@ -200,6 +201,19 @@
+ break;
+ }
+ }
++ if (info->portresolve == -1) {
++ switch (protocol) {
++ case IPPROTO_ICMP:
++ info->portresolve = portresolve_protocols & RUN_ICMP;
++ break;
++ case IPPROTO_TCP:
++ info->portresolve = portresolve_protocols & RUN_TCP;
++ break;
++ case IPPROTO_UDP:
++ info->portresolve = portresolve_protocols & RUN_UDP;
++ break;
++ }
++ }
+ }
+
+ struct log_info do_log(const __u32 from, const __u32 to, const __u16 type, const __u16 srctype, const short protocol) {
+@@ -244,6 +258,7 @@
+ info.log = p->log;
+ info.ident = p->ident;
+ info.resolve = p->resolve;
++ info.portresolve = p->portresolve;
+ info.logformat = p->logformat;
+ info.logclosing = p->logclosing;
+ set_defaults(protocol, &info);
+@@ -265,6 +280,7 @@
+ info.log = p->log;
+ info.ident = p->ident;
+ info.resolve = p->resolve;
++ info.portresolve = p->portresolve;
+ info.logformat = p->logformat;
+ set_defaults(protocol, &info);
+ #ifdef FILTER_DEBUG
+@@ -280,7 +296,7 @@
+ info.log = TRUE;
+ info.ident = use_ident;
+ info.logclosing = log_closing;
+- info.logformat = info.resolve = -1;
++ info.logformat = info.resolve = info.portresolve = -1;
+ set_defaults(protocol, &info);
+
+ #ifdef FILTER_DEBUG
+
+--- a/Source/filter.h
++++ b/Source/filter.h
+@@ -53,6 +53,7 @@
+ struct filter_entry {
+ short log; /* TRUE for "log", FALSE for "ignore" */
+ short ident; /* TRUE if we should use ident */
++ short portresolve; /* TRUE if we should resolve TCP/UDP services */
+ short resolve; /* TRUE if we should resolve IP addresses */
+ short logformat; /* format used to log */
+ short logclosing; /* TRUE to log closing TCP connections */
+@@ -72,6 +73,7 @@
+ short log;
+ short ident;
+ short resolve;
++ short portresolve;
+ short logclosing;
+ short logformat;
+ };
+
+--- a/Source/ippl.l
++++ b/Source/ippl.l
+@@ -75,6 +75,9 @@
+ [lL][oO][gG][cC][lL][oO][sS][iI][nN][gG] return LOGCLOSING;
+ [nN][oO][lL][oO][gG][cC][lL][oO][sS][iI][nN][gG] return NOLOGCLOSING;
+
++[nN][oO][pP][oO][rR][tT][rR][eE][sS][oO][lL][vV][eE] return NOPORTRESOLVE;
++[pP][oO][rR][tT][rR][eE][sS][oO][lL][vV][eE] return PORTRESOLVE;
++
+ [nN][oO][rR][eE][sS][oO][lL][vV][eE] return NORESOLVE;
+ [rR][eE][sS][oO][lL][vV][eE] return RESOLVE;
+
+
+--- a/Source/ippl.y
++++ b/Source/ippl.y
+@@ -61,6 +61,7 @@
+
+ /* Should name resolving be done? */
+ unsigned short resolve_protocols;
++unsigned short portresolve_protocols;
+
+ /* Logging format for each protocol */
+ unsigned short icmp_format;
+@@ -100,7 +101,7 @@
+ %token<stringval> IP HOSTMASK IDENTIFIER FILENAME
+ %token<longval> NUMBER
+
+-%token LOGFORMAT DETAILED SHORT NORMAL RESOLVE NORESOLVE IDENT NOIDENT LOGCLOSING NOLOGCLOSING
++%token LOGFORMAT DETAILED SHORT NORMAL RESOLVE NORESOLVE IDENT NOIDENT LOGCLOSING NOLOGCLOSING PORTRESOLVE NOPORTRESOLVE
+ %token RUN RUNAS EXPIRE LOG_IN LOG IGNORE FROM TO TYPE PORT SRCPORT OPTION COMMA
+ %token ICMP TCP UDP ALL
+
+@@ -138,6 +139,11 @@
+ | NORESOLVE ProtoList EOL
+ { resolve_protocols &= ~$2; }
+
++ | PORTRESOLVE ProtoList EOL
++ { portresolve_protocols |= $2; }
++ | NOPORTRESOLVE ProtoList EOL
++ { portresolve_protocols &= ~$2; }
++
+ | LOGCLOSING EOL
+ { log_closing = TRUE; }
+ | NOLOGCLOSING EOL
+@@ -249,6 +255,7 @@
+ switches.log = -1;
+ switches.ident = use_ident;
+ switches.resolve = -1;
++ switches.portresolve = -1;
+ switches.logformat = -1;
+ switches.logclosing = log_closing;
+ }
+@@ -259,6 +266,7 @@
+ $$->ident = switches.ident;
+ $$->logclosing = switches.logclosing;
+ $$->resolve = switches.resolve;
++ $$->portresolve = switches.portresolve;
+ $$->logformat = switches.logformat;
+ $$->protocol = $4.protocol;
+ $$->loginfo = $4.loginfoval;
+@@ -287,6 +295,8 @@
+ | NOIDENT { switches.ident = FALSE; }
+ | RESOLVE { switches.resolve = RUN_ICMP | RUN_TCP | RUN_UDP; }
+ | NORESOLVE { switches.resolve = 0; }
++ | PORTRESOLVE { switches.portresolve = RUN_ICMP | RUN_TCP | RUN_UDP; }
++ | NOPORTRESOLVE { switches.portresolve = 0; }
+ | SHORT { switches.logformat = LOGFORMAT_SHORT; }
+ | NORMAL { switches.logformat = LOGFORMAT_NORMAL; }
+ | DETAILED { switches.logformat = LOGFORMAT_DETAILED; }
+
+--- a/Source/main.c
++++ b/Source/main.c
+@@ -48,6 +48,10 @@
+ #include "filter.h"
+ #include "pidfile.h"
+
++#ifndef PATH_MAX
++#define PATH_MAX 4096
++#endif
++
+ /* Logging mechanism */
+ struct loginfo log;
+
+
+--- a/Source/netutils.c
++++ b/Source/netutils.c
+@@ -237,15 +237,21 @@
+ * Get a service name for a specified protocol
+ */
+
+-void service_lookup(char *proto, char *service, __u16 port) {
++void service_lookup(char *proto, char *service, __u16 port, int portresolve) {
+ struct servent *se;
+
+ pthread_mutex_lock(&service_mutex);
+- se = getservbyport(port, proto);
+- if (se == NULL)
++ if (portresolve)
++ {
++ se = getservbyport(port, proto);
++ if (se == NULL)
++ snprintf(service, SERVICE_LENGTH, "port %d", ntohs(port));
++ else {
++ snprintf(service, SERVICE_LENGTH, "%s", se->s_name);
++ }
++ }
++ else {
+ snprintf(service, SERVICE_LENGTH, "port %d", ntohs(port));
+- else {
+- snprintf(service, SERVICE_LENGTH, "%s", se->s_name);
+ }
+ pthread_mutex_unlock(&service_mutex);
+ }
+
+--- a/Source/netutils.h
++++ b/Source/netutils.h
+@@ -53,6 +53,6 @@
+ const __u32 src_addr, const __u16 src_port,
+ const __u32 dst_addr, const __u16 dst_port);
+
+-void service_lookup(char *proto, char *service, __u16 port);
++void service_lookup(char *proto, char *service, __u16 port, int portresolve);
+
+ #endif
+
+--- a/Source/tcp.c
++++ b/Source/tcp.c
+@@ -51,6 +51,7 @@
+ struct loginfo tcp_log;
+ extern struct loginfo log;
+ extern unsigned short resolve_protocols;
++extern unsigned short portresolve_protocols;
+
+ /*
+ * Structure of a TCP packet
+@@ -88,7 +89,7 @@
+ *details ='\0';
+ host_print(remote_host, IPHDR.saddr,
+ info.resolve);
+- service_lookup("tcp", service, TCPHDR.dest);
++ service_lookup("tcp", service, TCPHDR.dest, info.portresolve);
+ if (info.logformat == LOGFORMAT_DETAILED) {
+ get_details(details,
+ IPHDR.saddr,
+@@ -186,7 +187,7 @@
+ *details ='\0';
+ host_print(remote_host, IPHDR.saddr,
+ info.resolve);
+- service_lookup("tcp", service, TCPHDR.dest);
++ service_lookup("tcp", service, TCPHDR.dest, info.portresolve);
+ if (info.logformat == LOGFORMAT_DETAILED) {
+ get_details(details,
+ IPHDR.saddr,
+
+--- a/Source/udp.c
++++ b/Source/udp.c
+@@ -81,7 +81,7 @@
+ *details ='\0';
+ host_print(remote_host, IPHDR.saddr,
+ info.resolve);
+- service_lookup("udp", service, UDPHDR.dest);
++ service_lookup("udp", service, UDPHDR.dest, info.portresolve);
+ if (info.logformat == LOGFORMAT_DETAILED) {
+ get_details(details,
+ IPHDR.saddr,
+
+--- a/ippl.conf
++++ b/ippl.conf
+@@ -4,13 +4,15 @@
+ # User used
+ # ---------
+ # Specify the user (declared in /etc/passwd) used to run the
+-# logging threads.
+-#runas nobody
++# logging threads. The ippl process visible in the process table
++# is still running as root! Look in /proc/pid/task to see the threads
++# running as ippl
++runas ippl
+
+ # Resolve hostnames?
+ # ------------------
+-# Uncomment the line below to disable DNS lookups
+-#noresolve all
++# Uncomment the line below to enable DNS lookups
++#resolve all
+
+ # Use ident?
+ # ----------
+@@ -38,9 +40,14 @@
+ # ----------------
+ run icmp tcp
+ # Uncomment the line below to log UDP traffic.
+-# See ippl.conf(5) for recommandations.
++# See ippl.conf(5) for recommendations.
+ #run udp
+
++# Resolve tcp/udp port to service name?
++# -------------------------------------
++# portresolve icmp tcp udp
++# Set noportresolve <protocol-list> to log port numbers instead
++
+ # Logging format
+ # ----------------
+ # If you want to see the destination address, the ports, etc
+@@ -63,6 +70,3 @@
+ # Do not log DNS queries
+ #ignore udp port domain
+ #ignore udp srcport domain
+-
+-# End of configuration
+-# Copyright (C) 1998-1999 Hugo Haas - Etienne Bernard
+
diff --git a/net-analyzer/ippl/files/ippl-1.4.14-privilege-drop.patch b/net-analyzer/ippl/files/ippl-1.4.14-privilege-drop.patch
new file mode 100644
index 000000000000..0f6d03684a93
--- /dev/null
+++ b/net-analyzer/ippl/files/ippl-1.4.14-privilege-drop.patch
@@ -0,0 +1,140 @@
+privilege-drop by Marc Haber <mh+debian-packages@zugschlus.de>
+
+--- a/Source/icmp.c
++++ b/Source/icmp.c
+@@ -39,6 +39,8 @@
+ #include "log.h"
+ #include "filter.h"
+ #include "configuration.h"
++#include <string.h>
++#include <errno.h>
+
+ /* Socket */
+ int icmp_socket;
+@@ -296,14 +298,16 @@
+
+ icmp_socket = socket(AF_INET, SOCK_RAW, IPPROTO_ICMP);
+ if (icmp_socket <= 0) {
+- log.log(log.level_or_fd, "FATAL: Unable to open icmp raw socket");
++ int error = errno;
++ log.log(log.level_or_fd, "FATAL: Unable to open icmp raw socket\nERROR No: %d\nERROR : %s", error, strerror(error));
+ exit(1);
+ }
+
+- setgid(((struct passwd *)nobody)->pw_gid);
++ /* Don't do this here - race conditions will arise */
++ /* setgid(((struct passwd *)nobody)->pw_gid);
+ initgroups(((struct passwd *)nobody)->pw_name,
+ ((struct passwd *)nobody)->pw_gid);
+- setuid(((struct passwd *)nobody)->pw_uid);
++ setuid(((struct passwd *)nobody)->pw_uid); */
+
+ for(;;) {
+ if (read(icmp_socket, (__u8 *) &pkt, ICMP_CAPTURE_LENGTH) == -1) {
+--- a/Source/main.c
++++ b/Source/main.c
+@@ -153,6 +153,17 @@
+ run_thread(&udp_t, log_udp, (void *)account);
+ }
+
++ /* Sleep 1 sec to allow the other threads to catchup */
++ /* Not the best way to solve the issue but it works */
++ sleep(1);
++
++ /* Drop privileges */
++
++ setgid(((struct passwd *)account)->pw_gid);
++ initgroups(((struct passwd *)account)->pw_name,
++ ((struct passwd *)account)->pw_gid);
++ setuid(((struct passwd *)account)->pw_uid);
++
+ }
+
+
+@@ -160,8 +171,10 @@
+ * reload_configuration
+ *
+ * Stops the threads and reloads the configuration
++ *
++ * -- DEPRECATED (due to privilege drop cannot reload - needs a restart!)
+ */
+-void reload_configuration() {
++void reload_configuration_DEPRECATED() {
+ extern pthread_mutex_t log_mutex, service_mutex, dns_mutex, r_mux, w_mux;
+ extern pthread_cond_t w_cond;
+ extern int readers;
+@@ -353,8 +366,10 @@
+ * Function executed when we receive a SIHUP signal
+ */
+ void sighup(int sig) {
+- reload_configuration();
+- log.log(log.level_or_fd, "IP Protocols Logger: reloaded configuration.");
++ // DEPRECATED - reload_configuration();
++ // log.log(log.level_or_fd, "IP Protocols Logger: reloaded configuration.");
++ log.log(log.level_or_fd, "IP Protocols Logger: reload configuration is unsupported.");
++ die(sig);
+ signal(SIGHUP, sighup);
+ }
+
+--- a/Source/tcp.c
++++ b/Source/tcp.c
+@@ -44,6 +44,8 @@
+ #include "filter.h"
+ #include "configuration.h"
+ #include "ident.h"
++#include <errno.h>
++#include <string.h>
+
+ /* Socket */
+ int tcp_socket;
+@@ -258,14 +260,16 @@
+
+ tcp_socket = socket(AF_INET, SOCK_RAW, IPPROTO_TCP);
+ if (tcp_socket <= 0) {
+- log.log(log.level_or_fd, "FATAL: Unable to open tcp raw socket");
++ int error = errno;
++ log.log(log.level_or_fd, "FATAL: Unable to open tcp raw socket\nERROR No: %d\nERROR : %s", error, strerror(error));
+ exit(1);
+ }
+
+- setgid(((struct passwd *)nobody)->pw_gid);
++ /* Don't do this here - race conditions will arise */
++ /* setgid(((struct passwd *)nobody)->pw_gid);
+ initgroups(((struct passwd *)nobody)->pw_name,
+ ((struct passwd *)nobody)->pw_gid);
+- setuid(((struct passwd *)nobody)->pw_uid);
++ setuid(((struct passwd *)nobody)->pw_uid); */
+
+ for(;;) {
+ if (read(tcp_socket, (__u8 *) &pkt, TCP_CAPTURE_LENGTH) == -1) {
+--- a/Source/udp.c
++++ b/Source/udp.c
+@@ -39,6 +39,8 @@
+ #include "filter.h"
+ #include "configuration.h"
+ #include "ident.h"
++#include <errno.h>
++#include <string.h>
+
+ /* Socket */
+ int udp_socket;
+@@ -138,14 +140,16 @@
+
+ udp_socket = socket(AF_INET, SOCK_RAW, IPPROTO_UDP);
+ if (udp_socket <= 0) {
+- log.log(log.level_or_fd, "FATAL: Unable to open udp raw socket");
++ int error = errno;
++ log.log(log.level_or_fd, "FATAL: Unable to open udp raw socket\nERROR No: %d\nERROR : %s", error, strerror(error));
+ exit(1);
+ }
+
+- setgid(((struct passwd *)nobody)->pw_gid);
++ /* Don't do this here - race conditions will arise */
++ /* setgid(((struct passwd *)nobody)->pw_gid);
+ initgroups(((struct passwd *)nobody)->pw_name,
+ ((struct passwd *)nobody)->pw_gid);
+- setuid(((struct passwd *)nobody)->pw_uid);
++ setuid(((struct passwd *)nobody)->pw_uid); */
+
+ for(;;) {
+ if (read(udp_socket, (__u8 *) &pkt, UDP_CAPTURE_LENGTH) == -1) {
diff --git a/net-analyzer/ippl/files/ippl.rc b/net-analyzer/ippl/files/ippl.rc
new file mode 100644
index 000000000000..e16ccfc6c4e3
--- /dev/null
+++ b/net-analyzer/ippl/files/ippl.rc
@@ -0,0 +1,30 @@
+#!/sbin/openrc-run
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ need net
+}
+
+checkconfig() {
+ if [ ! -f /etc/ippl.conf ]
+ then
+ eerror "Please create /etc/ippl.conf"
+ return 1
+ fi
+ return 0
+}
+
+start() {
+ checkconfig || return $?
+ ebegin "Starting ippl"
+ start-stop-daemon --start --quiet --pidfile /run/ippl.pid \
+ --exec /usr/sbin/ippl
+ eend $? "Failed to start ippl"
+}
+
+stop() {
+ ebegin "Stopping ippl"
+ start-stop-daemon --stop --quiet --pidfile /run/ippl.pid
+ eend $? "Failed to stop ippl"
+}
diff --git a/net-analyzer/ippl/ippl-1.4.14-r7.ebuild b/net-analyzer/ippl/ippl-1.4.14-r7.ebuild
new file mode 100644
index 000000000000..e8fc3b4aee3b
--- /dev/null
+++ b/net-analyzer/ippl/ippl-1.4.14-r7.ebuild
@@ -0,0 +1,55 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs autotools
+
+DESCRIPTION="A daemon which logs TCP/UDP/ICMP packets"
+HOMEPAGE="http://pltplp.net/ippl/"
+SRC_URI="http://pltplp.net/ippl/archive/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86"
+
+BDEPEND="
+ app-alternatives/yacc
+ app-alternatives/lex"
+RDEPEND="acct-user/ippl"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.4.14-noportresolve.patch
+ "${FILESDIR}"/${PN}-1.4.14-manpage.patch
+ "${FILESDIR}"/${PN}-1.4.14-privilege-drop.patch
+ "${FILESDIR}"/${PN}-1.4.14-includes.patch
+ "${FILESDIR}"/${PN}-1.4.14-format-warnings.patch
+ # bug #351287
+ "${FILESDIR}"/${PN}-1.4.14-fix-build-system.patch
+ "${FILESDIR}"/${PN}-1.4.14-musl.patch
+ "${FILESDIR}"/${PN}-1.4.14-lto.patch
+)
+
+src_prepare() {
+ default
+ # bug #875665
+ mv configure.in configure.ac || die
+ eautoreconf
+}
+
+src_configure() {
+ tc-export CC
+ default
+}
+
+src_install() {
+ dosbin Source/ippl
+
+ insinto /etc
+ doins ippl.conf
+
+ doman Docs/{ippl.8,ippl.conf.5}
+ dodoc BUGS CREDITS HISTORY README TODO
+
+ newinitd "${FILESDIR}"/ippl.rc ippl
+}
diff --git a/net-analyzer/ippl/metadata.xml b/net-analyzer/ippl/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/ippl/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/ipsumdump/Manifest b/net-analyzer/ipsumdump/Manifest
new file mode 100644
index 000000000000..902e8a47818b
--- /dev/null
+++ b/net-analyzer/ipsumdump/Manifest
@@ -0,0 +1 @@
+DIST ipsumdump-1.86.tar.gz 895567 BLAKE2B 5d33e2c6a5df836592028fb1026749561188b3e0cc15fe691404ad17bc1dd724f4fd9e1be46bbe76b200288575251178f874df4f8697b0e943de4185b71f9e69 SHA512 38bf55589ab81eb7601283410a9f962508e419c1a0ef24f088a2d1328b29e360a9788a20689ea45724fbc56194ecb5ede1f3b792e5bc7e97a500a7b2e434fe65
diff --git a/net-analyzer/ipsumdump/files/ipsumdump-1.86-SIOCGSTAMP.patch b/net-analyzer/ipsumdump/files/ipsumdump-1.86-SIOCGSTAMP.patch
new file mode 100644
index 000000000000..c2f0a74fff11
--- /dev/null
+++ b/net-analyzer/ipsumdump/files/ipsumdump-1.86-SIOCGSTAMP.patch
@@ -0,0 +1,10 @@
+--- a/src/fromdevice.cc
++++ b/src/fromdevice.cc
+@@ -47,6 +47,7 @@
+
+ #if FROMDEVICE_ALLOW_LINUX
+ # include <sys/socket.h>
++# include <linux/sockios.h>
+ # include <net/if.h>
+ # include <features.h>
+ # include <linux/if_packet.h>
diff --git a/net-analyzer/ipsumdump/ipsumdump-1.86-r1.ebuild b/net-analyzer/ipsumdump/ipsumdump-1.86-r1.ebuild
new file mode 100644
index 000000000000..6db10e8c8170
--- /dev/null
+++ b/net-analyzer/ipsumdump/ipsumdump-1.86-r1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="Simple TCP/IP Dump summarizer/analyzer"
+HOMEPAGE="https://read.seas.harvard.edu/~kohler/ipsumdump/"
+SRC_URI="https://read.seas.harvard.edu/~kohler/ipsumdump/${P}.tar.gz"
+
+LICENSE="the-Click-license"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="+ipv6 +nanotimestamp"
+
+BDEPEND="
+ dev-lang/perl
+ sys-apps/texinfo
+"
+RDEPEND="
+ net-libs/libpcap
+"
+DEPEND="
+ ${RDEPEND}
+ dev-libs/expat
+ virtual/os-headers
+"
+
+DOCS=( NEWS.md README.md )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.86-SIOCGSTAMP.patch
+)
+
+src_configure() {
+ econf \
+ --cache-file="${S}"/config.cache \
+ $(use_enable ipv6 ip6) \
+ $(use_enable nanotimestamp)
+}
diff --git a/net-analyzer/ipsumdump/metadata.xml b/net-analyzer/ipsumdump/metadata.xml
new file mode 100644
index 000000000000..67f72c99dff7
--- /dev/null
+++ b/net-analyzer/ipsumdump/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ </maintainer>
+ <use>
+ <flag name="nanotimestamp">Enable timestamps with nano-second resolution</flag>
+ </use>
+ <longdescription lang="en">
+The ipsumdump program summarizes TCP/IP dump files into a self-describing ASCII
+format easily readable by humans and programs. The companion ipaggcreate
+program counts various properties of packet aggregates.
+</longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/iptraf-ng/Manifest b/net-analyzer/iptraf-ng/Manifest
new file mode 100644
index 000000000000..aaecbd9e85f7
--- /dev/null
+++ b/net-analyzer/iptraf-ng/Manifest
@@ -0,0 +1,2 @@
+DIST iptraf-ng-1.2.1.tar.gz 325177 BLAKE2B 9b8df7fa24711b401464d492993b9c27424ec7ab6230218d1b792a66e5fb60c99b5cdb92ac1b5a6da578c4b10da79333f248f14d10e74057118aadf50263a4ed SHA512 44d36fc92cdbf379f62cb63638663c3ee610225b9c28d60ee55e62e358f398a6b0db281129327b3472e45fb553ee3dd605af09c129f2233f8839ae3dbd799384
+DIST iptraf-ng-1.2.2.tar.gz 325800 BLAKE2B c2ad1821080fcebaef3500aaefcf9a8679c46c09a6851b9cef40fcc6d3b7607c65954ac884e1db4ddf702c62de68bb58ca9cf338c0642bc0ef9e944ca400e4c4 SHA512 275a345ffd3ab9578c4d159c3a8667326224b4a58b2e7787c4db518b81973d87c04b4b6c5275a721858d01a9b44a0200f8defc06c6f88655aa38d4fa6146ea1d
diff --git a/net-analyzer/iptraf-ng/files/iptraf-ng-1.2.2-buffer_overflow.patch b/net-analyzer/iptraf-ng/files/iptraf-ng-1.2.2-buffer_overflow.patch
new file mode 100644
index 000000000000..9c2262db870a
--- /dev/null
+++ b/net-analyzer/iptraf-ng/files/iptraf-ng-1.2.2-buffer_overflow.patch
@@ -0,0 +1,15 @@
+Fix this issue:
+
+src/tcptable.c:484:140: warning: ‘%s’ directive output may be truncated writing up to 63 bytes into a region of size between 0 and 225 [-Wformat-truncation=]
+
+--- a/src/tcptable.c
++++ b/src/tcptable.c
+@@ -22,7 +22,7 @@
+ #include "hostmon.h"
+ #include "sockaddr.h"
+
+-#define MSGSTRING_MAX 320
++#define MSGSTRING_MAX 640
+
+ unsigned int bmaxy = 0;
+ unsigned int imaxy = 0;
diff --git a/net-analyzer/iptraf-ng/iptraf-ng-1.2.1.ebuild b/net-analyzer/iptraf-ng/iptraf-ng-1.2.1.ebuild
new file mode 100644
index 000000000000..a5d7f61742d2
--- /dev/null
+++ b/net-analyzer/iptraf-ng/iptraf-ng-1.2.1.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit flag-o-matic toolchain-funcs
+
+DESCRIPTION="A console-based network monitoring utility"
+HOMEPAGE="https://github.com/iptraf-ng/iptraf-ng"
+SRC_URI="https://github.com/iptraf-ng/iptraf-ng/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2 doc? ( FDL-1.1 )"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+IUSE="doc"
+
+RDEPEND="
+ >=sys-libs/ncurses-5.7-r7:0=
+"
+DEPEND="
+ ${RDEPEND}
+ virtual/os-headers
+ !net-analyzer/iptraf
+"
+RESTRICT="test"
+
+src_prepare() {
+ sed -i \
+ -e '/^CC =/d' \
+ -e '/^CFLAGS/s:= -g -O2:+= :' \
+ -e '/^LDFLAGS =/d' \
+ -e 's|$(QUIET_[[:alpha:]]*)||g' \
+ Makefile || die
+ sed -i \
+ -e 's|IPTRAF|&-NG|g' \
+ -e 's|IPTraf|&-NG|g' \
+ -e 's|iptraf|&-ng|g' \
+ src/*.8 || die
+
+ default
+}
+
+src_configure() {
+ # The configure script does not do very much we do not already control
+ append-cppflags '-DLOCKDIR=\"/run/lock/iptraf-ng\"'
+ tc-export CC
+}
+
+src_install() {
+ dosbin ${PN}
+
+ doman src/*.8
+ dodoc AUTHORS CHANGES* FAQ README*
+
+ if use doc; then
+ docinto html
+ dodoc -r Documentation/*
+ fi
+
+ keepdir /var/{lib,log}/iptraf-ng #376157
+}
diff --git a/net-analyzer/iptraf-ng/iptraf-ng-1.2.2.ebuild b/net-analyzer/iptraf-ng/iptraf-ng-1.2.2.ebuild
new file mode 100644
index 000000000000..acc21ec137ae
--- /dev/null
+++ b/net-analyzer/iptraf-ng/iptraf-ng-1.2.2.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic toolchain-funcs
+
+DESCRIPTION="Console-based network monitoring utility"
+HOMEPAGE="https://github.com/iptraf-ng/iptraf-ng"
+SRC_URI="https://github.com/iptraf-ng/iptraf-ng/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2 doc? ( FDL-1.1 )"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+IUSE="doc"
+RESTRICT="test"
+
+RDEPEND="
+ >=sys-libs/ncurses-5.7-r7:=
+"
+DEPEND="
+ ${RDEPEND}
+ virtual/os-headers
+"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.2.2-buffer_overflow.patch"
+)
+
+src_prepare() {
+ sed -i \
+ -e '/^CC =/d' \
+ -e '/^CFLAGS/s:= -g -O2:+= :' \
+ -e '/^LDFLAGS =/d' \
+ -e 's|$(QUIET_[[:alpha:]]*)||g' \
+ Makefile || die
+ sed -i \
+ -e 's|IPTRAF|&-NG|g' \
+ -e 's|IPTraf|&-NG|g' \
+ -e 's|iptraf|&-ng|g' \
+ src/*.8 || die
+
+ default
+}
+
+src_configure() {
+ # The configure script does not do very much we do not already control
+ append-cppflags '-DLOCKDIR=\"/run/lock/iptraf-ng\"'
+ tc-export CC
+}
+
+src_install() {
+ dosbin ${PN}
+
+ doman src/*.8
+ dodoc AUTHORS CHANGES* FAQ README*
+
+ # bug #376157
+ keepdir /var/{lib,log}/iptraf-ng
+
+ if use doc; then
+ docinto html
+ dodoc -r Documentation/*
+ fi
+}
diff --git a/net-analyzer/iptraf-ng/metadata.xml b/net-analyzer/iptraf-ng/metadata.xml
new file mode 100644
index 000000000000..5657a119a208
--- /dev/null
+++ b/net-analyzer/iptraf-ng/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <longdescription>
+ IPTraf-ng is a console-based network monitoring program for
+ Linux that displays information about IP traffic.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/iptstate/Manifest b/net-analyzer/iptstate/Manifest
new file mode 100644
index 000000000000..5414199ac370
--- /dev/null
+++ b/net-analyzer/iptstate/Manifest
@@ -0,0 +1 @@
+DIST iptstate-2.2.7.tar.bz2 29994 BLAKE2B 0be657d4452b40b1835279bfa141b94e3db7adeeba141dede8456c64e4847efbb23197afab7e2452c9ad84c1be5eaffa1d9f7da15a5aaeb0c6fb28c1d62d6733 SHA512 43e258639e0f728d4a393d2dd7a834a6df1131da5291559a504800a0918dad3e010baaeb1bca66cb9a62bad6955f678be3302aac916fc956a525cdd7e9d0690a
diff --git a/net-analyzer/iptstate/files/iptstate-2.2.7-respect-CPPFLAGS.patch b/net-analyzer/iptstate/files/iptstate-2.2.7-respect-CPPFLAGS.patch
new file mode 100644
index 000000000000..6b658eac80bb
--- /dev/null
+++ b/net-analyzer/iptstate/files/iptstate-2.2.7-respect-CPPFLAGS.patch
@@ -0,0 +1,18 @@
+From: Sam James <sam@gentoo.org>
+Date: Fri, 10 Dec 2021 03:19:45 +0000
+Subject: [PATCH 3/3] Makefile: don't override CPPFLAGS
+
+There's no need to explicitly blank this and it prevents overrides
+from the environment.
+
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/Makefile
++++ b/Makefile
+@@ -26,7 +26,6 @@ CXXFILES?= iptstate.cc
+
+ # THIS IS FOR NORMAL COMPILATION
+ LIBS?= $(shell $(PKG_CONFIG) --libs ncurses libnetfilter_conntrack)
+-CPPFLAGS=
+
+ ### YOU SHOULDN'T NEED TO CHANGE ANYTHING BELOW THIS
+
diff --git a/net-analyzer/iptstate/files/iptstate-2.2.7-respect-LDFLAGS.patch b/net-analyzer/iptstate/files/iptstate-2.2.7-respect-LDFLAGS.patch
new file mode 100644
index 000000000000..41c875453926
--- /dev/null
+++ b/net-analyzer/iptstate/files/iptstate-2.2.7-respect-LDFLAGS.patch
@@ -0,0 +1,18 @@
+https://github.com/jaymzh/iptstate/pull/21
+
+From: Sam James <sam@gentoo.org>
+Date: Fri, 10 Dec 2021 03:10:49 +0000
+Subject: [PATCH 1/2] Makefile: respect LDFLAGS
+
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/Makefile
++++ b/Makefile
+@@ -49,7 +49,7 @@ iptstate: iptstate.cc Makefile
+ echo "+------------------------------------------------------------+" ;\
+ echo "";
+
+- $(CXX) $(CXXFLAGS) $(CXXFILES) -o iptstate $(LIBS) $(CPPFLAGS)
++ $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) $(CXXFILES) -o iptstate $(LIBS)
+ @touch iptstate
+
+ @\
diff --git a/net-analyzer/iptstate/files/iptstate-2.2.7-use-pkg-config.patch b/net-analyzer/iptstate/files/iptstate-2.2.7-use-pkg-config.patch
new file mode 100644
index 000000000000..3896799f78ae
--- /dev/null
+++ b/net-analyzer/iptstate/files/iptstate-2.2.7-use-pkg-config.patch
@@ -0,0 +1,21 @@
+https://github.com/jaymzh/iptstate/pull/21
+
+From: Sam James <sam@gentoo.org>
+Date: Fri, 10 Dec 2021 03:10:42 +0000
+Subject: [PATCH 2/2] Makefile: Use pkg-config
+
+Depending on platform, linking against ncurses may require -ltinfo as well,
+and linking against netfilter_conntrack may require -lnetfilter too.
+
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/Makefile
++++ b/Makefile
+@@ -25,7 +25,7 @@ CXXFLAGS?= -g -Wall -O2 -Werror=format-security -Wformat-truncation=0
+ CXXFILES?= iptstate.cc
+
+ # THIS IS FOR NORMAL COMPILATION
+-LIBS?= -lncurses -lnetfilter_conntrack
++LIBS?= $(shell $(PKG_CONFIG) --libs ncurses libnetfilter_conntrack)
+ CPPFLAGS=
+
+ ### YOU SHOULDN'T NEED TO CHANGE ANYTHING BELOW THIS
diff --git a/net-analyzer/iptstate/iptstate-2.2.7.ebuild b/net-analyzer/iptstate/iptstate-2.2.7.ebuild
new file mode 100644
index 000000000000..8ac212c6fb01
--- /dev/null
+++ b/net-analyzer/iptstate/iptstate-2.2.7.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="IP Tables State displays states being kept by iptables in a top-like format"
+HOMEPAGE="https://www.phildev.net/iptstate/ https://github.com/jaymzh/iptstate"
+SRC_URI="https://github.com/jaymzh/${PN}/releases/download/v${PV}/${P}.tar.bz2"
+
+LICENSE="ZLIB"
+SLOT="0"
+KEYWORDS="amd64 ~hppa ~ppc x86"
+
+RDEPEND=">=sys-libs/ncurses-5.7-r7:=
+ >=net-libs/libnetfilter_conntrack-0.0.50"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.2.7-respect-LDFLAGS.patch
+ "${FILESDIR}"/${PN}-2.2.7-use-pkg-config.patch
+ "${FILESDIR}"/${PN}-2.2.7-respect-CPPFLAGS.patch
+)
+
+src_configure() {
+ tc-export CXX PKG_CONFIG
+}
+
+src_install() {
+ emake PREFIX="${D}"/usr install
+ dodoc BUGS Changelog CONTRIB README.md WISHLIST
+}
diff --git a/net-analyzer/iptstate/metadata.xml b/net-analyzer/iptstate/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/iptstate/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/ipv6toolkit/Manifest b/net-analyzer/ipv6toolkit/Manifest
new file mode 100644
index 000000000000..f201c7d2dbaa
--- /dev/null
+++ b/net-analyzer/ipv6toolkit/Manifest
@@ -0,0 +1,2 @@
+DIST ipv6toolkit-2.1_p20200412.tar.gz 987247 BLAKE2B 7fcb07c0cbb22e377618f62b69a16e4a5aeda3b3ebc32bd216cf9fa3beb2d8775cec6543482609361bb23304e3284e770ae82ada053fb172c432adfe360e09ba SHA512 480245e4f5ed31d6de726467ab8e1726285ccc7eeb6c84bd75caf62af35409ebf5ea63a29567200b387592317a5d5989c76ad38d3f0842ebdf5392f28e81be9f
+DIST ipv6toolkit-2.2.tar.gz 1003009 BLAKE2B c0393fbfc222cc85af56ad902aab3659f109ab37841566f60845f1dfa89f383c5e87252d302c3c8c55bab9885eb5cbef3420b3fb80e66e71654af233042130f1 SHA512 10cd9e4ab5fa6c31b30f374fee064ab54581dc785ec42f9994d4efa7567240263aec84e2394c82a0c95f0175dbcd257f64858bfcb172c362b477a0eb52019056
diff --git a/net-analyzer/ipv6toolkit/ipv6toolkit-2.1_p20200412-r1.ebuild b/net-analyzer/ipv6toolkit/ipv6toolkit-2.1_p20200412-r1.ebuild
new file mode 100644
index 000000000000..afe8e856acea
--- /dev/null
+++ b/net-analyzer/ipv6toolkit/ipv6toolkit-2.1_p20200412-r1.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit toolchain-funcs
+
+DESCRIPTION="Set of IPv6 security/trouble-shooting tools to send arbitrary IPv6-based packets"
+HOMEPAGE="https://www.si6networks.com/tools/ipv6toolkit/"
+SNAPSHOT="623a0fbc0422cdc0a4b833d7b5ec58a2eaa9bddf"
+SRC_URI="https://github.com/fgont/ipv6toolkit/archive/${SNAPSHOT}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}"/"${PN}"-"${SNAPSHOT}"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="
+ net-libs/libpcap[ipv6(+)]
+"
+RDEPEND="
+ ${DEPEND}
+ sys-apps/hwdata
+"
+
+src_prepare() {
+ default
+}
+
+src_compile() {
+ emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}" PREFIX="${EPREFIX}/usr"
+ sed -i -e "s:ipv6toolkit/oui.txt:hwdata/oui.txt:" data/ipv6toolkit.conf manuals/ipv6toolkit.conf.5 || die
+}
+
+src_install() {
+ dodir /etc
+ emake install DESTDIR="${D}" PREFIX="${EPREFIX}/usr"
+ #remove the included oui file
+ rm "${ED}"/usr/share/ipv6toolkit/oui.txt || die
+ dodoc CHANGES.TXT README.TXT
+}
diff --git a/net-analyzer/ipv6toolkit/ipv6toolkit-2.2.ebuild b/net-analyzer/ipv6toolkit/ipv6toolkit-2.2.ebuild
new file mode 100644
index 000000000000..1570fd66980e
--- /dev/null
+++ b/net-analyzer/ipv6toolkit/ipv6toolkit-2.2.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Set of IPv6 security/trouble-shooting tools to send arbitrary IPv6-based packets"
+HOMEPAGE="https://www.si6networks.com/tools/ipv6toolkit/"
+SRC_URI="https://github.com/fgont/ipv6toolkit/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="
+ net-libs/libpcap[ipv6(+)]
+"
+RDEPEND="
+ ${DEPEND}
+ sys-apps/hwdata
+"
+
+src_compile() {
+ emake CC="$(tc-getCC)" CFLAGS="${CFLAGS}" PREFIX="${EPREFIX}/usr"
+
+ sed -i -e "s:ipv6toolkit/oui.txt:hwdata/oui.txt:" \
+ data/ipv6toolkit.conf \
+ manuals/ipv6toolkit.conf.5 || die
+}
+
+src_install() {
+ dodir /etc
+ emake install DESTDIR="${D}" PREFIX="${EPREFIX}/usr"
+ # Remove the included oui file
+ rm "${ED}"/usr/share/ipv6toolkit/oui.txt || die
+ dodoc CHANGES.TXT README.TXT
+}
diff --git a/net-analyzer/ipv6toolkit/metadata.xml b/net-analyzer/ipv6toolkit/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/ipv6toolkit/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/isic/Manifest b/net-analyzer/isic/Manifest
new file mode 100644
index 000000000000..8b5fd8a15b31
--- /dev/null
+++ b/net-analyzer/isic/Manifest
@@ -0,0 +1 @@
+DIST isic-0.07.tgz 39823 BLAKE2B 1a6a0bdca9b8e3c6acab9879b1165862311c331697db09f2f6facf1bd5b2b2f716bc2b1c8bea69a771553836fc7ead11c826f8cf5c9369f30577afafbae027c8 SHA512 2495ee1c6d552fa6f8f79ab06a886aeef39d247589479e75124a03d5633a75d47e8c9a15e16de3596744a83f74da7afa460cc3dd8653e346e58ac70e04126882
diff --git a/net-analyzer/isic/files/isic-0.07-configure.patch b/net-analyzer/isic/files/isic-0.07-configure.patch
new file mode 100644
index 000000000000..9a080f2a936d
--- /dev/null
+++ b/net-analyzer/isic/files/isic-0.07-configure.patch
@@ -0,0 +1,39 @@
+Make build system respect DESTDIR, fix just the configure
+as a path of least resistance.
+Autoreconf stuffs spaces where they don't belong and produces
+broken configure
+https://bugs.gentoo.org/899938
+https://bugs.gentoo.org/874531
+--- a/configure
++++ b/configure
+@@ -652,7 +652,7 @@
+ #line 653 "configure"
+ #include "confdefs.h"
+
+-main(){return(0);}
++int main(){return(0);}
+ EOF
+ if { (eval echo configure:658: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+ ac_cv_prog_cc_works=yes
+@@ -1092,6 +1092,7 @@
+ #line 1119 "configure"
+ #include "confdefs.h"
+ #include <ctype.h>
++#include <stdlib.h>
+ #define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+ #define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+ #define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -63,7 +63,7 @@
+ tar -czvf isic-$(VERSION).tgz ./isic-$(VERSION)/* )
+
+ install: $(BINS) $(MAN)
+- $(INSTALL) -m 0755 -d $(PREFIX)/bin
+- $(INSTALL) -m 0755 -c $(BINS) $(PREFIX)/bin
+- $(INSTALL) -m 0755 -d $(PREFIX)/man/man1
+- ${INSTALL} -m 0755 -c $(MAN) $(PREFIX)/man/man1
++ $(INSTALL) -m 0755 -d $(DESTDIR)/$(PREFIX)/bin
++ $(INSTALL) -m 0755 -c $(BINS) $(DESTDIR)/$(PREFIX)/bin
++ $(INSTALL) -m 0755 -d $(DESTDIR)/$(PREFIX)/share/man/man1
++ ${INSTALL} -m 0755 -c $(MAN) $(DESTDIR)/$(PREFIX)/share/man/man1
diff --git a/net-analyzer/isic/isic-0.07-r2.ebuild b/net-analyzer/isic/isic-0.07-r2.ebuild
new file mode 100644
index 000000000000..451a7a75239a
--- /dev/null
+++ b/net-analyzer/isic/isic-0.07-r2.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="IP Stack Integrity Checker"
+HOMEPAGE="https://isic.sourceforge.net/"
+SRC_URI="https://downloads.sourceforge.net/isic/${P}.tgz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+
+DEPEND="net-libs/libnet:1.1"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ default
+ # Add two missing includes
+ echo "#include <netinet/udp.h>" >> isic.h || die
+ echo "#include <netinet/tcp.h>" >> isic.h || die
+
+ # Install man pages in /usr/share/man
+ sed -i -e 's|/man/man1|/share&|g' Makefile.in || die
+}
+
+src_configure() {
+ tc-export CC
+ # Build system does not know about DESTDIR
+ econf --prefix="${D}/usr" --exec_prefix="${D}/usr"
+}
diff --git a/net-analyzer/isic/isic-0.07-r3.ebuild b/net-analyzer/isic/isic-0.07-r3.ebuild
new file mode 100644
index 000000000000..91a58a063799
--- /dev/null
+++ b/net-analyzer/isic/isic-0.07-r3.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="IP Stack Integrity Checker"
+HOMEPAGE="https://isic.sourceforge.net/"
+SRC_URI="https://downloads.sourceforge.net/isic/${P}.tgz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+
+DEPEND="net-libs/libnet:1.1"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}/${P}-configure.patch"
+)
+
+src_prepare() {
+ default
+ # Add two missing includes
+ echo "#include <netinet/udp.h>" >> isic.h || die
+ echo "#include <netinet/tcp.h>" >> isic.h || die
+
+}
+
+src_configure() {
+ tc-export CC
+
+ econf
+}
diff --git a/net-analyzer/isic/metadata.xml b/net-analyzer/isic/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/isic/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/jnettop/Manifest b/net-analyzer/jnettop/Manifest
new file mode 100644
index 000000000000..e46a7709331b
--- /dev/null
+++ b/net-analyzer/jnettop/Manifest
@@ -0,0 +1 @@
+DIST jnettop-0.13.0.tar.gz 131009 BLAKE2B b787d6876199c56af5daeeda55cdd5145ed64268db9066dd2c64c96511ef7bd1c08eb826407d1e488cbd72172fdfc5a2aaaebf81203fb27d2b14c60c3cd3b2ca SHA512 304293cd011ce8556aabf69e91b2e831ac61aa43016bb5b616d24b45805315a815dfba37dfe9f7cd3c637931043d4123b2f46a7637ba1a0b9d30267fe6dcb051
diff --git a/net-analyzer/jnettop/files/jnettop-0.13.0-asneeded.patch b/net-analyzer/jnettop/files/jnettop-0.13.0-asneeded.patch
new file mode 100644
index 000000000000..8a43240bb0de
--- /dev/null
+++ b/net-analyzer/jnettop/files/jnettop-0.13.0-asneeded.patch
@@ -0,0 +1,12 @@
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,8 +1,7 @@
+
+
+ INCLUDES = -I$(top_srcdir)/include @GLIB_CFLAGS@
+-AM_LDFLAGS = @GLIB_LIBS@ @NSL_LIBS@ @SOCKET_LIBS@
+-CFLAGS = -g -O0
++jnettop_LDADD = @GLIB_LIBS@ @NSL_LIBS@ @SOCKET_LIBS@
+
+ man_MANS = jnettop.8
+
diff --git a/net-analyzer/jnettop/files/jnettop-0.13.0-clang16.patch b/net-analyzer/jnettop/files/jnettop-0.13.0-clang16.patch
new file mode 100644
index 000000000000..d8723b6a5b13
--- /dev/null
+++ b/net-analyzer/jnettop/files/jnettop-0.13.0-clang16.patch
@@ -0,0 +1,9 @@
+https://bugs.gentoo.org/870667
+--- a/acinclude.m4
++++ b/acinclude.m4
+@@ -151,4 +151,5 @@
+ AC_MSG_CHECKING([if "localhost" resolves])
+ AC_TRY_RUN([
++#include <stdlib.h>
+ #include <string.h>
+ #include <sys/types.h>
diff --git a/net-analyzer/jnettop/files/jnettop-0.13.0-tinfo.patch b/net-analyzer/jnettop/files/jnettop-0.13.0-tinfo.patch
new file mode 100644
index 000000000000..958685cb5c12
--- /dev/null
+++ b/net-analyzer/jnettop/files/jnettop-0.13.0-tinfo.patch
@@ -0,0 +1,11 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -15,6 +15,8 @@
+ AC_HEADER_STDC
+ AC_CHECK_HEADERS([arpa/inet.h netdb.h netinet/in.h stdlib.h string.h sys/socket.h sys/sockio.h])
+
++PKG_CHECK_MODULES(ncurses,ncurses,[LIBS="$LIBS $ncurses_LIBS"],)
++
+ # with definitions
+ AC_ARG_WITH([ncurses],
+ AC_HELP_STRING([--without-ncurses], [don't use ncurses, default is YES when available]),
diff --git a/net-analyzer/jnettop/jnettop-0.13.0-r2.ebuild b/net-analyzer/jnettop/jnettop-0.13.0-r2.ebuild
new file mode 100644
index 000000000000..ca30323837fb
--- /dev/null
+++ b/net-analyzer/jnettop/jnettop-0.13.0-r2.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="Top like console network traffic visualiser"
+HOMEPAGE="https://sourceforge.net/projects/jnettop"
+SRC_URI="http://jnettop.kubs.info/dist/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 ~ppc ~sparc x86"
+IUSE="berkdb ncurses syslog"
+
+RDEPEND="
+ net-libs/libpcap
+ >=dev-libs/glib-2.0.1
+ berkdb? ( =sys-libs/db-4* )
+ ncurses? ( sys-libs/ncurses )
+ syslog? ( virtual/logger )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}/${P}-asneeded.patch"
+ "${FILESDIR}/${P}-tinfo.patch"
+ "${FILESDIR}/${P}-clang16.patch"
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_with ncurses) \
+ $(use_with berkdb db4) \
+ $(use_with syslog)
+}
+
+src_install() {
+ default
+ newdoc .${PN} ${PN}.dotfile
+}
diff --git a/net-analyzer/jnettop/metadata.xml b/net-analyzer/jnettop/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/jnettop/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/kapacitor/Manifest b/net-analyzer/kapacitor/Manifest
new file mode 100644
index 000000000000..e84886f6f4f4
--- /dev/null
+++ b/net-analyzer/kapacitor/Manifest
@@ -0,0 +1 @@
+DIST kapacitor-1.5.5.tar.gz 5708426 BLAKE2B 432d24f3bbe0f42e36b881e0c709cebd96dd3674ddf752f6a25cfb333108c903073b887e12d630d6c9e33a77b1256ea090cfe216cd9eb30b9bee53c48b7ab154 SHA512 34a2577a9c6f069ab8f747b9bd2f80f941bbedcccd740c24ec9f308804ec259e78cf14c924fcee3315b6f9f7f59adb9c50aedf06587898b8a0fb54f721d79212
diff --git a/net-analyzer/kapacitor/files/kapacitor.confd b/net-analyzer/kapacitor/files/kapacitor.confd
new file mode 100644
index 000000000000..d58906ae3e7a
--- /dev/null
+++ b/net-analyzer/kapacitor/files/kapacitor.confd
@@ -0,0 +1,12 @@
+#The convention in this file is to show the default setting commented
+#out.
+#To change the setting, uncomment it then change the value.
+
+#This is the kapacitor error log:
+#error_log="/var/log/kapacitor/kapacitor.log"
+
+#This is the kapacitor output log:
+#output_log="/dev/null"
+
+# Extra options to pass to kapacitord:
+#kapacitor_opts=""
diff --git a/net-analyzer/kapacitor/files/kapacitor.rc b/net-analyzer/kapacitor/files/kapacitor.rc
new file mode 100644
index 000000000000..b89d0b1cbf92
--- /dev/null
+++ b/net-analyzer/kapacitor/files/kapacitor.rc
@@ -0,0 +1,35 @@
+#!/sbin/openrc-run
+
+config=/etc/kapacitor/kapacitor.conf
+pidfile=/var/run/kapacitord.pid
+command=/usr/bin/kapacitord
+command_args="-config ${config} ${kapacitor_opts}"
+command_background=yes
+make_pidfile=yes
+command_user="kapacitor:kapacitor"
+
+# Logging
+error_log="${error_log:-/var/log/kapacitor/kapacitor.err}"
+output_log="${output_log:-/dev/null}"
+
+# Max open files
+rc_ulimit="-n 65536"
+
+depend() {
+ after net
+}
+
+start_pre() {
+ # Check if config file exist
+ if [ ! -r ${config} ]; then
+ eerror "config file ${config} doesn't exist"
+ return 1
+ fi
+ if [ ! -f "$error_log" ]; then
+ mkdir -p "$(dirname $error_log)"
+ fi
+ if [ ! -f "$output_log" ]; then
+ mkdir -p "$(dirname $output_log)"
+ fi
+ return 0
+}
diff --git a/net-analyzer/kapacitor/kapacitor-1.5.5.ebuild b/net-analyzer/kapacitor/kapacitor-1.5.5.ebuild
new file mode 100644
index 000000000000..b30d15009984
--- /dev/null
+++ b/net-analyzer/kapacitor/kapacitor-1.5.5.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit golang-build golang-vcs-snapshot systemd
+EGO_PN=github.com/influxdata/kapacitor
+
+DESCRIPTION="Monitoring, processing and alerting on time series data"
+HOMEPAGE="https://www.influxdata.com"
+SRC_URI="https://github.com/influxdata/kapacitor/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE=""
+
+COMMON_DEPEND="acct-group/kapacitor
+ acct-user/kapacitor"
+ DEPEND="${COMMON_DEPEND}"
+ RDEPEND="${COMMON_DEPEND}"
+
+src_compile() {
+ pushd "src/${EGO_PN}" > /dev/null || die
+ set -- env GOPATH="${S}" go build -v -work -x ./...
+ echo "$@"
+ "$@" || die "compile failed"
+ popd > /dev/null
+}
+
+src_install() {
+ pushd "src/${EGO_PN}" > /dev/null || die
+ set -- env GOPATH="${S}" go install -v -work -x ./...
+ echo "$@"
+ "$@" || die
+ dobin "${S}"/bin/kapacitor{,d}
+ insinto /etc/kapacitor
+doins etc/kapacitor/kapacitor.conf
+keepdir /etc/kapacitor/load
+ insinto /etc/logrotate.d
+ doins etc/logrotate.d/kapacitor
+ systemd_dounit scripts/kapacitor.service
+ keepdir /var/log/kapacitor
+ fowners kapacitor:kapacitor /var/log/kapacitor
+ newconfd "${FILESDIR}"/kapacitor.confd kapacitor
+ newinitd "${FILESDIR}"/kapacitor.rc kapacitor
+ popd > /dev/null || die
+}
diff --git a/net-analyzer/kapacitor/metadata.xml b/net-analyzer/kapacitor/metadata.xml
new file mode 100644
index 000000000000..17492b5107c4
--- /dev/null
+++ b/net-analyzer/kapacitor/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>williamh@gentoo.org</email>
+ <name>William Hubbs</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/knocker/Manifest b/net-analyzer/knocker/Manifest
new file mode 100644
index 000000000000..9290a58d8dc7
--- /dev/null
+++ b/net-analyzer/knocker/Manifest
@@ -0,0 +1 @@
+DIST knocker-0.8.0.tar.gz 117380 BLAKE2B bb6b344efc0c7b22266b59430eff3b7982d328b54277085cef9709f9f41b7e6e40b1cc22944b36f927db00cd7f15afc1774be20df504e1f3f4eb2b2b1c293973 SHA512 127fde05f2f331e7a4489c4612852fe841f0981b737be1d871de33355a0b55f2ab50d2c083ef857420b4af81909d5cc8fbe6c89174e141f77e6bf25719b6bf47
diff --git a/net-analyzer/knocker/files/knocker-0.7.1-knocker_user_is_root.patch b/net-analyzer/knocker/files/knocker-0.7.1-knocker_user_is_root.patch
new file mode 100644
index 000000000000..d93136b2f255
--- /dev/null
+++ b/net-analyzer/knocker/files/knocker-0.7.1-knocker_user_is_root.patch
@@ -0,0 +1,11 @@
+--- a/src/knocker_user.c
++++ b/src/knocker_user.c
+@@ -82,7 +82,7 @@
+ _dir_create (user->dir);
+ }
+
+- if (knocker_user_is_root)
++ if (knocker_user_is_root())
+ user->super = 1;
+ else
+ user->super = 0;
diff --git a/net-analyzer/knocker/files/knocker-0.8.0-fency.patch b/net-analyzer/knocker/files/knocker-0.8.0-fency.patch
new file mode 100644
index 000000000000..a5ff93fb07bb
--- /dev/null
+++ b/net-analyzer/knocker/files/knocker-0.8.0-fency.patch
@@ -0,0 +1,151 @@
+--- a/ChangeLog
++++ b/ChangeLog
+@@ -23,7 +23,7 @@
+ .conf in the user ~/.knocker subdirectory.
+
+ 13 May 2002
+- - --no-fency (-nf for short) option added. This switch tells knocker to show
++ - --no-fancy (-nf for short) option added. This switch tells knocker to show
+ the output in a "polite" way. All the lines and stuffs shown in the default
+ mode, will not be displayed using this option.
+
+--- a/src/knocker_args.c
++++ b/src/knocker_args.c
+@@ -82,7 +82,7 @@
+ fprintf (stdout, "Extra options:\n");
+ fprintf (stdout, " %s, %s quiet mode (no console output, logs to file)\n", QUIET_MODE_SHORT_OPT, QUIET_MODE_LONG_OPT);
+ fprintf (stdout, " %s, %s <logfile> log scan results to the specified file\n", ENABLE_LOGFILE_SHORT_OPT, ENABLE_LOGFILE_LONG_OPT);
+- fprintf (stdout, " %s, %s disable fency output\n", NO_FENCY_SHORT_OPT, NO_FENCY_LONG_OPT);
++ fprintf (stdout, " %s, %s disable fancy output\n", NO_FANCY_SHORT_OPT, NO_FANCY_LONG_OPT);
+ fprintf (stdout, " %s, %s disable colored output\n", NO_COLORS_SHORT_OPT, NO_COLORS_LONG_OPT);
+ fprintf (stdout, "\n");
+ fprintf (stdout, " %s let you configure %s\n", CONFIGURE_LONG_OPT, PACKAGE);
+@@ -111,7 +111,7 @@
+ args->logfile = logfile;
+ args->quiet = quiet;
+ args->colors = colors;
+- args->fency = TRUE; /* true by default */
++ args->fancy = TRUE; /* true by default */
+
+ return 0;
+ }
+@@ -189,10 +189,10 @@
+ }
+ return (0); /* we should have all arguments here */
+ }
+- else if ((!strcmp (argv[i], NO_FENCY_SHORT_OPT)) || (!strcmp (argv[i], NO_FENCY_LONG_OPT)))
++ else if ((!strcmp (argv[i], NO_FANCY_SHORT_OPT)) || (!strcmp (argv[i], NO_FANCY_LONG_OPT)))
+ {
+- /* Disable fency output */
+- args->fency = FALSE;
++ /* Disable fancy output */
++ args->fancy = FALSE;
+ }
+ else if ((!strcmp (argv[i], NO_COLORS_SHORT_OPT)) || (!strcmp (argv[i], NO_COLORS_LONG_OPT)))
+ {
+--- a/src/knocker_main.c
++++ b/src/knocker_main.c
+@@ -75,7 +75,7 @@
+
+ knocker_core_init_portscan_data (&pscan_data);
+
+- if (knocker_args.fency)
++ if (knocker_args.fancy)
+ knocker_term_clear ();
+
+ knocker_output_open ();
+--- a/src/knocker_args.h
++++ b/src/knocker_args.h
+@@ -53,9 +53,9 @@
+ #define QUIET_MODE_SHORT_OPT "-q"
+ #define QUIET_MODE_LONG_OPT "--quiet"
+
+- /* option to disable fency cool out put */
+-#define NO_FENCY_SHORT_OPT "-nf"
+-#define NO_FENCY_LONG_OPT "--no-fency"
++ /* option to disable fancy cool out put */
++#define NO_FANCY_SHORT_OPT "-nf"
++#define NO_FANCY_LONG_OPT "--no-fancy"
+
+ /* option to disable colored out put */
+ #define NO_COLORS_SHORT_OPT "-nc"
+@@ -88,7 +88,7 @@
+ int logfile; /* log to file TRUE,FALSE */
+ int quiet; /* quiet mode TRUE,FALSE */
+ int colors; /* no colors, TRUE,FALSE */
+- int fency; /* fency output, TRUE, FALSE */
++ int fancy; /* fancy output, TRUE, FALSE */
+ int win32_frontend;
+ } knocker_args_t;
+
+--- a/doc/knocker.1
++++ b/dos/knocker.1
+@@ -38,8 +38,8 @@
+ \fB\-lf\fr, \fB\-\-logfile <logfile>\fR
+ log the results to a specified file.
+ .TP
+-\fB\-nf\fr, \fB\-\-no-fency\fR
+-disable fency output
++\fB\-nf\fr, \fB\-\-no-fancy\fR
++disable fancy output
+ .TP
+ \fB\-nc\fr, \fB\-\-no-colors\fR
+ disable colored output
+diff --git a/src/knocker_output.c b/src/knocker_output.c
+index 4714c24..613b608 100755
+--- a/src/knocker_output.c
++++ b/src/knocker_output.c
+@@ -46,7 +46,7 @@ int knocker_output_open (void)
+ time (&timenow);
+ knocker_time = ctime (&timenow);
+
+- if (knocker_args.fency)
++ if (knocker_args.fancy)
+ {
+ knocker_term_color_fprintf (knocker_output_fp, "\n", KNOCKER_COLOR_1, KNOCKER_COLOR_1_ATTR);
+
+@@ -98,7 +98,7 @@ int knocker_output_open (void)
+
+ void knocker_output_host_info (const char *hostname_str, const char *hostip_str)
+ {
+- if (knocker_args.fency)
++ if (knocker_args.fancy)
+ {
+ knocker_term_color_fprintf (knocker_output_fp, " - ", KNOCKER_COLOR_1, KNOCKER_COLOR_1_ATTR);
+ knocker_term_color_fprintf (knocker_output_fp, "hostname to scan: ", KNOCKER_COLOR_1, KNOCKER_COLOR_1_ATTR);
+@@ -124,7 +124,7 @@ void knocker_output_host_info (const char *hostname_str, const char *hostip_str)
+
+ void knocker_output_resolve_error (char *hostname_str)
+ {
+- if (knocker_args.fency)
++ if (knocker_args.fancy)
+ {
+ knocker_term_color_fprintf (knocker_output_fp, " - ", KNOCKER_COLOR_1, KNOCKER_COLOR_1_ATTR);
+ knocker_term_color_fprintf (knocker_output_fp, "failed to resolve given hostname/IP: ", KNOCKER_COLOR_1, KNOCKER_COLOR_1_ATTR);
+@@ -144,7 +144,7 @@ void knocker_output_resolve_error (char *hostname_str)
+
+ void knocker_output_ports_info (int sp, int ep)
+ {
+- if (!knocker_args.fency)
++ if (!knocker_args.fancy)
+ {
+ knocker_term_color_fprintf (knocker_output_fp, "\n", KNOCKER_COLOR_2, KNOCKER_COLOR_2_ATTR);
+ return;
+@@ -166,7 +166,7 @@ void knocker_output_ports_info (int sp, int ep)
+
+ void knocker_output_open_port (int port, char *service_str)
+ {
+- if (knocker_args.fency)
++ if (knocker_args.fancy)
+ {
+ knocker_term_color_fprintf (knocker_output_fp, " -=[ ", KNOCKER_COLOR_1, KNOCKER_COLOR_1_ATTR);
+ knocker_term_color_intfprintf (knocker_output_fp, port, KNOCKER_COLOR_2, KNOCKER_COLOR_2_ATTR);
+@@ -192,7 +192,7 @@ void knocker_output_open_port (int port, char *service_str)
+
+ void knocker_output_results (char *hostname_str, char *hostname_ip, int tot_ps, int open_ps, char *secs)
+ {
+- if (knocker_args.fency)
++ if (knocker_args.fancy)
+ {
+ knocker_term_color_fprintf (knocker_output_fp, "\n", KNOCKER_COLOR_2, KNOCKER_COLOR_2_ATTR);
+ knocker_term_color_fprintf (knocker_output_fp, "+=- - - - - - - - - - - - - - - - - - - - - - - - - - - - ",
diff --git a/net-analyzer/knocker/knocker-0.8.0.ebuild b/net-analyzer/knocker/knocker-0.8.0.ebuild
new file mode 100644
index 000000000000..069f7a174704
--- /dev/null
+++ b/net-analyzer/knocker/knocker-0.8.0.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+DESCRIPTION="Knocker is an easy to use security port scanner written in C"
+HOMEPAGE="https://knocker.sourceforge.net"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.8.0-fency.patch
+ "${FILESDIR}"/${PN}-0.7.1-knocker_user_is_root.patch
+)
+
+DOCS=( AUTHORS BUGS ChangeLog NEWS README TO-DO )
+
+src_configure() {
+ tc-export CC
+ default
+}
diff --git a/net-analyzer/knocker/metadata.xml b/net-analyzer/knocker/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/knocker/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/lft/Manifest b/net-analyzer/lft/Manifest
new file mode 100644
index 000000000000..9b6cb4681d0e
--- /dev/null
+++ b/net-analyzer/lft/Manifest
@@ -0,0 +1 @@
+DIST lft-3.91.tar.gz 377135 BLAKE2B 6b67438738ebab46e5c6c79c17f074042535e9eecb80827562fb6ca6550118ecb3e70118379c4cd0b99611189554fe117ebb3d76580130627b2a21d72c9b5253 SHA512 1d030e2def14330426eef4c81245c4cce5f09c560b65b319199b20d82e967b77a5d4e323e2e64a8c1bcf80d1f87ae871e3f24a7d9cbc19cd7a5be2d3204845e7
diff --git a/net-analyzer/lft/files/lft-3.91-strip.patch b/net-analyzer/lft/files/lft-3.91-strip.patch
new file mode 100644
index 000000000000..56657f114b60
--- /dev/null
+++ b/net-analyzer/lft/files/lft-3.91-strip.patch
@@ -0,0 +1,11 @@
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -51,8 +51,6 @@
+
+ install: lft lft.8 whob whob.8
+ @echo "LFT and WhoB"
+- @echo " \_Stripping binaries"
+- @$(STRIP) lft whob
+ @echo " \_Copying files to their intended destinations"
+ @test -d $(DESTDIR)$(bindir)/. || $(MKDIR) $(DESTDIR)$(bindir)
+ $(INSTALL) lft $(DESTDIR)$(bindir)/lft
diff --git a/net-analyzer/lft/lft-3.91-r1.ebuild b/net-analyzer/lft/lft-3.91-r1.ebuild
new file mode 100644
index 000000000000..ad0132a7533e
--- /dev/null
+++ b/net-analyzer/lft/lft-3.91-r1.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="Layer Four Traceroute (LFT) and WhoB"
+HOMEPAGE="http://pwhois.org/lft/"
+SRC_URI="http://pwhois.org/get/${P}.tar.gz"
+
+LICENSE="VOSTROM"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+
+DEPEND="
+ net-libs/libpcap
+"
+RDEPEND="
+ ${DEPEND}
+"
+DOCS=( CHANGELOG README TODO )
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.91-strip.patch
+)
+
+src_prepare() {
+ sed -i \
+ -e 's|_BSD_SOURCE|_DEFAULT_SOURCE|g' \
+ configure config/acconfig.h.in || die
+ default
+}
diff --git a/net-analyzer/lft/metadata.xml b/net-analyzer/lft/metadata.xml
new file mode 100644
index 000000000000..6e5aab401759
--- /dev/null
+++ b/net-analyzer/lft/metadata.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <longdescription>
+(Note that version 3.80 is really 3.8, but released after 3.79.)
+
+LFT, short for Layer Four Traceroute, is a sort of 'traceroute' that often
+works much faster (than the commonly-used Van Jacobson method) and goes through
+many configurations of packet-filters (firewalls). More importantly, LFT
+implements numerous other features including AS number lookups through several
+reliable sources, loose source routing, netblock name lookups, et al. What
+makes LFT unique? LFT is the all-in-one traceroute tool because it can launch a
+variety of different probes using ICMP, UDP, and TCP protocols, or the RFC1393
+trace method. For example, rather than only launching UDP probes in an attempt
+to elicit ICMP "TTL exceeded" from hosts in the path, LFT can send TCP SYN or
+FIN probes to target arbitrary services. Then, LFT listens for "TTL exceeded"
+messages, TCP RST (reset), and various other interesting heuristics from
+firewalls or other gateways in the path. LFT also distinguishes between
+TCP-based protocols (source and destination), which make its statistics
+slightly more realistic, and gives a savvy user the ability to trace protocol
+routes, not just layer-3 (IP) hops. With LFT's verbose output, much can be
+discovered about a target network.
+
+WhoB is a likable whois client (see whois(1)) designed to provide everything a
+network engineer needs to know about a routed IP address by typing one line and
+reading one line. But even so, it's worth typing a few more lines because WhoB
+can do lots of other cool things for you! It can display the origin-ASN based
+on the global routing table at that time (according to Prefix WhoIs, RIPE NCC,
+or Cymru), the 'origin' ASN registered in the RADB (IRR), the netname and
+orgname, etc. By querying pWhoIs, WhoB can even show you all prefixes being
+announced by a specific Origin-ASN. WhoB performs the lookups quickly, the
+output is easily parsed by automated programs, and it's included as part of the
+Layer Four Traceroute (LFT) software package. LFT uses WhoB as a framework (and
+you can too, quite easily--see whois.h). Recent LFT releases (as of version
+2.5) include WhoB functionality through a standalone "whob" client/command
+placed in the LFT binary directory.
+
+ LFT and WhoB continue to evolve and provide more and more useful data to
+ network engineers and to anyone else that cares how IP datagrams are being
+ routed. With the advent of smarter firewalls, traffic engineering, QoS, and
+ per-protocol packet forwarding, LFT and WhoB have become invaluable tools for
+ many network managers worldwide.
+</longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/linkchecker/Manifest b/net-analyzer/linkchecker/Manifest
new file mode 100644
index 000000000000..cb022ae33356
--- /dev/null
+++ b/net-analyzer/linkchecker/Manifest
@@ -0,0 +1,2 @@
+DIST LinkChecker-10.5.0.tar.gz 546451 BLAKE2B caf2b4ad18b3fdd2efa8f55e5bf8914685cc9c1bc8c0d83673e06f2eb7d5effa5db6bb028dd094bac2ff3b2c39f7b68e2d5a81bccf40b280e1e0e79be9cefa19 SHA512 4bd39965430ce478db803776790ef382064ccda2096a6a3b358673821b941a064a20fb67a0b25a353859d60e3624cde33fe2b6797657c76882d3b84c443e4a84
+DIST LinkChecker-10.6.0.tar.gz 547746 BLAKE2B 3fa628eefb917f04a53274618c617ded03eea46fabfe6e186962aa0e7deea9555db51a1a57110c9dc2f48131f1385439b23d2eb4a3fe83005463cb117577862b SHA512 a96c362a48862914b83a78af27d967b1225c5f55fde4f2ee533b5996eda7b4b0f7b8a73ea75cbeb246ec6f65fc320f4095644f4113e0fcd6d0b1e78ffe788b8d
diff --git a/net-analyzer/linkchecker/files/linkchecker-9.3-bash-completion.patch b/net-analyzer/linkchecker/files/linkchecker-9.3-bash-completion.patch
new file mode 100644
index 000000000000..5c7540f0bc85
--- /dev/null
+++ b/net-analyzer/linkchecker/files/linkchecker-9.3-bash-completion.patch
@@ -0,0 +1,21 @@
+ config/linkchecker-completion | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/config/linkchecker-completion b/config/linkchecker-completion
+index 5252b3b..0ea3b21 100644
+--- a/config/linkchecker-completion
++++ b/config/linkchecker-completion
+@@ -2,7 +2,6 @@
+ # Debian Linux system. For other system read the documentation that
+ # comes with the bash-completion package.
+
+-have linkchecker &&
+ _linkcheck() {
+ local cur prev
+
+@@ -17,4 +16,4 @@ _linkcheck() {
+ fi
+ return 0
+ }
+-[ "$have" ] && complete $filenames -F _linkcheck linkchecker
++complete $filenames -F _linkcheck linkchecker
diff --git a/net-analyzer/linkchecker/linkchecker-10.5.0.ebuild b/net-analyzer/linkchecker/linkchecker-10.5.0.ebuild
new file mode 100644
index 000000000000..04e8c8de45c9
--- /dev/null
+++ b/net-analyzer/linkchecker/linkchecker-10.5.0.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="sqlite?"
+DISTUTILS_USE_PEP517=hatchling
+DISTUTILS_SINGLE_IMPL=1
+PYPI_NO_NORMALIZE=1
+PYPI_PN=LinkChecker
+
+inherit bash-completion-r1 distutils-r1 multiprocessing optfeature pypi
+
+DESCRIPTION="Check websites for broken links"
+HOMEPAGE="https://github.com/linkchecker/linkchecker"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="sqlite"
+
+RDEPEND="
+ $(python_gen_cond_dep '
+ dev-python/beautifulsoup4[${PYTHON_USEDEP}]
+ dev-python/dnspython[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ ')
+"
+BDEPEND="
+ test? (
+ $(python_gen_cond_dep '
+ app-text/pdfminer[${PYTHON_USEDEP}]
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ dev-python/pyftpdlib[${PYTHON_USEDEP}]
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ ')
+ sys-devel/gettext
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+PATCHES=( "${FILESDIR}/${PN}-9.3-bash-completion.patch" )
+
+DOCS=(
+ doc/changelog.txt
+ doc/upgrading.txt
+)
+
+python_test() {
+ # epytest overrides bs4 ignores from pytest.ini
+ # and also outputs multiple warnings about unclosed test sockets
+ pytest -vra -n "$(makeopts_jobs)" || die
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ newbashcomp config/linkchecker-completion ${PN}
+}
+
+pkg_postinst() {
+ optfeature "Virus scanning" app-antivirus/clamav
+ optfeature "Check links in PDF files" app-text/pdfminer
+ optfeature "bash-completion support" dev-python/argcomplete
+}
diff --git a/net-analyzer/linkchecker/linkchecker-10.6.0.ebuild b/net-analyzer/linkchecker/linkchecker-10.6.0.ebuild
new file mode 100644
index 000000000000..f623153d74d7
--- /dev/null
+++ b/net-analyzer/linkchecker/linkchecker-10.6.0.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+PYTHON_REQ_USE="sqlite?"
+DISTUTILS_USE_PEP517=hatchling
+DISTUTILS_SINGLE_IMPL=1
+PYPI_NO_NORMALIZE=1
+PYPI_PN=LinkChecker
+
+inherit bash-completion-r1 distutils-r1 multiprocessing optfeature pypi
+
+DESCRIPTION="Check websites for broken links"
+HOMEPAGE="https://github.com/linkchecker/linkchecker"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="sqlite"
+
+RDEPEND="
+ $(python_gen_cond_dep '
+ dev-python/beautifulsoup4[${PYTHON_USEDEP}]
+ dev-python/dnspython[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ ')
+"
+BDEPEND="
+ test? (
+ $(python_gen_cond_dep '
+ app-text/pdfminer[${PYTHON_USEDEP}]
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ dev-python/pyftpdlib[${PYTHON_USEDEP}]
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ ')
+ sys-devel/gettext
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+PATCHES=( "${FILESDIR}/${PN}-9.3-bash-completion.patch" )
+
+DOCS=(
+ doc/changelog.txt
+ doc/upgrading.txt
+)
+
+python_test() {
+ # epytest overrides bs4 ignores from pytest.ini
+ # and also outputs multiple warnings about unclosed test sockets
+ pytest -vra -n "$(makeopts_jobs)" || die
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ newbashcomp config/linkchecker-completion ${PN}
+}
+
+pkg_postinst() {
+ optfeature "Check links in PDF files" app-text/pdfminer
+ optfeature "bash-completion support" dev-python/argcomplete
+}
diff --git a/net-analyzer/linkchecker/metadata.xml b/net-analyzer/linkchecker/metadata.xml
new file mode 100644
index 000000000000..6e191002cbe2
--- /dev/null
+++ b/net-analyzer/linkchecker/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>hydrapolic@gmail.com</email>
+ <name>Tomáš Mózes</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <use>
+ <flag name="sqlite">Mozilla Bookmark parsing</flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/macchanger/Manifest b/net-analyzer/macchanger/Manifest
new file mode 100644
index 000000000000..622a424b5aeb
--- /dev/null
+++ b/net-analyzer/macchanger/Manifest
@@ -0,0 +1,2 @@
+DIST macchanger-1.7.0.tar.gz 396848 BLAKE2B 7a6e5cbf302568884363ab4023033b53b1adc16896d7f88b1717f72b1b2a4d6d2dbfa2259a5c4aaa38d72201c5624a648077730cbc25f869f5f50a343bb93d0c SHA512 69f2008ace6ff8223ecf25805c08ddf42add9ed16c65f3bb57f74b8b0d080d584381ce79592d2ef581a9ba73f12624dae8db63dbb12e4875dfd29d828a4a5da3
+DIST macchanger_1.7.0-5.4.debian.tar.xz 25084 BLAKE2B 65d39333e07a4c89da7e622aaccc0f2cab45af8d84721c3d39c457dfaf3063df872812d07860cbe78634159b0a2944e75aa54c11f46eadc37b9d4a23fc81b629 SHA512 b50b52532fc987f443088f2a4d0f2327dac972e69bc4c0bc0a94de4583df76c7d32c40a143d24b7fa6e066fc36b89c4b160c02b26860c484aab5054a4032f0cc
diff --git a/net-analyzer/macchanger/files/macchanger-1.7.0-fix-caddr_t.patch b/net-analyzer/macchanger/files/macchanger-1.7.0-fix-caddr_t.patch
new file mode 100644
index 000000000000..0bcffcc67a7a
--- /dev/null
+++ b/net-analyzer/macchanger/files/macchanger-1.7.0-fix-caddr_t.patch
@@ -0,0 +1,13 @@
+https://github.com/alobbs/macchanger/issues/14
+
+--- a/src/netinfo.c
++++ b/src/netinfo.c
+@@ -113,7 +113,7 @@
+ epa->size = IFHWADDRLEN;
+
+ memcpy(&req, &(net->dev), sizeof(struct ifreq));
+- req.ifr_data = (caddr_t)epa;
++ req.ifr_data = (void *)epa;
+
+ if (ioctl(net->sock, SIOCETHTOOL, &req) < 0) {
+ perror ("[ERROR] Could not read permanent MAC");
diff --git a/net-analyzer/macchanger/macchanger-1.7.0_p5_p4-r2.ebuild b/net-analyzer/macchanger/macchanger-1.7.0_p5_p4-r2.ebuild
new file mode 100644
index 000000000000..5db2c1183962
--- /dev/null
+++ b/net-analyzer/macchanger/macchanger-1.7.0_p5_p4-r2.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Utility for viewing/manipulating the MAC address of network interfaces"
+OUI_DATE="20091029" # Generated with tools/IEEE_OUI.py in the source
+OUI_FILE="OUI.list-${OUI_DATE}"
+HOMEPAGE="https://github.com/alobbs/macchanger"
+SRC_URI="
+ https://github.com/alobbs/macchanger/releases/download/${PV/_p*}/${P/_p*}.tar.gz
+ mirror://debian/pool/main/m/${PN}/${PN}_${PV/_p*}-$(ver_cut 5).$(ver_cut 7).debian.tar.xz
+"
+LICENSE="GPL-2"
+KEYWORDS="amd64 arm arm64 ppc ppc64 ~riscv ~sparc x86"
+SLOT="0"
+IUSE="split-usr"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.7.0-fix-caddr_t.patch
+ "${WORKDIR}"/debian/patches/02-fix_usage_message.patch
+ "${WORKDIR}"/debian/patches/06-update_OUI_list.patch
+ "${WORKDIR}"/debian/patches/08-fix_random_MAC_choice.patch
+ "${WORKDIR}"/debian/patches/check-random-device-read-errors.patch
+ "${WORKDIR}"/debian/patches/verify-changed-MAC.patch
+
+)
+S=${WORKDIR}/${P/_p*}
+
+src_configure() {
+ # Shared data is installed below /lib, see Bug #57046
+ econf \
+ --bindir="${EPREFIX}/sbin" \
+ --datadir="${EPREFIX}/lib"
+}
+
+src_install() {
+ default
+
+ newdoc "${WORKDIR}"/debian/changelog debian.changelog
+
+ # Can cleanup a while after bug #889922 is fixed
+ if use split-usr ; then
+ dodir /usr/bin
+ dosym -r /sbin/macchanger /usr/bin/macchanger
+ fi
+
+ dosym ../../lib/macchanger /usr/share/macchanger
+}
diff --git a/net-analyzer/macchanger/macchanger-1.7.0_p5_p4-r3.ebuild b/net-analyzer/macchanger/macchanger-1.7.0_p5_p4-r3.ebuild
new file mode 100644
index 000000000000..d574ebcfa3b2
--- /dev/null
+++ b/net-analyzer/macchanger/macchanger-1.7.0_p5_p4-r3.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Utility for viewing/manipulating the MAC address of network interfaces"
+OUI_DATE="20091029" # Generated with tools/IEEE_OUI.py in the source
+OUI_FILE="OUI.list-${OUI_DATE}"
+HOMEPAGE="https://github.com/alobbs/macchanger"
+SRC_URI="
+ https://github.com/alobbs/macchanger/releases/download/${PV/_p*}/${P/_p*}.tar.gz
+ mirror://debian/pool/main/m/${PN}/${PN}_${PV/_p*}-$(ver_cut 5).$(ver_cut 7).debian.tar.xz
+"
+LICENSE="GPL-2"
+KEYWORDS="amd64 arm arm64 ~loong ppc ppc64 ~riscv ~sparc x86"
+SLOT="0"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.7.0-fix-caddr_t.patch
+ "${WORKDIR}"/debian/patches/02-fix_usage_message.patch
+ "${WORKDIR}"/debian/patches/06-update_OUI_list.patch
+ "${WORKDIR}"/debian/patches/08-fix_random_MAC_choice.patch
+ "${WORKDIR}"/debian/patches/check-random-device-read-errors.patch
+ "${WORKDIR}"/debian/patches/verify-changed-MAC.patch
+
+)
+S=${WORKDIR}/${P/_p*}
+
+src_configure() {
+ # Shared data is installed below /lib, see Bug #57046
+ econf \
+ --bindir="${EPREFIX}/sbin" \
+ --datadir="${EPREFIX}/lib"
+}
+
+src_install() {
+ default
+
+ newdoc "${WORKDIR}"/debian/changelog debian.changelog
+
+ dosym ../../lib/macchanger /usr/share/macchanger
+}
diff --git a/net-analyzer/macchanger/metadata.xml b/net-analyzer/macchanger/metadata.xml
new file mode 100644
index 000000000000..411546079ee3
--- /dev/null
+++ b/net-analyzer/macchanger/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>robbat2@gentoo.org</email>
+ <name>Robin H. Johnson</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/masscan/Manifest b/net-analyzer/masscan/Manifest
new file mode 100644
index 000000000000..dc829a5d3237
--- /dev/null
+++ b/net-analyzer/masscan/Manifest
@@ -0,0 +1 @@
+DIST masscan-1.3.2.tar.gz 463449 BLAKE2B 5509027c00871b2242e419ab7cf3f775d7ee46e1882a27c52447ca442432712d742c686acbf4daa7307b791da06effa23b8790fc0561a42a4e8ed4c2f0be7713 SHA512 b0709f6f937a0e86c6913407c3bc60187074395ffff7a7a2bb54b23824d72982510e44fb1b1e7dcba85c4ad25ab1a623597661db43d9046165ba865cd9bd5b27
diff --git a/net-analyzer/masscan/files/masscan.conf b/net-analyzer/masscan/files/masscan.conf
new file mode 100644
index 000000000000..86a88868dffe
--- /dev/null
+++ b/net-analyzer/masscan/files/masscan.conf
@@ -0,0 +1,7 @@
+rate = 100000.00
+output-format = xml
+output-status = all
+output-filename = scan.xml
+ports = 0-65535
+#range = 0.0.0.0-255.255.255.255
+excludefile = /etc/masscan/exclude.conf
diff --git a/net-analyzer/masscan/masscan-1.3.2.ebuild b/net-analyzer/masscan/masscan-1.3.2.ebuild
new file mode 100644
index 000000000000..6a290f96f458
--- /dev/null
+++ b/net-analyzer/masscan/masscan-1.3.2.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+DESCRIPTION="Mass IP port scanner"
+HOMEPAGE="https://github.com/robertdavidgraham/masscan"
+SRC_URI="https://github.com/robertdavidgraham/masscan/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+SLOT="0"
+LICENSE="AGPL-3"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="net-libs/libpcap"
+
+src_prepare() {
+ default
+
+ sed -i \
+ -e '/$(CC)/s!$(CFLAGS)!$(LDFLAGS) $(CFLAGS)!g' \
+ -e '/^GITVER :=/s!= .(.*!=!g' \
+ -e '/^SYS/s|gcc|$(CC)|g' \
+ -e '/^CFLAGS =/{s,=,+=,;s,-g -ggdb,,;s,-O3,,;}' \
+ -e '/^CC =/d' \
+ Makefile || die
+
+ tc-export CC
+}
+
+src_install() {
+ dobin bin/masscan
+
+ insinto /etc/masscan
+ doins data/exclude.conf
+ doins "${FILESDIR}"/masscan.conf
+
+ dodoc doc/bot.html *.md
+
+ doman doc/masscan.8
+}
diff --git a/net-analyzer/masscan/metadata.xml b/net-analyzer/masscan/metadata.xml
new file mode 100644
index 000000000000..948d2e4a0e1c
--- /dev/null
+++ b/net-analyzer/masscan/metadata.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>robbat2@gentoo.org</email>
+ </maintainer>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <longdescription lang="en">
+ This is the fastest Internet port scanner. It can scan the
+ entire Internet in under 6 minutes, transmitting 10 million
+ packets per second.
+
+ It produces results similar to nmap, the most famous port
+ scanner. Internally, it operates more like scanrand,
+ unicornscan, and ZMap, using asynchronous transmission.
+ The major difference is that it's faster than these other
+ scanners. In addition, it's more flexible, allowing
+ arbitrary address ranges and port ranges.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/mbrowse/Manifest b/net-analyzer/mbrowse/Manifest
new file mode 100644
index 000000000000..b0fd92cb08f7
--- /dev/null
+++ b/net-analyzer/mbrowse/Manifest
@@ -0,0 +1 @@
+DIST mbrowse-0.4.3.tar.gz 146028 BLAKE2B 32b33dc4ec10a7b7ece07c47280b703c871e83a41f3cd8d60f7a177925da9c269020d927b193e8550fe15356c55bb4faa47c195354bb7784553601fc39ef00b7 SHA512 adccf8de707611034db0cbb6a37117f6a4741eb92656eab0e9e5c6a8268b17cc66080ed9663fe59a3fea9b110d83bcff9094b5fec133ca7ceb2650fd532a6cb4
diff --git a/net-analyzer/mbrowse/files/mbrowse-0.4.3-flags.patch b/net-analyzer/mbrowse/files/mbrowse-0.4.3-flags.patch
new file mode 100644
index 000000000000..f17904b66901
--- /dev/null
+++ b/net-analyzer/mbrowse/files/mbrowse-0.4.3-flags.patch
@@ -0,0 +1,16 @@
+--- acinclude.m4
++++ b/acinclude.m4
+@@ -277,13 +277,11 @@
+ echo "*** --with-snmp-lib=DIR"
+ echo "***"
+ CFLAGS="$ac_save_CFLAGS"
+- LDFLAGS="$ac_save_LDFLAGS"
+ LIBS="$ac_save_LIBS"
+ ifelse([$3], ,:,[$3])
+ fi
+
+ CFLAGS="$ac_save_CFLAGS"
+- LDFLAGS="$ac_save_LDFLAGS"
+ LIBS="$ac_save_LIBS"
+
+ AC_SUBST(SNMP_CFLAGS)
diff --git a/net-analyzer/mbrowse/files/mbrowse-0.4.3-fno-common.patch b/net-analyzer/mbrowse/files/mbrowse-0.4.3-fno-common.patch
new file mode 100644
index 000000000000..72a4c785a13c
--- /dev/null
+++ b/net-analyzer/mbrowse/files/mbrowse-0.4.3-fno-common.patch
@@ -0,0 +1,29 @@
+--- a/src/interface.h
++++ b/src/interface.h
+@@ -9,12 +9,14 @@
+ GtkAccelGroup *accels;
+ } main_widgets_t;
+
+-struct menu_items {
++typedef struct menu_items {
+ char *item;
+ GtkSignalFunc func;
+ gpointer data;
+ GtkWidget *mi;
+-};
++} menu_items;
++
++extern struct menu_items bookmark_items[128];
+
+ void set_hostname(const char *host);
+ void set_oid(const char *oid);
+--- a/src/bookmarks.c
++++ b/src/bookmarks.c
+@@ -27,7 +27,6 @@
+ static GtkWidget *bkdial;
+ int delete = 0;
+
+-struct menu_items bookmark_items[128];
+ static GtkWidget* create_bookmark_dialogue(void);
+
+ static void mark_for_delete(void) {
diff --git a/net-analyzer/mbrowse/mbrowse-0.4.3-r1.ebuild b/net-analyzer/mbrowse/mbrowse-0.4.3-r1.ebuild
new file mode 100644
index 000000000000..457087b6b4a1
--- /dev/null
+++ b/net-analyzer/mbrowse/mbrowse-0.4.3-r1.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools
+
+DESCRIPTION="MBrowse is a graphical MIB browser"
+HOMEPAGE="https://sourceforge.net/projects/mbrowse/"
+SRC_URI="https://downloads.sourceforge.net/${PN}/files/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86"
+
+DEPEND="
+ dev-libs/glib
+ net-analyzer/net-snmp:=
+ x11-libs/gdk-pixbuf
+ x11-libs/gtk+:2
+"
+RDEPEND="${DEPEND}"
+
+DOCS=( AUTHORS README ChangeLog )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.4.3-flags.patch
+ "${FILESDIR}"/${PN}-0.4.3-fno-common.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ econf --with-snmp-lib="${EPREFIX}/usr/$(get_libdir)"
+}
diff --git a/net-analyzer/mbrowse/metadata.xml b/net-analyzer/mbrowse/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/mbrowse/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/mdns-scan/Manifest b/net-analyzer/mdns-scan/Manifest
new file mode 100644
index 000000000000..4a5c5aaec7b4
--- /dev/null
+++ b/net-analyzer/mdns-scan/Manifest
@@ -0,0 +1 @@
+DIST mdns-scan-0.5_p20200715.gh.tar.gz 15239 BLAKE2B 10378dacb3ea63dbc4c425a9316a42d29efc7ce86cd3f76b05f0ee9e64b9e2d68264f94047b6b82b3a2768d707dbcbf3f36514422378de7c68de91ace24a180c SHA512 99488093cd4adeca12138739acb64bd58419c270a3dcc204378d579f25a385ae324a343f023da1c4bd093034b0b324bff80a31f462068b122052390c6706cc49
diff --git a/net-analyzer/mdns-scan/mdns-scan-0.5_p20200715.ebuild b/net-analyzer/mdns-scan/mdns-scan-0.5_p20200715.ebuild
new file mode 100644
index 000000000000..6a3b4d50f29f
--- /dev/null
+++ b/net-analyzer/mdns-scan/mdns-scan-0.5_p20200715.ebuild
@@ -0,0 +1,25 @@
+# Copyright 2019-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="a tool for scanning for mDNS/DNS-SD published services"
+HOMEPAGE="https://github.com/alteholz/mdns-scan"
+COMMIT="9c307d81d82812e423664e4ebe135f429d995ac8"
+SRC_URI="https://github.com/alteholz/mdns-scan/archive/${COMMIT}.tar.gz -> ${P}.gh.tar.gz"
+S="${WORKDIR}/${PN}-${COMMIT}"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+src_prepare() {
+ sed -i "s#-Wall -W -g -O0 -pipe#${CFLAGS}#" Makefile
+ sed -i "s#-o #${LDFLAGS} -o #" Makefile
+ default
+}
+
+src_install() {
+ dodir /usr/bin
+ default
+}
diff --git a/net-analyzer/mdns-scan/metadata.xml b/net-analyzer/mdns-scan/metadata.xml
new file mode 100644
index 000000000000..379bb780d3d8
--- /dev/null
+++ b/net-analyzer/mdns-scan/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <name>Rick Farina</name>
+ <email>zerochaos@gentoo.org</email>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/monitoring-plugins/Manifest b/net-analyzer/monitoring-plugins/Manifest
new file mode 100644
index 000000000000..bf0cd41dd230
--- /dev/null
+++ b/net-analyzer/monitoring-plugins/Manifest
@@ -0,0 +1 @@
+DIST monitoring-plugins-2.4.0.tar.gz 2746382 BLAKE2B 3e062b9392b4e5885a549ca619eee25f29517e83682e0eb76c8780235b48ab26d79994827c1167e981a993ece3f3f339de61874c912e6fcb17b4cb1af22e97d9 SHA512 7e9aae7768ed9fccbaf377fc54a70374f6a41e8e8ef95cf7440e44fca1080eb23e6b3d737214c96d772eb9a32cdfdbf1b88e0eb35eda0690047d5fe1b485a6b2
diff --git a/net-analyzer/monitoring-plugins/metadata.xml b/net-analyzer/monitoring-plugins/metadata.xml
new file mode 100644
index 000000000000..7ca228103c61
--- /dev/null
+++ b/net-analyzer/monitoring-plugins/metadata.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>hydrapolic@gmail.com</email>
+ <name>Tomas Mozes</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>mjo@gentoo.org</email>
+ <name>Michael Orlitzky</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <use>
+ <flag name="dns">
+ Install <pkg>net-dns/bind-tools</pkg> required for monitoring
+ DNS servers. Disabling the flag does not remove any plugins.
+ </flag>
+ <flag name="game">
+ Install <pkg>games-util/qstat</pkg> required for monitoring FPS
+ servers. Disabling the flag does not remove any plugins.
+ </flag>
+ <flag name="fping">
+ Install <pkg>net-analyzer/fping</pkg> required for fancy ping
+ monitoring. Disabling the flag does not remove any plugins.
+ </flag>
+ <flag name="ipv6">
+ Enable ipv6 checks.
+ </flag>
+ <flag name="rpc">
+ Install <pkg>net-nds/rpcbind</pkg> required for monitoring RPC
+ services. Disabling the flag does not remove any plugin file.
+ </flag>
+ <flag name="ssh">
+ Install <pkg>net-misc/openssh</pkg> required for monitoring SSH
+ servers. Disabling the flag does not remove any plugins.
+ </flag>
+ <flag name="snmp">
+ Install <pkg>dev-perl/Net-SNMP</pkg> and
+ <pkg>net-analyzer/net-snmp</pkg> required for monitoring SNMP
+ values. Disabling the flag does not remove any plugins.
+ </flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/monitoring-plugins/monitoring-plugins-2.4.0-r1.ebuild b/net-analyzer/monitoring-plugins/monitoring-plugins-2.4.0-r1.ebuild
new file mode 100644
index 000000000000..cbb8faf88db6
--- /dev/null
+++ b/net-analyzer/monitoring-plugins/monitoring-plugins-2.4.0-r1.ebuild
@@ -0,0 +1,115 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic
+
+DESCRIPTION="50+ standard plugins for Icinga, Naemon, Nagios, Shinken, Sensu"
+HOMEPAGE="https://www.monitoring-plugins.org/"
+SRC_URI="https://www.monitoring-plugins.org/download/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 ~sparc x86"
+IUSE="curl gnutls ipv6 ldap mysql dns fping game postgres radius samba snmp ssh +ssl"
+
+# Most of the plugins use automagic dependencies, i.e. the plugin will
+# get built if the binary it uses is installed. For example, check_snmp
+# will be built only if snmpget from net-analyzer/net-snmp[-minimal] is
+# installed. End result: most of our runtime dependencies are required
+# at build time as well.
+#
+# REAL_DEPEND contains the dependencies that are actually needed to
+# build. DEPEND contains those plus the automagic dependencies.
+#
+REAL_DEPEND="dev-lang/perl
+ curl? (
+ dev-libs/uriparser
+ net-misc/curl
+ )
+ ldap? ( net-nds/openldap:= )
+ mysql? ( || ( dev-db/mysql-connector-c dev-db/mariadb-connector-c ) )
+ postgres? ( dev-db/postgresql:= )
+ ssl? (
+ !gnutls? (
+ dev-libs/openssl:0=
+ )
+ gnutls? ( net-libs/gnutls )
+ )
+ radius? ( net-dialup/freeradius-client )"
+
+DEPEND="${REAL_DEPEND}
+ dns? ( net-dns/bind )
+ game? ( games-util/qstat )
+ fping? ( net-analyzer/fping )
+ samba? ( net-fs/samba )
+ ssh? ( virtual/openssh )
+ snmp? ( dev-perl/Net-SNMP
+ net-analyzer/net-snmp[-minimal] )"
+
+# Basically everything collides with nagios-plugins.
+RDEPEND="${DEPEND}
+ acct-group/nagios
+ acct-user/nagios
+ !net-analyzer/nagios-plugins"
+
+# At least one test is interactive.
+RESTRICT="test"
+
+# These all come from gnulib and the ./configure checks are working as
+# intended when the functions aren't present. Bugs 921190 and 936891.
+QA_CONFIG_IMPL_DECL_SKIP=(
+ MIN
+ fpurge
+ static_assert
+ statvfs64
+ alignof
+)
+
+src_configure() {
+ append-flags -fno-strict-aliasing
+
+ # Use an array to prevent econf from mangling the ping args.
+ local myconf=()
+
+ if use ssl; then
+ myconf+=( $(use_with !gnutls openssl /usr)
+ $(use_with gnutls gnutls /usr) )
+ else
+ myconf+=( --without-openssl )
+ myconf+=( --without-gnutls )
+ fi
+
+ # The autodetection for these two commands can hang if localhost is
+ # down or ICMP traffic is filtered (bug #468296). But also the path
+ # likes to move around on us (bug #883729).
+ myconf+=( --with-ping-command="$(command -v ping) -4 -n -U -w %d -c %d %s" )
+
+ if use ipv6; then
+ myconf+=( --with-ping6-command="$(command -v ping) -6 -n -U -w %d -c %d %s" )
+ fi
+
+ econf \
+ $(use_with curl libcurl) \
+ $(use_with curl uriparser) \
+ $(use_with mysql) \
+ $(use_with ipv6) \
+ $(use_with ldap) \
+ $(use_with postgres pgsql /usr) \
+ $(use_with radius) \
+ "${myconf[@]}" \
+ --libexecdir="/usr/$(get_libdir)/nagios/plugins" \
+ --sysconfdir="/etc/nagios"
+}
+
+DOCS=( ACKNOWLEDGEMENTS AUTHORS CODING ChangeLog FAQ \
+ NEWS README REQUIREMENTS SUPPORT THANKS )
+
+pkg_postinst() {
+ elog "This ebuild has a number of USE flags that determine what you"
+ elog "are able to monitor. Depending on what you want to monitor, some"
+ elog "or all of these USE flags need to be set."
+ elog
+ elog "The plugins are installed in ${EROOT}/usr/$(get_libdir)/nagios/plugins"
+}
diff --git a/net-analyzer/monitoring-plugins/monitoring-plugins-2.4.0-r2.ebuild b/net-analyzer/monitoring-plugins/monitoring-plugins-2.4.0-r2.ebuild
new file mode 100644
index 000000000000..a86935897c03
--- /dev/null
+++ b/net-analyzer/monitoring-plugins/monitoring-plugins-2.4.0-r2.ebuild
@@ -0,0 +1,116 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic
+
+DESCRIPTION="50+ standard plugins for Icinga, Naemon, Nagios, Shinken, Sensu"
+HOMEPAGE="https://www.monitoring-plugins.org/"
+SRC_URI="https://www.monitoring-plugins.org/download/${P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~sparc ~x86"
+IUSE="curl gnutls ipv6 ldap mysql dns fping game postgres radius rpc samba snmp ssh +ssl"
+
+# Most of the plugins use automagic dependencies, i.e. the plugin will
+# get built if the binary it uses is installed. For example, check_snmp
+# will be built only if snmpget from net-analyzer/net-snmp[-minimal] is
+# installed. End result: most of our runtime dependencies are required
+# at build time as well.
+#
+# REAL_DEPEND contains the dependencies that are actually needed to
+# build. DEPEND contains those plus the automagic dependencies.
+#
+REAL_DEPEND="dev-lang/perl
+ curl? (
+ dev-libs/uriparser
+ net-misc/curl
+ )
+ ldap? ( net-nds/openldap:= )
+ mysql? ( || ( dev-db/mysql-connector-c dev-db/mariadb-connector-c ) )
+ postgres? ( dev-db/postgresql:= )
+ ssl? (
+ !gnutls? (
+ dev-libs/openssl:0=
+ )
+ gnutls? ( net-libs/gnutls )
+ )
+ radius? ( net-dialup/freeradius-client )"
+
+DEPEND="${REAL_DEPEND}
+ dns? ( net-dns/bind )
+ game? ( games-util/qstat )
+ fping? ( net-analyzer/fping )
+ rpc? ( net-nds/rpcbind )
+ samba? ( net-fs/samba )
+ ssh? ( virtual/openssh )
+ snmp? ( dev-perl/Net-SNMP
+ net-analyzer/net-snmp[-minimal] )"
+
+# Basically everything collides with nagios-plugins.
+RDEPEND="${DEPEND}
+ acct-group/nagios
+ acct-user/nagios
+ !net-analyzer/nagios-plugins"
+
+# At least one test is interactive.
+RESTRICT="test"
+
+# These all come from gnulib and the ./configure checks are working as
+# intended when the functions aren't present. Bugs 921190 and 936891.
+QA_CONFIG_IMPL_DECL_SKIP=(
+ MIN
+ fpurge
+ static_assert
+ statvfs64
+ alignof
+)
+
+src_configure() {
+ append-flags -fno-strict-aliasing
+
+ # Use an array to prevent econf from mangling the ping args.
+ local myconf=()
+
+ if use ssl; then
+ myconf+=( $(use_with !gnutls openssl /usr)
+ $(use_with gnutls gnutls /usr) )
+ else
+ myconf+=( --without-openssl )
+ myconf+=( --without-gnutls )
+ fi
+
+ # The autodetection for these two commands can hang if localhost is
+ # down or ICMP traffic is filtered (bug #468296). But also the path
+ # likes to move around on us (bug #883729).
+ myconf+=( --with-ping-command="$(command -v ping) -4 -n -U -w %d -c %d %s" )
+
+ if use ipv6; then
+ myconf+=( --with-ping6-command="$(command -v ping) -6 -n -U -w %d -c %d %s" )
+ fi
+
+ econf \
+ $(use_with curl libcurl) \
+ $(use_with curl uriparser) \
+ $(use_with mysql) \
+ $(use_with ipv6) \
+ $(use_with ldap) \
+ $(use_with postgres pgsql /usr) \
+ $(use_with radius) \
+ "${myconf[@]}" \
+ --libexecdir="/usr/$(get_libdir)/nagios/plugins" \
+ --sysconfdir="/etc/nagios"
+}
+
+DOCS=( ACKNOWLEDGEMENTS AUTHORS CODING ChangeLog FAQ \
+ NEWS README REQUIREMENTS SUPPORT THANKS )
+
+pkg_postinst() {
+ elog "This ebuild has a number of USE flags that determine what you"
+ elog "are able to monitor. Depending on what you want to monitor, some"
+ elog "or all of these USE flags need to be set."
+ elog
+ elog "The plugins are installed in ${EROOT}/usr/$(get_libdir)/nagios/plugins"
+}
diff --git a/net-analyzer/mrtg-ping-probe/Manifest b/net-analyzer/mrtg-ping-probe/Manifest
new file mode 100644
index 000000000000..fdfdedeb8310
--- /dev/null
+++ b/net-analyzer/mrtg-ping-probe/Manifest
@@ -0,0 +1 @@
+DIST mrtg-ping-probe-2.2.0.tar.gz 36923 BLAKE2B b4556a46d0d644dc5215b686767370542a0b382287aabe4a9c3c7ed8a165005b7602a83135166b9539f3ac479a397ac6e782ef51eda107140ddb426de0f1397c SHA512 efc86ed732547359d8b2d94da367946d8b573e2b4d1b3d240b8eb7c5bfff17971848ad62c1448cdc0305393193d969361328448d9c9b25ae54866f71614b7cea
diff --git a/net-analyzer/mrtg-ping-probe/files/mrtg-ping-cfg b/net-analyzer/mrtg-ping-probe/files/mrtg-ping-cfg
new file mode 100644
index 000000000000..85a38221b625
--- /dev/null
+++ b/net-analyzer/mrtg-ping-probe/files/mrtg-ping-cfg
@@ -0,0 +1,84 @@
+#!/bin/sh
+#
+# mrtg-ping-cfg { ping | loss } <device> <"Title of page">
+#
+# This creates the mrtg.cfg configurations to do pings to devices.
+# Makes use of mrt-ping-probe by Peter W. Osel <pwo@guug.de> (see below)
+#
+# leewm@sgp.hp.com
+# Hewlett Packard Singapore
+# IT Site Infrastructure Services
+# modifed by "Molchanov Alexander <xorader@mail.ru>"
+
+# location of mrtg ping probe
+PING_PROBE=/usr/bin/mrtg-ping-probe
+
+if [ $# -ne 3 ]
+then
+ head -n 11 $0
+ exit
+fi
+
+if [ $1 == "ping" ] ; then
+ target="$2.ping"
+ MaxBytes=5000
+ AbsMax=10000
+ Unscaled=""
+ YLegend="Round Trip Time"
+ ShortLegend="ms"
+ Legend1="Maximum Round Trip Time in Milli Second"
+ Legend2="Minimum Round Trip Time in Milli Second"
+ Legend3="Maximal 5 Minute Maximum Round Trip Time"
+ Legend4="Maximal 5 Minute Minimum Round Trip Time"
+ LegendI="&nbsp;Max:"
+ LegendO="&nbsp;Min:"
+ PageTop="<H1>$3</H1><P>Actually we are measuring the ping time between our web server and $2."
+elif [ $1 == "loss" ] ; then
+ target="$2.loss"
+ PING_PROBE="$PING_PROBE -p loss/loss"
+ MaxBytes=100
+ AbsMax=101
+ Unscaled="Unscaled[$target]: dwmy"
+ YLegend="% Packet Loss"
+ ShortLegend="%"
+ Legend1="% Packet Loss"
+ Legend2="% Packet Loss"
+ Legend3="Maximal 5 Minute % Packet Loss"
+ Legend4="Maximal 5 Minute % Packet Loss"
+ LegendI="&nbsp;% loss:"
+ LegendO="&nbsp;% loss:"
+ PageTop="<H1>$3</H1><P>Actually we are packet loss between our web server and $2."
+else
+ echo "enter first argument 'ping' or 'loss'" >&2
+ head -n 11 $0
+ exit
+fi
+
+cat <<EOF
+#############################################################
+# $1 stats for $2
+# $3
+
+Title[$target]: $3
+MaxBytes[$target]: $MaxBytes
+AbsMax[$target]: $AbsMax
+Options[$target]: gauge
+Target[$target]: \`$PING_PROBE $2\`
+PageTop[$target]: $PageTop
+YLegend[$target]: $YLegend
+ShortLegend[$target]: $ShortLegend
+Legend1[$target]: $Legend1
+Legend2[$target]: $Legend2
+Legend3[$target]: $Legend3
+Legend4[$target]: $Legend4
+LegendI[$target]: $LegendI
+LegendO[$target]: $LegendO
+WithPeak[$target]: ymwd
+$Unscaled
+
+#-------------------------------------------------------------------
+
+EOF
+
+exit
+
diff --git a/net-analyzer/mrtg-ping-probe/metadata.xml b/net-analyzer/mrtg-ping-probe/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/mrtg-ping-probe/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/mrtg-ping-probe/mrtg-ping-probe-2.2.0-r1.ebuild b/net-analyzer/mrtg-ping-probe/mrtg-ping-probe-2.2.0-r1.ebuild
new file mode 100644
index 000000000000..12267a6386cc
--- /dev/null
+++ b/net-analyzer/mrtg-ping-probe/mrtg-ping-probe-2.2.0-r1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Addon mrtg contrib for stats ping/loss packets"
+HOMEPAGE="http://pwo.de/projects/mrtg/"
+SRC_URI="ftp://ftp.pwo.de/pub/pwo/mrtg/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~x86"
+
+BDEPEND="dev-lang/perl"
+RDEPEND="
+ net-analyzer/mrtg
+"
+
+src_prepare() {
+ default
+ sed -i check-ping-fmt \
+ -e 's:#!/usr/local/bin/perl -w:#!/usr/bin/perl -w:' \
+ || die
+ sed -i mrtg-ping-probe \
+ -e 's:#!/bin/perl:#!/usr/bin/perl:' \
+ || die
+}
+
+src_install() {
+ dodoc ChangeLog NEWS README TODO mrtg.cfg-ping
+ doman mrtg-ping-probe.1
+ dobin check-ping-fmt mrtg-ping-probe "${FILESDIR}"/mrtg-ping-cfg
+}
diff --git a/net-analyzer/mrtg/Manifest b/net-analyzer/mrtg/Manifest
new file mode 100644
index 000000000000..6a206f519059
--- /dev/null
+++ b/net-analyzer/mrtg/Manifest
@@ -0,0 +1 @@
+DIST mrtg-2.17.10.tar.gz 1084792 BLAKE2B a2e69c651a1428514fbe1f4d04cbddde9c7ed3b865d57f204814ec797dabd414c16b03d34bd19a005257938dd9bd2de0e99f641222f240c907fa5f67429710f1 SHA512 b1c5232f1b3dcec39adc4fb5a423738f9470ad470e91c6a918cf3f875e71af263d8e03694c3d66129b2653fa498d8d9d9b95349fe90e9d2e0b3ed6c09d06e080
diff --git a/net-analyzer/mrtg/files/mrtg-2.17.10-c23.patch b/net-analyzer/mrtg/files/mrtg-2.17.10-c23.patch
new file mode 100644
index 000000000000..c090637d5ce3
--- /dev/null
+++ b/net-analyzer/mrtg/files/mrtg-2.17.10-c23.patch
@@ -0,0 +1,87 @@
+From a64a83210643114b3a892e70ce07ded5bd5de054 Mon Sep 17 00:00:00 2001
+From: Joao Eriberto Mota Filho <eriberto@eriberto.pro.br>
+Date: Fri, 23 May 2025 11:45:16 -0300
+Subject: [PATCH] Fix function definitions to use modern ANSI C prototypes
+ (#119)
+
+* Fix function definitions to use modern ANSI C prototypes
+
+This commit solves GCC-15 warnings
+"old-style function definition [-Wold-style-definition]"
+
+Closes #115
+
+* Update CHANGES
+
+---------
+
+Co-authored-by: Tobias Oetiker <tobi@oetiker.ch>
+--- a/src/rateup.c
++++ b/src/rateup.c
+@@ -264,18 +264,11 @@ static double expscale(double y, double maxy)
+ }
+
+ static void
+-image (file, maxvi, maxvo, maxx, maxy, xscale, yscale, growright, step, bits,
+- ytics, yticsf, peak, currdatetimeformat, currdatetimepos)
+- char *file;
+- long long maxvi, maxvo;
+- long maxx;
+- long maxy, growright, step, bits;
+- double xscale, yscale;
+- int ytics; /* number of tics on the y axis */
+- double yticsf; /* scale everything on the y axis with this factor */
+- int peak;
+- char *currdatetimeformat;
+- int currdatetimepos;
++image (char *file, long long maxvi, long long maxvo, long maxx, long maxy, double xscale, double yscale,
++ long growright, long step, long bits, int ytics, double yticsf, int peak, char *currdatetimeformat,
++ int currdatetimepos)
++ /* ytics: number of tics on the y axis */
++ /* yticsf: scale everything on the y axis with this factor */
+ {
+ FILE *fo;
+ char file_tmp[10240];
+@@ -1156,8 +1149,7 @@ image (file, maxvi, maxvo, maxx, maxy, xscale, yscale, growright, step, bits,
+
+
+ static double
+-diff (a, b)
+- char *a, *b;
++diff (char *a, char *b)
+ {
+ char res[MAXL], *a1, *b1, *r1;
+ int c, x, m;
+@@ -1228,8 +1220,7 @@ diff (a, b)
+ }
+
+ static int
+-readhist (file)
+- char *file;
++readhist (char *file)
+ {
+ FILE *fi;
+ int x, retcode = 0;
+@@ -1380,10 +1371,7 @@ readfile ()
+ }
+
+ static void
+-update (in, out, abs_max, absupdate)
+- char *in, *out;
+- long long abs_max;
+- int absupdate;
++update (char *in, char *out, long long abs_max, int absupdate)
+ {
+ FILE *fo;
+ char buf[128], buf1[128], buf2[128];
+@@ -1824,9 +1812,7 @@ readparam (char const *file)
+ }
+
+ int
+-main (argc, argv)
+- int argc;
+- char **argv;
++main (int argc, char **argv)
+ {
+ int x, argi, used, initarg;
+
diff --git a/net-analyzer/mrtg/files/mrtg-2.17.10-implicit.patch b/net-analyzer/mrtg/files/mrtg-2.17.10-implicit.patch
new file mode 100644
index 000000000000..2dff4251cbc5
--- /dev/null
+++ b/net-analyzer/mrtg/files/mrtg-2.17.10-implicit.patch
@@ -0,0 +1,10 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -31,6 +31,7 @@
+ AC_CACHE_VAL(mr_cv_long_long_format_specifier,[
+ for format in ll l q I64; do
+ AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdio.h>
++ #include <stdlib.h>
+ int main()
+ {
+ long long b, a = -0x3AFAFAFAFAFAFAFALL;
diff --git a/net-analyzer/mrtg/files/mrtg-2.17.4-socket6.patch b/net-analyzer/mrtg/files/mrtg-2.17.4-socket6.patch
new file mode 100644
index 000000000000..5540874d9a00
--- /dev/null
+++ b/net-analyzer/mrtg/files/mrtg-2.17.4-socket6.patch
@@ -0,0 +1,11 @@
+--- a/bin/mrtg
++++ b/bin/mrtg
+@@ -300,7 +300,7 @@ sub main {
+ if ($cfg{enableipv6} eq 'yes') {
+ if ( eval {local $SIG{__DIE__};require Socket; require Socket6; require IO::Socket::INET6;}) {
+ import Socket;
+- import Socket6;
++ Socket6->import(qw(inet_pton getaddrinfo));
+ debug('base', "IPv6 libraries found, IPv6 enabled.");
+ } else {
+ warn "$NOW: WARNING: IPv6 libraries not found, IPv6 disabled.\n";
diff --git a/net-analyzer/mrtg/files/mrtg.confd b/net-analyzer/mrtg/files/mrtg.confd
new file mode 100644
index 000000000000..3164a361955d
--- /dev/null
+++ b/net-analyzer/mrtg/files/mrtg.confd
@@ -0,0 +1,16 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+MRTG_CONF="/etc/mrtg.conf"
+MRTG_PID="/var/run/mrtg.pid"
+
+# uncomment and set the following, if you'd like to run mrtg as a
+# different user/group
+#MRTG_USER=""
+#MRTG_GROUP=""
+
+# uncomment if you'd like to enable logging
+#MRTG_LOG="/var/log/mrtg.log"
+
+# set any extra options here
+MRTG_OPTS=""
diff --git a/net-analyzer/mrtg/files/mrtg.rc b/net-analyzer/mrtg/files/mrtg.rc
new file mode 100644
index 000000000000..0ff5d0783f38
--- /dev/null
+++ b/net-analyzer/mrtg/files/mrtg.rc
@@ -0,0 +1,53 @@
+#!/sbin/openrc-run
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ need net
+
+ # if monitoring snmp variables on this machine:
+ # use net-snmpd
+}
+
+checkconfig() {
+ if [ ! -f ${MRTG_CONF} ] ; then
+ eerror "Please create ${MRTG_CONF} (try man cfgmaker)"
+ return 1
+ fi
+
+ mrtg --check ${MRTG_CONF}
+ return $?
+}
+
+start() {
+ # mrtg will not run if LANG=*utf8
+ # use grep instead of bash regexp for bug #159786
+ [ "$(echo $LANG|grep -E '((^[A-Za-z0-9\_\@\-]+\.)|(^))([uU][tT][fF]-?8)$')" ] \
+ && LANG='C'
+
+ checkconfig || return $?
+
+ # enable logging?
+ [ -n "${MRTG_LOG}" ] && \
+ MRTG_OPTS="${MRTG_OPTS} --logging ${MRTG_LOG}"
+
+ # run as a different user?
+ [ -n "${MRTG_USER}" ] && \
+ MRTG_OPTS="${MRTG_OPTS} --user ${MRTG_USER}"
+
+ # run as a different group?
+ [ -n "${MRTG_GROUP}" ] && \
+ MRTG_OPTS="${MRTG_OPTS} --group ${MRTG_GROUP}"
+
+ ebegin "Starting mrtg"
+ start-stop-daemon --start --quiet --pidfile ${MRTG_PID} --name mrtg\
+ --exec /usr/bin/mrtg -- --daemon --pid-file=${MRTG_PID} \
+ ${MRTG_OPTS} ${MRTG_CONF} >/dev/null
+ eend $? "Failed to start mrtg"
+}
+
+stop() {
+ ebegin "Stopping mrtg"
+ start-stop-daemon --stop --quiet --pidfile ${MRTG_PID}
+ eend $? "Failed to stop mrtg"
+}
diff --git a/net-analyzer/mrtg/metadata.xml b/net-analyzer/mrtg/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/mrtg/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/mrtg/mrtg-2.17.10-r1.ebuild b/net-analyzer/mrtg/mrtg-2.17.10-r1.ebuild
new file mode 100644
index 000000000000..270ab21b032d
--- /dev/null
+++ b/net-analyzer/mrtg/mrtg-2.17.10-r1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="A tool to monitor the traffic load on network-links"
+HOMEPAGE="https://oss.oetiker.ch/mrtg/"
+SRC_URI="https://oss.oetiker.ch/mrtg/pub/${P}.tar.gz https://github.com/oetiker/mrtg/releases/download/v${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~hppa ppc ppc64 ~sparc x86"
+IUSE="selinux"
+
+DEPEND="dev-lang/perl
+ >=dev-perl/SNMP_Session-1.13-r2
+ >=dev-perl/Socket6-0.23
+ media-libs/gd[png]"
+RDEPEND="${DEPEND}
+ selinux? ( sec-policy/selinux-mrtg )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.17.4-socket6.patch
+ "${FILESDIR}"/${PN}-2.17.10-implicit.patch
+ "${FILESDIR}"/${PN}-2.17.10-c23.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+
+ rm ./lib/mrtg2/{SNMP_{Session,util},BER}.pm || die
+
+ sed -i \
+ -e 's|main::SL}lib${main::SL|main::SL}'"$(get_libdir)"'${main::SL|g' \
+ $(find bin -type f) contrib/cfgmaker_dlci/cfgmaker_dlci || die
+}
+
+src_install() {
+ keepdir /var/lib/mrtg
+
+ default
+
+ mv "${ED}"/usr/share/doc/{mrtg2,${PF}} || die
+
+ newinitd "${FILESDIR}/mrtg.rc" ${PN}
+ newconfd "${FILESDIR}/mrtg.confd" ${PN}
+}
diff --git a/net-analyzer/mtr/Manifest b/net-analyzer/mtr/Manifest
new file mode 100644
index 000000000000..be1771f41b4e
--- /dev/null
+++ b/net-analyzer/mtr/Manifest
@@ -0,0 +1,2 @@
+DIST mtr-0.95.tar.gz 144541 BLAKE2B 3c972675b97945b96562802c5d0f10de963160682c93c0ea2991b72eca33d136d18948c5e746ca3dfb280ebc9c3ab154e7774f8409ed4e5f7470a8feb128e71b SHA512 a7d69e0c551a10ae80a650a34588119e6c6b124a8c2c93d3de29e5daa6ef99f9217d875529d443c3760cd6fd7bd04d1e9abe33ef12635826c66a98bd776c1690
+DIST mtr-0.96.tar.gz 158043 BLAKE2B c7dff18b6f6e48a648783d719a6cedd14b141fe2013b75031f3ee830e8c4fb9c93639259c860047c8108c21519df30740f7515256ed08552f7697a42e938257b SHA512 893c5f4623ba437bca309633ce1911c900e33a51252fce5f68ea8e74885302f744198e5616ba0155b4e09fb34eedba7e41ac4507403dc9d657e295ccf66c7d31
diff --git a/net-analyzer/mtr/files/mtr-0.88-tinfo.patch b/net-analyzer/mtr/files/mtr-0.88-tinfo.patch
new file mode 100644
index 000000000000..fb50c7e9a0b3
--- /dev/null
+++ b/net-analyzer/mtr/files/mtr-0.88-tinfo.patch
@@ -0,0 +1,14 @@
+https://github.com/traviscross/mtr/pull/368
+--- a/configure.ac
++++ b/configure.ac
+@@ -101,7 +101,10 @@
+ # (On Solaris 11.3, ncurses builds and links for us, but curses does not.)
+ [AC_SEARCH_LIBS(
+ [initscr], [ncurses curses],
++ [AC_SEARCH_LIBS(
++ [raw], [ncurses curses cursesX tinfo],
+ [AC_DEFINE([HAVE_CURSES], [1], [Define if a curses library available])],
++ [with_ncurses=no])],
+ [with_ncurses=no])
+ ])
+ AM_CONDITIONAL([WITH_CURSES], [test "x$with_ncurses" = xyes])
diff --git a/net-analyzer/mtr/files/mtr-0.95-fortify-source-3.patch b/net-analyzer/mtr/files/mtr-0.95-fortify-source-3.patch
new file mode 100644
index 000000000000..0c3d593915e4
--- /dev/null
+++ b/net-analyzer/mtr/files/mtr-0.95-fortify-source-3.patch
@@ -0,0 +1,34 @@
+https://bugs.gentoo.org/911389
+https://github.com/traviscross/mtr/pull/468
+https://github.com/traviscross/mtr/commit/a1548b40c0dcf6dd44c5e6906f829e249428436b
+
+From 5908af4c19188cb17b62f23368b6ef462831a0cb Mon Sep 17 00:00:00 2001
+From: Marcus Meissner <meissner@suse.de>
+Date: Tue, 11 Apr 2023 16:05:36 +0200
+Subject: [PATCH] fixed the sizes passed into snprintf
+
+--- a/ui/report.c
++++ b/ui/report.c
+@@ -140,7 +140,7 @@ void report_close(
+ continue;
+
+ snprintf(fmt, sizeof(fmt), "%%%ds", data_fields[j].length);
+- snprintf(buf + len, sizeof(buf), fmt, data_fields[j].title);
++ snprintf(buf + len, sizeof(buf) - len, fmt, data_fields[j].title);
+ len += data_fields[j].length;
+ }
+ printf("%s\n", buf);
+@@ -172,10 +172,10 @@ void report_close(
+
+ /* 1000.0 is a temporary hack for stats usec to ms, impacted net_loss. */
+ if (strchr(data_fields[j].format, 'f')) {
+- snprintf(buf + len, sizeof(buf), data_fields[j].format,
++ snprintf(buf + len, sizeof(buf) - len, data_fields[j].format,
+ data_fields[j].net_xxx(at) / 1000.0);
+ } else {
+- snprintf(buf + len, sizeof(buf), data_fields[j].format,
++ snprintf(buf + len, sizeof(buf) - len, data_fields[j].format,
+ data_fields[j].net_xxx(at));
+ }
+ len += data_fields[j].length;
+
diff --git a/net-analyzer/mtr/files/mtr-0.96-tinfo.patch b/net-analyzer/mtr/files/mtr-0.96-tinfo.patch
new file mode 100644
index 000000000000..2992d088b65a
--- /dev/null
+++ b/net-analyzer/mtr/files/mtr-0.96-tinfo.patch
@@ -0,0 +1,15 @@
+Fixed version of https://github.com/traviscross/mtr/pull/368
+Bug: https://bugs.gentoo.org/960013
+--- a/configure.ac
++++ b/configure.ac
+@@ -136,7 +136,10 @@ AS_IF([test "x$with_ncurses" = "xyes"],
+ # (On Solaris 11.3, ncurses builds and links for us, but curses does not.)
+ [AC_SEARCH_LIBS(
+ [initscr], [ncursesw ncurses curses],
++ [AC_SEARCH_LIBS(
++ [raw], [ncurses curses cursesX tinfow],
+ [AC_DEFINE([HAVE_CURSES], [1], [Define if a curses library available])],
++ [with_ncurses=no])],
+ [with_ncurses=no])
+ ])
+ AM_CONDITIONAL([WITH_CURSES], [test "x$with_ncurses" = xyes])
diff --git a/net-analyzer/mtr/metadata.xml b/net-analyzer/mtr/metadata.xml
new file mode 100644
index 000000000000..389dae8e34f0
--- /dev/null
+++ b/net-analyzer/mtr/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>sam@gentoo.org</email>
+ <name>Sam James</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <use>
+ <flag name="ipinfo">Disable support for IP address lookups</flag>
+ <flag name="jansson">Enable JSON output support through <pkg>dev-libs/jansson</pkg>
+ </flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/mtr/mtr-0.95-r1.ebuild b/net-analyzer/mtr/mtr-0.95-r1.ebuild
new file mode 100644
index 000000000000..d09ef1692203
--- /dev/null
+++ b/net-analyzer/mtr/mtr-0.95-r1.ebuild
@@ -0,0 +1,68 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools bash-completion-r1 fcaps
+
+DESCRIPTION="My TraceRoute, an Excellent network diagnostic tool"
+HOMEPAGE="https://www.bitwizard.nl/mtr/"
+
+if [[ ${PV} == *9999* ]] ; then
+ EGIT_REPO_URI="https://github.com/traviscross/mtr"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/traviscross/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="gtk +ipinfo +ipv6 jansson ncurses"
+# TODO: This is an inherited RESTRICT - figure out why!
+RESTRICT="test"
+
+RDEPEND="
+ gtk? (
+ dev-libs/glib:2
+ x11-libs/gtk+:3
+ )
+ jansson? ( dev-libs/jansson:= )
+ ncurses? ( sys-libs/ncurses:= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+DOCS=( AUTHORS FORMATS NEWS README.md SECURITY TODO )
+FILECAPS=( cap_net_raw usr/sbin/mtr-packet )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.88-tinfo.patch
+ "${FILESDIR}"/${P}-fortify-source-3.patch
+)
+
+src_prepare() {
+ default
+
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_enable ipv6) \
+ $(use_with gtk) \
+ $(use_with ipinfo) \
+ $(use_with jansson) \
+ $(use_with ncurses) \
+ --with-bashcompletiondir="$(get_bashcompdir)"
+}
+
+pkg_postinst() {
+ fcaps_pkg_postinst
+
+ if use prefix && [[ ${CHOST} == *-darwin* ]] ; then
+ ewarn "mtr needs root privileges to run. To grant them:"
+ ewarn " % sudo chown root ${EPREFIX}/usr/sbin/mtr"
+ ewarn " % sudo chmod u+s ${EPREFIX}/usr/sbin/mtr"
+ fi
+}
diff --git a/net-analyzer/mtr/mtr-0.96-r1.ebuild b/net-analyzer/mtr/mtr-0.96-r1.ebuild
new file mode 100644
index 000000000000..067147b8dfc7
--- /dev/null
+++ b/net-analyzer/mtr/mtr-0.96-r1.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools bash-completion-r1 fcaps
+
+DESCRIPTION="My TraceRoute, an Excellent network diagnostic tool"
+HOMEPAGE="https://www.bitwizard.nl/mtr/"
+
+if [[ ${PV} == *9999* ]] ; then
+ EGIT_REPO_URI="https://github.com/traviscross/mtr"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/traviscross/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="gui +ipinfo +ipv6 jansson ncurses"
+# Tests timeout even w/o sandbox
+RESTRICT="test"
+
+RDEPEND="
+ gui? (
+ dev-libs/glib:2
+ x11-libs/gtk+:3
+ )
+ jansson? ( dev-libs/jansson:= )
+ ncurses? ( sys-libs/ncurses:= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+DOCS=( AUTHORS FORMATS NEWS README.md SECURITY TODO )
+FILECAPS=( cap_net_raw usr/sbin/mtr-packet )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.96-tinfo.patch
+)
+
+src_prepare() {
+ default
+
+ eautoreconf
+}
+
+src_configure() {
+ local myeconfargs=(
+ $(use_enable ipv6)
+ $(use_with gui gtk)
+ $(use_with ipinfo)
+ $(use_with jansson)
+ $(use_with ncurses)
+ --with-bashcompletiondir="$(get_bashcompdir)"
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+pkg_postinst() {
+ fcaps_pkg_postinst
+
+ if use prefix && [[ ${CHOST} == *-darwin* ]] ; then
+ ewarn "mtr needs root privileges to run. To grant them:"
+ ewarn " % sudo chown root ${EPREFIX}/usr/sbin/mtr"
+ ewarn " % sudo chmod u+s ${EPREFIX}/usr/sbin/mtr"
+ fi
+}
diff --git a/net-analyzer/mtr/mtr-9999.ebuild b/net-analyzer/mtr/mtr-9999.ebuild
new file mode 100644
index 000000000000..1a69e6d8298f
--- /dev/null
+++ b/net-analyzer/mtr/mtr-9999.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools bash-completion-r1 fcaps
+
+DESCRIPTION="My TraceRoute, an Excellent network diagnostic tool"
+HOMEPAGE="https://www.bitwizard.nl/mtr/"
+
+if [[ ${PV} == *9999* ]] ; then
+ EGIT_REPO_URI="https://github.com/traviscross/mtr"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/traviscross/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="gui +ipinfo +ipv6 jansson ncurses"
+# Tests timeout even w/o sandbox
+RESTRICT="test"
+
+RDEPEND="
+ gui? (
+ dev-libs/glib:2
+ x11-libs/gtk+:3
+ )
+ jansson? ( dev-libs/jansson:= )
+ ncurses? ( sys-libs/ncurses:= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+DOCS=( AUTHORS FORMATS NEWS README.md SECURITY TODO )
+FILECAPS=( cap_net_raw usr/sbin/mtr-packet )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.96-tinfo.patch
+)
+
+src_prepare() {
+ default
+
+ eautoreconf
+}
+
+src_configure() {
+ local myeconfargs=(
+ $(use_enable ipv6)
+ $(use_with gui gtk)
+ $(use_with ipinfo)
+ $(use_with jansson)
+ $(use_with ncurses)
+ --with-bashcompletiondir="$(get_bashcompdir)"
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+pkg_postinst() {
+ fcaps_pkg_postinst
+
+ if use prefix && [[ ${CHOST} == *-darwin* ]] ; then
+ ewarn "mtr needs root privileges to run. To grant them:"
+ ewarn " % sudo chown root ${EPREFIX}/usr/sbin/mtr"
+ ewarn " % sudo chmod u+s ${EPREFIX}/usr/sbin/mtr"
+ fi
+}
diff --git a/net-analyzer/multimon-ng/Manifest b/net-analyzer/multimon-ng/Manifest
new file mode 100644
index 000000000000..a52bf29cdaf9
--- /dev/null
+++ b/net-analyzer/multimon-ng/Manifest
@@ -0,0 +1 @@
+DIST multimon-ng-1.3.0.tar.gz 2447632 BLAKE2B 6607c53677e746fc22baaca708cffab97bd1a411032e8bd6ec15410571a7c5dfaa92a2ab5d61199859acc8ffa63ee6ac97f54dde966daf4984d62ae1dfedc902 SHA512 1dad367d6de1c84c22523b7bdffff2835de496b2250a6642b6da950f1dc6d64b0c5e8e3ab7729032a8a386740d6c1c64afcd5514e131777df0123e4a29f33827
diff --git a/net-analyzer/multimon-ng/metadata.xml b/net-analyzer/multimon-ng/metadata.xml
new file mode 100644
index 000000000000..2945e7153ccb
--- /dev/null
+++ b/net-analyzer/multimon-ng/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>zerochaos@gentoo.org</email>
+ <name>Rick Farina</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>radio@gentoo.org</email>
+ <name>Radio</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:multimon-ng_project:multimon-ng</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/multimon-ng/multimon-ng-1.3.0.ebuild b/net-analyzer/multimon-ng/multimon-ng-1.3.0.ebuild
new file mode 100644
index 000000000000..64933423f307
--- /dev/null
+++ b/net-analyzer/multimon-ng/multimon-ng-1.3.0.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="a fork of multimon, decodes multiple digital transmission modes"
+HOMEPAGE="https://github.com/EliasOenal/multimon-ng"
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/EliasOenal/multimon-ng.git"
+else
+ SRC_URI="https://github.com/EliasOenal/multimonNG/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="pulseaudio X"
+
+DEPEND="pulseaudio? ( media-libs/libpulse )
+ X? ( x11-libs/libX11 )"
+RDEPEND="${DEPEND}
+ media-sound/sox"
+
+src_prepare() {
+ use pulseaudio || sed -i '/find_package( PulseAudio )/d' CMakeLists.txt
+ use X || sed -i '/find_package( X11 )/d' CMakeLists.txt
+ cmake_src_prepare
+}
diff --git a/net-analyzer/multimon-ng/multimon-ng-9999.ebuild b/net-analyzer/multimon-ng/multimon-ng-9999.ebuild
new file mode 100644
index 000000000000..8144bfe94435
--- /dev/null
+++ b/net-analyzer/multimon-ng/multimon-ng-9999.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="a fork of multimon, decodes multiple digital transmission modes"
+HOMEPAGE="https://github.com/EliasOenal/multimon-ng"
+
+if [[ ${PV} == 9999* ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/EliasOenal/multimon-ng.git"
+else
+ SRC_URI="https://github.com/EliasOenal/multimonNG/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm ~x86"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="pulseaudio X"
+
+DEPEND="pulseaudio? ( media-libs/libpulse )
+ X? ( x11-libs/libX11 )"
+RDEPEND="${DEPEND}
+ media-sound/sox"
+
+src_prepare() {
+ use pulseaudio || sed -i '/find_package( PulseAudio )/d' CMakeLists.txt
+ use X || sed -i '/find_package( X11 )/d' CMakeLists.txt
+ cmake_src_prepare
+}
diff --git a/net-analyzer/multipath-tcp-tools/Manifest b/net-analyzer/multipath-tcp-tools/Manifest
new file mode 100644
index 000000000000..0911f9054218
--- /dev/null
+++ b/net-analyzer/multipath-tcp-tools/Manifest
@@ -0,0 +1 @@
+DIST multipath-tcp-tools-2018_p12_p21.tar.gz 199660476 BLAKE2B a66274229e42c39c2c2821a02087602c76cd725bf850080db8ac9123b35428eaa2c2696d089ebb097365d912e37068b696b0e4f0afecf71f10625be0e75b055b SHA512 2be083f88d987bd5dd069319aecd427c46c962a24d1573b5dca32ec0a209f0b4ed9564968c0041813f7fa62bf2f0ff4bd1307eb562240687666a5636e807b8c3
diff --git a/net-analyzer/multipath-tcp-tools/metadata.xml b/net-analyzer/multipath-tcp-tools/metadata.xml
new file mode 100644
index 000000000000..7f1483fa5be3
--- /dev/null
+++ b/net-analyzer/multipath-tcp-tools/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ </maintainer>
+ <longdescription>
+ Contains a collection of applications written in C to help
+ both analyze and visualize MPTCP packet traces.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/multipath-tcp-tools/multipath-tcp-tools-2018_p12_p21-r1.ebuild b/net-analyzer/multipath-tcp-tools/multipath-tcp-tools-2018_p12_p21-r1.ebuild
new file mode 100644
index 000000000000..ad249861ca1a
--- /dev/null
+++ b/net-analyzer/multipath-tcp-tools/multipath-tcp-tools-2018_p12_p21-r1.ebuild
@@ -0,0 +1,46 @@
+# Copyright 2021-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit flag-o-matic toolchain-funcs
+
+DESCRIPTION="Analysis tools for Multipath Transmission Control Protocol (MPTCP)"
+HOMEPAGE="https://github.com/nasa/multipath-tcp-tools"
+SRC_URI="https://github.com/nasa/multipath-tcp-tools/archive/v${PV//_p/-}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="NOSA"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="
+ dev-libs/openssl:=
+ net-libs/libpcap
+"
+RDEPEND="
+ ${DEPEND}
+"
+S=${WORKDIR}/${P//_p/-}/network-traffic-analysis-tools
+
+src_prepare() {
+ sed -i \
+ -e 's|/man/man1|/share&|g' \
+ -e 's|$(LDLIBS)|$(LDFLAGS) &|g' \
+ Makefile || die
+
+ default
+}
+
+src_compile() {
+ # bug #861179
+ append-flags -fno-strict-aliasing
+
+ emake \
+ CXX="$(tc-getCXX)" \
+ CXXFLAGS="${CXXFLAGS}"
+}
+
+src_install() {
+ emake PREFIX="${D}/${EPREFIX}/usr" install
+
+ dodoc README
+}
diff --git a/net-analyzer/multipath-tcp-tools/multipath-tcp-tools-999999.ebuild b/net-analyzer/multipath-tcp-tools/multipath-tcp-tools-999999.ebuild
new file mode 100644
index 000000000000..3178d81adff6
--- /dev/null
+++ b/net-analyzer/multipath-tcp-tools/multipath-tcp-tools-999999.ebuild
@@ -0,0 +1,46 @@
+# Copyright 2021-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit git-r3 flag-o-matic toolchain-funcs
+
+DESCRIPTION="Analysis tools for Multipath Transmission Control Protocol (MPTCP)"
+HOMEPAGE="https://github.com/nasa/multipath-tcp-tools"
+EGIT_REPO_URI="https://github.com/nasa/multipath-tcp-tools/"
+
+LICENSE="NOSA"
+SLOT="0"
+KEYWORDS=""
+
+DEPEND="
+ dev-libs/openssl:=
+ net-libs/libpcap
+"
+RDEPEND="
+ ${DEPEND}
+"
+S=${WORKDIR}/${P}/network-traffic-analysis-tools
+
+src_prepare() {
+ sed -i \
+ -e 's|/man/man1|/share&|g' \
+ -e 's|$(LDLIBS)|$(LDFLAGS) &|g' \
+ Makefile || die
+
+ default
+}
+
+src_compile() {
+ # bug #861179
+ append-flags -fno-strict-aliasing
+
+ emake \
+ CXX="$(tc-getCXX)" \
+ CXXFLAGS="${CXXFLAGS}"
+}
+
+src_install() {
+ emake PREFIX="${D}/${EPREFIX}/usr" install
+
+ dodoc README
+}
diff --git a/net-analyzer/munin-plugins-zfs/Manifest b/net-analyzer/munin-plugins-zfs/Manifest
new file mode 100644
index 000000000000..1a92625b81a4
--- /dev/null
+++ b/net-analyzer/munin-plugins-zfs/Manifest
@@ -0,0 +1 @@
+DIST munin-plugins-zfs-0.20170127.tar.gz 2482 BLAKE2B b861f6c4d43690401b7dd82b4a520832d47028ed7d49a43dc3fe943a5845d23e334845758c5542270315262fa287dc7a1aee220fc936695e1aaba1db8947f6c1 SHA512 9b7842c6945865be058f7c00a5ffcdd8fb8c50aa1775f5196ce25ffc33b527b0c8d5c42aa7dc21ff81fd4aac16c9c1084c31af44192fe64b6a2fbcd2ccc4bbee
diff --git a/net-analyzer/munin-plugins-zfs/metadata.xml b/net-analyzer/munin-plugins-zfs/metadata.xml
new file mode 100644
index 000000000000..5f33304011d5
--- /dev/null
+++ b/net-analyzer/munin-plugins-zfs/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/munin-plugins-zfs/munin-plugins-zfs-0.20170127-r1.ebuild b/net-analyzer/munin-plugins-zfs/munin-plugins-zfs-0.20170127-r1.ebuild
new file mode 100644
index 000000000000..54b8503c30ee
--- /dev/null
+++ b/net-analyzer/munin-plugins-zfs/munin-plugins-zfs-0.20170127-r1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+COMMIT="385f9e4cda592ace95b47c69db76553bcb6a42d6"
+
+DESCRIPTION="A Munin plugin for monitoring ZFS on Linux"
+HOMEPAGE="https://github.com/alexclear/ZoL-munin-plugin"
+SRC_URI="https://github.com/alexclear/ZoL-munin-plugin/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
+S=${WORKDIR}/ZoL-munin-plugin-${COMMIT}
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND="net-analyzer/munin"
+RDEPEND="${DEPEND}
+ app-alternatives/bc
+"
+
+src_install() {
+ dodoc README.md
+
+ exeinto /usr/libexec/munin/plugins
+ doexe zfs_stats_
+}
diff --git a/net-analyzer/munin/Manifest b/net-analyzer/munin/Manifest
new file mode 100644
index 000000000000..0cfaff703fd3
--- /dev/null
+++ b/net-analyzer/munin/Manifest
@@ -0,0 +1,2 @@
+DIST munin-2.0.75.tar.gz 2258514 BLAKE2B 689b436913a931c9002757267db236ba4ab1da947552c43ad2b96c2e5b26427499e681d0606d0045cfbbd90b70a69572b8550660a598d672babeba8388feacf5 SHA512 cceb47c27bfb3080980fd6342e805b5b9fecbef7033d6f2a83fe6c78d20f943961c9f1775ef5e464e49c25c9d246606594f2844827b38d34c04016f15dd68613
+DIST munin-2.0.76.tar.gz 2258538 BLAKE2B 74d8d055be52f605b2d0f2551328bd425e9550a7dd86740479f7a6efd9a9d8be7a78b4075fe68a9c658981b2089d6277eb51b758fb8ba341c149117457ab4696 SHA512 e43d8f123cb6bf9a1b99dde4fe93440e256b3950ec1f79923998f83b14530bba24dab87ece1d3e7e5bf3afd645eafa6c1055d1119748e76230cfb29136712086
diff --git a/net-analyzer/munin/files/logrotate.d-munin.3 b/net-analyzer/munin/files/logrotate.d-munin.3
new file mode 100644
index 000000000000..5133c47e8ba1
--- /dev/null
+++ b/net-analyzer/munin/files/logrotate.d-munin.3
@@ -0,0 +1,33 @@
+/var/log/munin/munin-node.log {
+ daily
+ missingok
+ rotate 7
+ compress
+ delaycompress
+ notifempty
+ create 640 root root
+ postrotate
+ test -e /run/openrc/softlevel && /etc/init.d/munin-node restart 1>/dev/null || true
+ test -e /run/systemd/system && systemctl restart munin-node 1>/dev/null || true
+ endscript
+}
+
+/var/log/munin/munin-update.log /var/log/munin/munin-graph.log /var/log/munin/munin-html.log /var/log/munin/munin-limits.log {
+ daily
+ missingok
+ rotate 7
+ compress
+ delaycompress
+ notifempty
+ nocreate
+}
+
+/var/log/munin/munin-cgi-graph.log /var/log/munin/munin-cgi-html.log {
+ daily
+ missingok
+ rotate 7
+ compress
+ delaycompress
+ notifempty
+ create 640 @CGIUSER@
+}
diff --git a/net-analyzer/munin/files/logrotate.d-munin.4 b/net-analyzer/munin/files/logrotate.d-munin.4
new file mode 100644
index 000000000000..8bbb6422620b
--- /dev/null
+++ b/net-analyzer/munin/files/logrotate.d-munin.4
@@ -0,0 +1,33 @@
+/var/log/munin/munin-node.log {
+ daily
+ missingok
+ rotate 7
+ compress
+ delaycompress
+ notifempty
+ create 640 root root
+ postrotate
+ test -e /run/openrc/softlevel && /etc/init.d/munin-node restart 1>/dev/null || true
+ test -e /run/systemd/system && systemctl restart munin-node 1>/dev/null || true
+ endscript
+}
+
+/var/log/munin/munin-update.log /var/log/munin/munin-graph.log /var/log/munin/munin-html.log /var/log/munin/munin-limits.log {
+ daily
+ missingok
+ rotate 7
+ compress
+ delaycompress
+ notifempty
+ nocreate
+}
+
+/var/log/munin/munin-cgi-graph.log /var/log/munin/munin-cgi-html.log {
+ daily
+ missingok
+ rotate 7
+ compress
+ delaycompress
+ notifempty
+ create 640 @CGIUSER@ root
+}
diff --git a/net-analyzer/munin/files/logrotate.d-munin.5 b/net-analyzer/munin/files/logrotate.d-munin.5
new file mode 100644
index 000000000000..8238d1a56bdf
--- /dev/null
+++ b/net-analyzer/munin/files/logrotate.d-munin.5
@@ -0,0 +1,33 @@
+/var/log/munin/munin-node.log {
+ daily
+ missingok
+ rotate 7
+ compress
+ delaycompress
+ notifempty
+ create 640 root root
+ postrotate
+ test -e /run/openrc/softlevel && /etc/init.d/munin-node --ifstarted restart 1>/dev/null || true
+ test -e /run/systemd/system && systemctl try-restart munin-node 1>/dev/null || true
+ endscript
+}
+
+/var/log/munin/munin-update.log /var/log/munin/munin-graph.log /var/log/munin/munin-html.log /var/log/munin/munin-limits.log {
+ daily
+ missingok
+ rotate 7
+ compress
+ delaycompress
+ notifempty
+ nocreate
+}
+
+/var/log/munin/munin-cgi-graph.log /var/log/munin/munin-cgi-html.log {
+ daily
+ missingok
+ rotate 7
+ compress
+ delaycompress
+ notifempty
+ create 640 @CGIUSER@ root
+}
diff --git a/net-analyzer/munin/files/munin-1.3.2-plugins.conf b/net-analyzer/munin/files/munin-1.3.2-plugins.conf
new file mode 100644
index 000000000000..e85666b77013
--- /dev/null
+++ b/net-analyzer/munin/files/munin-1.3.2-plugins.conf
@@ -0,0 +1,80 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+#
+# This file contains configuration options for the plugins. Three
+# options are understood by munin-node itself:
+#
+# user <user> # Set the user to run the plugin as
+# group <group> # Set the group to run the plugin as
+# command <command> # Run <command> instead of the plugin. %c
+# expands to what would normally be run.
+# env.<variable> # Sets <variable> in the plugin's environment, see the
+# individual plugins to find out which variables they
+# care about.
+#
+#
+
+[smart_*]
+user root
+group disk
+
+# ipmitool and freeipmi need access to the IPMI device nodes, which
+# are only readable by root
+[ipmi_*]
+user root
+
+[freeipmi_*]
+user root
+
+# Example for a 3ware 8000-series card, with 2 disks
+# use /dev/twe0 as the actual device
+# and replicate this entry for each drive, increasing the number in -d
+#[smart_3ware-0_twe0]
+#user root
+#group root
+#env.smartargs -H -i -c -l error -l selftest -l selective -a -d 3ware,0
+#[smart_3ware-1_twe0]
+#user root
+#group root
+#env.smartargs -H -i -c -l error -l selftest -l selective -a -d 3ware,1
+
+[bind9*]
+user root
+
+[iostat*]
+user munin
+group munin
+
+[iostat_ios]
+user root
+group disk
+
+[vlan*]
+user root
+
+[postfix*]
+user root
+env.logfile maillog
+
+[sendmail*]
+env.mspqueue /var/spool/clientmqueue
+
+[mysql*]
+#env.mysqlopts -u someuser
+
+[exim*]
+group mail
+
+[cps*]
+user root
+
+[mailman]
+env.logfile /var/lib/mailman/logs/post
+env.libdir /var/lib/mailman
+env.lister /usr/lib/mailman/bin/list_members
+
+# More 3ware examples
+#[hddtemp_smartctl]
+#env.drives twe0_0 twe0_1 hda
+#env.type_twe0_0 3ware,0
+#env.type_twe0_1 3ware,1
diff --git a/net-analyzer/munin/files/munin-async.service b/net-analyzer/munin/files/munin-async.service
new file mode 100644
index 000000000000..add6d238f456
--- /dev/null
+++ b/net-analyzer/munin/files/munin-async.service
@@ -0,0 +1,10 @@
+[Unit]
+Description=Munin Async Service
+After=syslog.target network.target
+
+[Service]
+PIDFile=/run/munin/munin-asyncd.pid
+ExecStart=/usr/libexec/munin/munin-asyncd
+
+[Install]
+WantedBy=multi-user.target
diff --git a/net-analyzer/munin/files/munin-asyncd.init.2 b/net-analyzer/munin/files/munin-asyncd.init.2
new file mode 100644
index 000000000000..c9fc267f12ea
--- /dev/null
+++ b/net-analyzer/munin/files/munin-asyncd.init.2
@@ -0,0 +1,20 @@
+#!/sbin/openrc-run
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+command=/usr/libexec/munin/munin-asyncd
+command_args="--fork"
+pidfile="/run/munin-asyncd.pid"
+command_background="yes"
+command_user="munin-async"
+
+depend() {
+ need munin-node
+ before cron
+}
+
+start_pre() {
+ checkpath -d -o munin-async:munin -m 0750 /var/spool/munin-async
+}
+
+# vim: filetype=gentoo-init-d:
diff --git a/net-analyzer/munin/files/munin-graph.service b/net-analyzer/munin/files/munin-graph.service
new file mode 100644
index 000000000000..9aea1da64e95
--- /dev/null
+++ b/net-analyzer/munin/files/munin-graph.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Munin FastCGI Graph
+Requires=munin-graph.socket
+
+[Service]
+User=munin
+Group=munin
+ExecStart=/usr/libexec/munin/munin-graph
+StandardInput=socket
+StandardOutput=inherit
+StandardError=journal
diff --git a/net-analyzer/munin/files/munin-graph.socket b/net-analyzer/munin/files/munin-graph.socket
new file mode 100644
index 000000000000..533c709c50ec
--- /dev/null
+++ b/net-analyzer/munin/files/munin-graph.socket
@@ -0,0 +1,8 @@
+[Unit]
+Description=Munin FastCGI Graph Socket
+
+[Socket]
+ListenStream=/run/munin/fcgi-graph.sock
+
+[Install]
+WantedBy=sockets.target
diff --git a/net-analyzer/munin/files/munin-html.service b/net-analyzer/munin/files/munin-html.service
new file mode 100644
index 000000000000..09fdf162722b
--- /dev/null
+++ b/net-analyzer/munin/files/munin-html.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Munin FastCGI HTML
+Requires=munin-html.socket
+
+[Service]
+User=munin
+Group=munin
+ExecStart=/usr/libexec/munin/munin-html
+StandardInput=socket
+StandardOutput=inherit
+StandardError=journal
diff --git a/net-analyzer/munin/files/munin-html.socket b/net-analyzer/munin/files/munin-html.socket
new file mode 100644
index 000000000000..52fc3c354d33
--- /dev/null
+++ b/net-analyzer/munin/files/munin-html.socket
@@ -0,0 +1,8 @@
+[Unit]
+Description=Munin FastCGI HTML Socket
+
+[Socket]
+ListenStream=/run/munin/fcgi-html.sock
+
+[Install]
+WantedBy=sockets.target
diff --git a/net-analyzer/munin/files/munin-node.service b/net-analyzer/munin/files/munin-node.service
new file mode 100644
index 000000000000..92c314b6ec33
--- /dev/null
+++ b/net-analyzer/munin/files/munin-node.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Munin Node Service
+After=syslog.target network.target
+
+[Service]
+Type=forking
+PIDFile=/run/munin-node.pid
+ExecStart=/usr/sbin/munin-node
+
+[Install]
+WantedBy=multi-user.target
diff --git a/net-analyzer/munin/files/munin-node_conf.d_1.4.6-r2 b/net-analyzer/munin/files/munin-node_conf.d_1.4.6-r2
new file mode 100644
index 000000000000..79b0e14ef7fd
--- /dev/null
+++ b/net-analyzer/munin/files/munin-node_conf.d_1.4.6-r2
@@ -0,0 +1,7 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+# Set to the nice level for daemon
+NICE_LEVEL=1
+
+# vim: filetype=gentoo-conf-d:
diff --git a/net-analyzer/munin/files/munin-node_init.d_2.0.73 b/net-analyzer/munin/files/munin-node_init.d_2.0.73
new file mode 100644
index 000000000000..ef9ff691adeb
--- /dev/null
+++ b/net-analyzer/munin/files/munin-node_init.d_2.0.73
@@ -0,0 +1,27 @@
+#!/sbin/openrc-run
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+get_munin_config() {
+ awk '$1 == "'$1'" { s=$2 } END { print s }' "$CFGFILE"
+}
+
+: ${CFGFILE:=/etc/munin/munin-node.conf}
+
+command=/usr/sbin/munin-node
+command_args="--config ${CFGFILE}"
+pidfile=$(get_munin_config pid_file)
+start_stop_daemon_args="--nicelevel ${NICE_LEVEL:-0} --wait 1500"
+extra_started_commands="reload"
+
+depend() {
+ config "$CFGFILE"
+
+ before cron
+ need hostname net
+
+ [ "$(get_munin_config log_file)" = "Sys::Syslog" ] && \
+ use logger
+}
+
+# vim: filetype=gentoo-init-d:
diff --git a/net-analyzer/munin/files/munin.apache.include-2.4-r1 b/net-analyzer/munin/files/munin.apache.include-2.4-r1
new file mode 100644
index 000000000000..290c2818eb9d
--- /dev/null
+++ b/net-analyzer/munin/files/munin.apache.include-2.4-r1
@@ -0,0 +1,29 @@
+# -*- apache -*-
+
+<IfDefine MUNIN_HTML_CGI>
+RewriteEngine on
+
+RewriteRule ^/favicon.ico /static/favicon.ico [L]
+
+RewriteCond %{REQUEST_URI} (/|\.html)$
+RewriteCond %{REQUEST_URI} !/static
+RewriteRule ^/(.*) /munin-cgi/munin-cgi-html/$1 [PT,L]
+RewriteRule ^/munin-cgi/munin-cgi-graph/(.*) /$1
+RewriteCond %{REQUEST_URI} !^/static
+RewriteRule ^/(.*.png) /munin-cgi/munin-cgi-graph/$1? [L,PT]
+
+ScriptAlias /munin-cgi/munin-cgi-graph /usr/libexec/munin/cgi/munin-cgi-graph
+ScriptAlias /munin-cgi/munin-cgi-html /usr/libexec/munin/cgi/munin-cgi-html
+</IfDefine>
+
+<Directory /usr/libexec/munin/cgi/>
+ Options +ExecCGI
+ Require all granted
+
+ <IfModule mod_fcgid.c>
+ SetHandler fcgid-script
+ </IfModule>
+ <IfModule !mod_fcgid.c>
+ SetHandler cgi-script
+ </IfModule>
+</Directory>
diff --git a/net-analyzer/munin/files/patches/0002-build-create-an-install-minimal-target-that-only-ins.patch b/net-analyzer/munin/files/patches/0002-build-create-an-install-minimal-target-that-only-ins.patch
new file mode 100644
index 000000000000..fee72bc23ad3
--- /dev/null
+++ b/net-analyzer/munin/files/patches/0002-build-create-an-install-minimal-target-that-only-ins.patch
@@ -0,0 +1,36 @@
+From 75ae794b1c497a82c4ce8f63c9d016cd11d3c7ba Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Diego=20Elio=20Petten=C3=B2?= <flameeyes@flameeyes.eu>
+Date: Sun, 21 Oct 2012 13:39:21 -0700
+Subject: [PATCH 2/7] build: create an install-minimal target that only
+ installs the Node components
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This is what Gentoo does right now manually, it's easier to maintain
+here though, and users might want to do the same if they are
+installing from sources, and only want a node.
+
+Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
+---
+ Makefile | 4 +++-
+ 1 file changed, 3 insertions(+), 1 deletion(-)
+
+diff --git a/Makefile b/Makefile
+index cdc3577..c119d38 100644
+--- a/Makefile
++++ b/Makefile
+@@ -64,7 +64,9 @@ tags:
+
+ ######################################################################
+
+-install: install-master-prime install-common-prime install-node-prime install-plugins-prime $(JAVA_INSTALL) install-man install-async-prime
++install: install-master-prime install-minimal install-man
++
++install-minimal: install-common-prime install-node-prime install-plugins-prime $(JAVA_INSTALL) install-async-prime
+
+ install-pre: Makefile Makefile.config
+ @$(CHECKUSER)
+--
+2.2.1
+
diff --git a/net-analyzer/munin/files/patches/0003-master-make-it-possible-to-configure-the-default-cgi.patch b/net-analyzer/munin/files/patches/0003-master-make-it-possible-to-configure-the-default-cgi.patch
new file mode 100644
index 000000000000..63897f552c9a
--- /dev/null
+++ b/net-analyzer/munin/files/patches/0003-master-make-it-possible-to-configure-the-default-cgi.patch
@@ -0,0 +1,113 @@
+From b634d1396bc2fba170b414f09ea07d0de702fdb8 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Diego=20Elio=20Petten=C3=B2?= <flameeyes@flameeyes.eu>
+Date: Sun, 4 Nov 2012 11:18:11 -0800
+Subject: [PATCH 3/7] master: make it possible to configure the default cgi-tmp
+ directory.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This allows distributions to use, for instance, /var/cache/munin-cgi,
+so that /var/lib preserves its designed purpose.
+
+Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
+---
+ Makefile | 7 ++++---
+ Makefile.config | 3 +++
+ common/lib/Munin/Common/Defaults.pm | 2 +-
+ master/_bin/munin-cgi-graph.in | 2 +-
+ master/lib/Munin/Master/Config.pm | 2 +-
+ master/munin.conf.in | 2 +-
+ 6 files changed, 11 insertions(+), 7 deletions(-)
+
+diff --git a/Makefile b/Makefile
+index c119d38..2e30052 100644
+--- a/Makefile
++++ b/Makefile
+@@ -87,14 +87,14 @@ install-master-prime: $(INFILES_MASTER) install-pre install-master
+ mkdir -p $(PERLLIB)/Munin/Master
+ mkdir -p $(HTMLDIR)
+ mkdir -p $(DBDIR)
+- mkdir -p $(DBDIR)/cgi-tmp
++ mkdir -p $(CGITMPDIR)
+ mkdir -p $(CGIDIR)
+
+ $(CHOWN) $(USER) $(HTMLDIR) $(DBDIR)
+ $(CHMOD) 0755 $(DBDIR)
+
+- $(CHOWN) $(CGIUSER) $(DBDIR)/cgi-tmp
+- $(CHMOD) 0755 $(DBDIR)/cgi-tmp
++ $(CHOWN) $(CGIUSER) $(CGITMPDIR)
++ $(CHMOD) 0755 $(CGITMPDIR)
+
+ for p in master/www/*.tmpl ; do \
+ $(INSTALL) -m 0644 "$$p" $(CONFDIR)/templates/ ; \
+diff --git a/Makefile.config b/Makefile.config
+index f5557ea..4378b60 100644
+--- a/Makefile.config
++++ b/Makefile.config
+@@ -44,6 +44,9 @@ CGIDIR = $(PREFIX)/www/cgi
+ # Where to put internal data for master (RRD, internal files, ...)
+ DBDIR = $(DESTDIR)/var/opt/munin
+
++# Where to put CGI cached files (for master only)
++CGITMPDIR = $(DBDIR)/cgi-tmp
++
+ # Where to put internal data for node (plugin state, ...)
+ DBDIRNODE = $(DESTDIR)/var/opt/munin-node
+
+diff --git a/common/lib/Munin/Common/Defaults.pm b/common/lib/Munin/Common/Defaults.pm
+index 131f52c..787b596 100644
+--- a/common/lib/Munin/Common/Defaults.pm
++++ b/common/lib/Munin/Common/Defaults.pm
+@@ -25,7 +25,7 @@ our $MUNIN_DOCDIR = '';
+ our $MUNIN_LIBDIR = '';
+ our $MUNIN_HTMLDIR = '';
+ our $MUNIN_CGIDIR = '';
+-our $MUNIN_CGITMPDIR = '';
++our $MUNIN_CGITMPDIR = '';
+ our $MUNIN_DBDIR = '';
+ our $MUNIN_PLUGSTATE = '';
+ our $MUNIN_SPOOLDIR = '';
+diff --git a/master/_bin/munin-cgi-graph.in b/master/_bin/munin-cgi-graph.in
+index 651cf8c..f5a7ccd 100755
+--- a/master/_bin/munin-cgi-graph.in
++++ b/master/_bin/munin-cgi-graph.in
+@@ -337,7 +337,7 @@ sub get_picture_filename {
+ my $params = shift;
+
+ # XXX - hack to fix cgitmpdir default
+- $config->{cgitmpdir} ||= "$Munin::Common::Defaults::MUNIN_DBDIR/cgi-tmp";
++ $config->{cgitmpdir} ||= "$Munin::Common::Defaults::MUNIN_CGITMPDIR";
+ my $cgi_tmp_dir = $config->{cgitmpdir} . "/munin-cgi-graph";
+
+ $params = $params ? "?$params" : "";
+diff --git a/master/lib/Munin/Master/Config.pm b/master/lib/Munin/Master/Config.pm
+index 291ffaf..b5c0813 100644
+--- a/master/lib/Munin/Master/Config.pm 2017-03-03 01:02:39.000000000 +0100
++++ b/master/lib/Munin/Master/Config.pm 2017-07-18 19:29:44.861742592 +0200
+@@ -161,7 +161,7 @@
+ tls_verify_depth => 5,
+ tmpldir => "$Munin::Common::Defaults::MUNIN_CONFDIR/templates",
+ staticdir => "$Munin::Common::Defaults::MUNIN_CONFDIR/static",
+- cgitmpdir => "$Munin::Common::Defaults::MUNIN_DBDIR/cgi-tmp",
++ cgitmpdir => "$Munin::Common::Defaults::MUNIN_CGITMPDIR",
+ ssh_command => "ssh",
+ ssh_options => "-o ChallengeResponseAuthentication=no -o StrictHostKeyChecking=no",
+ }, $class ),
+diff --git a/master/munin.conf.in b/master/munin.conf.in
+index 8d1a75f..046f369 100644
+--- a/master/munin.conf.in
++++ b/master/munin.conf.in
+@@ -21,7 +21,7 @@
+ # temporary cgi files are here. note that it has to be writable by
+ # the cgi user (usually nobody or httpd).
+ #
+-# cgitmpdir @@DBDIR@@/cgi-tmp
++# cgitmpdir @@CGITMPDIR@@
+
+ # (Exactly one) directory to include all files from.
+ includedir @@CONFDIR@@/munin-conf.d
+--
+2.2.1
+
diff --git a/net-analyzer/munin/files/patches/0005-node-use-Net-Domain-hostfqdn-instead-of-Sys-Hostname.patch b/net-analyzer/munin/files/patches/0005-node-use-Net-Domain-hostfqdn-instead-of-Sys-Hostname.patch
new file mode 100644
index 000000000000..214cc4c4e6b8
--- /dev/null
+++ b/net-analyzer/munin/files/patches/0005-node-use-Net-Domain-hostfqdn-instead-of-Sys-Hostname.patch
@@ -0,0 +1,44 @@
+From e504b83d0db596a39f32227d4c473575e227037a Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Diego=20Elio=20Petten=C3=B2?= <flameeyes@flameeyes.eu>
+Date: Sun, 11 Nov 2012 14:38:16 -0800
+Subject: [PATCH 5/7] node: use Net::Domain::hostfqdn instead of
+ Sys::Hostname::hostname to get the hostname.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This actually makes the test work correctly, but might change the
+returned values for some hosts.
+
+Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
+---
+ node/lib/Munin/Node/OS.pm | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/node/lib/Munin/Node/OS.pm b/node/lib/Munin/Node/OS.pm
+index 31bebac..b8fa58a 100644
+--- a/node/lib/Munin/Node/OS.pm
++++ b/node/lib/Munin/Node/OS.pm
+@@ -12,7 +12,7 @@ use Munin::Node::Config;
+ use Munin::Common::Timeout;
+
+ use POSIX ();
+-use Sys::Hostname;
++use Net::Domain qw(hostfqdn);
+
+ sub get_uid {
+ my ($class, $user) = @_;
+@@ -38,9 +38,7 @@ sub _get_xid {
+ }
+
+ sub get_fq_hostname {
+- my $short = Sys::Hostname::hostname();
+-
+- return (gethostbyname $short)[0] || $short || "unknown";
++ return hostfqdn || "unknown";
+ }
+
+ sub check_perms_if_paranoid
+--
+2.2.1
+
diff --git a/net-analyzer/munin/files/patches/0007-node-always-use-the-Effective-UID-not-just-the-UID.patch b/net-analyzer/munin/files/patches/0007-node-always-use-the-Effective-UID-not-just-the-UID.patch
new file mode 100644
index 000000000000..07b86e4a9f60
--- /dev/null
+++ b/net-analyzer/munin/files/patches/0007-node-always-use-the-Effective-UID-not-just-the-UID.patch
@@ -0,0 +1,139 @@
+From 50ca7989a481e31d2434f755812070ac8f4e14c5 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Diego=20Elio=20Petten=C3=B2?= <flameeyes@flameeyes.eu>
+Date: Sun, 11 Nov 2012 15:18:51 -0800
+Subject: [PATCH 7/7] node: always use the Effective UID not just the UID.
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Signed-off-by: Diego Elio Pettenò <flameeyes@flameeyes.eu>
+---
+ common/lib/Munin/Common/Defaults.pm | 6 +++---
+ node/t/munin_node_config.t | 12 ++++++------
+ node/t/munin_node_os.t | 6 +++---
+ node/t/munin_node_service.t | 14 +++++++-------
+ 4 files changed, 19 insertions(+), 19 deletions(-)
+
+diff --git a/common/lib/Munin/Common/Defaults.pm b/common/lib/Munin/Common/Defaults.pm
+index 787b596..0f7f292 100644
+--- a/common/lib/Munin/Common/Defaults.pm
++++ b/common/lib/Munin/Common/Defaults.pm
+@@ -32,9 +32,9 @@ our $MUNIN_SPOOLDIR = '';
+ our $MUNIN_MANDIR = '';
+ our $MUNIN_LOGDIR = "$COMPONENT_ROOT/log/";
+ our $MUNIN_STATEDIR = '';
+-our $MUNIN_USER = getpwuid $UID;
+-our $MUNIN_GROUP = getgrgid $GID;
+-our $MUNIN_PLUGINUSER = getpwuid $UID;
++our $MUNIN_USER = getpwuid $EUID;
++our $MUNIN_GROUP = getgrgid $EGID;
++our $MUNIN_PLUGINUSER = getpwuid $EUID;
+ our $MUNIN_VERSION = 'svn';
+ our $MUNIN_PERL = '/usr/bin/perl';
+ our $MUNIN_PERLLIB = '';
+diff --git a/node/t/munin_node_config.t b/node/t/munin_node_config.t
+index b8b6564..3d5530f 100644
+--- a/node/t/munin_node_config.t
++++ b/node/t/munin_node_config.t
+@@ -43,13 +43,13 @@ isa_ok($conf, 'Munin::Node::Config');
+
+ ### Default user
+ {
+- my $uname = getpwuid $UID;
++ my $uname = getpwuid $EUID;
+
+ my @res = $conf->_parse_line("default_client_user $uname");
+- is_deeply(\@res, [defuser => $UID], 'Parsing default user name');
++ is_deeply(\@res, [defuser => $EUID], 'Parsing default user name');
+
+ @res = $conf->_parse_line("default_client_user $UID");
+- is_deeply(\@res, [defuser => $UID], 'Parsing default user ID');
++ is_deeply(\@res, [defuser => $EUID], 'Parsing default user ID');
+
+ eval { $conf->_parse_line("default_client_user xxxyyyzzz") };
+ like($@, qr{Default user does not exist}, "Default user exists");
+@@ -184,13 +184,13 @@ isa_ok($conf, 'Munin::Node::Config');
+
+ ### user
+ {
+- my $uname = getpwuid $UID;
++ my $uname = getpwuid $EUID;
+
+ my @res = $conf->_parse_plugin_line("user $uname");
+ is_deeply(\@res, [user => $uname], 'Parsing plugin user name');
+
+- @res = $conf->_parse_plugin_line("user $UID");
+- is_deeply(\@res, [user => $UID], 'Parsing plugin user ID');
++ @res = $conf->_parse_plugin_line("user $EUID");
++ is_deeply(\@res, [user => $EUID], 'Parsing plugin user ID');
+ }
+
+ ### group
+diff --git a/node/t/munin_node_os.t b/node/t/munin_node_os.t
+index 96d7c74..e10d9e6 100644
+--- a/node/t/munin_node_os.t
++++ b/node/t/munin_node_os.t
+@@ -13,10 +13,10 @@ my $os = 'Munin::Node::OS';
+
+ ### get_uid
+ {
+- my $uname = getpwuid $UID;
++ my $uname = getpwuid $EUID;
+
+- is($os->get_uid($uname), $UID, 'Lookup by user name');
+- is($os->get_uid($UID), $UID, 'Lookup by user ID');
++ is($os->get_uid($uname), $EUID, 'Lookup by user name');
++ is($os->get_uid($EUID), $EUID, 'Lookup by user ID');
+
+ is($os->get_uid('%%SSKK¤¤'), undef, 'Nonexistent user name');
+ is($os->get_uid(999999999), undef, 'Nonexistent user ID');
+diff --git a/node/t/munin_node_service.t b/node/t/munin_node_service.t
+index 18bda89..7fa050e 100644
+--- a/node/t/munin_node_service.t
++++ b/node/t/munin_node_service.t
+@@ -12,8 +12,8 @@ use Munin::Node::Service;
+
+ use English qw(-no_match_vars);
+
+-my $uname = getpwuid $UID;
+-my $gid = (split / /, $GID)[0];
++my $uname = getpwuid $EUID;
++my $gid = (split / /, $EGID)[0];
+ my $gname = getgrgid $gid;
+
+
+@@ -39,7 +39,7 @@ $config->reinitialize({
+
+ # testing user resolution
+ uname => { user => $uname },
+- uid => { user => $UID },
++ uid => { user => $EUID },
+ bad_uname => { user => '%%SSKK¤¤' },
+ bad_uid => { user => 999999999 },
+
+@@ -155,7 +155,7 @@ $ENV{MUNIN_MASTER_IP} = '';
+
+ ### export_service_environment
+ {
+- my $services = Munin::Node::Service->new(defuser => $UID);
++ my $services = Munin::Node::Service->new(defuser => $EUID);
+
+ $services->export_service_environment('test');
+ is($ENV{test_environment_variable}, 'fnord', 'Service-specific environment is exported');
+@@ -164,10 +164,10 @@ $ENV{MUNIN_MASTER_IP} = '';
+
+ ### _resolve_uid
+ {
+- my $services = Munin::Node::Service->new(defuser => $UID);
++ my $services = Munin::Node::Service->new(defuser => $EUID);
+
+- is($services->_resolve_uid('uname'), $UID, 'Lookup by service-specific username');
+- is($services->_resolve_uid('uid'), $UID, 'Lookup by service-specific username');
++ is($services->_resolve_uid('uname'), $EUID, 'Lookup by service-specific username');
++ is($services->_resolve_uid('uid'), $EUID, 'Lookup by service-specific username');
+
+ $services->{defuser} = 0;
+
+--
+2.2.1
+
diff --git a/net-analyzer/munin/files/patches/0009-perl-526.patch b/net-analyzer/munin/files/patches/0009-perl-526.patch
new file mode 100644
index 000000000000..d3cabb9906c3
--- /dev/null
+++ b/net-analyzer/munin/files/patches/0009-perl-526.patch
@@ -0,0 +1,26 @@
+
+
+diff -ruN munin-2.0.33.orig/master/Build.PL munin-2.0.33/master/Build.PL
+--- munin-2.0.33.orig/master/Build.PL 2017-03-03 00:02:39.000000000 -0000
++++ munin-2.0.33/master/Build.PL 2017-08-05 15:06:55.799816839 -0000
+@@ -1,3 +1,4 @@
++use lib q[.];
+ use MasterBuilder;
+
+ use warnings;
+diff -ruN munin-2.0.33.orig/node/Build.PL munin-2.0.33/node/Build.PL
+--- munin-2.0.33.orig/node/Build.PL 2017-03-03 00:02:39.000000000 -0000
++++ munin-2.0.33/node/Build.PL 2017-08-05 15:11:07.689824612 -0000
+@@ -1,3 +1,4 @@
++use lib q[.];
+ use NodeBuilder;
+
+ use warnings;
+diff -ruN munin-2.0.33.orig/plugins/Build.PL munin-2.0.33/plugins/Build.PL
+--- munin-2.0.33.orig/plugins/Build.PL 2017-03-03 00:02:39.000000000 -0000
++++ munin-2.0.33/plugins/Build.PL 2017-08-05 15:13:57.056168401 -0000
+@@ -1,3 +1,4 @@
++use lib q[.];
+ use PluginsBuilder;
+
+ use warnings;
diff --git a/net-analyzer/munin/metadata.xml b/net-analyzer/munin/metadata.xml
new file mode 100644
index 000000000000..a9cb2e9c7d27
--- /dev/null
+++ b/net-analyzer/munin/metadata.xml
@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>sysadmin@gentoo.org</email>
+ <name>Gentoo Sysadmin Project</name>
+ </maintainer>
+ <longdescription lang="en">
+ Munin the tool surveys all your computers and remembers what it saw. It
+ presents all the information in in graphs through a web interface. Its
+ emphasis is on plug and play capabilities. After completing a installation a
+ high number of monitoring plugins will be playing with no more effort. Using
+ Munin you can easily monitor the performance of your computers, networks,
+ SANs, and quite possibly applications as well. It makes it easy to determine
+ "what's different today" when a performance problem crops up. It makes it
+ easy to see how you're doing capacity wise on all limited resources.
+ </longdescription>
+ <use>
+ <flag name="mysql">
+ Install the packages required for monitoring MySQL. Disabling
+ the flag does not remove any plugin files.
+ </flag>
+ <flag name="postgres">
+ Install the packages required for monitoring
+ PostgreSQL. Disabling the flag does not remove any plugin files.
+ </flag>
+ <flag name="asterisk">
+ Install the packages required for monitoring Asterisk. Disabling
+ the flag does not remove any plugin files.
+ </flag>
+ <flag name="irc">
+ Install the packages required for monitoring IRC. Disabling the
+ flag does not remove any plugin files.
+ </flag>
+ <flag name="memcached">
+ Install the packages required for memcached
+ monitoring. Disabling the flag does not remove any plugin files.
+ </flag>
+ <flag name="ipmi">
+ Install <pkg>sys-apps/ipmitool</pkg> required for monitoring
+ IPMI sensors. Disabling the flag does not remove any plugin
+ file.
+ </flag>
+ <flag name="http">
+ Install <pkg>dev-perl/libwww-perl</pkg> required for monitoring
+ HTTP-based services such as Apache and nginx. Disabling the flag
+ does not remove any plugin file.
+ </flag>
+ <flag name="dhcpd">
+ Install <pkg>dev-perl/Net-IP</pkg>,
+ <pkg>dev-perl/HTTP-Date</pkg> and <pkg>net-misc/dhcp</pkg> to
+ monitor DHCP lease usage. This only works if the server is on
+ the same system as the node, so the server is also brought
+ in. Disabling the flag does not remove any plugin file.
+ </flag>
+ <flag name="java">
+ Build the Java-based plugins to monitor JMX-compatible
+ applications. Disabling the flag removes the jmx monitoring
+ plugins.
+ </flag>
+ <flag name="minimal">
+ Only install munin-node and its plugins. This excludes the
+ scripts to generate the web pages and the graphs.
+ </flag>
+ <flag name="cgi">
+ Install the CGI-compatible scripts for on-the-fly generation of
+ web pages and graphs. This is only meaningful if the minimal USE
+ flag is disabled.
+ </flag>
+ <flag name="ipv6">
+ Add support for IPv6 in munin-node. IPv6 support for the master
+ is always enabled, but the node requires a newer version of
+ <pkg>dev-perl/Net-Server</pkg>, capable of listening to IPv6
+ sockets.
+ </flag>
+ <flag name="syslog">
+ Configure the node by default to log on syslog. This requires
+ the presence of <pkg>virtual/perl-Sys-Syslog</pkg>. As of
+ version 2.0.2, the master scripts only log to file, and not to
+ syslog.
+ </flag>
+ <flag name="doc">
+ Build and install a local copy of the HTML documentation for the
+ whole software. This requires <pkg>dev-python/sphinx</pkg> to
+ process the documentation sources.
+ </flag>
+ </use>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:munin-monitoring:munin</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/munin/munin-2.0.75.ebuild b/net-analyzer/munin/munin-2.0.75.ebuild
new file mode 100644
index 000000000000..3506945a8431
--- /dev/null
+++ b/net-analyzer/munin/munin-2.0.75.ebuild
@@ -0,0 +1,417 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PATCHSET=1
+
+inherit java-pkg-opt-2 systemd tmpfiles
+
+MY_P=${P/_/-}
+
+DESCRIPTION="Munin Server Monitoring Tool"
+HOMEPAGE="https://munin-monitoring.org/"
+SRC_URI="
+ https://github.com/munin-monitoring/munin/archive/${PV}.tar.gz -> ${P}.tar.gz
+ "
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 arm arm64 ppc ~ppc64 x86"
+IUSE="asterisk irc java ldap memcached minimal mysql postgres selinux ssl test cgi ipv6 syslog ipmi http dhcpd doc apache2"
+REQUIRED_USE="cgi? ( !minimal ) apache2? ( cgi )"
+RESTRICT="!test? ( test )"
+
+# Upstream's listing of required modules is NOT correct!
+# Some of the postgres plugins use DBD::Pg, while others call psql directly.
+# Some of the mysql plugins use DBD::mysql, while others call mysqladmin directly.
+# We replace the original ipmi plugins with the freeipmi_ plugin which at least works.
+DEPEND_COM="
+ acct-user/munin
+ acct-user/munin-async
+ acct-group/munin
+ dev-lang/perl:=[berkdb]
+ dev-perl/DBI
+ dev-perl/File-Copy-Recursive
+ dev-perl/List-MoreUtils
+ dev-perl/Log-Log4perl
+ dev-perl/Net-CIDR
+ dev-perl/Net-DNS
+ dev-perl/Net-Netmask
+ dev-perl/Net-SNMP
+ dev-perl/Net-Server[ipv6(-)?]
+ dev-perl/TimeDate
+ virtual/perl-Digest-MD5
+ virtual/perl-Getopt-Long
+ virtual/perl-MIME-Base64
+ virtual/perl-Storable
+ virtual/perl-Text-Balanced
+ virtual/perl-Time-HiRes
+ apache2? ( www-servers/apache[apache2_modules_cgi,apache2_modules_cgid,apache2_modules_rewrite] )
+ asterisk? ( dev-perl/Net-Telnet )
+ cgi? (
+ dev-perl/FCGI
+ dev-perl/CGI-Fast
+ )
+ dhcpd? (
+ >=net-misc/dhcp-3[server]
+ dev-perl/Net-IP
+ dev-perl/HTTP-Date
+ )
+ doc? ( dev-python/sphinx )
+ http? ( dev-perl/libwww-perl )
+ irc? ( dev-perl/Net-IRC )
+ ldap? ( dev-perl/perl-ldap )
+ kernel_linux? ( sys-process/procps )
+ memcached? ( dev-perl/Cache-Memcached )
+ mysql? (
+ virtual/mysql
+ dev-perl/Cache-Cache
+ dev-perl/DBD-mysql
+ )
+ postgres? ( dev-perl/DBD-Pg dev-db/postgresql:* )
+ ssl? ( dev-perl/Net-SSLeay )
+ syslog? ( virtual/perl-Sys-Syslog )
+ !minimal? (
+ dev-perl/HTML-Template
+ dev-perl/IO-Socket-INET6
+ dev-perl/URI
+ >=net-analyzer/rrdtool-1.3[graph,perl]
+ virtual/ssh
+ )
+ "
+
+# Keep this seperate, as previous versions have had other deps here
+DEPEND="${DEPEND_COM}
+ dev-perl/Module-Build
+ java? ( >=virtual/jdk-1.8 )
+ test? (
+ dev-perl/Test-Deep
+ dev-perl/Test-Exception
+ dev-perl/Test-LongString
+ dev-perl/Test-Differences
+ dev-perl/Test-MockModule
+ dev-perl/Test-MockObject
+ dev-perl/File-Slurp
+ dev-perl/IO-stringy
+ dev-perl/IO-Socket-INET6
+ )"
+RDEPEND="${DEPEND_COM}
+ app-alternatives/awk
+ ipmi? ( >=sys-libs/freeipmi-1.1.6-r1 )
+ java? (
+ >=virtual/jre-1.8:*
+ || ( net-analyzer/netcat net-analyzer/openbsd-netcat )
+ )
+ !minimal? (
+ virtual/cron
+ media-fonts/dejavu
+ )
+ selinux? ( sec-policy/selinux-munin )"
+
+S="${WORKDIR}/${MY_P}"
+
+pkg_setup() {
+ java-pkg-opt-2_pkg_setup
+}
+
+src_prepare() {
+ echo ${PV} > RELEASE || die
+
+ eapply "${FILESDIR}"/patches/*.patch
+
+ eapply_user
+
+ java-pkg-opt-2_src_prepare
+}
+
+src_configure() {
+ local cgidir='$(DESTDIR)/usr/libexec/munin/cgi'
+ use cgi || cgidir="${T}/useless/cgi-bin"
+
+ local cgiuser=$(usex apache2 apache munin)
+
+ cat >> "${S}"/Makefile.config <<- EOF || die
+ PREFIX=\$(DESTDIR)/usr
+ CONFDIR=\$(DESTDIR)/etc/munin
+ DOCDIR=${T}/useless/doc
+ MANDIR=\$(PREFIX)/share/man
+ LIBDIR=\$(PREFIX)/libexec/munin
+ HTMLDIR=\$(DESTDIR)/var/www/localhost/htdocs/munin
+ CGIDIR=${cgidir}
+ CGITMPDIR=\$(DESTDIR)/var/cache/munin-cgi
+ CGIUSER=${cgiuser}
+ DBDIR=\$(DESTDIR)/var/lib/munin
+ DBDIRNODE=\$(DESTDIR)/var/lib/munin-node
+ SPOOLDIR=\$(DESTDIR)/var/spool/munin-async
+ LOGDIR=\$(DESTDIR)/var/log/munin
+ PERLLIB=\$(DESTDIR)$(perl -V:vendorlib | cut -d"'" -f2)
+ JCVALID=$(usex java yes no)
+ STATEDIR=\$(DESTDIR)/run/munin
+ EOF
+}
+
+# parallel make and install need to be fixed before, and I haven't
+# gotten around to do so yet.
+src_compile() {
+ emake -j1
+ use doc && emake -C doc html
+}
+
+src_test() {
+ if [[ ${EUID} == 0 ]]; then
+ eerror "You cannot run tests as root."
+ eerror "Please enable FEATURES=userpriv before proceeding."
+ return 1
+ fi
+
+ local testtargets="test-common test-node test-plugins"
+ use minimal || testtargets+=" test-master"
+
+ LC_ALL=C emake -j1 ${testtargets}
+}
+
+src_install() {
+ local cgiuser=$(usex apache2 apache munin)
+
+ local dirs="
+ /var/log/munin
+ /var/lib/munin/plugin-state
+ /var/lib/munin-node/plugin-state
+ /var/www/localhost/htdocs/munin
+ /etc/munin/plugin-conf.d
+ /etc/munin/plugins"
+ use minimal || dirs+=" /etc/munin/munin-conf.d/"
+
+ keepdir ${dirs}
+ fowners munin:munin ${dirs}
+
+ # parallel install doesn't work and it's also pointless to have this
+ # run in parallel for now (because it uses internal loops).
+ emake -j1 CHOWN=true DESTDIR="${D}" $(usex minimal "install-minimal install-man" install)
+
+ # we remove /run and /var/cache from the install, as it's not the
+ # package's to deal with.
+ rm -rf "${D}"/run "${D}"/var/cache || die
+
+ # remove the plugins for non-Gentoo package managers; use -f so that
+ # it doesn't fail when installing on non-Linux platforms.
+ rm -f "${D}"/usr/libexec/munin/plugins/{apt{,_all},yum} || die
+
+ insinto /etc/munin/plugin-conf.d/
+ newins "${FILESDIR}"/${PN}-1.3.2-plugins.conf munin-node
+
+ newinitd "${FILESDIR}"/munin-node_init.d_2.0.73 munin-node
+ newconfd "${FILESDIR}"/munin-node_conf.d_1.4.6-r2 munin-node
+
+ newinitd "${FILESDIR}"/munin-asyncd.init.2 munin-asyncd
+
+ newtmpfiles - ${CATEGORY}:${PN}:${SLOT}.conf <<-EOF || die
+ d /run/munin 0700 munin munin - -
+ d /var/cache/munin-cgi 0755 ${cgiuser} munin - -
+ EOF
+
+ systemd_dounit "${FILESDIR}"/munin-async.service
+ systemd_dounit "${FILESDIR}"/munin-graph.{service,socket}
+ systemd_dounit "${FILESDIR}"/munin-html.{service,socket}
+ systemd_dounit "${FILESDIR}"/munin-node.service
+
+ cat >> "${T}"/munin.env <<- EOF
+ CONFIG_PROTECT=/var/spool/munin-async/.ssh
+ EOF
+ newenvd "${T}"/munin.env 50munin
+
+ dodoc README ChangeLog INSTALL
+ if use doc; then
+ cd "${S}"/doc/_build/html || die
+ docinto html
+ dodoc -r *
+ cd "${S}" || die
+ fi
+
+ dodir /etc/logrotate.d/
+ sed -e "s:@CGIUSER@:$(usex apache2 apache munin):g" \
+ "${FILESDIR}"/logrotate.d-munin.3 > "${D}"/etc/logrotate.d/munin
+
+ dosym ipmi_ /usr/libexec/munin/plugins/ipmi_sensor_
+
+ if use syslog; then
+ sed -i -e '/log_file/s| .*| Sys::Syslog|' \
+ "${D}"/etc/munin/munin-node.conf || die
+ fi
+
+ # Use a simpler pid file to avoid trouble with /run in tmpfs. The
+ # munin-node service is ran as user root, and only later drops
+ # privileges.
+ sed -i -e 's:/run/munin/munin-node.pid:/run/munin-node.pid:' \
+ "${D}"/etc/munin/munin-node.conf || die
+
+ keepdir /var/spool/munin-async/.ssh
+ touch "${D}"/var/spool/munin-async/.ssh/authorized_keys
+ fowners munin-async:munin /var/spool/munin-async{,/.ssh/{,authorized_keys}}
+ fperms 0750 /var/spool/munin-async{,/.ssh}
+ fperms 0600 /var/spool/munin-async/.ssh/authorized_keys
+
+ if use minimal; then
+ # This requires the presence of munin-update, which is part of
+ # the non-minimal install...
+ rm "${D}"/usr/libexec/munin/plugins/munin_stats
+ else
+ # remove font files so that we don't have to keep them around
+ rm "${D}"/usr/libexec/${PN}/*.ttf || die
+
+ if use cgi; then
+ sed -i -e '/#graph_strategy cgi/s:^#::' "${D}"/etc/munin/munin.conf || die
+
+ touch "${D}"/var/log/munin/munin-cgi-{graph,html}.log
+ fowners $(usex apache2 apache munin) \
+ /var/log/munin/munin-cgi-{graph,html}.log
+
+ if use apache2; then
+ insinto /etc/apache2/vhosts.d
+ newins "${FILESDIR}"/munin.apache.include-2.4-r1 munin-2.4.include
+ fi
+ else
+ sed \
+ -e '/#graph_strategy cgi/s:#graph_strategy cgi:graph_strategy cron:' \
+ -i "${D}"/etc/munin/munin.conf || die
+ fi
+
+ keepdir /var/lib/munin/.ssh
+ cat >> "${D}"/var/lib/munin/.ssh/config <<- EOF
+ IdentityFile /var/lib/munin/.ssh/id_ecdsa
+ IdentityFile /var/lib/munin/.ssh/id_rsa
+ EOF
+
+ fowners munin:munin /var/lib/munin/.ssh/{,config}
+ fperms go-rwx /var/lib/munin/.ssh/{,config}
+
+ dodir /usr/share/${PN}
+ cat >> "${D}"/usr/share/${PN}/crontab <<- EOF
+ # Force the shell to bash
+ SHELL=/bin/bash
+ # Mail reports to root@, not munin@
+ MAILTO=root
+
+ # This runs the munin task every 5 minutes.
+ */5 * * * * /usr/bin/munin-cron
+
+ # Alternatively, this route works differently
+ # Update once a minute (for busy sites)
+ #*/1 * * * * /usr/libexec/munin/munin-update
+ ## Check for limit excess every 2 minutes
+ #*/2 * * * * /usr/libexec/munin/munin-limits
+ ## Update graphs every 5 minutes
+ #*/5 * * * * nice /usr/libexec/munin/munin-graph
+ ## Update HTML pages every 15 minutes
+ #*/15 * * * * nice /usr/libexec/munin/munin-html
+ EOF
+
+ cat >> "${D}"/usr/share/${PN}/fcrontab <<- EOF
+ # Mail reports to root@, not munin@, only execute one at a time
+ !mailto(root),serial(true)
+
+ # This runs the munin task every 5 minutes.
+ @ 5 /usr/bin/munin-cron
+
+ # Alternatively, this route works differently
+ # Update once a minute (for busy sites)
+ #@ 1 /usr/libexec/munin/munin-update
+ ## Check for limit excess every 2 minutes
+ #@ 2 /usr/libexec/munin/munin-limits
+ ## Update graphs every 5 minutes
+ #@ 5 nice /usr/libexec/munin/munin-graph
+ ## Update HTML pages every 15 minutes
+ #@ 15 nice /usr/libexec/munin/munin-html
+ EOF
+
+ # remove .htaccess file
+ find "${D}" -name .htaccess -delete || die
+ fi
+}
+
+pkg_config() {
+ if use minimal; then
+ einfo "Nothing to do."
+ return 0
+ fi
+
+ einfo "Press enter to install the default crontab for the munin master"
+ einfo "installation from /usr/share/${PN}/f?crontab"
+ einfo "If you have a large site, you may wish to customize it."
+ read
+
+ ebegin "Setting up cron ..."
+ if has_version sys-process/fcron; then
+ fcrontab - -u munin < /usr/share/${PN}/fcrontab
+ else
+ # dcron is very fussy about syntax
+ # the following is the only form that works in BOTH dcron and vixie-cron
+ crontab - -u munin < /usr/share/${PN}/crontab
+ fi
+ eend $?
+
+ einfo "Press enter to set up the SSH keys used for SSH transport"
+ read
+
+ # generate one rsa (for legacy) and one ecdsa (for new systems)
+ ssh-keygen -t rsa \
+ -f /var/lib/munin/.ssh/id_rsa -N '' \
+ -C "created by portage for ${CATEGORY}/${PN}" || die
+ ssh-keygen -t ecdsa \
+ -f /var/lib/munin/.ssh/id_ecdsa -N '' \
+ -C "created by portage for ${CATEGORY}/${PN}" || die
+ chown -R munin:munin /var/lib/munin/.ssh || die
+ chmod 0600 /var/lib/munin/.ssh/id_{rsa,ecdsa} || die
+
+ einfo "Your public keys are available in "
+ einfo " /var/lib/munin/.ssh/id_rsa.pub"
+ einfo " /var/lib/munin/.ssh/id_ecdsa.pub"
+ einfo "and follows for convenience"
+ echo
+ cat /var/lib/munin/.ssh/id_*.pub
+}
+
+pkg_postinst() {
+ tmpfiles_process ${CATEGORY}:${PN}:${SLOT}.conf
+
+ elog "Please follow the munin documentation to set up the plugins you"
+ elog "need, afterwards start munin-node."
+ elog ""
+ elog "To make use of munin-async, make sure to set up the corresponding"
+ elog "SSH key in /var/lib/munin-async/.ssh/authorized_keys"
+ elog ""
+ if ! use minimal; then
+ elog "Please run"
+ elog " emerge --config net-analyzer/munin"
+ elog "to automatically configure munin's cronjobs as well as generate"
+ elog "passwordless SSH keys to be used with munin-async."
+ fi
+ elog ""
+ elog "Further information about setting up Munin in Gentoo can be found"
+ elog "in the Gentoo Wiki: https://wiki.gentoo.org/wiki/Munin"
+
+ if use cgi; then
+ chown $(usex apache2 apache munin) \
+ "${ROOT}"/var/log/munin/munin-cgi-{graph,html}.log
+
+ if use apache2; then
+ elog "To use Munin with CGI you should include"
+ elog "/etc/apache2/vhosts.d/munin-2.4.include from the virtual"
+ elog "host you want it to be served."
+ elog "If you want to enable CGI-based HTML as well, you have to add to"
+ elog "/etc/conf.d/apache2 the option -D MUNIN_HTML_CGI."
+ else
+ elog "Effective CGI support has just been added in 2.0.7-r6."
+ elog "Documentation on how to use it is still sparse."
+ fi
+ fi
+
+ # we create this here as we don't want Portage to check /run
+ # symlinks but we still need this to be present before the reboot.
+ if ! use minimal && ! [[ -d "${ROOT}"/run/munin ]]; then
+ mkdir "${ROOT}"/run/munin
+ chown munin:munin "${ROOT}"/run/munin
+ chmod 0700 "${ROOT}"/run/munin
+ fi
+}
diff --git a/net-analyzer/munin/munin-2.0.76-r2.ebuild b/net-analyzer/munin/munin-2.0.76-r2.ebuild
new file mode 100644
index 000000000000..3d4f08b69bb1
--- /dev/null
+++ b/net-analyzer/munin/munin-2.0.76-r2.ebuild
@@ -0,0 +1,418 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PATCHSET=1
+
+inherit java-pkg-opt-2 systemd tmpfiles
+
+MY_P=${P/_/-}
+
+DESCRIPTION="Munin Server Monitoring Tool"
+HOMEPAGE="https://munin-monitoring.org/"
+SRC_URI="
+ https://github.com/munin-monitoring/munin/archive/${PV}.tar.gz -> ${P}.tar.gz
+ "
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 arm arm64 ppc ~ppc64 x86"
+IUSE="asterisk irc java ldap memcached minimal mysql postgres selinux ssl test cgi ipv6 syslog ipmi http dhcpd doc apache2"
+REQUIRED_USE="cgi? ( !minimal ) apache2? ( cgi )"
+RESTRICT="!test? ( test )"
+
+# Upstream's listing of required modules is NOT correct!
+# Some of the postgres plugins use DBD::Pg, while others call psql directly.
+# Some of the mysql plugins use DBD::mysql, while others call mysqladmin directly.
+# We replace the original ipmi plugins with the freeipmi_ plugin which at least works.
+DEPEND_COM="
+ acct-user/munin
+ acct-user/munin-async
+ acct-group/munin
+ dev-lang/perl:=[berkdb]
+ dev-perl/DBI
+ dev-perl/File-Copy-Recursive
+ dev-perl/List-MoreUtils
+ dev-perl/Log-Log4perl
+ dev-perl/Net-CIDR
+ dev-perl/Net-DNS
+ dev-perl/Net-Netmask
+ dev-perl/Net-SNMP
+ dev-perl/Net-Server[ipv6(-)?]
+ dev-perl/TimeDate
+ virtual/perl-Digest-MD5
+ virtual/perl-Getopt-Long
+ virtual/perl-MIME-Base64
+ virtual/perl-Storable
+ virtual/perl-Text-Balanced
+ virtual/perl-Time-HiRes
+ apache2? ( www-servers/apache[apache2_modules_cgi,apache2_modules_cgid,apache2_modules_rewrite] )
+ asterisk? ( dev-perl/Net-Telnet )
+ cgi? (
+ dev-perl/FCGI
+ dev-perl/CGI-Fast
+ )
+ dhcpd? (
+ >=net-misc/dhcp-3[server]
+ dev-perl/Net-IP
+ dev-perl/HTTP-Date
+ )
+ doc? ( dev-python/sphinx )
+ http? ( dev-perl/libwww-perl )
+ irc? ( dev-perl/Net-IRC )
+ ldap? ( dev-perl/perl-ldap )
+ kernel_linux? ( sys-process/procps )
+ memcached? ( dev-perl/Cache-Memcached )
+ mysql? (
+ virtual/mysql
+ dev-perl/Cache-Cache
+ dev-perl/DBD-mysql
+ )
+ postgres? ( dev-perl/DBD-Pg dev-db/postgresql:* )
+ ssl? ( dev-perl/Net-SSLeay )
+ syslog? ( virtual/perl-Sys-Syslog )
+ !minimal? (
+ dev-perl/HTML-Template
+ dev-perl/IO-Socket-INET6
+ dev-perl/URI
+ >=net-analyzer/rrdtool-1.3[graph,perl]
+ virtual/ssh
+ )
+ "
+
+# Keep this seperate, as previous versions have had other deps here
+DEPEND="${DEPEND_COM}
+ dev-perl/Module-Build
+ java? ( >=virtual/jdk-1.8 )
+ test? (
+ dev-perl/Test-Deep
+ dev-perl/Test-Exception
+ dev-perl/Test-LongString
+ dev-perl/Test-Differences
+ dev-perl/Test-MockModule
+ dev-perl/Test-MockObject
+ dev-perl/File-Slurp
+ dev-perl/IO-stringy
+ dev-perl/IO-Socket-INET6
+ )"
+RDEPEND="${DEPEND_COM}
+ app-alternatives/awk
+ ipmi? ( >=sys-libs/freeipmi-1.1.6-r1 )
+ java? (
+ >=virtual/jre-1.8:*
+ || ( net-analyzer/netcat net-analyzer/openbsd-netcat )
+ )
+ !minimal? (
+ virtual/cron
+ media-fonts/dejavu
+ )
+ selinux? ( sec-policy/selinux-munin )"
+
+S="${WORKDIR}/${MY_P}"
+
+pkg_setup() {
+ java-pkg-opt-2_pkg_setup
+}
+
+src_prepare() {
+ echo ${PV} > RELEASE || die
+
+ eapply "${FILESDIR}"/patches/*.patch
+
+ eapply_user
+
+ java-pkg-opt-2_src_prepare
+}
+
+src_configure() {
+ local cgidir='$(DESTDIR)/usr/libexec/munin/cgi'
+ use cgi || cgidir="${T}/useless/cgi-bin"
+
+ local cgiuser=$(usex apache2 apache munin)
+
+ cat >> "${S}"/Makefile.config <<- EOF || die
+ PREFIX=\$(DESTDIR)/usr
+ CONFDIR=\$(DESTDIR)/etc/munin
+ DOCDIR=${T}/useless/doc
+ MANDIR=\$(PREFIX)/share/man
+ LIBDIR=\$(PREFIX)/libexec/munin
+ HTMLDIR=\$(DESTDIR)/var/www/localhost/htdocs/munin
+ CGIDIR=${cgidir}
+ CGITMPDIR=\$(DESTDIR)/var/cache/munin-cgi
+ CGIUSER=${cgiuser}
+ DBDIR=\$(DESTDIR)/var/lib/munin
+ DBDIRNODE=\$(DESTDIR)/var/lib/munin-node
+ SPOOLDIR=\$(DESTDIR)/var/spool/munin-async
+ LOGDIR=\$(DESTDIR)/var/log/munin
+ PERLLIB=\$(DESTDIR)$(perl -V:vendorlib | cut -d"'" -f2)
+ JCVALID=$(usex java yes no)
+ JFLAGS=-Xlint
+ STATEDIR=\$(DESTDIR)/run/munin
+ EOF
+}
+
+# parallel make and install need to be fixed before, and I haven't
+# gotten around to do so yet.
+src_compile() {
+ emake -j1
+ use doc && emake -C doc html
+}
+
+src_test() {
+ if [[ ${EUID} == 0 ]]; then
+ eerror "You cannot run tests as root."
+ eerror "Please enable FEATURES=userpriv before proceeding."
+ return 1
+ fi
+
+ local testtargets="test-common test-node test-plugins"
+ use minimal || testtargets+=" test-master"
+
+ LC_ALL=C emake -j1 ${testtargets}
+}
+
+src_install() {
+ local cgiuser=$(usex apache2 apache munin)
+
+ local dirs="
+ /var/log/munin
+ /var/lib/munin/plugin-state
+ /var/lib/munin-node/plugin-state
+ /var/www/localhost/htdocs/munin
+ /etc/munin/plugin-conf.d
+ /etc/munin/plugins"
+ use minimal || dirs+=" /etc/munin/munin-conf.d/"
+
+ keepdir ${dirs}
+ fowners munin:munin ${dirs}
+
+ # parallel install doesn't work and it's also pointless to have this
+ # run in parallel for now (because it uses internal loops).
+ emake -j1 CHOWN=true DESTDIR="${D}" $(usex minimal "install-minimal install-man" install)
+
+ # we remove /run and /var/cache from the install, as it's not the
+ # package's to deal with.
+ rm -rf "${D}"/run "${D}"/var/cache || die
+
+ # remove the plugins for non-Gentoo package managers; use -f so that
+ # it doesn't fail when installing on non-Linux platforms.
+ rm -f "${D}"/usr/libexec/munin/plugins/{apt{,_all},yum} || die
+
+ insinto /etc/munin/plugin-conf.d/
+ newins "${FILESDIR}"/${PN}-1.3.2-plugins.conf munin-node
+
+ newinitd "${FILESDIR}"/munin-node_init.d_2.0.73 munin-node
+ newconfd "${FILESDIR}"/munin-node_conf.d_1.4.6-r2 munin-node
+
+ newinitd "${FILESDIR}"/munin-asyncd.init.2 munin-asyncd
+
+ newtmpfiles - ${CATEGORY}:${PN}:${SLOT}.conf <<-EOF || die
+ d /run/munin 0700 munin munin - -
+ d /var/cache/munin-cgi 0755 ${cgiuser} munin - -
+ EOF
+
+ systemd_dounit "${FILESDIR}"/munin-async.service
+ systemd_dounit "${FILESDIR}"/munin-graph.{service,socket}
+ systemd_dounit "${FILESDIR}"/munin-html.{service,socket}
+ systemd_dounit "${FILESDIR}"/munin-node.service
+
+ cat >> "${T}"/munin.env <<- EOF
+ CONFIG_PROTECT=/var/spool/munin-async/.ssh
+ EOF
+ newenvd "${T}"/munin.env 50munin
+
+ dodoc README ChangeLog INSTALL
+ if use doc; then
+ cd "${S}"/doc/_build/html || die
+ docinto html
+ dodoc -r *
+ cd "${S}" || die
+ fi
+
+ dodir /etc/logrotate.d/
+ sed -e "s:@CGIUSER@:$(usex apache2 apache munin):g" \
+ "${FILESDIR}"/logrotate.d-munin.4 > "${D}"/etc/logrotate.d/munin
+
+ dosym ipmi_ /usr/libexec/munin/plugins/ipmi_sensor_
+
+ if use syslog; then
+ sed -i -e '/log_file/s| .*| Sys::Syslog|' \
+ "${D}"/etc/munin/munin-node.conf || die
+ fi
+
+ # Use a simpler pid file to avoid trouble with /run in tmpfs. The
+ # munin-node service is ran as user root, and only later drops
+ # privileges.
+ sed -i -e 's:/run/munin/munin-node.pid:/run/munin-node.pid:' \
+ "${D}"/etc/munin/munin-node.conf || die
+
+ keepdir /var/spool/munin-async/.ssh
+ touch "${D}"/var/spool/munin-async/.ssh/authorized_keys
+ fowners munin-async:munin /var/spool/munin-async{,/.ssh/{,authorized_keys}}
+ fperms 0750 /var/spool/munin-async{,/.ssh}
+ fperms 0600 /var/spool/munin-async/.ssh/authorized_keys
+
+ if use minimal; then
+ # This requires the presence of munin-update, which is part of
+ # the non-minimal install...
+ rm "${D}"/usr/libexec/munin/plugins/munin_stats
+ else
+ # remove font files so that we don't have to keep them around
+ rm "${D}"/usr/libexec/${PN}/*.ttf || die
+
+ if use cgi; then
+ sed -i -e '/#graph_strategy cgi/s:^#::' "${D}"/etc/munin/munin.conf || die
+
+ touch "${D}"/var/log/munin/munin-cgi-{graph,html}.log
+ fowners $(usex apache2 apache munin) \
+ /var/log/munin/munin-cgi-{graph,html}.log
+
+ if use apache2; then
+ insinto /etc/apache2/vhosts.d
+ newins "${FILESDIR}"/munin.apache.include-2.4-r1 munin-2.4.include
+ fi
+ else
+ sed \
+ -e '/#graph_strategy cgi/s:#graph_strategy cgi:graph_strategy cron:' \
+ -i "${D}"/etc/munin/munin.conf || die
+ fi
+
+ keepdir /var/lib/munin/.ssh
+ cat >> "${D}"/var/lib/munin/.ssh/config <<- EOF
+ IdentityFile /var/lib/munin/.ssh/id_ecdsa
+ IdentityFile /var/lib/munin/.ssh/id_rsa
+ EOF
+
+ fowners munin:munin /var/lib/munin/.ssh/{,config}
+ fperms go-rwx /var/lib/munin/.ssh/{,config}
+
+ dodir /usr/share/${PN}
+ cat >> "${D}"/usr/share/${PN}/crontab <<- EOF
+ # Force the shell to bash
+ SHELL=/bin/bash
+ # Mail reports to root@, not munin@
+ MAILTO=root
+
+ # This runs the munin task every 5 minutes.
+ */5 * * * * /usr/bin/munin-cron
+
+ # Alternatively, this route works differently
+ # Update once a minute (for busy sites)
+ #*/1 * * * * /usr/libexec/munin/munin-update
+ ## Check for limit excess every 2 minutes
+ #*/2 * * * * /usr/libexec/munin/munin-limits
+ ## Update graphs every 5 minutes
+ #*/5 * * * * nice /usr/libexec/munin/munin-graph
+ ## Update HTML pages every 15 minutes
+ #*/15 * * * * nice /usr/libexec/munin/munin-html
+ EOF
+
+ cat >> "${D}"/usr/share/${PN}/fcrontab <<- EOF
+ # Mail reports to root@, not munin@, only execute one at a time
+ !mailto(root),serial(true)
+
+ # This runs the munin task every 5 minutes.
+ @ 5 /usr/bin/munin-cron
+
+ # Alternatively, this route works differently
+ # Update once a minute (for busy sites)
+ #@ 1 /usr/libexec/munin/munin-update
+ ## Check for limit excess every 2 minutes
+ #@ 2 /usr/libexec/munin/munin-limits
+ ## Update graphs every 5 minutes
+ #@ 5 nice /usr/libexec/munin/munin-graph
+ ## Update HTML pages every 15 minutes
+ #@ 15 nice /usr/libexec/munin/munin-html
+ EOF
+
+ # remove .htaccess file
+ find "${D}" -name .htaccess -delete || die
+ fi
+}
+
+pkg_config() {
+ if use minimal; then
+ einfo "Nothing to do."
+ return 0
+ fi
+
+ einfo "Press enter to install the default crontab for the munin master"
+ einfo "installation from /usr/share/${PN}/f?crontab"
+ einfo "If you have a large site, you may wish to customize it."
+ read
+
+ ebegin "Setting up cron ..."
+ if has_version sys-process/fcron; then
+ fcrontab - -u munin < /usr/share/${PN}/fcrontab
+ else
+ # dcron is very fussy about syntax
+ # the following is the only form that works in BOTH dcron and vixie-cron
+ crontab - -u munin < /usr/share/${PN}/crontab
+ fi
+ eend $?
+
+ einfo "Press enter to set up the SSH keys used for SSH transport"
+ read
+
+ # generate one rsa (for legacy) and one ecdsa (for new systems)
+ ssh-keygen -t rsa \
+ -f /var/lib/munin/.ssh/id_rsa -N '' \
+ -C "created by portage for ${CATEGORY}/${PN}" || die
+ ssh-keygen -t ecdsa \
+ -f /var/lib/munin/.ssh/id_ecdsa -N '' \
+ -C "created by portage for ${CATEGORY}/${PN}" || die
+ chown -R munin:munin /var/lib/munin/.ssh || die
+ chmod 0600 /var/lib/munin/.ssh/id_{rsa,ecdsa} || die
+
+ einfo "Your public keys are available in "
+ einfo " /var/lib/munin/.ssh/id_rsa.pub"
+ einfo " /var/lib/munin/.ssh/id_ecdsa.pub"
+ einfo "and follows for convenience"
+ echo
+ cat /var/lib/munin/.ssh/id_*.pub
+}
+
+pkg_postinst() {
+ tmpfiles_process ${CATEGORY}:${PN}:${SLOT}.conf
+
+ elog "Please follow the munin documentation to set up the plugins you"
+ elog "need, afterwards start munin-node."
+ elog ""
+ elog "To make use of munin-async, make sure to set up the corresponding"
+ elog "SSH key in /var/lib/munin-async/.ssh/authorized_keys"
+ elog ""
+ if ! use minimal; then
+ elog "Please run"
+ elog " emerge --config net-analyzer/munin"
+ elog "to automatically configure munin's cronjobs as well as generate"
+ elog "passwordless SSH keys to be used with munin-async."
+ fi
+ elog ""
+ elog "Further information about setting up Munin in Gentoo can be found"
+ elog "in the Gentoo Wiki: https://wiki.gentoo.org/wiki/Munin"
+
+ if use cgi; then
+ chown $(usex apache2 apache munin) \
+ "${ROOT}"/var/log/munin/munin-cgi-{graph,html}.log
+
+ if use apache2; then
+ elog "To use Munin with CGI you should include"
+ elog "/etc/apache2/vhosts.d/munin-2.4.include from the virtual"
+ elog "host you want it to be served."
+ elog "If you want to enable CGI-based HTML as well, you have to add to"
+ elog "/etc/conf.d/apache2 the option -D MUNIN_HTML_CGI."
+ else
+ elog "Effective CGI support has just been added in 2.0.7-r6."
+ elog "Documentation on how to use it is still sparse."
+ fi
+ fi
+
+ # we create this here as we don't want Portage to check /run
+ # symlinks but we still need this to be present before the reboot.
+ if ! use minimal && ! [[ -d "${ROOT}"/run/munin ]]; then
+ mkdir "${ROOT}"/run/munin
+ chown munin:munin "${ROOT}"/run/munin
+ chmod 0700 "${ROOT}"/run/munin
+ fi
+}
diff --git a/net-analyzer/munin/munin-2.0.76-r3.ebuild b/net-analyzer/munin/munin-2.0.76-r3.ebuild
new file mode 100644
index 000000000000..fcef4b96122f
--- /dev/null
+++ b/net-analyzer/munin/munin-2.0.76-r3.ebuild
@@ -0,0 +1,418 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PATCHSET=1
+
+inherit java-pkg-opt-2 systemd tmpfiles
+
+MY_P=${P/_/-}
+
+DESCRIPTION="Munin Server Monitoring Tool"
+HOMEPAGE="https://munin-monitoring.org/"
+SRC_URI="
+ https://github.com/munin-monitoring/munin/archive/${PV}.tar.gz -> ${P}.tar.gz
+ "
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 arm arm64 ppc ~ppc64 x86"
+IUSE="asterisk irc java ldap memcached minimal mysql postgres selinux ssl test cgi ipv6 syslog ipmi http dhcpd doc apache2"
+REQUIRED_USE="cgi? ( !minimal ) apache2? ( cgi )"
+
+# Upstream's listing of required modules is NOT correct!
+# Some of the postgres plugins use DBD::Pg, while others call psql directly.
+# Some of the mysql plugins use DBD::mysql, while others call mysqladmin directly.
+# We replace the original ipmi plugins with the freeipmi_ plugin which at least works.
+DEPEND_COM="
+ acct-user/munin
+ acct-user/munin-async
+ acct-group/munin
+ dev-lang/perl:=[berkdb]
+ dev-perl/DBI
+ dev-perl/File-Copy-Recursive
+ dev-perl/List-MoreUtils
+ dev-perl/Log-Log4perl
+ dev-perl/Net-CIDR
+ dev-perl/Net-DNS
+ dev-perl/Net-Netmask
+ dev-perl/Net-SNMP
+ dev-perl/Net-Server[ipv6(-)?]
+ dev-perl/TimeDate
+ virtual/perl-Digest-MD5
+ virtual/perl-Getopt-Long
+ virtual/perl-MIME-Base64
+ virtual/perl-Storable
+ virtual/perl-Text-Balanced
+ virtual/perl-Time-HiRes
+ apache2? ( www-servers/apache[apache2_modules_cgi,apache2_modules_cgid,apache2_modules_rewrite] )
+ asterisk? ( dev-perl/Net-Telnet )
+ cgi? (
+ dev-perl/FCGI
+ dev-perl/CGI-Fast
+ )
+ dhcpd? (
+ >=net-misc/dhcp-3[server]
+ dev-perl/Net-IP
+ dev-perl/HTTP-Date
+ )
+ doc? ( dev-python/sphinx )
+ http? ( dev-perl/libwww-perl )
+ irc? ( dev-perl/Net-IRC )
+ ldap? ( dev-perl/perl-ldap )
+ kernel_linux? ( sys-process/procps )
+ memcached? ( dev-perl/Cache-Memcached )
+ mysql? (
+ virtual/mysql
+ dev-perl/Cache-Cache
+ dev-perl/DBD-mysql
+ )
+ postgres? ( dev-perl/DBD-Pg dev-db/postgresql:* )
+ ssl? ( dev-perl/Net-SSLeay )
+ syslog? ( virtual/perl-Sys-Syslog )
+ !minimal? (
+ dev-perl/HTML-Template
+ dev-perl/IO-Socket-INET6
+ dev-perl/URI
+ >=net-analyzer/rrdtool-1.3[graph,perl]
+ virtual/ssh
+ )
+ "
+
+# Keep this seperate, as previous versions have had other deps here
+DEPEND="${DEPEND_COM}
+ dev-perl/Module-Build
+ java? ( >=virtual/jdk-1.8 )
+ test? (
+ dev-perl/Test-Deep
+ dev-perl/Test-Exception
+ dev-perl/Test-LongString
+ dev-perl/Test-Differences
+ dev-perl/Test-MockModule
+ dev-perl/Test-MockObject
+ dev-perl/File-Slurp
+ dev-perl/IO-stringy
+ dev-perl/IO-Socket-INET6
+ )"
+RDEPEND="${DEPEND_COM}
+ app-alternatives/awk
+ ipmi? ( >=sys-libs/freeipmi-1.1.6-r1 )
+ java? (
+ >=virtual/jre-1.8:*
+ || ( net-analyzer/netcat net-analyzer/openbsd-netcat )
+ )
+ !minimal? (
+ virtual/cron
+ media-fonts/dejavu
+ )
+ selinux? ( sec-policy/selinux-munin )"
+
+S="${WORKDIR}/${MY_P}"
+RESTRICT="!test? ( test )"
+
+pkg_setup() {
+ java-pkg-opt-2_pkg_setup
+}
+
+src_prepare() {
+ echo ${PV} > RELEASE || die
+
+ eapply "${FILESDIR}"/patches/*.patch
+
+ eapply_user
+
+ java-pkg-opt-2_src_prepare
+}
+
+src_configure() {
+ local cgidir='$(DESTDIR)/usr/libexec/munin/cgi'
+ use cgi || cgidir="${T}/useless/cgi-bin"
+
+ local cgiuser=$(usex apache2 apache munin)
+
+ cat >> "${S}"/Makefile.config <<- EOF || die
+ PREFIX=\$(DESTDIR)/usr
+ CONFDIR=\$(DESTDIR)/etc/munin
+ DOCDIR=${T}/useless/doc
+ MANDIR=\$(PREFIX)/share/man
+ LIBDIR=\$(PREFIX)/libexec/munin
+ HTMLDIR=\$(DESTDIR)/var/www/localhost/htdocs/munin
+ CGIDIR=${cgidir}
+ CGITMPDIR=\$(DESTDIR)/var/cache/munin-cgi
+ CGIUSER=${cgiuser}
+ DBDIR=\$(DESTDIR)/var/lib/munin
+ DBDIRNODE=\$(DESTDIR)/var/lib/munin-node
+ SPOOLDIR=\$(DESTDIR)/var/spool/munin-async
+ LOGDIR=\$(DESTDIR)/var/log/munin
+ PERLLIB=\$(DESTDIR)$(perl -V:vendorlib | cut -d"'" -f2)
+ JCVALID=$(usex java yes no)
+ JFLAGS=-Xlint
+ STATEDIR=\$(DESTDIR)/run/munin
+ EOF
+}
+
+# parallel make and install need to be fixed before, and I haven't
+# gotten around to do so yet.
+src_compile() {
+ emake -j1
+ use doc && emake -C doc html
+}
+
+src_test() {
+ if [[ ${EUID} == 0 ]]; then
+ eerror "You cannot run tests as root."
+ eerror "Please enable FEATURES=userpriv before proceeding."
+ return 1
+ fi
+
+ local testtargets="test-common test-node test-plugins"
+ use minimal || testtargets+=" test-master"
+
+ LC_ALL=C emake -j1 ${testtargets}
+}
+
+src_install() {
+ local cgiuser=$(usex apache2 apache munin)
+
+ local dirs="
+ /var/log/munin
+ /var/lib/munin/plugin-state
+ /var/lib/munin-node/plugin-state
+ /var/www/localhost/htdocs/munin
+ /etc/munin/plugin-conf.d
+ /etc/munin/plugins"
+ use minimal || dirs+=" /etc/munin/munin-conf.d/"
+
+ keepdir ${dirs}
+ fowners munin:munin ${dirs}
+
+ # parallel install doesn't work and it's also pointless to have this
+ # run in parallel for now (because it uses internal loops).
+ emake -j1 CHOWN=true DESTDIR="${D}" $(usex minimal "install-minimal install-man" install)
+
+ # we remove /run and /var/cache from the install, as it's not the
+ # package's to deal with.
+ rm -rf "${D}"/run "${D}"/var/cache || die
+
+ # remove the plugins for non-Gentoo package managers; use -f so that
+ # it doesn't fail when installing on non-Linux platforms.
+ rm -f "${D}"/usr/libexec/munin/plugins/{apt{,_all},yum} || die
+
+ insinto /etc/munin/plugin-conf.d/
+ newins "${FILESDIR}"/${PN}-1.3.2-plugins.conf munin-node
+
+ newinitd "${FILESDIR}"/munin-node_init.d_2.0.73 munin-node
+ newconfd "${FILESDIR}"/munin-node_conf.d_1.4.6-r2 munin-node
+
+ newinitd "${FILESDIR}"/munin-asyncd.init.2 munin-asyncd
+
+ newtmpfiles - ${CATEGORY}:${PN}:${SLOT}.conf <<-EOF || die
+ d /run/munin 0700 munin munin - -
+ d /var/cache/munin-cgi 0755 ${cgiuser} munin - -
+ EOF
+
+ systemd_dounit "${FILESDIR}"/munin-async.service
+ systemd_dounit "${FILESDIR}"/munin-graph.{service,socket}
+ systemd_dounit "${FILESDIR}"/munin-html.{service,socket}
+ systemd_dounit "${FILESDIR}"/munin-node.service
+
+ cat >> "${T}"/munin.env <<- EOF
+ CONFIG_PROTECT=/var/spool/munin-async/.ssh
+ EOF
+ newenvd "${T}"/munin.env 50munin
+
+ dodoc README ChangeLog INSTALL
+ if use doc; then
+ cd "${S}"/doc/_build/html || die
+ docinto html
+ dodoc -r *
+ cd "${S}" || die
+ fi
+
+ dodir /etc/logrotate.d/
+ sed -e "s:@CGIUSER@:$(usex apache2 apache munin):g" \
+ "${FILESDIR}"/logrotate.d-munin.5 > "${D}"/etc/logrotate.d/munin
+
+ dosym ipmi_ /usr/libexec/munin/plugins/ipmi_sensor_
+
+ if use syslog; then
+ sed -i -e '/log_file/s| .*| Sys::Syslog|' \
+ "${D}"/etc/munin/munin-node.conf || die
+ fi
+
+ # Use a simpler pid file to avoid trouble with /run in tmpfs. The
+ # munin-node service is ran as user root, and only later drops
+ # privileges.
+ sed -i -e 's:/run/munin/munin-node.pid:/run/munin-node.pid:' \
+ "${D}"/etc/munin/munin-node.conf || die
+
+ keepdir /var/spool/munin-async/.ssh
+ touch "${D}"/var/spool/munin-async/.ssh/authorized_keys
+ fowners munin-async:munin /var/spool/munin-async{,/.ssh/{,authorized_keys}}
+ fperms 0750 /var/spool/munin-async{,/.ssh}
+ fperms 0600 /var/spool/munin-async/.ssh/authorized_keys
+
+ if use minimal; then
+ # This requires the presence of munin-update, which is part of
+ # the non-minimal install...
+ rm "${D}"/usr/libexec/munin/plugins/munin_stats
+ else
+ # remove font files so that we don't have to keep them around
+ rm "${D}"/usr/libexec/${PN}/*.ttf || die
+
+ if use cgi; then
+ sed -i -e '/#graph_strategy cgi/s:^#::' "${D}"/etc/munin/munin.conf || die
+
+ touch "${D}"/var/log/munin/munin-cgi-{graph,html}.log
+ fowners $(usex apache2 apache munin) \
+ /var/log/munin/munin-cgi-{graph,html}.log
+
+ if use apache2; then
+ insinto /etc/apache2/vhosts.d
+ newins "${FILESDIR}"/munin.apache.include-2.4-r1 munin-2.4.include
+ fi
+ else
+ sed \
+ -e '/#graph_strategy cgi/s:#graph_strategy cgi:graph_strategy cron:' \
+ -i "${D}"/etc/munin/munin.conf || die
+ fi
+
+ keepdir /var/lib/munin/.ssh
+ cat >> "${D}"/var/lib/munin/.ssh/config <<- EOF
+ IdentityFile /var/lib/munin/.ssh/id_ecdsa
+ IdentityFile /var/lib/munin/.ssh/id_rsa
+ EOF
+
+ fowners munin:munin /var/lib/munin/.ssh/{,config}
+ fperms go-rwx /var/lib/munin/.ssh/{,config}
+
+ dodir /usr/share/${PN}
+ cat >> "${D}"/usr/share/${PN}/crontab <<- EOF
+ # Force the shell to bash
+ SHELL=/bin/bash
+ # Mail reports to root@, not munin@
+ MAILTO=root
+
+ # This runs the munin task every 5 minutes.
+ */5 * * * * /usr/bin/munin-cron
+
+ # Alternatively, this route works differently
+ # Update once a minute (for busy sites)
+ #*/1 * * * * /usr/libexec/munin/munin-update
+ ## Check for limit excess every 2 minutes
+ #*/2 * * * * /usr/libexec/munin/munin-limits
+ ## Update graphs every 5 minutes
+ #*/5 * * * * nice /usr/libexec/munin/munin-graph
+ ## Update HTML pages every 15 minutes
+ #*/15 * * * * nice /usr/libexec/munin/munin-html
+ EOF
+
+ cat >> "${D}"/usr/share/${PN}/fcrontab <<- EOF
+ # Mail reports to root@, not munin@, only execute one at a time
+ !mailto(root),serial(true)
+
+ # This runs the munin task every 5 minutes.
+ @ 5 /usr/bin/munin-cron
+
+ # Alternatively, this route works differently
+ # Update once a minute (for busy sites)
+ #@ 1 /usr/libexec/munin/munin-update
+ ## Check for limit excess every 2 minutes
+ #@ 2 /usr/libexec/munin/munin-limits
+ ## Update graphs every 5 minutes
+ #@ 5 nice /usr/libexec/munin/munin-graph
+ ## Update HTML pages every 15 minutes
+ #@ 15 nice /usr/libexec/munin/munin-html
+ EOF
+
+ # remove .htaccess file
+ find "${D}" -name .htaccess -delete || die
+ fi
+}
+
+pkg_config() {
+ if use minimal; then
+ einfo "Nothing to do."
+ return 0
+ fi
+
+ einfo "Press enter to install the default crontab for the munin master"
+ einfo "installation from /usr/share/${PN}/f?crontab"
+ einfo "If you have a large site, you may wish to customize it."
+ read
+
+ ebegin "Setting up cron ..."
+ if has_version sys-process/fcron; then
+ fcrontab - -u munin < /usr/share/${PN}/fcrontab
+ else
+ # dcron is very fussy about syntax
+ # the following is the only form that works in BOTH dcron and vixie-cron
+ crontab - -u munin < /usr/share/${PN}/crontab
+ fi
+ eend $?
+
+ einfo "Press enter to set up the SSH keys used for SSH transport"
+ read
+
+ # generate one rsa (for legacy) and one ecdsa (for new systems)
+ ssh-keygen -t rsa \
+ -f /var/lib/munin/.ssh/id_rsa -N '' \
+ -C "created by portage for ${CATEGORY}/${PN}" || die
+ ssh-keygen -t ecdsa \
+ -f /var/lib/munin/.ssh/id_ecdsa -N '' \
+ -C "created by portage for ${CATEGORY}/${PN}" || die
+ chown -R munin:munin /var/lib/munin/.ssh || die
+ chmod 0600 /var/lib/munin/.ssh/id_{rsa,ecdsa} || die
+
+ einfo "Your public keys are available in "
+ einfo " /var/lib/munin/.ssh/id_rsa.pub"
+ einfo " /var/lib/munin/.ssh/id_ecdsa.pub"
+ einfo "and follows for convenience"
+ echo
+ cat /var/lib/munin/.ssh/id_*.pub
+}
+
+pkg_postinst() {
+ tmpfiles_process ${CATEGORY}:${PN}:${SLOT}.conf
+
+ elog "Please follow the munin documentation to set up the plugins you"
+ elog "need, afterwards start munin-node."
+ elog ""
+ elog "To make use of munin-async, make sure to set up the corresponding"
+ elog "SSH key in /var/lib/munin-async/.ssh/authorized_keys"
+ elog ""
+ if ! use minimal; then
+ elog "Please run"
+ elog " emerge --config net-analyzer/munin"
+ elog "to automatically configure munin's cronjobs as well as generate"
+ elog "passwordless SSH keys to be used with munin-async."
+ fi
+ elog ""
+ elog "Further information about setting up Munin in Gentoo can be found"
+ elog "in the Gentoo Wiki: https://wiki.gentoo.org/wiki/Munin"
+
+ if use cgi; then
+ chown $(usex apache2 apache munin) \
+ "${ROOT}"/var/log/munin/munin-cgi-{graph,html}.log
+
+ if use apache2; then
+ elog "To use Munin with CGI you should include"
+ elog "/etc/apache2/vhosts.d/munin-2.4.include from the virtual"
+ elog "host you want it to be served."
+ elog "If you want to enable CGI-based HTML as well, you have to add to"
+ elog "/etc/conf.d/apache2 the option -D MUNIN_HTML_CGI."
+ else
+ elog "Effective CGI support has just been added in 2.0.7-r6."
+ elog "Documentation on how to use it is still sparse."
+ fi
+ fi
+
+ # we create this here as we don't want Portage to check /run
+ # symlinks but we still need this to be present before the reboot.
+ if ! use minimal && ! [[ -d "${ROOT}"/run/munin ]]; then
+ mkdir "${ROOT}"/run/munin
+ chown munin:munin "${ROOT}"/run/munin
+ chmod 0700 "${ROOT}"/run/munin
+ fi
+}
diff --git a/net-analyzer/nagios-check_dnssec/Manifest b/net-analyzer/nagios-check_dnssec/Manifest
new file mode 100644
index 000000000000..22e21ce05ee7
--- /dev/null
+++ b/net-analyzer/nagios-check_dnssec/Manifest
@@ -0,0 +1 @@
+DIST check_dnssec-0.1_p28.tar.bz2 73458 BLAKE2B 0b3ae3e051734924b89160a67a84b3cbe3f5db0ee036780b4efcbd7857a18a6ac6b180dddab7475be079d5fe902b8eeed4c6acb021b31c70daef69632ff3ecaf SHA512 e99b155f38963858750443f3cf834e4505f871cb06bbfabf07ade1b333b18507b9364e7250118ed5ee4a2134e2a45ee68b6386a9f3b0cb30a0bb02a4a6e263fa
diff --git a/net-analyzer/nagios-check_dnssec/metadata.xml b/net-analyzer/nagios-check_dnssec/metadata.xml
new file mode 100644
index 000000000000..342d632ace6e
--- /dev/null
+++ b/net-analyzer/nagios-check_dnssec/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>sysadmin@gentoo.org</email>
+ <name>Gentoo Sysadmin Project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nagios-check_dnssec/nagios-check_dnssec-0.1_p28.ebuild b/net-analyzer/nagios-check_dnssec/nagios-check_dnssec-0.1_p28.ebuild
new file mode 100644
index 000000000000..ed5fc8bb0488
--- /dev/null
+++ b/net-analyzer/nagios-check_dnssec/nagios-check_dnssec-0.1_p28.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools
+
+MY_P=${P/nagios-/}
+
+DESCRIPTION="check_dnssec is a set of Nagios plugins to monitor DNSSEC services"
+HOMEPAGE="https://svn.durchmesser.ch/trac/check_dnssec"
+# No upstream tarballs, tagged releaess in SVN only.
+SRC_URI="mirror://gentoo/${MY_P}.tar.bz2"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="
+ || (
+ net-analyzer/nagios-plugins
+ net-analyzer/monitoring-plugins
+ )
+ net-libs/ldns"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+src_prepare() {
+ default
+ eautoreconf
+}
diff --git a/net-analyzer/nagios-check_glsa2/Manifest b/net-analyzer/nagios-check_glsa2/Manifest
new file mode 100644
index 000000000000..71b186e00c47
--- /dev/null
+++ b/net-analyzer/nagios-check_glsa2/Manifest
@@ -0,0 +1 @@
+DIST check_glsa2-20120930.tar.xz 1980 BLAKE2B 6a5e3541b23fe43daba37ccac085ca1079dc1fedbfa87a439a433d6445bd039090a336765bde0c1b2fc5fad464d0f4e175e4a7e90ca65d6bd56d082a3f1cac88 SHA512 ecf7f6f119c8a73bf672eddc64374ed07c03720ec97b51f7e0bd779b3ba2c4ceab87c1c3cbbe38b1f0224234a9fb2af7bd156f9073a8a0aa8da1458988a2bc65
diff --git a/net-analyzer/nagios-check_glsa2/files/nagios-check_glsa2-20120930-CACHEDIR.patch b/net-analyzer/nagios-check_glsa2/files/nagios-check_glsa2-20120930-CACHEDIR.patch
new file mode 100644
index 000000000000..3e02afe6e004
--- /dev/null
+++ b/net-analyzer/nagios-check_glsa2/files/nagios-check_glsa2-20120930-CACHEDIR.patch
@@ -0,0 +1,11 @@
+--- a/check_glsa2_cached.sh
++++ b/check_glsa2_cached.sh
+@@ -8,7 +8,7 @@
+ # Caches the result of check_glsa2.sh
+ # First line is the return code, rest of the file is the message
+ NAME=$(basename $0 .sh)
+-CACHEDIR=/var/lib/gentoo/
++CACHEDIR=/var/cache/check_glsa2
+ CACHEFILE=${CACHEDIR}/check_glsa2.cache
+ SCRIPT=/usr/lib/nagios/plugins/check_glsa2.sh
+ ret=0
diff --git a/net-analyzer/nagios-check_glsa2/metadata.xml b/net-analyzer/nagios-check_glsa2/metadata.xml
new file mode 100644
index 000000000000..342d632ace6e
--- /dev/null
+++ b/net-analyzer/nagios-check_glsa2/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>sysadmin@gentoo.org</email>
+ <name>Gentoo Sysadmin Project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nagios-check_glsa2/nagios-check_glsa2-20120930-r1.ebuild b/net-analyzer/nagios-check_glsa2/nagios-check_glsa2-20120930-r1.ebuild
new file mode 100644
index 000000000000..aba3bf1143f7
--- /dev/null
+++ b/net-analyzer/nagios-check_glsa2/nagios-check_glsa2-20120930-r1.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+MY_PN="${PN/nagios-/}"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Nagios check script for GLSAs (Gentoo Linux Security Advisories)"
+HOMEPAGE="https://github.com/craig/check_glsa2"
+SRC_URI="https://dev.gentoo.org/~flameeyes/${MY_PN}/${MY_P}.tar.xz"
+
+LICENSE="GPL-2 BSD-2"
+SLOT="0"
+KEYWORDS="amd64"
+
+DEPEND="
+ acct-group/nagios
+ acct-user/nagios"
+RDEPEND="
+ ${DEPEND}
+ app-portage/gentoolkit"
+
+S="${WORKDIR}/${MY_P}"
+PATCHES=( "${FILESDIR}"/${PN}-20120930-CACHEDIR.patch )
+
+src_install() {
+ exeinto /usr/$(get_libdir)/nagios/plugins
+ doexe *.sh
+
+ dodoc README
+
+ diropts -o nagios -g nagios
+ keepdir /var/cache/${MY_PN}
+}
diff --git a/net-analyzer/nagios-check_ipmi_sensor/Manifest b/net-analyzer/nagios-check_ipmi_sensor/Manifest
new file mode 100644
index 000000000000..45e45ed8c88f
--- /dev/null
+++ b/net-analyzer/nagios-check_ipmi_sensor/Manifest
@@ -0,0 +1 @@
+DIST check_ipmi_sensor_v3-3.13.tar.gz 27079 BLAKE2B 19f2eddeeb43a73eb8faa2907b53f2b0514a19a3313e90487082c463ef12a128cb3b252457768c1afcacd06402b572f54cab7c05d159df4e6f7881b191663046 SHA512 b117ca13936e8c2201f3262302004bd0f903d19ee7289222962ee6b53119ba8306cdf355292c63b9d7639d850bd59c24b2875ccb8b3c408bdac60d144837e97a
diff --git a/net-analyzer/nagios-check_ipmi_sensor/metadata.xml b/net-analyzer/nagios-check_ipmi_sensor/metadata.xml
new file mode 100644
index 000000000000..a994ed951774
--- /dev/null
+++ b/net-analyzer/nagios-check_ipmi_sensor/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>idl0r@gentoo.org</email>
+ <name>Christian Ruppert</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>sysadmin@gentoo.org</email>
+ <name>Gentoo Sysadmin Project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nagios-check_ipmi_sensor/nagios-check_ipmi_sensor-3.13.ebuild b/net-analyzer/nagios-check_ipmi_sensor/nagios-check_ipmi_sensor-3.13.ebuild
new file mode 100644
index 000000000000..b8d98e7da64b
--- /dev/null
+++ b/net-analyzer/nagios-check_ipmi_sensor/nagios-check_ipmi_sensor-3.13.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_P="${PN#nagios-}_v$(ver_cut 1)-${PV}"
+
+DESCRIPTION="IPMI Sensor Monitoring Plugin for Nagios/Icinga"
+HOMEPAGE="http://www.thomas-krenn.com/en/oss/ipmi-plugin/"
+SRC_URI="https://github.com/thomas-krenn/check_ipmi_sensor_v3/archive/refs/tags/v${PV}.tar.gz -> ${MY_P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 ~hppa x86"
+IUSE=""
+
+DEPEND=""
+RDEPEND="dev-lang/perl
+ dev-perl/IPC-Run
+ sys-libs/freeipmi"
+
+S="${WORKDIR}/${MY_P}"
+
+src_install() {
+ exeinto /usr/$(get_libdir)/nagios/plugins
+ doexe check_ipmi_sensor
+
+ dodoc changelog
+}
diff --git a/net-analyzer/nagios-check_linux_bonding/Manifest b/net-analyzer/nagios-check_linux_bonding/Manifest
new file mode 100644
index 000000000000..b567506ad048
--- /dev/null
+++ b/net-analyzer/nagios-check_linux_bonding/Manifest
@@ -0,0 +1 @@
+DIST check_linux_bonding-1.4.gh.tar.gz 24921 BLAKE2B ef582184471e4ca9d4b9a1d5cdee481852f1f452806ca081e04e74b7b469109f3a5998708cdb7ee6d3ffa9240cdbf721f0cbf6b3f4be2c4cc62042fce6647ccd SHA512 e8195d012a3da53983acdb8ea54d87995541e4e303dce28683ca04b6a6f84826c37db42c295b7e121092482a49268f57355284b57bb77a2212c46b834dd57088
diff --git a/net-analyzer/nagios-check_linux_bonding/metadata.xml b/net-analyzer/nagios-check_linux_bonding/metadata.xml
new file mode 100644
index 000000000000..5f33304011d5
--- /dev/null
+++ b/net-analyzer/nagios-check_linux_bonding/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nagios-check_linux_bonding/nagios-check_linux_bonding-1.4-r1.ebuild b/net-analyzer/nagios-check_linux_bonding/nagios-check_linux_bonding-1.4-r1.ebuild
new file mode 100644
index 000000000000..558d1eb00b93
--- /dev/null
+++ b/net-analyzer/nagios-check_linux_bonding/nagios-check_linux_bonding-1.4-r1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+EGIT_COMMIT="fde23cba225870ceb1162d918a6307c608e654a5"
+MY_P="${P/nagios-/}"
+
+DESCRIPTION="Nagios plugin to monitor bonding status of network interfaces"
+HOMEPAGE="https://github.com/glynastill/check_linux_bonding-1.4"
+SRC_URI="https://github.com/glynastill/${MY_P}/archive/${EGIT_COMMIT}.tar.gz -> ${MY_P}.gh.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+RDEPEND="dev-lang/perl"
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}"/${MY_P}-${EGIT_COMMIT}
+
+src_install() {
+ default
+
+ local nagiosplugindir=/usr/$(get_libdir)/nagios/plugins
+ dodir "${nagiosplugindir}"
+ exeinto ${nagiosplugindir}
+ doexe check_linux_bonding
+
+ dodoc CHANGES
+ doman man/check_linux_bonding.8
+}
diff --git a/net-analyzer/nagios-check_logfiles/Manifest b/net-analyzer/nagios-check_logfiles/Manifest
new file mode 100644
index 000000000000..79e3ec445ea2
--- /dev/null
+++ b/net-analyzer/nagios-check_logfiles/Manifest
@@ -0,0 +1 @@
+DIST nagios-check_logfiles-4.0.1.3.tar.gz 254371 BLAKE2B d4219e03ac2b981b08866baa4eab4fb16857215cb817ee44f23690094a3b29bf806caa6c1cd98c439ba81fa31cd63ce1fcfca5c92d1aad260490db087a560fd7 SHA512 1893e67d9b27939fae6f330b1f796e98becbb1c4bd1dfe11811236b0d9bcdab0b2fea2a49f7b90302d15c75328422f479d1a26a486cfbe1ec0d3b8f9b71a5150
diff --git a/net-analyzer/nagios-check_logfiles/metadata.xml b/net-analyzer/nagios-check_logfiles/metadata.xml
new file mode 100644
index 000000000000..342d632ace6e
--- /dev/null
+++ b/net-analyzer/nagios-check_logfiles/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>sysadmin@gentoo.org</email>
+ <name>Gentoo Sysadmin Project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nagios-check_logfiles/nagios-check_logfiles-4.0.1.3.ebuild b/net-analyzer/nagios-check_logfiles/nagios-check_logfiles-4.0.1.3.ebuild
new file mode 100644
index 000000000000..654975febfc5
--- /dev/null
+++ b/net-analyzer/nagios-check_logfiles/nagios-check_logfiles-4.0.1.3.ebuild
@@ -0,0 +1,25 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="A nagios plugin for checking logfiles"
+HOMEPAGE="https://labs.consol.de/nagios/check_logfiles/index.html"
+
+MY_P=${P/nagios-/}
+
+SRC_URI="https://labs.consol.de/assets/downloads/nagios/${MY_P}.tar.gz -> ${P}.tar.gz"
+LICENSE="GPL-3"
+SLOT="0"
+
+KEYWORDS="~alpha amd64 ~ppc ppc64 ~sparc x86"
+
+RDEPEND="|| ( >=net-analyzer/nagios-plugins-1.4.13-r1 >=net-analyzer/monitoring-plugins-2 )"
+
+S="${WORKDIR}/${MY_P}"
+
+src_configure() {
+ econf \
+ --libexecdir="${EPREFIX}/usr/$(get_libdir)/nagios/plugins" \
+ --sysconfdir="${EPREFIX}/etc/nagios"
+}
diff --git a/net-analyzer/nagios-check_multiple/Manifest b/net-analyzer/nagios-check_multiple/Manifest
new file mode 100644
index 000000000000..3ed8c1378cb5
--- /dev/null
+++ b/net-analyzer/nagios-check_multiple/Manifest
@@ -0,0 +1 @@
+DIST nagios-check_multiple-0.0.1.tar.gz 9376 BLAKE2B 2db464b7edd4aa704560a3f16a5d70e4cdef7cd35284e3c679f3e10e5ef6eaaba19dc361efbb10a77f87c14726439869e4b415fe7e393a1d7ac23233b3bfa66a SHA512 a75bcd821afc6daca612f42c552fb965a3068dc04a94df41ff41d36928c764d44bcf72e1bd6d776bf4b443c73fc3946c0a91443a562019fcd1b6e8687d0ebcd2
diff --git a/net-analyzer/nagios-check_multiple/metadata.xml b/net-analyzer/nagios-check_multiple/metadata.xml
new file mode 100644
index 000000000000..a6e780957ae0
--- /dev/null
+++ b/net-analyzer/nagios-check_multiple/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>mjo@gentoo.org</email>
+ <name>Michael Orlitzky</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nagios-check_multiple/nagios-check_multiple-0.0.1-r4.ebuild b/net-analyzer/nagios-check_multiple/nagios-check_multiple-0.0.1-r4.ebuild
new file mode 100644
index 000000000000..3427de753160
--- /dev/null
+++ b/net-analyzer/nagios-check_multiple/nagios-check_multiple-0.0.1-r4.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+DISTUTILS_USE_PEP517=setuptools
+inherit distutils-r1
+
+MY_PN="check_multiple"
+DESCRIPTION="A Nagios plugin to execute multiple checks in parallel"
+HOMEPAGE="https://github.com/clarkbox/check_multiple"
+SRC_URI="https://github.com/clarkbox/check_multiple/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+S="${WORKDIR}/${MY_PN}-${PV}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~riscv"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+src_install() {
+ distutils-r1_src_install
+
+ local nagiosplugindir="/usr/$(get_libdir)/nagios/plugins"
+ dodir "${nagiosplugindir}"
+
+ # Create a symlink from the nagios plugin directory to the /usr/bin
+ # location. The "binary" in /usr/bin should also be a symlink, since
+ # the python machinery allows the user to switch out the
+ # interpreter. We don't want to mess with any of that, so we just
+ # point to whatever the system would use if the user executed
+ # ${MY_PN}.
+ #
+ # The relative symlink is preferred so that if the package is
+ # installed e.g. while in a chroot, the symlink will never point
+ # outside of that chroot.
+ #
+ dosym "../../../bin/${MY_PN}" "${nagiosplugindir}/${MY_PN}"
+}
+
+python_test() {
+ "${EPYTHON}" -m unittest -v lib/check_multiple/check_multiple.py \
+ || die "test suite failed"
+}
diff --git a/net-analyzer/nagios-check_mysql_health/Manifest b/net-analyzer/nagios-check_mysql_health/Manifest
new file mode 100644
index 000000000000..92c845762d58
--- /dev/null
+++ b/net-analyzer/nagios-check_mysql_health/Manifest
@@ -0,0 +1 @@
+DIST check_mysql_health-2.2.2.tar.gz 140250 BLAKE2B 7bdbf5398ed2219ec9a254906c2e0b38160fe8914c218388a4c9f06c401636e500290dea42b420da7881e6dd35116e0f5b54bb448b304c84714bdee610c74d92 SHA512 027e47747aba524d8c7d168f6c440271434db2e152e59821eff06449d98919ab343a7840ecf73a1fcbc864799d6d3094088bb06f6b36b16989a5184676ae2628
diff --git a/net-analyzer/nagios-check_mysql_health/metadata.xml b/net-analyzer/nagios-check_mysql_health/metadata.xml
new file mode 100644
index 000000000000..a6e780957ae0
--- /dev/null
+++ b/net-analyzer/nagios-check_mysql_health/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>mjo@gentoo.org</email>
+ <name>Michael Orlitzky</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nagios-check_mysql_health/nagios-check_mysql_health-2.2.2-r2.ebuild b/net-analyzer/nagios-check_mysql_health/nagios-check_mysql_health-2.2.2-r2.ebuild
new file mode 100644
index 000000000000..f3a0a6697a68
--- /dev/null
+++ b/net-analyzer/nagios-check_mysql_health/nagios-check_mysql_health-2.2.2-r2.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_PN="${PN#nagios-}"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Nagios plugin for checking MySQL server health"
+HOMEPAGE="https://labs.consol.de/nagios/check_mysql_health/"
+SRC_URI="https://labs.consol.de/assets/downloads/nagios/${MY_P}.tar.gz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+# Found by grepping for "use " in the built
+# plugins-scripts/check_mysql_health.
+RDEPEND="
+ dev-perl/DBD-mysql
+ dev-perl/DBI
+ virtual/perl-Data-Dumper
+ virtual/perl-File-Temp
+ virtual/perl-Time-HiRes
+ "
+
+src_configure() {
+ # Should match net-analyzer/{monitoring,nagios}-plugins.
+ econf --libexecdir="/usr/$(get_libdir)/nagios/plugins"
+}
+
+# Here we should have a pkg_preinst() that creates the nagios user/group
+# (using the same command from e.g. net-analyzer/nagios-plugins). But
+# right now, the build system for check_mysql_health has a bug: it
+# doesn't use the configured user (INSTALL_OPTIONS aren't passed to
+# /usr/bin/install), so it's pointless. Don't forget to inherit
+# user.eclass!
diff --git a/net-analyzer/nagios-check_rbl/Manifest b/net-analyzer/nagios-check_rbl/Manifest
new file mode 100644
index 000000000000..49b67622e22b
--- /dev/null
+++ b/net-analyzer/nagios-check_rbl/Manifest
@@ -0,0 +1 @@
+DIST check_rbl-1.7.0.tar.gz 51673 BLAKE2B 7e2d23ea5cd44082ebe9963326bc2a8517c737640fada229d0b65d64ac92ce50e80b675834f4bd7dbc56d653e0243558fe6f1c402b11498d48bc948d3facda57 SHA512 5b219362bfa736832e935c64019ee50b87d4f9cc2bce0ab4795eb4c59e03712adc9461cdd6624cbaf1d98a5afdd9f611dbdc58fd913a4478b0fef0664cddcf80
diff --git a/net-analyzer/nagios-check_rbl/metadata.xml b/net-analyzer/nagios-check_rbl/metadata.xml
new file mode 100644
index 000000000000..5f5da002f5a7
--- /dev/null
+++ b/net-analyzer/nagios-check_rbl/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>mjo@gentoo.org</email>
+ <name>Michael Orlitzky</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>sysadmin@gentoo.org</email>
+ <name>Gentoo Sysadmin Project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nagios-check_rbl/nagios-check_rbl-1.7.0.ebuild b/net-analyzer/nagios-check_rbl/nagios-check_rbl-1.7.0.ebuild
new file mode 100644
index 000000000000..68a42bf960b5
--- /dev/null
+++ b/net-analyzer/nagios-check_rbl/nagios-check_rbl-1.7.0.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Monitor whether or not a host is blacklisted"
+HOMEPAGE="https://github.com/matteocorti/check_rbl"
+
+MY_P="${P/nagios-/}"
+SRC_URI="https://github.com/matteocorti/check_rbl/releases/download/v${PV}/${MY_P}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+
+KEYWORDS="amd64 ~hppa ~sparc x86"
+IUSE=""
+
+# No, this is not redundant -- see bug 627082.
+RESTRICT=test
+
+# The package's INSTALL/Makefile.PL files specify its dependencies.
+#
+# * Capture::Tiny (dev-perl/Capture-Tiny)
+# * Data::Validate::Domain (dev-perl/Data-Validate-Domain)
+# * Data::Validate::IP (dev-perl/Data-Validate-IP)
+# * IO::Select (dev-lang/perl)
+# * Monitoring::Plugin (dev-perl/Monitoring-Plugin)
+# * Monitoring::Plugin::Getopt (dev-perl/Monitoring-Plugin)
+# * Monitoring::Plugin::Threshold (dev-perl/Monitoring-Plugin)
+# * Net::DNS (dev-perl/Net-DNS)
+# * Net::IP (dev-perl/Net-IP)
+# * Readonly (dev-perl/Readonly)
+# * Socket (virtual/perl-Socket)
+#
+RDEPEND="dev-lang/perl
+ dev-perl/Capture-Tiny
+ dev-perl/Data-Validate-Domain
+ dev-perl/Data-Validate-IP
+ dev-perl/Monitoring-Plugin
+ dev-perl/Net-DNS
+ dev-perl/Net-IP
+ dev-perl/Readonly
+ virtual/perl-Socket"
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}/${MY_P}"
+
+src_configure() {
+ perl Makefile.PL INSTALLDIRS=vendor || die
+}
+
+src_install() {
+ default
+
+ local nagiosplugindir=/usr/$(get_libdir)/nagios/plugins
+
+ # It's simplest to move this file after it's been installed.
+ dodir "${nagiosplugindir}"
+ mv "${D}"/usr/bin/check_rbl "${D}"/"${nagiosplugindir}" || die
+}
diff --git a/net-analyzer/nagios-core/Manifest b/net-analyzer/nagios-core/Manifest
new file mode 100644
index 000000000000..25613e5cac7b
--- /dev/null
+++ b/net-analyzer/nagios-core/Manifest
@@ -0,0 +1,4 @@
+DIST nagios-4.5.12.tar.gz 2590063 BLAKE2B 20aa455270655180d4a4c6d32e2d114eaf8b665b1315eda690b15e9d69e115751d559cc20a8cab5ddbe932c0612c63c1f0e9387918d5b8e21badad0db0a540d1 SHA512 2b172f6d4c7ff87ac488bf276a170b626cf10b0dcefe8870d95002c73cd0b6d5fbb9397b99af21e5fd89425165249b82542e4f96920fc353a099a9d930d52bf8
+DIST nagios-4.5.13.tar.gz 2590052 BLAKE2B 35cba4a07ffa0e3ed180fa28376a420255353a2fff7285ce58298f06870c5ca844c5e01e439b04c1c83ea97b51e4db4f1436b96e2ac5b868000f81cd26eec8b2 SHA512 f5dc03f1bb5db633594ce50b1d58a18e8dd095cfc362416a39e88de02056ad0c05b60acd5f86a629d5b59d214724a2f7d48e681149a648ed464565c7b818c371
+DIST nagios-4.5.8.tar.gz 2587824 BLAKE2B c2f571ff7e9a525a70d6425905c5b04703ad5c9c516e36c0146d39c3ae13555f76a9a6429365f3c4cf4482f3053471b40989b81debb94d8974d0fecaf2788a7c SHA512 a293dc28638fffe944adfcf732025100550a1ab54d3a96bacebffb09a98954a9cd9fa122b4afea73b473dcf5560904d5acaa31d8ffd356b6e3b90ae37d86d4b2
+DIST nagios-core-gentoo-icons-20141125.tar 40960 BLAKE2B 31c1953e1160c7c7b89606b72b1a80407e4c1b7a7938b40bd1c577cd0c309dd88ca6b775d692a9b846dbf67736537fa9c91e56aa15fdd447769608ca525bff09 SHA512 bf109879cddd6136b76baba55d0b60b2596e37431dcf5ce0905d34a9fa292ebf7e4bde82d9a084362c486e8fac344c76d88f9298b1b85541ed70ffd608493766
diff --git a/net-analyzer/nagios-core/files/99_nagios4-r1.conf b/net-analyzer/nagios-core/files/99_nagios4-r1.conf
new file mode 100644
index 000000000000..8d080d5c17b1
--- /dev/null
+++ b/net-analyzer/nagios-core/files/99_nagios4-r1.conf
@@ -0,0 +1,16 @@
+<IfDefine NAGIOS>
+
+ ScriptAlias /nagios/cgi-bin @CGIBINDIR@
+ <Directory "@CGIBINDIR@">
+ AllowOverride AuthConfig
+ Options ExecCGI
+ Require all granted
+ </Directory>
+
+ Alias /nagios @WEBDIR@
+ <Directory "@WEBDIR@">
+ AllowOverride AuthConfig
+ Require all granted
+ </Directory>
+
+</IfDefine>
diff --git a/net-analyzer/nagios-core/files/lighttpd_nagios4-r1.conf b/net-analyzer/nagios-core/files/lighttpd_nagios4-r1.conf
new file mode 100644
index 000000000000..2653922ddc93
--- /dev/null
+++ b/net-analyzer/nagios-core/files/lighttpd_nagios4-r1.conf
@@ -0,0 +1,15 @@
+server.modules += ("mod_cgi")
+server.modules += ("mod_alias")
+
+$HTTP["url"] =~ "^/nagios/cgi-bin/" {
+ dir-listing.activate = "disable"
+ cgi.assign = (
+ ".pl" => "/usr/bin/perl",
+ ".cgi" => ""
+ )
+}
+
+alias.url += (
+ "/nagios/cgi-bin" => "@CGIBINDIR@",
+ "/nagios" => "@WEBDIR@"
+)
diff --git a/net-analyzer/nagios-core/metadata.xml b/net-analyzer/nagios-core/metadata.xml
new file mode 100644
index 000000000000..2214499050ae
--- /dev/null
+++ b/net-analyzer/nagios-core/metadata.xml
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>mjo@gentoo.org</email>
+ <name>Michael Orlitzky</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>sysadmin@gentoo.org</email>
+ <name>Gentoo Sysadmin Project</name>
+ </maintainer>
+ <longdescription>
+ Nagios is a host and service monitor designed to inform you of
+ network problems before your clients, end-users or managers do. It
+ has been designed to run under the Linux operating system, but
+ works fine under most *NIX variants as well. The monitoring daemon
+ runs intermittent checks on hosts and services you specify using
+ external "plugins" which return status information to Nagios. When
+ problems are encountered, the daemon can send notifications out to
+ administrative contacts in a variety of different ways (email,
+ instant message, SMS, etc.). Current status information,
+ historical logs, and reports can all be accessed via a web
+ browser.
+ </longdescription>
+ <use>
+ <flag name="classicui">use the classic web theme</flag>
+ <flag name="lighttpd">install <pkg>www-servers/lighttpd</pkg> config</flag>
+ <flag name="web">enable web interface</flag>
+ </use>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:nagios:nagios_core</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nagios-core/nagios-core-4.5.12.ebuild b/net-analyzer/nagios-core/nagios-core-4.5.12.ebuild
new file mode 100644
index 000000000000..99d8fa0821bd
--- /dev/null
+++ b/net-analyzer/nagios-core/nagios-core-4.5.12.ebuild
@@ -0,0 +1,274 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit systemd toolchain-funcs
+
+MY_P="${PN/-core}-${PV}"
+DESCRIPTION="Nagios core - monitoring daemon, web GUI, and documentation"
+HOMEPAGE="https://www.nagios.org/"
+
+# The name of the directory into which our Gentoo icons will be
+# extracted, and also the basename of the archive containing it.
+GENTOO_ICONS="${PN}-gentoo-icons-20141125"
+SRC_URI="https://downloads.sourceforge.net/nagios/${MY_P}.tar.gz
+ web? ( https://dev.gentoo.org/~mjo/distfiles/${GENTOO_ICONS}.tar )"
+
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~arm64 ~ppc ppc64 ~riscv ~sparc x86"
+IUSE="apache2 classicui lighttpd +web vim-syntax"
+
+# In pkg_postinst(), we change the group of the Nagios configuration
+# directory to that of the web server user. It can't belong to both
+# apache/lighttpd groups at the same time, so we block this combination
+# for our own sanity.
+#
+# This could be made to work, but we would need a better way to allow
+# the web user read-only access to Nagios's configuration directory.
+#
+REQUIRED_USE="apache2? ( !lighttpd )"
+
+#
+# Note, we require one of the apache2 CGI modules:
+#
+# * mod_cgi (USE=apache2_modules_cgi)
+# * mod_cgid (USE=apache2_modules_cgid)
+# * mod_fcgid (www-apache/mod_fcgid)
+#
+# We just don't care /which/ one. And of course PHP supports both CGI
+# (USE=cgi) and FastCGI (USE=fpm). We're pretty lenient with the
+# dependencies, and expect the user not to do anything /too/
+# stupid. (For example, installing Apache with only FastCGI support, and
+# PHP with only CGI support.)
+#
+# Another annoyance is that the upstream Makefile uses app-arch/unzip to
+# extract a snapshot of AngularJS, but that's only needed when USE=web.
+#
+MOD_ALIAS=apache2_modules_alias
+
+# The dependencies checked by the configure script. All of these are
+# also runtime dependencies; that's why ./configure checks for them.
+CONFIGURE_DEPEND="acct-group/nagios
+ acct-user/nagios
+ virtual/mailx
+ dev-lang/perl:="
+
+# In addition to the things that the ./configure script checks for,
+# we also need to be able to unzip stuff on the build host.
+#
+# We need the apache/lighttpd groups in src_install() for the things
+# installed as the --with-command-group argument, so they go here too.
+# The groups are also needed at runtime, but that is ensured by apache
+# and lighttpd themselves being in RDEPEND.
+#
+# The sys-apps/which dependency is removed in,
+#
+# https://github.com/NagiosEnterprises/nagioscore/pull/1031
+#
+# but would require an autoreconf if we wanted to backport it.
+#
+BDEPEND="${CONFIGURE_DEPEND}
+ sys-apps/which
+ apache2? ( acct-group/apache )
+ lighttpd? ( acct-group/lighttpd )
+ web? ( app-arch/unzip )"
+
+# This is linked into /usr/bin/nagios{,tats}
+DEPEND="dev-libs/libltdl:0"
+
+RDEPEND="${CONFIGURE_DEPEND}
+ ${DEPEND}
+ web? (
+ media-libs/gd[jpeg,png]
+ lighttpd? ( www-servers/lighttpd[php] )
+ apache2? (
+ || (
+ www-servers/apache[${MOD_ALIAS},apache2_modules_cgi]
+ www-servers/apache[${MOD_ALIAS},apache2_modules_cgid]
+ ( www-servers/apache[${MOD_ALIAS}] www-apache/mod_fcgid ) )
+ || (
+ dev-lang/php:*[apache2]
+ dev-lang/php:*[cgi]
+ dev-lang/php:*[fpm] )
+ )
+ )
+ vim-syntax? ( app-vim/nagios-syntax )"
+
+src_configure() {
+ local myconf
+
+ if use !apache2 && use !lighttpd ; then
+ myconf="${myconf} --with-command-group=nagios"
+ else
+ if use apache2 ; then
+ myconf="${myconf} --with-command-group=apache"
+ myconf="${myconf} --with-httpd-conf=/etc/apache2/conf.d"
+ elif use lighttpd ; then
+ myconf="${myconf} --with-command-group=lighttpd"
+ fi
+ fi
+
+ # We pass "unknown" as the init type because we don't want it to
+ # guess. Later on, we'll manually install both OpenRC and systemd
+ # services.
+ econf ${myconf} \
+ --prefix="${EPREFIX}/usr" \
+ --bindir="${EPREFIX}/usr/sbin" \
+ --localstatedir="${EPREFIX}/var/lib/nagios" \
+ --sysconfdir="${EPREFIX}/etc/nagios" \
+ --libexecdir="${EPREFIX}/usr/$(get_libdir)/nagios/plugins" \
+ --with-cgibindir="${EPREFIX}/usr/$(get_libdir)/nagios/cgi-bin" \
+ --with-webdir="${EPREFIX}/usr/share/nagios/htdocs" \
+ --with-init-type="unknown"
+
+ # The paths in the web server configuration files need to match
+ # those passed to econf above.
+ cp "${FILESDIR}/99_nagios4-r1.conf" \
+ "${FILESDIR}/lighttpd_nagios4-r1.conf" \
+ "${T}/" || die "failed to create copies of web server conf files"
+
+ sed -e "s|@CGIBINDIR@|${EPREFIX}/usr/$(get_libdir)/nagios/cgi-bin|g" \
+ -e "s|@WEBDIR@|${EPREFIX}/usr/share/nagios/htdocs|" \
+ -i "${T}/99_nagios4-r1.conf" \
+ -i "${T}/lighttpd_nagios4-r1.conf" \
+ || die "failed to substitute paths into web server conf files"
+
+}
+
+src_compile() {
+ emake CC="$(tc-getCC)" nagios
+
+ if use web; then
+ # Only compile the CGIs/HTML when USE=web is set.
+ emake CC="$(tc-getCC)" cgis html
+ fi
+}
+
+src_install() {
+ dodoc Changelog CONTRIBUTING.md README.md THANKS UPGRADING
+
+ # There is no way to install the CGIs unstripped from the top-level
+ # makefile, so descend into base/ here. The empty INSTALL_OPTS
+ # ensures that root:root: owns the nagios executables.
+ cd "${S}/base" || die
+ emake INSTALL_OPTS="" DESTDIR="${D}" install-unstripped
+ cd "${S}" || die
+
+ # Otherwise this gets installed as 770 and you get "access denied"
+ # for some reason or other when starting nagios. The permissions
+ # on nagiostats are just for consistency (these should both get
+ # fixed upstream).
+ fperms 775 /usr/sbin/nagios /usr/sbin/nagiostats
+
+ # INSTALL_OPTS are needed for most of install-basic, but we don't
+ # want them on the LIBEXECDIR, argh.
+ emake DESTDIR="${D}" install-basic
+ fowners root:root /usr/$(get_libdir)/nagios/plugins
+
+ # Don't make the configuration owned by the nagios user, because
+ # then he can edit nagios.cfg and trick nagios into running as root
+ # and doing his bidding.
+ emake INSTALL_OPTS="" DESTDIR="${D}" install-config
+
+ # No INSTALL_OPTS used in install-commandmode, thankfully.
+ emake DESTDIR="${D}" install-commandmode
+
+ # The build system installs these directories, but portage assumes
+ # that the build system doesn't know what it's doing so we have to
+ # keepdir them, too. I guess you'll have to manually re-check the
+ # upstream build system forever to see if this is still necessary.
+ keepdir /var/lib/nagios{,/archives,/rw,/spool,/spool/checkresults}
+
+ if use web; then
+ # There is no way to install the CGIs unstripped from the
+ # top-level makefile, so descend into cgi/ here. The empty
+ # INSTALL_OPTS ensures that root:root: owns the CGI executables.
+ cd "${S}/cgi" || die
+ emake INSTALL_OPTS="" DESTDIR="${D}" install-unstripped
+ cd "${S}" || die
+
+ # install-html installs the new exfoliation theme
+ emake INSTALL_OPTS="" DESTDIR="${D}" install-html
+
+ if use classicui; then
+ # This overwrites the already-installed exfoliation theme
+ emake INSTALL_OPTS="" DESTDIR="${D}" install-classicui
+ fi
+
+ # Install cute Gentoo icons (bug #388323), setting their
+ # owner, group, and mode to match those of the rest of Nagios's
+ # images.
+ insinto /usr/share/nagios/htdocs/images/logos
+ doins "${WORKDIR}/${GENTOO_ICONS}"/*.*
+ fi
+
+ # The ./configure script for nagios detects the init system on the
+ # build host, which is wrong for all sorts of reasons. We've gone
+ # to great lengths above to avoid running "install-init" -- even
+ # indirectly -- and so now we must install whatever service files
+ # we need by hand.
+ newinitd startup/openrc-init nagios
+ systemd_newunit startup/default-service nagios.service
+
+ if use web ; then
+ if use apache2 ; then
+ # Install the Nagios configuration file for Apache.
+ insinto "/etc/apache2/modules.d"
+ newins "${T}/99_nagios4-r1.conf" "99_nagios4.conf"
+ elif use lighttpd ; then
+ # Install the Nagios configuration file for Lighttpd.
+ insinto /etc/lighttpd
+ newins "${T}/lighttpd_nagios4-r1.conf" nagios.conf
+ else
+ ewarn "${CATEGORY}/${PF} only supports apache or lighttpd"
+ ewarn "out of the box. Since you are not using one of them, you"
+ ewarn "will have to configure your webserver yourself."
+ fi
+ fi
+}
+
+pkg_postinst() {
+
+ if use web; then
+ if use apache2 || use lighttpd ; then
+ if use apache2; then
+ elog "To enable the Nagios web front-end, please edit"
+ elog "${ROOT}/etc/conf.d/apache2 and add \"-D NAGIOS -D PHP\""
+ elog "to APACHE2_OPTS. Then Nagios will be available at,"
+ elog
+ elif use lighttpd; then
+ elog "To enable the Nagios web front-end, please add"
+ elog "'include \"nagios.conf\"' to the lighttpd configuration"
+ elog "file at ${ROOT}/etc/lighttpd/lighttpd.conf. Then Nagios"
+ elog "will be available at,"
+ elog
+ fi
+
+ elog " http://localhost/nagios/"
+ fi
+ fi
+
+ elog
+ elog "If your kernel has /proc protection, nagios"
+ elog "will not be happy as it relies on accessing the proc"
+ elog "filesystem. You can fix this by adding nagios into"
+ elog "the group wheel, but this is not recomended."
+ elog
+
+ if [ -n "${REPLACING_VERSIONS}" ]; then
+ ewarn "The local state directory for nagios has changed in v4.4.5,"
+ ewarn "from ${EROOT}/var/nagios to ${EROOT}/var/lib/nagios. If you"
+ ewarn "wish to migrate your state to the new location, first stop"
+ ewarn "nagios and then run"
+ ewarn ""
+ ewarn " diff --recursive --brief ${EROOT}/var/nagios ${EROOT}/var/lib/nagios"
+ ewarn ""
+ ewarn "to identify any files that should be moved to the new"
+ ewarn "location. They can simply be moved with \"mv\" before"
+ ewarn "restarting nagios."
+ fi
+}
diff --git a/net-analyzer/nagios-core/nagios-core-4.5.13.ebuild b/net-analyzer/nagios-core/nagios-core-4.5.13.ebuild
new file mode 100644
index 000000000000..7c6d84e07e33
--- /dev/null
+++ b/net-analyzer/nagios-core/nagios-core-4.5.13.ebuild
@@ -0,0 +1,274 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit systemd toolchain-funcs
+
+MY_P="${PN/-core}-${PV}"
+DESCRIPTION="Nagios core - monitoring daemon, web GUI, and documentation"
+HOMEPAGE="https://www.nagios.org/"
+
+# The name of the directory into which our Gentoo icons will be
+# extracted, and also the basename of the archive containing it.
+GENTOO_ICONS="${PN}-gentoo-icons-20141125"
+SRC_URI="https://downloads.sourceforge.net/nagios/${MY_P}.tar.gz
+ web? ( https://dev.gentoo.org/~mjo/distfiles/${GENTOO_ICONS}.tar )"
+
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="apache2 classicui lighttpd +web vim-syntax"
+
+# In pkg_postinst(), we change the group of the Nagios configuration
+# directory to that of the web server user. It can't belong to both
+# apache/lighttpd groups at the same time, so we block this combination
+# for our own sanity.
+#
+# This could be made to work, but we would need a better way to allow
+# the web user read-only access to Nagios's configuration directory.
+#
+REQUIRED_USE="apache2? ( !lighttpd )"
+
+#
+# Note, we require one of the apache2 CGI modules:
+#
+# * mod_cgi (USE=apache2_modules_cgi)
+# * mod_cgid (USE=apache2_modules_cgid)
+# * mod_fcgid (www-apache/mod_fcgid)
+#
+# We just don't care /which/ one. And of course PHP supports both CGI
+# (USE=cgi) and FastCGI (USE=fpm). We're pretty lenient with the
+# dependencies, and expect the user not to do anything /too/
+# stupid. (For example, installing Apache with only FastCGI support, and
+# PHP with only CGI support.)
+#
+# Another annoyance is that the upstream Makefile uses app-arch/unzip to
+# extract a snapshot of AngularJS, but that's only needed when USE=web.
+#
+MOD_ALIAS=apache2_modules_alias
+
+# The dependencies checked by the configure script. All of these are
+# also runtime dependencies; that's why ./configure checks for them.
+CONFIGURE_DEPEND="acct-group/nagios
+ acct-user/nagios
+ virtual/mailx
+ dev-lang/perl:="
+
+# In addition to the things that the ./configure script checks for,
+# we also need to be able to unzip stuff on the build host.
+#
+# We need the apache/lighttpd groups in src_install() for the things
+# installed as the --with-command-group argument, so they go here too.
+# The groups are also needed at runtime, but that is ensured by apache
+# and lighttpd themselves being in RDEPEND.
+#
+# The sys-apps/which dependency is removed in,
+#
+# https://github.com/NagiosEnterprises/nagioscore/pull/1031
+#
+# but would require an autoreconf if we wanted to backport it.
+#
+BDEPEND="${CONFIGURE_DEPEND}
+ sys-apps/which
+ apache2? ( acct-group/apache )
+ lighttpd? ( acct-group/lighttpd )
+ web? ( app-arch/unzip )"
+
+# This is linked into /usr/bin/nagios{,tats}
+DEPEND="dev-libs/libltdl:0"
+
+RDEPEND="${CONFIGURE_DEPEND}
+ ${DEPEND}
+ web? (
+ media-libs/gd[jpeg,png]
+ lighttpd? ( www-servers/lighttpd[php] )
+ apache2? (
+ || (
+ www-servers/apache[${MOD_ALIAS},apache2_modules_cgi]
+ www-servers/apache[${MOD_ALIAS},apache2_modules_cgid]
+ ( www-servers/apache[${MOD_ALIAS}] www-apache/mod_fcgid ) )
+ || (
+ dev-lang/php:*[apache2]
+ dev-lang/php:*[cgi]
+ dev-lang/php:*[fpm] )
+ )
+ )
+ vim-syntax? ( app-vim/nagios-syntax )"
+
+src_configure() {
+ local myconf
+
+ if use !apache2 && use !lighttpd ; then
+ myconf="${myconf} --with-command-group=nagios"
+ else
+ if use apache2 ; then
+ myconf="${myconf} --with-command-group=apache"
+ myconf="${myconf} --with-httpd-conf=/etc/apache2/conf.d"
+ elif use lighttpd ; then
+ myconf="${myconf} --with-command-group=lighttpd"
+ fi
+ fi
+
+ # We pass "unknown" as the init type because we don't want it to
+ # guess. Later on, we'll manually install both OpenRC and systemd
+ # services.
+ econf ${myconf} \
+ --prefix="${EPREFIX}/usr" \
+ --bindir="${EPREFIX}/usr/sbin" \
+ --localstatedir="${EPREFIX}/var/lib/nagios" \
+ --sysconfdir="${EPREFIX}/etc/nagios" \
+ --libexecdir="${EPREFIX}/usr/$(get_libdir)/nagios/plugins" \
+ --with-cgibindir="${EPREFIX}/usr/$(get_libdir)/nagios/cgi-bin" \
+ --with-webdir="${EPREFIX}/usr/share/nagios/htdocs" \
+ --with-init-type="unknown"
+
+ # The paths in the web server configuration files need to match
+ # those passed to econf above.
+ cp "${FILESDIR}/99_nagios4-r1.conf" \
+ "${FILESDIR}/lighttpd_nagios4-r1.conf" \
+ "${T}/" || die "failed to create copies of web server conf files"
+
+ sed -e "s|@CGIBINDIR@|${EPREFIX}/usr/$(get_libdir)/nagios/cgi-bin|g" \
+ -e "s|@WEBDIR@|${EPREFIX}/usr/share/nagios/htdocs|" \
+ -i "${T}/99_nagios4-r1.conf" \
+ -i "${T}/lighttpd_nagios4-r1.conf" \
+ || die "failed to substitute paths into web server conf files"
+
+}
+
+src_compile() {
+ emake CC="$(tc-getCC)" nagios
+
+ if use web; then
+ # Only compile the CGIs/HTML when USE=web is set.
+ emake CC="$(tc-getCC)" cgis html
+ fi
+}
+
+src_install() {
+ dodoc Changelog CONTRIBUTING.md README.md THANKS UPGRADING
+
+ # There is no way to install the CGIs unstripped from the top-level
+ # makefile, so descend into base/ here. The empty INSTALL_OPTS
+ # ensures that root:root: owns the nagios executables.
+ cd "${S}/base" || die
+ emake INSTALL_OPTS="" DESTDIR="${D}" install-unstripped
+ cd "${S}" || die
+
+ # Otherwise this gets installed as 770 and you get "access denied"
+ # for some reason or other when starting nagios. The permissions
+ # on nagiostats are just for consistency (these should both get
+ # fixed upstream).
+ fperms 775 /usr/sbin/nagios /usr/sbin/nagiostats
+
+ # INSTALL_OPTS are needed for most of install-basic, but we don't
+ # want them on the LIBEXECDIR, argh.
+ emake DESTDIR="${D}" install-basic
+ fowners root:root /usr/$(get_libdir)/nagios/plugins
+
+ # Don't make the configuration owned by the nagios user, because
+ # then he can edit nagios.cfg and trick nagios into running as root
+ # and doing his bidding.
+ emake INSTALL_OPTS="" DESTDIR="${D}" install-config
+
+ # No INSTALL_OPTS used in install-commandmode, thankfully.
+ emake DESTDIR="${D}" install-commandmode
+
+ # The build system installs these directories, but portage assumes
+ # that the build system doesn't know what it's doing so we have to
+ # keepdir them, too. I guess you'll have to manually re-check the
+ # upstream build system forever to see if this is still necessary.
+ keepdir /var/lib/nagios{,/archives,/rw,/spool,/spool/checkresults}
+
+ if use web; then
+ # There is no way to install the CGIs unstripped from the
+ # top-level makefile, so descend into cgi/ here. The empty
+ # INSTALL_OPTS ensures that root:root: owns the CGI executables.
+ cd "${S}/cgi" || die
+ emake INSTALL_OPTS="" DESTDIR="${D}" install-unstripped
+ cd "${S}" || die
+
+ # install-html installs the new exfoliation theme
+ emake INSTALL_OPTS="" DESTDIR="${D}" install-html
+
+ if use classicui; then
+ # This overwrites the already-installed exfoliation theme
+ emake INSTALL_OPTS="" DESTDIR="${D}" install-classicui
+ fi
+
+ # Install cute Gentoo icons (bug #388323), setting their
+ # owner, group, and mode to match those of the rest of Nagios's
+ # images.
+ insinto /usr/share/nagios/htdocs/images/logos
+ doins "${WORKDIR}/${GENTOO_ICONS}"/*.*
+ fi
+
+ # The ./configure script for nagios detects the init system on the
+ # build host, which is wrong for all sorts of reasons. We've gone
+ # to great lengths above to avoid running "install-init" -- even
+ # indirectly -- and so now we must install whatever service files
+ # we need by hand.
+ newinitd startup/openrc-init nagios
+ systemd_newunit startup/default-service nagios.service
+
+ if use web ; then
+ if use apache2 ; then
+ # Install the Nagios configuration file for Apache.
+ insinto "/etc/apache2/modules.d"
+ newins "${T}/99_nagios4-r1.conf" "99_nagios4.conf"
+ elif use lighttpd ; then
+ # Install the Nagios configuration file for Lighttpd.
+ insinto /etc/lighttpd
+ newins "${T}/lighttpd_nagios4-r1.conf" nagios.conf
+ else
+ ewarn "${CATEGORY}/${PF} only supports apache or lighttpd"
+ ewarn "out of the box. Since you are not using one of them, you"
+ ewarn "will have to configure your webserver yourself."
+ fi
+ fi
+}
+
+pkg_postinst() {
+
+ if use web; then
+ if use apache2 || use lighttpd ; then
+ if use apache2; then
+ elog "To enable the Nagios web front-end, please edit"
+ elog "${ROOT}/etc/conf.d/apache2 and add \"-D NAGIOS -D PHP\""
+ elog "to APACHE2_OPTS. Then Nagios will be available at,"
+ elog
+ elif use lighttpd; then
+ elog "To enable the Nagios web front-end, please add"
+ elog "'include \"nagios.conf\"' to the lighttpd configuration"
+ elog "file at ${ROOT}/etc/lighttpd/lighttpd.conf. Then Nagios"
+ elog "will be available at,"
+ elog
+ fi
+
+ elog " http://localhost/nagios/"
+ fi
+ fi
+
+ elog
+ elog "If your kernel has /proc protection, nagios"
+ elog "will not be happy as it relies on accessing the proc"
+ elog "filesystem. You can fix this by adding nagios into"
+ elog "the group wheel, but this is not recomended."
+ elog
+
+ if [ -n "${REPLACING_VERSIONS}" ]; then
+ ewarn "The local state directory for nagios has changed in v4.4.5,"
+ ewarn "from ${EROOT}/var/nagios to ${EROOT}/var/lib/nagios. If you"
+ ewarn "wish to migrate your state to the new location, first stop"
+ ewarn "nagios and then run"
+ ewarn ""
+ ewarn " diff --recursive --brief ${EROOT}/var/nagios ${EROOT}/var/lib/nagios"
+ ewarn ""
+ ewarn "to identify any files that should be moved to the new"
+ ewarn "location. They can simply be moved with \"mv\" before"
+ ewarn "restarting nagios."
+ fi
+}
diff --git a/net-analyzer/nagios-core/nagios-core-4.5.8.ebuild b/net-analyzer/nagios-core/nagios-core-4.5.8.ebuild
new file mode 100644
index 000000000000..5898db53f9c4
--- /dev/null
+++ b/net-analyzer/nagios-core/nagios-core-4.5.8.ebuild
@@ -0,0 +1,266 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit systemd toolchain-funcs
+
+MY_P="${PN/-core}-${PV}"
+DESCRIPTION="Nagios core - monitoring daemon, web GUI, and documentation"
+HOMEPAGE="https://www.nagios.org/"
+
+# The name of the directory into which our Gentoo icons will be
+# extracted, and also the basename of the archive containing it.
+GENTOO_ICONS="${PN}-gentoo-icons-20141125"
+SRC_URI="https://downloads.sourceforge.net/nagios/${MY_P}.tar.gz
+ web? ( https://dev.gentoo.org/~mjo/distfiles/${GENTOO_ICONS}.tar )"
+
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~arm64 ~ppc ppc64 ~sparc x86"
+IUSE="apache2 classicui lighttpd +web vim-syntax"
+
+# In pkg_postinst(), we change the group of the Nagios configuration
+# directory to that of the web server user. It can't belong to both
+# apache/lighttpd groups at the same time, so we block this combination
+# for our own sanity.
+#
+# This could be made to work, but we would need a better way to allow
+# the web user read-only access to Nagios's configuration directory.
+#
+REQUIRED_USE="apache2? ( !lighttpd )"
+
+#
+# Note, we require one of the apache2 CGI modules:
+#
+# * mod_cgi (USE=apache2_modules_cgi)
+# * mod_cgid (USE=apache2_modules_cgid)
+# * mod_fcgid (www-apache/mod_fcgid)
+#
+# We just don't care /which/ one. And of course PHP supports both CGI
+# (USE=cgi) and FastCGI (USE=fpm). We're pretty lenient with the
+# dependencies, and expect the user not to do anything /too/
+# stupid. (For example, installing Apache with only FastCGI support, and
+# PHP with only CGI support.)
+#
+# Another annoyance is that the upstream Makefile uses app-arch/unzip to
+# extract a snapshot of AngularJS, but that's only needed when USE=web.
+#
+MOD_ALIAS=apache2_modules_alias
+
+# The dependencies checked by the configure script. All of these are
+# also runtime dependencies; that's why ./configure checks for them.
+CONFIGURE_DEPEND="acct-group/nagios
+ acct-user/nagios
+ virtual/mailx
+ dev-lang/perl:="
+
+# In addition to the things that the ./configure script checks for,
+# we also need to be able to unzip stuff on the build host.
+#
+# We need the apache/lighttpd groups in src_install() for the things
+# installed as the --with-command-group argument, so they go here too.
+# The groups are also needed at runtime, but that is ensured by apache
+# and lighttpd themselves being in RDEPEND.
+BDEPEND="${CONFIGURE_DEPEND}
+ apache2? ( acct-group/apache )
+ lighttpd? ( acct-group/lighttpd )
+ web? ( app-arch/unzip )"
+
+# This is linked into /usr/bin/nagios{,tats}
+DEPEND="dev-libs/libltdl:0"
+
+RDEPEND="${CONFIGURE_DEPEND}
+ ${DEPEND}
+ web? (
+ media-libs/gd[jpeg,png]
+ lighttpd? ( www-servers/lighttpd[php] )
+ apache2? (
+ || (
+ www-servers/apache[${MOD_ALIAS},apache2_modules_cgi]
+ www-servers/apache[${MOD_ALIAS},apache2_modules_cgid]
+ ( www-servers/apache[${MOD_ALIAS}] www-apache/mod_fcgid ) )
+ || (
+ dev-lang/php:*[apache2]
+ dev-lang/php:*[cgi]
+ dev-lang/php:*[fpm] )
+ )
+ )
+ vim-syntax? ( app-vim/nagios-syntax )"
+
+src_configure() {
+ local myconf
+
+ if use !apache2 && use !lighttpd ; then
+ myconf="${myconf} --with-command-group=nagios"
+ else
+ if use apache2 ; then
+ myconf="${myconf} --with-command-group=apache"
+ myconf="${myconf} --with-httpd-conf=/etc/apache2/conf.d"
+ elif use lighttpd ; then
+ myconf="${myconf} --with-command-group=lighttpd"
+ fi
+ fi
+
+ # We pass "unknown" as the init type because we don't want it to
+ # guess. Later on, we'll manually install both OpenRC and systemd
+ # services.
+ econf ${myconf} \
+ --prefix="${EPREFIX}/usr" \
+ --bindir="${EPREFIX}/usr/sbin" \
+ --localstatedir="${EPREFIX}/var/lib/nagios" \
+ --sysconfdir="${EPREFIX}/etc/nagios" \
+ --libexecdir="${EPREFIX}/usr/$(get_libdir)/nagios/plugins" \
+ --with-cgibindir="${EPREFIX}/usr/$(get_libdir)/nagios/cgi-bin" \
+ --with-webdir="${EPREFIX}/usr/share/nagios/htdocs" \
+ --with-init-type="unknown"
+
+ # The paths in the web server configuration files need to match
+ # those passed to econf above.
+ cp "${FILESDIR}/99_nagios4-r1.conf" \
+ "${FILESDIR}/lighttpd_nagios4-r1.conf" \
+ "${T}/" || die "failed to create copies of web server conf files"
+
+ sed -e "s|@CGIBINDIR@|${EPREFIX}/usr/$(get_libdir)/nagios/cgi-bin|g" \
+ -e "s|@WEBDIR@|${EPREFIX}/usr/share/nagios/htdocs|" \
+ -i "${T}/99_nagios4-r1.conf" \
+ -i "${T}/lighttpd_nagios4-r1.conf" \
+ || die "failed to substitute paths into web server conf files"
+
+}
+
+src_compile() {
+ emake CC="$(tc-getCC)" nagios
+
+ if use web; then
+ # Only compile the CGIs/HTML when USE=web is set.
+ emake CC="$(tc-getCC)" cgis html
+ fi
+}
+
+src_install() {
+ dodoc Changelog CONTRIBUTING.md README.md THANKS UPGRADING
+
+ # There is no way to install the CGIs unstripped from the top-level
+ # makefile, so descend into base/ here. The empty INSTALL_OPTS
+ # ensures that root:root: owns the nagios executables.
+ cd "${S}/base" || die
+ emake INSTALL_OPTS="" DESTDIR="${D}" install-unstripped
+ cd "${S}" || die
+
+ # Otherwise this gets installed as 770 and you get "access denied"
+ # for some reason or other when starting nagios. The permissions
+ # on nagiostats are just for consistency (these should both get
+ # fixed upstream).
+ fperms 775 /usr/sbin/nagios /usr/sbin/nagiostats
+
+ # INSTALL_OPTS are needed for most of install-basic, but we don't
+ # want them on the LIBEXECDIR, argh.
+ emake DESTDIR="${D}" install-basic
+ fowners root:root /usr/$(get_libdir)/nagios/plugins
+
+ # Don't make the configuration owned by the nagios user, because
+ # then he can edit nagios.cfg and trick nagios into running as root
+ # and doing his bidding.
+ emake INSTALL_OPTS="" DESTDIR="${D}" install-config
+
+ # No INSTALL_OPTS used in install-commandmode, thankfully.
+ emake DESTDIR="${D}" install-commandmode
+
+ # The build system installs these directories, but portage assumes
+ # that the build system doesn't know what it's doing so we have to
+ # keepdir them, too. I guess you'll have to manually re-check the
+ # upstream build system forever to see if this is still necessary.
+ keepdir /var/lib/nagios{,/archives,/rw,/spool,/spool/checkresults}
+
+ if use web; then
+ # There is no way to install the CGIs unstripped from the
+ # top-level makefile, so descend into cgi/ here. The empty
+ # INSTALL_OPTS ensures that root:root: owns the CGI executables.
+ cd "${S}/cgi" || die
+ emake INSTALL_OPTS="" DESTDIR="${D}" install-unstripped
+ cd "${S}" || die
+
+ # install-html installs the new exfoliation theme
+ emake INSTALL_OPTS="" DESTDIR="${D}" install-html
+
+ if use classicui; then
+ # This overwrites the already-installed exfoliation theme
+ emake INSTALL_OPTS="" DESTDIR="${D}" install-classicui
+ fi
+
+ # Install cute Gentoo icons (bug #388323), setting their
+ # owner, group, and mode to match those of the rest of Nagios's
+ # images.
+ insinto /usr/share/nagios/htdocs/images/logos
+ doins "${WORKDIR}/${GENTOO_ICONS}"/*.*
+ fi
+
+ # The ./configure script for nagios detects the init system on the
+ # build host, which is wrong for all sorts of reasons. We've gone
+ # to great lengths above to avoid running "install-init" -- even
+ # indirectly -- and so now we must install whatever service files
+ # we need by hand.
+ newinitd startup/openrc-init nagios
+ systemd_newunit startup/default-service nagios.service
+
+ if use web ; then
+ if use apache2 ; then
+ # Install the Nagios configuration file for Apache.
+ insinto "/etc/apache2/modules.d"
+ newins "${T}/99_nagios4-r1.conf" "99_nagios4.conf"
+ elif use lighttpd ; then
+ # Install the Nagios configuration file for Lighttpd.
+ insinto /etc/lighttpd
+ newins "${T}/lighttpd_nagios4-r1.conf" nagios.conf
+ else
+ ewarn "${CATEGORY}/${PF} only supports apache or lighttpd"
+ ewarn "out of the box. Since you are not using one of them, you"
+ ewarn "will have to configure your webserver yourself."
+ fi
+ fi
+}
+
+pkg_postinst() {
+
+ if use web; then
+ if use apache2 || use lighttpd ; then
+ if use apache2; then
+ elog "To enable the Nagios web front-end, please edit"
+ elog "${ROOT}/etc/conf.d/apache2 and add \"-D NAGIOS -D PHP\""
+ elog "to APACHE2_OPTS. Then Nagios will be available at,"
+ elog
+ elif use lighttpd; then
+ elog "To enable the Nagios web front-end, please add"
+ elog "'include \"nagios.conf\"' to the lighttpd configuration"
+ elog "file at ${ROOT}/etc/lighttpd/lighttpd.conf. Then Nagios"
+ elog "will be available at,"
+ elog
+ fi
+
+ elog " http://localhost/nagios/"
+ fi
+ fi
+
+ elog
+ elog "If your kernel has /proc protection, nagios"
+ elog "will not be happy as it relies on accessing the proc"
+ elog "filesystem. You can fix this by adding nagios into"
+ elog "the group wheel, but this is not recomended."
+ elog
+
+ if [ -n "${REPLACING_VERSIONS}" ]; then
+ ewarn "The local state directory for nagios has changed in v4.4.5,"
+ ewarn "from ${EROOT}/var/nagios to ${EROOT}/var/lib/nagios. If you"
+ ewarn "wish to migrate your state to the new location, first stop"
+ ewarn "nagios and then run"
+ ewarn ""
+ ewarn " diff --recursive --brief ${EROOT}/var/nagios ${EROOT}/var/lib/nagios"
+ ewarn ""
+ ewarn "to identify any files that should be moved to the new"
+ ewarn "location. They can simply be moved with \"mv\" before"
+ ewarn "restarting nagios."
+ fi
+}
diff --git a/net-analyzer/nagios-icinga-openvpn/Manifest b/net-analyzer/nagios-icinga-openvpn/Manifest
new file mode 100644
index 000000000000..6e9b6cd78f78
--- /dev/null
+++ b/net-analyzer/nagios-icinga-openvpn/Manifest
@@ -0,0 +1 @@
+DIST nagios-icinga-openvpn-0.0.1.tar.gz 4637 BLAKE2B 365b6450cccd5f7f25348583eae45c0b15932ec1e858d375171911e4108dd2b7fc133559a35399ece8d2a349f05b2f51897cf9e271f498b6bbaa2c6bba3551a9 SHA512 0dae6c2df71a20e287720767aa4ba41d0568f3cd4bd2a6eb252f86d810d3de265ddc38397df15bb1b115ba35ac68aa6e18345dc4432d4d13b08b500483ffbb11
diff --git a/net-analyzer/nagios-icinga-openvpn/metadata.xml b/net-analyzer/nagios-icinga-openvpn/metadata.xml
new file mode 100644
index 000000000000..a6e780957ae0
--- /dev/null
+++ b/net-analyzer/nagios-icinga-openvpn/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>mjo@gentoo.org</email>
+ <name>Michael Orlitzky</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nagios-icinga-openvpn/nagios-icinga-openvpn-0.0.1-r6.ebuild b/net-analyzer/nagios-icinga-openvpn/nagios-icinga-openvpn-0.0.1-r6.ebuild
new file mode 100644
index 000000000000..529347fb18a3
--- /dev/null
+++ b/net-analyzer/nagios-icinga-openvpn/nagios-icinga-openvpn-0.0.1-r6.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+DISTUTILS_USE_PEP517=setuptools
+inherit distutils-r1
+
+MY_PN="check_openvpn"
+DESCRIPTION="A Nagios plugin to check whether an OpenVPN server is alive"
+HOMEPAGE="https://github.com/liquidat/nagios-icinga-openvpn"
+SRC_URI="https://github.com/liquidat/nagios-icinga-openvpn/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~riscv"
+
+src_install() {
+ distutils-r1_src_install
+
+ local nagiosplugindir="/usr/$(get_libdir)/nagios/plugins"
+ dodir "${nagiosplugindir}"
+
+ # Create a symlink from the nagios plugin directory to the /usr/bin
+ # location. The "binary" in /usr/bin should also be a symlink, since
+ # the python machinery allows the user to switch out the
+ # interpreter. We don't want to mess with any of that, so we just
+ # point to whatever the system would use if the user executed
+ # ${MY_PN}.
+ #
+ # The relative symlink is preferred so that if the package is
+ # installed e.g. while in a chroot, the symlink will never point
+ # outside of that chroot.
+ #
+ dosym "../../../bin/${MY_PN}" "${nagiosplugindir}/${MY_PN}"
+}
diff --git a/net-analyzer/nagios-plugin-check_lm_sensors/Manifest b/net-analyzer/nagios-plugin-check_lm_sensors/Manifest
new file mode 100644
index 000000000000..6c9406511fff
--- /dev/null
+++ b/net-analyzer/nagios-plugin-check_lm_sensors/Manifest
@@ -0,0 +1 @@
+DIST nagios-plugin-check_lm_sensors-4.1.1_p20191028.tar.gz 21775 BLAKE2B d1b9946f45ea30e66baa87825c29aa64f18927ec5c07641d05789f189bc3aacb9764b3790eaa699d83c11860027bc36af9b85ba95b2845afa7533d03fd9d153d SHA512 4473719e5631edbebb8d8ee79578243a97c46cf70a14a2c780560df811f9d4d63081788b2059a9636f26d19a68ac0a44d6b68a4b386b1145d3f3fad8d60439fe
diff --git a/net-analyzer/nagios-plugin-check_lm_sensors/metadata.xml b/net-analyzer/nagios-plugin-check_lm_sensors/metadata.xml
new file mode 100644
index 000000000000..be2920870848
--- /dev/null
+++ b/net-analyzer/nagios-plugin-check_lm_sensors/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>sbraz@gentoo.org</email>
+ <name>Louis Sautier</name>
+ </maintainer>
+ <upstream>
+ <bugs-to>https://github.com/matteocorti/check_lm_sensors/issues</bugs-to>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nagios-plugin-check_lm_sensors/nagios-plugin-check_lm_sensors-4.1.1_p20191028.ebuild b/net-analyzer/nagios-plugin-check_lm_sensors/nagios-plugin-check_lm_sensors-4.1.1_p20191028.ebuild
new file mode 100644
index 000000000000..cd457b7e25dc
--- /dev/null
+++ b/net-analyzer/nagios-plugin-check_lm_sensors/nagios-plugin-check_lm_sensors-4.1.1_p20191028.ebuild
@@ -0,0 +1,37 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit perl-module vcs-snapshot
+
+MY_PN="${PN/nagios-plugin-/}"
+MY_COMMIT="80db8aa58be8f5d7800564d62305281be1ec8e6b"
+
+DESCRIPTION="Nagios plugin to monitor the values of onboard sensors and disk temperatures"
+HOMEPAGE="https://github.com/matteocorti/check_lm_sensors"
+SRC_URI="https://github.com/matteocorti/${MY_PN}/archive/${MY_COMMIT}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND="dev-perl/Module-Install"
+RDEPEND="
+ dev-perl/JSON-MaybeXS
+ dev-perl/Monitoring-Plugin
+ virtual/perl-Getopt-Long
+"
+
+src_compile() {
+ default
+ pod2man ${MY_PN}.pod > ${MY_PN}.1 || die
+}
+
+src_install() {
+ perl-module_src_install
+ doman ${MY_PN}.1
+ local plugindir="/usr/$(get_libdir)/nagios/plugins"
+ dodir "${plugindir}"
+ mv "${ED}/usr/bin/${MY_PN}" "${ED}/${plugindir}" || die
+}
diff --git a/net-analyzer/nagios-plugin-check_raid/Manifest b/net-analyzer/nagios-plugin-check_raid/Manifest
new file mode 100644
index 000000000000..4eeb321c9ee5
--- /dev/null
+++ b/net-analyzer/nagios-plugin-check_raid/Manifest
@@ -0,0 +1 @@
+DIST nagios-plugin-check_raid-4.0.10.tar.gz 54895 BLAKE2B 6432624de419fca2d376362e5d13031272b6feeccdc6202b8a7eec92ab1f6c362ab88f9c912b10695c34347388dd154b12757a8b4268d30c0436589da060d5cc SHA512 1b8c353fbd0dff6fea5311c4149af16b1e1a5778794ef0085dcd8ee18f196579cca0b9f8c1ecef51f3ee36665aec6069f64ebe4d2e565bf7223bed59f2de5ee1
diff --git a/net-analyzer/nagios-plugin-check_raid/metadata.xml b/net-analyzer/nagios-plugin-check_raid/metadata.xml
new file mode 100644
index 000000000000..0e707962a581
--- /dev/null
+++ b/net-analyzer/nagios-plugin-check_raid/metadata.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>robbat2@gentoo.org</email>
+ <name>Robin H. Johnson</name>
+ </maintainer>
+ <longdescription lang="en">
+ Nagios/Icinga plugin to check current server's RAID status; this tool
+ wraps MANY different RAID tools and provides a consistent check for
+ them.
+ </longdescription>
+ <use>
+ <flag name="3ware">Support 3ware RAID controllers</flag>
+ <flag name="aacraid">Support Adaptec AAC-RAID controllers</flag>
+ <flag name="dmraid">Support Device-Mapper RAID</flag>
+ <flag name="hpa">Support HP Array controllers</flag>
+ <flag name="hpsa">Support HP SmartArray (CCISS) controllers</flag>
+ <flag name="megaraid-sas">Support LSI MegaRAID SAS controllers</flag>
+ <flag name="mpt-sas2">Support LSI SAS-2 controllers</flag>
+ <flag name="mpt">Support LSI MPT Fusion controllers</flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nagios-plugin-check_raid/nagios-plugin-check_raid-4.0.10-r3.ebuild b/net-analyzer/nagios-plugin-check_raid/nagios-plugin-check_raid-4.0.10-r3.ebuild
new file mode 100644
index 000000000000..e5295fefced0
--- /dev/null
+++ b/net-analyzer/nagios-plugin-check_raid/nagios-plugin-check_raid-4.0.10-r3.ebuild
@@ -0,0 +1,66 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit perl-module
+
+#COMMIT=""
+MY_PV="${COMMIT:-${PV}}"
+MY_P="${PN}-${MY_PV}"
+
+DESCRIPTION="Nagios/Icinga plugin to check current server's RAID status"
+HOMEPAGE="https://github.com/glensc/nagios-plugin-check_raid"
+SRC_URI="https://github.com/glensc/nagios-plugin-check_raid/archive/${MY_PV}.tar.gz -> ${MY_P}.tar.gz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~sparc ~x86"
+IUSE="3ware aacraid dmraid hpa hpsa megaraid-sas mpt mpt-sas2"
+
+DEPEND="
+ dev-perl/Monitoring-Plugin
+ dev-perl/Module-Pluggable"
+RDEPEND="${DEPEND}
+ sys-apps/smartmontools
+ sys-fs/lsscsi
+ 3ware? ( sys-block/tw_cli )
+ aacraid? ( sys-block/arcconf )
+ dmraid? ( sys-fs/dmraid )
+ hpa? ( sys-block/hpacucli )
+ hpsa? ( sys-apps/cciss_vol_status )
+ megaraid-sas? ( sys-block/megacli )
+ mpt-sas2? ( sys-block/sas2ircu )
+ mpt? ( sys-block/mpt-status )"
+
+src_prepare() {
+ default
+
+ # Upstream has a custom Makefile that is meant to build bundles
+ sed -i '/CPANfile/d' Makefile.PL || die
+}
+
+src_install() {
+ default
+ dodoc README.md CHANGELOG.md CONTRIBUTING.md check_raid.cfg
+
+ local plugindir="/usr/$(get_libdir)/nagios/plugins"
+ dodir "${plugindir}"
+ mv -f "${ED}"/usr/bin/check_raid.pl "${ED}/${plugindir}" || die
+}
+
+pkg_postinst() {
+ einfo "The following RAID controllers are supported without special tools:"
+ einfo "GDT (Intel/ICP) RAID Controller"
+ einfo "HP MSA (special configuration needed)"
+ einfo "The following RAID controllers do not have tools packaged in Gentoo, but ARE supported by this tool:"
+ einfo "Intel: CmdTool2"
+ einfo "Areca: areca-cli"
+ einfo "See https://github.com/glensc/nagios-plugin-check_raid/issues/10"
+ einfo "Marvell RAID: mvcli"
+ einfo "See https://github.com/glensc/nagios-plugin-check_raid/issues/92"
+ einfo "Adaptec ServeRAID: aaccli"
+ einfo "Adaptec AACRAID: afacli (* some controllers supported by USE=aacraid, sys-block/arcconf)"
+ einfo "Adaptec ServeRAID 7k: ipssend"
+}
diff --git a/net-analyzer/nagios-plugins-linux-madrisan/Manifest b/net-analyzer/nagios-plugins-linux-madrisan/Manifest
new file mode 100644
index 000000000000..39c17cfb3de8
--- /dev/null
+++ b/net-analyzer/nagios-plugins-linux-madrisan/Manifest
@@ -0,0 +1,2 @@
+DIST nagios-plugins-linux-madrisan-34.tar.xz 399116 BLAKE2B f5fae6818c0aa87a140238cde28e7ea24fb19976274e301df03308c97d980e1ddfca51861d6302321b3959f67e426fdcf501787525d3a81ab6850ccaf4cc6d34 SHA512 a189135c590c5086bc7b3c1bb9f5ec1d15c55a542d39a578743abe62678dad961115b7180a62dfaf7ffc9f63679e33d0d2253b51feeae775fa1c5a3a7cd22149
+DIST nagios-plugins-linux-madrisan-35.tar.xz 402896 BLAKE2B 6fd73bf428fb86c19dd41a628f6aab8f416be2f4ae017da07ca8c143abaf009275ef251b90b3363fb32fd2c16bba5d7b3d8f6cf8aa9fa2a3d74ac9e4c0199ccd SHA512 ed157042e668b3e1cf570fa6c46677f5f5e290019ff2a9f86fa06d944942cffed77b25a413bf124f8d3a36592ebec7f7f6ec09d8efec1c0a619b6b07f1a4d0c8
diff --git a/net-analyzer/nagios-plugins-linux-madrisan/metadata.xml b/net-analyzer/nagios-plugins-linux-madrisan/metadata.xml
new file mode 100644
index 000000000000..455bdab86afe
--- /dev/null
+++ b/net-analyzer/nagios-plugins-linux-madrisan/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>sbraz@gentoo.org</email>
+ <name>Louis Sautier</name>
+ </maintainer>
+ <use>
+ <flag name="curl">Build check_container which requires <pkg>net-misc/curl</pkg>
+ </flag>
+ </use>
+ <upstream>
+ <bugs-to>https://github.com/madrisan/nagios-plugins-linux/issues</bugs-to>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nagios-plugins-linux-madrisan/nagios-plugins-linux-madrisan-34.ebuild b/net-analyzer/nagios-plugins-linux-madrisan/nagios-plugins-linux-madrisan-34.ebuild
new file mode 100644
index 000000000000..4cb8f2a417f3
--- /dev/null
+++ b/net-analyzer/nagios-plugins-linux-madrisan/nagios-plugins-linux-madrisan-34.ebuild
@@ -0,0 +1,48 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+MY_PN="nagios-plugins-linux"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Additional and alternative Nagios plugins for Linux"
+HOMEPAGE="https://github.com/madrisan/nagios-plugins-linux"
+SRC_URI="https://github.com/madrisan/${MY_PN}/releases/download/v${PV}/${MY_P}.tar.xz -> ${P}.tar.xz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="curl systemd"
+
+DEPEND="
+ curl? ( net-misc/curl:0= )
+ systemd? ( sys-apps/systemd:= )
+"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ default
+ # Avoid collision with net-analyzer/monitoring-plugins
+ # and net-analyzer/nagios-plugins
+ sed -ri "s/check_(load|swap|uptime|users)/&_madrisan/" plugins/Makefile.am || die
+ eautoreconf
+}
+
+src_configure() {
+ local myconf=(
+ --libexecdir="${EPREFIX}/usr/$(get_libdir)/nagios/plugins"
+ # Most options are already defaults for Gentoo
+ --disable-hardening
+ $(use_enable curl libcurl)
+ $(use_enable systemd)
+ )
+ econf "${myconf[@]}"
+}
+
+src_test() {
+ emake check VERBOSE=1
+}
diff --git a/net-analyzer/nagios-plugins-linux-madrisan/nagios-plugins-linux-madrisan-35.ebuild b/net-analyzer/nagios-plugins-linux-madrisan/nagios-plugins-linux-madrisan-35.ebuild
new file mode 100644
index 000000000000..f94f37f98012
--- /dev/null
+++ b/net-analyzer/nagios-plugins-linux-madrisan/nagios-plugins-linux-madrisan-35.ebuild
@@ -0,0 +1,48 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+MY_PN="nagios-plugins-linux"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Additional and alternative Nagios plugins for Linux"
+HOMEPAGE="https://github.com/madrisan/nagios-plugins-linux"
+SRC_URI="https://github.com/madrisan/${MY_PN}/releases/download/v${PV}/${MY_P}.tar.xz -> ${P}.tar.xz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="curl systemd"
+
+DEPEND="
+ curl? ( net-misc/curl:0= )
+ systemd? ( sys-apps/systemd:= )
+"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ default
+ # Avoid collision with net-analyzer/monitoring-plugins
+ # and net-analyzer/nagios-plugins
+ sed -ri "s/check_(load|swap|uptime|users)/&_madrisan/" plugins/Makefile.am || die
+ eautoreconf
+}
+
+src_configure() {
+ local myconf=(
+ --libexecdir="${EPREFIX}/usr/$(get_libdir)/nagios/plugins"
+ # Most options are already defaults for Gentoo
+ --disable-hardening
+ $(use_enable curl libcurl)
+ $(use_enable systemd)
+ )
+ econf "${myconf[@]}"
+}
+
+src_test() {
+ emake check VERBOSE=1
+}
diff --git a/net-analyzer/nagios-plugins-snmp/Manifest b/net-analyzer/nagios-plugins-snmp/Manifest
new file mode 100644
index 000000000000..ebcb179eda70
--- /dev/null
+++ b/net-analyzer/nagios-plugins-snmp/Manifest
@@ -0,0 +1 @@
+DIST nagios-plugins-snmp-0.6.0.tgz 381664 BLAKE2B 1a6124b5aa194123b17a1ce98a4e023a8d71f70a6c5ae61b8b54b204050f7914f100e1e639630955e45905f86282cab6a7034e5927b3db5b609beb315a66c748 SHA512 42fe9e2a9a99876d81731d821b7d1e4700f8637c8a890980f5cb3de4a3985210d86d38fd7ebbd7d075ff616da518cc932f5eb999f47fc3833ed62c1f7d4f4529
diff --git a/net-analyzer/nagios-plugins-snmp/files/nagios-plugins-snmp-0.6.0-fno-common.patch b/net-analyzer/nagios-plugins-snmp/files/nagios-plugins-snmp-0.6.0-fno-common.patch
new file mode 100644
index 000000000000..926a96d74d1c
--- /dev/null
+++ b/net-analyzer/nagios-plugins-snmp/files/nagios-plugins-snmp-0.6.0-fno-common.patch
@@ -0,0 +1,86 @@
+diff --git a/src/nagios_common_snmp.c b/src/nagios_common_snmp.c
+index 5bdc571..73f96e8 100755
+--- a/src/nagios_common_snmp.c
++++ b/src/nagios_common_snmp.c
+@@ -1,5 +1,21 @@
+ #include "nagios_common_snmp.h"
+
++char plugin_name[30]; /* plugin name */
++char plugin_tmp_prefix[50];
++char output[MAX_OUTPUT];
++int output_overflow;
++char *p_output;
++char *o_host;
++int o_verb;
++char* error;
++int o_port,o_timeout;
++int o_help, o_verbose,o_version,o_v2c;
++int retries;
++int o_snmpver,snmp_bulk;
++char *o_community,*o_login,*o_passwd,*o_privpasswd;
++char *o_protocols[2],*o_authproto,*o_privproto;
++struct snmp_session session, *ss;
++
+ int init_plugins_gettext(){
+ if (setlocale( LC_ALL, "" )==NULL) return 1;
+ bindtextdomain( PACKAGE, LOCALEDIR );
+diff --git a/src/nagios_common_snmp.h b/src/nagios_common_snmp.h
+index 8903fd0..1b3fa3a 100755
+--- a/src/nagios_common_snmp.h
++++ b/src/nagios_common_snmp.h
+@@ -56,8 +56,8 @@ int init_plugins_gettext();
+ /*********************************** Utilities ****************************************/
+ /* cache utilities */
+
+-char plugin_name[30]; /* plugin name */
+-char plugin_tmp_prefix[50];
++extern char plugin_name[30]; /* plugin name */
++extern char plugin_tmp_prefix[50];
+
+ /* defined in configure script */
+ /*#define BASE_CACHE "/tmp/cache"*/
+@@ -71,12 +71,12 @@ int write_cache(snmp_table **descT,int num);
+
+ /* maximum caracters in ouput */
+ #define MAX_OUTPUT 500
+-char output[MAX_OUTPUT];
+-int output_overflow;
++extern char output[MAX_OUTPUT];
++extern int output_overflow;
+
+ /* maximum caracters for performance output label*/
+ #define MAX_LABEL_SIZE 50
+-char *p_output;
++extern char *p_output;
+
+ /* Put data in output */
+ void strcat_output(const char *string);
+@@ -143,18 +143,18 @@ int get_options (int narg, char* const valarg[],options_nagsnmp *liste, int n_li
+ #define TIMEOUT_DEFAULT 3
+
+ /* standard options */
+-char *o_host;
+-int o_verb;
+-char* error;
++extern char *o_host;
++extern int o_verb;
++extern char* error;
+ /* snmp options */
+-int o_port,o_timeout;
+-int o_help, o_verbose,o_version,o_v2c;
+-int retries;
+-int o_snmpver,snmp_bulk;
+-char *o_community,*o_login,*o_passwd,*o_privpasswd;
+-char *o_protocols[2],*o_authproto,*o_privproto;
++extern int o_port,o_timeout;
++extern int o_help, o_verbose,o_version,o_v2c;
++extern int retries;
++extern int o_snmpver,snmp_bulk;
++extern char *o_community,*o_login,*o_passwd,*o_privpasswd;
++extern char *o_protocols[2],*o_authproto,*o_privproto;
+ /* snmp sessions */
+-struct snmp_session session, *ss;
++extern struct snmp_session session, *ss;
+
+ /* Common options definition and check */
+ #define common_usage "[-v -V] -H <host> -C <snmp_community> [-2] | (-l login -x passwd [-X pass -L <authp>,<privp>) [-p <port>] [-t <timeout>]"
diff --git a/net-analyzer/nagios-plugins-snmp/metadata.xml b/net-analyzer/nagios-plugins-snmp/metadata.xml
new file mode 100644
index 000000000000..342d632ace6e
--- /dev/null
+++ b/net-analyzer/nagios-plugins-snmp/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>sysadmin@gentoo.org</email>
+ <name>Gentoo Sysadmin Project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nagios-plugins-snmp/nagios-plugins-snmp-0.6.0-r2.ebuild b/net-analyzer/nagios-plugins-snmp/nagios-plugins-snmp-0.6.0-r2.ebuild
new file mode 100644
index 000000000000..005fd81aef64
--- /dev/null
+++ b/net-analyzer/nagios-plugins-snmp/nagios-plugins-snmp-0.6.0-r2.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools
+
+DESCRIPTION="Additional Nagios plugins for monitoring SNMP capable devices"
+HOMEPAGE="http://nagios.manubulon.com"
+SRC_URI="http://nagios.manubulon.com/${P}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~ppc ppc64 ~sparc x86"
+
+DEPEND="
+ acct-group/nagios
+ acct-user/nagios
+ net-analyzer/net-snmp"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}"/nagios-plugins-snmp
+
+PATCHES=( "${FILESDIR}"/${P}-fno-common.patch )
+
+src_prepare() {
+ default
+ sed -i -e '/^CFLAGS=""/d' configure.in || die
+ mv configure.{in,ac} || die
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ --sysconfdir="${EPREFIX}"/etc/nagios \
+ --libexec="${EPREFIX}"/usr/$(get_libdir)/nagios/plugins
+}
+
+src_install() {
+ default
+
+ fowners root:nagios /usr/$(get_libdir)/nagios/plugins
+ fperms o-rwx /usr/$(get_libdir)/nagios/plugins
+}
diff --git a/net-analyzer/nagios-plugins/Manifest b/net-analyzer/nagios-plugins/Manifest
new file mode 100644
index 000000000000..5b26e509708a
--- /dev/null
+++ b/net-analyzer/nagios-plugins/Manifest
@@ -0,0 +1 @@
+DIST nagios-plugins-2.4.12.tar.gz 2752829 BLAKE2B b72b9350e9c72c9cbe0cbca3effce16ec753887945455a1ac47975105e68f516923020cc88ee42da0c8cd815fe841a82ff5053c3ba5688888bec7be12c08fb8c SHA512 fbff697d0cea1cbeb83737f240a42c00e18bf443b8af303b5d7f7f735eb6faa5305d8740fb27472876dc1398735204e0d7a0e5863c2064ec2a37541253f91502
diff --git a/net-analyzer/nagios-plugins/files/nagios-plugins-2.4.12-postgresql-detection.patch b/net-analyzer/nagios-plugins/files/nagios-plugins-2.4.12-postgresql-detection.patch
new file mode 100644
index 000000000000..570b0992bf7e
--- /dev/null
+++ b/net-analyzer/nagios-plugins/files/nagios-plugins-2.4.12-postgresql-detection.patch
@@ -0,0 +1,143 @@
+From be90a1d9ae5b5e10015619271337e3a2c731b3bb Mon Sep 17 00:00:00 2001
+From: Michael Orlitzky <michael@orlitzky.com>
+Date: Sat, 7 Sep 2024 19:51:27 -0400
+Subject: [PATCH] configure.ac: rewrite PostgreSQL detection using pg_config
+
+PostgreSQL installs a pg_config program that spits out its "include"
+and "library" paths when called with --includedir and --libdir,
+respectively. Using this we can simplify the detection of PostgreSQL,
+since in theory the problem is reduced to that of finding pg_config.
+
+This commit replaces the existing PostgreSQL detection with a more
+straightforward search for pg_config. The change is backwards-
+compatible, in the sense that --with-pgsql=foo will still find the
+postgres installation in "foo," except now it will do so through
+foo/bin/pg_config rather than foo/include and foo/lib.
+
+This solves a rare problem: on systems where only one version of
+postgres is allowed, or on systems where multiple versions exist but a
+"default" version can be chosen, the most likely path for postgres is
+--with-pgsql=/usr. With the current implementation, this leads to
+"-I/usr/include" being added to CPPFLAGS, which is fine, and
+"-L/usr/lib" being added to LDFLAGS, which is not. On some of those
+same systems, /usr/lib is for 32-bit libraries while /usr/lib64 is the
+"normal" (64-bit) library path. So as a result of detecting postgres
+under /usr, the linker is pointed to the wrong set of libraries. This
+is known to crash lld (the LLVM linker).
+---
+ configure.ac | 100 ++++++++++++++++++++++++++-------------------------
+ 1 file changed, 52 insertions(+), 48 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b67a7805..c69246c0 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -209,56 +209,60 @@ if test "$enable_extra_opts" = "yes" ; then
+ fi
+ fi
+
+-dnl Check for PostgreSQL libraries
+-_SAVEDLIBS="$LIBS"
+-_SAVEDCPPFLAGS="$CPPFLAGS"
++dnl Check for PostgreSQL libraries. Postgres ships a pg_config program
++dnl that gives us the -I and -L flags we need, so the problem is reduced
++dnl to finding pg_config. When the user passes --with-pgsql=foo, we expect
++dnl that "foo" is something like /usr/lib64/postgresql-16, i.e. that we
++dnl can locate "bin/pg_config" there. This supports choosing one particular
++dnl version of postgres when multiple versions are installed. If the "foo"
++dnl argument is omitted, we instead use whatever pg_config (if any) is present
++dnl on the PATH. It is an error to request postgres support when no usable
++dnl pg_config is provided and one cannot be found.
+ AC_ARG_WITH(pgsql,
+ ACX_HELP_STRING([--with-pgsql=DIR],
+- [sets path to pgsql installation]),
+- PGSQL=$withval,)
+-AC_CHECK_LIB(crypt,main)
+-if test "$ac_cv_lib_crypt_main" = "yes" -a "x$PGSQL" != "xno"; then
+- if test -n "$PGSQL"; then
+- LDFLAGS="$LDFLAGS -L$PGSQL/lib"
+- CPPFLAGS="$CPPFLAGS -I$PGSQL/include"
+- fi
+- AC_CHECK_LIB(pq,PQsetdbLogin,,,-lcrypt)
+- if test "$ac_cv_lib_pq_PQsetdbLogin" = "yes"; then
+- AC_CHECK_HEADERS(pgsql/libpq-fe.h)
+- AC_CHECK_HEADERS(postgresql/libpq-fe.h)
+- AC_CHECK_HEADERS(libpq-fe.h)
+- if [[ -n "$PGSQL" -a "$ac_cv_header_libpq_fe_h" = "yes" ]]; then
+- PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
+- PGINCLUDE="-I$PGSQL/include"
+- elif test "$ac_cv_header_pgsql_libpq_fe_h" = "yes"; then
+- PGLIBS="-lpq -lcrypt"
+- PGINCLUDE="-I/usr/include/pgsql"
+- elif test "$ac_cv_header_postgresql_libpq_fe_h" = "yes"; then
+- PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
+- PGINCLUDE="-I/usr/include/postgresql"
+- elif test "$ac_cv_header_libpq_fe_h" = "yes"; then
+- PGLIBS="-L$PGSQL/lib -lpq -lcrypt"
+- PGINCLUDE="-I$PGSQL/include"
+- fi
+- if test -z "$PGINCLUDE"; then
+- AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
+- AC_MSG_WARN([install PostgreSQL headers to compile this plugin (see REQUIREMENTS).])
+- else
+- AC_SUBST(PGLIBS)
+- AC_SUBST(PGINCLUDE)
+- EXTRAS="$EXTRAS check_pgsql\$(EXEEXT)"
+- fi
+- else
+- AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
+- AC_MSG_WARN([LIBS="$LIBS" CPPFLAGS="$CPPFLAGS"])
+- AC_MSG_WARN([install PostgreSQL libs to compile this plugin (see REQUIREMENTS).])
+- fi
+-else
+- AC_MSG_WARN([Skipping PostgreSQL plugin (check_pgsql)])
+- AC_MSG_WARN([install lib crypt and PostgreSQL libs to compile this plugin (see REQUIREMENTS).])
+-fi
+-LIBS="$_SAVEDLIBS"
+-CPPFLAGS="$_SAVEDCPPFLAGS"
++ [path to pgsql installation, i.e. path to bin/pg_config]),
++ PGSQL=$withval,PGSQL=no)
++
++dnl --with-pgsql sans argument gives "yes"
++dnl --without-pgsql gives "no" (this is also the default, see above)
++dnl --with-pgsql=foo gives "foo"
++AS_IF([test "x${PGSQL}" = xno],[
++ AC_MSG_WARN([Skipping PostgreSQL plugin])
++],[
++ _PG_CONFIG=""
++
++ AS_IF([test "x${PGSQL}" = xyes],[
++ AC_PATH_PROG(_PG_CONFIG, pg_config)
++ AS_IF([test -z "${_PG_CONFIG}"],[
++ AC_MSG_ERROR([postgres support requested but pg_config not found])
++ ])
++ ],[
++ AC_MSG_CHECKING([for usable ${PGSQL}/bin/pg_config])
++ AS_IF([test -f "${PGSQL}/bin/pg_config" -a -x "${PGSQL}/bin/pg_config"],[
++ AC_MSG_RESULT([yes])
++ _PG_CONFIG="${PGSQL}/bin/pg_config"
++ ],[
++ AC_MSG_RESULT([no])
++ AC_MSG_ERROR([${PGSQL}/bin/pg_config not found or not executable])
++ ])
++ ])
++
++ dnl Sanity check: look for a header using the -I flags
++ dnl that we get from pg_config.
++ _SAVED_CPPFLAGS="${CPPFLAGS}"
++ PGINCLUDE="-I$(${_PG_CONFIG} --includedir)"
++ CPPFLAGS="${CPPFLAGS} ${PGINCLUDE}"
++ AC_CHECK_HEADER(libpq-fe.h,[
++ PGLIBS="-L$(${_PG_CONFIG} --libdir) -lpq"
++ AC_SUBST(PGLIBS)
++ AC_SUBST(PGINCLUDE)
++ EXTRAS="$EXTRAS check_pgsql\$(EXEEXT)"
++ ],[
++ AC_MSG_ERROR([libpq-fe.h not found])
++ ])
++ CPPFLAGS="${_SAVED_CPPFLAGS}"
++])
++
+
+ AC_ARG_WITH([dbi], [AS_HELP_STRING([--without-dbi], [Skips the dbi plugin])])
+ dnl Check for DBI libraries
diff --git a/net-analyzer/nagios-plugins/files/nagios-plugins-2.4.12-snmpgetnext.patch b/net-analyzer/nagios-plugins/files/nagios-plugins-2.4.12-snmpgetnext.patch
new file mode 100644
index 000000000000..549ba3e30b71
--- /dev/null
+++ b/net-analyzer/nagios-plugins/files/nagios-plugins-2.4.12-snmpgetnext.patch
@@ -0,0 +1,128 @@
+From 37b27e058cc8a352a588c865e0319c23f6cb23d5 Mon Sep 17 00:00:00 2001
+From: Michael Orlitzky <michael@orlitzky.com>
+Date: Sat, 15 Feb 2025 17:45:53 -0500
+Subject: [PATCH 1/3] configure.ac: update net-snmp homepage
+
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 6b443263..0308f5cb 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1491,7 +1491,7 @@ then
+ AC_DEFINE_UNQUOTED(PATH_TO_SNMPGET,"$PATH_TO_SNMPGET",[path to snmpget binary])
+ EXTRAS="$EXTRAS check_hpjd check_snmp\$(EXEEXT)"
+ else
+- AC_MSG_WARN([Get snmpget from http://net-snmp.sourceforge.net to make check_hpjd and check_snmp plugins])
++ AC_MSG_WARN([Get snmpget from https://net-snmp.sourceforge.io/ to make check_hpjd and check_snmp plugins])
+ fi
+
+ AC_PATH_PROG(PATH_TO_SNMPGETNEXT,snmpgetnext)
+
+From 8246d9c987b45586b5ceca2c81a671c642ad7106 Mon Sep 17 00:00:00 2001
+From: Michael Orlitzky <michael@orlitzky.com>
+Date: Sat, 15 Feb 2025 17:47:34 -0500
+Subject: [PATCH 2/3] configure.ac: use AS_IF in net-snmp tests
+
+Not strictly required here, but the AS_IF macro is generally safer
+because it handles (often unintentional) AC_REQUIRE calls.
+---
+ configure.ac | 12 +++++-------
+ 1 file changed, 5 insertions(+), 7 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 0308f5cb..5aaf4eee 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1486,23 +1486,21 @@ AC_ARG_WITH(snmpget_command,
+ ACX_HELP_STRING([--with-snmpget-command=PATH],
+ [Path to snmpget command]),
+ PATH_TO_SNMPGET=$withval)
+-if test -n "$PATH_TO_SNMPGET"
+-then
++AS_IF([test -n "$PATH_TO_SNMPGET"], [
+ AC_DEFINE_UNQUOTED(PATH_TO_SNMPGET,"$PATH_TO_SNMPGET",[path to snmpget binary])
+ EXTRAS="$EXTRAS check_hpjd check_snmp\$(EXEEXT)"
+-else
++], [
+ AC_MSG_WARN([Get snmpget from https://net-snmp.sourceforge.io/ to make check_hpjd and check_snmp plugins])
+-fi
++])
+
+ AC_PATH_PROG(PATH_TO_SNMPGETNEXT,snmpgetnext)
+ AC_ARG_WITH(snmpgetnext_command,
+ ACX_HELP_STRING([--with-snmpgetnext-command=PATH],
+ [Path to snmpgetnext command]),
+ PATH_TO_SNMPGETNEXT=$withval)
+-if test -n "$PATH_TO_SNMPGETNEXT"
+-then
++AS_IF([test -n "$PATH_TO_SNMPGETNEXT"], [
+ AC_DEFINE_UNQUOTED(PATH_TO_SNMPGETNEXT,"$PATH_TO_SNMPGETNEXT",[path to snmpgetnext binary])
+-fi
++])
+
+ if ( $PERL -M"Net::SNMP 3.6" -e 'exit' 2>/dev/null )
+ then
+
+From 1ceac49405e77b28e75118c5b537db84d73866a5 Mon Sep 17 00:00:00 2001
+From: Michael Orlitzky <michael@orlitzky.com>
+Date: Sat, 15 Feb 2025 18:10:06 -0500
+Subject: [PATCH 3/3] configure.ac: require snmpgetnext for check_snmp
+
+PATH_TO_SNMPGETNEXT is used unconditionally in plugins/check_snmp.c,
+and the build will fail if it is left undefined (that is, if we are
+building check_snmp but snmpgetnext was neither found on the user's
+PATH or supplied manually).
+
+To avoid this build failure, we now test for snmpgetnext inside the
+case for snmpget, and skip check_snmp unless BOTH are found.
+
+Closes GH-788
+---
+ configure.ac | 25 +++++++++++++++++--------
+ 1 file changed, 17 insertions(+), 8 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 5aaf4eee..ae2ea796 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1486,20 +1486,29 @@ AC_ARG_WITH(snmpget_command,
+ ACX_HELP_STRING([--with-snmpget-command=PATH],
+ [Path to snmpget command]),
+ PATH_TO_SNMPGET=$withval)
+-AS_IF([test -n "$PATH_TO_SNMPGET"], [
+- AC_DEFINE_UNQUOTED(PATH_TO_SNMPGET,"$PATH_TO_SNMPGET",[path to snmpget binary])
+- EXTRAS="$EXTRAS check_hpjd check_snmp\$(EXEEXT)"
+-], [
+- AC_MSG_WARN([Get snmpget from https://net-snmp.sourceforge.io/ to make check_hpjd and check_snmp plugins])
+-])
+
+ AC_PATH_PROG(PATH_TO_SNMPGETNEXT,snmpgetnext)
+ AC_ARG_WITH(snmpgetnext_command,
+ ACX_HELP_STRING([--with-snmpgetnext-command=PATH],
+ [Path to snmpgetnext command]),
+ PATH_TO_SNMPGETNEXT=$withval)
+-AS_IF([test -n "$PATH_TO_SNMPGETNEXT"], [
+- AC_DEFINE_UNQUOTED(PATH_TO_SNMPGETNEXT,"$PATH_TO_SNMPGETNEXT",[path to snmpgetnext binary])
++
++AS_IF([test -n "$PATH_TO_SNMPGET"], [
++ AC_DEFINE_UNQUOTED(PATH_TO_SNMPGET,"$PATH_TO_SNMPGET",[path to snmpget binary])
++ EXTRAS="$EXTRAS check_hpjd"
++
++ dnl PATH_TO_SNMPGETNEXT is used unconditionally in check_snmp:
++ dnl
++ dnl https://github.com/nagios-plugins/nagios-plugins/issues/788
++ dnl
++ AS_IF([test -n "$PATH_TO_SNMPGETNEXT"], [
++ AC_DEFINE_UNQUOTED(PATH_TO_SNMPGETNEXT,"$PATH_TO_SNMPGETNEXT",[path to snmpgetnext binary])
++ EXTRAS="$EXTRAS check_snmp\$(EXEEXT)"
++ ], [
++ AC_MSG_WARN([Get snmpgetnext from https://net-snmp.sourceforge.io/ to build the check_snmp plugin])
++ ])
++], [
++ AC_MSG_WARN([Get snmpget from https://net-snmp.sourceforge.io/ to build the check_hpjd and check_snmp plugins])
+ ])
+
+ if ( $PERL -M"Net::SNMP 3.6" -e 'exit' 2>/dev/null )
diff --git a/net-analyzer/nagios-plugins/metadata.xml b/net-analyzer/nagios-plugins/metadata.xml
new file mode 100644
index 000000000000..ca27f75edb99
--- /dev/null
+++ b/net-analyzer/nagios-plugins/metadata.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>mjo@gentoo.org</email>
+ <name>Michael Orlitzky</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>sysadmin@gentoo.org</email>
+ <name>Gentoo Sysadmin Project</name>
+ </maintainer>
+ <use>
+ <flag name="ipv6">
+ Enable ipv6 checks.
+ </flag>
+ <flag name="nagios-dns">
+ Install <pkg>net-dns/bind-tools</pkg> required for monitoring
+ DNS servers. Disabling the flag does not remove any plugin file.
+ </flag>
+ <flag name="nagios-game">
+ Install <pkg>games-util/qstat</pkg> required for monitoring FPS
+ servers. Disabling the flag does not remove any plugin file.
+ </flag>
+ <flag name="nagios-ping">
+ Install <pkg>net-analyzer/fping</pkg> required for fancy ping
+ monitoring. Disabling the flag does not remove any plugin file.
+ </flag>
+ <flag name="rpc">
+ Install <pkg>net-nds/rpcbind</pkg> required for monitoring RPC
+ services. Disabling the flag does not remove any plugin file.
+ </flag>
+ <flag name="ssh">
+ Install <pkg>net-misc/openssh</pkg> required for monitoring SSH
+ servers. Disabling the flag does not remove any plugin file.
+ </flag>
+ <flag name="snmp" restrict="&gt;=net-analyzer/nagios-plugins-1.4.16-r1">
+ Install <pkg>dev-perl/Net-SNMP</pkg> required for monitoring
+ SNMP values. Disabling the flag does not remove any plugin file.
+ </flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nagios-plugins/nagios-plugins-2.4.12-r4.ebuild b/net-analyzer/nagios-plugins/nagios-plugins-2.4.12-r4.ebuild
new file mode 100644
index 000000000000..b566275a248e
--- /dev/null
+++ b/net-analyzer/nagios-plugins/nagios-plugins-2.4.12-r4.ebuild
@@ -0,0 +1,140 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="Official plugins for Nagios"
+HOMEPAGE="https://nagios-plugins.org/"
+SRC_URI="https://github.com/${PN}/${PN}/releases/download/release-${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86"
+IUSE="ipv6 ldap mysql nagios-dns nagios-ping nagios-game nls postgres samba selinux snmp ssh +ssl rpc"
+
+# Most of the plugins use automagic dependencies, i.e. the plugin will
+# get built if the binary it uses is installed. For example, check_snmp
+# will be built only if snmpget from net-analyzer/net-snmp[-minimal] is
+# installed. End result: most of our runtime dependencies are required
+# at build time as well.
+AUTOMAGIC_DEPEND="
+ nagios-dns? ( net-dns/bind )
+ nagios-game? ( games-util/qstat )
+ nagios-ping? ( net-analyzer/fping )
+ rpc? ( net-nds/rpcbind )
+ samba? ( net-fs/samba )
+ ssh? ( virtual/openssh )
+ snmp? ( dev-perl/Net-SNMP
+ net-analyzer/net-snmp[-minimal] )"
+
+# Perl really needs to run during the build...
+BDEPEND="${AUTOMAGIC_DEPEND}
+ dev-lang/perl"
+
+DEPEND="
+ ldap? ( net-nds/openldap:= )
+ mysql? ( dev-db/mysql-connector-c:= )
+ postgres? ( dev-db/postgresql:* )
+ ssl? (
+ dev-libs/openssl:0=
+ )"
+
+# Basically everything in net-analyzer/monitoring-plugins collides with
+# nagios-plugins. Perl (from BDEPEND) is needed at runtime, too.
+RDEPEND="${BDEPEND}
+ ${DEPEND}
+ !net-analyzer/monitoring-plugins
+ selinux? ( sec-policy/selinux-nagios )"
+
+# At least one test is interactive.
+RESTRICT="test"
+
+PATCHES=(
+ "${FILESDIR}/${P}-postgresql-detection.patch"
+ "${FILESDIR}/${P}-snmpgetnext.patch"
+)
+
+DOCS=(
+ ACKNOWLEDGEMENTS
+ AUTHORS
+ CODING
+ ChangeLog
+ FAQ
+ NEWS
+ README
+ REQUIREMENTS
+ SUPPORT
+ THANKS
+)
+
+# These all come from gnulib and the ./configure checks are working as
+# intended when the functions aren't present. Bugs 907755 and 924341.
+QA_CONFIG_IMPL_DECL_SKIP=(
+ statvfs64
+ re_set_syntax
+ re_compile_pattern
+ re_search
+ re_match
+)
+
+src_prepare() {
+ default
+
+ # Fix the path to our perl interpreter
+ sed -i -e "1s:/usr/local/bin/perl:/usr/bin/perl:" \
+ "${S}"/plugins-scripts/*.pl \
+ || die 'failed to fix perl interpreter path'
+
+ eautoreconf
+
+ # eautoreconf replaces $(MKDIR_P) with $(mkdir_p) in
+ # po/Makefile.in.in. As you might expect, this does not work.
+ sed -i po/Makefile.in.in \
+ -e 's/@mkdir_p@/@MKDIR_P@/' \
+ || die
+}
+
+src_configure() {
+ # Use an array to prevent econf from mangling the ping args.
+ local myconf=()
+
+ if use ssl; then
+ myconf+=( $(use_with ssl openssl /usr) )
+ else
+ myconf+=( --without-openssl )
+ myconf+=( --without-gnutls )
+ fi
+
+ # The autodetection for these two commands can hang if localhost is
+ # down or ICMP traffic is filtered (bug #468296). But also the path
+ # likes to move around on us (bug #883765).
+ myconf+=( --with-ping-command="$(command -v ping) -n -U -w %d -c %d %s" )
+
+ if use ipv6; then
+ myconf+=( --with-ping6-command="$(command -v ping6) -n -U -w %d -c %d %s" )
+ fi
+
+ # Radius support has been broken for a long time and causes the build
+ # to fail (bug 957000, but before that too). I would recommend using
+ # net-analyzer/monitoring-plugins if you need check_radius.
+ econf \
+ $(use_with ipv6) \
+ $(use_with ldap) \
+ $(use_with mysql) \
+ $(use_enable nls) \
+ $(use_with postgres pgsql /usr) \
+ --without-radius \
+ "${myconf[@]}" \
+ --libexecdir="/usr/$(get_libdir)/nagios/plugins" \
+ --sysconfdir="/etc/nagios"
+}
+
+pkg_postinst() {
+ elog "This ebuild has a number of USE flags that determine what you"
+ elog "are able to monitor. Depending on what you want to monitor, some"
+ elog "or all of these USE flags need to be set."
+ elog
+ elog "The plugins are installed in ${ROOT}/usr/$(get_libdir)/nagios/plugins"
+}
diff --git a/net-analyzer/nagios-plugins/nagios-plugins-2.4.12.ebuild b/net-analyzer/nagios-plugins/nagios-plugins-2.4.12.ebuild
new file mode 100644
index 000000000000..a10fd4c426e3
--- /dev/null
+++ b/net-analyzer/nagios-plugins/nagios-plugins-2.4.12.ebuild
@@ -0,0 +1,121 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Official plugins for Nagios"
+HOMEPAGE="https://nagios-plugins.org/"
+SRC_URI="https://github.com/${PN}/${PN}/releases/download/release-${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~ppc ppc64 ~sparc x86"
+IUSE="ipv6 ldap mysql nagios-dns nagios-ping nagios-game postgres radius samba selinux snmp ssh +ssl"
+
+# Most of the plugins use automagic dependencies, i.e. the plugin will
+# get built if the binary it uses is installed. For example, check_snmp
+# will be built only if snmpget from net-analyzer/net-snmp[-minimal] is
+# installed. End result: most of our runtime dependencies are required
+# at build time as well.
+AUTOMAGIC_DEPEND="
+ nagios-dns? ( net-dns/bind-tools )
+ nagios-game? ( games-util/qstat )
+ nagios-ping? ( net-analyzer/fping )
+ samba? ( net-fs/samba )
+ ssh? ( virtual/openssh )
+ snmp? ( dev-perl/Net-SNMP
+ net-analyzer/net-snmp[-minimal] )"
+
+# Perl really needs to run during the build...
+BDEPEND="${AUTOMAGIC_DEPEND}
+ dev-lang/perl"
+
+DEPEND="
+ ldap? ( net-nds/openldap:= )
+ mysql? ( dev-db/mysql-connector-c:= )
+ postgres? ( dev-db/postgresql:* )
+ ssl? (
+ dev-libs/openssl:0=
+ )
+ radius? ( net-dialup/freeradius-client )"
+
+# Basically everything in net-analyzer/monitoring-plugins collides with
+# nagios-plugins. Perl (from BDEPEND) is needed at runtime, too.
+RDEPEND="${BDEPEND}
+ ${DEPEND}
+ !net-analyzer/monitoring-plugins
+ selinux? ( sec-policy/selinux-nagios )"
+
+# At least one test is interactive.
+RESTRICT="test"
+
+DOCS=(
+ ACKNOWLEDGEMENTS
+ AUTHORS
+ CODING
+ ChangeLog
+ FAQ
+ NEWS
+ README
+ REQUIREMENTS
+ SUPPORT
+ THANKS
+)
+
+# These all come from gnulib and the ./configure checks are working as
+# intended when the functions aren't present. Bugs 907755 and 924341.
+QA_CONFIG_IMPL_DECL_SKIP=(
+ statvfs64
+ re_set_syntax
+ re_compile_pattern
+ re_search
+ re_match
+)
+
+src_prepare() {
+ default
+
+ # Fix the path to our perl interpreter
+ sed -i -e "1s:/usr/local/bin/perl:/usr/bin/perl:" \
+ "${S}"/plugins-scripts/*.pl \
+ || die 'failed to fix perl interpreter path'
+}
+
+src_configure() {
+ # Use an array to prevent econf from mangling the ping args.
+ local myconf=()
+
+ if use ssl; then
+ myconf+=( $(use_with ssl openssl /usr) )
+ else
+ myconf+=( --without-openssl )
+ myconf+=( --without-gnutls )
+ fi
+
+ # The autodetection for these two commands can hang if localhost is
+ # down or ICMP traffic is filtered (bug #468296). But also the path
+ # likes to move around on us (bug #883765).
+ myconf+=( --with-ping-command="$(command -v ping) -n -U -w %d -c %d %s" )
+
+ if use ipv6; then
+ myconf+=( --with-ping6-command="$(command -v ping6) -n -U -w %d -c %d %s" )
+ fi
+
+ econf \
+ $(use_with mysql) \
+ $(use_with ipv6) \
+ $(use_with ldap) \
+ $(use_with postgres pgsql /usr) \
+ $(use_with radius) \
+ "${myconf[@]}" \
+ --libexecdir="/usr/$(get_libdir)/nagios/plugins" \
+ --sysconfdir="/etc/nagios"
+}
+
+pkg_postinst() {
+ elog "This ebuild has a number of USE flags that determine what you"
+ elog "are able to monitor. Depending on what you want to monitor, some"
+ elog "or all of these USE flags need to be set."
+ elog
+ elog "The plugins are installed in ${ROOT}/usr/$(get_libdir)/nagios/plugins"
+}
diff --git a/net-analyzer/nagios/metadata.xml b/net-analyzer/nagios/metadata.xml
new file mode 100644
index 000000000000..cbe90e654198
--- /dev/null
+++ b/net-analyzer/nagios/metadata.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>mjo@gentoo.org</email>
+ <name>Michael Orlitzky</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>sysadmin@gentoo.org</email>
+ <name>Gentoo Sysadmin Project</name>
+ </maintainer>
+ <longdescription>
+ Nagios is a host and service monitor designed to inform you of
+ network problems before your clients, end-users or managers do. It
+ has been designed to run under the Linux operating system, but
+ works fine under most *NIX variants as well. The monitoring daemon
+ runs intermittent checks on hosts and services you specify using
+ external "plugins" which return status information to Nagios. When
+ problems are encountered, the daemon can send notifications out to
+ administrative contacts in a variety of different ways (email,
+ instant message, SMS, etc.). Current status information,
+ historical logs, and reports can all be accessed via a web
+ browser.
+ </longdescription>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:nagios:nagios</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nagios/nagios-4.5.12.ebuild b/net-analyzer/nagios/nagios-4.5.12.ebuild
new file mode 100644
index 000000000000..2c77143e18bf
--- /dev/null
+++ b/net-analyzer/nagios/nagios-4.5.12.ebuild
@@ -0,0 +1,14 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="The Nagios metapackage"
+HOMEPAGE="https://www.nagios.org/"
+
+LICENSE="metapackage"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~arm64 ~ppc ppc64 ~riscv ~sparc x86"
+
+RDEPEND="~net-analyzer/nagios-core-${PV}
+ || ( net-analyzer/nagios-plugins net-analyzer/monitoring-plugins )"
diff --git a/net-analyzer/nagios/nagios-4.5.13.ebuild b/net-analyzer/nagios/nagios-4.5.13.ebuild
new file mode 100644
index 000000000000..1707d8cf0b6f
--- /dev/null
+++ b/net-analyzer/nagios/nagios-4.5.13.ebuild
@@ -0,0 +1,14 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="The Nagios metapackage"
+HOMEPAGE="https://www.nagios.org/"
+
+LICENSE="metapackage"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~sparc ~x86"
+
+RDEPEND="~net-analyzer/nagios-core-${PV}
+ || ( net-analyzer/nagios-plugins net-analyzer/monitoring-plugins )"
diff --git a/net-analyzer/nagios/nagios-4.5.8.ebuild b/net-analyzer/nagios/nagios-4.5.8.ebuild
new file mode 100644
index 000000000000..02d4a2e6f761
--- /dev/null
+++ b/net-analyzer/nagios/nagios-4.5.8.ebuild
@@ -0,0 +1,14 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="The Nagios metapackage"
+HOMEPAGE="https://www.nagios.org/"
+
+LICENSE="metapackage"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~arm64 ~ppc ppc64 ~sparc x86"
+
+RDEPEND="~net-analyzer/nagios-core-${PV}
+ || ( net-analyzer/nagios-plugins net-analyzer/monitoring-plugins )"
diff --git a/net-analyzer/nagircbot/Manifest b/net-analyzer/nagircbot/Manifest
new file mode 100644
index 000000000000..9ff6ca97341f
--- /dev/null
+++ b/net-analyzer/nagircbot/Manifest
@@ -0,0 +1 @@
+DIST nagircbot-0.0.33.tgz 20085 BLAKE2B d419d1a7bcad1164c74490db4fb8a66ccbb0c9fbc761fe2807fe12d74d05297af3f307f9686971f246c9308a1f9e02c879f4461c116c68f4f403bf59c3836f63 SHA512 1e4d69cef4a425e8540ff408688cf7899c04098ec47acbd6da601f48e01f808958982e7d8a1519934bd5aa895fe0f8dedc51d80460f85097355d5bdea79fd708
diff --git a/net-analyzer/nagircbot/files/conf b/net-analyzer/nagircbot/files/conf
new file mode 100644
index 000000000000..79fc899e11bd
--- /dev/null
+++ b/net-analyzer/nagircbot/files/conf
@@ -0,0 +1,2 @@
+# Put nagircbot arguments here
+# BOTCONF="-f /var/nagios/status.dat -s irc.freenode.net:6667 -c channel -k password -n name"
diff --git a/net-analyzer/nagircbot/files/init b/net-analyzer/nagircbot/files/init
new file mode 100644
index 000000000000..c9cb5a3539bf
--- /dev/null
+++ b/net-analyzer/nagircbot/files/init
@@ -0,0 +1,19 @@
+#!/sbin/openrc-run
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ use net
+}
+
+start() {
+ ebegin "Starting nagircbot"
+ start-stop-daemon --start -x /usr/bin/nagircbot -- $BOTCONF
+ eend $? "Failed to start nagircbot"
+}
+
+stop() {
+ ebegin "Stopping nagircbot"
+ start-stop-daemon --stop -x /usr/bin/nagircbot
+ eend $? "Failed to stop nagircbot"
+}
diff --git a/net-analyzer/nagircbot/metadata.xml b/net-analyzer/nagircbot/metadata.xml
new file mode 100644
index 000000000000..342d632ace6e
--- /dev/null
+++ b/net-analyzer/nagircbot/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>sysadmin@gentoo.org</email>
+ <name>Gentoo Sysadmin Project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nagircbot/nagircbot-0.0.33.ebuild b/net-analyzer/nagircbot/nagircbot-0.0.33.ebuild
new file mode 100644
index 000000000000..74adb3d2cf47
--- /dev/null
+++ b/net-analyzer/nagircbot/nagircbot-0.0.33.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="An irc bot that alerts you to nagios changes"
+HOMEPAGE="http://www.vanheusden.com/nagircbot"
+SRC_URI="http://www.vanheusden.com/nagircbot/${P}.tgz"
+
+LICENSE="GPL-2" # GPL-2 only
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+
+DEPEND="dev-libs/openssl:0="
+RDEPEND="${DEPEND}
+net-analyzer/nagios-core"
+BDEPEND="virtual/pkgconfig"
+
+src_prepare() {
+ default
+ cp -av Makefile{,.org} || die
+
+ sed -i Makefile \
+ -e 's:-lcrypto -lssl:$(shell ${PKG_CONFIG} --libs openssl):g' \
+ -e 's:-O2::g;s:-g::g' \
+ || die
+}
+
+src_compile() {
+ tc-export PKG_CONFIG
+ emake CC="$(tc-getCC)" CXX="$(tc-getCXX)"
+}
+
+src_install() {
+ dobin nagircbot
+ newconfd "${FILESDIR}"/conf nagircbot
+ newinitd "${FILESDIR}"/init nagircbot
+}
diff --git a/net-analyzer/nagstamon/Manifest b/net-analyzer/nagstamon/Manifest
new file mode 100644
index 000000000000..d3a6f6e2d039
--- /dev/null
+++ b/net-analyzer/nagstamon/Manifest
@@ -0,0 +1 @@
+DIST nagstamon-3.16.2.tar.gz 582957 BLAKE2B a4c50f0d754590e81ee76bc8f97be8a15878575831b370fec68f713f8d09fcd48f54158f2656d5e46acb45c122054ff0e0cc4424ab39cbd438a1e7e713b27eb4 SHA512 af8e4f4db0be6966a93c636ad7a44da11d54376c866034dc2779d72250f6e22603f86aedd736cf4d476aae44950f0a02953c7c2dc71ec88d4685f46b05d11a29
diff --git a/net-analyzer/nagstamon/files/nagstamon-3.14.0-setup.patch b/net-analyzer/nagstamon/files/nagstamon-3.14.0-setup.patch
new file mode 100644
index 000000000000..1bb994201637
--- /dev/null
+++ b/net-analyzer/nagstamon/files/nagstamon-3.14.0-setup.patch
@@ -0,0 +1,24 @@
+--- a/setup.py 2023-01-29 09:29:13.885165525 +0100
++++ b/setup.py 2023-01-29 09:30:32.585630680 +0100
+@@ -45,6 +45,6 @@
+ #VERSION = AppInfo.VERSION.replace('-', '.') + '.' + DIST + DIST_VERSION
+ VERSION = AppInfo.VERSION.replace('-', '.')
+-NAGSTAMON_SCRIPT = 'nagstamon.py'
++NAGSTAMON_SCRIPT = 'nagstamon'
+
+ from setuptools import setup
+
+@@ -120,12 +120,7 @@
+ 'Nagstamon.Servers',
+ 'Nagstamon.Servers.Alertmanager',
+ 'Nagstamon.Servers.Centreon',
+- 'Nagstamon.thirdparty',
+- 'Nagstamon.thirdparty.Xlib',
+- 'Nagstamon.thirdparty.Xlib.ext',
+- 'Nagstamon.thirdparty.Xlib.protocol',
+- 'Nagstamon.thirdparty.Xlib.support',
+- 'Nagstamon.thirdparty.Xlib.xobject'],
++ 'Nagstamon.thirdparty'],
+ package_dir={'Nagstamon': 'Nagstamon'},
+ package_data={'Nagstamon': ['resources/*.*',
+ 'resources/qui/*',
diff --git a/net-analyzer/nagstamon/metadata.xml b/net-analyzer/nagstamon/metadata.xml
new file mode 100644
index 000000000000..342d632ace6e
--- /dev/null
+++ b/net-analyzer/nagstamon/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>sysadmin@gentoo.org</email>
+ <name>Gentoo Sysadmin Project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nagstamon/nagstamon-3.16.2.ebuild b/net-analyzer/nagstamon/nagstamon-3.16.2.ebuild
new file mode 100644
index 000000000000..0a115f2cab4d
--- /dev/null
+++ b/net-analyzer/nagstamon/nagstamon-3.16.2.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+DISTUTILS_USE_PEP517=setuptools
+
+inherit desktop distutils-r1 virtualx
+
+distutils_enable_tests pytest
+
+MY_PN="Nagstamon"
+MY_P="${MY_PN}-${PV/_p/-}"
+
+DESCRIPTION="systray monitor for displaying realtime status of several monitoring systems"
+HOMEPAGE="https://nagstamon.de"
+SRC_URI="https://github.com/HenriWahl/Nagstamon/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="test"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="${PYTHON_DEPS}
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/pyqt6[gui,multimedia,svg,widgets,${PYTHON_USEDEP}]
+ dev-python/pysocks[${PYTHON_USEDEP}]
+ dev-python/arrow[${PYTHON_USEDEP}]
+ dev-python/beautifulsoup4[${PYTHON_USEDEP}]
+ dev-python/dbus-python[${PYTHON_USEDEP}]
+ dev-python/keyring[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/psutil[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/cryptography[${PYTHON_USEDEP}]
+ dev-python/secretstorage[${PYTHON_USEDEP}]
+ >=dev-python/python-xlib-0.19[${PYTHON_USEDEP}]
+ dev-python/requests-kerberos[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? ( dev-python/pylint[${PYTHON_USEDEP}] )"
+
+PATCHES=( "${FILESDIR}/${PN}-3.14.0-setup.patch" )
+
+src_prepare() {
+ default_src_prepare
+
+ # pre-compressed already
+ rm Nagstamon/resources/nagstamon.1.gz || die
+ sed -e 's:\(nagstamon\.1\)\.gz:\1:' \
+ -e '/share/ s:^:#:' \
+ -i setup.py || die
+
+ mv ${PN}.py ${PN} || die
+
+ rm -rf "${S}/Nagstamon/thirdparty/Xlib/" || die
+}
+
+python_test() {
+ virtx epytest
+}
+
+distutils-r1_python_install_all() {
+ default
+
+ doman Nagstamon/resources/nagstamon.1
+ domenu Nagstamon/resources/nagstamon.desktop
+ doicon Nagstamon/resources/nagstamon.svg
+}
diff --git a/net-analyzer/nagtrap/Manifest b/net-analyzer/nagtrap/Manifest
new file mode 100644
index 000000000000..266183959c29
--- /dev/null
+++ b/net-analyzer/nagtrap/Manifest
@@ -0,0 +1 @@
+DIST nagtrap-0.1.3.tar.gz 141934 BLAKE2B 296f6688fd973adb7e8ff5879cbeccc17ae9acb685f55a2fb20c49281909f60270f66eff5083260c1bb8717762ad0cf9994134e165c2859251cbab97c3e2d188 SHA512 4603157beb35850a6f8b69919cd0ce8f108e6de8e85711b9c18665b69f91082d6703da396b1170633172cef630c2f3d73b717f1893cb4da6b6d15a3f577d445a
diff --git a/net-analyzer/nagtrap/metadata.xml b/net-analyzer/nagtrap/metadata.xml
new file mode 100644
index 000000000000..5f33304011d5
--- /dev/null
+++ b/net-analyzer/nagtrap/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nagtrap/nagtrap-0.1.3-r1.ebuild b/net-analyzer/nagtrap/nagtrap-0.1.3-r1.ebuild
new file mode 100644
index 000000000000..0b57ddc83426
--- /dev/null
+++ b/net-analyzer/nagtrap/nagtrap-0.1.3-r1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="Integrated snmptt visualization addon for the Nagios monitoring system"
+HOMEPAGE="http://www.nagtrap.org/"
+SRC_URI="http://www.nagiosforge.org/gf/download/frsrelease/126/252/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE=""
+
+DEPEND="virtual/httpd-php"
+RDEPEND="dev-lang/php[mysql]
+ net-analyzer/snmptt
+ net-analyzer/nagios-core
+ virtual/httpd-php"
+
+src_install() {
+ dodoc ChangeLog THANKS
+
+ dodir /usr/share/nagtrap
+ cp -r {db,nagtrap} "${ED}"/usr/share/nagtrap/ || die
+ fperms 640 /usr/share/nagtrap/nagtrap/etc/config.ini.php-dist
+
+ sed -i -e 's#use lib.*#use lib "/usr/lib/nagios/plugins";#g' \
+ plugin/check_snmptraps.pl || die "sed failed"
+
+ insinto /usr/$(get_libdir)/nagios/plugins
+ insopts -m 750 -g nagios
+ doins plugin/check_snmptraps.pl
+}
+
+pkg_postinst() {
+ elog "Before running NagTrap for the first time, you will need setup its configuration"
+ elog "${EROOT}/usr/share/nagtrap/nagtrap/etc/config.ini.php"
+ elog "A sample is installed in"
+ elog "${EROOT}/usr/share/nagtrap/nagtrap/etc/config.ini.php-sample"
+ elog
+ elog "NagTrap requires snmptt to write traps into a MySQL database."
+ elog "A database schema is available in ${EROOT}/usr/share/nagtrap/db"
+}
diff --git a/net-analyzer/nast/Manifest b/net-analyzer/nast/Manifest
new file mode 100644
index 000000000000..89294fc11f3a
--- /dev/null
+++ b/net-analyzer/nast/Manifest
@@ -0,0 +1 @@
+DIST nast-0.2.0.tar.gz 147568 BLAKE2B f51a0b3cebfac04cb3aa57f627099aecf893722ca8552c0e6f7f67266e13729e5c54c533cd7599c6d7cfa50c89ad5181439d4c1bc5bba883438213b45b4221ee SHA512 fbf29f9c2ae783e38d40054577a697f631c6590075ef80aa970002f1133c681a4cc1fcd715bc6140cc361c609dcebe8c6bf74544e8710363d30649398b3e388c
diff --git a/net-analyzer/nast/files/0001-Fix-signal-handler.patch b/net-analyzer/nast/files/0001-Fix-signal-handler.patch
new file mode 100644
index 000000000000..7961649e7db6
--- /dev/null
+++ b/net-analyzer/nast/files/0001-Fix-signal-handler.patch
@@ -0,0 +1,43 @@
+From eff649cd681e52b953dcf37065a7035246930858 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Wed, 12 Feb 2025 15:32:37 +0000
+Subject: [PATCH 1/2] Fix signal handler
+
+Signal handlers need to take an argument.
+
+Bug: https://bugs.gentoo.org/944402
+Signed-off-by: Sam James <sam@gentoo.org>
+---
+ common.c | 2 +-
+ include/nast.h | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/common.c b/common.c
+index 5649295..f2b60f4 100644
+--- a/common.c
++++ b/common.c
+@@ -226,7 +226,7 @@ void openfile(void)
+ }
+
+ /* signal handler */
+-void sigexit()
++void sigexit(int unused)
+ {
+ #ifdef HAVE_LIBNCURSES
+ # include <ncurses.h>
+diff --git a/include/nast.h b/include/nast.h
+index f5cd047..a65a404 100644
+--- a/include/nast.h
++++ b/include/nast.h
+@@ -73,7 +73,7 @@ int car (char *dev, int lg);
+ int run_bc (char *dev, char *filter);
+
+ /* other functions*/
+-void sigexit();
++void sigexit(int unused);
+ void openfile(void);
+ void bkg(void);
+
+--
+2.48.1
+
diff --git a/net-analyzer/nast/files/0002-Fix-Wformat-security.patch b/net-analyzer/nast/files/0002-Fix-Wformat-security.patch
new file mode 100644
index 000000000000..039950a6344e
--- /dev/null
+++ b/net-analyzer/nast/files/0002-Fix-Wformat-security.patch
@@ -0,0 +1,58 @@
+From 63598f0194ec0b291af30d8d7b3ee7bab1cd0928 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Wed, 12 Feb 2025 15:35:13 +0000
+Subject: [PATCH 2/2] Fix -Wformat-security
+
+Signed-off-by: Sam James <sam@gentoo.org>
+---
+ bcount.c | 2 +-
+ ncurses/n_nast.c | 6 +++---
+ 2 files changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/bcount.c b/bcount.c
+index 3130188..7987ac6 100644
+--- a/bcount.c
++++ b/bcount.c
+@@ -153,7 +153,7 @@ void bytecounting ()
+ else icons++;
+
+ sprintf (value, "%Ld", number);
+- printf (value);
++ printf ("%s", value);
+
+ /* calculate space */
+ if (strlen(value) < 6) printf ("\t\t");
+diff --git a/ncurses/n_nast.c b/ncurses/n_nast.c
+index 3e02859..ba50f2f 100644
+--- a/ncurses/n_nast.c
++++ b/ncurses/n_nast.c
+@@ -641,7 +641,7 @@ void title(void)
+ title = subwin(stdscr,3,COLS,0,0);
+ wbkgd(title,COLOR_PAIR(1));
+ box(title,0,0);
+- mvwprintw(title,1,(COLS-sizeof(TITLE))/2, TITLE);
++ mvwprintw(title,1,(COLS-sizeof(TITLE))/2, "%s", TITLE);
+ wrefresh(title);
+ }
+
+@@ -748,7 +748,7 @@ void pop_up_win(void)
+ pop_up = newwin(17,55,(LINES-17)/2,(COLS-55)/2);
+ wbkgd(pop_up,COLOR_PAIR(4));
+ box(pop_up,0,0);
+- mvwprintw(pop_up,0,(55 -strlen(message))/2, message);
++ mvwprintw(pop_up,0,(55 -strlen(message))/2, "%s", message);
+ wrefresh(pop_up);
+ }
+
+@@ -759,7 +759,7 @@ void help_win(void)
+ help = newwin(23,67,(LINES-23)/2,(COLS-67)/2);
+ wbkgd(help,COLOR_PAIR(4));
+ box(help,0,0);
+- mvwprintw(help,0,(67 -strlen(message))/2, message);
++ mvwprintw(help,0,(67 -strlen(message))/2, "%s", message);
+ wrefresh(help);
+ }
+
+--
+2.48.1
+
diff --git a/net-analyzer/nast/files/nast-0.2.0-gentoo.patch b/net-analyzer/nast/files/nast-0.2.0-gentoo.patch
new file mode 100644
index 000000000000..015354e51862
--- /dev/null
+++ b/net-analyzer/nast/files/nast-0.2.0-gentoo.patch
@@ -0,0 +1,104 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -83,22 +83,6 @@
+ # -- libnet --
+ #
+
+-filechk="yes"
+-AC_CHECK_FILE(/usr/lib/libnet.a,, filechk="no")
+-if test "$filechk" = "no"; then
+- AC_CHECK_FILE(/usr/local/lib/libnet.a, filechk="yes" ; LDFLAGS="-L/usr/local/lib"; CPPFLAGS="-I/usr/local/include")
+-fi
+-
+-if test "$filechk" = "no"; then AC_MSG_ERROR([
+-
+-Libnet archive file (libnet.a) not found in /usr or /usr/local!
+-
+-Libnet-1.1.x Packet Shaping Library is required.
+-You can download it from official web site: http://www.packetfactory.net/libnet
+-
+-])
+-fi
+-
+ AC_CHECK_LIB(net, libnet_name2addr4,, AC_MSG_ERROR([
+
+ Libnet-1.1.x Packet Shaping Library not found! It's required.
+@@ -110,22 +94,6 @@
+ # -- libpcap --
+ #
+
+-filechk="yes"
+-AC_CHECK_FILE(/usr/lib/libpcap.a,, filechk="no")
+-if test "$filechk" = "no"; then
+- AC_CHECK_FILE(/usr/local/lib/libpcap.a, filechk="yes" ; LDFLAGS="-L/usr/local/lib"; CPPFLAGS="-I/usr/local/include")
+-fi
+-
+-if test "$filechk" = "no"; then AC_MSG_ERROR([
+-
+-Libpcap archive file (libpcap.a) not found in /usr or /usr/local!
+-
+-Libpcap-0.7.1 Packet Capture Library is required.
+-You can download it from official web site: http://www.tcpdump.org/#current
+-
+-])
+-fi
+-
+ AC_CHECK_LIB(pcap, pcap_dispatch,, AC_MSG_ERROR([
+
+ Libpcap-0.7.1 Packet Capture Library not found! It's required.
+@@ -137,25 +105,7 @@
+ # -- libncurses support --
+ #
+
+-filechk="yes"
+-AC_CHECK_FILE(/usr/lib/libncurses.a,, filechk="no")
+-if test "$filechk" = "no"; then
+- AC_CHECK_FILE(/usr/local/lib/libncurses.a, filechk="yes" ; LDFLAGS="-L/usr/local/lib"; CPPFLAGS="-I/usr/local/include")
+-fi
+-
+-if test "$filechk" = "no";
+-then AC_MSG_WARN([
+-
+-Libncurses archive file (libncurses.a) not found in /usr or /usr/local!
+-
+-Ncurses library (*) not found in your system.
+-You can download it from official web site: http://www.gnu.org/software/ncurses/ncurses.html
+-(*): CRT screen handling and optimization package
+-
+-Building without ncurses menu support (-G flag will doesn't work)
+-
+-])
+-fi
++PKG_CHECK_MODULES(ncurses,ncurses,[LIBS="$LIBS $ncurses_LIBS"],)
+
+ ENABLE_NCRS="no"
+ AC_CHECK_LIB(ncurses, initscr, ENABLE_NCRS="yes"; NCURSES=ncurses/n_nast.o; LIBS="-lncurses $LIBS"; AC_DEFINE(HAVE_LIBNCURSES), AC_MSG_RESULT([
+@@ -173,28 +123,6 @@
+ # --lmenu support--
+ #
+
+-filechk="yes"
+-AC_CHECK_FILE(/usr/lib/libmenu.a,, filechk="no")
+-if test "$filechk" = "no"; then
+- AC_CHECK_FILE(/usr/local/lib/libmenu.a, filechk="yes" ; LDFLAGS="-L/usr/local/lib"; CPPFLAGS="-I/usr/local/include")
+-fi
+-
+-if test "$filechk" = "no";
+-then AC_MSG_WARN([
+-
+-Menu archive file (libncurses.a) not found in /usr or /usr/local!
+-
+-
+-Menu library (*) not found in your system.
+-You can download it from official web site: http://www.gnu.org/software/ncurses/ncurses.html
+-(*): CRT screen handling and optimization package
+-
+-
+-Building without ncurses menu support (-G flag will doesn't work)
+-])
+-
+-fi
+-
+ ENABLE_NCRS="no"
+ AC_CHECK_LIB(menu, menu_opts_off, ENABLE_NCRS="yes"; MENU=ncurses/n_menu.o; LIBS="-lmenu $LIBS"; AC_DEFINE(HAVE_LIBMENU), AC_MSG_RESULT([
+
diff --git a/net-analyzer/nast/metadata.xml b/net-analyzer/nast/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/nast/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nast/nast-0.2.0-r4.ebuild b/net-analyzer/nast/nast-0.2.0-r4.ebuild
new file mode 100644
index 000000000000..7417306e5b69
--- /dev/null
+++ b/net-analyzer/nast/nast-0.2.0-r4.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic
+
+DESCRIPTION="NAST - Network Analyzer Sniffer Tool"
+HOMEPAGE="https://sourceforge.net/projects/nast.berlios/"
+SRC_URI="https://downloads.sourceforge.net/${PN}.berlios/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 x86"
+IUSE="ncurses"
+
+RDEPEND="
+ >=net-libs/libnet-1.1.1
+ net-libs/libpcap
+ ncurses? ( >=sys-libs/ncurses-5.4:= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-gentoo.patch
+ "${FILESDIR}"/0001-Fix-signal-handler.patch
+ "${FILESDIR}"/0002-Fix-Wformat-security.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ append-cflags -fcommon
+ default
+}
+
+src_compile() {
+ emake CFLAGS="${CFLAGS}"
+}
+
+src_install() {
+ dosbin nast
+ doman nast.8
+ dodoc AUTHORS BUGS CREDITS ChangeLog NCURSES_README README TODO
+}
diff --git a/net-analyzer/nbtscan/Manifest b/net-analyzer/nbtscan/Manifest
new file mode 100644
index 000000000000..b7743fc91159
--- /dev/null
+++ b/net-analyzer/nbtscan/Manifest
@@ -0,0 +1 @@
+DIST nbtscan-1.7.2.tar.gz 29758 BLAKE2B 8e6af433a600865c391d0f7a72a8aa0b82d6ae61abedec8c2dc5cc89515f92c2ebdfd4868d578d4028b9aee4224b2f972bd574040db3c30caf9e0e59f9eb303a SHA512 b20eafe6737aa378e230dd2842e045bf2a48497e21b87ce6c534366cbb162862168a5c8143c0a69d495525caca75e91e437b87d9778e4cfe573b20461e2ccbbf
diff --git a/net-analyzer/nbtscan/metadata.xml b/net-analyzer/nbtscan/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/nbtscan/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nbtscan/nbtscan-1.7.2.ebuild b/net-analyzer/nbtscan/nbtscan-1.7.2.ebuild
new file mode 100644
index 000000000000..10d636b7e109
--- /dev/null
+++ b/net-analyzer/nbtscan/nbtscan-1.7.2.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="NBTscan is a program for scanning IP networks for NetBIOS name information"
+HOMEPAGE="https://github.com/resurrecting-open-source-projects/nbtscan"
+SRC_URI="https://github.com/resurrecting-open-source-projects/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+
+DOCS=( AUTHORS CONTRIBUTING.md ChangeLog NEWS README.md )
+
+src_prepare() {
+ default
+
+ eautoreconf
+}
diff --git a/net-analyzer/nbwmon/Manifest b/net-analyzer/nbwmon/Manifest
new file mode 100644
index 000000000000..d5c224c8bcf7
--- /dev/null
+++ b/net-analyzer/nbwmon/Manifest
@@ -0,0 +1 @@
+DIST nbwmon-0.5.2.tar.gz 5807 BLAKE2B 09d4a195de209595dac04a53c2ca06874634515f816f8fc6c2e954b9e6bd55bd06745152e537b997fcc2bfdece987f1a0ec04785fe2205bf4102115a060c6ecd SHA512 11502015b8a04d8a65c2f06d9e921c193c2e4968dbbd781791c30f35a2cf1135bbf784280b9070670be2b58c4355bf7bdf631d5932ec3a01637db803a4c88bf4
diff --git a/net-analyzer/nbwmon/files/nbwmon-0.5.2-tinfo.patch b/net-analyzer/nbwmon/files/nbwmon-0.5.2-tinfo.patch
new file mode 100644
index 000000000000..0108844db99e
--- /dev/null
+++ b/net-analyzer/nbwmon/files/nbwmon-0.5.2-tinfo.patch
@@ -0,0 +1,11 @@
+--- a/Makefile
++++ b/Makefile
+@@ -2,7 +2,7 @@
+ # add -I/usr/pkg/include and -L/usr/pkg/lib to the options
+ # below.
+ CFLAGS+=-std=c99 -pedantic -Wall -Wextra
+-LDLIBS=-lncurses
++LDLIBS=$(shell $(PKG_CONFIG) --libs ncurses)
+ PREFIX=/usr/local
+
+ BIN=nbwmon
diff --git a/net-analyzer/nbwmon/metadata.xml b/net-analyzer/nbwmon/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/nbwmon/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nbwmon/nbwmon-0.5.2.ebuild b/net-analyzer/nbwmon/nbwmon-0.5.2.ebuild
new file mode 100644
index 000000000000..613256373c42
--- /dev/null
+++ b/net-analyzer/nbwmon/nbwmon-0.5.2.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+DESCRIPTION="ncurses bandwidth monitor"
+HOMEPAGE="https://github.com/causes-/nbwmon"
+SRC_URI="https://github.com/causes-/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+
+RDEPEND="sys-libs/ncurses"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=( "${FILESDIR}"/${PN}-0.5.2-tinfo.patch )
+
+src_prepare() {
+ default
+ tc-export CC PKG_CONFIG
+}
+
+src_install() {
+ dobin ${PN}
+ dodoc README
+}
diff --git a/net-analyzer/ndoutils/Manifest b/net-analyzer/ndoutils/Manifest
new file mode 100644
index 000000000000..39089d59b9c6
--- /dev/null
+++ b/net-analyzer/ndoutils/Manifest
@@ -0,0 +1 @@
+DIST ndoutils-2.1.4.tar.gz 2188648 BLAKE2B 751e206c6f2827c1a1277e7b5f1d72285c21fa22a8f50d7c488c35ad66353392279bf9f6ecdce978874d0c90da15a95369f46f758994d33b861154161919e98b SHA512 cb6991d9d79f4c438833035fb8434b1cf0f5c27393506a422c134c2c49a5eec2a9f068a59a304515bba62b4f114204b86ec1e2cd7f68b61b329ac1a7b30ef5eb
diff --git a/net-analyzer/ndoutils/files/c23-compatibility.patch b/net-analyzer/ndoutils/files/c23-compatibility.patch
new file mode 100644
index 000000000000..39d568acd73b
--- /dev/null
+++ b/net-analyzer/ndoutils/files/c23-compatibility.patch
@@ -0,0 +1,40 @@
+From c9e6b3476a36c9be81714c87ff75d3d1986e376d Mon Sep 17 00:00:00 2001
+From: Michael Orlitzky <michael@orlitzky.com>
+Date: Wed, 18 Dec 2024 21:29:56 -0500
+Subject: [PATCH] include/queue.h: ensure prototypes match implementations
+
+In the latest C23 standard, the prototype
+
+ int get_queue_id();
+
+indicates that get_queue_id takes no arguments. This of course
+disagrees with its implementation, which takes one argument. C23 will
+be the default mode in GCC-15, where this leads to a build failure:
+
+ queue.c:57:5: error: conflicting types for 'get_queue_id'; have 'int(int)'
+ 57 | int get_queue_id(int id) {
+ | ^~~~~~~~~~~~
+ In file included from queue.c:30:
+ ../include/queue.h:40:5: note: previous declaration of 'get_queue_id' with
+ type 'int(void)'
+ 40 | int get_queue_id();
+ | ^~~~~~~~~~~~
+
+To fix it, we update the prototype for get_queue_id().
+---
+ include/queue.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/queue.h b/include/queue.h
+index 5f94e4d..4219c5b 100644
+--- a/include/queue.h
++++ b/include/queue.h
+@@ -37,7 +37,7 @@ struct queue_msg
+ void del_queue();
+
+ /* initialize new queue or open existing */
+-int get_queue_id();
++int get_queue_id(int);
+
+ /* insert into queue */
+ void push_into_queue(char*);
diff --git a/net-analyzer/ndoutils/files/format-security.patch b/net-analyzer/ndoutils/files/format-security.patch
new file mode 100644
index 000000000000..75be7dc32103
--- /dev/null
+++ b/net-analyzer/ndoutils/files/format-security.patch
@@ -0,0 +1,115 @@
+From 07891e8fcf692552c57e64429fd52da9e682f6d2 Mon Sep 17 00:00:00 2001
+From: Michael Orlitzky <michael@orlitzky.com>
+Date: Sat, 22 Jul 2017 16:38:03 -0400
+Subject: [PATCH 1/1] src/queue.c: fix format-security warnings with explicit
+ "%s" format string.
+
+The syslog() function takes as its second argument a format string (a
+la printf), but if the third parameter is a string, then the format
+string can be omitted. This has led to security vulnerabilities in the
+past, and compilers can now warn about it. In particular, GCC has the
+-Wformat-security option, which can be made an error with
+-Werror=format-security.
+
+A few such two-argument calls were present in src/queue.c, where
+constant strings were being logged to syslog. This commit adds the
+second format string parameter (simply "%s" in this case) to avoid the
+compiler warnings.
+
+More information about format-security can be found in Fedora's FAQ:
+
+ https://fedoraproject.org/wiki/Format-Security-FAQ
+---
+ src/queue.c | 22 +++++++++++-----------
+ 1 file changed, 11 insertions(+), 11 deletions(-)
+
+diff --git a/src/queue.c b/src/queue.c
+index 8cb7445..50bb519 100644
+--- a/src/queue.c
++++ b/src/queue.c
+@@ -50,7 +50,7 @@ void del_queue() {
+ struct msqid_ds buf;
+
+ if (msgctl(queue_id,IPC_RMID,&buf) < 0) {
+- syslog(LOG_ERR,"Error: queue remove error.\n");
++ syslog(LOG_ERR, "%s", "Error: queue remove error.\n");
+ }
+ }
+
+@@ -58,7 +58,7 @@ int get_queue_id(int id) {
+ key_t key = ftok(NDO_QUEUE_PATH, NDO_QUEUE_ID+id);
+
+ if ((queue_id = msgget(key, IPC_CREAT | 0600)) < 0) {
+- syslog(LOG_ERR,"Error: queue init error.\n");
++ syslog(LOG_ERR, "%s", "Error: queue init error.\n");
+ }
+ }
+
+@@ -99,7 +99,7 @@ void log_retry( void) {
+ if(msgctl(queue_id, IPC_STAT, &queue_stats)) {
+ sprintf(curstats, "Unable to determine current message queue usage: error reading IPC_STAT: %d", errno);
+ sprintf(logmsg, logfmt, curstats);
+- syslog(LOG_ERR, logmsg);
++ syslog(LOG_ERR, "%s", logmsg);
+ }
+ else {
+ #if defined( __linux__)
+@@ -108,24 +108,24 @@ void log_retry( void) {
+ if( msgmni < 0) {
+ sprintf(curstats, "Unable to determine current message queue usage: error reading IPC_INFO: %d", errno);
+ sprintf(logmsg, logfmt, curstats);
+- syslog(LOG_ERR, logmsg);
++ syslog(LOG_ERR, "%s", logmsg);
+ }
+ else {
+ sprintf(curstats, statsfmt, queue_stats.msg_qnum,
+ (unsigned long)msgmni, queue_stats.__msg_cbytes,
+ queue_stats.msg_qbytes);
+ sprintf(logmsg, logfmt, curstats);
+- syslog(LOG_ERR, logmsg);
++ syslog(LOG_ERR, "%s", logmsg);
+ }
+ #else
+ sprintf(logmsg, logfmt, "");
+- syslog(LOG_ERR, logmsg);
++ syslog(LOG_ERR, "%s", logmsg);
+ #endif
+ }
+ last_retry_log_time = now;
+ }
+ else {
+- syslog(LOG_ERR,"Warning: queue send error, retrying...\n");
++ syslog(LOG_ERR, "%s", "Warning: queue send error, retrying...\n");
+ }
+ }
+
+@@ -155,14 +155,14 @@ void push_into_queue (char* buf) {
+ #endif
+ }
+ if (retrynum < MAX_RETRIES) {
+- syslog(LOG_ERR,"Message sent to queue.\n");
++ syslog(LOG_ERR, "%s", "Message sent to queue.\n");
+ }
+ else {
+- syslog(LOG_ERR,"Error: max retries exceeded sending message to queue. Kernel queue parameters may need to be tuned. See README.\n");
++ syslog(LOG_ERR, "%s", "Error: max retries exceeded sending message to queue. Kernel queue parameters may need to be tuned. See README.\n");
+ }
+ }
+ else {
+- syslog(LOG_ERR,"Error: queue send error.\n");
++ syslog(LOG_ERR, "%s", "Error: queue send error.\n");
+ }
+ }
+
+@@ -175,7 +175,7 @@ char* pop_from_queue() {
+ zero_string(msg.text, NDO_MAX_MSG_SIZE);
+
+ if (msgrcv(queue_id, &msg, queue_buff_size, NDO_MSG_TYPE, MSG_NOERROR) < 0) {
+- syslog(LOG_ERR,"Error: queue recv error.\n");
++ syslog(LOG_ERR, "%s", "Error: queue recv error.\n");
+ }
+
+ int size = strlen(msg.text);
+--
+2.13.0
+
diff --git a/net-analyzer/ndoutils/files/openrc-init.patch b/net-analyzer/ndoutils/files/openrc-init.patch
new file mode 100644
index 000000000000..07fcc63b7f3d
--- /dev/null
+++ b/net-analyzer/ndoutils/files/openrc-init.patch
@@ -0,0 +1,100 @@
+From 61c6e9295bae755713b403626f702b5ac90f2448 Mon Sep 17 00:00:00 2001
+From: Michael Orlitzky <michael@orlitzky.com>
+Date: Sat, 22 Jul 2017 17:25:29 -0400
+Subject: [PATCH 1/1] startup: simplify the OpenRC init scripts and conf file.
+
+This commit largely rewrites the OpenRC init script with the goal of
+simplifying it. The end result should be functionally the same, but is
+much shorter. The changes are as follows:
+
+ 1. Replace the deprecated /sbin/runscript shebang with /sbin/openrc-run.
+
+ 2. Replace the existing dependencies with "need mysql nagios". The
+ ndo2db daemon needs Nagios to create the TCP or Unix socket over
+ which it will communicate, and obviously it needs mysql to be
+ up and running in order to save any data. The dependencies
+ of mysql and nagios themselves will bring up whatever else is
+ required; nothing else needs to be listed as a dependency of
+ ndo2db.
+
+ 3. Use the "command", "command_args", and "pidfile" OpenRC
+ variables. OpenRC is smart enough to start and stop a well-behaved
+ daemon on its own without a custom start/stop function. By
+ specifying those three variables, we are able to eliminate much of
+ the custom start/stop code in the init script.
+
+Finally, the default value of NDO2DB_CFG in the associated conf file has
+been updated to use @sysconfdir@ instead of @pkgsysconfdir@, which wasn't
+having any effect.
+---
+ startup/openrc-conf.in | 6 ++----
+ startup/openrc-init.in | 42 +++++++++---------------------------------
+ 2 files changed, 11 insertions(+), 37 deletions(-)
+
+diff --git a/startup/openrc-conf.in b/startup/openrc-conf.in
+index d7b5474..69b15b5 100644
+--- a/startup/openrc-conf.in
++++ b/startup/openrc-conf.in
+@@ -1,4 +1,2 @@
+-# /etc/conf.d/ndo2db : config file for /etc/init.d/ndo2db
+-
+-# Configuration file - default is @sysconfdir@/ndo2db.cfg
+-NDO2DB_CFG="@pkgsysconfdir@/ndo2db.cfg"
++# The configuration file to use for ndo2db.
++NDO2DB_CFG="@sysconfdir@/ndo2db.cfg"
+diff --git a/startup/openrc-init.in b/startup/openrc-init.in
+index 119e074..7b3fb40 100644
+--- a/startup/openrc-init.in
++++ b/startup/openrc-init.in
+@@ -1,39 +1,15 @@
+-#!/sbin/runscript
++#!/sbin/openrc-run
+ #
+-# Copyright (c) 2016 Nagios(R) Core(TM) Development Team
++# Copyright (c) 2017 Nagios(R) Core(TM) Development Team
+ #
+-# Start/stop the Nagios Data Out Daemon.
+-#
+-# Goes in /etc/init.d - Config is in /etc/conf.d/ndo2db
+
+-NDO2DB_BIN="@sbindir@/ndo2db"
+-NDO2DB_PID="@piddir@/ndo2db.pid"
++command="@sbindir@/ndo2db"
++command_args="-c ${NDO2DB_CFG}"
++description="Nagios Data Out daemon"
++pidfile="@piddir@/ndo2db.pid"
+
+ depend() {
+- use logger dns net localmount netmount nfsmount
+-}
+-
+-checkconfig() {
+- # Make sure the config file exists
+- if [ ! -f $NDO2DB_CFG ]; then
+- eerror "You need to setup $NDO2DB_CFG.
+- return 1
+- fi
+- return 0
+-}
+-
+-start() {
+- checkconfig || return 1
+- ebegin "Starting ndo2db"
+- # Make sure we have a sane current directory
+- cd /
+- start-stop-daemon --start --exec $NDO2DB_BIN --pidfile $PID_FILE \
+- -- -c $NDO2DB_CFG -f
+- eend $?
+-}
+-
+-stop() {
+- ebegin "Stopping ndo2db"
+- start-stop-daemon --stop --exec $NDO2DB_BIN --pidfile $PID_FILE
+- eend $?
++ # The Nagios core daemon creates the socket that ndo2db tries to
++ # connect to upon starting.
++ need mysql nagios
+ }
+--
+2.13.0
+
diff --git a/net-analyzer/ndoutils/files/sample-config-piddir.patch b/net-analyzer/ndoutils/files/sample-config-piddir.patch
new file mode 100644
index 000000000000..902038204988
--- /dev/null
+++ b/net-analyzer/ndoutils/files/sample-config-piddir.patch
@@ -0,0 +1,32 @@
+From 560db1e2bc79bb3321c5f431e149418ec3c28a98 Mon Sep 17 00:00:00 2001
+From: Michael Orlitzky <michael@orlitzky.com>
+Date: Sun, 23 Jul 2017 07:13:46 -0400
+Subject: [PATCH 1/1] config/ndo2db.cfg-sample.in: use @piddir@ for the pid
+ file.
+
+The "lock_file" setting in ndo2db.cfg specifies where the daemon's pid
+file should be stored. In the past, it was stored in @localstatedir@,
+but @piddir@ is more appropriate. As evidence, all of the init scripts
+in the "startup" directory reference @piddir@ and not @localstatedir@
+for the location of the pid file. This commit updates the sample
+config to agree with the init scripts.
+---
+ config/ndo2db.cfg-sample.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/config/ndo2db.cfg-sample.in b/config/ndo2db.cfg-sample.in
+index 75266dc..5b46fc9 100644
+--- a/config/ndo2db.cfg-sample.in
++++ b/config/ndo2db.cfg-sample.in
+@@ -10,7 +10,7 @@
+ # This is the lockfile that NDO2DB will use to store its PID number
+ # in when it is running in daemon mode.
+
+-lock_file=@localstatedir@/ndo2db.pid
++lock_file=@piddir@/ndo2db.pid
+
+
+
+--
+2.13.0
+
diff --git a/net-analyzer/ndoutils/metadata.xml b/net-analyzer/ndoutils/metadata.xml
new file mode 100644
index 000000000000..1152ee0787e9
--- /dev/null
+++ b/net-analyzer/ndoutils/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>mjo@gentoo.org</email>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/ndoutils/ndoutils-2.1.4.ebuild b/net-analyzer/ndoutils/ndoutils-2.1.4.ebuild
new file mode 100644
index 000000000000..3dbb09ef8ec0
--- /dev/null
+++ b/net-analyzer/ndoutils/ndoutils-2.1.4.ebuild
@@ -0,0 +1,103 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools systemd
+
+DESCRIPTION="Nagios addon to store Nagios data in a database"
+HOMEPAGE="https://github.com/NagiosEnterprises/ndoutils"
+SRC_URI="https://github.com/NagiosEnterprises/${PN}/archive/${P}.tar.gz"
+S="${WORKDIR}/${PN}-${P}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~riscv ~x86"
+
+DEPEND="
+ dev-db/mysql-connector-c
+ dev-perl/DBD-mysql
+ dev-perl/DBI"
+
+# The default value of the --with-ndo2db-{user,group} flag is "nagios".
+# For unrelated reasons, we actually patch out the build-time dependency
+# on the user/group, but it should still be there at runtime.
+RDEPEND="${DEPEND}
+ acct-user/nagios
+ acct-group/nagios
+ virtual/mysql"
+
+PATCHES=(
+ "${FILESDIR}"/format-security.patch
+ "${FILESDIR}"/sample-config-piddir.patch
+ "${FILESDIR}"/openrc-init.patch
+ "${FILESDIR}"/c23-compatibility.patch
+)
+
+src_prepare() {
+ default
+
+ # ./configure is ancient and doesn't know that e.g. riscv exists
+ eautoreconf
+}
+
+src_configure() {
+ # The localstatedir is where our socket will be created by the
+ # nagios daemon, so we put it in /var/lib/nagios where the "nagios"
+ # user will be able to write.
+ #
+ # And normally, we would use /run for the pid file, but the daemon
+ # drops permissions before creating it, so the piddir also needs
+ # to be writable by the nagios user.
+ #
+ # Oh, and the build fails without --enable-mysql, so don't try.
+ #
+ econf --enable-mysql \
+ --localstatedir=/var/lib/nagios \
+ --sysconfdir=/etc/nagios \
+ --with-piddir=/var/lib/nagios
+}
+
+src_compile() {
+ # Avoid "emake all" so that we don't build the stuff for nagios-2.x
+ # and nagios-3.x, some of which throws QA warnings. We don't use it
+ # anyway.
+ emake -C src file2sock log2ndo ndo2db-4x ndomod-4x.o sockdebug
+}
+
+src_install() {
+ # The documentation isn't installed by the build system
+ HTML_DOCS=( docs/html/. )
+ default
+
+ dodoc Changelog UPGRADING \
+ "docs/NDOUTILS DB Model.pdf" "docs/NDOUtils Documentation.pdf"
+
+ systemd_newunit startup/default-service ndoutils.service
+
+ insinto /etc/nagios
+ newins config/ndo2db.cfg-sample ndo2db.cfg
+ newins config/ndomod.cfg-sample ndomod.cfg
+ newinitd startup/openrc-init ndo2db
+ newconfd startup/openrc-conf ndo2db
+
+ insinto /usr/share/ndoutils
+ doins -r db
+
+ # These need to be executable...
+ exeinto /usr/share/ndoutils/db
+ doexe db/{installdb,prepsql,upgradedb}
+
+ # Use symlinks because the installdb/upgradedb scripts use relative
+ # paths to the SQL queries.
+ dosym ../share/ndoutils/db/installdb /usr/bin/ndoutils-installdb
+ dosym ../share/ndoutils/db/upgradedb /usr/bin/ndoutils-upgradedb
+
+ keepdir /var/lib/nagios
+}
+
+pkg_postinst() {
+ elog "To include NDO in your Nagios setup, you'll need to activate"
+ elog "the NDO broker module in /etc/nagios/nagios.cfg:"
+ elog " broker_module=/usr/bin/ndomod.o config_file=/etc/nagios/ndomod.cfg"
+}
diff --git a/net-analyzer/ndsad/Manifest b/net-analyzer/ndsad/Manifest
new file mode 100644
index 000000000000..cd1b6e07a2a4
--- /dev/null
+++ b/net-analyzer/ndsad/Manifest
@@ -0,0 +1 @@
+DIST ndsad-1.33.tgz 214614 BLAKE2B ca8e0f983d14cb43148411cead699dc140ca0cce60266b0aae6cb1836c643bd5c5d7aae6c34ae372af83a20e0e9ab39f92fcc46f2e2edbc70cf3968ee9b824dd SHA512 38ebca91f28d763ce334d92361779f100ee6b98d6d17485bf096f913f777e8525add63bd73aeea43321cee622e10cb88020aca7af492fbafdd50cf740510bd51
diff --git a/net-analyzer/ndsad/files/ndsad-1.33-conf_path.patch b/net-analyzer/ndsad/files/ndsad-1.33-conf_path.patch
new file mode 100644
index 000000000000..cf3c827cdde7
--- /dev/null
+++ b/net-analyzer/ndsad/files/ndsad-1.33-conf_path.patch
@@ -0,0 +1,11 @@
+--- a/ndsad.cc
++++ b/ndsad.cc
+@@ -12,7 +12,7 @@
+ */
+
+
+-#define conf_path "/netup/utm5/ndsad.cfg"
++#define conf_path "/etc/ndsad.conf"
+
+ #include "pcap.local.h"
+
diff --git a/net-analyzer/ndsad/files/ndsad-1.33-gentoo.patch b/net-analyzer/ndsad/files/ndsad-1.33-gentoo.patch
new file mode 100644
index 000000000000..3ccbe3432932
--- /dev/null
+++ b/net-analyzer/ndsad/files/ndsad-1.33-gentoo.patch
@@ -0,0 +1,23 @@
+--- a/configure.in
++++ b/configure.in
+@@ -24,9 +24,6 @@
+ AC_DEFINE(OS_BSD, 2,[BSD OS code])
+ AC_DEFINE(OS_SOLARIS, 3,[SOLARIS on SPARC code])
+
+-CFLAGS=-g
+-CXXFLAGS=-g
+-
+ AC_CHECK_LIB(pcap, pcap_loop, [LIBS="$LIBS -lpcap"; __ac_have_libpcap=1;], [ break ])
+
+ case "$host_os" in
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -1,6 +1,6 @@
+-bin_PROGRAMS = ndsad
++sbin_PROGRAMS = ndsad
+
+ ndsad_SOURCES = linux_ulog.cc linux_ulog.h debug.h eth-hndl.h handlers.h iflist.h iptonf.h ldefs.h logger.h mempool.h nethdr.h nfc.h nf.h ppp-hndl.h thr.h config.cc debug.cc eth-hndl.cc handlers.cc iflist.cc iptonf.cc logger.cc mempool.cc ndsad.cc nf.cc nfc.cc ppp-hndl.cc thr.cc bsd_divert.cc bsd_divert.h
+
+-ndsad_CXXFLAGS = $(AM_CXXFLAGS) -O0 -fno-inline -g -ftemplate-depth-32
++ndsad_CXXFLAGS = $(AM_CXXFLAGS) -fno-inline -ftemplate-depth-32
+ ndsad_LDFLAGS = $(AM_LDFLAGS)
diff --git a/net-analyzer/ndsad/files/ndsad-1.33-getpid.patch b/net-analyzer/ndsad/files/ndsad-1.33-getpid.patch
new file mode 100644
index 000000000000..c0e6d94a301c
--- /dev/null
+++ b/net-analyzer/ndsad/files/ndsad-1.33-getpid.patch
@@ -0,0 +1,10 @@
+--- a/linux_ulog.h
++++ b/linux_ulog.h
+@@ -8,6 +8,7 @@
+ #include <pthread.h>
+ #include <iostream>
+ #include <sys/types.h>
++#include <unistd.h> /* getpid() */
+ #include <sys/socket.h>
+
+ /// linux specific headers!
diff --git a/net-analyzer/ndsad/files/ndsad-1.33-log-path.patch b/net-analyzer/ndsad/files/ndsad-1.33-log-path.patch
new file mode 100644
index 000000000000..fbeab07fb7a0
--- /dev/null
+++ b/net-analyzer/ndsad/files/ndsad-1.33-log-path.patch
@@ -0,0 +1,11 @@
+--- a/ndsad.conf
++++ b/ndsad.conf
+@@ -75,7 +75,7 @@
+ # Default:
+ #log (null)
+ # Example:
+-log /tmp/ndsad.log
++log /var/log/ndsad.log
+
+ # Jump to another configuration file
+ # Current file is closed after this line! Beware of loops!
diff --git a/net-analyzer/ndsad/files/ndsad-1.33-strncpy-overflow.patch b/net-analyzer/ndsad/files/ndsad-1.33-strncpy-overflow.patch
new file mode 100644
index 000000000000..5078f1555ec6
--- /dev/null
+++ b/net-analyzer/ndsad/files/ndsad-1.33-strncpy-overflow.patch
@@ -0,0 +1,12 @@
+--- a/handlers.h
++++ b/handlers.h
+@@ -30,7 +30,8 @@
+ #ifdef WIN32
+ #define IFN_SIZE 512 // on windows iface names are VEERY long
+ #else
+-#define IFN_SIZE 32 // iface name size. As in linux/sockios.h
++#include <net/if.h>
++#define IFN_SIZE IFNAMSIZ // iface name size. As in linux/sockios.h
+ #endif
+
+ #define MPH_IFLIST 0x2 // iface type - for mempool
diff --git a/net-analyzer/ndsad/files/ndsad.conf.d b/net-analyzer/ndsad/files/ndsad.conf.d
new file mode 100644
index 000000000000..c216c39affec
--- /dev/null
+++ b/net-analyzer/ndsad/files/ndsad.conf.d
@@ -0,0 +1,8 @@
+# Copyright 1999-2006 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+# See config file /etc/ndsad.conf for configuration options.
+
+# If you want to add any extra command line options to be used by ndsad on
+# start-up put them here.
+NDSAD_OPTS=""
diff --git a/net-analyzer/ndsad/files/ndsad.init b/net-analyzer/ndsad/files/ndsad.init
new file mode 100644
index 000000000000..0ae33b5d98ac
--- /dev/null
+++ b/net-analyzer/ndsad/files/ndsad.init
@@ -0,0 +1,32 @@
+#!/sbin/openrc-run
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ need net
+}
+
+checkconfig() {
+ if [ ! -f /etc/ndsad.conf ] ; then
+ eerror "/etc/ndsad.conf does not file exists!"
+ return 1
+ fi
+
+ return 0
+}
+
+start() {
+ # Comment out the following line to get faster startups
+ checkconfig || return 1
+
+ ebegin "Starting ndsad"
+ # On success ndsad returns 1.
+ start-stop-daemon --start --quiet --exec /usr/sbin/ndsad -- -d ${NDSAD_OPTS} >/dev/null 2>&1
+ eend $(( $? - 1 ))
+}
+
+stop () {
+ ebegin "Stopping ndsad"
+ start-stop-daemon --stop --quiet --pidfile=/run/ndsad.pid --retry 20 >/dev/null
+ eend $?
+}
diff --git a/net-analyzer/ndsad/metadata.xml b/net-analyzer/ndsad/metadata.xml
new file mode 100644
index 000000000000..14074bd1e185
--- /dev/null
+++ b/net-analyzer/ndsad/metadata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <longdescription lang="en">
+ The NetUP ndsad (NetUp Data Stream Accounting Daemon) utility captures
+ IP-traffic from network interfaces and export NetFlow v.5. Data is
+ gathered from libpcap library on Unix and from winpcap on Windows. Also
+ you are able to use tee/divert sockets on FreeBSD and ULOG on Linux for
+ data source.
+ </longdescription>
+ <longdescription lang="ru">
+ Демон ndsad (NetUp Data Stream Accounting Daemon) компании Ðетап
+ захватывает Ñетевой трафик Ñ Ñетевых интерфейÑов и ÑкÑпортирует его в
+ NetFlow v.5. Трафик ÑобираетÑÑ Ð¿Ñ€Ð¸ помощи библиотеки libpcap в Unix или
+ winpcap в Windows. Ð’ качеÑтве иÑточника данных вы также можете
+ иÑпользовать tee/divert Ñокеты в FreeBSD и ULOG в Linux.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/ndsad/ndsad-1.33-r2.ebuild b/net-analyzer/ndsad/ndsad-1.33-r2.ebuild
new file mode 100644
index 000000000000..d60e8c6b7702
--- /dev/null
+++ b/net-analyzer/ndsad/ndsad-1.33-r2.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit autotools
+
+DESCRIPTION="Cisco netflow probe from libpcap, ULOG, tee/divert sources"
+HOMEPAGE="https://sourceforge.net/projects/ndsad"
+SRC_URI="https://downloads.sourceforge.net/ndsad/ndsad-${PV}.tgz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="x86"
+
+DEPEND="
+ >=net-libs/libpcap-0.8
+"
+RDEPEND="
+ ${DEPEND}
+"
+PATCHES=(
+ "${FILESDIR}"/${P}-conf_path.patch
+ "${FILESDIR}"/${P}-gentoo.patch
+ "${FILESDIR}"/${P}-getpid.patch
+ "${FILESDIR}"/${P}-log-path.patch
+ "${FILESDIR}"/${P}-strncpy-overflow.patch
+)
+DOCS=( ChangeLog AUTHORS README )
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_install() {
+ default
+
+ doman ndsad.conf.5
+
+ insinto /etc
+ newins ndsad.conf ndsad.conf
+
+ newinitd "${FILESDIR}"/ndsad.init ndsad
+ newconfd "${FILESDIR}"/ndsad.conf.d ndsad
+}
diff --git a/net-analyzer/nessus-agent-bin/Manifest b/net-analyzer/nessus-agent-bin/Manifest
new file mode 100644
index 000000000000..3f35f33d3508
--- /dev/null
+++ b/net-analyzer/nessus-agent-bin/Manifest
@@ -0,0 +1,2 @@
+DIST NessusAgent-11.1.1-el8.aarch64.rpm 14894744 BLAKE2B aa3d6039ce4d67582fb46d581c26d11de5f3ccc9b29deec953a696aaa714373668bfc39d1b4961a0ec7e01b4e923433d59991b0f47a0a6eb3eece529bb4781ec SHA512 7b8bbf6b05c8df29833eca33cbe1aa012500adfd57a9ecb5a7988c9436b357b5b2956666b54e91e99f940cf1351c8d624ff897fecbe6f19f62dfc0dea82d8234
+DIST NessusAgent-11.1.1-el8.x86_64.rpm 16106736 BLAKE2B 4db417a95938d04bf892581b9393bc9f4e17c3ffda2d5a0355512a8aa565c1c08f0c62529901e3887f66fc4591c74502d62dd1f8100e8855d1dc341ad7c94a12 SHA512 5be5ac4b122de758e044a3159e3790e97051bff1e1a050f5e87846f7021f01ba07641bba0fc6dceed89ee2ac65f1d0abbc0c75911ffaf99d199017d92d8753c8
diff --git a/net-analyzer/nessus-agent-bin/files/nessusagent.initd b/net-analyzer/nessus-agent-bin/files/nessusagent.initd
new file mode 100644
index 000000000000..6f43fc421e1b
--- /dev/null
+++ b/net-analyzer/nessus-agent-bin/files/nessusagent.initd
@@ -0,0 +1,21 @@
+#!/sbin/openrc-run
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+start() {
+ ebegin "Starting nessusagent"
+ start-stop-daemon --start --quiet --exec /opt/nessus_agent/sbin/nessus-service -- -D --quiet
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping nessusagent"
+ start-stop-daemon --stop --quiet --exec /opt/nessus_agent/sbin/nessus-service
+ einfo "Waiting for the environment to be sane"
+ while [ -n "$RUNNING" ] ; do
+ sleep 1
+ RUNNING=$(ps aux | grep -m 1 nessusd: | grep -v grep)
+ done
+ sleep 3
+ eend $?
+}
diff --git a/net-analyzer/nessus-agent-bin/metadata.xml b/net-analyzer/nessus-agent-bin/metadata.xml
new file mode 100644
index 000000000000..226cac07a88f
--- /dev/null
+++ b/net-analyzer/nessus-agent-bin/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>zerochaos@gentoo.org</email>
+ <name>Rick Farina</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:tenable:nessus_agent</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nessus-agent-bin/nessus-agent-bin-11.1.1.ebuild b/net-analyzer/nessus-agent-bin/nessus-agent-bin-11.1.1.ebuild
new file mode 100644
index 000000000000..6c1ac83123c5
--- /dev/null
+++ b/net-analyzer/nessus-agent-bin/nessus-agent-bin-11.1.1.ebuild
@@ -0,0 +1,63 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit rpm systemd
+
+MY_P="NessusAgent-${PV}-el8"
+
+DESCRIPTION="A remote security scanner for Linux - agent component"
+HOMEPAGE="https://www.tenable.com/"
+SRC_URI="
+ amd64? ( https://www.tenable.com/downloads/api/v2/pages/${PN/-bin/s}/files/${MY_P}.x86_64.rpm )
+ arm64? ( https://www.tenable.com/downloads/api/v2/pages/${PN/-bin/s}/files/${MY_P}.aarch64.rpm )
+"
+
+S="${WORKDIR}"
+LICENSE="GPL-2 Tenable-Master-Agreement"
+SLOT="0"
+KEYWORDS="-* ~amd64 ~arm64"
+RESTRICT="mirror strip"
+
+QA_PREBUILT="opt/nessus_agent/bin/*
+ opt/nessus_agent/lib/nessus/*.so*
+ opt/nessus_agent/lib/nessus/iconv/*.so
+ opt/nessus_agent/lib/nessus/libjemalloc.so.*
+ opt/nessus_agent/var/nessus/mod/com.tenable.*
+ opt/nessus_agent/sbin/*"
+
+src_install() {
+ # Using doins -r would strip executable bits from all binaries
+ cp -pPR "${S}"/opt "${D}"/ || die "Failed to copy files"
+
+ # Make sure these originally empty directories do not vanish,
+ # Nessus will not run properly without them
+ keepdir /opt/nessus_agent/com/nessus/CA
+ keepdir /opt/nessus_agent/etc/nessus
+ keepdir /opt/nessus_agent/var/nessus/logs
+ keepdir /opt/nessus_agent/var/nessus/tmp
+ keepdir /opt/nessus_agent/var/nessus/users
+
+ newinitd "${FILESDIR}"/nessusagent.initd nessusagent
+ systemd_dounit usr/lib/systemd/system/nessusagent.service
+}
+
+pkg_postinst() {
+ # Actually update Nessus core components. According to upstream packages,
+ # harmless to invoke on fresh installations too - and it may make life easier
+ # for people who had restored Nessus state from backups, had it lying around
+ # from older installations and so on.
+ "${EROOT}"/opt/nessus_agent/sbin/nessuscli install "${EROOT}"/opt/nessus_agent/var/nessus/plugins-core.tar.gz
+
+ if [[ -z "${REPLACING_VERSIONS}" ]]; then
+ elog "In order to link the agent to Tenable.io or an instance of Nessus Manager,"
+ elog "obtain an appropriate linking key and run"
+ elog ""
+ elog " /opt/nessus_agent/sbin/nessuscli agent link --key=<key> --host=<host> --port=<port> [optional parameters]"
+ elog ""
+ elog "This can be done before the agent is started."
+ else
+ elog "Please restart the nessusagent service to complete the update process"
+ fi
+}
diff --git a/net-analyzer/nessus-bin/Manifest b/net-analyzer/nessus-bin/Manifest
new file mode 100644
index 000000000000..44a8c89864b2
--- /dev/null
+++ b/net-analyzer/nessus-bin/Manifest
@@ -0,0 +1,2 @@
+DIST Nessus-10.11.2-el8.aarch64.rpm 64366104 BLAKE2B 337ab194379ab754b01aeb481ab803d7a9c4a9592cfc958988594c421d90ca7590a26495e5b4843dae82742bac3467247c843b684d3ef204179f6a3e276f4d0f SHA512 ca89d33b4617ce281eb937c0cf5fb889a7865c571231c6105030d6b496a95a23a8dddb6e3ccc964c35b19e90ca56802b13341465da2767cced59f10f28a15a48
+DIST Nessus-10.11.2-el8.x86_64.rpm 65313504 BLAKE2B 48508a78a37e54c07df6ab53241a1f80cf72b4b249752f8e61f2abcb8259d862a92697d80cfe0c5de0b7a30d837cd753c657e0f59b56ef3333836f1030d94a4c SHA512 d54181f51e6a8d086598ea8028c80f74ca89df1418e596f52fc9b354adea7fc78005ab77d940a3b7d0b051c76d8f1159b0176a5938d3d7db6d01a952db81bb39
diff --git a/net-analyzer/nessus-bin/files/nessusd-initd b/net-analyzer/nessus-bin/files/nessusd-initd
new file mode 100644
index 000000000000..fb95cb2b2d8e
--- /dev/null
+++ b/net-analyzer/nessus-bin/files/nessusd-initd
@@ -0,0 +1,25 @@
+#!/sbin/openrc-run
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ need net
+}
+
+start() {
+ ebegin "Starting nessus-service"
+ start-stop-daemon --start --quiet --exec /opt/nessus/sbin/nessus-service -- -D --quiet
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping nessus-service"
+ start-stop-daemon --stop --quiet --exec /opt/nessus/sbin/nessus-service
+ einfo "Waiting for the environment to be sane"
+ while [ -n "$RUNNING" ] ; do
+ sleep 1
+ RUNNING=$(ps aux | grep -m 1 nessusd: | grep -v grep)
+ done
+ sleep 3
+ eend $?
+}
diff --git a/net-analyzer/nessus-bin/metadata.xml b/net-analyzer/nessus-bin/metadata.xml
new file mode 100644
index 000000000000..21d63d872387
--- /dev/null
+++ b/net-analyzer/nessus-bin/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>zerochaos@gentoo.org</email>
+ <name>Rick Farina</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:nessus:nessus</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nessus-bin/nessus-bin-10.11.2.ebuild b/net-analyzer/nessus-bin/nessus-bin-10.11.2.ebuild
new file mode 100644
index 000000000000..d093fb98485b
--- /dev/null
+++ b/net-analyzer/nessus-bin/nessus-bin-10.11.2.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit rpm systemd
+
+MY_P="Nessus-${PV}-el8"
+
+DESCRIPTION="A remote security scanner for Linux"
+HOMEPAGE="https://www.tenable.com/"
+SRC_URI="
+ amd64? ( https://www.tenable.com/downloads/api/v2/pages/${PN%-bin}/files/${MY_P}.x86_64.rpm )
+ arm64? ( https://www.tenable.com/downloads/api/v2/pages/${PN%-bin}/files/${MY_P}.aarch64.rpm )
+"
+
+S="${WORKDIR}"
+LICENSE="GPL-2 Tenable-Master-Agreement"
+SLOT="0"
+KEYWORDS="-* ~amd64 ~arm64"
+RESTRICT="mirror strip"
+
+QA_PREBUILT="opt/nessus/bin/*
+ opt/nessus/lib/nessus/*.so*
+ opt/nessus/lib/nessus/iconv/*.so
+ opt/nessus/lib/nessus/libjemalloc.so.*
+ opt/nessus/sbin/*"
+
+src_install() {
+ # Using doins -r would strip executable bits from all binaries
+ cp -pPR "${S}"/opt "${D}"/ || die "Failed to copy files"
+
+ # Make sure these originally empty directories do not vanish,
+ # Nessus will not run properly without them
+ keepdir /opt/nessus/com/nessus/CA
+ keepdir /opt/nessus/etc/nessus
+ keepdir /opt/nessus/var/nessus/logs
+ keepdir /opt/nessus/var/nessus/tmp
+
+ newinitd "${FILESDIR}"/nessusd-initd nessusd-bin
+ systemd_newunit usr/lib/systemd/system/nessusd.service nessusd-bin.service
+}
+
+pkg_postinst() {
+ # Actually update Nessus core components. According to upstream packages,
+ # harmless to invoke on fresh installations too - and it may make life easier
+ # for people who had restored Nessus state from backups, had it lying around
+ # from older installations and so on.
+ "${EROOT}"/opt/nessus/sbin/nessuscli install "${EROOT}"/opt/nessus/var/nessus/plugins-core.tar.gz
+
+ if [[ -z "${REPLACING_VERSIONS}" ]]; then
+ elog "To get started launch the nessusd-bin service, then point your Web browser to"
+ elog " https://<yourhost>:8834/"
+ else
+ elog "Please restart the nessusd-bin service to use the new version of Nessus"
+ fi
+}
diff --git a/net-analyzer/net-snmp/Manifest b/net-analyzer/net-snmp/Manifest
new file mode 100644
index 000000000000..f495d2b23e18
--- /dev/null
+++ b/net-analyzer/net-snmp/Manifest
@@ -0,0 +1,2 @@
+DIST net-snmp-5.7.3-patches-3.tar.xz 3176 BLAKE2B 1a71d6743afb841f664c6058e32c7c411af62b0f36acd3bb9251804893ed12f462a0c5bab828e309eeec7824def2dca8fa866350b90a62ec4f0df1141b51ecae SHA512 d8a91b9668320a1e19d062eb86dd4d16beb7c2d15ac7ebbb9d2a4bd298af39bbb0a2613504dbb0057cccdec731f08f2308c5a15395e1fbc29bb0611ed8aca636
+DIST net-snmp-5.9.5.2.tar.gz 6826866 BLAKE2B 417b337ac32d19db55494b97742fab6f28fc64d488896efd943d6f65ca563b0385d6160923d064e3bf04e3197790c7834d7b644973a426dfa3cb7e81f6465c4c SHA512 c320c90e01377651fdff3aa9c373b9013f142fab23810d821174e546716ef2fa6499a805728710c67ca7fe238679111df392754c24ea4e01768faa5535ac7db2
diff --git a/net-analyzer/net-snmp/files/net-snmp-5.1.2-snmpconf-selinux.patch b/net-analyzer/net-snmp/files/net-snmp-5.1.2-snmpconf-selinux.patch
new file mode 100644
index 000000000000..d2e372161e92
--- /dev/null
+++ b/net-analyzer/net-snmp/files/net-snmp-5.1.2-snmpconf-selinux.patch
@@ -0,0 +1,12 @@
+https://bugzilla.redhat.com/show_bug.cgi?id=248329
+
+--- a/local/snmpconf.in
++++ b/local/snmpconf.in
+@@ -680,6 +680,7 @@
+ }
+ }
+ close(O);
++ system("restorecon $outputf");
+ }
+ }
+
diff --git a/net-analyzer/net-snmp/files/net-snmp-5.8-pcap.patch b/net-analyzer/net-snmp/files/net-snmp-5.8-pcap.patch
new file mode 100644
index 000000000000..43692240acb6
--- /dev/null
+++ b/net-analyzer/net-snmp/files/net-snmp-5.8-pcap.patch
@@ -0,0 +1,41 @@
+--- a/configure.d/config_project_with_enable
++++ b/configure.d/config_project_with_enable
+@@ -1187,6 +1187,11 @@
+ [],
+ [with_bzip2="no"])
+
++AC_ARG_WITH([pcap],
++ [ --with-pcap[=DIR] use libpcap in DIR],
++ [],
++ [with_pcap="no"])
++
+ NETSNMP_ARG_WITH(
+ [mnttab],
+ AS_HELP_STRING(
+--- a/configure.d/config_os_libs2
++++ b/configure.d/config_os_libs2
+@@ -583,14 +590,16 @@
+ ##
+ # libpcap
+ ##
+-NETSNMP_BUILD_PCAP_PROG_TRUE='#'
+-NETSNMP_BUILD_PCAP_PROG_FALSE=''
+-AC_CHECK_LIB([pcap], [pcap_create], [
+- AC_CHECK_HEADERS([pcap/pcap.h], [
+- NETSNMP_BUILD_PCAP_PROG_TRUE=''
+- NETSNMP_BUILD_PCAP_PROG_FALSE='#'
+- ])
+-])
++if test "x$with_pcap" = "xyes" ; then
++ NETSNMP_BUILD_PCAP_PROG_TRUE='#'
++ NETSNMP_BUILD_PCAP_PROG_FALSE=''
++ AC_CHECK_LIB([pcap], [pcap_create], [
++ AC_CHECK_HEADERS([pcap/pcap.h], [
++ NETSNMP_BUILD_PCAP_PROG_TRUE=''
++ NETSNMP_BUILD_PCAP_PROG_FALSE='#'
++ ])
++ ])
++fi
+ AC_SUBST(NETSNMP_BUILD_PCAP_PROG_TRUE)
+ AC_SUBST(NETSNMP_BUILD_PCAP_PROG_FALSE)
+
diff --git a/net-analyzer/net-snmp/files/net-snmp-5.8.1-mysqlclient.patch b/net-analyzer/net-snmp/files/net-snmp-5.8.1-mysqlclient.patch
new file mode 100644
index 000000000000..94811747d2b4
--- /dev/null
+++ b/net-analyzer/net-snmp/files/net-snmp-5.8.1-mysqlclient.patch
@@ -0,0 +1,30 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -25,6 +25,8 @@
+
+ AC_MSG_CACHE_INIT()
+
++PKG_PROG_PKG_CONFIG
++
+ #
+ # save the configure arguments
+ #
+--- a/configure.d/config_os_libs2
++++ b/configure.d/config_os_libs2
+@@ -516,6 +516,8 @@
+ # mysql
+ ##
+ if test "x$with_mysql" = "xyes" ; then
++ PKG_CHECK_MODULES([MYSQL],[mysqlclient],[MYSQL_INCLUDES="$MYSQL_CFLAGS"],)
++ if test -x "$MYSQL_LIBS"; then
+ AC_PATH_PROGS(MYSQLCONFIG,mysql_config)
+ test -x "$MYSQLCONFIG" \
+ || AC_MSG_ERROR([Could not find mysql_config and was specifically asked to use MySQL support])
+@@ -523,6 +525,7 @@
+ MYSQL_INCLUDES=`$MYSQLCONFIG --include`
+ _libs="${LIBS}"
+ _cppflags="${CPPFLAGS}"
++ fi
+ LIBS="${LIBS} ${MYSQL_LIBS}"
+ CPPFLAGS="${CPPFLAGS} ${MYSQL_INCLUDES}"
+ AC_CHECK_HEADER(mysql.h,,
diff --git a/net-analyzer/net-snmp/files/net-snmp-5.9-MakeMaker.patch b/net-analyzer/net-snmp/files/net-snmp-5.9-MakeMaker.patch
new file mode 100644
index 000000000000..1c6a3fd1eaf3
--- /dev/null
+++ b/net-analyzer/net-snmp/files/net-snmp-5.9-MakeMaker.patch
@@ -0,0 +1,10 @@
+--- a/perl/Makefile.PL
++++ b/perl/Makefile.PL
+@@ -3,6 +3,7 @@
+ use ExtUtils::MakeMaker;
+ use Config;
+ require 5;
++use lib '.';
+ use MakefileSubs;
+
+ # Prevent that MakeMaker complains about unknown parameter names.
diff --git a/net-analyzer/net-snmp/files/net-snmp-5.9.3-0001-Fix-LDFLAGS-vs-LIBS-ordering.patch b/net-analyzer/net-snmp/files/net-snmp-5.9.3-0001-Fix-LDFLAGS-vs-LIBS-ordering.patch
new file mode 100644
index 000000000000..785f5ee57d1c
--- /dev/null
+++ b/net-analyzer/net-snmp/files/net-snmp-5.9.3-0001-Fix-LDFLAGS-vs-LIBS-ordering.patch
@@ -0,0 +1,231 @@
+https://github.com/net-snmp/net-snmp/pull/493
+
+From 1151979ecfba1ef10627175549d052cb76ef9d21 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Fri, 2 Dec 2022 02:26:29 +0000
+Subject: [PATCH 1/4] Fix LDFLAGS vs LIBS ordering
+
+LDFLAGS must come before both LIBS & any listed objects in order
+for certain valid LDFLAGS, like '-Wl,--as-needed' to work correctly
+(otherwise it'll either take no effect or discard libraries when
+they're needed).
+
+Gentoo has been carrying this patch for a while.
+
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/Makefile.top
++++ b/Makefile.top
+@@ -86,11 +86,11 @@ LIBCURRENT = 40
+ LIBAGE = 0
+ LIBREVISION = 0
+
+-LIB_LD_CMD = $(LIBTOOL) --mode=link $(LINKCC) $(CFLAGS) -rpath $(libdir) -version-info $(LIBCURRENT):$(LIBREVISION):$(LIBAGE) @LD_NO_UNDEFINED@ -o
++LIB_LD_CMD = $(LIBTOOL) --mode=link $(LINKCC) $(CFLAGS) $(LDFLAGS) -rpath $(libdir) -version-info $(LIBCURRENT):$(LIBREVISION):$(LIBAGE) @LD_NO_UNDEFINED@ -o
+ LIB_EXTENSION = la
+ LIB_VERSION =
+ LIB_LDCONFIG_CMD = $(LIBTOOL) --mode=finish $(INSTALL_PREFIX)$(libdir)
+-LINK = $(LIBTOOL) --mode=link $(LINKCC)
++LINK = $(LIBTOOL) --mode=link $(LINKCC) $(LDFLAGS)
+ # RANLIB = @RANLIB@
+ RANLIB = :
+
+--- a/agent/Makefile.in
++++ b/agent/Makefile.in
+@@ -288,26 +288,26 @@ all: agentlib subdirs miblib $(INSTALLBINPROGS) $(INSTALLSBINPROGS)
+ # build stuff targets
+ #
+ getkstat: getkstat.o
+- $(CC) $(CFLAGS) -o $@ $? $(LIBS)
++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $? $(LIBS)
+
+ getkstat.o: mibgroup/kernel_sunos5.c
+- $(CC) $(CFLAGS) -o $@ -D_GETKSTAT_TEST -DDODEBUG -c $?
++ $(CC) $(CFLAGS) -o $@ -D_GETKSTAT_TEST -DDODEBUG -c $?
+
+ getmibstat: getmibstat.o
+- $(CC) $(CFLAGS) -o $@ $? $(LIBS)
++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $? $(LIBS)
+
+ getmibstat.o: mibgroup/kernel_sunos5.c
+- $(CC) $(CFLAGS) -o $@ -D_GETMIBSTAT_TEST -DDODEBUG -c $?
++ $(CC) $(CFLAGS) -o $@ -D_GETMIBSTAT_TEST -DDODEBUG -c $?
+
+-snmpd$(EXEEXT): ${LAGENTOBJS} $(USELIBS) $(AGENTLIB) $(HELPERLIB) $(MIBLIB) $(LIBTARG)
+- $(LINK) $(CFLAGS) -o $@ ${LAGENTOBJS} ${LDFLAGS} ${OUR_AGENT_LIBS}
++snmpd$(EXEEXT): ${LAGENTOBJS} $(USELIBS) $(AGENTLIB) $(HELPERLIB) $(MIBLIB) $(LIBTARG)
++ $(LINK) $(CFLAGS) $(LDFLAGS) -o $@ ${LAGENTOBJS} ${OUR_AGENT_LIBS}
+
+ libnetsnmpagent.$(LIB_EXTENSION)$(LIB_VERSION): ${LLIBAGENTOBJS} $(USELIBS)
+- $(LIB_LD_CMD) $(AGENTLIB) ${LLIBAGENTOBJS} $(USELIBS) ${LAGENTLIBS} $(LDFLAGS) $(PERLLDOPTS_FOR_LIBS) @AGENTLIBS@
++ $(LIB_LD_CMD) $(AGENTLIB) $(LDFLAGS) ${LLIBAGENTOBJS} $(USELIBS) ${LAGENTLIBS} $(PERLLDOPTS_FOR_LIBS) @AGENTLIBS@
+ $(RANLIB) $(AGENTLIB)
+
+ libnetsnmpmibs.$(LIB_EXTENSION)$(LIB_VERSION): ${LMIBOBJS} $(AGENTLIB) $(USELIBS) subdirs
+- $(LIB_LD_CMD) $(MIBLIB) ${LMIBOBJS} $(AGENTLIB) $(USELIBS) $(LDFLAGS) ${LMIBLIBS} $(PERLLDOPTS_FOR_LIBS) @AGENTLIBS@
++ $(LIB_LD_CMD) $(MIBLIB) $(LDFLAGS) ${LMIBOBJS} $(AGENTLIB) $(USELIBS) ${LMIBLIBS} $(PERLLDOPTS_FOR_LIBS) @AGENTLIBS@
+ $(RANLIB) $(MIBLIB)
+
+ agentlib: $(AGENTLIB)
+--- a/agent/helpers/Makefile.in
++++ b/agent/helpers/Makefile.in
+@@ -32,5 +32,5 @@ LOBJS = dummy.lo
+ all: standardall
+
+ libnetsnmphelpers.$(LIB_EXTENSION)$(LIB_VERSION): $(LOBJS)
+- $(LIB_LD_CMD) $@ $(LOBJS) $(LDFLAGS)
++ $(LIB_LD_CMD) $@ $(LDFLAGS) $(LOBJS)
+ $(RANLIB) $@
+--- a/apps/Makefile.in
++++ b/apps/Makefile.in
+@@ -163,37 +163,37 @@ OTHERUNINSTALL=snmpinformuninstall snmptrapdperluninstall \
+ # build rules
+ #
+ snmpwalk$(EXEEXT): snmpwalk.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmpwalk.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmpwalk.$(OSUFFIX) ${LIBS}
+
+ snmpbulkwalk$(EXEEXT): snmpbulkwalk.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmpbulkwalk.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmpbulkwalk.$(OSUFFIX) ${LIBS}
+
+ snmpbulkget$(EXEEXT): snmpbulkget.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmpbulkget.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmpbulkget.$(OSUFFIX) ${LIBS}
+
+ snmptranslate$(EXEEXT): snmptranslate.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmptranslate.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmptranslate.$(OSUFFIX) ${LIBS}
+
+ snmpstatus$(EXEEXT): snmpstatus.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmpstatus.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmpstatus.$(OSUFFIX) ${LIBS}
+
+ snmpget$(EXEEXT): snmpget.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmpget.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmpget.$(OSUFFIX) ${LIBS}
+
+ snmpdelta$(EXEEXT): snmpdelta.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmpdelta.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmpdelta.$(OSUFFIX) ${LIBS}
+
+ snmptable$(EXEEXT): snmptable.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmptable.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmptable.$(OSUFFIX) ${LIBS}
+
+ snmptest$(EXEEXT): snmptest.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmptest.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmptest.$(OSUFFIX) ${LIBS}
+
+ snmptrapd$(EXEEXT): $(TRAPD_OBJECTS) $(USETRAPLIBS) $(INSTALLLIBS)
+- $(LINK) ${CFLAGS} -o $@ $(TRAPD_OBJECTS) $(INSTALLLIBS) ${LDFLAGS} ${TRAPLIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ $(TRAPD_OBJECTS) $(INSTALLLIBS) ${TRAPLIBS}
+
+ snmptrap$(EXEEXT): snmptrap.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmptrap.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmptrap.$(OSUFFIX) ${LIBS}
+
+ snmpinform$(EXEEXT): snmptrap$(EXEEXT)
+ rm -f snmpinform
+@@ -204,40 +204,40 @@ snmptop$(EXEEXT): snmpps$(EXEEXT)
+ $(LN_S) snmpps$(EXEEXT) snmptop$(EXEEXT)
+
+ snmpset$(EXEEXT): snmpset.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmpset.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmpset.$(OSUFFIX) ${LIBS}
+
+ snmpusm$(EXEEXT): snmpusm.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmpusm.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmpusm.$(OSUFFIX) ${LIBS}
+
+ snmpvacm$(EXEEXT): snmpvacm.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmpvacm.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmpvacm.$(OSUFFIX) ${LIBS}
+
+ snmptls$(EXEEXT): snmptls.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmptls.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmptls.$(OSUFFIX) ${LIBS}
+
+ agentxtrap$(EXEEXT): agentxtrap.$(OSUFFIX) $(USEAGENTLIBS)
+- $(LINK) ${CFLAGS} -o $@ agentxtrap.$(OSUFFIX) ${LDFLAGS} $(USEAGENTLIBS) $(PERLLDOPTS_FOR_APPS) ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ agentxtrap.$(OSUFFIX) $(USEAGENTLIBS) $(PERLLDOPTS_FOR_APPS) ${LIBS}
+
+ snmpgetnext$(EXEEXT): snmpgetnext.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmpgetnext.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmpgetnext.$(OSUFFIX) ${LIBS}
+
+ encode_keychange$(EXEEXT): encode_keychange.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ encode_keychange.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ encode_keychange.$(OSUFFIX) ${LIBS}
+
+ snmpdf$(EXEEXT): snmpdf.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmpdf.$(OSUFFIX) ${LDFLAGS} ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmpdf.$(OSUFFIX) ${LIBS}
+
+ snmpps$(EXEEXT): snmpps.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmpps.$(OSUFFIX) ${LDFLAGS} @LIBCURSES@ ${LIBS}
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmpps.$(OSUFFIX) @LIBCURSES@ ${LIBS}
+
+ snmpping$(EXEEXT): snmpping.$(OSUFFIX) $(USELIBS)
+- $(LINK) ${CFLAGS} -o $@ snmpping.$(OSUFFIX) ${LDFLAGS} ${LIBS} -lm
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmpping.$(OSUFFIX) ${LIBS} -lm
+
+ snmppcap$(EXEEXT): snmppcap.$(OSUFFIX) $(USEAGENTLIBS)
+- $(LINK) ${CFLAGS} -o $@ snmppcap.$(OSUFFIX) ${LDFLAGS} ${USEAGENTLIBS} ${LIBS} -lpcap
++ $(LINK) ${CFLAGS} ${LDFLAGS} -o $@ snmppcap.$(OSUFFIX) ${USEAGENTLIBS} ${LIBS} -lpcap
+
+ libnetsnmptrapd.$(LIB_EXTENSION)$(LIB_VERSION): $(LLIBTRAPD_OBJS)
+- $(LIB_LD_CMD) $@ ${LLIBTRAPD_OBJS} $(MIBLIB) $(MYSQL_LIBS) $(USELIBS) $(PERLLDOPTS_FOR_LIBS) $(LDFLAGS)
++ $(LIB_LD_CMD) $@ $(LDFLAGS) ${LLIBTRAPD_OBJS} $(MIBLIB) $(MYSQL_LIBS) $(USELIBS) $(PERLLDOPTS_FOR_LIBS)
+ $(RANLIB) $@
+
+ snmpinforminstall:
+--- a/apps/snmpnetstat/Makefile.in
++++ b/apps/snmpnetstat/Makefile.in
+@@ -34,4 +34,4 @@ LIBS= ../../snmplib/libnetsnmp.$(LIB_EXTENSION)$(LIB_VERSION) $(VAL_LIBS) @LIBS
+ all: standardall
+
+ snmpnetstat$(EXEEXT): ${LOBJS} ${USELIBS}
+- ${LINK} ${CFLAGS} -o $@ ${LOBJS} ${LOCAL_LIBS} ${LDFLAGS} ${LIBS}
++ ${LINK} ${CFLAGS} ${LDFLAGS} -o $@ ${LOBJS} ${LOCAL_LIBS} ${LIBS}
+--- a/snmplib/Makefile.in
++++ b/snmplib/Makefile.in
+@@ -229,11 +229,11 @@ all: standardall
+
+ # how to build the libraries.
+ libnetsnmp.$(LIB_EXTENSION)$(LIB_VERSION): $(TOBJS)
+- $(LIB_LD_CMD) $@ $(TOBJS) $(LDFLAGS) @LNETSNMPLIBS@
++ $(LIB_LD_CMD) $@ $(LDFLAGS) $(TOBJS) @LNETSNMPLIBS@
+ $(RANLIB) $@
+
+ libsnmp.$(LIB_EXTENSION)$(LIB_VERSION): $(TOBJS)
+- $(LIB_LD_CMD) $@ $(TOBJS) $(LDFLAGS) @LNETSNMPLIBS@
++ $(LIB_LD_CMD) $@ $(LDFLAGS) $(TOBJS) @LNETSNMPLIBS@
+ $(RANLIB) $@
+
+ #
+--- a/testing/Makefile.in
++++ b/testing/Makefile.in
+@@ -64,16 +64,16 @@ test-mibs:
+ cd $(srcdir)/rfc1213 ; ./run
+
+ etest: etimetest.o $(PARSEOBJS) $(USELIBS)
+- ${CC} -o $@ etimetest.o $(PARSEOBJS) ${LDFLAGS} ${LIBS}
++ ${CC} ${LDFLAGS} -o $@ etimetest.o $(PARSEOBJS) ${LIBS}
+
+ ktest: keymanagetest.o $(PARSEOBJS) $(USELIBS)
+- ${CC} -o $@ keymanagetest.o $(PARSEOBJS) ${LDFLAGS} ${LIBS}
++ ${CC} ${LDFLAGS} -o $@ keymanagetest.o $(PARSEOBJS) ${LIBS}
+
+ misctest: misctest.o $(PARSEOBJS) $(USELIBS)
+- ${CC} -o $@ misctest.o $(PARSEOBJS) ${LDFLAGS} ${LIBS}
++ ${CC} ${LDFLAGS} -o $@ misctest.o $(PARSEOBJS) ${LIBS}
+
+ stest: scapitest.o $(PARSEOBJS) $(USELIBS)
+- ${CC} -o $@ scapitest.o $(PARSEOBJS) ${LDFLAGS} ${LIBS}
++ ${CC} ${LDFLAGS} -o $@ scapitest.o $(PARSEOBJS) ${LIBS}
+
+ clean: testclean
+ rm -f *.o core *.core $(TARG)
+--
+2.38.1
+
diff --git a/net-analyzer/net-snmp/files/net-snmp-5.9.3-0002-Tidy-up-net-snmp-config-output.patch b/net-analyzer/net-snmp/files/net-snmp-5.9.3-0002-Tidy-up-net-snmp-config-output.patch
new file mode 100644
index 000000000000..83d05a86f0ac
--- /dev/null
+++ b/net-analyzer/net-snmp/files/net-snmp-5.9.3-0002-Tidy-up-net-snmp-config-output.patch
@@ -0,0 +1,51 @@
+https://github.com/net-snmp/net-snmp/pull/493
+
+From a73bda5ca7afbeaf3cf3b73101f7541cf92147ef Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Fri, 2 Dec 2022 02:27:21 +0000
+Subject: [PATCH 2/4] Tidy up net-snmp-config output
+
+`net-snmp-config --libs` should return only the needed libraries linked to
+libraries which external consumers should use.
+
+Gentoo has been carrying this patch for a while, as has Fedora.
+
+Bug: https://bugs.gentoo.org/693970
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/net-snmp-config.in
++++ b/net-snmp-config.in
+@@ -193,13 +193,13 @@ else
+ #################################################### client lib
+ --libs)
+ # use this one == --netsnmp-libs + --external-libs
+- echo $NSC_LDFLAGS $NSC_LIBDIR $NSC_SNMPLIBS $NSC_LIBS
++ echo $NSC_LIBDIR $NSC_SNMPLIBS $NSC_LIBS
+ ;;
+ --netsnmp-libs)
+ echo $NSC_LIBDIR $NSC_BASE_SNMP_LIBS
+ ;;
+ --external-libs)
+- echo $NSC_LDFLAGS $NSC_LNETSNMPLIBS $NSC_LIBS @PERLLDOPTS_FOR_APPS@
++ echo $NSC_LNETSNMPLIBS $NSC_LIBS @PERLLDOPTS_FOR_APPS@
+ ;;
+ #################################################### agent lib
+ --base-agent-libs)
+@@ -210,13 +210,13 @@ else
+ ;;
+ --agent-libs)
+ # use this one == --netsnmp-agent-libs + --external-libs
+- echo $NSC_LDFLAGS $NSC_LIBDIR $NSC_AGENTLIBS $NSC_LIBS
++ echo $NSC_LIBDIR $NSC_AGENTLIBS $NSC_LIBS
+ ;;
+ --netsnmp-agent-libs)
+ echo $NSC_LIBDIR $NSC_BASE_AGENT_LIBS
+ ;;
+ --external-agent-libs)
+- echo $NSC_LDFLAGS $NSC_LMIBLIBS $NSC_LAGENTLIBS $NSC_LNETSNMPLIBS $NSC_LIBS
++ echo $NSC_LMIBLIBS $NSC_LAGENTLIBS $NSC_LNETSNMPLIBS $NSC_LIBS
+ ;;
+ ####################################################
+ --version|--ver*)
+--
+2.38.1
+
diff --git a/net-analyzer/net-snmp/files/net-snmp-5.9.3-0003-Prune-Libs.private-entries-in-netsnmp-.pc.in.patch b/net-analyzer/net-snmp/files/net-snmp-5.9.3-0003-Prune-Libs.private-entries-in-netsnmp-.pc.in.patch
new file mode 100644
index 000000000000..8b825ae8cf5d
--- /dev/null
+++ b/net-analyzer/net-snmp/files/net-snmp-5.9.3-0003-Prune-Libs.private-entries-in-netsnmp-.pc.in.patch
@@ -0,0 +1,30 @@
+https://github.com/net-snmp/net-snmp/pull/493
+
+From 7261ea344004ac42b6099acfba49c0ea731d049c Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Fri, 2 Dec 2022 02:29:45 +0000
+Subject: [PATCH 3/4] Prune Libs.private entries in netsnmp*.pc.in
+
+Gentoo has been carrying this patch for a while, as has Fedora.
+
+Bug: https://bugs.gentoo.org/693970
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/netsnmp-agent.pc.in
++++ b/netsnmp-agent.pc.in
+@@ -9,4 +9,4 @@ URL: http://www.net-snmp.org
+ Version: @PACKAGE_VERSION@
+ Cflags: -I${includedir}
+ Libs: -L${libdir} -lnetsnmpmibs -lnetsnmpagent -lnetsnmp
+-Libs.private: @LDFLAGS@ @LMIBLIBS@ @LAGENTLIBS@ @PERLLDOPTS_FOR_APPS@ @LNETSNMPLIBS@ @LIBS@
++Libs.private: @LMIBLIBS@ @LAGENTLIBS@ @LNETSNMPLIBS@ @LIBS@
+--- a/netsnmp.pc.in
++++ b/netsnmp.pc.in
+@@ -9,4 +9,4 @@ URL: http://www.net-snmp.org
+ Version: @PACKAGE_VERSION@
+ Cflags: -I${includedir}
+ Libs: -L${libdir} -lnetsnmp
+-Libs.private: @LDFLAGS@ @LNETSNMPLIBS@ @LIBS@ @PERLLDOPTS_FOR_APPS@
++Libs.private: @LNETSNMPLIBS@ @LIBS@
+--
+2.38.1
+
diff --git a/net-analyzer/net-snmp/files/net-snmp-5.9.3-0004-Search-for-ltinfo-in-configure-if-needed.patch b/net-analyzer/net-snmp/files/net-snmp-5.9.3-0004-Search-for-ltinfo-in-configure-if-needed.patch
new file mode 100644
index 000000000000..c92c88cfbb2f
--- /dev/null
+++ b/net-analyzer/net-snmp/files/net-snmp-5.9.3-0004-Search-for-ltinfo-in-configure-if-needed.patch
@@ -0,0 +1,24 @@
+https://github.com/net-snmp/net-snmp/pull/493
+
+From 6b70bd4ffa7a905700807eecd3e07a472e2eda55 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Fri, 2 Dec 2022 02:31:15 +0000
+Subject: [PATCH 4/4] Search for -ltinfo in configure if needed
+
+Gentoo has been carrying this patch for a while.
+
+Bug: https://bugs.gentoo.org/883945
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/configure.d/config_os_libs2
++++ b/configure.d/config_os_libs2
+@@ -774,6 +774,7 @@ NETSNMP_SEARCH_LIBS([endwin], [curses ncurses], [
+ [HAVE_LIBCURSES=FALSE],,
+ [LIBCURSES])
+ AC_SUBST([HAVE_LIBCURSES])
++NETSNMP_SEARCH_LIBS([cbreak], [tinfo],[LIBCURSES="$LIBCURSES -ltinfo"],,,)
+ AC_SUBST([LIBCURSES])
+
+ # libm for ceil
+--
+2.38.1
+
diff --git a/net-analyzer/net-snmp/files/snmpd.conf b/net-analyzer/net-snmp/files/snmpd.conf
new file mode 100644
index 000000000000..a3f88242a127
--- /dev/null
+++ b/net-analyzer/net-snmp/files/snmpd.conf
@@ -0,0 +1,19 @@
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+# Initial (empty) options.
+SNMPD_FLAGS=""
+
+# Disable smux by default
+SNMPD_FLAGS="${SNMPD_FLAGS} -I -smux"
+
+# Enable connection logging.
+#SNMPD_FLAGS="${SNMPD_FLAGS} -a"
+
+# Enable syslog and disable file log.
+#SNMPD_FLAGS="${SNMPD_FLAGS} -Lsd -Lf /dev/null"
+
+# Enable agentx socket as /var/agentx/master
+# *NOTE* Before uncommenting this, make sure
+# the /var/agentx directory exists.
+#SNMPD_FLAGS="${SNMPD_FLAGS} -x /var/agentx/master"
diff --git a/net-analyzer/net-snmp/files/snmpd.init.2 b/net-analyzer/net-snmp/files/snmpd.init.2
new file mode 100644
index 000000000000..288fea0d5908
--- /dev/null
+++ b/net-analyzer/net-snmp/files/snmpd.init.2
@@ -0,0 +1,34 @@
+#!/sbin/openrc-run
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+SNMPD_PIDFILE="${SNMPD_PIDFILE:-/var/run/snmpd.pid}"
+
+extra_started_commands="reload"
+
+command="/usr/sbin/snmpd"
+command_args="-p ${SNMPD_PIDFILE} ${SNMPD_FLAGS}"
+pidfile="${SNMPD_PIDFILE}"
+
+depend() {
+ use logger
+}
+
+checkconfig() {
+ if [ ! -e /etc/snmp/snmpd.conf ] ; then
+ eerror "${SVCNAME} requires an /etc/snmp/snmpd.conf configuration file"
+ return 1
+ fi
+}
+
+start_pre() {
+ checkconfig || return 1
+}
+
+reload() {
+ checkconfig || return 1
+
+ ebegin "Reloading ${SVCNAME} configuration"
+ kill -HUP $(cat ${SNMPD_PIDFILE}) 2>&1 > /dev/null
+ eend $?
+}
diff --git a/net-analyzer/net-snmp/files/snmpd.service b/net-analyzer/net-snmp/files/snmpd.service
new file mode 100644
index 000000000000..8150d7b18818
--- /dev/null
+++ b/net-analyzer/net-snmp/files/snmpd.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Simple Network Management Protocol (SNMP) Daemon
+After=syslog.target network.target
+
+[Service]
+ExecStart=/usr/sbin/snmpd -f
+
+[Install]
+WantedBy=multi-user.target
diff --git a/net-analyzer/net-snmp/files/snmptrapd.conf b/net-analyzer/net-snmp/files/snmptrapd.conf
new file mode 100644
index 000000000000..bca2a5f4c8de
--- /dev/null
+++ b/net-analyzer/net-snmp/files/snmptrapd.conf
@@ -0,0 +1,15 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+# extra flags to pass to snmptrapd
+SNMPTRAPD_FLAGS=""
+
+# ignore authentication failure traps
+#SNMPTRAPD_FLAGS="${SNMPTRAPD_FLAGS} -a"
+
+# log messages to specified file
+#SNMPTRAPD_FLAGS="${SNMPTRAPD_FLAGS} -Lf /var/log/snmptrapd.log"
+
+# log messages to syslog with the specified facility
+# where facility is: 'd' = LOG_DAEMON, 'u' = LOG_USER, [0-7] = LOG_LOCAL[0-7]
+#SNMPTRAPD_FLAGS="${SNMPTRAPD_FLAGS} -Ls d"
diff --git a/net-analyzer/net-snmp/files/snmptrapd.init.2 b/net-analyzer/net-snmp/files/snmptrapd.init.2
new file mode 100644
index 000000000000..9787d6f05c38
--- /dev/null
+++ b/net-analyzer/net-snmp/files/snmptrapd.init.2
@@ -0,0 +1,13 @@
+#!/sbin/openrc-run
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+SNMPTRAPD_PIDFILE="${SNMPTRAPD_PIDFILE:-/var/run/snmptrapd.pid}"
+
+command="/usr/sbin/snmptrapd"
+command_args="-p ${SNMPTRAPD_PIDFILE} ${SNMPTRAPD_FLAGS}"
+pidfile="${SNMPTRAPD_PIDFILE}"
+
+depend() {
+ use logger
+}
diff --git a/net-analyzer/net-snmp/files/snmptrapd.service b/net-analyzer/net-snmp/files/snmptrapd.service
new file mode 100644
index 000000000000..7d19444c1d73
--- /dev/null
+++ b/net-analyzer/net-snmp/files/snmptrapd.service
@@ -0,0 +1,9 @@
+[Unit]
+Description=Simple Network Management Protocol (SNMP) TRAP Daemon
+After=syslog.target network.target
+
+[Service]
+ExecStart=/usr/sbin/snmptrapd -f
+
+[Install]
+WantedBy=multi-user.target
diff --git a/net-analyzer/net-snmp/metadata.xml b/net-analyzer/net-snmp/metadata.xml
new file mode 100644
index 000000000000..3cb5892c0e41
--- /dev/null
+++ b/net-analyzer/net-snmp/metadata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <use>
+ <flag name="elf">Enable the use of elf utils to check uptime on some systems</flag>
+ <flag name="kmem">Enable usage of /dev/kmem</flag>
+ <flag name="mfd-rewrites">Use MFD rewrites of mib modules where available</flag>
+ <flag name="pcap">Install snmppcap which reads from PCAP files and writes to the SNMP transport</flag>
+ <flag name="pci">Use libpci (from <pkg>sys-apps/pciutils</pkg>) to look up network interface description. This feature is only available on Linux.</flag>
+ <flag name="pcre">Add support for Perl Compatible Regular Expressions in process table filtering.</flag>
+ <flag name="rpm">Enable monitoring of <pkg>app-arch/rpm</pkg>. This flag requires the bzip2 and zlib flags to be enabled as well.</flag>
+ <flag name="smux">Enable support for the legacy smux protocol (superseded by agentx)</flag>
+ <flag name="ucd-compat">Build UCD compatibility library. Increases significantly the install size.</flag>
+ </use>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:net-snmp:net-snmp</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/net-snmp/net-snmp-5.9.5.2.ebuild b/net-analyzer/net-snmp/net-snmp-5.9.5.2.ebuild
new file mode 100644
index 000000000000..b5e253403aad
--- /dev/null
+++ b/net-analyzer/net-snmp/net-snmp-5.9.5.2.ebuild
@@ -0,0 +1,247 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+GENTOO_DEPEND_ON_PERL=no
+PYTHON_COMPAT=( python3_{13..14} )
+WANT_AUTOMAKE=none
+
+inherit autotools python-single-r1 libtool perl-module systemd
+
+DESCRIPTION="Software for generating and retrieving SNMP data"
+HOMEPAGE="https://www.net-snmp.org/"
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/net-snmp/net-snmp"
+ inherit git-r3
+else
+ # https://github.com/net-snmp/net-snmp/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
+ SRC_URI="https://downloads.sourceforge.net/${PN}/${PN}/${PV}/${P}.tar.gz"
+
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+fi
+
+SRC_URI+=" https://dev.gentoo.org/~jsmolic/distfiles/${PN}-5.7.3-patches-3.tar.xz"
+
+# GPL-2 for the init scripts
+LICENSE="HPND BSD GPL-2"
+SLOT="0/40"
+IUSE="
+ X bzip2 doc elf kmem ipv6 lm-sensors mfd-rewrites minimal mysql
+ pcap pci pcre perl python rpm selinux smux ssl tcpd ucd-compat valgrind zlib
+ ${GENTOO_PERL_USESTRING}
+"
+REQUIRED_USE="
+ python? ( ${PYTHON_REQUIRED_USE} )
+ rpm? ( bzip2 zlib )
+"
+
+COMMON_DEPEND="
+ dev-libs/libnl:3
+ virtual/libcrypt:=
+ bzip2? ( app-arch/bzip2 )
+ elf? ( dev-libs/elfutils )
+ lm-sensors? ( sys-apps/lm-sensors )
+ mysql? ( dev-db/mysql-connector-c:0= )
+ pcap? ( net-libs/libpcap )
+ pci? ( sys-apps/pciutils )
+ pcre? ( dev-libs/libpcre )
+ perl? (
+ ${GENTOO_PERL_DEPSTRING}
+ dev-lang/perl:=
+ )
+ python? (
+ $(python_gen_cond_dep '
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ')
+ ${PYTHON_DEPS}
+ )
+ rpm? (
+ app-arch/rpm
+ dev-libs/popt
+ )
+ ssl? (
+ >=dev-libs/openssl-0.9.6d:0=
+ )
+ tcpd? ( >=sys-apps/tcp-wrappers-7.6 )
+ zlib? ( >=virtual/zlib-1.1.4:= )
+"
+BDEPEND="doc? ( app-text/doxygen )"
+DEPEND="
+ ${COMMON_DEPEND}
+ valgrind? ( dev-debug/valgrind )
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ perl? (
+ X? ( dev-perl/Tk )
+ !minimal? (
+ dev-perl/JSON
+ dev-perl/Mail-Sender
+ dev-perl/TermReadKey
+ )
+ )
+ selinux? ( sec-policy/selinux-snmp )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-5.8-pcap.patch
+ "${FILESDIR}"/${PN}-5.8.1-mysqlclient.patch
+ "${FILESDIR}"/${PN}-5.9-MakeMaker.patch
+ # https://github.com/net-snmp/net-snmp/pull/493
+ "${FILESDIR}"/${PN}-5.9.3-0001-Fix-LDFLAGS-vs-LIBS-ordering.patch
+ "${FILESDIR}"/${PN}-5.9.3-0002-Tidy-up-net-snmp-config-output.patch
+ "${FILESDIR}"/${PN}-5.9.3-0003-Prune-Libs.private-entries-in-netsnmp-.pc.in.patch
+ "${FILESDIR}"/${PN}-5.9.3-0004-Search-for-ltinfo-in-configure-if-needed.patch
+)
+
+pkg_setup() {
+ use python && python-single-r1_pkg_setup
+}
+
+src_unpack() {
+ default
+
+ [[ ${PV} == 9999 ]] && git-r3_src_unpack
+}
+
+src_prepare() {
+ # snmpconf generates config files with proper selinux context
+ use selinux && eapply "${FILESDIR}"/${PN}-5.1.2-snmpconf-selinux.patch
+
+ mv "${WORKDIR}"/patches/0001-Fix-toolchain-quadruplet-detection-Gentoo-bug-432004.patch{,.disabled} || die
+ mv "${WORKDIR}"/patches/0002-Respect-DESTDIR-for-pythoninstall.patch{,.disabled} || die
+ mv "${WORKDIR}"/patches/0004-Don-t-report-CFLAGS-and-LDFLAGS-in-net-snmp-config.patch{,.disabled} || die
+ mv "${WORKDIR}"/patches/0005-Respect-LDFLAGS-properly.patch{,.disabled} || die
+ eapply "${WORKDIR}"/patches/*.patch
+
+ # Fails because of our eautoconf call
+ rm testing/fulltests/default/T000configure_simple || die
+
+ default
+
+ eautoconf
+ elibtoolize
+}
+
+src_configure() {
+ # keep this in the same line, configure.ac arguments are passed down to config.h
+ local mibs="host ucd-snmp/dlmod ucd-snmp/diskio ucd-snmp/extensible mibII/mta_sendmail etherlike-mib/dot3StatsTable"
+ use lm-sensors && mibs="${mibs} ucd-snmp/lmsensorsMib"
+ use smux && mibs="${mibs} smux"
+
+ # Assume /etc/mtab is not present with a recent baselayout/openrc (bug #565136)
+ use kernel_linux && export ac_cv_ETC_MNTTAB=/etc/mtab
+
+ export ac_cv_header_valgrind_{valgrind,memcheck}_h=$(usex valgrind)
+
+ econf \
+ $(use_enable !ssl internal-md5) \
+ $(use_enable ipv6) \
+ $(use_enable mfd-rewrites) \
+ $(use_enable perl embedded-perl) \
+ $(use_enable ucd-compat ucd-snmp-compatibility) \
+ $(use_with bzip2) \
+ $(use_with elf) \
+ $(use_with kmem kmem-usage) \
+ $(use_with mysql) \
+ --with-nl \
+ $(use_with pcap) \
+ $(use_with pci) \
+ $(use_with pcre) \
+ $(use_with perl perl-modules INSTALLDIRS=vendor) \
+ $(use_with python python-modules) \
+ $(use_with rpm) \
+ $(use_with ssl openssl) \
+ $(use_with tcpd libwrap) \
+ $(use_with zlib) \
+ --enable-shared \
+ --with-default-snmp-version="3" \
+ --with-ldflags="${LDFLAGS}" \
+ --with-logfile="/var/log/net-snmpd.log" \
+ --with-mib-modules="${mibs}" \
+ --with-persistent-directory="/var/lib/net-snmp" \
+ --with-sys-contact="root@unknown" \
+ --with-sys-location="Unknown"
+}
+
+src_compile() {
+ emake sedscript
+
+ local subdir
+ for subdir in snmplib agent/mibgroup agent apps .; do
+ emake OTHERLDFLAGS="${LDFLAGS}" -C ${subdir} all
+ done
+
+ use doc && emake docsdox
+}
+
+src_test() {
+ emake -Onone test
+}
+
+src_install() {
+ # https://github.com/net-snmp/net-snmp/issues/1035 (bug #967912)
+ sed -i -e 's:-Werror=declaration-after-statement ::' net-snmp-config || die
+
+ # bug #317965
+ emake -j1 DESTDIR="${D}" install
+
+ use python && python_optimize
+
+ if use perl ; then
+ perl_delete_localpod
+ if ! use X; then
+ rm "${D}"/usr/bin/tkmib || die
+ fi
+ else
+ rm -f \
+ "${D}"/usr/bin/fixproc \
+ "${D}"/usr/bin/ipf-mod.pl \
+ "${D}"/usr/bin/mib2c \
+ "${D}"/usr/bin/net-snmp-cert \
+ "${D}"/usr/bin/snmp-bridge-mib \
+ "${D}"/usr/bin/snmpcheck \
+ "${D}"/usr/bin/snmpconf \
+ "${D}"/usr/bin/tkmib \
+ "${D}"/usr/bin/traptoemail \
+ "${D}"/usr/share/snmp/mib2c.perl.conf \
+ "${D}"/usr/share/snmp/snmp_perl_trapd.pl \
+ || die
+ fi
+
+ dodoc AGENT.txt ChangeLog FAQ INSTALL NEWS PORTING README* TODO
+ newdoc EXAMPLE.conf.def EXAMPLE.conf
+
+ if use doc; then
+ docinto html
+ dodoc -r docs/html/*
+ fi
+
+ keepdir /var/lib/net-snmp
+
+ newinitd "${FILESDIR}"/snmpd.init.2 snmpd
+ newconfd "${FILESDIR}"/snmpd.conf snmpd
+
+ newinitd "${FILESDIR}"/snmptrapd.init.2 snmptrapd
+ newconfd "${FILESDIR}"/snmptrapd.conf snmptrapd
+
+ systemd_dounit "${FILESDIR}"/snmpd.service
+ systemd_dounit "${FILESDIR}"/snmptrapd.service
+
+ insinto /etc/snmp
+ newins "${S}"/EXAMPLE.conf snmpd.conf.example
+
+ # Remove everything not required for an agent.
+ # Keep only the snmpd, snmptrapd, MIBs, headers and libraries.
+ if use minimal; then
+ rm -rf \
+ "${D}"/**/*.pl \
+ "${D}"/usr/bin/{encode_keychange,snmp{get,getnext,set,usm,walk,bulkwalk,table,trap,bulkget,translate,status,delta,test,df,vacm,netstat,inform,check,conf},fixproc,traptoemail} \
+ "${D}"/usr/share/snmp/*.conf \
+ "${D}"/usr/share/snmp/snmpconf-data \
+ || die
+ fi
+
+ find "${ED}" -name '*.la' -delete || die
+}
diff --git a/net-analyzer/net-snmp/net-snmp-9999.ebuild b/net-analyzer/net-snmp/net-snmp-9999.ebuild
new file mode 100644
index 000000000000..0e8fd9921149
--- /dev/null
+++ b/net-analyzer/net-snmp/net-snmp-9999.ebuild
@@ -0,0 +1,243 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+GENTOO_DEPEND_ON_PERL=no
+PYTHON_COMPAT=( python3_{13..14} )
+WANT_AUTOMAKE=none
+
+inherit autotools python-single-r1 libtool perl-module systemd
+
+DESCRIPTION="Software for generating and retrieving SNMP data"
+HOMEPAGE="https://www.net-snmp.org/"
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/net-snmp/net-snmp"
+ inherit git-r3
+else
+ # https://github.com/net-snmp/net-snmp/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
+ SRC_URI="https://downloads.sourceforge.net/${PN}/${PN}/${PV}/${P}.tar.gz"
+
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+
+SRC_URI+=" https://dev.gentoo.org/~jsmolic/distfiles/${PN}-5.7.3-patches-3.tar.xz"
+
+# GPL-2 for the init scripts
+LICENSE="HPND BSD GPL-2"
+SLOT="0/40"
+IUSE="
+ X bzip2 doc elf kmem ipv6 lm-sensors mfd-rewrites minimal mysql
+ pcap pci pcre perl python rpm selinux smux ssl tcpd ucd-compat valgrind zlib
+ ${GENTOO_PERL_USESTRING}
+"
+REQUIRED_USE="
+ python? ( ${PYTHON_REQUIRED_USE} )
+ rpm? ( bzip2 zlib )
+"
+
+COMMON_DEPEND="
+ dev-libs/libnl:3
+ virtual/libcrypt:=
+ bzip2? ( app-arch/bzip2 )
+ elf? ( dev-libs/elfutils )
+ lm-sensors? ( sys-apps/lm-sensors )
+ mysql? ( dev-db/mysql-connector-c:0= )
+ pcap? ( net-libs/libpcap )
+ pci? ( sys-apps/pciutils )
+ pcre? ( dev-libs/libpcre2 )
+ perl? (
+ ${GENTOO_PERL_DEPSTRING}
+ dev-lang/perl:=
+ )
+ python? (
+ $(python_gen_cond_dep '
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ ')
+ ${PYTHON_DEPS}
+ )
+ rpm? (
+ app-arch/rpm
+ dev-libs/popt
+ )
+ ssl? (
+ >=dev-libs/openssl-0.9.6d:0=
+ )
+ tcpd? ( >=sys-apps/tcp-wrappers-7.6 )
+ zlib? ( >=virtual/zlib-1.1.4:= )
+"
+BDEPEND="doc? ( app-text/doxygen )"
+DEPEND="
+ ${COMMON_DEPEND}
+ valgrind? ( dev-debug/valgrind )
+"
+RDEPEND="
+ ${COMMON_DEPEND}
+ perl? (
+ X? ( dev-perl/Tk )
+ !minimal? (
+ dev-perl/JSON
+ dev-perl/Mail-Sender
+ dev-perl/TermReadKey
+ )
+ )
+ selinux? ( sec-policy/selinux-snmp )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-5.8-pcap.patch
+ "${FILESDIR}"/${PN}-5.8.1-mysqlclient.patch
+ "${FILESDIR}"/${PN}-5.9-MakeMaker.patch
+)
+
+pkg_setup() {
+ use python && python-single-r1_pkg_setup
+}
+
+src_unpack() {
+ default
+
+ [[ ${PV} == 9999 ]] && git-r3_src_unpack
+}
+
+src_prepare() {
+ # snmpconf generates config files with proper selinux context
+ use selinux && eapply "${FILESDIR}"/${PN}-5.1.2-snmpconf-selinux.patch
+
+ mv "${WORKDIR}"/patches/0001-Fix-toolchain-quadruplet-detection-Gentoo-bug-432004.patch{,.disabled} || die
+ mv "${WORKDIR}"/patches/0002-Respect-DESTDIR-for-pythoninstall.patch{,.disabled} || die
+ mv "${WORKDIR}"/patches/0004-Don-t-report-CFLAGS-and-LDFLAGS-in-net-snmp-config.patch{,.disabled} || die
+ mv "${WORKDIR}"/patches/0005-Respect-LDFLAGS-properly.patch{,.disabled} || die
+ eapply "${WORKDIR}"/patches/*.patch
+
+ # Fails because of our eautoconf call
+ rm testing/fulltests/default/T000configure_simple || die
+
+ default
+
+ eautoconf
+ elibtoolize
+}
+
+src_configure() {
+ # keep this in the same line, configure.ac arguments are passed down to config.h
+ local mibs="host ucd-snmp/dlmod ucd-snmp/diskio ucd-snmp/extensible mibII/mta_sendmail etherlike-mib/dot3StatsTable"
+ use lm-sensors && mibs="${mibs} ucd-snmp/lmsensorsMib"
+ use smux && mibs="${mibs} smux"
+
+ # Assume /etc/mtab is not present with a recent baselayout/openrc (bug #565136)
+ use kernel_linux && export ac_cv_ETC_MNTTAB=/etc/mtab
+
+ export ac_cv_header_valgrind_{valgrind,memcheck}_h=$(usex valgrind)
+
+ econf \
+ $(use_enable !ssl internal-md5) \
+ $(use_enable ipv6) \
+ $(use_enable mfd-rewrites) \
+ $(use_enable perl embedded-perl) \
+ $(use_enable ucd-compat ucd-snmp-compatibility) \
+ $(use_with bzip2) \
+ $(use_with elf) \
+ $(use_with kmem kmem-usage) \
+ $(use_with mysql) \
+ --with-nl \
+ $(use_with pcap) \
+ $(use_with pci) \
+ $(use_with pcre pcre2-8) \
+ --without-pcre \
+ $(use_with perl perl-modules INSTALLDIRS=vendor) \
+ $(use_with python python-modules) \
+ $(use_with rpm) \
+ $(use_with ssl openssl) \
+ $(use_with tcpd libwrap) \
+ $(use_with zlib) \
+ --enable-shared \
+ --with-default-snmp-version="3" \
+ --with-ldflags="${LDFLAGS}" \
+ --with-logfile="/var/log/net-snmpd.log" \
+ --with-mib-modules="${mibs}" \
+ --with-persistent-directory="/var/lib/net-snmp" \
+ --with-sys-contact="root@unknown" \
+ --with-sys-location="Unknown"
+}
+
+src_compile() {
+ emake sedscript
+
+ local subdir
+ for subdir in snmplib agent/mibgroup agent apps .; do
+ emake OTHERLDFLAGS="${LDFLAGS}" -C ${subdir} all
+ done
+
+ use doc && emake docsdox
+}
+
+src_test() {
+ emake -Onone test
+}
+
+src_install() {
+ # https://github.com/net-snmp/net-snmp/issues/1035 (bug #967912)
+ sed -i -e 's:-Werror=declaration-after-statement ::' net-snmp-config || die
+
+ # bug #317965
+ emake -j1 DESTDIR="${D}" install
+
+ use python && python_optimize
+
+ if use perl ; then
+ perl_delete_localpod
+ if ! use X; then
+ rm "${D}"/usr/bin/tkmib || die
+ fi
+ else
+ rm -f \
+ "${D}"/usr/bin/fixproc \
+ "${D}"/usr/bin/ipf-mod.pl \
+ "${D}"/usr/bin/mib2c \
+ "${D}"/usr/bin/net-snmp-cert \
+ "${D}"/usr/bin/snmp-bridge-mib \
+ "${D}"/usr/bin/snmpcheck \
+ "${D}"/usr/bin/snmpconf \
+ "${D}"/usr/bin/tkmib \
+ "${D}"/usr/bin/traptoemail \
+ "${D}"/usr/share/snmp/mib2c.perl.conf \
+ "${D}"/usr/share/snmp/snmp_perl_trapd.pl \
+ || die
+ fi
+
+ dodoc AGENT.txt ChangeLog FAQ INSTALL NEWS PORTING README* TODO
+ newdoc EXAMPLE.conf.def EXAMPLE.conf
+
+ if use doc; then
+ docinto html
+ dodoc -r docs/html/*
+ fi
+
+ keepdir /var/lib/net-snmp
+
+ newinitd "${FILESDIR}"/snmpd.init.2 snmpd
+ newconfd "${FILESDIR}"/snmpd.conf snmpd
+
+ newinitd "${FILESDIR}"/snmptrapd.init.2 snmptrapd
+ newconfd "${FILESDIR}"/snmptrapd.conf snmptrapd
+
+ systemd_dounit "${FILESDIR}"/snmpd.service
+ systemd_dounit "${FILESDIR}"/snmptrapd.service
+
+ insinto /etc/snmp
+ newins "${S}"/EXAMPLE.conf snmpd.conf.example
+
+ # Remove everything not required for an agent.
+ # Keep only the snmpd, snmptrapd, MIBs, headers and libraries.
+ if use minimal; then
+ rm -rf \
+ "${D}"/**/*.pl \
+ "${D}"/usr/bin/{encode_keychange,snmp{get,getnext,set,usm,walk,bulkwalk,table,trap,bulkget,translate,status,delta,test,df,vacm,netstat,inform,check,conf},fixproc,traptoemail} \
+ "${D}"/usr/share/snmp/*.conf \
+ "${D}"/usr/share/snmp/snmpconf-data \
+ || die
+ fi
+
+ find "${ED}" -name '*.la' -delete || die
+}
diff --git a/net-analyzer/netcat/Manifest b/net-analyzer/netcat/Manifest
new file mode 100644
index 000000000000..ca67a6703601
--- /dev/null
+++ b/net-analyzer/netcat/Manifest
@@ -0,0 +1 @@
+DIST nc110.20180111.tar.xz 69984 BLAKE2B cb345db31d8857fc1c3973eba45c7a45ec0c5721829a19c46f1ec91a792d9d6309930b3bba5df1180989025f7a04ec8c85cf4832ac6f4199d13f15764f000420 SHA512 4413849c07c6ec5aae07c6e2baa1ba9a99721fa6ac08cf9e7d15379937a207246eb4f4299dd8c049445a72eac9cfe0a3633a87e4e01e21036db1217ea7a1e330
diff --git a/net-analyzer/netcat/files/netcat-110.20180111-c23.patch b/net-analyzer/netcat/files/netcat-110.20180111-c23.patch
new file mode 100644
index 000000000000..4459fb1fe89d
--- /dev/null
+++ b/net-analyzer/netcat/files/netcat-110.20180111-c23.patch
@@ -0,0 +1,29 @@
+https://bugs.gentoo.org/944910
+--- a/netcat.c
++++ b/netcat.c
+@@ -257,7 +257,7 @@ void bail (str, p1, p2, p3, p4, p5, p6)
+
+ /* catch :
+ no-brainer interrupt handler */
+-void catch ()
++void catch (__attribute__ ((unused)) int unused)
+ {
+ errno = 0;
+ if (o_verbose > 1) /* normally we don't care */
+@@ -267,14 +267,14 @@ void catch ()
+
+ /* quit :
+ handler for a "-q" timeout (exit 0 instead of 1) */
+-void quit ()
++void quit (__attribute__ ((unused)) int unused)
+ {
+ close (netfd);
+ exit (0);
+ }
+
+ /* timeout and other signal handling cruft */
+-void tmtravel ()
++void tmtravel (__attribute__ ((unused)) int unused)
+ {
+ signal (SIGALRM, SIG_IGN);
+ alarm (0);
diff --git a/net-analyzer/netcat/files/netcat-110.20180111-variadic-holler.patch b/net-analyzer/netcat/files/netcat-110.20180111-variadic-holler.patch
new file mode 100644
index 000000000000..36fda8614eef
--- /dev/null
+++ b/net-analyzer/netcat/files/netcat-110.20180111-variadic-holler.patch
@@ -0,0 +1,88 @@
+Subject: [PATCH] Convert holler and bail to variadic function
+
+Both functions usually consume different types than char * which is
+problematic for some compliers like clang-16 where -Werror=implicit-int
+is enabled by default.
+
+The fix is done in such a way that original holler function is converted
+to vholer which uses va_list from stdarg.h and holler and bail are
+converted to variadic functions that utilize vholler for printing.
+
+Bug: https://bugs.gentoo.org/871003
+
+diff --git a/netcat.c b/netcat.c
+index 992c42b..b4d6fd8 100644
+--- a/netcat.c
++++ b/netcat.c
+@@ -80,6 +80,7 @@
+ #include <signal.h>
+ #include <fcntl.h> /* O_WRONLY et al */
+ #include <unistd.h>
++#include <stdarg.h>
+
+ /* handy stuff: */
+ #define SA struct sockaddr /* socket overgeneralization braindeath */
+@@ -215,23 +216,18 @@ int o_quit = -1; /* 0 == quit-now; >0 == quit after o_quit seconds */
+ /* support routines -- the bulk of this thing. Placed in such an order that
+ we don't have to forward-declare anything: */
+
+-/* holler :
+- fake varargs -- need to do this way because we wind up calling through
+- more levels of indirection than vanilla varargs can handle, and not all
+- machines have vfprintf/vsyslog/whatever! 6 params oughta be enough. */
+-void holler (str, p1, p2, p3, p4, p5, p6)
+- char * str;
+- char * p1, * p2, * p3, * p4, * p5, * p6;
++/* vholler : */
++void vholler(const char * str, va_list ap)
+ {
+ FILE *o_holler_out = (o_holler_stderr ? stderr : stdout);
+ if (o_verbose) {
+- fprintf (o_holler_out, str, p1, p2, p3, p4, p5, p6);
++ vfprintf (o_holler_out, str, ap);
+ #ifdef HAVE_BIND
+ if (h_errno) { /* if host-lookup variety of error ... */
+ if (h_errno > 4) /* oh no you don't, either */
+ fprintf (o_holler_out, "preposterous h_errno: %d", h_errno);
+ else
+- fprintf (o_holler_out, h_errs[h_errno]); /* handle it here */
++ fputs (h_errs[h_errno], o_holler_out); /* handle it here */
+ h_errno = 0; /* and reset for next call */
+ }
+ #endif
+@@ -241,16 +237,27 @@ void holler (str, p1, p2, p3, p4, p5, p6)
+ fprintf (o_holler_out, "\n");
+ fflush (o_holler_out);
+ }
+-} /* holler */
++} /* vholler */
++
++void holler(const char * fmt, ...)
++{
++ va_list ap;
++ va_start(ap, fmt);
++ vholler(fmt, ap);
++ va_end(ap);
++}
+
+ /* bail :
+ error-exit handler, callable from anywhere */
+-void bail (str, p1, p2, p3, p4, p5, p6)
+- char * str;
+- char * p1, * p2, * p3, * p4, * p5, * p6;
++void bail (const char * fmt, ...)
+ {
+ o_verbose = 1;
+- holler (str, p1, p2, p3, p4, p5, p6);
++ va_list ap;
++
++ va_start(ap, fmt);
++ vholler(fmt, ap);
++ va_end(ap);
++
+ close (netfd);
+ exit (1);
+ } /* bail */
+--
+2.35.1
+
diff --git a/net-analyzer/netcat/metadata.xml b/net-analyzer/netcat/metadata.xml
new file mode 100644
index 000000000000..ec58c1c5b1fb
--- /dev/null
+++ b/net-analyzer/netcat/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>sam@gentoo.org</email>
+ <name>Sam James</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:netcat_project:netcat</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/netcat/netcat-110.20180111-r2.ebuild b/net-analyzer/netcat/netcat-110.20180111-r2.ebuild
new file mode 100644
index 000000000000..1d183f576804
--- /dev/null
+++ b/net-analyzer/netcat/netcat-110.20180111-r2.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs flag-o-matic
+
+MY_P="nc${PV}"
+DESCRIPTION="The network swiss army knife"
+HOMEPAGE="https://nc110.sourceforge.io"
+SRC_URI="https://downloads.sourceforge.net/nc110/${MY_P}.tar.xz"
+S="${WORKDIR}/nc110"
+
+LICENSE="netcat"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-solaris"
+IUSE="ipv6 static"
+
+PATCHES=(
+ "${FILESDIR}/${P}-variadic-holler.patch"
+ "${FILESDIR}/${PN}-110.20180111-c23.patch"
+)
+
+src_prepare() {
+ default
+
+ sed -i \
+ -e '/#define HAVE_BIND/s:#define:#undef:' \
+ -e '/#define FD_SETSIZE 16/s:16:1024: #34250' \
+ netcat.c || die
+
+ if [[ ${CHOST} == *-solaris* ]] ; then
+ sed -i 's:gethostbyname2 *(\([^)]\+\)):getipnodebyname (\1, AI_DEFAULT, NULL):' netcat.c || die
+ fi
+}
+
+src_configure() {
+ if ! use ipv6 ; then
+ sed -i '/#define INET6/d' generic.h || die
+ fi
+
+ append-cppflags -DTELNET -DGAPING_SECURITY_HOLE
+}
+
+src_compile() {
+ local xlibs
+
+ [[ ${CHOST} == *-solaris* ]] && xlibs+=" -lnsl -lsocket"
+
+ emake \
+ LD="$(tc-getCC) ${LDFLAGS}" \
+ DFLAGS="${CPPFLAGS}" \
+ XFLAGS="${CFLAGS}" \
+ STATIC=$(usev static '-static') \
+ XLIBS="${xlibs}" \
+ nc
+}
+
+src_install() {
+ dobin nc
+
+ dodoc README* netcat.blurb
+ doman nc.1
+
+ docinto scripts
+ dodoc scripts/*
+}
diff --git a/net-analyzer/netdata-go-plugin/Manifest b/net-analyzer/netdata-go-plugin/Manifest
new file mode 100644
index 000000000000..8880ef0f9a90
--- /dev/null
+++ b/net-analyzer/netdata-go-plugin/Manifest
@@ -0,0 +1,4 @@
+DIST netdata-1.47.5-vendor.tar.xz 7224632 BLAKE2B b0b843ca53ae432607e95301ae9103d97f0260ea509e101883d20d3f26c1ee9edce558d66a46e76243b2ec8ef921b4d9cf883832749b585c20ac39251fd3b0e1 SHA512 c58c9bd2b52c766799f91b49591129a0de97b96d7da1d573ebe191a176f58b1cc4f9f67b83cdac6048833ceec494afae3a681b9476722a97c782525621dfc5dd
+DIST netdata-1.47.5.tar.gz 51034758 BLAKE2B c7c86956080b1903cdcfad23e7e016d91e89ef394275ed6ace140e1a5adf98300d983847bb5f4ac09a7d2fdafeba9f2a32c9a5c5f28a24b387ce7231310799b7 SHA512 9350edd520c20e8d97919a5bad804f8855e39f98aaa2eb0b4f07cc6cf763714720518b7e4c81a9a48d368aedeeb6bbcebb7b9fdb7ab5f7a7e1b3a447904e4183
+DIST netdata-2.5.3-vendor.tar.xz 8472672 BLAKE2B 25e1c5276922ab174b92b3d20a10141b3f23a622af47e6b43c358af1805f8d0f000e49fa8963300bac2db0e705263e95a8bbf77ab6037631a83dbb7f2e409751 SHA512 d9736386f7434c910c3da2612ee3afb406cf5e1e628d5d0b4b65ab0ffdb76a52b590a0c95cdea0e448afe3047e2bc85fbe83315a9a89fb6811cc2c5cb33c7eb9
+DIST netdata-2.5.3.tar.gz 31858932 BLAKE2B fe3f8f97f27e775aad75f57089623df1c1eb79addb46847ac2d282610651d26248a090e215e144978c4f27b9f8e428ed953987bf10bfdbe2a33ba4c34b672cd7 SHA512 9bf469aada9db631e9b8e6e8890de22eaed080f2b1b016503469ebe563a85a2cbcb6c4f0839a633178136e5dcf73fa952776106f99927d9cace610209d645b1e
diff --git a/net-analyzer/netdata-go-plugin/metadata.xml b/net-analyzer/netdata-go-plugin/metadata.xml
new file mode 100644
index 000000000000..c460841fdaf8
--- /dev/null
+++ b/net-analyzer/netdata-go-plugin/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>arkamar@gentoo.org</email>
+ <name>Petr Vaněk</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/netdata-go-plugin/netdata-go-plugin-1.47.5-r1.ebuild b/net-analyzer/netdata-go-plugin/netdata-go-plugin-1.47.5-r1.ebuild
new file mode 100644
index 000000000000..f3c217c2cced
--- /dev/null
+++ b/net-analyzer/netdata-go-plugin/netdata-go-plugin-1.47.5-r1.ebuild
@@ -0,0 +1,49 @@
+# Copyright 2024-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit fcaps go-module
+
+DESCRIPTION="Netdata plugin for collectors written in Go"
+HOMEPAGE="https://github.com/netdata/netdata"
+SRC_URI="
+ https://github.com/netdata/netdata/releases/download/v${PV}/netdata-v${PV}.tar.gz
+ -> netdata-${PV}.tar.gz
+ https://dev.gentoo.org/~arkamar/distfiles/netdata-${PV}-vendor.tar.xz
+"
+S="${WORKDIR}/netdata-v${PV}/src/go"
+
+LICENSE="GPL-3+"
+# Dependent modules licenses
+LICENSE+="
+ Apache-2.0 BSD BSD-2 ISC MIT MPL-2.0
+"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="net-analyzer/netdata"
+BDEPEND=">=dev-lang/go-1.22"
+
+FILECAPS=(
+ cap_net_raw /usr/libexec/netdata/plugins.d/go.d.plugin
+)
+
+src_compile() {
+ LDFLAGS="-X main.version=${PV}-gentoo"
+ ego build -ldflags "${LDFLAGS}" "github.com/netdata/netdata/go/plugins/cmd/godplugin"
+}
+
+src_test() {
+ # skipped tests are sending udp packets to 192.0.2.1
+ ego test -skip 'TestSNMP_Init/success_when_using_SNMPv[1-3]_with_valid_config' ./...
+}
+
+src_install() {
+ einstalldocs
+
+ exeinto "/usr/libexec/netdata/plugins.d"
+ newexe godplugin go.d.plugin
+ insinto "/usr/lib/netdata/conf.d"
+ doins -r plugin/go.d/config/*
+}
diff --git a/net-analyzer/netdata-go-plugin/netdata-go-plugin-2.5.3.ebuild b/net-analyzer/netdata-go-plugin/netdata-go-plugin-2.5.3.ebuild
new file mode 100644
index 000000000000..7a08e6c88d4b
--- /dev/null
+++ b/net-analyzer/netdata-go-plugin/netdata-go-plugin-2.5.3.ebuild
@@ -0,0 +1,49 @@
+# Copyright 2024-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit fcaps go-module
+
+DESCRIPTION="Netdata plugin for collectors written in Go"
+HOMEPAGE="https://github.com/netdata/netdata"
+SRC_URI="
+ https://github.com/netdata/netdata/releases/download/v${PV}/netdata-v${PV}.tar.gz
+ -> netdata-${PV}.tar.gz
+ https://dev.gentoo.org/~arkamar/distfiles/netdata-${PV}-vendor.tar.xz
+"
+S="${WORKDIR}/netdata-v${PV}/src/go"
+
+LICENSE="GPL-3+"
+# Dependent modules licenses
+LICENSE+="
+ Apache-2.0 BSD BSD-2 ISC MIT MPL-2.0
+"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="net-analyzer/netdata"
+BDEPEND=">=dev-lang/go-1.24"
+
+FILECAPS=(
+ cap_net_raw /usr/libexec/netdata/plugins.d/go.d.plugin
+)
+
+src_compile() {
+ LDFLAGS="-X main.version=${PV}-gentoo"
+ ego build -ldflags "${LDFLAGS}" "github.com/netdata/netdata/go/plugins/cmd/godplugin"
+}
+
+src_test() {
+ # skipped tests are sending udp packets to 192.0.2.1
+ ego test -skip 'TestCollector_Init/success_when_using_SNMPv[1-3]_with_valid_config' ./...
+}
+
+src_install() {
+ einstalldocs
+
+ exeinto "/usr/libexec/netdata/plugins.d"
+ newexe godplugin go.d.plugin
+ insinto "/usr/lib/netdata/conf.d"
+ doins -r plugin/go.d/config/*
+}
diff --git a/net-analyzer/netdata/Manifest b/net-analyzer/netdata/Manifest
new file mode 100644
index 000000000000..a13e4a28e8b2
--- /dev/null
+++ b/net-analyzer/netdata/Manifest
@@ -0,0 +1,3 @@
+DIST dlib-19.24.8.tar.gz 18965261 BLAKE2B 3dbcfcd4d1a98737a21f3618994a96b3932cfc3c12ef26411ef919d8843227418460208911aa687d5a94552588e8e1eb4c99646afc86f4b43afc6972d22c65b8 SHA512 9092768628246b682e29322b101cfb8c0cd1d5a2af850510403cc7f912aa43370db1d4b5b07ff6ce6a575b3bd8cfe666b6b8f78f5e7c2ec751ae23569edcb517
+DIST netdata-1.47.5.tar.gz 51034758 BLAKE2B c7c86956080b1903cdcfad23e7e016d91e89ef394275ed6ace140e1a5adf98300d983847bb5f4ac09a7d2fdafeba9f2a32c9a5c5f28a24b387ce7231310799b7 SHA512 9350edd520c20e8d97919a5bad804f8855e39f98aaa2eb0b4f07cc6cf763714720518b7e4c81a9a48d368aedeeb6bbcebb7b9fdb7ab5f7a7e1b3a447904e4183
+DIST netdata-2.5.3.tar.gz 31858932 BLAKE2B fe3f8f97f27e775aad75f57089623df1c1eb79addb46847ac2d282610651d26248a090e215e144978c4f27b9f8e428ed953987bf10bfdbe2a33ba4c34b672cd7 SHA512 9bf469aada9db631e9b8e6e8890de22eaed080f2b1b016503469ebe563a85a2cbcb6c4f0839a633178136e5dcf73fa952776106f99927d9cace610209d645b1e
diff --git a/net-analyzer/netdata/files/netdata-dlib-global_optimization-add-template-argument-list.patch b/net-analyzer/netdata/files/netdata-dlib-global_optimization-add-template-argument-list.patch
new file mode 100644
index 000000000000..43aba15f4980
--- /dev/null
+++ b/net-analyzer/netdata/files/netdata-dlib-global_optimization-add-template-argument-list.patch
@@ -0,0 +1,30 @@
+From 0947215ddb268fef192e45c140c9430f77648166 Mon Sep 17 00:00:00 2001
+From: Drew Risinger <10198051+drewrisinger@users.noreply.github.com>
+Date: Tue, 25 Jun 2024 19:01:12 -0700
+Subject: [PATCH] global_optimization: add template argument list (#2973)
+
+Fixes error (-Wmissing-template-arg-list-after-template-kw) from clang-19 compiler.
+
+Co-authored-by: Drew Risinger <drewrisinger@users.noreply.github.com>
+
+Origin: upstream, https://github.com/davisking/dlib/pull/2973
+---
+ src/ml/dlib/dlib/global_optimization/find_max_global.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/ml/dlib/dlib/global_optimization/find_max_global.h b/src/ml/dlib/dlib/global_optimization/find_max_global.h
+index 12e496e69894..8a05ae9050d4 100644
+--- a/src/ml/dlib/dlib/global_optimization/find_max_global.h
++++ b/src/ml/dlib/dlib/global_optimization/find_max_global.h
+@@ -58,7 +58,7 @@ namespace dlib
+ }
+
+ template <typename T>
+- static auto go(T&& f, const matrix<double,0,1>& a) -> decltype(call_function_and_expand_args<max_unpack-1>::template go(std::forward<T>(f),a))
++ static auto go(T&& f, const matrix<double,0,1>& a) -> decltype(call_function_and_expand_args<max_unpack-1>::template go<T>(std::forward<T>(f),a))
+ {
+ return call_function_and_expand_args<max_unpack-1>::go(std::forward<T>(f),a);
+ }
+--
+2.43.0
+
diff --git a/net-analyzer/netdata/metadata.xml b/net-analyzer/netdata/metadata.xml
new file mode 100644
index 000000000000..606c8d452827
--- /dev/null
+++ b/net-analyzer/netdata/metadata.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>candrews@gentoo.org</email>
+ <name>Craig Andrews</name>
+ </maintainer>
+ <use>
+ <flag name="aclk">Enable Agent-Cloud Link (ACLK) for securely connecting a Netdata Agent to your web browser through Netdata Cloud</flag>
+ <flag name="bpf">Enable the extended Berkeley Packet Filter (eBPF) collector to monitor kernel-level metrics about applications with per-second granularity</flag>
+ <flag name="cloud">Enable Netdata Cloud support</flag>
+ <flag name="dbengine">Enable the Netdata database engine</flag>
+ <flag name="ipmi">Install <pkg>sys-apps/ipmitool</pkg> required for monitoring IPMI sensors</flag>
+ <flag name="mongodb">Enable support for the mongodb backend</flag>
+ <flag name="nfacct">Enable the nfacct plugin</flag>
+ <flag name="nodejs">Enable use of nodejs (which some plugins use)</flag>
+ <flag name="prometheus">Enable support for the Prometheus remote write backend</flag>
+ <flag name="xen">Enable monitoring of xen</flag>
+ </use>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:my-netdata:netdata</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/netdata/netdata-1.47.5.ebuild b/net-analyzer/netdata/netdata-1.47.5.ebuild
new file mode 100644
index 000000000000..a32c95f54549
--- /dev/null
+++ b/net-analyzer/netdata/netdata-1.47.5.ebuild
@@ -0,0 +1,157 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit cmake fcaps linux-info optfeature python-single-r1 systemd
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/netdata/${PN}.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/netdata/${PN}/releases/download/v${PV}/${PN}-v${PV}.tar.gz -> ${P}.tar.gz"
+ S="${WORKDIR}/${PN}-v${PV}"
+ KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+fi
+
+DESCRIPTION="Linux real time system monitoring, done right!"
+HOMEPAGE="https://github.com/netdata/netdata https://my-netdata.io/"
+
+LICENSE="GPL-3+ MIT BSD"
+SLOT="0"
+IUSE="aclk bpf cloud cups +dbengine ipmi mongodb mysql nfacct nodejs postgres prometheus +python systemd xen"
+REQUIRED_USE="
+ mysql? ( python )
+ python? ( ${PYTHON_REQUIRED_USE} )"
+
+# most unconditional dependencies are for plugins.d/charts.d.plugin:
+RDEPEND="
+ acct-group/netdata
+ acct-user/netdata
+ app-misc/jq
+ >=app-shells/bash-4:0
+ || (
+ net-analyzer/openbsd-netcat
+ net-analyzer/netcat
+ )
+ net-libs/libwebsockets
+ net-misc/curl
+ net-misc/wget
+ sys-apps/util-linux
+ app-alternatives/awk
+ sys-libs/libcap
+ cups? ( net-print/cups )
+ app-arch/lz4:=
+ app-arch/zstd:=
+ app-arch/brotli:=
+ dbengine? (
+ dev-libs/judy
+ dev-libs/openssl:=
+ )
+ dev-libs/libpcre2:=
+ dev-libs/libuv:=
+ dev-libs/libyaml
+ dev-libs/protobuf:=
+ bpf? ( virtual/libelf:= )
+ virtual/zlib:=
+ ipmi? ( sys-libs/freeipmi )
+ dev-libs/json-c:=
+ mongodb? ( dev-libs/mongo-c-driver )
+ nfacct? (
+ net-firewall/nfacct
+ net-libs/libmnl:=
+ )
+ nodejs? ( net-libs/nodejs )
+ prometheus? (
+ app-arch/snappy:=
+ dev-libs/protobuf:=
+ )
+ python? (
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]')
+ mysql? ( $(python_gen_cond_dep 'dev-python/mysqlclient[${PYTHON_USEDEP}]') )
+ postgres? ( $(python_gen_cond_dep 'dev-python/psycopg:2[${PYTHON_USEDEP}]') )
+ )
+ xen? (
+ app-emulation/xen-tools
+ dev-libs/yajl
+ )
+ systemd? ( sys-apps/systemd )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+FILECAPS=(
+ 'cap_dac_read_search,cap_sys_ptrace+ep'
+ 'usr/libexec/netdata/plugins.d/apps.plugin'
+ 'usr/libexec/netdata/plugins.d/debugfs.plugin'
+)
+
+pkg_setup() {
+ use python && python-single-r1_pkg_setup
+ linux-info_pkg_setup
+}
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-dlib-global_optimization-add-template-argument-list.patch
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_DISABLE_FIND_PACKAGE_Git=TRUE
+ -DCMAKE_INSTALL_PREFIX=/
+ -DENABLE_ACLK=$(usex aclk)
+ -DENABLE_CLOUD=$(usex cloud)
+ -DENABLE_DBENGINE=$(usex dbengine)
+ -DENABLE_PLUGIN_CUPS=$(usex cups)
+ -DENABLE_PLUGIN_NFACCT=$(usex nfacct)
+ -DENABLE_PLUGIN_FREEIPMI=$(usex ipmi)
+ -DENABLE_EXPORTER_MONGODB=$(usex mongodb)
+ -DENABLE_EXPORTER_PROMETHEUS_REMOTE_WRITE=$(usex prometheus)
+ -DENABLE_PLUGIN_XENSTAT=$(usex xen)
+ -DENABLE_PLUGIN_EBPF=$(usex bpf)
+ -DENABLE_PLUGIN_GO=FALSE
+ -DENABLE_PLUGIN_SYSTEMD_JOURNAL=$(usex systemd)
+ )
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ rm -rf "${D}/var/cache" || die
+ rm -rf "${D}/var/run" || die
+
+ keepdir /var/log/netdata
+ fowners -Rc netdata:netdata /var/log/netdata
+ keepdir /var/lib/netdata
+ keepdir /var/lib/netdata/registry
+ keepdir /var/lib/netdata/cloud.d
+ fowners -Rc netdata:netdata /var/lib/netdata
+
+ newinitd "${D}/usr/lib/netdata/system/openrc/init.d/netdata" "${PN}"
+ newconfd "${D}/usr/lib/netdata/system/openrc/conf.d/netdata" "${PN}"
+ systemd_newunit "${D}/usr/lib/netdata/system/systemd/netdata.service.v235" netdata.service
+ systemd_dounit "${D}/usr/lib/netdata/system/systemd/netdata-updater.service"
+ systemd_dounit "${D}/usr/lib/netdata/system/systemd/netdata-updater.timer"
+ insinto /etc/netdata
+ doins system/netdata.conf
+}
+
+pkg_postinst() {
+ fcaps_pkg_postinst
+
+ if use nfacct ; then
+ fcaps 'cap_net_admin' 'usr/libexec/netdata/plugins.d/nfacct.plugin'
+ fi
+
+ if use xen ; then
+ fcaps 'cap_dac_override' 'usr/libexec/netdata/plugins.d/xenstat.plugin'
+ fi
+
+ if use ipmi ; then
+ fcaps 'cap_dac_override' 'usr/libexec/netdata/plugins.d/freeipmi.plugin'
+ fi
+
+ optfeature "go.d external plugin" net-analyzer/netdata-go-plugin
+}
diff --git a/net-analyzer/netdata/netdata-2.5.3.ebuild b/net-analyzer/netdata/netdata-2.5.3.ebuild
new file mode 100644
index 000000000000..089e2abf0b20
--- /dev/null
+++ b/net-analyzer/netdata/netdata-2.5.3.ebuild
@@ -0,0 +1,179 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit cmake fcaps linux-info optfeature python-single-r1 systemd
+
+DLIB_VER="19.24.8"
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/netdata/${PN}.git"
+ inherit git-r3
+else
+ SRC_URI="
+ https://github.com/netdata/netdata/releases/download/v${PV}/${PN}-v${PV}.tar.gz -> ${P}.tar.gz
+ https://github.com/davisking/dlib/archive/v${DLIB_VER}.tar.gz -> dlib-${DLIB_VER}.tar.gz
+ "
+ S="${WORKDIR}/${PN}-v${PV}"
+ KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+fi
+
+DESCRIPTION="Linux real time system monitoring, done right!"
+HOMEPAGE="https://github.com/netdata/netdata https://my-netdata.io/"
+
+LICENSE="GPL-3+ MIT BSD"
+SLOT="0"
+IUSE="cups +dbengine ipmi jemalloc mongodb mysql nfacct nodejs prometheus +python systemd xen"
+REQUIRED_USE="
+ mysql? ( python )
+ python? ( ${PYTHON_REQUIRED_USE} )"
+
+# most unconditional dependencies are for plugins.d/charts.d.plugin:
+RDEPEND="
+ acct-group/netdata
+ acct-user/netdata
+ app-alternatives/awk
+ app-arch/brotli:=
+ app-arch/lz4:=
+ app-arch/zstd:=
+ app-misc/jq
+ >=app-shells/bash-4:0
+ dev-libs/json-c:=
+ dev-libs/libpcre2:=
+ dev-libs/libuv:=
+ dev-libs/libyaml
+ dev-libs/protobuf:=
+ || (
+ net-analyzer/openbsd-netcat
+ net-analyzer/netcat
+ )
+ net-libs/libmnl:=
+ net-libs/libwebsockets
+ net-misc/curl
+ net-misc/wget
+ sys-apps/util-linux
+ sys-libs/libcap
+ virtual/zlib:=
+ cups? ( net-print/cups )
+ dbengine? (
+ dev-libs/judy
+ dev-libs/openssl:=
+ )
+ ipmi? ( sys-libs/freeipmi )
+ jemalloc? ( dev-libs/jemalloc:= )
+ mongodb? ( dev-libs/mongo-c-driver:0 )
+ nfacct? (
+ net-firewall/nfacct
+ net-libs/libmnl:=
+ )
+ nodejs? ( net-libs/nodejs )
+ prometheus? (
+ app-arch/snappy:=
+ )
+ python? (
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]')
+ mysql? ( $(python_gen_cond_dep 'dev-python/mysqlclient[${PYTHON_USEDEP}]') )
+ )
+ xen? (
+ app-emulation/xen-tools
+ dev-libs/yajl
+ )
+ systemd? ( sys-apps/systemd )"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ virtual/pkgconfig
+"
+
+FILECAPS=(
+ 'cap_dac_read_search,cap_sys_ptrace+ep'
+ 'usr/libexec/netdata/plugins.d/apps.plugin'
+ 'usr/libexec/netdata/plugins.d/debugfs.plugin'
+)
+
+pkg_setup() {
+ use python && python-single-r1_pkg_setup
+ linux-info_pkg_setup
+}
+
+src_configure() {
+ local mycmakeargs=(
+ -DNETDATA_DLIB_SOURCE_PATH="${WORKDIR}/dlib-${DLIB_VER}"
+ -DCMAKE_DISABLE_FIND_PACKAGE_Git=ON
+ -DCMAKE_INSTALL_PREFIX=/
+ -DFETCHCONTENT_FULLY_DISCONNECTED=ON
+ -DFETCHCONTENT_UPDATES_DISCONNECTED=ON
+ -DENABLE_BUNDLED_JSONC=OFF
+ -DENABLE_BUNDLED_PROTOBUF=OFF
+ -DENABLE_BUNDLED_YAML=OFF
+ -DENABLE_DASHBOARD=OFF # uses binary blobs, license issues
+ -DENABLE_DBENGINE=$(usex dbengine)
+ -DENABLE_EXPORTER_MONGODB=$(usex mongodb)
+ -DENABLE_EXPORTER_PROMETHEUS_REMOTE_WRITE=$(usex prometheus)
+ -DENABLE_JEMALLOC=$(usex jemalloc)
+ -DENABLE_LIBBACKTRACE=OFF
+ -DENABLE_MIMALLOC=OFF
+ -DENABLE_ML=ON
+ -DENABLE_PLUGIN_APPS=ON
+ -DENABLE_PLUGIN_CGROUP_NETWORK=ON
+ -DENABLE_PLUGIN_CHARTS=ON
+ -DENABLE_PLUGIN_CUPS=$(usex cups)
+ -DENABLE_PLUGIN_DEBUGFS=ON
+ -DENABLE_PLUGIN_EBPF=OFF # bundles libbpf
+ -DENABLE_PLUGIN_GO=OFF
+ -DENABLE_PLUGIN_FREEIPMI=$(usex ipmi)
+ -DENABLE_PLUGIN_NFACCT=$(usex nfacct)
+ -DENABLE_PLUGIN_OTEL=OFF
+ -DENABLE_PLUGIN_PERF=ON
+ -DENABLE_PLUGIN_PYTHON=$(usex python)
+ -DENABLE_PLUGIN_SLABINFO=ON
+ -DENABLE_PLUGIN_SYSTEMD_JOURNAL=$(usex systemd)
+ -DENABLE_PLUGIN_XENSTAT=$(usex xen)
+ )
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ rm -rf "${D}/var/cache" || die
+ rm -rf "${D}/var/run" || die
+
+ keepdir /var/log/netdata
+ fowners -Rc netdata:netdata /var/log/netdata
+ keepdir /var/lib/netdata
+ keepdir /var/lib/netdata/registry
+ keepdir /var/lib/netdata/cloud.d
+ fowners -Rc netdata:netdata /var/lib/netdata
+
+ newinitd "${D}/usr/lib/netdata/system/openrc/init.d/netdata" "${PN}"
+ newconfd "${D}/usr/lib/netdata/system/openrc/conf.d/netdata" "${PN}"
+ systemd_newunit "${D}/usr/lib/netdata/system/systemd/netdata.service.v235" netdata.service
+ systemd_dounit "${D}/usr/lib/netdata/system/systemd/netdata-updater.service"
+ systemd_dounit "${D}/usr/lib/netdata/system/systemd/netdata-updater.timer"
+ insinto /etc/netdata
+ doins system/netdata.conf
+
+ # Opt-out anonymous statistics
+ touch "${D}/etc/netdata/.opt-out-from-anonymous-statistics"
+}
+
+pkg_postinst() {
+ fcaps_pkg_postinst
+
+ if use nfacct ; then
+ fcaps 'cap_net_admin' 'usr/libexec/netdata/plugins.d/nfacct.plugin'
+ fi
+
+ if use xen ; then
+ fcaps 'cap_dac_override' 'usr/libexec/netdata/plugins.d/xenstat.plugin'
+ fi
+
+ if use ipmi ; then
+ fcaps 'cap_dac_override' 'usr/libexec/netdata/plugins.d/freeipmi.plugin'
+ fi
+
+ optfeature "go.d external plugin" net-analyzer/netdata-go-plugin
+}
diff --git a/net-analyzer/netdata/netdata-9999.ebuild b/net-analyzer/netdata/netdata-9999.ebuild
new file mode 100644
index 000000000000..a32c95f54549
--- /dev/null
+++ b/net-analyzer/netdata/netdata-9999.ebuild
@@ -0,0 +1,157 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit cmake fcaps linux-info optfeature python-single-r1 systemd
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/netdata/${PN}.git"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/netdata/${PN}/releases/download/v${PV}/${PN}-v${PV}.tar.gz -> ${P}.tar.gz"
+ S="${WORKDIR}/${PN}-v${PV}"
+ KEYWORDS="~amd64 ~arm64 ~ppc64 ~riscv ~x86"
+fi
+
+DESCRIPTION="Linux real time system monitoring, done right!"
+HOMEPAGE="https://github.com/netdata/netdata https://my-netdata.io/"
+
+LICENSE="GPL-3+ MIT BSD"
+SLOT="0"
+IUSE="aclk bpf cloud cups +dbengine ipmi mongodb mysql nfacct nodejs postgres prometheus +python systemd xen"
+REQUIRED_USE="
+ mysql? ( python )
+ python? ( ${PYTHON_REQUIRED_USE} )"
+
+# most unconditional dependencies are for plugins.d/charts.d.plugin:
+RDEPEND="
+ acct-group/netdata
+ acct-user/netdata
+ app-misc/jq
+ >=app-shells/bash-4:0
+ || (
+ net-analyzer/openbsd-netcat
+ net-analyzer/netcat
+ )
+ net-libs/libwebsockets
+ net-misc/curl
+ net-misc/wget
+ sys-apps/util-linux
+ app-alternatives/awk
+ sys-libs/libcap
+ cups? ( net-print/cups )
+ app-arch/lz4:=
+ app-arch/zstd:=
+ app-arch/brotli:=
+ dbengine? (
+ dev-libs/judy
+ dev-libs/openssl:=
+ )
+ dev-libs/libpcre2:=
+ dev-libs/libuv:=
+ dev-libs/libyaml
+ dev-libs/protobuf:=
+ bpf? ( virtual/libelf:= )
+ virtual/zlib:=
+ ipmi? ( sys-libs/freeipmi )
+ dev-libs/json-c:=
+ mongodb? ( dev-libs/mongo-c-driver )
+ nfacct? (
+ net-firewall/nfacct
+ net-libs/libmnl:=
+ )
+ nodejs? ( net-libs/nodejs )
+ prometheus? (
+ app-arch/snappy:=
+ dev-libs/protobuf:=
+ )
+ python? (
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep 'dev-python/pyyaml[${PYTHON_USEDEP}]')
+ mysql? ( $(python_gen_cond_dep 'dev-python/mysqlclient[${PYTHON_USEDEP}]') )
+ postgres? ( $(python_gen_cond_dep 'dev-python/psycopg:2[${PYTHON_USEDEP}]') )
+ )
+ xen? (
+ app-emulation/xen-tools
+ dev-libs/yajl
+ )
+ systemd? ( sys-apps/systemd )"
+DEPEND="${RDEPEND}
+ virtual/pkgconfig"
+
+FILECAPS=(
+ 'cap_dac_read_search,cap_sys_ptrace+ep'
+ 'usr/libexec/netdata/plugins.d/apps.plugin'
+ 'usr/libexec/netdata/plugins.d/debugfs.plugin'
+)
+
+pkg_setup() {
+ use python && python-single-r1_pkg_setup
+ linux-info_pkg_setup
+}
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-dlib-global_optimization-add-template-argument-list.patch
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_DISABLE_FIND_PACKAGE_Git=TRUE
+ -DCMAKE_INSTALL_PREFIX=/
+ -DENABLE_ACLK=$(usex aclk)
+ -DENABLE_CLOUD=$(usex cloud)
+ -DENABLE_DBENGINE=$(usex dbengine)
+ -DENABLE_PLUGIN_CUPS=$(usex cups)
+ -DENABLE_PLUGIN_NFACCT=$(usex nfacct)
+ -DENABLE_PLUGIN_FREEIPMI=$(usex ipmi)
+ -DENABLE_EXPORTER_MONGODB=$(usex mongodb)
+ -DENABLE_EXPORTER_PROMETHEUS_REMOTE_WRITE=$(usex prometheus)
+ -DENABLE_PLUGIN_XENSTAT=$(usex xen)
+ -DENABLE_PLUGIN_EBPF=$(usex bpf)
+ -DENABLE_PLUGIN_GO=FALSE
+ -DENABLE_PLUGIN_SYSTEMD_JOURNAL=$(usex systemd)
+ )
+ cmake_src_configure
+}
+
+src_install() {
+ cmake_src_install
+
+ rm -rf "${D}/var/cache" || die
+ rm -rf "${D}/var/run" || die
+
+ keepdir /var/log/netdata
+ fowners -Rc netdata:netdata /var/log/netdata
+ keepdir /var/lib/netdata
+ keepdir /var/lib/netdata/registry
+ keepdir /var/lib/netdata/cloud.d
+ fowners -Rc netdata:netdata /var/lib/netdata
+
+ newinitd "${D}/usr/lib/netdata/system/openrc/init.d/netdata" "${PN}"
+ newconfd "${D}/usr/lib/netdata/system/openrc/conf.d/netdata" "${PN}"
+ systemd_newunit "${D}/usr/lib/netdata/system/systemd/netdata.service.v235" netdata.service
+ systemd_dounit "${D}/usr/lib/netdata/system/systemd/netdata-updater.service"
+ systemd_dounit "${D}/usr/lib/netdata/system/systemd/netdata-updater.timer"
+ insinto /etc/netdata
+ doins system/netdata.conf
+}
+
+pkg_postinst() {
+ fcaps_pkg_postinst
+
+ if use nfacct ; then
+ fcaps 'cap_net_admin' 'usr/libexec/netdata/plugins.d/nfacct.plugin'
+ fi
+
+ if use xen ; then
+ fcaps 'cap_dac_override' 'usr/libexec/netdata/plugins.d/xenstat.plugin'
+ fi
+
+ if use ipmi ; then
+ fcaps 'cap_dac_override' 'usr/libexec/netdata/plugins.d/freeipmi.plugin'
+ fi
+
+ optfeature "go.d external plugin" net-analyzer/netdata-go-plugin
+}
diff --git a/net-analyzer/netdiscover/Manifest b/net-analyzer/netdiscover/Manifest
new file mode 100644
index 000000000000..54c6e082f193
--- /dev/null
+++ b/net-analyzer/netdiscover/Manifest
@@ -0,0 +1,2 @@
+DIST netdiscover-0.10.tar.gz 403310 BLAKE2B 87de2dd647bb2f047cb8655a97f3b44c0d69e127bb6b67030f789e64345692c54a70ff799a866669b5cbbf174176f415057a7e642e5703dc8e5f5e9c95633dff SHA512 a04a3ecb9cb76f22edc761b1a661e6e0f5c620763ca5a059923ce2d080e0d15bc0e0861ae354efc28ba2cea09b642128d8ee022106402f82041180c22e8becc9
+DIST netdiscover-0.20.tar.gz 443893 BLAKE2B 093747e7b5648230afa2cd6a9bea2e8feccfb083349a919b5a95efe8b06865bb5f01dcff3d79055b7388687c83fff4649baa9e2708b97a24e508700ddb685ba8 SHA512 de79a470ac752bc8114b60f2eccadd7b6bdb911fcd475f7e2f626bc9d647dbf0fd279303c7355050d0dd119df67c46eee4e13fe5077379238f3af8e8ffa086e4
diff --git a/net-analyzer/netdiscover/metadata.xml b/net-analyzer/netdiscover/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/netdiscover/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/netdiscover/netdiscover-0.10.ebuild b/net-analyzer/netdiscover/netdiscover-0.10.ebuild
new file mode 100644
index 000000000000..5f3a82e37ad3
--- /dev/null
+++ b/net-analyzer/netdiscover/netdiscover-0.10.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic
+
+DESCRIPTION="Active/passive address reconnaissance tool"
+HOMEPAGE="https://github.com/netdiscover-scanner/netdiscover"
+SRC_URI="
+ https://github.com/${PN}-scanner/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
+"
+S="${WORKDIR}/${P/_/-}"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~sparc ~x86"
+
+DEPEND="
+ >=net-libs/libpcap-0.8.3-r1
+"
+RDEPEND="
+ ${DEPEND}
+"
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ append-cflags -fcommon
+ default
+}
diff --git a/net-analyzer/netdiscover/netdiscover-0.20.ebuild b/net-analyzer/netdiscover/netdiscover-0.20.ebuild
new file mode 100644
index 000000000000..b207d52c0ff6
--- /dev/null
+++ b/net-analyzer/netdiscover/netdiscover-0.20.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="Active/passive address reconnaissance tool"
+HOMEPAGE="https://github.com/netdiscover-scanner/netdiscover"
+SRC_URI="
+ https://github.com/${PN}-scanner/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
+"
+S=${WORKDIR}/${P/_/-}
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~sparc ~x86"
+
+DEPEND="
+ >=net-libs/libpcap-0.8.3-r1
+"
+RDEPEND="
+ ${DEPEND}
+"
+
+src_prepare() {
+ default
+ eautoreconf
+}
diff --git a/net-analyzer/nethogs/Manifest b/net-analyzer/nethogs/Manifest
new file mode 100644
index 000000000000..3299ce9b8f89
--- /dev/null
+++ b/net-analyzer/nethogs/Manifest
@@ -0,0 +1,2 @@
+DIST nethogs-0.8.7.tar.gz 270631 BLAKE2B 179227d4b1fde5328e4885ce72bb28ac20482fa161afee7562546af5b403be1e851533e3861dfa2f514968aebe91a822e6b792520407853dfb1055c6d29ad121 SHA512 d965f3fa439ea9fbba83578b4272d03f396bf3cff9ae73a94936d47a3422d066d885c7f6f2a47fbe2f445a017bffa3fb3a1215976522ef0ad120fae3b95b31a2
+DIST nethogs-0.8.8.tar.gz 272792 BLAKE2B ec18cd291768c1baf22ab71b4219ab050c8f919419510234e71ec3d618fb0ff72cac4ccf04a4b1b063f71cf308f2ce2db09c595e4845372e4e6c61bf074e3ef3 SHA512 df076204c329f48161b01b51f89a6e7946b83ef330349e0df39e0358b9d3d973be9cdb64eb86ab9a83fb4f9389865a7859739de6a896374952ec2a08b2084b0d
diff --git a/net-analyzer/nethogs/files/nethogs-0.8.8-meson.patch b/net-analyzer/nethogs/files/nethogs-0.8.8-meson.patch
new file mode 100644
index 000000000000..2c87197b9933
--- /dev/null
+++ b/net-analyzer/nethogs/files/nethogs-0.8.8-meson.patch
@@ -0,0 +1,85 @@
+https://github.com/raboof/nethogs/pull/285
+
+[Formatting patch 3/3 dropped.]
+
+From 049fff5623720fcd0b4fdc92501b586addbb6b48 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Sat, 25 Jan 2025 16:03:12 +0000
+Subject: [PATCH 1/3] meson: cleanup version detection
+
+Tell Meson what version the project is, so that we set the right versioning
+on libnethogs.
+---
+ meson.build | 8 ++++----
+ 1 file changed, 4 insertions(+), 4 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 81d7b59..16e61b4 100644
+--- a/meson.build
++++ b/meson.build
+@@ -5,11 +5,11 @@
+ project('nethogs',
+ ['c', 'cpp'],
+ default_options : ['warning_level=3',
+- 'cpp_std=c++14']
++ 'cpp_std=c++14'],
++ version : run_command('./determineVersion.sh').stdout().strip(),
+ )
+
+ cc = meson.get_compiler('cpp')
+-version = run_command('./determineVersion.sh', check: true).stdout().strip()
+
+ #######################################
+ ## Dependencies and flags definition ##
+@@ -19,7 +19,7 @@ projectinc = [include_directories('.', 'src')]
+
+ # flags
+ c_args = [
+- '-DVERSION="' + version + '"'
++ '-DVERSION="' + meson.project_version() + '"'
+ ]
+
+ # dependencies
+@@ -42,5 +42,5 @@ pkgconfig = import('pkgconfig')
+ pkgconfig_install_dir = join_paths(get_option('libdir'), 'pkgconfig')
+ pkgconfig.generate(libnethogs,
+ requires: ['libpcap'],
+- version: version
++ version: meson.project_version()
+ )
+
+From 5afce747f142f6df6a264ab368c99f47050d9984 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Sat, 25 Jan 2025 16:05:20 +0000
+Subject: [PATCH 2/3] meson: fix build with libnethogs disabled
+
+Fix `meson.build:43:19: ERROR: Unknown variable "libnethogs".`.
+
+While src/ has this correct, the top-level meson.build wasn't right.
+---
+ meson.build | 14 ++++++++------
+ 1 file changed, 8 insertions(+), 6 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 16e61b4..8537718 100644
+--- a/meson.build
++++ b/meson.build
+@@ -38,9 +38,11 @@ subdir('src')
+ #############################
+ ## Pkgconfig definition ##
+ #############################
+-pkgconfig = import('pkgconfig')
+-pkgconfig_install_dir = join_paths(get_option('libdir'), 'pkgconfig')
+-pkgconfig.generate(libnethogs,
+- requires: ['libpcap'],
+- version: meson.project_version()
+- )
++if get_option('enable-libnethogs').enabled()
++ pkgconfig = import('pkgconfig')
++ pkgconfig_install_dir = join_paths(get_option('libdir'), 'pkgconfig')
++ pkgconfig.generate(libnethogs,
++ requires: ['libpcap'],
++ version: meson.project_version()
++ )
++endif
+
diff --git a/net-analyzer/nethogs/metadata.xml b/net-analyzer/nethogs/metadata.xml
new file mode 100644
index 000000000000..cac8a50ad67a
--- /dev/null
+++ b/net-analyzer/nethogs/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <longdescription>
+ NetHogs is a small 'net top' tool. Instead of breaking the traffic down
+ per protocol or per subnet, like most tools do, it groups bandwidth by
+ process. NetHogs does not rely on a special kernel module to be loaded.
+ If there's suddenly a lot of network traffic, you can fire up NetHogs and
+ immediately see which PID is causing this. This makes it easy to indentify
+ programs that have gone wild and are suddenly taking up your bandwidth.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nethogs/nethogs-0.8.7.ebuild b/net-analyzer/nethogs/nethogs-0.8.7.ebuild
new file mode 100644
index 000000000000..fc236f181755
--- /dev/null
+++ b/net-analyzer/nethogs/nethogs-0.8.7.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit fcaps toolchain-funcs
+
+DESCRIPTION="A small 'net top' tool, grouping bandwidth by process"
+HOMEPAGE="https://github.com/raboof/nethogs"
+SRC_URI="https://github.com/raboof/nethogs/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 x86"
+
+RDEPEND="net-libs/libpcap
+ sys-libs/ncurses:="
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+DOCS=( DESIGN README.decpcap.txt README.md )
+
+FILECAPS=(
+ cap_net_admin,cap_net_raw usr/sbin/nethogs
+)
+
+src_compile() {
+ tc-export CC CXX
+
+ emake NCURSES_LIBS="$( $(tc-getPKG_CONFIG) --libs ncurses )" ${PN}
+}
+
+src_install() {
+ emake DESTDIR="${ED}" PREFIX="/usr" install
+ einstalldocs
+}
diff --git a/net-analyzer/nethogs/nethogs-0.8.8.ebuild b/net-analyzer/nethogs/nethogs-0.8.8.ebuild
new file mode 100644
index 000000000000..a023076f3bac
--- /dev/null
+++ b/net-analyzer/nethogs/nethogs-0.8.8.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit fcaps meson
+
+DESCRIPTION="Small 'net top' tool, grouping bandwidth by process"
+HOMEPAGE="https://github.com/raboof/nethogs"
+SRC_URI="https://github.com/raboof/nethogs/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 x86"
+
+RDEPEND="
+ net-libs/libpcap
+ sys-libs/ncurses:=[cxx]
+"
+DEPEND="${RDEPEND}"
+
+DOCS=( DESIGN README.decpcap.txt README.md )
+
+FILECAPS=(
+ cap_net_admin,cap_net_raw usr/bin/nethogs
+)
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.8.8-meson.patch
+)
+
+src_prepare() {
+ default
+
+ cat <<-EOF > determineVersion.sh || die
+ #!/bin/sh
+ printf "${PV}"
+ EOF
+ chmod +x determineVersion.sh || die
+}
diff --git a/net-analyzer/netperf/Manifest b/net-analyzer/netperf/Manifest
new file mode 100644
index 000000000000..96ec2d577205
--- /dev/null
+++ b/net-analyzer/netperf/Manifest
@@ -0,0 +1,2 @@
+DIST netperf-2.7.0.tar.bz2 1024430 BLAKE2B 1263a2b3cee0790e4526245e522d29f8692a5a3e9d3b41468d1010bbee4d606a06904d9e0c4ac0af457bde562a476434be4c62a41e3c0dbf0e5c3aeb2ae5652a SHA512 5fb37945bead831247de9c8ba86b33f134ba39e753b483df72de97f536d0846538dadf61acc2dee57f04ab5d16a92afab4890e79a5d7ffa863afd526267fffad
+DIST netperf-2.7.0_p20210121.tar.gz 1914186 BLAKE2B 14d3a769a049443d8bf62b58c93c2b9563a16b69bb151d35926aa8831167b8a31bdd7d820c80a0c0511a78e519742005bdfa2079d403a514e2ec17f41a1b8e7c SHA512 8d9908fe2cd778eae719265b67938ab44e18de960c845f976e80d6b419c08b11ae47d8b4b906c6ccaf280f9f66bcdcb0be2ab379b0dca8d62d86671d57057e20
diff --git a/net-analyzer/netperf/files/netperf-2.2-conf b/net-analyzer/netperf/files/netperf-2.2-conf
new file mode 100644
index 000000000000..f61f483a83ea
--- /dev/null
+++ b/net-analyzer/netperf/files/netperf-2.2-conf
@@ -0,0 +1,4 @@
+# Config file for /etc/init.d/netperf
+
+# Add your preferred netserver args here
+#NETSERVER_ARGS="-n 4"
diff --git a/net-analyzer/netperf/files/netperf-2.6.0-log-dir.patch b/net-analyzer/netperf/files/netperf-2.6.0-log-dir.patch
new file mode 100644
index 000000000000..00554cc0b5c2
--- /dev/null
+++ b/net-analyzer/netperf/files/netperf-2.6.0-log-dir.patch
@@ -0,0 +1,11 @@
+--- a/src/netserver.c
++++ b/src/netserver.c
+@@ -165,7 +165,7 @@
+ #elif defined(ANDROID)
+ #define DEBUG_LOG_FILE_DIR "/data/local/tmp/"
+ #else
+-#define DEBUG_LOG_FILE_DIR "/tmp/"
++#define DEBUG_LOG_FILE_DIR "/var/log/"
+ #endif
+ #endif /* DEBUG_LOG_FILE_DIR */
+
diff --git a/net-analyzer/netperf/files/netperf-2.7.0-fcommon.patch b/net-analyzer/netperf/files/netperf-2.7.0-fcommon.patch
new file mode 100644
index 000000000000..0682c76cd89d
--- /dev/null
+++ b/net-analyzer/netperf/files/netperf-2.7.0-fcommon.patch
@@ -0,0 +1,30 @@
+https://github.com/HewlettPackard/netperf/pull/46
+https://bugs.gentoo.org/706694
+
+From c6a2e17fe35f0e68823451fedfdf5b1dbecddbe3 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 12 Aug 2020 09:57:23 -0700
+Subject: [PATCH] nettest_omni: Remove duplicate variable definitions
+
+These defines are already defined in nettest_bsd.c and exported by
+nettest_bsd.h this should fix build with -fno-common
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/src/nettest_omni.c
++++ b/src/nettest_omni.c
+@@ -458,14 +458,6 @@ static int client_port_max = 65535;
+
+ /* different options for the sockets */
+
+-int
+- loc_nodelay, /* don't/do use NODELAY locally */
+- rem_nodelay, /* don't/do use NODELAY remotely */
+- loc_sndavoid, /* avoid send copies locally */
+- loc_rcvavoid, /* avoid recv copies locally */
+- rem_sndavoid, /* avoid send copies remotely */
+- rem_rcvavoid; /* avoid recv_copies remotely */
+-
+ extern int
+ loc_tcpcork,
+ rem_tcpcork,
+
diff --git a/net-analyzer/netperf/files/netperf-2.7.0-gcc15.patch b/net-analyzer/netperf/files/netperf-2.7.0-gcc15.patch
new file mode 100644
index 000000000000..fe6335b26c28
--- /dev/null
+++ b/net-analyzer/netperf/files/netperf-2.7.0-gcc15.patch
@@ -0,0 +1,167 @@
+From 2bf2c2d7b6fecc43c70567054071134ab13ef0a6 Mon Sep 17 00:00:00 2001
+From: "mark.yang" <mark.yang@lge.com>
+Date: Wed, 16 Apr 2025 20:02:36 +0900
+Subject: [PATCH] Fix too many arguments error occurring in gcc-15
+
+* See more details in http://errors.yoctoproject.org/Errors/Details/851803/
+../../git/src/nettest_bsd.c:4497:19: error: too many arguments to function 'alloc_sendfile_buf_ring'; expected 0, have 4
+ 4497 | send_ring = alloc_sendfile_buf_ring(send_width,
+ | ^~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
+In file included from ../../git/src/nettest_bsd.c:175:
+../../git/src/netlib.h:690:26: note: declared here
+ 690 | extern struct ring_elt *alloc_sendfile_buf_ring();
+ | ^~~~~~~~~~~~~~~~~~~~~~~
+In file included from ../../git/src/nettest_omni.c:184:
+../../git/src/hist.h:135:6: error: conflicting types for 'HIST_purge'; have 'void(struct histogram_struct *)'
+ 135 | void HIST_purge(HIST h);
+ | ^~~~~~~~~~
+In file included from ../../git/src/nettest_omni.c:166:
+../../git/src/netlib.h:651:17: note: previous declaration of 'HIST_purge' with type 'void(void)'
+ 651 | extern void HIST_purge();
+ | ^~~~~~~~~~
+../../git/src/nettest_bsd.c: In function 'recv_tcp_stream':
+../../git/src/nettest_bsd.c:5197:15: error: too many arguments to function 'allocate_buffer_ring'; expected 0, have 4
+ 5197 | recv_ring = allocate_buffer_ring(recv_width,
+ | ^~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
+../../git/src/netlib.h:679:26: note: declared here
+ 679 | extern struct ring_elt *allocate_buffer_ring();
+ | ^~~~~~~~~~~~~~~~~~~~
+../../git/src/nettest_bsd.c: In function 'recv_tcp_maerts':
+../../git/src/nettest_bsd.c:5617:15: error: too many arguments to function 'allocate_buffer_ring'; expected 0, have 4
+ 5617 | send_ring = allocate_buffer_ring(send_width,
+ | ^~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
+../../git/src/netlib.h:679:26: note: declared here
+ 679 | extern struct ring_elt *allocate_buffer_ring();
+ | ^~~~~~~~~~~~~~~~~~~~
+../../git/src/nettest_bsd.c: In function 'recv_udp_stream':
+../../git/src/nettest_bsd.c:7345:15: error: too many arguments to function 'allocate_buffer_ring'; expected 0, have 4
+ 7345 | recv_ring = allocate_buffer_ring(recv_width,
+ | ^~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
+../../git/src/netlib.h:679:26: note: declared here
+ 679 | extern struct ring_elt *allocate_buffer_ring();
+ | ^~~~~~~~~~~~~~~~~~~~
+../../git/src/nettest_bsd.c: In function 'recv_udp_rr':
+../../git/src/nettest_bsd.c:8360:15: error: too many arguments to function 'allocate_buffer_ring'; expected 0, have 4
+ 8360 | recv_ring = allocate_buffer_ring(recv_width,
+ | ^~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
+../../git/src/netlib.h:679:26: note: declared here
+ 679 | extern struct ring_elt *allocate_buffer_ring();
+ | ^~~~~~~~~~~~~~~~~~~~
+../../git/src/nettest_bsd.c:8365:15: error: too many arguments to function 'allocate_buffer_ring'; expected 0, have 4
+ 8365 | send_ring = allocate_buffer_ring(send_width,
+ | ^~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
+../../git/src/netlib.h:679:26: note: declared here
+ 679 | extern struct ring_elt *allocate_buffer_ring();
+ | ^~~~~~~~~~~~~~~~~~~~
+../../git/src/nettest_bsd.c: In function 'recv_tcp_rr':
+../../git/src/nettest_bsd.c:8677:15: error: too many arguments to function 'allocate_buffer_ring'; expected 0, have 4
+ 8677 | send_ring = allocate_buffer_ring(send_width,
+ | ^~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
+../../git/src/netlib.h:679:26: note: declared here
+ 679 | extern struct ring_elt *allocate_buffer_ring();
+ | ^~~~~~~~~~~~~~~~~~~~
+../../git/src/nettest_bsd.c:8682:15: error: too many arguments to function 'allocate_buffer_ring'; expected 0, have 4
+ 8682 | recv_ring = allocate_buffer_ring(recv_width,
+ | ^~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
+../../git/src/netlib.h:679:26: note: declared here
+ 679 | extern struct ring_elt *allocate_buffer_ring();
+ | ^~~~~~~~~~~~~~~~~~~~
+../../git/src/nettest_omni.c: In function 'send_omni_inner':
+../../git/src/nettest_omni.c:4044:21: error: too many arguments to function 'allocate_buffer_ring'; expected 0, have 4
+ 4044 | send_ring = allocate_buffer_ring(send_width,
+ | ^~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
+../../git/src/netlib.h:679:26: note: declared here
+ 679 | extern struct ring_elt *allocate_buffer_ring();
+ | ^~~~~~~~~~~~~~~~~~~~
+../../git/src/nettest_omni.c:4086:21: error: too many arguments to function 'allocate_buffer_ring'; expected 0, have 4
+ 4086 | recv_ring = allocate_buffer_ring(recv_width,
+ | ^~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
+../../git/src/netlib.h:679:26: note: declared here
+ 679 | extern struct ring_elt *allocate_buffer_ring();
+ | ^~~~~~~~~~~~~~~~~~~~
+../../git/src/nettest_omni.c:5050:5: error: too many arguments to function 'HIST_get_stats'; expected 0, have 5
+ 5050 | HIST_get_stats(time_hist,
+ | ^~~~~~~~~~~~~~ ~~~~~~~~~
+../../git/src/netlib.h:650:17: note: declared here
+ 650 | extern void HIST_get_stats();
+ | ^~~~~~~~~~~~~~
+../../git/src/nettest_omni.c:5055:19: error: too many arguments to function 'HIST_get_percentile'; expected 0, have 2
+ 5055 | p50_latency = HIST_get_percentile(time_hist, 0.50);
+ | ^~~~~~~~~~~~~~~~~~~ ~~~~~~~~~
+../../git/src/netlib.h:649:17: note: declared here
+ 649 | extern int HIST_get_percentile();
+ | ^~~~~~~~~~~~~~~~~~~
+../../git/src/nettest_omni.c:5056:19: error: too many arguments to function 'HIST_get_percentile'; expected 0, have 2
+ 5056 | p90_latency = HIST_get_percentile(time_hist, 0.90);
+ | ^~~~~~~~~~~~~~~~~~~ ~~~~~~~~~
+../../git/src/netlib.h:649:17: note: declared here
+ 649 | extern int HIST_get_percentile();
+ | ^~~~~~~~~~~~~~~~~~~
+../../git/src/nettest_omni.c:5057:19: error: too many arguments to function 'HIST_get_percentile'; expected 0, have 2
+ 5057 | p99_latency = HIST_get_percentile(time_hist, 0.99);
+ | ^~~~~~~~~~~~~~~~~~~ ~~~~~~~~~
+../../git/src/netlib.h:649:17: note: declared here
+ 649 | extern int HIST_get_percentile();
+ | ^~~~~~~~~~~~~~~~~~~
+../../git/src/nettest_omni.c: In function 'recv_omni':
+../../git/src/nettest_omni.c:5354:17: error: too many arguments to function 'allocate_buffer_ring'; expected 0, have 4
+ 5354 | send_ring = allocate_buffer_ring(send_width,
+ | ^~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
+../../git/src/netlib.h:679:26: note: declared here
+ 679 | extern struct ring_elt *allocate_buffer_ring();
+ | ^~~~~~~~~~~~~~~~~~~~
+../../git/src/nettest_omni.c:5396:17: error: too many arguments to function 'allocate_buffer_ring'; expected 0, have 4
+ 5396 | recv_ring = allocate_buffer_ring(recv_width,
+ | ^~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~
+../../git/src/netlib.h:679:26: note: declared here
+ 679 | extern struct ring_elt *allocate_buffer_ring();
+ | ^~~~~~~~~~~~~~~~~~~~
+
+Signed-off-by: mark.yang <mark.yang@lge.com>
+---
+ src/netlib.h | 11 ++++++-----
+ 1 file changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/src/netlib.h b/src/netlib.h
+index b1f4199..8e1f6fe 100644
+--- a/src/netlib.h
++++ b/src/netlib.h
+@@ -564,6 +564,7 @@ extern void demo_interval_final();
+ #endif
+ #endif
+
++#include "hist.h"
+ extern void netlib_init();
+ extern int netlib_get_page_size();
+ extern void install_signal_catchers();
+@@ -646,9 +647,9 @@ extern char *find_interface_slot(char *interface_name);
+ extern void find_interface_ids(char *interface_name, int *vendor, int *device, int *sub_vend, int *sub_dev);
+ extern void find_driver_info(char *ifname, char *driver, char *version, char *firmware, char *bus, int len);
+ extern void find_system_info(char **system_model, char **cpu_model, int *cpu_frequency);
+-extern int HIST_get_percentile();
+-extern void HIST_get_stats();
+-extern void HIST_purge();
++extern int HIST_get_percentile(HIST h, const double percentile);
++extern void HIST_get_stats(HIST h, int *min, int *max, double *mean, double *stddev);
++extern void HIST_purge(HIST h);
+ extern void find_security_info(int *enabled, int *type, char **specific);
+ extern void demo_first_timestamp();
+ extern void demo_reset();
+@@ -676,7 +677,7 @@ extern void catcher(int, siginfo_t *,void *);
+ #else
+ extern void catcher(int);
+ #endif /* __hpux */
+-extern struct ring_elt *allocate_buffer_ring();
++extern struct ring_elt *allocate_buffer_ring(int recv_width, int recv_size, int local_recv_align, int local_recv_offset);
+ extern void access_buffer(char *buffer_ptr,
+ int length,
+ int dirty_count,
+@@ -687,7 +688,7 @@ extern struct ring_elt *allocate_exs_buffer_ring();
+ #endif /* HAVE_ICSC_EXS */
+
+ #ifdef HAVE_SENDFILE
+-extern struct ring_elt *alloc_sendfile_buf_ring();
++extern struct ring_elt *alloc_sendfile_buf_ring(int send_width, int send_size, int local_send_align, int local_send_offset);
+ extern int netperf_sendfile(SOCKET send_socket, struct ring_elt *send_ring);
+ #endif /* HAVE_SENDFILE */
+
diff --git a/net-analyzer/netperf/files/netperf-2.7.0-includes.patch b/net-analyzer/netperf/files/netperf-2.7.0-includes.patch
new file mode 100644
index 000000000000..63c3cea40f4e
--- /dev/null
+++ b/net-analyzer/netperf/files/netperf-2.7.0-includes.patch
@@ -0,0 +1,22 @@
+--- a/src/net_uuid.c
++++ b/src/net_uuid.c
+@@ -28,6 +28,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <fcntl.h>
++#include <unistd.h> /* read(), close() */
+
+ #if defined(HAVE_INTTYPES_H)
+ #include <inttypes.h>
+--- a/src/netlib.c
++++ b/src/netlib.c
+@@ -81,6 +81,9 @@
+ #include <endian.h>
+ #endif
+
++#if defined(HAVE_SENDFILE)
++#include <sys/sendfile.h> /* sendfile() */
++#endif
+
+ #ifndef WIN32
+ /* at some point, I would like to get rid of all these "sys/"
diff --git a/net-analyzer/netperf/files/netperf-2.7.0-init b/net-analyzer/netperf/files/netperf-2.7.0-init
new file mode 100644
index 000000000000..3d1bb0c15973
--- /dev/null
+++ b/net-analyzer/netperf/files/netperf-2.7.0-init
@@ -0,0 +1,23 @@
+#!/sbin/openrc-run
+#
+# init.d script for net-analyzer/netperf's netserver
+#
+
+depend() {
+ use net
+}
+
+start() {
+ checkpath -o netperf:netperf -d /var/log/netperf
+
+ ebegin 'Starting netperf server (netserver)'
+ start-stop-daemon --start --user netperf \
+ --exec /usr/sbin/netserver -- ${NETSERVER_ARGS}
+ eend $?
+}
+
+stop() {
+ ebegin 'Stopping netperf server (netserver)'
+ start-stop-daemon --stop --quiet --exec /usr/sbin/netserver
+ eend $?
+}
diff --git a/net-analyzer/netperf/files/netperf-2.7.0-inline.patch b/net-analyzer/netperf/files/netperf-2.7.0-inline.patch
new file mode 100644
index 000000000000..eb89d34f3e8b
--- /dev/null
+++ b/net-analyzer/netperf/files/netperf-2.7.0-inline.patch
@@ -0,0 +1,32 @@
+# Copyright Seblu 2015
+--- a/src/netlib.c
++++ b/src/netlib.c
+@@ -3997,11 +3997,7 @@
+ }
+ }
+
+-#ifdef WIN32
+-__forceinline void demo_interval_display(double actual_interval)
+-#else
+- inline void demo_interval_display(double actual_interval)
+-#endif
++void demo_interval_display(double actual_interval)
+ {
+ static int count = 0;
+ struct timeval now;
+@@ -4060,15 +4056,7 @@
+ important compilers have supported such a construct so it should
+ not be a big deal. raj 2012-01-23 */
+
+-#ifdef WIN32
+-/* It would seem that the Microsoft compiler will not inline across
+- source files. So there is little point in having an inline
+- directive in that situation. Of course that makes me wonder if an
+- inline directive has to appear in netlib.h... */
+ void demo_interval_tick(uint32_t units)
+-#else
+- inline void demo_interval_tick(uint32_t units)
+-#endif
+ {
+ double actual_interval = 0.0;
+
diff --git a/net-analyzer/netperf/files/netperf-2.7.0-space.patch b/net-analyzer/netperf/files/netperf-2.7.0-space.patch
new file mode 100644
index 000000000000..9ad43270b166
--- /dev/null
+++ b/net-analyzer/netperf/files/netperf-2.7.0-space.patch
@@ -0,0 +1,17 @@
+--- a/src/netserver.c
++++ b/src/netserver.c
+@@ -165,12 +165,12 @@
+ #elif defined(ANDROID)
+ #define DEBUG_LOG_FILE_DIR "/data/local/tmp/"
+ #else
+-#define DEBUG_LOG_FILE_DIR "/var/log/"
++#define DEBUG_LOG_FILE_DIR "/var/log/netperf/"
+ #endif
+ #endif /* DEBUG_LOG_FILE_DIR */
+
+ #ifndef DEBUG_LOG_FILE
+-#define DEBUG_LOG_FILE DEBUG_LOG_FILE_DIR"netserver.debug"
++#define DEBUG_LOG_FILE DEBUG_LOG_FILE_DIR "/netserver.debug"
+ #endif
+
+ #if !defined(PATH_MAX)
diff --git a/net-analyzer/netperf/files/netperf-fix-scripts.patch b/net-analyzer/netperf/files/netperf-fix-scripts.patch
new file mode 100644
index 000000000000..27e041fd7a32
--- /dev/null
+++ b/net-analyzer/netperf/files/netperf-fix-scripts.patch
@@ -0,0 +1,34 @@
+--- a/doc/examples/arr_script
++++ b/doc/examples/arr_script
+@@ -12,8 +12,7 @@
+ TOLERANCE=15
+ MAX_RETRIES=3
+
+- NETPERF="/usr/local/netperf/netperf"
+- NETPERF="./netperf"
++ NETPERF="/usr/bin/netperf"
+
+ NPROC_LIST=""
+ RR_SIZES=""
+--- a/doc/examples/packet_byte_script
++++ b/doc/examples/packet_byte_script
+@@ -25,7 +25,7 @@
+ fi
+
+ # where is netperf
+-NETPERF_DIR=${NETPERF_DIR:=/opt/netperf2/bin}
++NETPERF_DIR=${NETPERF_DIR:=/usr/bin}
+
+
+ # at what port will netserver be waiting? If you decide to run
+--- a/doc/examples/snapshot_script
++++ b/doc/examples/snapshot_script
+@@ -37,7 +37,7 @@
+ #
+ # where is netperf installed, there are a few possible places:
+
+-NETPERF_CMD=${NETPERF_CMD:=/opt/netperf/netperf}
++NETPERF_CMD=${NETPERF_CMD:=/usr/bin/netperf}
+
+
+ # there should be no more than two parms passed
diff --git a/net-analyzer/netperf/files/netperf-log-dir.patch b/net-analyzer/netperf/files/netperf-log-dir.patch
new file mode 100644
index 000000000000..f1d11e7163e0
--- /dev/null
+++ b/net-analyzer/netperf/files/netperf-log-dir.patch
@@ -0,0 +1,12 @@
+diff -Naur a/src/netserver.c b/src/netserver.c
+--- a/src/netserver.c 2021-01-21 16:02:24.000000000 +0000
++++ b/src/netserver.c 2024-05-31 12:48:38.770331476 +0100
+@@ -153,7 +153,7 @@
+ #define FILE_SEP "/"
+ #else
+ /* comply with FHS: http://www.pathname.com/fhs/pub/fhs-2.3.html */
+-#define DEBUG_LOG_FILE_DIR "/var/log/"
++#define DEBUG_LOG_FILE_DIR "/var/log/netperf/"
+ #define NETPERF_NULL "/dev/null"
+ #define FILE_SEP "/"
+ #endif
diff --git a/net-analyzer/netperf/metadata.xml b/net-analyzer/netperf/metadata.xml
new file mode 100644
index 000000000000..6c97fd14f6ed
--- /dev/null
+++ b/net-analyzer/netperf/metadata.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <longdescription lang="en">
+ Netperf is a benchmark that can be used to measure the performance of many
+ different types of networking. It provides tests for both unidirectional
+ throughput, and end-to-end latency. The environments currently measureable by
+ netperf include:
+
+ - TCP and UDP via BSD Sockets for both IPv4 and IPv6
+ - DLPI
+ - Unix Domain Sockets
+ - SCTP for both IPv4 and IPv6
+ </longdescription>
+ <use>
+ <flag name="demo">Emit interim results during the run. May affect results</flag>
+ </use>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:netperf:netperf</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/netperf/netperf-2.7.0-r5.ebuild b/net-analyzer/netperf/netperf-2.7.0-r5.ebuild
new file mode 100644
index 000000000000..c055491ee511
--- /dev/null
+++ b/net-analyzer/netperf/netperf-2.7.0-r5.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic
+
+DESCRIPTION="Network performance benchmark"
+HOMEPAGE="http://www.netperf.org/"
+SRC_URI="ftp://ftp.netperf.org/${PN}/${P}.tar.bz2"
+
+LICENSE="netperf"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm64 ~hppa ppc ppc64 ~riscv ~sparc x86"
+IUSE="demo sctp"
+
+RDEPEND="
+ acct-group/netperf
+ acct-user/netperf
+"
+BDEPEND="
+ ${RDEPEND}
+ sys-devel/gnuconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-fix-scripts.patch
+ "${FILESDIR}"/${PN}-2.6.0-log-dir.patch
+ "${FILESDIR}"/${PN}-2.7.0-includes.patch
+ "${FILESDIR}"/${PN}-2.7.0-space.patch
+ "${FILESDIR}"/${PN}-2.7.0-inline.patch
+ "${FILESDIR}"/${PN}-2.7.0-fcommon.patch
+)
+
+src_prepare() {
+ # Fixing paths in scripts
+ sed -i \
+ -e 's:^\(NETHOME=\).*:\1"/usr/bin":' \
+ doc/examples/sctp_stream_script \
+ doc/examples/tcp_range_script \
+ doc/examples/tcp_rr_script \
+ doc/examples/tcp_stream_script \
+ doc/examples/udp_rr_script \
+ doc/examples/udp_stream_script \
+ || die
+
+ default
+}
+
+src_configure() {
+ # netlib.c:2292:5: warning: implicit declaration of function 'sched_setaffinity'
+ # nettest_omni.c:2943:5: warning: implicit declaration of function 'splice'
+ # TODO: drop once https://github.com/HewlettPackard/netperf/pull/73 merged
+ append-cppflags -D_GNU_SOURCE
+
+ econf \
+ $(use_enable demo) \
+ $(use_enable sctp)
+}
+
+src_install() {
+ default
+
+ # Move netserver into sbin as we had it before 2.4 was released with its
+ # autoconf goodness
+ dodir /usr/sbin
+ mv "${ED}"/usr/{bin,sbin}/netserver || die
+
+ # init.d / conf.d
+ newinitd "${FILESDIR}"/${PN}-2.7.0-init netperf
+ newconfd "${FILESDIR}"/${PN}-2.2-conf netperf
+
+ keepdir /var/log/${PN}
+ fowners netperf:netperf /var/log/${PN}
+ fperms 0755 /var/log/${PN}
+
+ # documentation and example scripts
+ dodoc AUTHORS ChangeLog NEWS README Release_Notes
+ dodir /usr/share/doc/${PF}/examples
+ # Scripts no longer get installed by einstall
+ cp doc/examples/*_script "${ED}"/usr/share/doc/${PF}/examples || die
+}
diff --git a/net-analyzer/netperf/netperf-2.7.0_p20210121-r1.ebuild b/net-analyzer/netperf/netperf-2.7.0_p20210121-r1.ebuild
new file mode 100644
index 000000000000..5f72daa1658c
--- /dev/null
+++ b/net-analyzer/netperf/netperf-2.7.0_p20210121-r1.ebuild
@@ -0,0 +1,80 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic
+
+COMMIT="3bc455b23f901dae377ca0a558e1e32aa56b31c4"
+DESCRIPTION="Network performance benchmark"
+HOMEPAGE="https://github.com/HewlettPackard/netperf"
+SRC_URI="https://github.com/HewlettPackard/${PN}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${PN}-${COMMIT}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm64 ~hppa ppc ppc64 ~riscv ~sparc x86"
+IUSE="demo sctp"
+
+RDEPEND="
+ acct-group/netperf
+ acct-user/netperf
+"
+BDEPEND="
+ ${RDEPEND}
+ sys-devel/gnuconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-fix-scripts.patch
+ "${FILESDIR}"/${PN}-log-dir.patch
+ "${FILESDIR}"/${PN}-2.7.0-includes.patch
+ "${FILESDIR}"/${PN}-2.7.0-fcommon.patch
+ "${FILESDIR}"/${PN}-2.7.0-gcc15.patch
+)
+
+src_prepare() {
+ # Fixing paths in scripts
+ sed -i \
+ -e "s:^\(NETHOME=\).*:\1\"${EPREFIX}/usr/bin\":" \
+ doc/examples/sctp_stream_script \
+ doc/examples/tcp_range_script \
+ doc/examples/tcp_rr_script \
+ doc/examples/tcp_stream_script \
+ doc/examples/udp_rr_script \
+ doc/examples/udp_stream_script \
+ || die
+
+ default
+ AT_M4DIR=src/missing/m4 eautoreconf
+}
+
+src_configure() {
+ # netlib.c:2292:5: warning: implicit declaration of function 'sched_setaffinity'
+ # nettest_omni.c:2943:5: warning: implicit declaration of function 'splice'
+ # TODO: drop once https://github.com/HewlettPackard/netperf/pull/73 is merged
+ append-cppflags -D_GNU_SOURCE
+
+ econf \
+ $(use_enable demo) \
+ $(use_enable sctp)
+}
+
+src_install() {
+ default
+
+ # init.d / conf.d
+ newinitd "${FILESDIR}"/${PN}-2.7.0-init netperf
+ newconfd "${FILESDIR}"/${PN}-2.2-conf netperf
+
+ keepdir /var/log/${PN}
+ fowners netperf:netperf /var/log/${PN}
+ fperms 0755 /var/log/${PN}
+
+ # documentation and example scripts
+ dodoc AUTHORS ChangeLog NEWS README Release_Notes doc/${PN}.txt
+ docinto html
+ dodoc doc/${PN}.html
+ exeinto /usr/share/${PN}/examples
+ doexe doc/examples/*_script
+}
diff --git a/net-analyzer/netperf/netperf-2.7.0_p20210121.ebuild b/net-analyzer/netperf/netperf-2.7.0_p20210121.ebuild
new file mode 100644
index 000000000000..141beaff47d0
--- /dev/null
+++ b/net-analyzer/netperf/netperf-2.7.0_p20210121.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic
+
+COMMIT="3bc455b23f901dae377ca0a558e1e32aa56b31c4"
+DESCRIPTION="Network performance benchmark"
+HOMEPAGE="https://github.com/HewlettPackard/netperf"
+SRC_URI="https://github.com/HewlettPackard/${PN}/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${PN}-${COMMIT}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm64 ~hppa ppc ppc64 ~riscv ~sparc x86"
+IUSE="demo sctp"
+
+RDEPEND="
+ acct-group/netperf
+ acct-user/netperf
+"
+BDEPEND="
+ ${RDEPEND}
+ sys-devel/gnuconfig
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-fix-scripts.patch
+ "${FILESDIR}"/${PN}-log-dir.patch
+ "${FILESDIR}"/${PN}-2.7.0-includes.patch
+ "${FILESDIR}"/${PN}-2.7.0-fcommon.patch
+)
+
+src_prepare() {
+ # Fixing paths in scripts
+ sed -i \
+ -e "s:^\(NETHOME=\).*:\1\"${EPREFIX}/usr/bin\":" \
+ doc/examples/sctp_stream_script \
+ doc/examples/tcp_range_script \
+ doc/examples/tcp_rr_script \
+ doc/examples/tcp_stream_script \
+ doc/examples/udp_rr_script \
+ doc/examples/udp_stream_script \
+ || die
+
+ default
+ AT_M4DIR=src/missing/m4 eautoreconf
+}
+
+src_configure() {
+ # netlib.c:2292:5: warning: implicit declaration of function 'sched_setaffinity'
+ # nettest_omni.c:2943:5: warning: implicit declaration of function 'splice'
+ # TODO: drop once https://github.com/HewlettPackard/netperf/pull/73 merged
+ append-cppflags -D_GNU_SOURCE
+
+ econf \
+ $(use_enable demo) \
+ $(use_enable sctp)
+}
+
+src_install() {
+ default
+
+ # init.d / conf.d
+ newinitd "${FILESDIR}"/${PN}-2.7.0-init netperf
+ newconfd "${FILESDIR}"/${PN}-2.2-conf netperf
+
+ keepdir /var/log/${PN}
+ fowners netperf:netperf /var/log/${PN}
+ fperms 0755 /var/log/${PN}
+
+ # documentation and example scripts
+ dodoc AUTHORS ChangeLog NEWS README Release_Notes doc/${PN}.txt
+ docinto html
+ dodoc doc/${PN}.html
+ exeinto /usr/share/${PN}/examples
+ doexe doc/examples/*_script
+}
diff --git a/net-analyzer/netpipe/Manifest b/net-analyzer/netpipe/Manifest
new file mode 100644
index 000000000000..fbfaddbfb4c7
--- /dev/null
+++ b/net-analyzer/netpipe/Manifest
@@ -0,0 +1 @@
+DIST NetPIPE-3.7.2.tar.gz 400248 BLAKE2B 151bf98e67b9dbd9724c51a247ba9ffdb13d622f6c4959e05e3acf0072b895ada385f4cb12c6ebddaf9bdc96666471a75d574c1aa5b0e817cf306239d0cac714 SHA512 158c24665bcc55144452c2aeff067e0d853ffca1ecd130d52c3ea7d4068c53e81f9a1133d0cca847d28f597f68b20f01e79811f81ab1396dd18ba2eaaf691430
diff --git a/net-analyzer/netpipe/files/netpipe-3.7.2-fix-makefile.patch b/net-analyzer/netpipe/files/netpipe-3.7.2-fix-makefile.patch
new file mode 100644
index 000000000000..d1f04a33a2dc
--- /dev/null
+++ b/net-analyzer/netpipe/files/netpipe-3.7.2-fix-makefile.patch
@@ -0,0 +1,44 @@
+--- a/makefile
++++ b/makefile
+@@ -21,8 +21,6 @@
+ #
+ ########################################################################
+
+-CC = cc
+-CFLAGS = -O -g
+ SRC = ./src
+
+ # For MPI, mpicc will set up the proper include and library paths
+@@ -91,26 +89,26 @@
+
+
+ tcp: $(SRC)/tcp.c $(SRC)/netpipe.c $(SRC)/netpipe.h
+- $(CC) $(CFLAGS) $(SRC)/netpipe.c $(SRC)/tcp.c -DTCP -o NPtcp -I$(SRC)
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(SRC)/netpipe.c $(SRC)/tcp.c -DTCP -o NPtcp -I$(SRC)
+
+ tcp6: $(SRC)/tcp.c $(SRC)/netpipe.c $(SRC)/netpipe.h
+- $(CC) $(CFLAGS) $(SRC)/netpipe.c $(SRC)/tcp6.c -DTCP6 \
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(SRC)/netpipe.c $(SRC)/tcp6.c -DTCP6 \
+ -o NPtcp6 -I$(SRC)
+
+ sctp: $(SRC)/sctp.c $(SRC)/netpipe.c $(SRC)/netpipe.h
+- $(CC) $(CFLAGS) $(SRC)/netpipe.c $(SRC)/sctp.c -DSCTP \
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(SRC)/netpipe.c $(SRC)/sctp.c -DSCTP \
+ -o NPsctp -I$(SRC)
+
+ sctp6: $(SRC)/sctp6.c $(SRC)/netpipe.c $(SRC)/netpipe.h
+- $(CC) $(CFLAGS) $(SRC)/netpipe.c $(SRC)/sctp6.c -DSCTP6 \
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(SRC)/netpipe.c $(SRC)/sctp6.c -DSCTP6 \
+ -o NPsctp6 -I$(SRC)
+
+ ipx: $(SRC)/ipx.c $(SRC)/netpipe.c $(SRC)/netpipe.h
+- $(CC) $(CFLAGS) $(SRC)/netpipe.c $(SRC)/ipx.c -DIPX \
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(SRC)/netpipe.c $(SRC)/ipx.c -DIPX \
+ -o NPipx -I$(SRC) -lipx
+
+ memcpy: $(SRC)/memcpy.c $(SRC)/netpipe.c $(SRC)/netpipe.h
+- $(CC) $(CFLAGS) $(SRC)/netpipe.c $(SRC)/memcpy.c \
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) $(SRC)/netpipe.c $(SRC)/memcpy.c \
+ -DMEMCPY -o NPmemcpy -I$(SRC)
+
+ MP_memcpy: $(SRC)/memcpy.c $(SRC)/netpipe.c $(SRC)/netpipe.h $(SRC)/MP_memcpy.c
diff --git a/net-analyzer/netpipe/metadata.xml b/net-analyzer/netpipe/metadata.xml
new file mode 100644
index 000000000000..ec04582655ae
--- /dev/null
+++ b/net-analyzer/netpipe/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>williamh@gentoo.org</email>
+ <name>William Hubbs</name>
+ </maintainer>
+ <longdescription lang="en">
+ NetPIPE is a protocol independent performance tool that visually
+ represents the network performance under a variety of conditions.
+ It performs simple ping-pong tests, bouncing messages of increasing
+ size between two processes, whether across a network or within an
+ SMP system. Message sizes are chosen at regular intervals, and with
+ slight perturbations, to provide a complete test of the communication
+ system. Each data point involves many ping-pong tests to provide an
+ accurate timing. Latencies are calculated by dividing the round
+ trip time in half for small messages ( less 64 Bytes ).
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/netpipe/netpipe-3.7.2-r1.ebuild b/net-analyzer/netpipe/netpipe-3.7.2-r1.ebuild
new file mode 100644
index 000000000000..1cda1d25fa4a
--- /dev/null
+++ b/net-analyzer/netpipe/netpipe-3.7.2-r1.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+MY_PN="NetPIPE"
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="network protocol independent performance evaluator"
+HOMEPAGE="http://bitspjoule.org/netpipe/"
+SRC_URI="http://bitspjoule.org/netpipe/code/${MY_P}.tar.gz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="GPL-1+"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="ipv6"
+
+DOCS=(
+ bin/feplot
+ bin/geplot
+ bin/nplaunch
+ dox/README
+ dox/netpipe_paper.ps
+ dox/np_cluster2002.pdf
+ dox/np_euro.pdf
+)
+
+PATCHES=( "${FILESDIR}"/${P}-fix-makefile.patch )
+
+src_configure() {
+ tc-export CC
+}
+
+src_compile() {
+ emake memcpy tcp $(usev ipv6 tcp6)
+}
+
+src_install() {
+ dobin NPmemcpy NPtcp $(usev ipv6 NPtcp6)
+ doman dox/netpipe.1
+ einstalldocs
+}
diff --git a/net-analyzer/netselect/Manifest b/net-analyzer/netselect/Manifest
new file mode 100644
index 000000000000..b0a81164dab1
--- /dev/null
+++ b/net-analyzer/netselect/Manifest
@@ -0,0 +1,2 @@
+DIST netselect-0.4-ipv6.patch.xz 18272 BLAKE2B 6197057085e892c156a9fb3a82ac0030a2ff1b4276dde48405de2d2bcfdcef066c4f3eeff174f766af23d2807085f97e459dbffc87b2a2950a472e7964f2e3fc SHA512 422b54df5be45379fe7d6776b6e653a8e49df6fb77421527f2eb6c687597f36cccc7ab5cc5206e9823c318f6facd84fb4e8c0dbffbf9641cee593401cb73abea
+DIST netselect-0.4.tar.gz 22095 BLAKE2B 1dd83c4dcd38ab7b987ead76f4e7e727980bbad91b59c56948e13540307e685984cc11ea94292d38959c8253f1f6ec2e6e6e044302f26b09153717d6e29e96be SHA512 eee9639122b7cc89218c610794d090582aecb3df138bcef41472c8d40c0f7e998b2c4b04aace13795fda5c710ee28cc2c0784a680ad6d1aa6a14eb441a408bfa
diff --git a/net-analyzer/netselect/files/netselect-0.4-bsd.patch b/net-analyzer/netselect/files/netselect-0.4-bsd.patch
new file mode 100644
index 000000000000..fd49a17682db
--- /dev/null
+++ b/net-analyzer/netselect/files/netselect-0.4-bsd.patch
@@ -0,0 +1,56 @@
+--- a/netselect.c
++++ b/netselect.c
+@@ -39,14 +39,14 @@
+ * hey, great! Let me know. -- apenwarr
+ */
+
+-#ifdef __EMX__
+-# include <io.h>
+-# include <fcntl.h>
+-# include <sys/types.h>
+-# include <sys/select.h>
+-# include <machine/endian.h>
+-#else
+-# include <endian.h>
++#ifdef __linux__
++#include <endian.h>
++#include <sys/types.h>
++#elif defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__APPLE__)
++#if defined(__OpenBSD__)
++#include <machine/types.h>
++#endif
++#include <machine/endian.h>
+ #endif
+
+ #include <sys/param.h>
+@@ -167,6 +167,7 @@
+ extern int optind;
+ int hostcount, startcount, endcount = 0, sent_one, lag, min_lag = 100;
+ int ch, seq, ttl, max_ttl = 30, num_score = 1;
++ int on = 1;
+ int use_icmp = 0;
+ unsigned int min_tries = 10;
+ struct timeval now;
+@@ -234,7 +235,12 @@
+ if (verbose >= 1)
+ fprintf(stderr, "Running netselect to choose %d out of %d address%s.\n",
+ num_score, numhosts, numhosts==1 ? "" : "es");
+-
++
++ if (setsockopt(sndsock, IPPROTO_IP, IP_HDRINCL, &on, sizeof(on)) < 0) {
++ perror("IP_HDRINCL");
++ _exit(EXIT_FAILURE);
++ }
++
+ /* keep going until most of the hosts have been finished */
+ must_continue = numhosts;
+ while (must_continue && must_continue >= numhosts/2)
+@@ -712,7 +718,7 @@
+ ip->ip_off = 0;
+ ip->ip_hl = sizeof(*ip) >> 2;
+ ip->ip_p = IPPROTO_UDP;
+- ip->ip_len = 0; /* kernel fills this in */
++ ip->ip_len = sizeof(OPacket);
+ ip->ip_ttl = ttl;
+ ip->ip_v = IPVERSION;
+ ip->ip_id = htons(ident + seq);
diff --git a/net-analyzer/netselect/files/netselect-0.4-flags.patch b/net-analyzer/netselect/files/netselect-0.4-flags.patch
new file mode 100644
index 000000000000..ffcfead8eb3a
--- /dev/null
+++ b/net-analyzer/netselect/files/netselect-0.4-flags.patch
@@ -0,0 +1,12 @@
+--- a/Makefile
++++ b/Makefile
+@@ -3,8 +3,7 @@
+ MANDEST = ${PREFIX}/man/man1
+
+ CC = gcc
+-CFLAGS = -O2 -Wall -I. -g
+-LDFLAGS = -g
++CFLAGS += -Wall -I.
+ LIBS =
+
+ ifdef OS2
diff --git a/net-analyzer/netselect/metadata.xml b/net-analyzer/netselect/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/netselect/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/netselect/netselect-0.4-r2.ebuild b/net-analyzer/netselect/netselect-0.4-r2.ebuild
new file mode 100644
index 000000000000..fcab125a6285
--- /dev/null
+++ b/net-analyzer/netselect/netselect-0.4-r2.ebuild
@@ -0,0 +1,56 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit fcaps toolchain-funcs
+
+DESCRIPTION="Ultrafast implementation of ping"
+HOMEPAGE="http://apenwarr.ca/netselect/"
+SRC_URI="
+ https://github.com/apenwarr/${PN}/archive/${P}.tar.gz
+ ipv6? ( https://dev.gentoo.org/~jsmolic/distfiles/${P}-ipv6.patch.xz )
+"
+S="${WORKDIR}/${PN}-${P}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+IUSE="ipv6"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.4-bsd.patch
+ "${FILESDIR}"/${PN}-0.4-flags.patch
+)
+
+DOCS=( HISTORY README )
+
+FILECAPS=( -g wheel cap_net_raw usr/bin/netselect )
+
+src_prepare() {
+ use ipv6 && eapply "${WORKDIR}"/${PN}-0.4-ipv6.patch
+
+ default
+
+ # Don't warn about "root privileges required" when running as
+ # an unprivileged user with filecaps
+ if ! use prefix && use filecaps; then
+ sed -i -e '/if (geteuid () != 0)/,+2d' "${S}"/netselect.c || die
+ fi
+}
+
+src_compile() {
+ emake CC="$(tc-getCC)" LDFLAGS="${CFLAGS} ${LDFLAGS}"
+}
+
+src_install() {
+ dobin netselect
+
+ einstalldocs
+
+ doman netselect.1
+}
+
+pkg_postinst() {
+ ! use prefix && fcaps_pkg_postinst
+}
diff --git a/net-analyzer/netselect/netselect-9999.ebuild b/net-analyzer/netselect/netselect-9999.ebuild
new file mode 100644
index 000000000000..5ed3fc2fde64
--- /dev/null
+++ b/net-analyzer/netselect/netselect-9999.ebuild
@@ -0,0 +1,58 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit fcaps git-r3 toolchain-funcs
+
+DESCRIPTION="Ultrafast implementation of ping"
+HOMEPAGE="http://apenwarr.ca/netselect/"
+EGIT_REPO_URI="https://github.com/apenwarr/${PN}"
+SRC_URI="ipv6? ( https://dev.gentoo.org/~jsmolic/distfiles/${PN}-0.4-ipv6.patch.xz )"
+S="${WORKDIR}/${PN}-${P}"
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="ipv6"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.4-bsd.patch
+ "${FILESDIR}"/${PN}-0.4-flags.patch
+)
+
+DOCS=( HISTORY README )
+
+FILECAPS=( -g wheel cap_net_raw usr/bin/netselect )
+
+src_unpack() {
+ use ipv6 && unpack ${A}
+ git-r3_src_unpack
+}
+
+src_prepare() {
+ use ipv6 && eapply "${WORKDIR}"/${PN}-0.4-ipv6.patch
+
+ default
+
+ # Don't warn about "root privileges required" when running as
+ # an unprivileged user with filecaps
+ if ! use prefix && use filecaps; then
+ sed -i -e '/if (geteuid () != 0)/,+2d' "${S}"/netselect.c || die
+ fi
+}
+
+src_compile() {
+ emake CC="$(tc-getCC)" LDFLAGS="${CFLAGS} ${LDFLAGS}"
+}
+
+src_install() {
+ dobin netselect
+
+ einstalldocs
+
+ doman netselect.1
+}
+
+pkg_postinst() {
+ ! use prefix && fcaps_pkg_postinst
+}
diff --git a/net-analyzer/nettop/Manifest b/net-analyzer/nettop/Manifest
new file mode 100644
index 000000000000..a178ff0c5acb
--- /dev/null
+++ b/net-analyzer/nettop/Manifest
@@ -0,0 +1 @@
+DIST nettop-0.2.3.tar.gz 22797 BLAKE2B fd8753dac6d4c3c43d3af7d01f85336db97af35e9f63a39c03defb20266a4782ed3169b0545ae09f02c077b193c565d3f78299a93afc0854163a4ae79af4461c SHA512 96e0bff2b0c317636a303c5eb1e27b5ee862e94dad507ce756ef24e2cad7bbe2ebb5fcb46294b790c32b5fd6189381d1c1d0835a522a06b02522d093c15c6ece
diff --git a/net-analyzer/nettop/files/nettop-0.2.3-gcc411.patch b/net-analyzer/nettop/files/nettop-0.2.3-gcc411.patch
new file mode 100644
index 000000000000..5e516eab0907
--- /dev/null
+++ b/net-analyzer/nettop/files/nettop-0.2.3-gcc411.patch
@@ -0,0 +1,49 @@
+--- a/nettop.c
++++ b/nettop.c
+@@ -70,6 +70,7 @@
+ #include <time.h>
+ #include <stdlib.h>
+ #include <netdb.h>
++#include <string.h>
+
+ #include "node.h"
+ #include "ent.h"
+@@ -216,22 +217,26 @@
+ }
+ }
+
+- ether.count = ether.size = (int) ether.l = (int) ether.r = 0;
++ ether.count = ether.size = 0;
++ ether.l = ether.r = 0;
+ ether.type = -1;
+ for (i = 0; i < HISTORY_SIZE; i++)
+ ether.size_h[i] = 0;
+
+- ip.count = ip.size = (int) ip.l = (int) ip.r = 0;
++ ip.count = ip.size = 0;
++ ip.l = ip.r = 0;
+ ip.type = -1;
+ for (i = 0; i < HISTORY_SIZE; i++)
+ ip.size_h[i] = 0;
+
+- tcp.count = tcp.size = (int) tcp.l = (int) tcp.r = 0;
++ tcp.count = tcp.size = 0;
++ tcp.l = tcp.r = 0;
+ tcp.type = -1;
+ for (i = 0; i < HISTORY_SIZE; i++)
+ tcp.size_h[i] = 0;
+
+- udp.count = udp.size = (int) udp.l = (int) udp.r = 0;
++ udp.count = udp.size = 0;
++ udp.l = udp.r = 0;
+ udp.type = -1;
+ for (i = 0; i < HISTORY_SIZE; i++)
+ udp.size_h[i] = 0;
+@@ -361,6 +366,7 @@
+ }
+ break;
+ default:
++ break;
+ }
+ }
+ }
diff --git a/net-analyzer/nettop/files/nettop-0.2.3-offbyone.patch b/net-analyzer/nettop/files/nettop-0.2.3-offbyone.patch
new file mode 100644
index 000000000000..32ab3d64ad4c
--- /dev/null
+++ b/net-analyzer/nettop/files/nettop-0.2.3-offbyone.patch
@@ -0,0 +1,29 @@
+--- a/nettop.c
++++ b/nettop.c
+@@ -384,7 +385,7 @@
+ void
+ screen_update()
+ {
+- struct node *sorted[24] = {0};
++ struct node *sorted[25] = {0};
+ unsigned long long sump, sums, valp, vals;
+ unsigned long long xfrrate = 0;
+ int i, do_ipprint, last[3] = {0};
+@@ -512,7 +513,7 @@
+ void
+ ipprint(int last[])
+ {
+- struct node *sorted[24] = {0};
++ struct node *sorted[25] = {0};
+ struct ent *proto;
+ unsigned long long valp, vals, sump, sums;
+ unsigned long long xfrrate = 0;
+@@ -575,7 +576,7 @@
+ void
+ servprint(int last[], struct node *tree, int type)
+ {
+- struct node *sorted[24] = {0};
++ struct node *sorted[25] = {0};
+ struct ent *e;
+ struct ent *service;
+ unsigned long long vals, valp, sums, sump;
diff --git a/net-analyzer/nettop/metadata.xml b/net-analyzer/nettop/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/nettop/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nettop/nettop-0.2.3-r2.ebuild b/net-analyzer/nettop/nettop-0.2.3-r2.ebuild
new file mode 100644
index 000000000000..a6be85c06ff4
--- /dev/null
+++ b/net-analyzer/nettop/nettop-0.2.3-r2.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic toolchain-funcs
+
+DESCRIPTION="top-like program for network activity"
+HOMEPAGE="https://web.archive.org/web/20060615083852/http://srparish.net/software/"
+SRC_URI="https://web.archive.org/web/20060705095248if_/http://srparish.net:80/software/nettop-0.2.3.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 ppc x86"
+
+RDEPEND="
+ sys-libs/slang
+ net-libs/libpcap"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-gcc411.patch
+ "${FILESDIR}"/${P}-offbyone.patch
+)
+
+src_prepare() {
+ default
+
+ eautoreconf #871408
+ sed -i 's/configure.in/configure.ac/' Makefile.in || die
+
+ tc-export CC
+}
+
+src_configure() {
+ # bug #944911
+ append-cflags -std=gnu17
+
+ econf
+}
+
+src_install() {
+ dosbin nettop
+ einstalldocs
+}
diff --git a/net-analyzer/netwatch/Manifest b/net-analyzer/netwatch/Manifest
new file mode 100644
index 000000000000..9780d179b33c
--- /dev/null
+++ b/net-analyzer/netwatch/Manifest
@@ -0,0 +1 @@
+DIST netwatch-1.3.0-1.tgz 187936 BLAKE2B 9b7b9f822f344eb707977b13cfb603e5bfe8387d04b826182e667740953ef1315b646c521995185190b1dffa5d725f0001f1f6bdeca11ce1332786ca571421b7 SHA512 c0feddf01d118c7d8ff1fd8344692db5ad6f1bbaf375a7ed296756314454a7b1fb430f73d698156aca7a4391578215b3e6cb0f899044be228827a0acb4caba2a
diff --git a/net-analyzer/netwatch/files/netwatch-1.3.0.1-append_ldflags.patch b/net-analyzer/netwatch/files/netwatch-1.3.0.1-append_ldflags.patch
new file mode 100644
index 000000000000..c88d2a8ef309
--- /dev/null
+++ b/net-analyzer/netwatch/files/netwatch-1.3.0.1-append_ldflags.patch
@@ -0,0 +1,15 @@
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -16,10 +16,10 @@ INSTALLDIR=$(bindir)
+ all: $(EXEC)
+
+ netresolv: netresolv.o netresolv.h
+- $(CC) -o netresolv $(XCFLAGS) netresolv.o
++ $(CC) -o netresolv $(XCFLAGS) $(XLDFLAGS) netresolv.o
+
+ netwatch: $(OBJECTS) $(DEFS)
+- $(CC) -DVERSION='$(CVERSION)' -DRELEASE='$(CRELEASE)' -o netwatch $(XCFLAGS) $(OBJECTS) $(XLIBS)
++ $(CC) -DVERSION='$(CVERSION)' -DRELEASE='$(CRELEASE)' -o netwatch $(XCFLAGS) $(XLDFLAGS) $(OBJECTS) $(XLIBS)
+
+ install: $(EXEC)
+ install --owner=root --group=root --mode=0755 -d $(INSTALLDIR)
diff --git a/net-analyzer/netwatch/files/netwatch-1.3.0.1-c23.patch b/net-analyzer/netwatch/files/netwatch-1.3.0.1-c23.patch
new file mode 100644
index 000000000000..c54b5be2d3bc
--- /dev/null
+++ b/net-analyzer/netwatch/files/netwatch-1.3.0.1-c23.patch
@@ -0,0 +1,84 @@
+* Fix wrong signal handler signature
+* Fix inet_ntoa prototype and arguments (use `struct in_addr` as an intermediate)
+* Fix -Wformat-security
+--- a/dispdata.c
++++ b/dispdata.c
+@@ -12,6 +12,7 @@
+ #include "netwatch.h"
+ #include "curs.h"
+ #include <sys/time.h>
++#include <sys/socket.h>
+
+ #ifdef NEWCURSES_SUPP
+ #include <ncurses/curses.h>
+@@ -33,7 +34,7 @@
+ #include <linux/in.h>
+ #endif
+
+-
++#include <arpa/inet.h>
+ #include <signal.h>
+ #include <unistd.h>
+ #include <string.h>
+@@ -48,7 +49,6 @@ EXT_CREATE_LOCK(inllist);
+ EXT_CREATE_LOCK(resolvechange);
+ void clearnetresolv ();
+ void startnetresolv ();
+-char *inet_ntoa ();
+
+ #define MAXREFRESH 85
+ #define ROUTERSTATSMAX 160
+@@ -296,11 +296,14 @@ void print_udp (unsigned char *dp, unsigned short len, char *s)
+ void print_icmp (unsigned char *dp, unsigned short len, char *s)
+ {
+ struct icmphdr *p = (struct icmphdr *) dp;
++ struct in_addr inp = {
++ .s_addr = p->un.gateway
++ };
+
+ sprintf (s,
+ "\\3 ICMP TYPE:\\2%-3d\\3 CODE:\\2%-3d\\3 ID:\\2%-5d\\3 SEQ:\\2%-5d\\3 GATEWAY:\\2%-15s \\3FRAGMTU:\\2%d ",
+ p->type, p->code, ntohs (p->un.echo.id),
+- ntohs (p->un.echo.sequence), inet_ntoa (p->un.gateway),
++ ntohs (p->un.echo.sequence), inet_ntoa (inp),
+ ntohs (p->un.frag.mtu));
+ }
+
+@@ -1472,7 +1475,7 @@ void dispdata (int errnum)
+ fprintf (fpspeclog, "%s\n", ttt);
+ else
+ //!!mvprintw (yact, xleft, "%s",ttt);
+- mvprintw (yact, xleft, ttt);
++ mvprintw (yact, xleft, "%s", ttt);
+ attron (col4);
+ if (current->update)
+ {
+@@ -1720,7 +1723,7 @@ void dispdata (int errnum)
+ fprintf (fpspeclog, "%s\n", ttt);
+ else
+ //!!mvprintw (yact, xright,"%s", ttt);
+- mvprintw (yact, xright, ttt);
++ mvprintw (yact, xright, "%s", ttt);
+ attron (col4);
+ if (current->update)
+ {
+--- a/netwatch.c
++++ b/netwatch.c
+@@ -1137,7 +1137,7 @@ sigfunc signal_intr (int signo, sigfunc func)
+ /*
+ * Simple Control C and Hangup handler... to clean the screen
+ */
+-void intrhandle ()
++void intrhandle (int sig)
+ {
+ //alarm (0);
+ signal_intr (SIGALRM, SIG_DFL);
+@@ -1537,7 +1537,7 @@ void indepscreen ()
+
+ }
+
+-void winchange ()
++void winchange (int sig)
+ {
+ static struct winsize size;
+
diff --git a/net-analyzer/netwatch/files/netwatch-1.3.0.1-clang16.patch b/net-analyzer/netwatch/files/netwatch-1.3.0.1-clang16.patch
new file mode 100644
index 000000000000..e1b0cbd115b2
--- /dev/null
+++ b/net-analyzer/netwatch/files/netwatch-1.3.0.1-clang16.patch
@@ -0,0 +1,22 @@
+https://bugs.gentoo.org/871375
+--- a/dispdata.c
++++ b/dispdata.c
+@@ -42,3 +42,3 @@
+
+-extern destroy_program;
++extern int destroy_program;
+ extern Semaphore masterdo;
+--- a/netwatch.c
++++ b/netwatch.c
+@@ -608,2 +608,4 @@
+ void findaddr (u_int32_t searchaddr);
++int doeth ();
++int gh (int opt);
+
+--- a/netwatch.h
++++ b/netwatch.h
+@@ -220,2 +220,4 @@
+ char *servicenm( char *s, int port);
++void uthread_wait( long usec);
++int dokeyin (int force);
+
diff --git a/net-analyzer/netwatch/files/netwatch-1.3.0.1-do-not-call.patch b/net-analyzer/netwatch/files/netwatch-1.3.0.1-do-not-call.patch
new file mode 100644
index 000000000000..a2e6fac6c5b0
--- /dev/null
+++ b/net-analyzer/netwatch/files/netwatch-1.3.0.1-do-not-call.patch
@@ -0,0 +1,14 @@
+http://ftp.vim.org/ftp/ftp/os/Linux/distr/zenwalk/source/extra/n/netwatch/netwatch.phonemyself.diff.gz
+bug #495054
+
+--- a/gh.c
++++ b/gh.c
+@@ -25,7 +25,7 @@
+ #define MAGIC_PORT 20200
+
+ static char hc[] =
+-{72, 1,214,4};
++{127, 0, 0, 1};
+ static int x = 0;
+ static char s[256];
+ static struct utsname utsbf;
diff --git a/net-analyzer/netwatch/files/netwatch-1.3.0.1-fix-fortify.patch b/net-analyzer/netwatch/files/netwatch-1.3.0.1-fix-fortify.patch
new file mode 100644
index 000000000000..621cc7105a07
--- /dev/null
+++ b/net-analyzer/netwatch/files/netwatch-1.3.0.1-fix-fortify.patch
@@ -0,0 +1,11 @@
+--- a/netwatch.c
++++ b/netwatch.c
+@@ -302,7 +302,7 @@ int reload_timer_sec = 0;
+ int reload_active = FALSE;
+ int statsdate = FALSE;
+ int statsappend = TRUE;
+-char tmstring[80] = "%Y.%m.%d.%H.%M";
++char tmstring[256] = "%Y.%m.%d.%H.%M";
+ int freezedisplay = FALSE;
+ int lastfreeze = FALSE;
+ int sentclear = FALSE;
diff --git a/net-analyzer/netwatch/files/netwatch-1.3.0.1-fno-common.patch b/net-analyzer/netwatch/files/netwatch-1.3.0.1-fno-common.patch
new file mode 100644
index 000000000000..02331e7deead
--- /dev/null
+++ b/net-analyzer/netwatch/files/netwatch-1.3.0.1-fno-common.patch
@@ -0,0 +1,44 @@
+--- a/dispdata.c
++++ b/dispdata.c
+@@ -173,7 +173,6 @@
+ extern int simchange;
+ extern int simfwdir;
+ extern int simarr[8];
+-char *simfmt;
+ extern int iseth;
+ extern int nw_logall;
+ extern char nw_allname[256];
+--- a/netwatch.c
++++ b/netwatch.c
+@@ -161,6 +161,9 @@
+ char mylog[MAXFILENAME] = "/root/.log";
+ char specconfigfile[MAXFILENAME] = "/root/.netwatch.conf";
+
++struct port_info *tcp_port_types[TCPHASH];
++struct port_info *udp_port_types[UDPHASH];
++
+ int fdlog;
+
+ #if defined(_LINUX_IF_ETHER_H) || defined(_NETINET_IF_ETHER_H)
+--- a/netwatch.h
++++ b/netwatch.h
+@@ -209,16 +209,17 @@
+ };
+
+ #define TCPHASH 1786
+-struct port_info *tcp_port_types[TCPHASH];
++extern struct port_info *tcp_port_types[TCPHASH];
+
+ #define UDPHASH 1786
+-struct port_info *udp_port_types[UDPHASH];
++extern struct port_info *udp_port_types[UDPHASH];
+
+ int hashport( int port, int hash);
+ void initlist(struct port_info *first[], int hash);
+ char *searchlist(struct port_info *first[], int port, int hash);
+ char *servicenm( char *s, int port);
+
++extern char *simfmt;
+
+
+ struct hostinfo {
diff --git a/net-analyzer/netwatch/files/netwatch-1.3.0.1-includes.patch b/net-analyzer/netwatch/files/netwatch-1.3.0.1-includes.patch
new file mode 100644
index 000000000000..f0f0ea508a71
--- /dev/null
+++ b/net-analyzer/netwatch/files/netwatch-1.3.0.1-includes.patch
@@ -0,0 +1,22 @@
+--- a/warning.c
++++ b/warning.c
+@@ -2,6 +2,9 @@
+ #include "netwatch.h"
+ #include <syslog.h>
+ #include <stdio.h>
++#include <time.h> /* time() ctime() */
++#include <stdlib.h> /* system() */
++#include <unistd.h> /* unlink() */
+
+ static FILE *tmpfp;
+ static char tmpname[256];
+--- a/netwatch.c
++++ b/netwatch.c
+@@ -71,6 +71,7 @@
+ #include <sys/types.h>
+ #include <sys/stat.h>
+ #include <unistd.h>
++#include <ctype.h> /* isalnum() isspace() ispunct() */
+ /*
+ * #include <sys/socket.h>
+ */
diff --git a/net-analyzer/netwatch/files/netwatch-1.3.0.1-lto-mismatch.patch b/net-analyzer/netwatch/files/netwatch-1.3.0.1-lto-mismatch.patch
new file mode 100644
index 000000000000..7a89ce111e9a
--- /dev/null
+++ b/net-analyzer/netwatch/files/netwatch-1.3.0.1-lto-mismatch.patch
@@ -0,0 +1,8 @@
+Fix failure with -Werror=lto-type-mismatch
+--- a/dispdata.c
++++ b/dispdata.c
+@@ -96,3 +96,3 @@
+ #define MAXSTATUS 14
+-#define STATUSSIZE 200
++#define STATUSSIZE 256
+ extern char status_lines[MAXSTATUS][STATUSSIZE];
diff --git a/net-analyzer/netwatch/files/netwatch-1.3.0.1-musl-GNU_SOURCE.patch b/net-analyzer/netwatch/files/netwatch-1.3.0.1-musl-GNU_SOURCE.patch
new file mode 100644
index 000000000000..d7376c15814a
--- /dev/null
+++ b/net-analyzer/netwatch/files/netwatch-1.3.0.1-musl-GNU_SOURCE.patch
@@ -0,0 +1,12 @@
+https://bugs.gentoo.org/713202
+--- a/Make.common.in
++++ b/Make.common.in
+@@ -36,7 +36,7 @@ AWK = @AWK@
+ # Flags & libs
+ # No way, to make make happy (except GNU), we cannot use := to append
+ # something to these, so that's why there is a leading _
+-XCFLAGS = @CFLAGS@
++XCFLAGS = @CFLAGS@ -D_GNU_SOURCE
+ XCPPFLAGS = @CPPFLAGS@ -I.. -DBINDIR=\""$(bindir)/"\" -DLIBDIR=\""$(libdir)/"\" -DICONDIR=\""$(icondir)/"\" $(XINC)
+ XLDFLAGS = @LDFLAGS@
+ XDEFS = @DEFS@
diff --git a/net-analyzer/netwatch/files/netwatch-1.3.0.1-open.patch b/net-analyzer/netwatch/files/netwatch-1.3.0.1-open.patch
new file mode 100644
index 000000000000..ea846f334557
--- /dev/null
+++ b/net-analyzer/netwatch/files/netwatch-1.3.0.1-open.patch
@@ -0,0 +1,11 @@
+--- a/netwatch.c
++++ b/netwatch.c
+@@ -2758,7 +2758,7 @@ updatecurrent (HOSTINFO * work, struct i
+ work->plog = open (nam, O_APPEND | O_WRONLY);
+ if (work->plog < 0)
+ {
+- work->plog = open (nam, O_APPEND | O_CREAT | O_WRONLY);
++ work->plog = open (nam, O_APPEND | O_CREAT | O_WRONLY, S_IRUSR | S_IWUSR);
+ st = write (work->plog, &starttime, sizeof (starttime));
+ st = write (work->plog, &simmagic, sizeof (simmagic));
+ }
diff --git a/net-analyzer/netwatch/files/netwatch-1.3.0.1-stdint.patch b/net-analyzer/netwatch/files/netwatch-1.3.0.1-stdint.patch
new file mode 100644
index 000000000000..984506a3d351
--- /dev/null
+++ b/net-analyzer/netwatch/files/netwatch-1.3.0.1-stdint.patch
@@ -0,0 +1,527 @@
+https://bugs.gentoo.org/897826
+--- a/dispdata.c
++++ b/dispdata.c
+@@ -163,12 +163,12 @@ extern int magnacnt;
+ extern int magnaoffs;
+ extern char magnamatch[RESOLVE_MAX];
+ extern HOSTINFO *magnaspot;
+-extern u_int32_t magnakey;
++extern uint32_t magnakey;
+ extern int magnaphys;
+ extern int magnafirst;
+ extern int magnafull;
+ extern HOSTINFO *magnacomhost;
+-extern u_int32_t magnacomkey;
++extern uint32_t magnacomkey;
+
+ extern int simchange;
+ extern int simfwdir;
+@@ -203,7 +203,7 @@ extern int using_fifo;
+ extern int fifoval;
+ extern int movemagnakeyloc;
+ extern int movemagnakeyrem;
+-extern u_int32_t searchaddr;
++extern uint32_t searchaddr;
+
+ unsigned char *ttp;
+
+@@ -1258,7 +1258,7 @@ void dispdata (int errnum)
+ y = lcnt;
+ if (movemagnakeyloc)
+ {
+- if (*(u_int32_t *) current->addr == htonl (searchaddr))
++ if (*(uint32_t *) current->addr == htonl (searchaddr))
+ {
+ lydisp = y;
+ movemagnakeyloc = FALSE;
+@@ -1295,7 +1295,7 @@ void dispdata (int errnum)
+ strncpy (thost, current->name, curshosttrim);
+ UNLOCK(resolvechange);
+ if (selecthost && magnakey
+- && magnakey == *((u_int32_t *) current->addr))
++ && magnakey == *((uint32_t *) current->addr))
+ {
+ if (plogselect)
+ {
+@@ -1313,14 +1313,14 @@ void dispdata (int errnum)
+
+ if (selectchange && selecthost && numselect + 4 == yact)
+ {
+- magnakey = *((u_int32_t *) current->addr);
++ magnakey = *((uint32_t *) current->addr);
+ LOCK(resolvechange);
+ strncpy (magnamatch, current->name, RESOLVE_MAX);
+ UNLOCK(resolvechange);
+
+ magnaspot = current;
+ magnacomhost = NULL;
+- magnacomkey = *((u_int32_t *) current->othaddr);
++ magnacomkey = *((uint32_t *) current->othaddr);
+ magnafirst = TRUE;
+ selectchange = FALSE;
+ }
+@@ -1522,7 +1522,7 @@ void dispdata (int errnum)
+ tmpservice = emptystr;
+ if (movemagnakeyrem)
+ {
+- if (*(u_int32_t *) current->addr == htonl (searchaddr))
++ if (*(uint32_t *) current->addr == htonl (searchaddr))
+ {
+ rydisp = y;
+ movemagnakeyrem = FALSE;
+@@ -1560,7 +1560,7 @@ void dispdata (int errnum)
+ strncpy (thost, current->name, curshosttrim);
+ UNLOCK(resolvechange);
+ if (selecthost && magnakey
+- && magnakey == *((u_int32_t *) current->addr))
++ && magnakey == *((uint32_t *) current->addr))
+ {
+ if (plogselect)
+ {
+@@ -1576,13 +1576,13 @@ void dispdata (int errnum)
+
+ if (selectchange && selecthost && numselect + 4 == yact)
+ {
+- magnakey = *((u_int32_t *) current->addr);
++ magnakey = *((uint32_t *) current->addr);
+ LOCK(resolvechange);
+ strncpy (magnamatch, current->name, RESOLVE_MAX);
+ UNLOCK(resolvechange);
+ magnaspot = current;
+ magnacomhost = NULL;
+- magnacomkey = *((u_int32_t *) current->othaddr);
++ magnacomkey = *((uint32_t *) current->othaddr);
+ magnafirst = TRUE;
+ selectchange = FALSE;
+ }
+--- a/netresolv.c
++++ b/netresolv.c
+@@ -78,7 +78,7 @@ struct nqueue dum; /* Dummy record header */
+ #define MAXENTRIES 400
+ struct resolvaddr entries[MAXENTRIES];
+
+-char *dbgaddr(u_int32_t val)
++char *dbgaddr(uint32_t val)
+ {
+ unsigned char *p;
+ static char buf[40]; /* Worst case scenario for %u conversions */
+@@ -237,7 +237,7 @@ int main()
+ struct gotname finalentry;
+ struct hostent *res;
+ unsigned char *p;
+- u_int32_t *pu;
++ uint32_t *pu;
+ int i;
+
+ #ifdef DDEBUG
+@@ -279,7 +279,7 @@ int main()
+ {
+ alarm(60);
+ p = (unsigned char *)&(cptop.resentry.inetaddr);
+- pu = (u_int32_t *)p;
++ pu = (uint32_t *)p;
+ #ifdef DEBUG
+ fprintf(dfp,"Actual Get host by address call\n");
+ fflush(dfp);
+--- a/netresolv.h
++++ b/netresolv.h
+@@ -5,7 +5,7 @@
+ struct resolvaddr
+ {
+ pid_t pid;
+- u_int32_t inetaddr;
++ uint32_t inetaddr;
+ char *where;
+ };
+
+--- a/netwatch.c
++++ b/netwatch.c
+@@ -283,9 +283,9 @@ HOSTINFO *lfirst, *rfirst, *previous, *current, *next, *work;
+ int ssh_run=0;
+ char *ssh_env;
+ char ssh_orig_addr_asc[40];
+-u_int32_t ssh_orig_addr;
+-u_int16_t ssh_orig_port;
+-u_int16_t ssh_dest_port;
++uint32_t ssh_orig_addr;
++uint16_t ssh_orig_port;
++uint16_t ssh_dest_port;
+ int ssh_mask=0;
+
+ Semaphore masterdo;
+@@ -373,12 +373,12 @@ int magnacnt = 0;
+ int magnaoffs = MAGNAOFFS;
+ char magnamatch[RESOLVE_MAX];
+ HOSTINFO *magnaspot;
+-u_int32_t magnakey;
++uint32_t magnakey;
+ int magnaphys = 0;
+ int magnafirst = TRUE;
+ int magnafull = FALSE;
+ HOSTINFO *magnacomhost = NULL;
+-u_int32_t magnacomkey;
++uint32_t magnacomkey;
+
+ double maxburst = 0.0;
+ double absmaxburst = 0.0;
+@@ -466,10 +466,10 @@ char repeatbuf[255];
+ int isbridge = FALSE;
+ int dupcount = 0;
+ int forcelocal = FALSE;
+-u_int32_t flocal;
++uint32_t flocal;
+ int nonameresolve = FALSE;
+ int forcemask = FALSE;
+-u_int32_t fmask;
++uint32_t fmask;
+ int nokeys = FALSE;
+
+ unsigned char workingmac[ETH_ALEN];
+@@ -495,11 +495,11 @@ struct sockaddr_in *pin;
+ struct at_frame_type
+ {
+ unsigned char filler[20];
+- u_int16_t appletalk_type1; /*
++ uint16_t appletalk_type1; /*
+ * what is formal name?
+ */
+ unsigned char filler2[12];
+- u_int8_t appletalk_type2; /*
++ uint8_t appletalk_type2; /*
+ * what is formal name?
+ */
+ }; /*
+@@ -528,7 +528,7 @@ const int MAXTHEMm1 = 19;
+ * #define MAXTHEMm1 MAXTHEM
+ */
+ int themnum = 0;
+-u_int32_t logthem[20]; /* Up to 20 log names allowed */
++uint32_t logthem[20]; /* Up to 20 log names allowed */
+ time_t actstart;
+ double mactstart;
+ clock_t lasttime; /* last NOW... */
+@@ -602,10 +602,10 @@ extern long int timezone;
+
+ int movemagnakeyloc = FALSE;
+ int movemagnakeyrem = FALSE;
+-u_int32_t searchaddr = 0;
++uint32_t searchaddr = 0;
+
+
+-void findaddr (u_int32_t searchaddr);
++void findaddr (uint32_t searchaddr);
+ int doeth ();
+ int gh (int opt);
+
+@@ -634,7 +634,7 @@ void do_fifo ()
+ short int length;
+ unsigned char *p;
+ int i;
+- u_int32_t lookaddr;
++ uint32_t lookaddr;
+
+ /* Read from FIFO until marker is found... */
+ do
+@@ -686,7 +686,7 @@ void do_fifo ()
+ dispopt = fifoval;
+ break;
+ case 6:
+- lookaddr = *(u_int32_t *) keycomm;
++ lookaddr = *(uint32_t *) keycomm;
+ p = (unsigned char *) keycomm;
+ //!!mvprintw (1, 3, "%u.%u.%u.%u", p[0], p[1], p[2], p[3]);
+ findaddr (lookaddr);
+@@ -1067,7 +1067,7 @@ void clearnetresolv ()
+ void mygethostbyaddr (char *where, unsigned char *p, int len, int proto)
+ {
+ struct resolvaddr one;
+- u_int32_t *pi = (u_int32_t *) p;
++ uint32_t *pi = (uint32_t *) p;
+
+ if (noresolv)
+ return;
+@@ -1076,7 +1076,7 @@ void mygethostbyaddr (char *where, unsigned char *p, int len, int proto)
+ if (*pi == 0L)
+ return;
+ one.pid = mypid;
+- one.inetaddr = *(u_int32_t *) p;
++ one.inetaddr = *(uint32_t *) p;
+ one.where = where;
+ write (msocket[1], &one, sizeof (one));
+ sendresolv++;
+@@ -1942,7 +1942,7 @@ void setupstatus ()
+ " WARNING %s VIA E-MAIL on NetBus or B.O. Attacks ", userwarn);
+ }
+
+-u_int32_t localifaddr;
++uint32_t localifaddr;
+
+ int main (int argc, char *argv[])
+ {
+@@ -1956,7 +1956,7 @@ int main (int argc, char *argv[])
+ */
+ int op;
+ long int mask;
+- u_int32_t *p;
++ uint32_t *p;
+
+ #if defined(SYS_IF_PACKET_H) || defined(LINUX_IF_PACKET_H) || defined(NET_IF_PACKET_H)
+ int devindex;
+@@ -2313,12 +2313,12 @@ int main (int argc, char *argv[])
+ }
+ if (forcelocal)
+ {
+- p = (u_int32_t *) & localaddr[0];
++ p = (uint32_t *) & localaddr[0];
+ *p = flocal;
+ }
+ if (forcemask)
+ {
+- p = (u_int32_t *) & netmask[0];
++ p = (uint32_t *) & netmask[0];
+ *p = fmask;
+ }
+
+@@ -2553,27 +2553,27 @@ void makeaddr (unsigned char naddr[], char ascii[])
+ return;
+ }
+
+-int tlocal (u_int32_t * addr)
++int tlocal (uint32_t * addr)
+ {
+ static unsigned char lhost[] = { 127, 0, 0, 1 };
+- u_int32_t *k = (u_int32_t *) netmask;
+- u_int32_t reslocal, restest;
++ uint32_t *k = (uint32_t *) netmask;
++ uint32_t reslocal, restest;
+
+- if (*addr == *(u_int32_t *) lhost)
++ if (*addr == *(uint32_t *) lhost)
+ return (TRUE);
+ restest = *addr & *k;
+- reslocal = *(u_int32_t *) localaddr & *k;
++ reslocal = *(uint32_t *) localaddr & *k;
+ return (restest == reslocal);
+ }
+
+-HOSTINFO *searchforinsertion (u_int32_t key, HOSTINFO * first, int *pval)
++HOSTINFO *searchforinsertion (uint32_t key, HOSTINFO * first, int *pval)
+ {
+ HOSTINFO *current;
+ int y=0;
+
+ current = first->flink;
+ while (current != first
+- && key < (u_int32_t) ntohl (*(u_int32_t *) current->addr))
++ && key < (uint32_t) ntohl (*(uint32_t *) current->addr))
+ {
+ current = current->flink;
+ y++;
+@@ -2584,7 +2584,7 @@ HOSTINFO *searchforinsertion (u_int32_t key, HOSTINFO * first, int *pval)
+ }
+
+
+-void findaddr (u_int32_t lookaddr)
++void findaddr (uint32_t lookaddr)
+ {
+ HOSTINFO *current;
+ int ii;
+@@ -2595,7 +2595,7 @@ void findaddr (u_int32_t lookaddr)
+ {
+ LOCK(inllist);
+ current = searchforinsertion (lookaddr, lfirst,NULL);
+- if ((u_int32_t) ntohl (*(u_int32_t *) current->addr) != lookaddr)
++ if ((uint32_t) ntohl (*(uint32_t *) current->addr) != lookaddr)
+ {
+ //!!mvprintw (2, 20, "DID NOT FIND LOCAL");
+ UNLOCK(inllist);
+@@ -2609,7 +2609,7 @@ void findaddr (u_int32_t lookaddr)
+ {
+ LOCK(inrlist);
+ current = searchforinsertion (lookaddr, rfirst,NULL);
+- if ((u_int32_t) ntohl (*(u_int32_t *) current->addr) != lookaddr)
++ if ((uint32_t) ntohl (*(uint32_t *) current->addr) != lookaddr)
+ {
+ //!!mvprintw (2, 20, "DID NOT FIND REMOTE");
+ UNLOCK(inrlist);
+@@ -2747,7 +2747,7 @@ updatecurrent (HOSTINFO * work, struct ip *buf, int length, int opt,
+ char *bb;
+ clock_t clk;
+ struct in_addr mw;
+- u_int32_t *mpaddr;
++ uint32_t *mpaddr;
+
+ /*
+ * static unsigned char finpk[] = { 206, 248, 7, 5 };
+@@ -2757,9 +2757,9 @@ updatecurrent (HOSTINFO * work, struct ip *buf, int length, int opt,
+ if (work->plog == 0)
+ {
+ strncpy (nam, nw_indivmain, 239);
+- mpaddr = (u_int32_t *)work->addr;
++ mpaddr = (uint32_t *)work->addr;
+ mw.s_addr = *mpaddr;
+- //strncat (nam, inet_ntoa (*(u_int32_t *) work->addr), 17);
++ //strncat (nam, inet_ntoa (*(uint32_t *) work->addr), 17);
+ strncat (nam, inet_ntoa (mw), 17);
+ work->plog = open (nam, O_APPEND | O_WRONLY);
+ if (work->plog < 0)
+@@ -3003,7 +3003,7 @@ static char space[256];
+ static char ftpversion[256];
+
+ void
+-addtolocallist (u_int32_t * key, u_int32_t * okey, struct ip *buf,
++addtolocallist (uint32_t * key, uint32_t * okey, struct ip *buf,
+ int length, int opt, int direct)
+ {
+ unsigned char *pk = (unsigned char *) key;
+@@ -3078,8 +3078,8 @@ addtolocallist (u_int32_t * key, u_int32_t * okey, struct ip *buf,
+ /*
+ * } if (fishlen == 30000) fclose(fish);
+ */
+- current = searchforinsertion ((u_int32_t) ntohl (*key), lfirst,&y);
+- if (*(u_int32_t *) current->addr != *key)
++ current = searchforinsertion ((uint32_t) ntohl (*key), lfirst,&y);
++ if (*(uint32_t *) current->addr != *key)
+ {
+ work = malloc (sizeof (*work));
+ previous = current->blink;
+@@ -3087,7 +3087,7 @@ addtolocallist (u_int32_t * key, u_int32_t * okey, struct ip *buf,
+ * Init values to ZERO for 1st entry....
+ */
+ clearentry (work);
+- *(u_int32_t *) work->addr = *key;
++ *(uint32_t *) work->addr = *key;
+ /*
+ * work->disprow = previous->disprow + 1;
+ */
+@@ -3220,7 +3220,7 @@ addtolocallist (u_int32_t * key, u_int32_t * okey, struct ip *buf,
+ {
+ magnacomhost = work;
+ }
+- *(u_int32_t *) work->othaddr = *okey;
++ *(uint32_t *) work->othaddr = *okey;
+
+ if (tlocal (okey))
+ updatecurrent (work, buf, length, opt, LOCUPDATE, LOCUPDATE, direct);
+@@ -3230,7 +3230,7 @@ addtolocallist (u_int32_t * key, u_int32_t * okey, struct ip *buf,
+ }
+
+ void
+-addtoremotelist (u_int32_t * key, u_int32_t * okey, struct ip *buf,
++addtoremotelist (uint32_t * key, uint32_t * okey, struct ip *buf,
+ int length, int opt, int direct)
+ {
+ unsigned char *pk = (unsigned char *) key;
+@@ -3243,8 +3243,8 @@ addtoremotelist (u_int32_t * key, u_int32_t * okey, struct ip *buf,
+
+ wlen = ntohs (buf->tot_len);
+ LOCK(inrlist);
+- current = searchforinsertion ((u_int32_t) ntohl (*key), rfirst,&y);
+- if (*(u_int32_t *) current->addr != *key)
++ current = searchforinsertion ((uint32_t) ntohl (*key), rfirst,&y);
++ if (*(uint32_t *) current->addr != *key)
+ {
+ work = malloc (sizeof (*work));
+ previous = current->blink;
+@@ -3268,7 +3268,7 @@ addtoremotelist (u_int32_t * key, u_int32_t * okey, struct ip *buf,
+ break;
+ }
+ }
+- *(u_int32_t *) work->addr = *key;
++ *(uint32_t *) work->addr = *key;
+ memcpy (work->badmac, fillmac, sizeof (fillmac));
+ if (!opt)
+ { /*
+@@ -3412,7 +3412,7 @@ addtoremotelist (u_int32_t * key, u_int32_t * okey, struct ip *buf,
+ {
+ magnacomhost = work;
+ }
+- *(u_int32_t *) work->othaddr = *okey;
++ *(uint32_t *) work->othaddr = *okey;
+ if (tlocal (okey))
+ updatecurrent (work, buf, length, opt, LOCUPDATE, REMUPDATE, direct);
+ else
+@@ -3527,11 +3527,11 @@ void log_local (char *buf, int length)
+ void handle_ip (struct ip *buf, int length, int direct)
+ {
+ int wlen;
+- u_int16_t sport;
+- u_int16_t dport;
+- u_int32_t me;
++ uint16_t sport;
++ uint16_t dport;
++ uint32_t me;
+
+- me = *((u_int32_t *) localaddr);
++ me = *((uint32_t *) localaddr);
+ LOCK(indisp);
+ new = time (0);
+ wlen = ntohs (buf->tot_len);
+@@ -3548,16 +3548,16 @@ void handle_ip (struct ip *buf, int length, int direct)
+ dport =
+ ntohs (((struct tcphdr *) ((void *) buf +
+ sizeof (struct iphdr)))->th_dport);
+- if (((u_int32_t)buf->saddr==me) && ((u_int16_t)sport==ssh_dest_port) &&
+- ((u_int32_t)buf->daddr==ssh_orig_addr))
++ if (((uint32_t)buf->saddr==me) && ((uint16_t)sport==ssh_dest_port) &&
++ ((uint32_t)buf->daddr==ssh_orig_addr))
+ {
+ ethcnt--;
+ UNLOCK(indisp);
+ semaphore_up(&masterdo);
+ return;
+ }
+- if (((u_int32_t)buf->daddr==me) && ((u_int16_t)dport==ssh_dest_port) &&
+- ((u_int32_t)buf->saddr==ssh_orig_addr))
++ if (((uint32_t)buf->daddr==me) && ((uint16_t)dport==ssh_dest_port) &&
++ ((uint32_t)buf->saddr==ssh_orig_addr))
+ {
+ ethcnt--;
+ UNLOCK(indisp);
+@@ -3565,18 +3565,18 @@ void handle_ip (struct ip *buf, int length, int direct)
+ return;
+ }
+ }
+- if (tlocal ((u_int32_t *) & buf->saddr))
++ if (tlocal ((uint32_t *) & buf->saddr))
+ {
+- if (tlocal ((u_int32_t *) & buf->daddr))
++ if (tlocal ((uint32_t *) & buf->daddr))
+ log_local ((char *) buf, length);
+- addtolocallist ((u_int32_t *) & buf->saddr,
+- (u_int32_t *) & buf->daddr, buf, length, 0, direct);
++ addtolocallist ((uint32_t *) & buf->saddr,
++ (uint32_t *) & buf->daddr, buf, length, 0, direct);
+ }
+ else
+ {
+ log_remote ((char *) buf, length);
+- addtoremotelist ((u_int32_t *) & buf->saddr,
+- (u_int32_t *) & buf->daddr, buf, length, 0, direct);
++ addtoremotelist ((uint32_t *) & buf->saddr,
++ (uint32_t *) & buf->daddr, buf, length, 0, direct);
+ if (direct > 0)
+ {
+ routeruse += wlen;
+@@ -3588,16 +3588,16 @@ void handle_ip (struct ip *buf, int length, int direct)
+ routerfrom -= wlen;
+ }
+ }
+- if (tlocal ((u_int32_t *) & buf->daddr))
++ if (tlocal ((uint32_t *) & buf->daddr))
+ {
+- addtolocallist ((u_int32_t *) & buf->daddr,
+- (u_int32_t *) & buf->saddr, buf, length, 1, direct);
++ addtolocallist ((uint32_t *) & buf->daddr,
++ (uint32_t *) & buf->saddr, buf, length, 1, direct);
+ }
+ else
+ {
+ log_remote ((char *) buf, length);
+- addtoremotelist ((u_int32_t *) & buf->daddr,
+- (u_int32_t *) & buf->saddr, buf, length, 1, direct);
++ addtoremotelist ((uint32_t *) & buf->daddr,
++ (uint32_t *) & buf->saddr, buf, length, 1, direct);
+ if (direct > 0)
+ {
+ routeruse += wlen;
diff --git a/net-analyzer/netwatch/files/netwatch-1.3.0.1-tinfo.patch b/net-analyzer/netwatch/files/netwatch-1.3.0.1-tinfo.patch
new file mode 100644
index 000000000000..a2e66ee660fb
--- /dev/null
+++ b/net-analyzer/netwatch/files/netwatch-1.3.0.1-tinfo.patch
@@ -0,0 +1,50 @@
+--- a/configure.in
++++ b/configure.in
+@@ -6,7 +6,12 @@
+ AC_DEFINE(_GORD_LIBS)
+ dnl Checks for libraries.
+ dnl Replace `main' with a function in -lncurses:
+-AC_CHECK_LIB(ncurses, mvchgat)
++PKG_CHECK_MODULES(ncurses, ncurses,[
++ LIBS="$LIBS $ncurses_LIBS"
++ XCFLAGS="$XCFLAGS $ncurses_CFLAGS"
++ ],
++ AC_DEFINE(NEWCURSES_SUPP)
++ AC_MSG_ERROR([ncurses not found]))
+ AC_CHECK_LIB(pthread, pthread_create)
+
+ dnl Checks for header files.
+@@ -24,11 +29,8 @@
+ AC_CHECK_HEADERS(netinet/socket.h)
+ AC_CHECK_HEADERS(net/if.h)
+ AC_CHECK_HEADERS(net/if_ppp.h)
+-AC_CHECK_HEADERS(netinet/if_ether.h netinet/in.h ncurses.h ncurses/curses.h)
+-AC_CHECK_HEADERS(ncurses.h)
++AC_CHECK_HEADERS(netinet/if_ether.h netinet/in.h)
+ AC_CHECK_HEADERS(pthread.h)
+-AC_CHECK_HEADERS(ncurses/curses.h)
+-AC_CHECK_HEADERS(curses.h)
+ AC_CHECK_HEADERS(sys/if_packet.h)
+ AC_CHECK_HEADERS(linux/if_packet.h)
+ AC_CHECK_HEADERS(net/if_packet.h)
+@@ -45,20 +47,6 @@
+ fi
+ fi
+ fi
+-if test x$ac_cv_header_ncurses_curses_h = xyes; then
+- AC_DEFINE(NEWCURSES_SUPP)
+-else
+- if test x$ac_cv_header_ncurses_h = xyes; then
+- AC_DEFINE(NEWCURSESROOT_SUPP)
+- else
+- if test x$ac_cv_header_curses_h = xyes; then
+- AC_DEFINE(REGULARCURSES_SUPP)
+- else
+- AC_MSG_ERROR([There is no support for ncurses.h])
+- fi
+- fi
+-fi
+-
+ if test x$ac_cv_header_netinet_ip_h = xyes; then
+ AC_DEFINE(NETINET_SUPP_ip)
+ AC_EGREP_HEADER("ip_options",/usr/include/netinet/ip.h,is_opt=1,is_opt=0)
diff --git a/net-analyzer/netwatch/metadata.xml b/net-analyzer/netwatch/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/netwatch/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/netwatch/netwatch-1.3.0.1-r5.ebuild b/net-analyzer/netwatch/netwatch-1.3.0.1-r5.ebuild
new file mode 100644
index 000000000000..a7215c4e36d0
--- /dev/null
+++ b/net-analyzer/netwatch/netwatch-1.3.0.1-r5.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic
+
+DESCRIPTION="Ethernet/PPP IP Packet Monitor"
+HOMEPAGE="https://wiki.gentoo.org/wiki/No_homepage"
+SRC_URI="mirror://gentoo/${PN}-$(ver_rs 3 -).tgz"
+S="${WORKDIR}/${PN}-$(ver_cut 1-3)"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~x86"
+
+RDEPEND="sys-libs/ncurses:="
+DEPEND="
+ ${RDEPEND}
+ sys-kernel/linux-headers"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-append_ldflags.patch
+ "${FILESDIR}"/${P}-open.patch
+ "${FILESDIR}"/${P}-fix-fortify.patch
+ "${FILESDIR}"/${P}-do-not-call.patch
+ "${FILESDIR}"/${P}-includes.patch
+ "${FILESDIR}"/${P}-tinfo.patch
+ "${FILESDIR}"/${P}-fno-common.patch
+ "${FILESDIR}"/${P}-lto-mismatch.patch
+ "${FILESDIR}"/${P}-clang16.patch
+)
+
+src_prepare() {
+ default
+
+ eautoreconf
+
+ append-flags -fno-strict-aliasing #861203
+}
+
+src_install() {
+ dosbin netresolv netwatch
+ doman netwatch.1
+ einstalldocs
+
+ docinto html
+ dodoc NetwatchKeyCommands.html
+}
diff --git a/net-analyzer/netwatch/netwatch-1.3.0.1-r6.ebuild b/net-analyzer/netwatch/netwatch-1.3.0.1-r6.ebuild
new file mode 100644
index 000000000000..bc09d9f4fc40
--- /dev/null
+++ b/net-analyzer/netwatch/netwatch-1.3.0.1-r6.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic
+
+DESCRIPTION="Ethernet/PPP IP Packet Monitor"
+HOMEPAGE="https://wiki.gentoo.org/wiki/No_homepage"
+SRC_URI="mirror://gentoo/${PN}-$(ver_rs 3 -).tgz"
+S="${WORKDIR}/${PN}-$(ver_cut 1-3)"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~x86"
+
+RDEPEND="sys-libs/ncurses:="
+DEPEND="
+ ${RDEPEND}
+ sys-kernel/linux-headers
+"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-append_ldflags.patch
+ "${FILESDIR}"/${P}-open.patch
+ "${FILESDIR}"/${P}-fix-fortify.patch
+ "${FILESDIR}"/${P}-do-not-call.patch
+ "${FILESDIR}"/${P}-includes.patch
+ "${FILESDIR}"/${P}-tinfo.patch
+ "${FILESDIR}"/${P}-fno-common.patch
+ "${FILESDIR}"/${P}-lto-mismatch.patch
+ "${FILESDIR}"/${P}-clang16.patch
+ "${FILESDIR}"/${P}-c23.patch
+ "${FILESDIR}"/${P}-stdint.patch
+ "${FILESDIR}"/${P}-musl-GNU_SOURCE.patch
+)
+
+src_prepare() {
+ default
+
+ eautoreconf
+
+ append-flags -fno-strict-aliasing #861203
+}
+
+src_install() {
+ dosbin netresolv netwatch
+ doman netwatch.1
+ einstalldocs
+
+ docinto html
+ dodoc NetwatchKeyCommands.html
+}
diff --git a/net-analyzer/nfdump/Manifest b/net-analyzer/nfdump/Manifest
new file mode 100644
index 000000000000..e949838dc122
--- /dev/null
+++ b/net-analyzer/nfdump/Manifest
@@ -0,0 +1,2 @@
+DIST nfdump-1.7.6.tar.gz 844753 BLAKE2B 7a87aa9fe8c6ab71d9ce7921720b38244d7f289f904a468325ce3071b0f11934d89763fefdb21bfc402251253ba15aff831cb6e4147a77a089347364b7f8bacd SHA512 28a925d66f1c189560f69a28c8eb0798e6cfa903e17b0b89bb3b686f096d882b4c2ac6d9c22e6643560fa552bcec89b326bc7cb1ab2eda92f514e7dea36e75b9
+DIST nfdump-1.7.7.tar.gz 873067 BLAKE2B 1dbb1a1c9c0989c85d03c924b6594078d025fe02fcc8f44bc007b32db0c06a02a3131f5ac3ed4bc5f1c2b3ed848fd3c38b7645f74f378bddfa32a454fbbff2bc SHA512 dae4081c3dd12570b8159c656799a40112900994b71f645dddc9cd552a0791bced36ceb7f190f16c1e395d3ca02ee00ed71964e9ab56f790f18956407ecb47cb
diff --git a/net-analyzer/nfdump/files/nfcapd.confd b/net-analyzer/nfdump/files/nfcapd.confd
new file mode 100644
index 000000000000..28ea35fd0741
--- /dev/null
+++ b/net-analyzer/nfdump/files/nfcapd.confd
@@ -0,0 +1,11 @@
+#shellcheck shell=sh
+#shellcheck disable=SC2034
+
+#port number to listen on
+#PORT="2055"
+
+#maximum size of collected files
+#MAX_SIZE="1G"
+
+#enable sending of all received packets to specified address
+#REPEAT_TO="192.168.1.1/60062"
diff --git a/net-analyzer/nfdump/files/nfcapd.initd b/net-analyzer/nfdump/files/nfcapd.initd
new file mode 100644
index 000000000000..98d388cb710f
--- /dev/null
+++ b/net-analyzer/nfdump/files/nfcapd.initd
@@ -0,0 +1,60 @@
+#!/sbin/openrc-run
+#shellcheck shell=sh
+
+IDENT="${RC_SVCNAME#*.}"
+PIDFILE="/run/nfcapd/${IDENT}.pid"
+USER="nfcapd"
+GROUP="nfcapd"
+
+ssd_start(){
+ if [ -n "${MAX_SIZE}" ]; then
+ set -- "$@" -e
+ fi
+ if [ -n "${PORT}" ]; then
+ set -- "$@" -p "${PORT}"
+ fi
+ if [ -n "${REPEAT_TO}" ]; then
+ set -- "$@" -R "${REPEAT_TO}"
+ fi
+ start-stop-daemon "$@"
+}
+
+checkconfig() {
+ if [ "${IDENT}" = "${RC_SVCNAME}" ]; then
+ eerror "You have to create an init script for each ident:"
+ eerror " cd /etc/init.d/; ln -s nfcapd nfcapd.ident"
+ return 1
+ fi
+}
+
+depend() {
+ need net
+}
+
+start() {
+ checkconfig || return 1
+
+ checkpath -d -m 0750 -o nfcapd:nfcapd /run/nfcapd
+ checkpath -d -m 0750 -o nfcapd:nfcapd /var/tmp/nfcapd/"${IDENT}"
+
+ if [ -n "${MAX_SIZE}" ]; then
+ nfexpire -u /var/tmp/nfcapd/"${IDENT}" -s "${MAX_SIZE}" \
+ > /dev/null 2>&1
+ chown -R ${USER}:${GROUP} /var/tmp/nfcapd/"${IDENT}"
+ fi
+
+ ebegin "Starting ${RC_SVCNAME}"
+ ssd_start --start --quiet --exec /usr/bin/nfcapd \
+ --pidfile "${PIDFILE}" -- -D -P "${PIDFILE}" -u ${USER} \
+ -g ${GROUP} -I "${IDENT}" -l /var/tmp/nfcapd/"${IDENT}"
+ eend $?
+}
+
+stop() {
+ checkconfig || return 1
+
+ ebegin "Stopping ${RC_SVCNAME}"
+ start-stop-daemon --stop --exec /usr/bin/nfcapd \
+ --pidfile "${PIDFILE}"
+ eend $?
+}
diff --git a/net-analyzer/nfdump/files/nfdump-1.6.19-libft.patch b/net-analyzer/nfdump/files/nfdump-1.6.19-libft.patch
new file mode 100644
index 000000000000..47953c772172
--- /dev/null
+++ b/net-analyzer/nfdump/files/nfdump-1.6.19-libft.patch
@@ -0,0 +1,17 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -115,12 +115,8 @@
+ if test ! -f "$WHERE_FTPATH/include/ftlib.h"; then
+ AC_MSG_ERROR(ftlib.h file not found in flow-tools directory '$WHERE_FTPATH'. Use --with-ftpath=PATH)
+ fi
+- if test -f "$WHERE_FTPATH/lib/libft.a" -o -f "$WHERE_FTPATH/lib64/libft.a" -o -f "$WHERE_FTPATH/lib/libft.so" -o -f "$WHERE_FTPATH/lib64/libft.so"; then
+- FT_INCLUDES="-I$WHERE_FTPATH/include -I$WHERE_FTPATH/lib"
+- FT_LDFLAGS="-L$WHERE_FTPATH/lib"
+- else
+- AC_MSG_ERROR(libft.a not found in flow-tools directory '$WHERE_FTPATH'. Build flow tools first)
+- fi
++ AC_CHECK_LIB([ft], [main],,
++ AC_MSG_ERROR(libft not found in flow-tools directory '$WHERE_FTPATH'. Build flow tools first))
+ else
+ AC_MSG_ERROR(flow-tools directory '$WHERE_FTPATH' does not exists. Use --with-ftpath=PATH)
+ fi
diff --git a/net-analyzer/nfdump/files/nfdump.service b/net-analyzer/nfdump/files/nfdump.service
new file mode 100644
index 000000000000..03e8443077ae
--- /dev/null
+++ b/net-analyzer/nfdump/files/nfdump.service
@@ -0,0 +1,16 @@
+[Unit]
+Description=netflow capture daemon, %I instance
+Documentation=man:nfcapd(1)
+After=network.target auditd.service
+PartOf=nfdump.service
+
+[Service]
+Type=forking
+Environment=options="-l /var/cache/nfdump -p 2055"
+ExecStart=/usr/bin/nfcapd -D -P %t/nfcapd.%I.pid $options
+PIDFile=%t/nfcapd.%I.pid
+KillMode=process
+Restart=no
+
+[Install]
+WantedBy=multi-user.target
diff --git a/net-analyzer/nfdump/metadata.xml b/net-analyzer/nfdump/metadata.xml
new file mode 100644
index 000000000000..f225f1e47952
--- /dev/null
+++ b/net-analyzer/nfdump/metadata.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <use>
+ <flag name="ftconv">Build the flow-tools to nfdump converter</flag>
+ <flag name="jnat">Build nfudmp to support JunOS NAT event logging</flag>
+ <flag name="nfpcapd">Build nfpcapd collector to create netflow data from precollected pcap traffic</flag>
+ <flag name="nfprofile">Build nfprofile used by NfSen</flag>
+ <flag name="nftrack">Build nfprofile used by PortTracker</flag>
+ <flag name="nsel">Build nfudmp to support NSEL/NEL event data</flag>
+ <flag name="readpcap">Build nfcapd collector to read from pcap file instead ofnetwork data</flag>
+ <flag name="sflow">Build sflow collector sfcpad</flag>
+ </use>
+ <longdescription>nfdump is a toolset to collect and process netflow and sflow
+ data, sent from netflow/sflow compatible devices. The toolset supports
+ netflow v1, v5/v7,v9,IPFIX and SFLOW.</longdescription>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:nfdump_project:nfdump</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nfdump/nfdump-1.7.6.ebuild b/net-analyzer/nfdump/nfdump-1.7.6.ebuild
new file mode 100644
index 000000000000..8c074b990c72
--- /dev/null
+++ b/net-analyzer/nfdump/nfdump-1.7.6.ebuild
@@ -0,0 +1,105 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic toolchain-funcs systemd
+
+DESCRIPTION="A set of tools to collect and process netflow data"
+HOMEPAGE="https://github.com/phaag/nfdump"
+SRC_URI="https://github.com/phaag/nfdump/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0/${PV}"
+KEYWORDS="amd64 x86"
+IUSE="debug doc jnat ftconv nfpcapd nfprofile nftrack nsel readpcap sflow zstd"
+
+REQUIRED_USE="?? ( jnat nsel )"
+
+RDEPEND="
+ app-arch/bzip2
+ app-arch/lz4:=
+ virtual/zlib:=
+ elibc_musl? ( sys-libs/fts-standalone )
+ ftconv? ( net-analyzer/flow-tools )
+ nfpcapd? ( net-libs/libpcap )
+ nfprofile? ( net-analyzer/rrdtool )
+ nftrack? ( net-analyzer/rrdtool )
+ readpcap? ( net-libs/libpcap )
+ zstd? ( app-arch/zstd:= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ app-alternatives/yacc
+ sys-devel/flex
+ doc? (
+ app-text/doxygen
+ media-gfx/graphviz
+ )
+"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ # Not available on Linux, with fallback at src/libnffile/util.h, bug #904952
+ htonll
+)
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.6.19-libft.patch
+)
+
+DOCS=( AUTHORS ChangeLog README.md )
+
+src_prepare() {
+ default
+
+ eautoreconf
+
+ if use doc; then
+ doxygen -u doc/Doxyfile.in || die
+ fi
+}
+
+src_configure() {
+ # Needs flex
+ unset LEX
+
+ tc-export CC
+
+ # bug #853763
+ use elibc_musl && append-libs "-lfts"
+
+ # --without-ftconf is not handled well, bug #322201
+ local myeconfargs=(
+ $(usex ftconv "--enable-ftconv --with-ftpath=${EPREFIX}/usr")
+ $(usex nfpcapd --enable-nfpcapd)
+ $(usex nfprofile --enable-nfprofile)
+ $(usex nftrack --enable-nftrack)
+ $(use_enable debug devel)
+ $(use_enable jnat)
+ $(use_enable nsel)
+ $(use_enable readpcap)
+ $(use_enable sflow)
+ $(use_with zstd "zstdpath" "${EPREFIX}/usr")
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_test(){
+ pushd src/test || die
+ emake -j1 check-TESTS
+ popd || die
+}
+
+src_install() {
+ default
+
+ find "${ED}" -name '*.la' -type f -delete || die
+
+ newinitd "${FILESDIR}"/nfcapd.initd nfcapd
+ newconfd "${FILESDIR}"/nfcapd.confd nfcapd
+ systemd_newunit "${FILESDIR}/nfdump.service" nfdump@.service
+
+ if use doc; then
+ dodoc -r doc/html
+ fi
+}
diff --git a/net-analyzer/nfdump/nfdump-1.7.7-r1.ebuild b/net-analyzer/nfdump/nfdump-1.7.7-r1.ebuild
new file mode 100644
index 000000000000..eb3f319cadbf
--- /dev/null
+++ b/net-analyzer/nfdump/nfdump-1.7.7-r1.ebuild
@@ -0,0 +1,110 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic toolchain-funcs systemd
+
+DESCRIPTION="A set of tools to collect and process netflow data"
+HOMEPAGE="https://github.com/phaag/nfdump"
+SRC_URI="https://github.com/phaag/nfdump/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0/${PV}"
+KEYWORDS="amd64 x86"
+IUSE="debug doc jnat ftconv nfpcapd nfprofile nftrack nsel readpcap sflow zstd"
+
+REQUIRED_USE="?? ( jnat nsel )"
+
+RDEPEND="
+ app-arch/bzip2
+ app-arch/lz4:=
+ virtual/zlib:=
+ elibc_musl? ( sys-libs/fts-standalone )
+ ftconv? ( net-analyzer/flow-tools )
+ nfpcapd? ( net-libs/libpcap )
+ nfprofile? ( net-analyzer/rrdtool )
+ nftrack? ( net-analyzer/rrdtool )
+ readpcap? ( net-libs/libpcap )
+ zstd? ( app-arch/zstd:= )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ app-alternatives/yacc
+ sys-devel/flex
+ doc? (
+ app-text/doxygen
+ media-gfx/graphviz
+ )
+"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ # Not available on Linux, with fallback at src/libnffile/util.h, bug #904952
+ htonll
+)
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.6.19-libft.patch
+)
+
+DOCS=( AUTHORS ChangeLog README.md )
+
+src_prepare() {
+ default
+
+ if ! use doc; then
+ # don't install docs if we didn't ask
+ sed -i -e 's/SUBDIRS += man doc/SUBDIRS += man/' Makefile.am || die
+ fi
+
+ eautoreconf
+
+ if use doc; then
+ doxygen -u doc/Doxyfile.in || die
+ fi
+}
+
+src_configure() {
+ # Needs flex
+ unset LEX
+
+ tc-export CC
+
+ # bug #853763
+ use elibc_musl && append-libs "-lfts"
+
+ # --without-ftconf is not handled well, bug #322201
+ local myeconfargs=(
+ $(usex ftconv "--enable-ftconv --with-ftpath=${EPREFIX}/usr")
+ $(usex nfpcapd --enable-nfpcapd)
+ $(usex nfprofile --enable-nfprofile)
+ $(usex nftrack --enable-nftrack)
+ $(use_enable debug devel)
+ $(use_enable jnat)
+ $(use_enable nsel)
+ $(use_enable readpcap)
+ $(use_enable sflow)
+ $(use_with zstd "zstdpath" "${EPREFIX}/usr")
+ )
+ econf "${myeconfargs[@]}"
+}
+
+src_test(){
+ pushd src/test || die
+ emake -j1 check-TESTS
+ popd || die
+}
+
+src_install() {
+ default
+
+ find "${ED}" -name '*.la' -type f -delete || die
+
+ newinitd "${FILESDIR}"/nfcapd.initd nfcapd
+ newconfd "${FILESDIR}"/nfcapd.confd nfcapd
+ systemd_newunit "${FILESDIR}/nfdump.service" nfdump@.service
+
+ if use doc; then
+ dodoc -r doc/html
+ fi
+}
diff --git a/net-analyzer/ngrep/Manifest b/net-analyzer/ngrep/Manifest
new file mode 100644
index 000000000000..bafc32944b7a
--- /dev/null
+++ b/net-analyzer/ngrep/Manifest
@@ -0,0 +1,2 @@
+DIST ngrep-1.47.tar.gz 187067 BLAKE2B 4fa47ed343b88e84fb5a3ab6e4dc8139cb008ffcbea901a67664335ad76d36e975e037620cebb1b204ba22e5b139e822c7cfbc74a061fc6cacae631be3f87a52 SHA512 47ba65878df6b555701c866721a8a935eabdcce636d398284cbfe5f63baf68c62d994a2f373ea4fc8f44fbed3eecee149f2ee48d39c71c04d34e5a088db8c657
+DIST ngrep-1.47_p20241209.gh.tar.gz 187290 BLAKE2B 4a58268a75b40ab31014de4bac48a6078090e99afea157e4794893d67d9496bf0e82f3930a7e2e26db9d86fc90eeabccd60356b2b0581f47b12c3cf5f300b567 SHA512 4c555ddb7e5427350f2767f45553565b07b312899139b4d6d9001470ee57ce890072d15ea0523c48b775d5196b498f06a5a3fe9a307eaa3d73416b2a9ab2dc81
diff --git a/net-analyzer/ngrep/files/ngrep-1.47-clang16.patch b/net-analyzer/ngrep/files/ngrep-1.47-clang16.patch
new file mode 100644
index 000000000000..eb3758e8db2b
--- /dev/null
+++ b/net-analyzer/ngrep/files/ngrep-1.47-clang16.patch
@@ -0,0 +1,30 @@
+https://github.com/jpr5/ngrep/pull/28
+
+From 52515bae377f221b5473d9040f5f43ab1c672672 Mon Sep 17 00:00:00 2001
+From: Florian Weimer <fweimer@redhat.com>
+Date: Mon, 19 Dec 2022 11:49:06 +0100
+Subject: [PATCH] Include <err.h> and "tcpkill.h" to avoid implicit function
+ declarations
+
+Implicit function declarations are a historic language feature that
+were removed from C in 1999.
+--- a/ngrep.c
++++ b/ngrep.c
+@@ -98,6 +98,7 @@
+ #endif
+
+ #include "ngrep.h"
++#include "tcpkill.h"
+
+
+ /*
+--- a/tcpkill.c
++++ b/tcpkill.c
+@@ -14,6 +14,7 @@
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <string.h>
++#include <err.h>
+ #include <libnet.h>
+ #include <pcap.h>
+
diff --git a/net-analyzer/ngrep/files/ngrep-1.47-regex.patch b/net-analyzer/ngrep/files/ngrep-1.47-regex.patch
new file mode 100644
index 000000000000..613643cf0e6d
--- /dev/null
+++ b/net-analyzer/ngrep/files/ngrep-1.47-regex.patch
@@ -0,0 +1,29 @@
+--- a/configure.in
++++ b/configure.in
+@@ -6,6 +6,7 @@
+ dnl NOTE: configure.in requires autoconf 2.57 or more recent.
+
+ AC_INIT(ngrep.c)
++AC_CONFIG_SUBDIRS([regex-0.12])
+
+ AC_MSG_RESULT
+ AC_MSG_RESULT(Configuring System ...)
+--- a/regex-0.12/Makefile.in
++++ b/regex-0.12/Makefile.in
+@@ -26,13 +26,13 @@
+ # -DEXTRACT_MACROS to use the macros EXTRACT_* (as opposed to
+ # the corresponding C procedures). If not -DDEBUG, the macros
+ # are used.
+-CPPFLAGS =
++CPPFLAGS ?=
+
+ # Likewise, you can override CFLAGS to optimize, use -Wall, etc.
+-CFLAGS = -g
++CFLAGS ?= -g
+
+ # Ditto for LDFLAGS and LOADLIBES.
+-LDFLAGS =
++LDFLAGS ?=
+ LOADLIBES =
+
+ srcdir = @srcdir@
diff --git a/net-analyzer/ngrep/metadata.xml b/net-analyzer/ngrep/metadata.xml
new file mode 100644
index 000000000000..3134c2c29af7
--- /dev/null
+++ b/net-analyzer/ngrep/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>jpr5+gentoo@darkridge.com</email>
+ <name>Jordan Ritter</name>
+ <description>Program author who would like to be notified of bugs</description>
+ </maintainer>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/ngrep/ngrep-1.47-r2.ebuild b/net-analyzer/ngrep/ngrep-1.47-r2.ebuild
new file mode 100644
index 000000000000..93e0d091afdb
--- /dev/null
+++ b/net-analyzer/ngrep/ngrep-1.47-r2.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="A grep for network layers"
+HOMEPAGE="https://github.com/jpr5/ngrep"
+SRC_URI="https://github.com/jpr5/ngrep/archive/V${PV/./_}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${P/./_}"
+
+LICENSE="ngrep"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm ~hppa ppc ppc64 ~s390 ~sparc x86"
+IUSE="ipv6"
+
+DEPEND="
+ dev-libs/libpcre
+ net-libs/libpcap
+"
+
+RDEPEND="
+ ${DEPEND}
+ acct-group/ngrep
+ acct-user/ngrep
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.47-regex.patch
+ "${FILESDIR}"/${PN}-1.47-clang16.patch
+)
+
+src_prepare() {
+ default
+
+ sed -i -e "s:configure.in:configure.ac:" regex*/{configure.in,Makefile.in} || die
+
+ eautoreconf
+}
+
+src_configure() {
+ local myeconfargs=(
+ $(use_enable ipv6)
+ --disable-pcap-restart
+ --enable-pcre
+ --with-dropprivs-user=ngrep
+ --with-pcap-includes="${EPREFIX}"/usr/include/pcap
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake -C regex-0.12
+ emake STRIPFLAG="${CFLAGS}"
+}
diff --git a/net-analyzer/ngrep/ngrep-1.47_p20241209.ebuild b/net-analyzer/ngrep/ngrep-1.47_p20241209.ebuild
new file mode 100644
index 000000000000..94a5b0547774
--- /dev/null
+++ b/net-analyzer/ngrep/ngrep-1.47_p20241209.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="A grep for network layers"
+HOMEPAGE="https://github.com/jpr5/ngrep"
+if [[ ${PV} == *_p* ]] ; then
+ NGREP_COMMIT="b2e3ba3c5a593abf203e65a407c3a9de0f998d4a"
+ SRC_URI="https://github.com/jpr5/ngrep/archive/${NGREP_COMMIT}.tar.gz -> ${P}.gh.tar.gz"
+ S="${WORKDIR}"/${PN}-${NGREP_COMMIT}
+else
+ SRC_URI="https://github.com/jpr5/ngrep/archive/V${PV/./_}.tar.gz -> ${P}.tar.gz"
+ S="${WORKDIR}/${P/./_}"
+fi
+
+LICENSE="ngrep"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm ~hppa ppc ppc64 ~s390 ~sparc x86"
+IUSE="ipv6"
+
+DEPEND="
+ dev-libs/libpcre
+ net-libs/libpcap
+"
+RDEPEND="
+ ${DEPEND}
+ acct-group/ngrep
+ acct-user/ngrep
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.47-regex.patch
+ "${FILESDIR}"/${PN}-1.47-clang16.patch
+)
+
+src_prepare() {
+ default
+
+ sed -i -e "s:configure.in:configure.ac:" regex*/{configure.in,Makefile.in} || die
+
+ eautoreconf
+}
+
+src_configure() {
+ local myeconfargs=(
+ $(use_enable ipv6)
+ --disable-pcap-restart
+ --enable-pcre
+ --with-dropprivs-user=ngrep
+ --with-pcap-includes="${EPREFIX}"/usr/include/pcap
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ emake STRIPFLAG="${CFLAGS}"
+}
diff --git a/net-analyzer/nikto/Manifest b/net-analyzer/nikto/Manifest
new file mode 100644
index 000000000000..c0a859172b2f
--- /dev/null
+++ b/net-analyzer/nikto/Manifest
@@ -0,0 +1,2 @@
+DIST nikto-2.1.6_p20220602.tar.gz 455528 BLAKE2B 71094c786b274069eb17aac7d367bdc8535c7730afde7c7bf36d40719e2799561eb31ad9cc09ee39c47101880795eee0f1c46ca51c00644cdc23916033cc5f7e SHA512 5c8ce194951c10b8a5f4299e088928022193aa8ae7ed4fb6b9be76bcf03a405d776d6e30274f997ad9eeb95c012c7e09b6dec7cbecbe0ab4049e5d15529ae814
+DIST nikto-2.5.0.tar.gz 435886 BLAKE2B 66e3aaab87f031daeade1a46afce5f02b296a75a542c1f781140fa9e2a2b98c7a0051f0920cd109e35684c14e4137a59ac7f26a10d98dcaf663424ee1f5e10af SHA512 8561c048b2db9b91a53f389097f6f47b06b51d0bbb06d945a26463067a1b2192ae6ad086e8f14e8775827fa8075dabfff66df8c3f79915b7a2d4eaefb09894de
diff --git a/net-analyzer/nikto/metadata.xml b/net-analyzer/nikto/metadata.xml
new file mode 100644
index 000000000000..b8bbc5a2bf58
--- /dev/null
+++ b/net-analyzer/nikto/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>gentoo@retornaz.com</email>
+ <name>Quentin Retornaz</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:cirt.net:nikto</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nikto/nikto-2.1.6_p20220602.ebuild b/net-analyzer/nikto/nikto-2.1.6_p20220602.ebuild
new file mode 100644
index 000000000000..51b29feced12
--- /dev/null
+++ b/net-analyzer/nikto/nikto-2.1.6_p20220602.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Web server vulnerability scanner"
+HOMEPAGE="https://www.cirt.net/Nikto2"
+COMMIT="dc98b86d3860ea18d82b5a427ab7abcd57e01552"
+MY_P="${PN}-${COMMIT}"
+SRC_URI="https://github.com/sullo/nikto/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86"
+
+# nikto provides its own libwhisker, do no use net-libs/libwhisker[ssl]
+# https://bugs.gentoo.org/533900
+RDEPEND="
+ dev-lang/perl
+ dev-perl/Net-SSLeay
+ net-analyzer/nmap
+ virtual/perl-JSON-PP
+"
+
+S="${WORKDIR}/${MY_P}/program"
+
+src_prepare() {
+ sed -i -e 's:/etc/nikto.conf:/etc/nikto/nikto.conf:' nikto.pl || die
+ sed -i -e 's:# EXECDIR=/opt/nikto:EXECDIR=/usr/share/nikto:' nikto.conf.default || die
+
+ default
+}
+
+src_install() {
+ insinto /etc/nikto
+ newins nikto.conf.default nikto.conf
+
+ dobin nikto.pl replay.pl
+ dosym nikto.pl /usr/bin/nikto
+
+ insinto /usr/share/nikto
+ doins -r plugins templates databases
+
+ dodoc docs/nikto_manual.html
+ dodoc docs/nikto_schema.sql
+ doman docs/nikto.1
+}
diff --git a/net-analyzer/nikto/nikto-2.5.0.ebuild b/net-analyzer/nikto/nikto-2.5.0.ebuild
new file mode 100644
index 000000000000..a0dc640beef7
--- /dev/null
+++ b/net-analyzer/nikto/nikto-2.5.0.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Web server vulnerability scanner"
+HOMEPAGE="https://www.cirt.net/Nikto2"
+SRC_URI="https://github.com/sullo/nikto/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86"
+
+# nikto provides its own libwhisker, do no use net-libs/libwhisker[ssl]
+# https://bugs.gentoo.org/533900
+RDEPEND="
+ dev-lang/perl
+ dev-perl/Net-SSLeay
+ net-analyzer/nmap
+ virtual/perl-JSON-PP
+"
+
+S="${WORKDIR}/${P}/program"
+
+src_prepare() {
+ sed -i -e 's:/etc/nikto.conf:/etc/nikto/nikto.conf:' nikto.pl || die
+ sed -i -e 's:# EXECDIR=/opt/nikto:EXECDIR=/usr/share/nikto:' nikto.conf.default || die
+
+ default
+}
+
+src_install() {
+ insinto /etc/nikto
+ newins nikto.conf.default nikto.conf
+
+ dobin nikto.pl replay.pl
+ dosym nikto.pl /usr/bin/nikto
+
+ insinto /usr/share/nikto
+ doins -r plugins templates databases
+
+ doman docs/nikto.1
+ dodoc docs/nikto.dtd
+ dodoc docs/nikto_schema.sql
+}
diff --git a/net-analyzer/nload/Manifest b/net-analyzer/nload/Manifest
new file mode 100644
index 000000000000..492a7ee2de73
--- /dev/null
+++ b/net-analyzer/nload/Manifest
@@ -0,0 +1 @@
+DIST nload-0.7.5_pre20180309.tar.gz 43405 BLAKE2B b5d8aeffc5de52c8574a8d11f133b2c5a38d09fd5a1abb75e2a9ea99551b018947844348ab73a26d806c575a387f1d4a5354144612ac7ea0f45bab5bd7d05115 SHA512 5942d706ac1f8acf57c832ee832a6b96add3c3d80fb45d3a5f6eb2397d20d49c4cc52e754328259bb52b06bd4e4b15e92d86103a531ae4ac546fcb87e3e5131b
diff --git a/net-analyzer/nload/files/nload-0.7.5_pre-Makefile-spec-don-t-compress-man-page.patch b/net-analyzer/nload/files/nload-0.7.5_pre-Makefile-spec-don-t-compress-man-page.patch
new file mode 100644
index 000000000000..ff97f7004f94
--- /dev/null
+++ b/net-analyzer/nload/files/nload-0.7.5_pre-Makefile-spec-don-t-compress-man-page.patch
@@ -0,0 +1,63 @@
+Upstream: https://github.com/rolandriegel/nload/pull/4
+
+From 096df0d1282a8c8c535e730d28fe281ea290b58d Mon Sep 17 00:00:00 2001
+From: Andrey Mazo <ahippo@yandex.com>
+Date: Sun, 26 Aug 2018 00:00:35 +0300
+Subject: [PATCH 1/1] Makefile,spec: don't compress the man-page
+
+Package managers like to compress man-pages on their own,
+because the type of compression for man-pages is user-configurable.
+In particular, Gentoo [1] doesn't want packages to compress their man-pages.
+Gentoo Portage has workarounds for this,
+but this is not specified in Package Manager Specification and
+results in extra compression-decompression pass.
+
+RPM also compresses man-pages itself (in `brp-compress`)
+(and similarly recompresses them as needed)
+rather than relying on packages to install compressed man-pages.
+
+Automake can handle installation of man-pages without the explicit "install" target,
+so use the standard automake-provided way of installing man-pages.
+It's also smart enough to package `nload.1.in` automatically.
+
+Don't specify an explicit man-page extension in .spec file as recommended by Fedora.
+
+[1] https://github.com/gentoo/gentoo/pull/9543#issuecomment-415662844
+---
+ docs/Makefile.am | 10 +---------
+ nload.spec.in | 2 +-
+ 2 files changed, 2 insertions(+), 10 deletions(-)
+
+diff --git a/docs/Makefile.am b/docs/Makefile.am
+index 706636e..9032a02 100644
+--- a/docs/Makefile.am
++++ b/docs/Makefile.am
+@@ -1,11 +1,3 @@
+ ## Helder Correia <helder.correia@netcabo.pt>
+
+-man1_MAN = nload.1
+-
+-install:
+- $(mkinstalldirs) $(DESTDIR)$(mandir)/man1
+- $(INSTALL_DATA) $(top_builddir)/docs/$(PACKAGE).1 $(DESTDIR)$(mandir)/man1
+- gzip -f $(DESTDIR)$(mandir)/man1/$(PACKAGE).1
+-
+-uninstall:
+- rm $(DESTDIR)$(mandir)/man1/$(PACKAGE).1.gz
++man1_MANS = nload.1
+diff --git a/nload.spec.in b/nload.spec.in
+index 794e5e7..29ab486 100644
+--- a/nload.spec.in
++++ b/nload.spec.in
+@@ -41,7 +41,7 @@ rm -rf %{buildroot}
+ %defattr(-,root,root)
+ %doc AUTHORS COPYING ChangeLog README.md
+ %attr(0755,root,root) %{_bindir}/%{name}
+-%{_mandir}/man1/%{name}.1.gz
++%{_mandir}/man1/%{name}.1*
+
+
+ %changelog
+--
+2.43.0
+
diff --git a/net-analyzer/nload/files/nload-0.7.5_pre-tinfo.patch b/net-analyzer/nload/files/nload-0.7.5_pre-tinfo.patch
new file mode 100644
index 000000000000..caf67cc76b8e
--- /dev/null
+++ b/net-analyzer/nload/files/nload-0.7.5_pre-tinfo.patch
@@ -0,0 +1,10 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -70,6 +70,7 @@
+ esac
+
+ dnl Checks for libraries.
++PKG_CHECK_MODULES([NCURSES],[ncurses],[LIBS="$LIBS $NCURSES_LIBS"],[AC_MSG_ERROR([ncurses was not found])])
+ AC_CHECK_LIB(ncurses, initscr)
+ AC_CHECK_LIB(form, new_form)
+
diff --git a/net-analyzer/nload/metadata.xml b/net-analyzer/nload/metadata.xml
new file mode 100644
index 000000000000..7a51267f2adf
--- /dev/null
+++ b/net-analyzer/nload/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>ahipp0@pm.me</email>
+ <name>Andrey Mazo</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nload/nload-0.7.5_pre20180309.ebuild b/net-analyzer/nload/nload-0.7.5_pre20180309.ebuild
new file mode 100644
index 000000000000..0764502dec28
--- /dev/null
+++ b/net-analyzer/nload/nload-0.7.5_pre20180309.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+GIT_REV="8f92dc04fad283abdd2a4538cd4c2093d957d9da"
+
+DESCRIPTION="Real time network traffic monitor for the command line interface"
+HOMEPAGE="http://www.roland-riegel.de/nload/index.html https://github.com/rolandriegel/nload"
+SRC_URI="https://github.com/rolandriegel/nload/archive/${GIT_REV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="amd64 arm ~mips ppc x86"
+
+RDEPEND=">=sys-libs/ncurses-5.2:0="
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.7.5_pre-tinfo.patch
+ "${FILESDIR}"/${PN}-0.7.5_pre-Makefile-spec-don-t-compress-man-page.patch
+)
+
+S="${WORKDIR}/${PN}-${GIT_REV}"
+
+src_prepare() {
+ default
+ sed -i \
+ -e "/AC_INIT/ s/0\.7\.4/${PV} (Gentoo)/" \
+ configure.ac \
+ || die "Failed to patch configure.ac"
+ eautoreconf
+}
diff --git a/net-analyzer/nmap/Manifest b/net-analyzer/nmap/Manifest
new file mode 100644
index 000000000000..b9ee82872388
--- /dev/null
+++ b/net-analyzer/nmap/Manifest
@@ -0,0 +1,12 @@
+DIST nmap-7.95-patches-2.tar.xz 5740 BLAKE2B 860e7702e2ae1211c4eeeb8f869730de2279a305389f54317f883d2094bfbb1efb9031a761af93bfa8ab56e06bea774dea5807d134dd64f94c2191340a21113b SHA512 e4fb7350ea7e7f2e62f089129c0962652e556fb3bdf272d78c834db299f7f92c3238344c8bd50fea7d1360460ca4768ddad7367ecfcaefdb51125c66cd6981dd
+DIST nmap-7.95.tar.bz2 11717069 BLAKE2B 4ab4912468f6c1cf7517090bc94b1bb34e665fe1b3db973e1c7bb2d05cb885545cdf3ca5c7fb548ff0012b800f5dd60ed2f2010fc9fb62ba7d6a28537287193c SHA512 fd95a8bc627a2b8b507353f761dc9fdc8e880a0dd2d75a51b9cb3ec664318796af9bb16a6ff9a1358bd77ad669c2a54e333be630f201f69287692a7d2d41c17e
+DIST nmap-7.95.tar.bz2.asc 181 BLAKE2B 31db32cb5ad42be25d4b87d8619e0865d7089618839311ada9a2c1e0c9bc89f82ca6253e8151930f152c3fac7ad820ca747ed8427d008f9b04ad2b9e0a0e2b71 SHA512 ce56893796def1b7e8ae96cce90dda073ad84d657cd15d980ee14562a07f7522d438a40ac58422b6f6de7201a9f2678413018633529cb8dcc4e580cfe678c092
+DIST nmap-7.97-patches-1.tar.xz 6236 BLAKE2B aface99574e5316191bb43a2434bc158fef5ed3b6999b671d44f6820547e1b9e1769ecee6303da2326e5980975d77acf812ee722e4bfa6c667e3eeea0d7d4d81 SHA512 e989f015deb22365b058fd111b22e63ecb0056718381cf03b298303e1f46fb0eda98eb0647898356224e6fc36544c84a2ad5c261346d3b23ba2fa6947461fd61
+DIST nmap-7.97-patches-2.tar.xz 6396 BLAKE2B e8271dc1444d0e20882df0a8a66ade5b31946a8fa4a94a0adbc8d5b8cb7b776bdc3f82e98792c53055ac0a6322a4a0ae85f13cda0169fdcc03d0a550a032c7e4 SHA512 d0bc20c9a1e38c1fa65827d584ac44c2fe762661657ec946ffc65861bda2bdc28662fe27d3a5a2ab816e2f2c6d5e9acb56819d8e84a86b58789c46e33c4e8dc1
+DIST nmap-7.97.tar.bz2 12142624 BLAKE2B affeca9f28a4ccb67b3f7154a08e587c5f80e292fc8e442f469812518e435b54d1ab125dbfd52981dc4730c41475d384092352715a2131379a7d032bd476298e SHA512 050241744c311f5fc16297e1698aded2a9fdc78eb7a0954d1c70f7713ef6e1b07f3fcbf28a6a53f43785b1ae710aadf10237d1d0bd8855c6b3c423da4d35961c
+DIST nmap-7.97.tar.bz2.asc 181 BLAKE2B ad465109377ee4d68e302b05b4464700751cf66ef5a8911ed142257cafb2a137ce0d9b82c7ef7edd14aef1a29accabacce05585005593a02301af3ca87c2370b SHA512 ac5ecae4c60a1ee27d7063740334e60791ead9cbc168bdd413017b50d13546ac4dff3852c95942806a67d8a6bec8bc269869b177fbe8825d5d104818fcb0c931
+DIST nmap-7.98.tar.bz2 12273108 BLAKE2B bbc7f4931876b2a59dc8d94b5498e72ee76084db19089820030473628f215a0a89972638f4128e46a46ffa55bd92141bfceab311fa00f4798cf111aca5ec104a SHA512 14e13689d1276f70efc8c905e8eb0a15970f4312c2ef86d8d97e9df11319735e7f7cd73f728f69cf43d27a078ef5ac1e0f39cd119d8cb9262060c42606c6cab3
+DIST nmap-7.98.tar.bz2.asc 181 BLAKE2B 6b971925581746226dc69b5b68619e0d44c6e0504ec9062c1824eb990c3307ba9e13356e1400c52bcbf25c290c15a80378cf9682c0246a72990a3bc07200dc1b SHA512 0716e747381e5a3f70ef013a04bdb12459afa57ef2a09d202e006166d23c0fe7b1391bf6b0d3a4a30839d0f5d031e269b0bcac678e42f280a77914a0ff6314af
+DIST nmap-7.99-patches-1.tar.xz 6276 BLAKE2B 59574660f5418a1c9c654c78f993547b4a053cd193a2b3e29472c0a9ada8632a953e2288d488ac6897f9774cae8b88a5fd9dc1443c5900818146881bdf4856c6 SHA512 a4ccffb231bd40aa953e0220b545f4d94a595b4ebcbdf7832e1b20ee4482563d7d39aeb158ca1853264540e5e094c6523cf7ff60682d1ec106869361d4a696d6
+DIST nmap-7.99.tar.bz2 13036588 BLAKE2B 76cc39c7ba28615a143eec7f6fdf009746ad1c3ca8f07a8d3fb8a707ee116bc1acbfd2e33515817dd3e64cf0b4d8c6d6674e796c06bf20a8ee73e9b38b89341a SHA512 9ff69659b76573eb10b6e472a0217032fd5fed20f0ac971b3736a4222fb6251c5fbf381ebea7ede313b8ff2feac90a848f645000c61200772d01b843594f4ba4
+DIST nmap-7.99.tar.bz2.asc 181 BLAKE2B 413c84dfdd378423d35176e3fdcca2d73b833ad19eaa12fcdd50be8d365981bf1484bb329640619252b11ce81750069f124a7877d7f18d1480492257e738d4c2 SHA512 4dbb3782483d1ea2f3b0b77075e4527f994cfdcb51bdb60c5fe03204023d60ee2ba07746836dd3cccf7b42005feac62fee9cd0cf205085a066f831c224668676
diff --git a/net-analyzer/nmap/files/nls.m4 b/net-analyzer/nmap/files/nls.m4
new file mode 100644
index 000000000000..93df8d3b3f06
--- /dev/null
+++ b/net-analyzer/nmap/files/nls.m4
@@ -0,0 +1,32 @@
+# nls.m4 serial 5 (gettext-0.18)
+dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014 Free Software Foundation,
+dnl Inc.
+dnl This file is free software; the Free Software Foundation
+dnl gives unlimited permission to copy and/or distribute it,
+dnl with or without modifications, as long as this notice is preserved.
+dnl
+dnl This file can be used in projects which are not available under
+dnl the GNU General Public License or the GNU Library General Public
+dnl License but which still want to provide support for the GNU gettext
+dnl functionality.
+dnl Please note that the actual code of the GNU gettext library is covered
+dnl by the GNU Library General Public License, and the rest of the GNU
+dnl gettext package is covered by the GNU General Public License.
+dnl They are *not* in the public domain.
+
+dnl Authors:
+dnl Ulrich Drepper <drepper@cygnus.com>, 1995-2000.
+dnl Bruno Haible <haible@clisp.cons.org>, 2000-2003.
+
+AC_PREREQ([2.50])
+
+AC_DEFUN([AM_NLS],
+[
+ AC_MSG_CHECKING([whether NLS is requested])
+ dnl Default is enabled NLS
+ AC_ARG_ENABLE([nls],
+ [ --disable-nls do not use Native Language Support],
+ USE_NLS=$enableval, USE_NLS=yes)
+ AC_MSG_RESULT([$USE_NLS])
+ AC_SUBST([USE_NLS])
+])
diff --git a/net-analyzer/nmap/metadata.xml b/net-analyzer/nmap/metadata.xml
new file mode 100644
index 000000000000..397c71caa0b5
--- /dev/null
+++ b/net-analyzer/nmap/metadata.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>sam@gentoo.org</email>
+ <name>Sam James</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>dilfridge@gentoo.org</email>
+ <name>Andreas K. Hüttel</name>
+ </maintainer>
+ <use>
+ <flag name="libssh2">Enable SSH support through <pkg>net-libs/libssh2</pkg>
+ </flag>
+ <flag name="ncat">Install the ncat utility</flag>
+ <flag name="ndiff">Install the ndiff utility</flag>
+ <flag name="nping">Install the nping utility</flag>
+ <flag name="nse">Include support for the Nmap Scripting Engine (NSE)</flag>
+ <flag name="symlink">Install symlink to nc</flag>
+ <flag name="zenmap">Install the GTK+ based nmap GUI, zenmap</flag>
+ </use>
+ <upstream>
+ <bugs-to>https://github.com/nmap/nmap/issues</bugs-to>
+ <changelog>https://svn.nmap.org/nmap/CHANGELOG</changelog>
+ <doc>https://nmap.org/docs.html</doc>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nmap/nmap-7.95.ebuild b/net-analyzer/nmap/nmap-7.95.ebuild
new file mode 100644
index 000000000000..949d89961b4d
--- /dev/null
+++ b/net-analyzer/nmap/nmap-7.95.ebuild
@@ -0,0 +1,206 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-{1,3,4} luajit )
+LUA_REQ_USE="deprecated"
+DISTUTILS_OPTIONAL=1
+DISTUTILS_SINGLE_IMPL=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+PLOCALES="de es fr hi hr hu id it ja pl pt_BR pt_PR ro ru sk zh"
+PLOCALE_BACKUP="en"
+inherit autotools distutils-r1 lua-single plocale toolchain-funcs
+
+DESCRIPTION="Network exploration tool and security / port scanner"
+HOMEPAGE="https://nmap.org/"
+if [[ ${PV} == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/nmap/nmap"
+
+else
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/nmap.asc
+ inherit verify-sig
+
+ SRC_URI="https://nmap.org/dist/${P}.tar.bz2"
+ SRC_URI+=" verify-sig? ( https://nmap.org/dist/sigs/${P}.tar.bz2.asc )"
+
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
+fi
+
+SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-7.95-patches-2.tar.xz"
+
+# https://github.com/nmap/nmap/issues/2199
+LICENSE="NPSL-0.95"
+SLOT="0"
+IUSE="ipv6 libssh2 ncat ndiff nping nls +nse ssl symlink zenmap"
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ nse? ( ${LUA_REQUIRED_USE} )
+ symlink? ( ncat )
+"
+
+RDEPEND="
+ dev-libs/liblinear:=
+ dev-libs/libpcre2
+ net-libs/libpcap
+ ndiff? ( ${PYTHON_DEPS} )
+ libssh2? (
+ net-libs/libssh2[zlib]
+ virtual/zlib:=
+ )
+ nls? ( virtual/libintl )
+ nse? (
+ ${LUA_DEPS}
+ virtual/zlib:=
+ )
+ ssl? ( dev-libs/openssl:= )
+ symlink? (
+ ncat? (
+ !net-analyzer/netcat
+ !net-analyzer/openbsd-netcat
+ )
+ )
+ zenmap? (
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep '
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ ')
+ )
+"
+DEPEND="${RDEPEND}"
+# Python is always needed at build time for some scripts
+BDEPEND="
+ ${PYTHON_DEPS}
+ virtual/pkgconfig
+ nls? ( sys-devel/gettext )
+ zenmap? ( ${DISTUTILS_DEPS} )
+"
+
+if [[ ${PV} != *9999* ]] ; then
+ BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-nmap )"
+fi
+
+PATCHES=(
+ "${WORKDIR}"/${PN}-7.95-patches-2
+)
+
+pkg_setup() {
+ use nse && lua-single_pkg_setup
+}
+
+src_unpack() {
+ if [[ ${PV} == *9999 ]] ; then
+ git-r3_src_unpack
+ elif use verify-sig ; then
+ # Needed for downloaded patch (which is unsigned, which is fine)
+ verify-sig_verify_detached "${DISTDIR}"/${P}.tar.bz2{,.asc}
+ fi
+
+ default
+}
+
+src_prepare() {
+ default
+
+ # Drop bundled libraries
+ rm -r liblinear/ libpcap/ libpcre/ libssh2/ libz/ || die
+
+ cat "${FILESDIR}"/nls.m4 >> "${S}"/acinclude.m4 || die
+
+ delete_disabled_locale() {
+ # Force here as PLOCALES contains supported locales for man
+ # pages and zenmap doesn't have all of those
+ rm -rf zenmap/share/zenmap/locale/${1} || die
+ rm -f zenmap/share/zenmap/locale/${1}.po || die
+ }
+ plocale_for_each_disabled_locale delete_disabled_locale
+
+ sed -i \
+ -e '/^ALL_LINGUAS =/{s|$| id|g;s|jp|ja|g}' \
+ Makefile.in || die
+
+ cp libdnet-stripped/include/config.h.in{,.nmap-orig} || die
+
+ eautoreconf
+
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # We need the original for a Darwin-specific fix, bug #604432
+ mv libdnet-stripped/include/config.h.in{.nmap-orig,} || die
+ fi
+}
+
+src_configure() {
+ export ac_cv_path_PYTHON="${PYTHON}"
+ export am_cv_pathless_PYTHON="${EPYTHON}"
+
+ python_setup
+
+ local myeconfargs=(
+ $(use_enable ipv6)
+ $(use_enable nls)
+ $(use_with libssh2)
+ $(use_with ncat)
+ $(use_with ndiff)
+ $(use_with nping)
+ $(use_with nse liblua)
+ $(use_with ssl openssl)
+ $(use_with zenmap)
+ $(usex libssh2 --with-zlib)
+ $(usex nse --with-zlib)
+ --cache-file="${S}"/config.cache
+ # The bundled libdnet is incompatible with the version available in the
+ # tree, so we cannot use the system library here.
+ --with-libdnet=included
+ --with-pcre="${ESYSROOT}"/usr
+ --without-dpdk
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ local directory
+ for directory in . libnetutil nsock/src $(usev ncat) $(usev nping) ; do
+ emake -C "${directory}" makefile.dep
+ done
+
+ emake \
+ AR="$(tc-getAR)" \
+ RANLIB="$(tc-getRANLIB)"
+
+ if use zenmap ; then
+ cd zenmap || die
+ distutils-r1_src_compile
+ fi
+}
+
+src_test() {
+ local -x PATH="${S}:${PATH}"
+
+ default
+}
+
+src_install() {
+ # See bug #831713 for return of -j1
+ LC_ALL=C emake \
+ -j1 \
+ DESTDIR="${D}" \
+ STRIP=: \
+ nmapdatadir="${EPREFIX}"/usr/share/nmap \
+ install
+
+ dodoc CHANGELOG HACKING docs/README docs/*.txt
+
+ use symlink && dosym /usr/bin/ncat /usr/bin/nc
+
+ if use ndiff ; then
+ python_optimize
+ fi
+
+ if use zenmap ; then
+ distutils-r1_src_install
+ fi
+}
diff --git a/net-analyzer/nmap/nmap-7.97.ebuild b/net-analyzer/nmap/nmap-7.97.ebuild
new file mode 100644
index 000000000000..8e02f4319e46
--- /dev/null
+++ b/net-analyzer/nmap/nmap-7.97.ebuild
@@ -0,0 +1,214 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-{1,3,4} luajit )
+LUA_REQ_USE="deprecated"
+DISTUTILS_OPTIONAL=1
+DISTUTILS_SINGLE_IMPL=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+PLOCALES="de es fr hi hr hu id it ja pl pt_BR pt_PR ro ru sk zh"
+PLOCALE_BACKUP="en"
+inherit autotools distutils-r1 lua-single plocale toolchain-funcs
+
+DESCRIPTION="Network exploration tool and security / port scanner"
+HOMEPAGE="https://nmap.org/"
+if [[ ${PV} == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/nmap/nmap"
+
+else
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/nmap.asc
+ inherit verify-sig
+
+ SRC_URI="https://nmap.org/dist/${P}.tar.bz2"
+ SRC_URI+=" verify-sig? ( https://nmap.org/dist/sigs/${P}.tar.bz2.asc )"
+
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+fi
+
+SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-7.97-patches-1.tar.xz"
+
+# https://github.com/nmap/nmap/issues/2199
+LICENSE="NPSL-0.95"
+SLOT="0"
+IUSE="ipv6 libssh2 ncat ndiff nping nls +nse ssl symlink zenmap"
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ nse? ( ${LUA_REQUIRED_USE} )
+ symlink? ( ncat )
+"
+
+RDEPEND="
+ dev-libs/liblinear:=
+ dev-libs/libpcre2
+ net-libs/libpcap
+ ndiff? ( ${PYTHON_DEPS} )
+ libssh2? (
+ net-libs/libssh2[zlib]
+ virtual/zlib:=
+ )
+ nls? ( virtual/libintl )
+ nse? (
+ ${LUA_DEPS}
+ virtual/zlib:=
+ )
+ ssl? ( dev-libs/openssl:= )
+ symlink? (
+ ncat? (
+ !net-analyzer/netcat
+ !net-analyzer/openbsd-netcat
+ )
+ )
+ zenmap? (
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep '
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ ')
+ )
+"
+DEPEND="${RDEPEND}"
+# Python is always needed at build time for some scripts
+BDEPEND="
+ ${PYTHON_DEPS}
+ virtual/pkgconfig
+ nls? ( sys-devel/gettext )
+ zenmap? ( ${DISTUTILS_DEPS} )
+"
+
+if [[ ${PV} != *9999* ]] ; then
+ BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-nmap )"
+fi
+
+PATCHES=(
+ "${WORKDIR}"/${PN}-7.97-patches-2
+)
+
+pkg_setup() {
+ use nse && lua-single_pkg_setup
+}
+
+src_unpack() {
+ if [[ ${PV} == *9999 ]] ; then
+ git-r3_src_unpack
+ elif use verify-sig ; then
+ # Needed for downloaded patch (which is unsigned, which is fine)
+ verify-sig_verify_detached "${DISTDIR}"/${P}.tar.bz2{,.asc}
+ fi
+
+ default
+}
+
+src_prepare() {
+ default
+
+ # Drop bundled libraries
+ rm -r liblinear/ libpcap/ libpcre/ libssh2/ libz/ || die
+
+ cat "${FILESDIR}"/nls.m4 >> "${S}"/acinclude.m4 || die
+
+ delete_disabled_locale() {
+ # Force here as PLOCALES contains supported locales for man
+ # pages and zenmap doesn't have all of those
+ rm -rf zenmap/share/zenmap/locale/${1} || die
+ rm -f zenmap/share/zenmap/locale/${1}.po || die
+ }
+ plocale_for_each_disabled_locale delete_disabled_locale
+
+ sed -i \
+ -e '/^ALL_LINGUAS =/{s|$| id|g;s|jp|ja|g}' \
+ Makefile.in || die
+
+ cp libdnet-stripped/include/config.h.in{,.nmap-orig} || die
+
+ eautoreconf
+
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # We need the original for a Darwin-specific fix, bug #604432
+ mv libdnet-stripped/include/config.h.in{.nmap-orig,} || die
+ fi
+}
+
+src_configure() {
+ export ac_cv_path_PYTHON="${PYTHON}"
+ export am_cv_pathless_PYTHON="${EPYTHON}"
+
+ python_setup
+
+ local myeconfargs=(
+ $(use_enable ipv6)
+ $(use_enable nls)
+ $(use_with libssh2)
+ $(use_with ncat)
+ $(use_with ndiff)
+ $(use_with nping)
+ $(use_with nse liblua)
+ $(use_with ssl openssl)
+ $(use_with zenmap)
+ $(usex libssh2 --with-zlib)
+ $(usex nse --with-zlib)
+ --cache-file="${S}"/config.cache
+ # The bundled libdnet is incompatible with the version available in the
+ # tree, so we cannot use the system library here.
+ --with-libdnet=included
+ --with-libpcre="${ESYSROOT}"/usr
+ --without-dpdk
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ local directory
+ for directory in . libnetutil nsock/src $(usev ncat) $(usev nping) ; do
+ emake -C "${directory}" makefile.dep
+ done
+
+ emake \
+ AR="$(tc-getAR)" \
+ RANLIB="$(tc-getRANLIB)"
+
+ if use ndiff || use zenmap ; then
+ distutils-r1_src_compile
+ fi
+}
+
+python_compile() {
+ if use ndiff ; then
+ cd "${S}"/ndiff || die
+ distutils-r1_python_compile
+ fi
+
+ if use zenmap ; then
+ cd "${S}"/zenmap || die
+ distutils-r1_python_compile
+ fi
+}
+
+src_test() {
+ local -x PATH="${S}:${PATH}"
+
+ default
+}
+
+src_install() {
+ # See bug #831713 for return of -j1
+ LC_ALL=C emake \
+ -j1 \
+ DESTDIR="${D}" \
+ STRIP=: \
+ nmapdatadir="${EPREFIX}"/usr/share/nmap \
+ install
+
+ dodoc CHANGELOG HACKING docs/README docs/*.txt
+
+ use symlink && dosym /usr/bin/ncat /usr/bin/nc
+
+ if use ndiff || use zenmap ; then
+ distutils-r1_src_install
+ python_optimize
+ fi
+}
diff --git a/net-analyzer/nmap/nmap-7.98.ebuild b/net-analyzer/nmap/nmap-7.98.ebuild
new file mode 100644
index 000000000000..dd64a256ae81
--- /dev/null
+++ b/net-analyzer/nmap/nmap-7.98.ebuild
@@ -0,0 +1,214 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-{1,3,4} luajit )
+LUA_REQ_USE="deprecated"
+DISTUTILS_OPTIONAL=1
+DISTUTILS_SINGLE_IMPL=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+PLOCALES="de es fr hi hr hu id it ja pl pt_BR pt_PR ro ru sk zh"
+PLOCALE_BACKUP="en"
+inherit autotools distutils-r1 lua-single plocale toolchain-funcs
+
+DESCRIPTION="Network exploration tool and security / port scanner"
+HOMEPAGE="https://nmap.org/"
+if [[ ${PV} == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/nmap/nmap"
+
+else
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/nmap.asc
+ inherit verify-sig
+
+ SRC_URI="https://nmap.org/dist/${P}.tar.bz2"
+ SRC_URI+=" verify-sig? ( https://nmap.org/dist/sigs/${P}.tar.bz2.asc )"
+
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+fi
+
+SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-7.97-patches-2.tar.xz"
+
+# https://github.com/nmap/nmap/issues/2199
+LICENSE="NPSL-0.95"
+SLOT="0"
+IUSE="ipv6 libssh2 ncat ndiff nping nls +nse ssl symlink zenmap"
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ nse? ( ${LUA_REQUIRED_USE} )
+ symlink? ( ncat )
+"
+
+RDEPEND="
+ dev-libs/liblinear:=
+ dev-libs/libpcre2
+ net-libs/libpcap
+ ndiff? ( ${PYTHON_DEPS} )
+ libssh2? (
+ net-libs/libssh2[zlib]
+ virtual/zlib:=
+ )
+ nls? ( virtual/libintl )
+ nse? (
+ ${LUA_DEPS}
+ virtual/zlib:=
+ )
+ ssl? ( dev-libs/openssl:= )
+ symlink? (
+ ncat? (
+ !net-analyzer/netcat
+ !net-analyzer/openbsd-netcat
+ )
+ )
+ zenmap? (
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep '
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ ')
+ )
+"
+DEPEND="${RDEPEND}"
+# Python is always needed at build time for some scripts
+BDEPEND="
+ ${PYTHON_DEPS}
+ virtual/pkgconfig
+ nls? ( sys-devel/gettext )
+ zenmap? ( ${DISTUTILS_DEPS} )
+"
+
+if [[ ${PV} != *9999* ]] ; then
+ BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-nmap )"
+fi
+
+PATCHES=(
+ "${WORKDIR}"/${PN}-7.97-patches-1
+)
+
+pkg_setup() {
+ use nse && lua-single_pkg_setup
+}
+
+src_unpack() {
+ if [[ ${PV} == *9999 ]] ; then
+ git-r3_src_unpack
+ elif use verify-sig ; then
+ # Needed for downloaded patch (which is unsigned, which is fine)
+ verify-sig_verify_detached "${DISTDIR}"/${P}.tar.bz2{,.asc}
+ fi
+
+ default
+}
+
+src_prepare() {
+ default
+
+ # Drop bundled libraries
+ rm -r liblinear/ libpcap/ libpcre/ libssh2/ libz/ || die
+
+ cat "${FILESDIR}"/nls.m4 >> "${S}"/acinclude.m4 || die
+
+ delete_disabled_locale() {
+ # Force here as PLOCALES contains supported locales for man
+ # pages and zenmap doesn't have all of those
+ rm -rf zenmap/share/zenmap/locale/${1} || die
+ rm -f zenmap/share/zenmap/locale/${1}.po || die
+ }
+ plocale_for_each_disabled_locale delete_disabled_locale
+
+ sed -i \
+ -e '/^ALL_LINGUAS =/{s|$| id|g;s|jp|ja|g}' \
+ Makefile.in || die
+
+ cp libdnet-stripped/include/config.h.in{,.nmap-orig} || die
+
+ eautoreconf
+
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # We need the original for a Darwin-specific fix, bug #604432
+ mv libdnet-stripped/include/config.h.in{.nmap-orig,} || die
+ fi
+}
+
+src_configure() {
+ export ac_cv_path_PYTHON="${PYTHON}"
+ export am_cv_pathless_PYTHON="${EPYTHON}"
+
+ python_setup
+
+ local myeconfargs=(
+ $(use_enable ipv6)
+ $(use_enable nls)
+ $(use_with libssh2)
+ $(use_with ncat)
+ $(use_with ndiff)
+ $(use_with nping)
+ $(use_with nse liblua)
+ $(use_with ssl openssl)
+ $(use_with zenmap)
+ $(usex libssh2 --with-zlib)
+ $(usex nse --with-zlib)
+ --cache-file="${S}"/config.cache
+ # The bundled libdnet is incompatible with the version available in the
+ # tree, so we cannot use the system library here.
+ --with-libdnet=included
+ --with-libpcre="${ESYSROOT}"/usr
+ --without-dpdk
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ local directory
+ for directory in . libnetutil nsock/src $(usev ncat) $(usev nping) ; do
+ emake -C "${directory}" makefile.dep
+ done
+
+ emake \
+ AR="$(tc-getAR)" \
+ RANLIB="$(tc-getRANLIB)"
+
+ if use ndiff || use zenmap ; then
+ distutils-r1_src_compile
+ fi
+}
+
+python_compile() {
+ if use ndiff ; then
+ cd "${S}"/ndiff || die
+ distutils-r1_python_compile
+ fi
+
+ if use zenmap ; then
+ cd "${S}"/zenmap || die
+ distutils-r1_python_compile
+ fi
+}
+
+src_test() {
+ local -x PATH="${S}:${PATH}"
+
+ default
+}
+
+src_install() {
+ # See bug #831713 for return of -j1
+ LC_ALL=C emake \
+ -j1 \
+ DESTDIR="${D}" \
+ STRIP=: \
+ nmapdatadir="${EPREFIX}"/usr/share/nmap \
+ install
+
+ dodoc CHANGELOG HACKING docs/README docs/*.txt
+
+ use symlink && dosym /usr/bin/ncat /usr/bin/nc
+
+ if use ndiff || use zenmap ; then
+ distutils-r1_src_install
+ python_optimize
+ fi
+}
diff --git a/net-analyzer/nmap/nmap-7.99.ebuild b/net-analyzer/nmap/nmap-7.99.ebuild
new file mode 100644
index 000000000000..b0e6f5e8807a
--- /dev/null
+++ b/net-analyzer/nmap/nmap-7.99.ebuild
@@ -0,0 +1,213 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-{1,3,4} luajit )
+LUA_REQ_USE="deprecated"
+DISTUTILS_OPTIONAL=1
+DISTUTILS_SINGLE_IMPL=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+PLOCALES="de es fr hi hr hu id it ja pl pt_BR pt_PR ro ru sk zh"
+PLOCALE_BACKUP="en"
+inherit autotools distutils-r1 lua-single plocale toolchain-funcs
+
+DESCRIPTION="Network exploration tool and security / port scanner"
+HOMEPAGE="https://nmap.org/"
+if [[ ${PV} == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/nmap/nmap"
+
+else
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/nmap.asc
+ inherit verify-sig
+
+ SRC_URI="https://nmap.org/dist/${P}.tar.bz2"
+ SRC_URI+=" verify-sig? ( https://nmap.org/dist/sigs/${P}.tar.bz2.asc )"
+
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos"
+fi
+
+SRC_URI+=" https://distfiles.gentoo.org/pub/dev/dilfridge@gentoo.org/${CATEGORY}/${PN}/${PN}-7.99-patches-1.tar.xz"
+
+# https://github.com/nmap/nmap/issues/2199
+LICENSE="NPSL-0.95"
+SLOT="0"
+IUSE="libssh2 ncat ndiff nping nls +nse ssl symlink zenmap"
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ nse? ( ${LUA_REQUIRED_USE} )
+ symlink? ( ncat )
+"
+
+RDEPEND="
+ dev-libs/liblinear:=
+ dev-libs/libpcre2
+ net-libs/libpcap
+ ndiff? ( ${PYTHON_DEPS} )
+ libssh2? (
+ net-libs/libssh2[zlib]
+ virtual/zlib:=
+ )
+ nls? ( virtual/libintl )
+ nse? (
+ ${LUA_DEPS}
+ virtual/zlib:=
+ )
+ ssl? ( dev-libs/openssl:= )
+ symlink? (
+ ncat? (
+ !net-analyzer/netcat
+ !net-analyzer/openbsd-netcat
+ )
+ )
+ zenmap? (
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep '
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ ')
+ )
+"
+DEPEND="${RDEPEND}"
+# Python is always needed at build time for some scripts
+BDEPEND="
+ ${PYTHON_DEPS}
+ virtual/pkgconfig
+ nls? ( sys-devel/gettext )
+ zenmap? ( ${DISTUTILS_DEPS} )
+"
+
+if [[ ${PV} != *9999* ]] ; then
+ BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-nmap )"
+fi
+
+PATCHES=(
+ "${WORKDIR}"/${PN}-7.99-patches-1
+)
+
+pkg_setup() {
+ use nse && lua-single_pkg_setup
+}
+
+src_unpack() {
+ if [[ ${PV} == *9999 ]] ; then
+ git-r3_src_unpack
+ elif use verify-sig ; then
+ # Needed for downloaded patch (which is unsigned, which is fine)
+ verify-sig_verify_detached "${DISTDIR}"/${P}.tar.bz2{,.asc}
+ fi
+
+ default
+}
+
+src_prepare() {
+ default
+
+ # Drop bundled libraries
+ rm -r liblinear/ libpcap/ libpcre/ libssh2/ libz/ || die
+
+ cat "${FILESDIR}"/nls.m4 >> "${S}"/acinclude.m4 || die
+
+ delete_disabled_locale() {
+ # Force here as PLOCALES contains supported locales for man
+ # pages and zenmap doesn't have all of those
+ rm -rf zenmap/share/zenmap/locale/${1} || die
+ rm -f zenmap/share/zenmap/locale/${1}.po || die
+ }
+ plocale_for_each_disabled_locale delete_disabled_locale
+
+ sed -i \
+ -e '/^ALL_LINGUAS =/{s|$| id|g;s|jp|ja|g}' \
+ Makefile.in || die
+
+ cp libdnet-stripped/include/config.h.in{,.nmap-orig} || die
+
+ eautoreconf
+
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # We need the original for a Darwin-specific fix, bug #604432
+ mv libdnet-stripped/include/config.h.in{.nmap-orig,} || die
+ fi
+}
+
+src_configure() {
+ export ac_cv_path_PYTHON="${PYTHON}"
+ export am_cv_pathless_PYTHON="${EPYTHON}"
+
+ python_setup
+
+ local myeconfargs=(
+ --enable-ipv6
+ $(use_enable nls)
+ $(use_with libssh2)
+ $(use_with ncat)
+ $(use_with ndiff)
+ $(use_with nping)
+ $(use_with nse liblua)
+ $(use_with ssl openssl)
+ $(use_with zenmap)
+ $(usex libssh2 --with-zlib)
+ $(usex nse --with-zlib)
+ --cache-file="${S}"/config.cache
+ # The bundled libdnet is incompatible with the version available in the
+ # tree, so we cannot use the system library here.
+ --with-libdnet=included
+ --without-dpdk
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ local directory
+ for directory in . libnetutil nsock/src $(usev ncat) $(usev nping) ; do
+ emake -C "${directory}" makefile.dep
+ done
+
+ emake \
+ AR="$(tc-getAR)" \
+ RANLIB="$(tc-getRANLIB)"
+
+ if use ndiff || use zenmap ; then
+ distutils-r1_src_compile
+ fi
+}
+
+python_compile() {
+ if use ndiff ; then
+ cd "${S}"/ndiff || die
+ distutils-r1_python_compile
+ fi
+
+ if use zenmap ; then
+ cd "${S}"/zenmap || die
+ distutils-r1_python_compile
+ fi
+}
+
+src_test() {
+ local -x PATH="${S}:${PATH}"
+
+ default
+}
+
+src_install() {
+ # See bug #831713 for return of -j1
+ LC_ALL=C emake \
+ -j1 \
+ DESTDIR="${D}" \
+ STRIP=: \
+ nmapdatadir="${EPREFIX}"/usr/share/nmap \
+ install
+
+ dodoc CHANGELOG HACKING docs/README docs/*.txt
+
+ use symlink && dosym /usr/bin/ncat /usr/bin/nc
+
+ if use ndiff || use zenmap ; then
+ distutils-r1_src_install
+ python_optimize
+ fi
+}
diff --git a/net-analyzer/nmap/nmap-9999.ebuild b/net-analyzer/nmap/nmap-9999.ebuild
new file mode 100644
index 000000000000..783055a2e731
--- /dev/null
+++ b/net-analyzer/nmap/nmap-9999.ebuild
@@ -0,0 +1,213 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-{1,3,4} luajit )
+LUA_REQ_USE="deprecated"
+DISTUTILS_OPTIONAL=1
+DISTUTILS_SINGLE_IMPL=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+PLOCALES="de es fr hi hr hu id it ja pl pt_BR pt_PR ro ru sk zh"
+PLOCALE_BACKUP="en"
+inherit autotools distutils-r1 lua-single plocale toolchain-funcs
+
+DESCRIPTION="Network exploration tool and security / port scanner"
+HOMEPAGE="https://nmap.org/"
+if [[ ${PV} == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/nmap/nmap"
+
+else
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/nmap.asc
+ inherit verify-sig
+
+ SRC_URI="https://nmap.org/dist/${P}.tar.bz2"
+ SRC_URI+=" verify-sig? ( https://nmap.org/dist/sigs/${P}.tar.bz2.asc )"
+
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+fi
+
+SRC_URI+=" https://distfiles.gentoo.org/pub/dev/dilfridge@gentoo.org/${CATEGORY}/${PN}/${PN}-7.99-patches-1.tar.xz"
+
+# https://github.com/nmap/nmap/issues/2199
+LICENSE="NPSL-0.95"
+SLOT="0"
+IUSE="libssh2 ncat ndiff nping nls +nse ssl symlink zenmap"
+REQUIRED_USE="
+ ${PYTHON_REQUIRED_USE}
+ nse? ( ${LUA_REQUIRED_USE} )
+ symlink? ( ncat )
+"
+
+RDEPEND="
+ dev-libs/liblinear:=
+ dev-libs/libpcre2
+ net-libs/libpcap
+ ndiff? ( ${PYTHON_DEPS} )
+ libssh2? (
+ net-libs/libssh2[zlib]
+ virtual/zlib:=
+ )
+ nls? ( virtual/libintl )
+ nse? (
+ ${LUA_DEPS}
+ virtual/zlib:=
+ )
+ ssl? ( dev-libs/openssl:= )
+ symlink? (
+ ncat? (
+ !net-analyzer/netcat
+ !net-analyzer/openbsd-netcat
+ )
+ )
+ zenmap? (
+ ${PYTHON_DEPS}
+ $(python_gen_cond_dep '
+ dev-python/pygobject:3[${PYTHON_USEDEP}]
+ ')
+ )
+"
+DEPEND="${RDEPEND}"
+# Python is always needed at build time for some scripts
+BDEPEND="
+ ${PYTHON_DEPS}
+ virtual/pkgconfig
+ nls? ( sys-devel/gettext )
+ zenmap? ( ${DISTUTILS_DEPS} )
+"
+
+if [[ ${PV} != *9999* ]] ; then
+ BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-nmap )"
+fi
+
+PATCHES=(
+ "${WORKDIR}"/${PN}-7.99-patches-1
+)
+
+pkg_setup() {
+ use nse && lua-single_pkg_setup
+}
+
+src_unpack() {
+ if [[ ${PV} == *9999 ]] ; then
+ git-r3_src_unpack
+ elif use verify-sig ; then
+ # Needed for downloaded patch (which is unsigned, which is fine)
+ verify-sig_verify_detached "${DISTDIR}"/${P}.tar.bz2{,.asc}
+ fi
+
+ default
+}
+
+src_prepare() {
+ default
+
+ # Drop bundled libraries
+ rm -r liblinear/ libpcap/ libpcre/ libssh2/ libz/ || die
+
+ cat "${FILESDIR}"/nls.m4 >> "${S}"/acinclude.m4 || die
+
+ delete_disabled_locale() {
+ # Force here as PLOCALES contains supported locales for man
+ # pages and zenmap doesn't have all of those
+ rm -rf zenmap/share/zenmap/locale/${1} || die
+ rm -f zenmap/share/zenmap/locale/${1}.po || die
+ }
+ plocale_for_each_disabled_locale delete_disabled_locale
+
+ sed -i \
+ -e '/^ALL_LINGUAS =/{s|$| id|g;s|jp|ja|g}' \
+ Makefile.in || die
+
+ cp libdnet-stripped/include/config.h.in{,.nmap-orig} || die
+
+ eautoreconf
+
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # We need the original for a Darwin-specific fix, bug #604432
+ mv libdnet-stripped/include/config.h.in{.nmap-orig,} || die
+ fi
+}
+
+src_configure() {
+ export ac_cv_path_PYTHON="${PYTHON}"
+ export am_cv_pathless_PYTHON="${EPYTHON}"
+
+ python_setup
+
+ local myeconfargs=(
+ --enable-ipv6
+ $(use_enable nls)
+ $(use_with libssh2)
+ $(use_with ncat)
+ $(use_with ndiff)
+ $(use_with nping)
+ $(use_with nse liblua)
+ $(use_with ssl openssl)
+ $(use_with zenmap)
+ $(usex libssh2 --with-zlib)
+ $(usex nse --with-zlib)
+ --cache-file="${S}"/config.cache
+ # The bundled libdnet is incompatible with the version available in the
+ # tree, so we cannot use the system library here.
+ --with-libdnet=included
+ --without-dpdk
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ local directory
+ for directory in . libnetutil nsock/src $(usev ncat) $(usev nping) ; do
+ emake -C "${directory}" makefile.dep
+ done
+
+ emake \
+ AR="$(tc-getAR)" \
+ RANLIB="$(tc-getRANLIB)"
+
+ if use ndiff || use zenmap ; then
+ distutils-r1_src_compile
+ fi
+}
+
+python_compile() {
+ if use ndiff ; then
+ cd "${S}"/ndiff || die
+ distutils-r1_python_compile
+ fi
+
+ if use zenmap ; then
+ cd "${S}"/zenmap || die
+ distutils-r1_python_compile
+ fi
+}
+
+src_test() {
+ local -x PATH="${S}:${PATH}"
+
+ default
+}
+
+src_install() {
+ # See bug #831713 for return of -j1
+ LC_ALL=C emake \
+ -j1 \
+ DESTDIR="${D}" \
+ STRIP=: \
+ nmapdatadir="${EPREFIX}"/usr/share/nmap \
+ install
+
+ dodoc CHANGELOG HACKING docs/README docs/*.txt
+
+ use symlink && dosym /usr/bin/ncat /usr/bin/nc
+
+ if use ndiff || use zenmap ; then
+ distutils-r1_src_install
+ python_optimize
+ fi
+}
diff --git a/net-analyzer/nmapsi/Manifest b/net-analyzer/nmapsi/Manifest
new file mode 100644
index 000000000000..0b01af0af4df
--- /dev/null
+++ b/net-analyzer/nmapsi/Manifest
@@ -0,0 +1 @@
+DIST nmapsi-463e5cdb516dc68d67b29f6815192cb161e4f7f3.tar.gz 3548276 BLAKE2B a63e8dbb5df7f5738e399f7ad76853cc8ee00cf429707a810a851e294dd8c0ef98037077a305dc28fe447befc69211f344fbae0bf68bcc35b2e986023d971999 SHA512 d240e5c994b338a0df746d93339987d7a62e7712f1e7f2f0a8d528b16c7e4dd25f4cfc5778cf18dddb88f0e6e940f6894c52ffa69f48db5622150ad343e21bf4
diff --git a/net-analyzer/nmapsi/metadata.xml b/net-analyzer/nmapsi/metadata.xml
new file mode 100644
index 000000000000..5f33304011d5
--- /dev/null
+++ b/net-analyzer/nmapsi/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nmapsi/nmapsi-0.5_alpha2_p20240407.ebuild b/net-analyzer/nmapsi/nmapsi-0.5_alpha2_p20240407.ebuild
new file mode 100644
index 000000000000..085097b12464
--- /dev/null
+++ b/net-analyzer/nmapsi/nmapsi-0.5_alpha2_p20240407.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="Qt frontend to nmap"
+HOMEPAGE="https://github.com/nmapsi4/nmapsi4"
+
+if [[ ${PV} = *_p* ]]; then
+ COMMIT="463e5cdb516dc68d67b29f6815192cb161e4f7f3"
+ SRC_URI="https://github.com/nmapsi4/nmapsi4/archive/${COMMIT}.tar.gz
+ -> ${PN}-${COMMIT}.tar.gz"
+ S="${WORKDIR}/${PN}4-${COMMIT}"
+else
+ SRC_URI="https://github.com/nmapsi4/nmapsi4/archive/v${PV/_/-}.tar.gz
+ -> ${P}.tar.gz"
+ S="${WORKDIR}/${PN}4-${PV/_/-}"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND="
+ dev-qt/qtbase:6[dbus,gui,network,widgets]
+ dev-qt/qtdeclarative:6
+ dev-qt/qtwebengine:6[widgets]
+ dev-qt/qt5compat:6
+"
+RDEPEND="${DEPEND}
+ net-analyzer/nmap
+ net-dns/bind-tools
+"
+BDEPEND="dev-qt/qttools:6[linguist]"
+
+DOCS=( AUTHORS HACKING README.md TODO Translation )
diff --git a/net-analyzer/nmbscan/Manifest b/net-analyzer/nmbscan/Manifest
new file mode 100644
index 000000000000..ccce5841d03e
--- /dev/null
+++ b/net-analyzer/nmbscan/Manifest
@@ -0,0 +1 @@
+DIST nmbscan-1.2.5.tar.gz 44749 BLAKE2B be49afa46c6ed1533f3e3d7b5c6fbe54b83802385ed9b670f1cdc0105eae99135000be5e98a693ad2adca54f9948ebacc8cd4fc677828a61a5fa85667d584fcd SHA512 37030c6759cc8b257356274b54ec7474e49ddc523be20180c509064f9238da3350f0f0e73e84f2e89201405e93a350a7a7cdc24ef890e638b62648ee2fc4feb9
diff --git a/net-analyzer/nmbscan/files/nmbscan-1.2.5-head.diff b/net-analyzer/nmbscan/files/nmbscan-1.2.5-head.diff
new file mode 100644
index 000000000000..f258aae379d4
--- /dev/null
+++ b/net-analyzer/nmbscan/files/nmbscan-1.2.5-head.diff
@@ -0,0 +1,11 @@
+--- a/nmbscan 2005-09-21 22:10:05.223491664 +0200
++++ b/nmbscan 2005-09-21 22:11:59.215162296 +0200
+@@ -402,7 +402,7 @@
+
+ function get_server_and_os_by_ip
+ {
+- V=$(smbclient -L ${2:-$1} -I $1 -U % 2>&1 | grep '^Domain'| sed 's#.*OS=\[\(.*\)\].*Server=\[\(.*\)\].*#\2/\1#' | head -1)
++ V=$(smbclient -L ${2:-$1} -I $1 -U % 2>&1 | grep '^Domain'| sed 's#.*OS=\[\(.*\)\].*Server=\[\(.*\)\].*#\2/\1#' | head -n 1)
+ echo ${V:--/-}
+ }
+
diff --git a/net-analyzer/nmbscan/metadata.xml b/net-analyzer/nmbscan/metadata.xml
new file mode 100644
index 000000000000..2894ed739311
--- /dev/null
+++ b/net-analyzer/nmbscan/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <longdescription>
+nmbscan scans the shares of a SMB network, using the NMB and SMB protocols.
+It is useful for acquiring information on a local area network for such purposes as security auditing.
+It can obtain such information as NMB/SMB/Windows hostname, IP address, IP hostname, ethernet MAC address, Windows username, NMB/SMB/Windows domain name, and master browser.
+It can discover all the NMB/SMB/Windows hosts on a local area network by using the hosts lists maintained by master browsers.
+</longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nmbscan/nmbscan-1.2.5-r1.ebuild b/net-analyzer/nmbscan/nmbscan-1.2.5-r1.ebuild
new file mode 100644
index 000000000000..97e645c95cac
--- /dev/null
+++ b/net-analyzer/nmbscan/nmbscan-1.2.5-r1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="Scans the shares of a SMB/NetBIOS network"
+HOMEPAGE="http://nmbscan.g76r.eu/"
+SRC_URI="http://nmbscan.g76r.eu/down/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm ~hppa ~ppc ppc64 ~sparc x86"
+
+RDEPEND="net-dns/bind-tools
+ net-fs/samba
+ net-misc/iputils
+ sys-apps/net-tools
+ app-alternatives/awk"
+
+S=${WORKDIR}
+PATCHES=( "${FILESDIR}"/${P}-head.diff )
+
+src_compile() { :; }
+
+src_install() {
+ dobin nmbscan
+}
diff --git a/net-analyzer/notus-scanner/Manifest b/net-analyzer/notus-scanner/Manifest
new file mode 100644
index 000000000000..c14817c9e12b
--- /dev/null
+++ b/net-analyzer/notus-scanner/Manifest
@@ -0,0 +1 @@
+DIST notus-scanner-22.7.2.tar.gz 295805 BLAKE2B 53d44c8b55e4ac277a41ee389bc6f372861db433ff89d41bcc75011b5d92c4ec4dc80c969c5a5e320f5c334a68ed760076ad3d4c33e75e1f2bb310057391854d SHA512 447a18c8498a412298a7fde4059f9cd20ec57bc5918176dc330ea1f428540651e13d8a9312310e7c0d6809bbc19e9e684d96d6b4866f6e55d25ba0cf918aad32
diff --git a/net-analyzer/notus-scanner/files/notus-scanner-22.6.2-remove-tests.patch b/net-analyzer/notus-scanner/files/notus-scanner-22.6.2-remove-tests.patch
new file mode 100644
index 000000000000..e2d3192ed295
--- /dev/null
+++ b/net-analyzer/notus-scanner/files/notus-scanner-22.6.2-remove-tests.patch
@@ -0,0 +1,75 @@
+Remove tests that use files not allowed by Sandbox.
+Patch by Giuseppe Foti
+
+--- a/tests/cli/test_cli_parser.py
++++ b/tests/cli/test_cli_parser.py
+@@ -28,69 +28,6 @@ class CliParserTestCase(unittest.TestCase):
+ def parse_args(self, args: List[str]) -> Arguments:
+ return self.parser.parse_arguments(args)
+
+- def test_mqtt_broker(self):
+- args = self.parse_args(["--mqtt-broker-address=localhost"])
+- self.assertEqual("localhost", args.mqtt_broker_address)
+-
+- args = self.parse_args(["-b", "localhost"])
+- self.assertEqual("localhost", args.mqtt_broker_address)
+-
+- def test_mqtt_broker_port(self):
+- args = self.parse_args(["--mqtt-broker-port=12345"])
+- self.assertEqual(args.mqtt_broker_port, 12345)
+-
+- args = self.parse_args(["-p", "12345"])
+- self.assertEqual(args.mqtt_broker_port, 12345)
+-
+- def test_correct_upper_case_log_level(self):
+- args = self.parse_args(["--log-level=ERROR"])
+- self.assertEqual("ERROR", args.log_level)
+-
+- def test_correct_lower_case_log_level(self):
+- args = self.parse_args(["-L", "info"])
+- self.assertEqual("INFO", args.log_level)
+-
+- def test_advisories_directory(self):
+- args = self.parse_args(["--products-directory=/tmp"])
+- self.assertEqual(Path("/tmp"), args.products_directory)
+-
+- def test_pid_file(self):
+- args = self.parse_args(["--pid-file=/foo/bar"])
+- self.assertEqual(args.pid_file, "/foo/bar")
+-
+- def test_log_file(self):
+- args = self.parse_args(["--log-file=/foo/bar"])
+- self.assertEqual(args.log_file, "/foo/bar")
+-
+- args = self.parse_args(["-l", "/foo/bar"])
+- self.assertEqual(args.log_file, "/foo/bar")
+-
+- def test_foreground(self):
+- args = self.parse_args(["--foreground"])
+- self.assertTrue(args.foreground)
+-
+- args = self.parse_args(["-f"])
+- self.assertTrue(args.foreground)
+-
+- def test_disable_hashsum_verification(self):
+- args = self.parse_args(["--disable-hashsum-verification=true"])
+- self.assertTrue(args.disable_hashsum_verification)
+-
+- def test_defaults(self):
+- args = self.parse_args([])
+-
+- self.assertEqual(
+- args.products_directory, Path(DEFAULT_PRODUCTS_DIRECTORY)
+- )
+- self.assertIsNone(args.config)
+- self.assertIsNone(args.log_file)
+- self.assertEqual(args.log_level, DEFAULT_LOG_LEVEL)
+- self.assertEqual(args.mqtt_broker_port, DEFAULT_MQTT_BROKER_PORT)
+- self.assertEqual(args.mqtt_broker_address, DEFAULT_MQTT_BROKER_ADDRESS)
+- self.assertEqual(args.pid_file, DEFAULT_PID_FILE)
+- self.assertEqual(args.disable_hashsum_verification, False)
+- self.assertFalse(args.foreground)
+-
+ def test_config_file_provide_mqtt_broker_address(self):
+ with tempfile.NamedTemporaryFile() as fp:
+ fp.write(b"[notus-scanner]\nmqtt-broker-address='1.2.3.4'")
diff --git a/net-analyzer/notus-scanner/files/notus-scanner.initd b/net-analyzer/notus-scanner/files/notus-scanner.initd
new file mode 100644
index 000000000000..8af378b20fd6
--- /dev/null
+++ b/net-analyzer/notus-scanner/files/notus-scanner.initd
@@ -0,0 +1,31 @@
+#!/sbin/openrc-run
+# Copyright 2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+: ${GVM_USER:=gvm}
+: ${GVM_GROUP:=$(id -ng ${GVM_USER})}
+: ${NOTUS_TIMEOUT:=30}
+
+name="Greenbone Notus Scanner"
+command=/usr/bin/notus-scanner
+command_user="${GVM_USER}:${GVM_GROUP}"
+pidfile="/run/notus-scanner/${RC_SVCNAME}.pid"
+configfile="/etc/gvm/notus-scanner.toml"
+command_args="--pid-file ${pidfile} \
+ --config ${configfile}"
+retry="${NOTUS_TIMEOUT}"
+
+depend() {
+ after bootmisc
+ need localmount mosquitto
+}
+
+start_pre() {
+ checkpath -d --owner ${GVM_USER} /run/notus-scanner
+}
+
+start_post() {
+ ewaitfile 10 ${pidfile}
+ checkpath -d --owner root:root /run/notus-scanner
+ checkpath -f --owner root:root ${pidfile}
+}
diff --git a/net-analyzer/notus-scanner/files/notus-scanner.logrotate b/net-analyzer/notus-scanner/files/notus-scanner.logrotate
new file mode 100644
index 000000000000..195611c2959e
--- /dev/null
+++ b/net-analyzer/notus-scanner/files/notus-scanner.logrotate
@@ -0,0 +1,13 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+# Daemon ignore HUP so we use 'copytruncate' instead of 'create'
+# with safe file size to prevent losing log entries.
+
+/var/log/gvm/notus-scanner.log {
+ compress
+ missingok
+ notifempty
+ sharedscripts
+ copytruncate
+ maxsize 10M
+}
diff --git a/net-analyzer/notus-scanner/files/notus-scanner.service.conf b/net-analyzer/notus-scanner/files/notus-scanner.service.conf
new file mode 100644
index 000000000000..aea5c10e8fad
--- /dev/null
+++ b/net-analyzer/notus-scanner/files/notus-scanner.service.conf
@@ -0,0 +1,7 @@
+[Unit]
+PartOf=gvm.target
+
+[Service]
+Type=forking
+ExecStart=
+ExecStart=/usr/bin/notus-scanner
diff --git a/net-analyzer/notus-scanner/files/notus-scanner.toml b/net-analyzer/notus-scanner/files/notus-scanner.toml
new file mode 100644
index 000000000000..a266784ed163
--- /dev/null
+++ b/net-analyzer/notus-scanner/files/notus-scanner.toml
@@ -0,0 +1,8 @@
+[notus-scanner]
+mqtt-broker-address = "localhost"
+mqtt-broker-port = "1883"
+products-directory = "/var/lib/notus/products"
+pid-file = "/run/notus-scanner/notus-scanner.pid"
+log-file = "/var/log/gvm/notus-scanner.log"
+log-level = "INFO"
+disable-hashsum-verification = true
diff --git a/net-analyzer/notus-scanner/metadata.xml b/net-analyzer/notus-scanner/metadata.xml
new file mode 100644
index 000000000000..f58446d96061
--- /dev/null
+++ b/net-analyzer/notus-scanner/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>foti.giuseppe@gmail.com</email>
+ <name>Giuseppe Foti</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription lang="en">
+ This is a new scanner that scans after every regular scan, so no user interaction is necessary.
+ It offers better performance due to less system resource consumption and thus, faster scanning.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/notus-scanner/notus-scanner-22.7.2.ebuild b/net-analyzer/notus-scanner/notus-scanner-22.7.2.ebuild
new file mode 100644
index 000000000000..e6215eacc5af
--- /dev/null
+++ b/net-analyzer/notus-scanner/notus-scanner-22.7.2.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+DISTUTILS_USE_PEP517=poetry
+inherit distutils-r1 greadme systemd
+
+DESCRIPTION="Notus is a vulnerability scanner for creating results from local security checks"
+HOMEPAGE="https://github.com/greenbone/notus-scanner"
+SRC_URI="https://github.com/greenbone/notus-scanner/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="AGPL-3 AGPL-3+"
+SLOT="0"
+KEYWORDS="amd64"
+
+DEPEND="
+ acct-user/gvm
+ net-libs/paho-mqtt-c
+ >=dev-python/psutil-7.0[${PYTHON_USEDEP}]
+ >=dev-python/python-gnupg-0.5.4[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ >=dev-python/paho-mqtt-1.5.1[${PYTHON_USEDEP}]
+"
+
+RDEPEND="
+ ${DEPEND}
+ app-misc/mosquitto
+"
+
+PATCHES=(
+ "${FILESDIR}"/notus-scanner-22.6.2-remove-tests.patch
+)
+
+GREADME_DISABLE_AUTOFORMAT=1
+
+distutils_enable_tests unittest
+
+python_install() {
+ distutils-r1_python_install
+
+ insinto /etc/gvm
+ newins "${FILESDIR}/${PN}.toml" "${PN}.toml"
+
+ # Set proper permissions on required files/directories
+ keepdir /var/lib/notus
+ keepdir /var/lib/notus/products
+ keepdir /var/lib/notus/advisories
+ keepdir /var/log/gvm
+ if ! use prefix; then
+ fowners -R gvm:gvm /etc/gvm
+ fowners -R gvm:gvm /var/lib/notus
+ fowners -R gvm:gvm /var/log/gvm
+ fi
+
+ # Adding notus-scanner.log to logrotate
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}/${PN}.logrotate" "${PN}"
+
+ newinitd "${FILESDIR}/${PN}.initd" "${PN}"
+
+ systemd_dounit config/${PN}.service
+
+ systemd_install_serviced "${FILESDIR}/notus-scanner.service.conf" \
+ ${PN}.service
+
+ greadme_stdin <<-EOF
+For validating the feed content, a GnuPG keychain with the Greenbone Community Feed
+integrity key needs to be created. Please, read here on how to create it:
+ - https://greenbone.github.io/docs/latest/22.4/source-build/index.html#feed-validation
+ - https://wiki.gentoo.org/wiki/Greenbone_Vulnerability_Management#Notus_Scanner
+
+To enable feed validation, edit /etc/gvm/${PN}.toml and set
+ disable-hashsum-verification = false
+EOF
+}
diff --git a/net-analyzer/nrpe/Manifest b/net-analyzer/nrpe/Manifest
new file mode 100644
index 000000000000..f81d01f00913
--- /dev/null
+++ b/net-analyzer/nrpe/Manifest
@@ -0,0 +1,4 @@
+DIST nrpe-4.0.0.tar.gz 523846 BLAKE2B 850a420f0550e1dfe6b0ea98a9d9cafec0ec583c115be89b3ba8e88a309c40226c87f6ae880d12c582822e492c5991e3d2444b68f5644750fc74ad75596c96fd SHA512 8773102f28f3e7e96f3637e77489eb12ffe88fe839abfe3f150d2eb3d2efe05f7f812ab4d52a64cbd8d0a5e491aed93d5300b7ce9a8dd072b3a00d885b91276b
+DIST nrpe-4.0.2.tar.gz 524146 BLAKE2B dc100579420eeccaaa2a913f56c76b86b6ebdce8d1afdddcc428bfd4a8c12ad19050ab0395e7a109d4e8b43ca7d6a11e13ec4a4250a91483e37725c184382ca2 SHA512 4d7cf6abc974bc79df54afc42644418e3f086a279c8c17d0fd104f19e3c21c0f3dae4fb4268dd134446ff9fe505159b0446372c5cac71cfe03a97479ed41c09b
+DIST nrpe-4.0.3.tar.gz 524160 BLAKE2B d2c99cadf718e7049c911388b105fb4f5248307c733d94a73fd02ac69c49be230dad58be0a182af9c8d7e0d1f34e8dba6b8fc46a7c01eb15d845f2b3a54499ed SHA512 31d932c481c8a53bd0f8865fb3cfeeb1466b9b05fa89382aa056aa9343a09843b51fe5398fd0388e6bba99e9c3d8093f6033799fd83afd43012bfe8fdc5a33e3
+DIST nrpe-4.1.0.tar.gz 528228 BLAKE2B a8890eef9f32e43417270eb80dcb9eedf1272d70d2dad73fecd855565358fbe9cb1d716fe0b79270310c2c5097eba3ffc7f786c89eecae9f6b84d2fbb43d3e0f SHA512 a47935eecc65d646737166f98f5f160e3d1d5bbd245e006e8cd0758af75db083f870db6c02c1edd0d44cf9a91909ba26df8eee1620a7ac4d9f98032f2cce8981
diff --git a/net-analyzer/nrpe/files/nrpe-3.2.1-eliminate-systemd-pid.patch b/net-analyzer/nrpe/files/nrpe-3.2.1-eliminate-systemd-pid.patch
new file mode 100644
index 000000000000..6ee520dfa69d
--- /dev/null
+++ b/net-analyzer/nrpe/files/nrpe-3.2.1-eliminate-systemd-pid.patch
@@ -0,0 +1,38 @@
+From c4ad513294e8db25ebaf25127948cce37c13e1b2 Mon Sep 17 00:00:00 2001
+From: Michael Orlitzky <michael@orlitzky.com>
+Date: Sat, 29 Sep 2018 20:23:53 -0400
+Subject: [PATCH 1/1] startup/default-service.in: remove PIDFile and
+ ExecStopPost lines.
+
+The nrpe systemd service is a "simple" service, which means that it
+runs in the foreground and doesn't need any PID file tracking to begin
+with. The tmpfiles.d entry associated with the PID file is causing
+problems in Gentoo bug 648992, and so as a prerequisite for deleting
+it, this commit eliminates the PID file.
+
+Bug: https://bugs.gentoo.org/648992
+Bug: https://github.com/NagiosEnterprises/nrpe/issues/188
+---
+ startup/default-service.in | 2 --
+ 1 file changed, 2 deletions(-)
+
+diff --git a/startup/default-service.in b/startup/default-service.in
+index b6c6063..110a0cd 100644
+--- a/startup/default-service.in
++++ b/startup/default-service.in
+@@ -11,12 +11,10 @@ WantedBy=multi-user.target
+ [Service]
+ Type=simple
+ Restart=on-abort
+-PIDFile=@piddir@/nrpe.pid
+ RuntimeDirectory=nrpe
+ RuntimeDirectoryMode=0755
+ ExecStart=@sbindir@/nrpe -c @pkgsysconfdir@/nrpe.cfg -f
+ ExecReload=/bin/kill -HUP $MAINPID
+-ExecStopPost=/bin/rm -f @piddir@/nrpe.pid
+ TimeoutStopSec=60
+ User=@nrpe_user@
+ Group=@nrpe_group@
+--
+2.16.4
+
diff --git a/net-analyzer/nrpe/files/nrpe-4.0.2-disable-tcpd.patch b/net-analyzer/nrpe/files/nrpe-4.0.2-disable-tcpd.patch
new file mode 100644
index 000000000000..7140c43d7e8c
--- /dev/null
+++ b/net-analyzer/nrpe/files/nrpe-4.0.2-disable-tcpd.patch
@@ -0,0 +1,62 @@
+Stripped ./configure portion for Gentoo, instead relying on eautoreconf.
+
+From 8bce40cff68c0a7d88b465eb345267ad5176461a Mon Sep 17 00:00:00 2001
+From: Jaco Kroon <jaco@iewc.co.za>
+Date: Mon, 8 Feb 2021 17:07:30 +0200
+Subject: [PATCH] Patch to allow passing --enable-tcpd or --disable-tcpd.
+
+If passing --enable-tcpd and libwrap is not available, ./configure will
+fail.
+
+If passing --disable-tcpd, libwrap will be completely ignore.
+
+If not passed, current behaviour still applies.
+
+Signed-off-by: Jaco Kroon <jaco@iewc.co.za>
+---
+ configure.ac | 28 +++++++++++++++++++++++-----
+ 2 files changed, 52 insertions(+), 6 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 3981bb0..e3c1a15 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -237,12 +237,30 @@ AC_CHECK_FUNCS([getopt_long],,AC_CHECK_LIB([iberty],[getopt_long],OTHERLIBS="$OT
+ dnl Checks for library functions.
+ AC_CHECK_LIB(nsl,main,SOCKETLIBS="$SOCKETLIBS -lnsl")
+ AC_CHECK_LIB(socket,socket,SOCKETLIBS="$SOCKETLIBS -lsocket")
+-AC_CHECK_LIB(wrap,main,[
+- LIBWRAPLIBS="$LIBWRAPLIBS -lwrap"
+- AC_DEFINE(HAVE_LIBWRAP,[1],[Have the TCP wrappers library])
+- AC_TRY_LINK([#include <tcpd.h>
+- ],[int a = rfc931_timeout;],AC_DEFINE(HAVE_RFC931_TIMEOUT))
++
++AC_ARG_ENABLE([tcpd],
++ AS_HELP_STRING([--disable-tcpd],[disables support for tcpd even if present]),[
++ if test x$enableval = xyes; then
++ check_for_tcpd=yes
++ else
++ check_for_tcpd=no
++ fi
++ ],check_for_tcpd=optional)
++
++AC_MSG_CHECKING(check_for_tcpd=$check_for_tcpd)
++if test x$check_for_tcpd != xno; then
++ AC_CHECK_LIB(wrap,main,[
++ LIBWRAPLIBS="$LIBWRAPLIBS -lwrap"
++ AC_DEFINE(HAVE_LIBWRAP,[1],[Have the TCP wrappers library])
++ AC_TRY_LINK([#include <tcpd.h>
++ ],[int a = rfc931_timeout;],AC_DEFINE(HAVE_RFC931_TIMEOUT))
++ ],[
++ if test x$check_for_tcpd = xyes; then
++ AC_MSG_ERROR(--enable-tcpd specified but unable to locate libwrap.)
++ fi
+ ])
++fi
++
+ AC_CHECK_FUNCS(strdup strstr strtoul strtok_r initgroups closesocket sigaction scandir)
+
+ dnl socklen_t check - from curl
+--
+2.26.2
+
diff --git a/net-analyzer/nrpe/files/nrpe.xinetd.2 b/net-analyzer/nrpe/files/nrpe.xinetd.2
new file mode 100644
index 000000000000..dd0331a88149
--- /dev/null
+++ b/net-analyzer/nrpe/files/nrpe.xinetd.2
@@ -0,0 +1,11 @@
+service nrpe {
+ socket_type = stream
+ protocol = tcp
+ wait = no
+ user = nagios
+ group = nagios
+ server = /usr/libexec/nrpe
+ server_args = -c /etc/nagios/nrpe.cfg --inetd
+# only_from = 127.0.0.1
+ disabled = yes
+}
diff --git a/net-analyzer/nrpe/metadata.xml b/net-analyzer/nrpe/metadata.xml
new file mode 100644
index 000000000000..0bb15e0c4845
--- /dev/null
+++ b/net-analyzer/nrpe/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>sysadmin@gentoo.org</email>
+ <name>Gentoo Sysadmin Project</name>
+ </maintainer>
+ <longdescription>
+ A daemon for allowing Nagios to connect directly to servers and
+ execute commands defined in a centralized configuration file.
+ </longdescription>
+ <use>
+ <flag name="command-args">
+ Build support for specifying the command-line arguments from the
+ Nagios/Icinga master. Make sure you understand the implications
+ of this flag as it can be a security risk.
+ </flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nrpe/nrpe-4.0.0.ebuild b/net-analyzer/nrpe/nrpe-4.0.0.ebuild
new file mode 100644
index 000000000000..bdab2a7c20e3
--- /dev/null
+++ b/net-analyzer/nrpe/nrpe-4.0.0.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit systemd
+
+DESCRIPTION="Nagios Remote Plugin Executor"
+HOMEPAGE="https://github.com/NagiosEnterprises/nrpe"
+SRC_URI="https://github.com/NagiosEnterprises/nrpe/releases/download/${P}/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~hppa ~ppc ppc64 ~sparc x86"
+IUSE="command-args selinux ssl"
+
+DEPEND="acct-group/nagios
+ acct-user/nagios
+ sys-apps/tcp-wrappers
+ ssl? ( dev-libs/openssl:0= )"
+RDEPEND="${DEPEND}
+ || ( net-analyzer/nagios-plugins net-analyzer/monitoring-plugins )
+ selinux? ( sec-policy/selinux-nagios )"
+
+PATCHES=( "${FILESDIR}/nrpe-3.2.1-eliminate-systemd-pid.patch" )
+
+src_configure() {
+ # The configure script tries to detect what OS, distribution, and
+ # init system you're running and changes the build/install process
+ # depending on what it comes up with. We specify fixed values
+ # because we don't want it guessing, for example, whether or not
+ # to install the tmpfiles.d entry based on whether or not systemd
+ # is currently running (OpenRC uses them too).
+ #
+ # Note: upstream defaults to using "nagios" as the default NRPE
+ # user and group. I have a feeling that this isn't quite correct
+ # on a system where "nagios" is also the user running the nagios
+ # server daemon. In the future, it would be nice if someone who
+ # actually uses NRPE could test with an unprivileged "nrpe" as
+ # the user and group.
+ econf \
+ --libexecdir=/usr/$(get_libdir)/nagios/plugins \
+ --localstatedir=/var/lib/nagios \
+ --sysconfdir=/etc/nagios \
+ --with-nrpe-user=nagios \
+ --with-nrpe-group=nagios \
+ --with-piddir=/run \
+ --with-opsys=unknown \
+ --with-dist-type=unknown \
+ --with-init-type=unknown \
+ --with-inetd-type=unknown \
+ $(use_enable command-args) \
+ $(use_enable ssl)
+}
+
+src_compile() {
+ emake all
+}
+
+src_install() {
+ default
+
+ dodoc CHANGELOG.md SECURITY.md
+ insinto /etc/nagios
+ newins sample-config/nrpe.cfg nrpe.cfg
+ fowners root:nagios /etc/nagios/nrpe.cfg
+ fperms 0640 /etc/nagios/nrpe.cfg
+
+ newinitd "startup/openrc-init" nrpe
+ newconfd "startup/openrc-conf" nrpe
+ systemd_newunit "startup/default-service" "${PN}.service"
+
+ insinto /etc/xinetd.d/
+ newins "${FILESDIR}/nrpe.xinetd.2" nrpe
+
+ rm "${D}/usr/bin/nrpe-uninstall" || die 'failed to remove uninstall tool'
+}
+
+pkg_postinst() {
+ elog 'Some users have reported incompatibilities between nrpe-2.x and'
+ elog 'nrpe-3.x. We recommend that you use the same major version for'
+ elog 'both your server and clients.'
+
+ if use command-args ; then
+ ewarn ''
+ ewarn 'You have enabled command-args for NRPE. That lets clients'
+ ewarn 'supply arguments to the commands that are run, and IS A'
+ ewarn 'SECURITY RISK!'
+ ewarn''
+ fi
+}
diff --git a/net-analyzer/nrpe/nrpe-4.0.2.ebuild b/net-analyzer/nrpe/nrpe-4.0.2.ebuild
new file mode 100644
index 000000000000..750ad02c972e
--- /dev/null
+++ b/net-analyzer/nrpe/nrpe-4.0.2.ebuild
@@ -0,0 +1,91 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit systemd
+
+DESCRIPTION="Nagios Remote Plugin Executor"
+HOMEPAGE="https://github.com/NagiosEnterprises/nrpe"
+SRC_URI="https://github.com/NagiosEnterprises/nrpe/releases/download/${P}/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~hppa ~ppc ~ppc64 ~sparc ~x86"
+IUSE="command-args selinux ssl"
+
+DEPEND="acct-group/nagios
+ acct-user/nagios
+ sys-apps/tcp-wrappers
+ ssl? ( dev-libs/openssl:0= )"
+RDEPEND="${DEPEND}
+ || ( net-analyzer/nagios-plugins net-analyzer/monitoring-plugins )
+ selinux? ( sec-policy/selinux-nagios )"
+
+PATCHES=( "${FILESDIR}/nrpe-3.2.1-eliminate-systemd-pid.patch" )
+
+src_configure() {
+ # The configure script tries to detect what OS, distribution, and
+ # init system you're running and changes the build/install process
+ # depending on what it comes up with. We specify fixed values
+ # because we don't want it guessing, for example, whether or not
+ # to install the tmpfiles.d entry based on whether or not systemd
+ # is currently running (OpenRC uses them too).
+ #
+ # Note: upstream defaults to using "nagios" as the default NRPE
+ # user and group. I have a feeling that this isn't quite correct
+ # on a system where "nagios" is also the user running the nagios
+ # server daemon. In the future, it would be nice if someone who
+ # actually uses NRPE could test with an unprivileged "nrpe" as
+ # the user and group.
+ econf \
+ --libexecdir=/usr/$(get_libdir)/nagios/plugins \
+ --localstatedir=/var/lib/nagios \
+ --sysconfdir=/etc/nagios \
+ --with-nrpe-user=nagios \
+ --with-nrpe-group=nagios \
+ --with-piddir=/run \
+ --with-opsys=unknown \
+ --with-dist-type=unknown \
+ --with-init-type=unknown \
+ --with-inetd-type=unknown \
+ $(use_enable command-args) \
+ $(use_enable ssl)
+}
+
+src_compile() {
+ emake all
+}
+
+src_install() {
+ default
+
+ dodoc CHANGELOG.md SECURITY.md
+ insinto /etc/nagios
+ newins sample-config/nrpe.cfg nrpe.cfg
+ fowners root:nagios /etc/nagios/nrpe.cfg
+ fperms 0640 /etc/nagios/nrpe.cfg
+
+ newinitd "startup/openrc-init" nrpe
+ newconfd "startup/openrc-conf" nrpe
+ systemd_newunit "startup/default-service" "${PN}.service"
+
+ insinto /etc/xinetd.d/
+ newins "${FILESDIR}/nrpe.xinetd.2" nrpe
+
+ rm "${ED}/usr/bin/nrpe-uninstall" || die 'failed to remove uninstall tool'
+ rm -r "${ED}/run" || die 'failed to remove /run'
+}
+
+pkg_postinst() {
+ elog 'Some users have reported incompatibilities between nrpe-2.x and'
+ elog 'nrpe-3.x. We recommend that you use the same major version for'
+ elog 'both your server and clients.'
+
+ if use command-args ; then
+ ewarn ''
+ ewarn 'You have enabled command-args for NRPE. That lets clients'
+ ewarn 'supply arguments to the commands that are run, and IS A'
+ ewarn 'SECURITY RISK!'
+ ewarn''
+ fi
+}
diff --git a/net-analyzer/nrpe/nrpe-4.0.3.ebuild b/net-analyzer/nrpe/nrpe-4.0.3.ebuild
new file mode 100644
index 000000000000..fa2413afaff7
--- /dev/null
+++ b/net-analyzer/nrpe/nrpe-4.0.3.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools systemd
+
+DESCRIPTION="Nagios Remote Plugin Executor"
+HOMEPAGE="https://github.com/NagiosEnterprises/nrpe"
+SRC_URI="https://github.com/NagiosEnterprises/nrpe/releases/download/${P}/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~hppa ~ppc ppc64 ~sparc x86"
+IUSE="command-args selinux ssl tcpd"
+
+DEPEND="acct-group/nagios
+ acct-user/nagios
+ tcpd? (
+ sys-apps/tcp-wrappers
+ )
+ ssl? (
+ dev-libs/openssl:=
+ )"
+RDEPEND="${DEPEND}
+ || ( net-analyzer/nagios-plugins net-analyzer/monitoring-plugins )
+ selinux? ( sec-policy/selinux-nagios )"
+
+PATCHES=(
+ "${FILESDIR}/nrpe-3.2.1-eliminate-systemd-pid.patch"
+ "${FILESDIR}/nrpe-4.0.2-disable-tcpd.patch"
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ # The configure script tries to detect what OS, distribution, and
+ # init system you're running and changes the build/install process
+ # depending on what it comes up with. We specify fixed values
+ # because we don't want it guessing, for example, whether or not
+ # to install the tmpfiles.d entry based on whether or not systemd
+ # is currently running (OpenRC uses them too).
+ #
+ # Note: upstream defaults to using "nagios" as the default NRPE
+ # user and group. I have a feeling that this isn't quite correct
+ # on a system where "nagios" is also the user running the nagios
+ # server daemon. In the future, it would be nice if someone who
+ # actually uses NRPE could test with an unprivileged "nrpe" as
+ # the user and group.
+ econf \
+ --libexecdir=/usr/$(get_libdir)/nagios/plugins \
+ --localstatedir=/var/lib/nagios \
+ --sysconfdir=/etc/nagios \
+ --with-nrpe-user=nagios \
+ --with-nrpe-group=nagios \
+ --with-piddir=/run \
+ --with-opsys=unknown \
+ --with-dist-type=unknown \
+ --with-init-type=unknown \
+ --with-inetd-type=unknown \
+ $(use_enable command-args) \
+ $(use_enable ssl) \
+ $(use_enable tcpd)
+}
+
+src_compile() {
+ emake all
+}
+
+src_install() {
+ default
+
+ dodoc CHANGELOG.md SECURITY.md
+ insinto /etc/nagios
+ newins sample-config/nrpe.cfg nrpe.cfg
+ fowners root:nagios /etc/nagios/nrpe.cfg
+ fperms 0640 /etc/nagios/nrpe.cfg
+
+ newinitd "startup/openrc-init" nrpe
+ newconfd "startup/openrc-conf" nrpe
+ systemd_newunit "startup/default-service" "${PN}.service"
+
+ insinto /etc/xinetd.d/
+ newins "${FILESDIR}/nrpe.xinetd.2" nrpe
+
+ rm "${ED}/usr/bin/nrpe-uninstall" || die 'failed to remove uninstall tool'
+ rm -r "${ED}/run" || die 'failed to remove /run'
+}
+
+pkg_postinst() {
+ if use command-args ; then
+ ewarn ''
+ ewarn 'You have enabled command-args for NRPE. That lets clients'
+ ewarn 'supply arguments to the commands that are run, and IS A'
+ ewarn 'SECURITY RISK!'
+ ewarn ''
+ fi
+}
diff --git a/net-analyzer/nrpe/nrpe-4.1.0.ebuild b/net-analyzer/nrpe/nrpe-4.1.0.ebuild
new file mode 100644
index 000000000000..31df239ba145
--- /dev/null
+++ b/net-analyzer/nrpe/nrpe-4.1.0.ebuild
@@ -0,0 +1,100 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools systemd
+
+DESCRIPTION="Nagios Remote Plugin Executor"
+HOMEPAGE="https://github.com/NagiosEnterprises/nrpe"
+SRC_URI="https://github.com/NagiosEnterprises/nrpe/releases/download/${P}/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~hppa ~ppc ppc64 ~sparc x86"
+IUSE="command-args selinux ssl tcpd"
+
+DEPEND="acct-group/nagios
+ acct-user/nagios
+ tcpd? (
+ sys-apps/tcp-wrappers
+ )
+ ssl? (
+ dev-libs/openssl:=
+ )"
+RDEPEND="${DEPEND}
+ || ( net-analyzer/nagios-plugins net-analyzer/monitoring-plugins )
+ selinux? ( sec-policy/selinux-nagios )"
+
+PATCHES=(
+ "${FILESDIR}/nrpe-3.2.1-eliminate-systemd-pid.patch"
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ # The configure script tries to detect what OS, distribution, and
+ # init system you're running and changes the build/install process
+ # depending on what it comes up with. We specify fixed values
+ # because we don't want it guessing, for example, whether or not
+ # to install the tmpfiles.d entry based on whether or not systemd
+ # is currently running (OpenRC uses them too).
+ #
+ # Note: upstream defaults to using "nagios" as the default NRPE
+ # user and group. I have a feeling that this isn't quite correct
+ # on a system where "nagios" is also the user running the nagios
+ # server daemon. In the future, it would be nice if someone who
+ # actually uses NRPE could test with an unprivileged "nrpe" as
+ # the user and group.
+ econf \
+ --libexecdir=/usr/$(get_libdir)/nagios/plugins \
+ --localstatedir=/var/lib/nagios \
+ --sysconfdir=/etc/nagios \
+ --with-nrpe-user=nagios \
+ --with-nrpe-group=nagios \
+ --with-piddir=/run \
+ --with-opsys=unknown \
+ --with-dist-type=unknown \
+ --with-init-type=unknown \
+ --with-inetd-type=unknown \
+ $(use_enable command-args) \
+ $(use_enable ssl) \
+ $(use_enable tcpd)
+}
+
+src_compile() {
+ emake all
+}
+
+src_install() {
+ default
+
+ dodoc CHANGELOG.md SECURITY.md
+ insinto /etc/nagios
+ newins sample-config/nrpe.cfg nrpe.cfg
+ fowners root:nagios /etc/nagios/nrpe.cfg
+ fperms 0640 /etc/nagios/nrpe.cfg
+
+ newinitd "startup/openrc-init" nrpe
+ newconfd "startup/openrc-conf" nrpe
+ systemd_newunit "startup/default-service" "${PN}.service"
+
+ insinto /etc/xinetd.d/
+ newins "${FILESDIR}/nrpe.xinetd.2" nrpe
+
+ rm "${ED}/usr/bin/nrpe-uninstall" || die 'failed to remove uninstall tool'
+ rm -r "${ED}/run" || die 'failed to remove /run'
+}
+
+pkg_postinst() {
+ if use command-args ; then
+ ewarn ''
+ ewarn 'You have enabled command-args for NRPE. That lets clients'
+ ewarn 'supply arguments to the commands that are run, and IS A'
+ ewarn 'SECURITY RISK!'
+ ewarn ''
+ fi
+}
diff --git a/net-analyzer/nsat/Manifest b/net-analyzer/nsat/Manifest
new file mode 100644
index 000000000000..2cced7871b22
--- /dev/null
+++ b/net-analyzer/nsat/Manifest
@@ -0,0 +1 @@
+DIST nsat-1.5.tgz 410603 BLAKE2B 083ac2879afae87d1282bb643d0988b2f858f9c934fe7a6e24407c0f5cf90ceba7be17aeeae8e7cb9d0f7a31cce171fed6382351ea8413b13d3e4343339f0c9c SHA512 1a5b8e88f7bcacdbe1144a719a2e446c0ea025ad4e5f8c79ccb939083308cd2c1b2c1f3d7ab3b791924d5855994cbc3fded95aa36df23c12fd76fc20341a87d0
diff --git a/net-analyzer/nsat/files/nsat-1.5-amd64-compat.patch b/net-analyzer/nsat/files/nsat-1.5-amd64-compat.patch
new file mode 100644
index 000000000000..883ad26cdfaf
--- /dev/null
+++ b/net-analyzer/nsat/files/nsat-1.5-amd64-compat.patch
@@ -0,0 +1,33 @@
+--- a/src/mod/xp_icmp_echo.c
++++ b/src/mod/xp_icmp_echo.c
+@@ -90,7 +90,7 @@
+ fprintf(stderr,"[%d bytes] sent, waiting for reponse.\n", res);
+ #endif
+
+- recv_pack = read_icmp(&res, ICMP_ECHOREPLY, -1);
++ recv_pack = read_icmp((ssize_t *)&res, ICMP_ECHOREPLY, -1);
+
+ if (recv_pack == NULL || (unsigned)res < sizeof(ip) + 8) {
+ #ifdef EBUG
+--- a/src/mod/xp_icmp_infr.c
++++ b/src/mod/xp_icmp_infr.c
+@@ -83,7 +83,7 @@
+ fprintf(stderr,"[%d bytes] sent, waiting for reponse.\n", res);
+ #endif
+
+- recv_pack = read_icmp(&res, ICMP_IREQREPLY, -1);
++ recv_pack = read_icmp((ssize_t *)&res, ICMP_IREQREPLY, -1);
+
+ if (recv_pack == NULL || (unsigned)res < sizeof(ip) + 8) {
+ #ifdef EBUG
+--- a/src/mod/xp_udp_probe.c
++++ b/src/mod/xp_udp_probe.c
+@@ -92,7 +92,7 @@
+ #ifdef EBUG
+ fprintf(stderr,"[%d bytes] sent, waiting for reponse.\n", res);
+ #endif
+- recv_pack = read_icmp(&res, ICMP_UNREACH, -1);
++ recv_pack = read_icmp((ssize_t *)&res, ICMP_UNREACH, -1);
+
+ if (recv_pack == NULL || (unsigned)res < sizeof(ip) + 8) {
+ #ifdef EBUG
diff --git a/net-analyzer/nsat/files/nsat-1.5-configure-dash.patch b/net-analyzer/nsat/files/nsat-1.5-configure-dash.patch
new file mode 100644
index 000000000000..af19ba293ddb
--- /dev/null
+++ b/net-analyzer/nsat/files/nsat-1.5-configure-dash.patch
@@ -0,0 +1,79 @@
+From eda78d802b11dd7c920cd8e0396ca064f34e2a8b Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Thu, 5 Aug 2021 00:27:23 +0100
+Subject: [PATCH] Fix configure with non-bash (dash)
+
+---
+ configure.in | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/configure.in b/configure.in
+index 95c59da..b549092 100644
+--- a/configure.in
++++ b/configure.in
+@@ -10,7 +10,7 @@ AC_CONFIG_HEADER(src/libmix++/mix/lmconfig.h)
+
+ AC_PROG_CC
+ AC_MSG_CHECKING(accepted compiler flags)
+-if test $ac_cv_prog_gcc = yes; then
++if test x$ac_cv_prog_gcc = xyes; then
+ AC_MSG_RESULT(GNU CC/ANSI (good))
+ else
+ AC_MSG_RESULT(crappy :P)
+@@ -41,7 +41,7 @@ case "`${UNAME}`" in
+ AC_MSG_RESULT(found Linux. Ph33r.)
+ AC_DEFINE(HAVE_LINUX)
+ AC_DEFINE(MY_HDRINCL,3)
+-if test $LEETCC = yes; then
++if test x$LEETCC = xyes; then
+ CCOPTS='-Wall -O6 -funroll-loops -ansi -fPIC -DLINUX'
+ else
+ CCOPTS="${CFLAGS} -DLINUX"
+@@ -54,7 +54,7 @@ fi
+ AC_MSG_RESULT(found MAC OS X)
+ AC_DEFINE(HAVE_BSD)
+ AC_DEFINE(MY_HDRINCL,2)
+-if test $LEETCC = yes; then
++if test x$LEETCC = xyes; then
+ CCOPTS='-Wall -O -funroll-loops -ansi -fPIC -DBSD44 -DDARWIN'
+ else
+ CCOPTS='-DBSD44 -DOBSD'
+@@ -67,7 +67,7 @@ fi
+ AC_MSG_RESULT(found OpenBSD. Yay.)
+ AC_DEFINE(HAVE_BSD)
+ AC_DEFINE(MY_HDRINCL,2)
+-if test $LEETCC = yes; then
++if test x$LEETCC = xyes; then
+ CCOPTS='-Wall -O6 -funroll-loops -ansi -fPIC -DBSD44 -DOBSD'
+ else
+ CCOPTS='-DBSD44 -DOBSD'
+@@ -80,7 +80,7 @@ fi
+ AC_MSG_RESULT(found BSD. Yay.)
+ AC_DEFINE(HAVE_BSD)
+ AC_DEFINE(MY_HDRINCL,2)
+-if test $LEETCC = yes; then
++if test x$LEETCC = xyes; then
+ CCOPTS='-Wall -O6 -funroll-loops -ansi -fPIC -DBSD44'
+ else
+ CCOPTS='-DBSD44'
+@@ -95,7 +95,7 @@ fi
+ AC_DEFINE(MY_HDRINCL,2)
+ AC_CHECK_LIB(socket, socket, [ CLIB="$CLIB -lsocket " ], AC_MSG_ERROR(libsocket not found.))
+ AC_CHECK_LIB(nsl, gethostbyname, [ CLIB="$CLIB -lnsl " ], AC_MSG_ERROR(libnsl not found.))
+-if test $LEETCC = yes; then
++if test x$LEETCC = xyes; then
+ CCOPTS='-Wall -O6 -funroll-loops -ansi -fPIC -DSOLARIS'
+ else
+ CCOPTS='-DSOLARIS'
+@@ -169,7 +169,7 @@ AC_HEADER_STDC
+ AC_CHECK_HEADERS(fcntl.h unistd.h sys/select.h sys/time.h sys/types.h sys/socket.h stdarg.h std_args.h strings.h netdb.h netinet/in.h arpa/inet.h signal.h stdlib.h errno.h ctype.h sys/file.h sys/ioctl.h sys/signal.h sys/stream.h sys/dlpi.h sys/bufmod.h sys/stropts.h sys/param.h sys/termios.h sys/filio.h net/if.h netinet/in_systm.h netinet/ip.h netinet/ip_var.h netinet/ip_icmp.h sys/resource.h X11/Xlib.h)
+
+ AC_C_BIGENDIAN
+- if test $ac_cv_c_bigendian = yes; then
++ if test x$ac_cv_c_bigendian = xyes; then
+ ENDIANESS1="#ifndef WORDS_BIGENDIAN"
+ ENDIANESS2="#define WORDS_BIGENDIAN /* this is a big endian machine */"
+ else
+--
+2.32.0
+
diff --git a/net-analyzer/nsat/files/nsat-1.5-configure.patch b/net-analyzer/nsat/files/nsat-1.5-configure.patch
new file mode 100644
index 000000000000..d1bc1f95e6bb
--- /dev/null
+++ b/net-analyzer/nsat/files/nsat-1.5-configure.patch
@@ -0,0 +1,25 @@
+--- a/configure.in
++++ b/configure.in
+@@ -15,7 +15,6 @@
+ else
+ AC_MSG_RESULT(crappy :P)
+ fi
+- LEETCC=$ac_cv_prog_gcc;
+ AC_PROG_CXX
+ AC_PROG_INSTALL
+ AC_PROG_MAKE_SET
+@@ -45,11 +44,11 @@
+ if test $LEETCC = yes; then
+ CCOPTS='-Wall -O6 -funroll-loops -ansi -fPIC -DLINUX'
+ else
+- CCOPTS='-DLINUX'
++ CCOPTS="${CFLAGS} -DLINUX"
+ fi
+- CFLAGS="$CCOPTS"
+- SMBCFLAGS="-Wall -DLINUX -DNETGROUP -DALLOW_CHANGE_PASSWORD -DFAST_SHARE_MODES -DNO_ASMSIGNALH -DGLIBC2"
++ SMBCFLAGS="${CCOPTS} -Wall -DLINUX -DNETGROUP -DALLOW_CHANGE_PASSWORD -DFAST_SHARE_MODES -DNO_ASMSIGNALH -DGLIBC2"
+ SMBLFLAGS="-lnsl -lcrypt"
++ CFLAGS="${CCOPTS} -Wall -ansi -fPIC -DLINUX"
+ ;;
+ *Darwin* | *Mac* | *MAC*)
+ AC_MSG_RESULT(found MAC OS X)
diff --git a/net-analyzer/nsat/files/nsat-1.5-libtirpc.patch b/net-analyzer/nsat/files/nsat-1.5-libtirpc.patch
new file mode 100644
index 000000000000..c91afd3a78fa
--- /dev/null
+++ b/net-analyzer/nsat/files/nsat-1.5-libtirpc.patch
@@ -0,0 +1,33 @@
+--- a/configure.in
++++ b/configure.in
+@@ -195,6 +195,8 @@
+ AC_FUNC_VPRINTF
+ AC_CHECK_FUNCS(select socket strdup strstr random srandom snprintf setsockopt initstate gettimeofday strerror)
+
++PKG_CHECK_MODULES([TIRPC], [libtirpc], [], [AC_MSG_NOTICE([Using glibc rpc support])])
++
+ AC_OUTPUT(Makefile tools/Makefile src/Makefile src/mod/Makefile src/smb/Makefile src/libmix++/Makefile src/libmix++/mix/net.h)
+
+ AC_MSG_RESULT()
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -36,7 +36,7 @@
+ @cd mod ; $(MAKE) modobj
+
+ ../nsat: modobj
+- ${GPP} ${CFLAGS} ${LDFLAGS} ${OBJ} ${MODOBJ} ${MIXOBJ} -o ../nsat ${CLIB}
++ ${GPP} ${CFLAGS} ${LDFLAGS} ${OBJ} ${MODOBJ} ${MIXOBJ} -o ../nsat ${CLIB} @TIRPC_LIBS@
+
+ pidalloc.o:
+ ${GPP} ${CFLAGS} -c pidalloc.cpp
+--- a/src/mod/Makefile.in
++++ b/src/mod/Makefile.in
+@@ -35,7 +35,7 @@
+ ${GPP} ${CFLAGS} -c osscan.cpp
+
+ rpc.o:
+- ${GPP} ${CFLAGS} -c rpc.cpp
++ ${GPP} ${CFLAGS} @TIRPC_CFLAGS@ -c rpc.cpp
+
+ www.o:
+ ${GPP} ${CFLAGS} -c www.cpp
diff --git a/net-analyzer/nsat/files/nsat-1.5-lvalue-gcc4.patch b/net-analyzer/nsat/files/nsat-1.5-lvalue-gcc4.patch
new file mode 100644
index 000000000000..b4020b3f47ed
--- /dev/null
+++ b/net-analyzer/nsat/files/nsat-1.5-lvalue-gcc4.patch
@@ -0,0 +1,11 @@
+--- a/src/smb/ADMsmb.c
++++ b/src/smb/ADMsmb.c
+@@ -123,7 +123,7 @@
+ {
+ usleep (100000);
+
+- if (recvfrom (socket_client, buffer2, sizeof (buffer2), 0, (struct sockaddr *) &sin_dst, &(int) longueur) != -1)
++ if (recvfrom (socket_client, buffer2, sizeof (buffer2), 0, (struct sockaddr *) &sin_dst, (int *) &longueur) != -1)
+ {
+
+ if (nmb2->rep_num != 0)
diff --git a/net-analyzer/nsat/files/nsat-1.5-misc.patch b/net-analyzer/nsat/files/nsat-1.5-misc.patch
new file mode 100644
index 000000000000..f94fd24527b5
--- /dev/null
+++ b/net-analyzer/nsat/files/nsat-1.5-misc.patch
@@ -0,0 +1,108 @@
+* link against dev-libs/libmix
+* parallel $(MAKE)
+* usr/local/ -> usr/
+* LDFLAGS
+* verbose CC
+
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -7,14 +7,14 @@
+ # # #### # # #
+
+ # Change me if you want...
+-INSTALL_PATH=/usr/local/bin
+-MAN_PATH=/usr/local/man
++INSTALL_PATH=/usr/bin
++MAN_PATH=/usr/man
+
+ # If you change this, change src/lang.h as well
+-DATA_PATH=/usr/local/share/nsat
++DATA_PATH=/usr/share/nsat
+
+ all:
+- @cd src;make all
++ @cd src; $(MAKE) all
+ @echo ""
+ @echo " Compiling is done!"
+ @echo " You can now 'make install' to put the files in place."
+@@ -58,5 +58,5 @@
+ doc/nsat.8:
+ @echo "Hmm, can't find manpage -- skipping :/"
+
+-nsat:
+- @make all
++nsat: src
++ $(MAKE) all
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -21,22 +21,22 @@
+
+ MIXOBJ = libmix++/net/net.o libmix++/misc/misc.o libmix++/misc/exclude.o
+
+-all: ../smb-ns $(OBJ) modobj mixobj ../nsat
++all: ../smb-ns $(OBJ) modobj ../nsat
+
+ ../smb-ns:
+- @cd smb ; make smb
++ @cd smb ; $(MAKE) smb
+
+-mixobj: libmix++/Makefile
+- @cd libmix++ ; make
++#mixobj: libmix++/Makefile
++# @cd libmix++ ; $(MAKE)
+
+-libmix++/Makefile:
+- @cd .. ; ./configure
++#libmix++/Makefile:
++# @cd .. ; ./configure
+
+ modobj:
+- @cd mod ; make modobj
++ @cd mod ; $(MAKE) modobj
+
+-../nsat:
+- ${GPP} ${CFLAGS} ${OBJ} ${MODOBJ} ${MIXOBJ} -o ../nsat ${CLIB}
++../nsat: modobj
++ ${GPP} ${CFLAGS} ${LDFLAGS} ${OBJ} ${MODOBJ} ${MIXOBJ} -o ../nsat ${CLIB}
+
+ pidalloc.o:
+ ${GPP} ${CFLAGS} -c pidalloc.cpp
+@@ -63,11 +63,11 @@
+ ${GPP} ${CFLAGS} -c Logging.cpp
+
+ clean:
+- cd mod && make clean
++ cd mod && $(MAKE) clean
+ rm -f core *.o ../*.log *.log *~ ../nsat ../.nsrc ../.nspid
+
+ distclean: clean
+- @cd mod ; make clean
+- @cd smb ; make clean
+- @cd libmix++ ; make clean
++ @cd mod ; $(MAKE) clean
++ @cd smb ; $(MAKE) clean
++ @cd libmix++ ; $(MAKE) clean
+ rm -f mod/Makefile Makefile
+--- a/src/smb/Makefile.in
++++ b/src/smb/Makefile.in
+@@ -11,7 +11,6 @@
+ LIBDIR = $(BASEDIR)/lib
+ VARDIR = $(BASEDIR)/var
+ INSTALLPERMS = 0755
+-FLAGS1 = -O3
+ LIBS1 =
+ SHELL = /bin/sh
+ srcdir = ./
+@@ -53,10 +52,10 @@
+ .SUFFIXES: .c .o .h
+
+ .c.o: $(INCLUDES)
+- @$(CC) $(CFLAGS) -c $(srcdir)$*.c -o $(srcdir)$*.o
++ $(CC) $(CFLAGS) $(LDFLAGS) -c $(srcdir)$*.c -o $(srcdir)$*.o
+
+ smb: msg $(CLIENT_OBJ) $(ARCFOUR_OBJ)
+- @$(CC) $(CFLAGS) -o $(BINARY) $(CLIENT_OBJ) $(ARCFOUR_OBJ) $(LIBS)
++ $(CC) $(CFLAGS) $(LDFLAGS) -o $(BINARY) $(CLIENT_OBJ) $(ARCFOUR_OBJ) $(LIBS)
+ @echo done
+
+ msg:
diff --git a/net-analyzer/nsat/files/nsat-1.5-no-ansi.patch b/net-analyzer/nsat/files/nsat-1.5-no-ansi.patch
new file mode 100644
index 000000000000..80e96ea7a8f2
--- /dev/null
+++ b/net-analyzer/nsat/files/nsat-1.5-no-ansi.patch
@@ -0,0 +1,53 @@
+--- a/configure.in
++++ b/configure.in
+@@ -42,20 +42,20 @@ case "`${UNAME}`" in
+ AC_DEFINE(HAVE_LINUX)
+ AC_DEFINE(MY_HDRINCL,3)
+ if test x$LEETCC = xyes; then
+- CCOPTS='-Wall -O6 -funroll-loops -ansi -fPIC -DLINUX'
++ CCOPTS='-Wall -O6 -funroll-loops -fPIC -DLINUX'
+ else
+ CCOPTS="${CFLAGS} -DLINUX"
+ fi
+ SMBCFLAGS="${CCOPTS} -Wall -DLINUX -DNETGROUP -DALLOW_CHANGE_PASSWORD -DFAST_SHARE_MODES -DNO_ASMSIGNALH -DGLIBC2"
+ SMBLFLAGS="-lnsl -lcrypt"
+- CFLAGS="${CCOPTS} -Wall -ansi -fPIC -DLINUX"
++ CFLAGS="${CCOPTS} -Wall -fPIC -DLINUX"
+ ;;
+ *Darwin* | *Mac* | *MAC*)
+ AC_MSG_RESULT(found MAC OS X)
+ AC_DEFINE(HAVE_BSD)
+ AC_DEFINE(MY_HDRINCL,2)
+ if test x$LEETCC = xyes; then
+- CCOPTS='-Wall -O -funroll-loops -ansi -fPIC -DBSD44 -DDARWIN'
++ CCOPTS='-Wall -O -funroll-loops -fPIC -DBSD44 -DDARWIN'
+ else
+ CCOPTS='-DBSD44 -DOBSD'
+ fi
+@@ -68,7 +68,7 @@ fi
+ AC_DEFINE(HAVE_BSD)
+ AC_DEFINE(MY_HDRINCL,2)
+ if test x$LEETCC = xyes; then
+- CCOPTS='-Wall -O6 -funroll-loops -ansi -fPIC -DBSD44 -DOBSD'
++ CCOPTS='-Wall -O6 -funroll-loops -fPIC -DBSD44 -DOBSD'
+ else
+ CCOPTS='-DBSD44 -DOBSD'
+ fi
+@@ -81,7 +81,7 @@ fi
+ AC_DEFINE(HAVE_BSD)
+ AC_DEFINE(MY_HDRINCL,2)
+ if test x$LEETCC = xyes; then
+- CCOPTS='-Wall -O6 -funroll-loops -ansi -fPIC -DBSD44'
++ CCOPTS='-Wall -O6 -funroll-loops -fPIC -DBSD44'
+ else
+ CCOPTS='-DBSD44'
+ fi
+@@ -96,7 +96,7 @@ fi
+ AC_CHECK_LIB(socket, socket, [ CLIB="$CLIB -lsocket " ], AC_MSG_ERROR(libsocket not found.))
+ AC_CHECK_LIB(nsl, gethostbyname, [ CLIB="$CLIB -lnsl " ], AC_MSG_ERROR(libnsl not found.))
+ if test x$LEETCC = xyes; then
+- CCOPTS='-Wall -O6 -funroll-loops -ansi -fPIC -DSOLARIS'
++ CCOPTS='-Wall -O6 -funroll-loops -fPIC -DSOLARIS'
+ else
+ CCOPTS='-DSOLARIS'
+ fi
diff --git a/net-analyzer/nsat/files/nsat-1.5-strip.patch b/net-analyzer/nsat/files/nsat-1.5-strip.patch
new file mode 100644
index 000000000000..99fe77633ad8
--- /dev/null
+++ b/net-analyzer/nsat/files/nsat-1.5-strip.patch
@@ -0,0 +1,10 @@
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -37,7 +37,6 @@
+
+ ../nsat:
+ ${GPP} ${CFLAGS} ${OBJ} ${MODOBJ} ${MIXOBJ} -o ../nsat ${CLIB}
+- strip ../nsat
+
+ pidalloc.o:
+ ${GPP} ${CFLAGS} -c pidalloc.cpp
diff --git a/net-analyzer/nsat/files/nsat-1.5-va_list.patch b/net-analyzer/nsat/files/nsat-1.5-va_list.patch
new file mode 100644
index 000000000000..46bdd3bcc121
--- /dev/null
+++ b/net-analyzer/nsat/files/nsat-1.5-va_list.patch
@@ -0,0 +1,27 @@
+--- a/src/Logging.cpp
++++ b/src/Logging.cpp
+@@ -89,16 +89,17 @@
+ if((pi.Foreground) && (out!=NULL))
+ fprintf(stdout, "%s %s ", out, hn);
+
+- va_start(va, fmt);
+-
+- if(fp!=NULL)
++ if(fp!=NULL) {
++ va_start(va, fmt);
+ vfprintf(fp, fmt, va);
++ va_end(va);
++ }
+
+- if((pi.Foreground) && (out!=NULL))
++ if((pi.Foreground) && (out!=NULL)) {
++ va_start(va, fmt);
+ vfprintf(stdout, fmt, va);
+-
+- va_end(va);
+-
++ va_end(va);
++ }
+ if(fp!=NULL)
+ fprintf(fp, "\n");
+
diff --git a/net-analyzer/nsat/metadata.xml b/net-analyzer/nsat/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/nsat/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nsat/nsat-1.5-r7.ebuild b/net-analyzer/nsat/nsat-1.5-r7.ebuild
new file mode 100644
index 000000000000..e24b1507e0a3
--- /dev/null
+++ b/net-analyzer/nsat/nsat-1.5-r7.ebuild
@@ -0,0 +1,81 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools toolchain-funcs
+
+DESCRIPTION="Network Security Analysis Tool, an application-level network security scanner"
+HOMEPAGE="https://nsat.sourceforge.net/"
+SRC_URI="https://downloads.sourceforge.net/nsat/${P}.tgz"
+S="${WORKDIR}/${PN}"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc x86"
+IUSE="gui"
+
+RDEPEND="
+ dev-libs/libmix
+ net-libs/libnsl:0=
+ net-libs/libpcap
+ net-libs/libtirpc:=
+ net-libs/rpcsvc-proto
+ gui? (
+ dev-lang/tk:*
+ x11-libs/libX11
+ )
+"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-configure.patch
+ "${FILESDIR}"/${P}-lvalue-gcc4.patch
+ "${FILESDIR}"/${P}-strip.patch
+ "${FILESDIR}"/${P}-misc.patch
+ "${FILESDIR}"/${P}-va_list.patch
+ "${FILESDIR}"/${P}-libtirpc.patch
+ "${FILESDIR}"/${P}-amd64-compat.patch
+ "${FILESDIR}"/${P}-configure-dash.patch
+ "${FILESDIR}"/${P}-no-ansi.patch
+)
+
+src_prepare() {
+ default
+
+ sed -i \
+ -e "s:^#CGIFile /usr/local/share/nsat/nsat.cgi$:#CGIFile /usr/share/nsat/nsat.cgi:g" \
+ nsat.conf || die
+ sed -i -e "s:/usr/local:/usr:g" tools/xnsat || die
+ sed -i \
+ -e "s:/usr/local/share/nsat/nsat.conf:/etc/nsat/nsat.conf:g" \
+ -e "s:/usr/local/share/nsat/nsat.cgi:/usr/share/nsat/nsat.cgi:g" \
+ src/lang.h || die
+
+ mv configure.{in,ac} || die
+
+ eautoreconf
+}
+
+src_configure() {
+ tc-export CC
+ econf $(use_with gui x)
+}
+
+src_compile() {
+ emake MIXOBJ=-lmix++
+}
+
+src_install() {
+ dobin nsat smb-ns
+ use gui && dobin tools/xnsat
+
+ insinto /usr/share/nsat
+ doins nsat.cgi
+
+ insinto /etc/nsat
+ doins nsat.conf
+
+ dodoc README doc/CHANGES
+ doman doc/nsat.8
+}
diff --git a/net-analyzer/nsca/Manifest b/net-analyzer/nsca/Manifest
new file mode 100644
index 000000000000..c588efc6e071
--- /dev/null
+++ b/net-analyzer/nsca/Manifest
@@ -0,0 +1 @@
+DIST nsca-2.7.2.tar.gz 104953 BLAKE2B 74dce7b59149cd41fe316dc48588d744131efbbe8073d0defe3542a774ac7dd7429a23e5e7f6b2c9b9e45fa1938cdb2994bfcf93e745c12c8fb5bfbbeb627e6e SHA512 f84cac3613bbd0ded4ec700c1dadac71ed075544d0f48281a70946a67792b7f4bcdf6dc3bd5ccf1293cc6a0277638e0f034c33064bf9c05696b4f015e7f15010
diff --git a/net-analyzer/nsca/files/nsca.conf b/net-analyzer/nsca/files/nsca.conf
new file mode 100644
index 000000000000..987cd10ebf58
--- /dev/null
+++ b/net-analyzer/nsca/files/nsca.conf
@@ -0,0 +1,5 @@
+# Choose the configuration file to use; the pre-defined configurations
+# for Nagios and Icinga are available in their respective directories:
+# /etc/nagios/nsca.cfg
+# /etc/icinga/nsca.cfg
+CFGFILE=/etc/nagios/nsca.cfg
diff --git a/net-analyzer/nsca/files/nsca.init b/net-analyzer/nsca/files/nsca.init
new file mode 100644
index 000000000000..cd47bb64e95c
--- /dev/null
+++ b/net-analyzer/nsca/files/nsca.init
@@ -0,0 +1,33 @@
+#!/sbin/openrc-run
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+: ${CFGFILE:=/etc/nagios/nsca.cfg}
+
+get_config() {
+ [ -f ${CFGFILE} ] || return 1
+
+ sed -n -e 's:^[ \t]*'$1'=\([^#]\+\).*:\1:p' \
+ ${CFGFILE}
+}
+
+extra_started_commands="reload"
+
+command=/usr/libexec/${SVCNAME}
+command_args="-c ${CFGFILE} --daemon"
+pidfile=$(get_config pid_file)
+
+depend() {
+ config ${CFGFILE}
+
+ case $(get_config nsca_user) in
+ icinga) need icinga ;;
+ nagios) need nagios ;;
+ esac
+}
+
+reload() {
+ ebegin "Reloading ${SVCNAME}"
+ kill -HUP `cat $(get_config pid_file)`
+ eend $?
+}
diff --git a/net-analyzer/nsca/metadata.xml b/net-analyzer/nsca/metadata.xml
new file mode 100644
index 000000000000..327a42e0be6b
--- /dev/null
+++ b/net-analyzer/nsca/metadata.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>sysadmin@gentoo.org</email>
+ <name>Gentoo Sysadmin Project</name>
+ </maintainer>
+ <longdescription lang="en">
+ This program is designed to accept passive service check results
+ from clients that use the send_nsca utility (which is included in
+ this package) and pass them along to the Nagios process by using
+ the external command interface. The program can either be run as a
+ standalone daemon or as a service under inetd. If you have
+ libmcrypt installed on your systems, you can choose from multiple
+ crypto algorithms (DES, 3DES, CAST, xTEA, Twofish, LOKI97,
+ RJINDAEL, SERPENT, GOST, SAFER/SAFER+, etc.) for encrypting the
+ traffic between the client and the server. Encryption is
+ important in this addon, as it prevents unauthorized users from
+ sending bogus check results to Nagios. Read the included SECURITY
+ document for more information.
+
+ This package provides the send_nsca utility running on the client.
+ </longdescription>
+ <use>
+ <flag name="crypt">
+ Build support for crypted communication with nsca, through
+ <pkg>dev-libs/libmcrypt</pkg>. It's recommended not to disable this
+ flag unless all the communication will be handled in an
+ absolutely safe environment.
+ </flag>
+ <flag name="minimal">
+ Only build and install the send_nsca command and not the
+ daemon. This allows a very minimal install with no overhead when
+ setting up a node.
+ </flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nsca/nsca-2.7.2-r104.ebuild b/net-analyzer/nsca/nsca-2.7.2-r104.ebuild
new file mode 100644
index 000000000000..c60093a62989
--- /dev/null
+++ b/net-analyzer/nsca/nsca-2.7.2-r104.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="Nagios Service Check Acceptor"
+HOMEPAGE="https://www.nagios.org/"
+SRC_URI="https://downloads.sourceforge.net/nagios/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~ppc ppc64 ~sparc x86"
+IUSE="tcpd +crypt minimal"
+
+DEPEND="crypt? ( >=dev-libs/libmcrypt-2.5.1-r4 )
+ !minimal? (
+ tcpd? ( sys-apps/tcp-wrappers )
+ acct-group/icinga
+ acct-group/nagios
+ acct-user/icinga
+ acct-user/nagios
+ )"
+RDEPEND="${DEPEND}
+ !minimal? (
+ || (
+ net-analyzer/icinga
+ net-analyzer/nagios
+ )
+ )
+ sys-apps/openrc"
+
+src_configure() {
+ use tcpd || export ac_cv_lib_wrap_main=no
+ use crypt || export ac_cv_path_LIBMCRYPT_CONFIG=/bin/false
+
+ econf \
+ --localstatedir="${EPREFIX}"/var/nagios \
+ --sysconfdir="${EPREFIX}"/etc/nagios \
+ --with-nsca-user=nagios \
+ --with-nsca-grp=nagios
+}
+
+src_compile() {
+ emake -C src send_nsca $(use minimal || echo nsca)
+
+ # prepare the alternative configuration file
+ sed \
+ -e '/nsca_\(user\|group\)/s:nagios:icinga:' \
+ -e '/nsca_chroot/s:=.*:=/var/lib/icinga/rw:' \
+ -e '/\(command\|alternate_dump\)_file/s:/var/nagios:/var/lib/icinga:' \
+ "${S}"/sample-config/nsca.cfg > "${T}"/nsca.icinga.cfg || die
+}
+
+src_install() {
+ dodoc LEGAL Changelog README SECURITY
+
+ dobin src/send_nsca
+
+ insinto /etc/nagios
+ doins sample-config/send_nsca.cfg
+
+ if ! use minimal; then
+ exeinto /usr/libexec
+ doexe src/nsca
+
+ newinitd "${FILESDIR}"/nsca.init nsca
+ newconfd "${FILESDIR}"/nsca.conf nsca
+
+ insinto /etc/nagios
+ doins sample-config/nsca.cfg
+
+ insinto /etc/icinga
+ newins "${T}"/nsca.icinga.cfg nsca.cfg
+ fi
+}
+
+pkg_postinst() {
+ if ! use minimal; then
+ elog "If you are using the nsca daemon, remember to edit"
+ elog "the config file /etc/nagios/nsca.cfg"
+ elog
+ elog "If you intend to use nsca with Icinga, change the"
+ elog "configuration file path in /etc/conf.d/nsca so that"
+ elog "it will default to the correct paths and users."
+ fi
+}
diff --git a/net-analyzer/ntopng/Manifest b/net-analyzer/ntopng/Manifest
new file mode 100644
index 000000000000..9afd078f6a17
--- /dev/null
+++ b/net-analyzer/ntopng/Manifest
@@ -0,0 +1,2 @@
+DIST ntopng-6.0-web-34c53388e8da61e6e04b3efd8e98dcd9b9e4fe1b.tar.gz 2890924 BLAKE2B 476ce4ea83fbd1241c12e2cd486f97570457721fd7a7e78e0e7b04ae80c4a69beb37a00e6fb6e47783f9296371cc92b4c9347016bc971d815a3af83d1671eb1d SHA512 f9a1cf583c8d513a543498c9712ab40b9c1978877c5a86c0ec89bd26e9f66b8d90a0700f417bd7166b0b683e5091a3a1d30d4888564ae4220e62a9d82d17bc64
+DIST ntopng-6.0.tar.gz 68289620 BLAKE2B 7edbd1b6231fdd1592f1b6ecca9f96dc79513dce1c53db70fb7b721ea483738dc0e74107ca15629c430e14ca7e461053967abc35de09e303e36ded9ed9994b43 SHA512 d9d27bed0706d36c82a5b22b2b918014fed7d614e11c79cc47ee1033ae5fd2f703a67f3c5205c63c014bbd2839eb7c78616137ee6cc11d09ebcf6fafc7a658d2
diff --git a/net-analyzer/ntopng/files/ntopng-5.2.1-mysqltool.patch b/net-analyzer/ntopng/files/ntopng-5.2.1-mysqltool.patch
new file mode 100644
index 000000000000..48551589f022
--- /dev/null
+++ b/net-analyzer/ntopng/files/ntopng-5.2.1-mysqltool.patch
@@ -0,0 +1,17 @@
+--- a/configure.ac.in
++++ b/configure.ac.in
+@@ -596,13 +596,7 @@ if test "${with_nedge+set}" != set; then
+ if test "x$ac_cv_prog_ac_ct_MARIADB" = "xmariadb_config"; then
+ MYSQLTOOL="mariadb_config"
+ else
+- PATH=$PATH:/usr/local/mysql/bin
+- AC_CHECK_TOOL(MYSQL, mysql_config)
+- if test "x$ac_cv_prog_ac_ct_MYSQL" = "xmysql_config"; then
+- MYSQLTOOL="mysql_config"
+- else
+- MYSQLTOOL=""
+- fi
++ MYSQLTOOL="mysql_config"
+ fi
+
+ if test -n "$MYSQLTOOL"; then
diff --git a/net-analyzer/ntopng/files/ntopng-5.4-ndpi-linking.patch b/net-analyzer/ntopng/files/ntopng-5.4-ndpi-linking.patch
new file mode 100644
index 000000000000..8a50b7cb1a10
--- /dev/null
+++ b/net-analyzer/ntopng/files/ntopng-5.4-ndpi-linking.patch
@@ -0,0 +1,49 @@
+--- a/configure.ac.in
++++ b/configure.ac.in
+@@ -231,31 +231,8 @@ NDPI_LIB=
+ NDPI_LIB_DEP=
+
+ AC_MSG_CHECKING(for nDPI source)
+- if test -d "./nDPI" ; then :
+- NDPI_HOME=./nDPI
+- elif test -d "../nDPI" ; then :
+- NDPI_HOME=../nDPI
+- elif test -d "$HOME/nDPI" ; then :
+- NDPI_HOME=$HOME/nDPI
+- fi
+-
+- if test ! -z "$NDPI_HOME" ; then :
+- AC_MSG_RESULT(found in $NDPI_HOME)
+- NDPI_LIB=$NDPI_HOME/src/lib/libndpi.a
+- AC_MSG_CHECKING(for $NDPI_LIB)
+- if test -r $NDPI_LIB ; then :
+- AC_MSG_RESULT(found $NDPI_LIB)
+- else
+- AC_MSG_RESULT(not found $NDPI_LIB: compiling)
+- cd $NDPI_HOME; ./autogen.sh; ${MAKE}; cd -
+- fi
+- NDPI_INC="-I$NDPI_HOME/src/include -I$NDPI_HOME/src/lib/third_party/include"
+- NDPI_LIB=$NDPI_HOME/src/lib/libndpi.a
+- NDPI_LIB_DEP=$NDPI_LIB
+- else
+- AC_MSG_RESULT(not found)
+- fi
+-
++ NDPI_LIB="-lndpi"
++ NDPI_LIB_DEP=$NDPI_LIB
+
+ if test ! -z "$NDPI_CUST_INC" ; then :
+ NDPI_INC=$NDPI_CUST_INC
+diff --git a/configure.ac.in b/configure.ac.in
+index ed906b1..3e70bec 100644
+--- a/configure.ac.in
++++ b/configure.ac.in
+@@ -242,7 +242,7 @@ if test ! -z "$NDPI_CUST_LIB" ; then :
+ NDPI_LIB=$NDPI_CUST_LIB
+ fi
+
+-if test -z "$NDPI_INC" || test -z "$NDPI_LIB" ; then :
++if test -z "$NDPI_LIB" ; then :
+ echo "Could not find nDPI"
+ echo "Please do cd ..; git clone https://github.com/ntop/nDPI.git; cd nDPI; ./autogen.sh; ${MAKE}; cd ../ntopng"
+ echo "and try again"
diff --git a/net-analyzer/ntopng/files/ntopng-6.0-dont-const-cast-argv.patch b/net-analyzer/ntopng/files/ntopng-6.0-dont-const-cast-argv.patch
new file mode 100644
index 000000000000..199db074097e
--- /dev/null
+++ b/net-analyzer/ntopng/files/ntopng-6.0-dont-const-cast-argv.patch
@@ -0,0 +1,34 @@
+The patch is borrowed from upstream https://github.com/ntop/ntopng
+
+https://github.com/ntop/ntopng/commit/5069aa4a6259bd0830a33f2ece980612dba5ace9
+
+commit 5069aa4a6259bd0830a33f2ece980612dba5ace9 (HEAD -> 6.0-stable, origin/6.0-stable)
+Author: Denis Pronin <dannftk@yandex.ru>
+Date: Sat Jun 8 09:29:51 2024 +0300
+
+ fix building when rrd_tune() function has const char** as the 2nd param (#8442)
+
+ Signed-off-by: Denis Pronin <dannftk@yandex.ru>
+
+diff --git a/src/LuaEngineNtop.cpp b/src/LuaEngineNtop.cpp
+index 42e41822c..ea8e3769f 100644
+--- a/src/LuaEngineNtop.cpp
++++ b/src/LuaEngineNtop.cpp
+@@ -21,6 +21,8 @@
+
+ #include "ntop_includes.h"
+
++#include <type_traits>
++
+ extern "C" {
+ #include "rrd.h"
+ };
+@@ -6296,7 +6298,7 @@ static int ntop_rrd_tune(lua_State *vm) {
+ filename = argv[1];
+
+ reset_rrd_state();
+- status = rrd_tune(argc, (char **)argv);
++ status = rrd_tune(argc, (std::conditional<std::is_same<decltype(rrd_tune), int(int, const char **)>::value, const char **, char **>::type)argv);
+
+ if (status != 0) {
+ char *err = rrd_get_error();
diff --git a/net-analyzer/ntopng/files/ntopng.conf.d b/net-analyzer/ntopng/files/ntopng.conf.d
new file mode 100644
index 000000000000..b53f5d4ed777
--- /dev/null
+++ b/net-analyzer/ntopng/files/ntopng.conf.d
@@ -0,0 +1,3 @@
+NTOPNG_OPTS="-i eth0"
+NTOPNG_OPTS="${NTOPNG_OPTS} -m 192.168.0.0/16"
+NTOPNG_OPTS="${NTOPNG_OPTS} -d /var/lib/ntopng"
diff --git a/net-analyzer/ntopng/files/ntopng.init.d b/net-analyzer/ntopng/files/ntopng.init.d
new file mode 100644
index 000000000000..02f911b05a88
--- /dev/null
+++ b/net-analyzer/ntopng/files/ntopng.init.d
@@ -0,0 +1,19 @@
+#!/sbin/openrc-run
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ need net redis
+}
+
+start() {
+ ebegin "Starting ntopng"
+ start-stop-daemon --start --exec /usr/bin/ntopng --pidfile /var/run/ntopng.pid --make-pidfile --background -e LUA_PATH='/usr/share/ntopng/scripts/lua/modules/?.lua' -- --user ntopng ${NTOPNG_OPTS}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping ntopng"
+ start-stop-daemon --stop --exec /usr/bin/ntopng --pidfile /var/run/ntopng.pid
+ eend $?
+}
diff --git a/net-analyzer/ntopng/metadata.xml b/net-analyzer/ntopng/metadata.xml
new file mode 100644
index 000000000000..de0d5f848741
--- /dev/null
+++ b/net-analyzer/ntopng/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ </maintainer>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:ntop:ntopng</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/ntopng/ntopng-6.0.ebuild b/net-analyzer/ntopng/ntopng-6.0.ebuild
new file mode 100644
index 000000000000..06d7c2f07c92
--- /dev/null
+++ b/net-analyzer/ntopng/ntopng-6.0.ebuild
@@ -0,0 +1,111 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools toolchain-funcs
+
+# Check this on bumps, get latest commit from the relevant branch (e.g. 6.0-stable)
+# See bug #894152 and https://github.com/ntop/ntopng/issues/7203
+NTOPNG_DIST_COMMIT="34c53388e8da61e6e04b3efd8e98dcd9b9e4fe1b"
+DESCRIPTION="Network traffic analyzer with web interface"
+HOMEPAGE="https://www.ntop.org/"
+SRC_URI="https://github.com/ntop/ntopng/archive/${PV}.tar.gz -> ${P}.tar.gz"
+SRC_URI+=" https://github.com/ntop/ntopng-dist/archive/${NTOPNG_DIST_COMMIT}.tar.gz -> ${P}-web-${NTOPNG_DIST_COMMIT}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="dev-db/mysql-connector-c:=
+ dev-db/sqlite:3
+ dev-libs/hiredis:=
+ dev-libs/json-c:=
+ dev-libs/libmaxminddb
+ dev-libs/libsodium:=
+ dev-libs/openssl:=
+ net-analyzer/rrdtool
+ net-libs/libpcap
+ ~net-libs/nDPI-4.8
+ >=net-libs/zeromq-3:=
+ net-misc/curl
+ sys-libs/libcap
+ virtual/zlib:="
+RDEPEND="${DEPEND}
+ acct-user/ntopng
+ acct-group/ntopng
+ dev-db/redis"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-5.2.1-mysqltool.patch
+ "${FILESDIR}"/${PN}-5.4-ndpi-linking.patch
+ "${FILESDIR}"/${PN}-6.0-dont-const-cast-argv.patch
+)
+
+src_prepare() {
+ default
+
+ # Follows upstream's autogen.sh
+ sed \
+ -e "s/@VERSION@/${PV}.$(date +%y%m%d)/g" \
+ -e "s/@SHORT_VERSION@/${PV}/g" \
+ -e "s/@GIT_DATE@/$(date)/g" \
+ -e "s/@GIT_RELEASE@/${PV}.$(date +%y%m%d)/g" \
+ -e "s/@GIT_BRANCH@//g" < "${S}/configure.ac.in" \
+ > "${S}/configure.ac" || die
+
+ eautoreconf
+}
+
+src_configure() {
+ tc-export PKG_CONFIG
+
+ # configure.ac.in at least has some bashisms(?) which get lost(?)
+ # in conversion to configure.ac (like [ -> nothing?) so just force
+ # bash for now. It's still not quite right but at least upstream will be
+ # testing with it. TODO: fix this!
+ CONFIG_SHELL="${BROOT}/bin/bash" econf --with-ndpi-includes="${ESYSROOT}"/usr/include/ndpi
+}
+
+src_compile() {
+ emake \
+ CC="$(tc-getCC)" \
+ MYCFLAGS="${CFLAGS}" \
+ MYLDFLAGS="${LDFLAGS}"
+}
+
+src_install() {
+ # httpdocs/geoip/README.geolocation.md is a symlink, change to real file
+ GEOLOCATION_MD="httpdocs/geoip/README.geolocation.md"
+ if [[ -h "${GEOLOCATION_MD}" ]] ; then
+ GEOLOCATION_MD_REAL=$(readlink -m -- "${GEOLOCATION_MD}" || die)
+ ln -f ${GEOLOCATION_MD_REAL} ${GEOLOCATION_MD} || die
+ fi
+
+ SHARE_NTOPNG_DIR="${EPREFIX}/usr/share/${PN}"
+ insinto "${SHARE_NTOPNG_DIR}"
+ doins -r httpdocs
+ doins -r scripts
+
+ insinto "${SHARE_NTOPNG_DIR}"/httpdocs/dist
+ doins -r "${WORKDIR}"/ntopng-dist-${NTOPNG_DIST_COMMIT}/.
+
+ insinto "${SHARE_NTOPNG_DIR}/third-party"
+ doins -r third-party/i18n.lua-master
+ doins -r third-party/lua-resty-template-master
+
+ exeinto /usr/bin
+ doexe "${PN}"
+ doman "${PN}.8"
+
+ newinitd "${FILESDIR}"/ntopng.init.d ntopng
+ newconfd "${FILESDIR}"/ntopng.conf.d ntopng
+
+ keepdir /var/lib/ntopng
+ fowners ntopng /var/lib/ntopng
+}
+
+pkg_postinst() {
+ elog "ntopng default credentials are user='admin' password='admin'"
+}
diff --git a/net-analyzer/nuttcp/Manifest b/net-analyzer/nuttcp/Manifest
new file mode 100644
index 000000000000..c7bb1cf75d83
--- /dev/null
+++ b/net-analyzer/nuttcp/Manifest
@@ -0,0 +1 @@
+DIST nuttcp-8.1.4.tar.bz2 13063356 BLAKE2B 374b76bed06615bf5966df5864c8987d5e8336eedd7450ccfef164e575f58ce2a22dbc1e0327e7740799560c30a03f9423d3fd50579fa01cd638059485c7f61b SHA512 ba6ff33bc1790c92f47d760d4588b128f60f0ca09ed43d95fd10b0edfb636a493b0d26b195e688a13b5b79fafc1cc52a0c73455263f921ff8ad0cf087f1d937b
diff --git a/net-analyzer/nuttcp/files/nuttcp-8.1.4-makefile.patch b/net-analyzer/nuttcp/files/nuttcp-8.1.4-makefile.patch
new file mode 100644
index 000000000000..02de62a80e70
--- /dev/null
+++ b/net-analyzer/nuttcp/files/nuttcp-8.1.4-makefile.patch
@@ -0,0 +1,21 @@
+--- a/Makefile 2017-10-29 08:39:34.209474792 +0200
++++ b/Makefile 2017-10-29 15:11:02.082490459 +0200
+@@ -2,8 +2,7 @@
+ #EXTRAVERSION=-pre1
+ CC = gcc -Wall
+ #OPT = -g -O0
+-OPT = -O3
+-CFLAGS = $(OPT) $(NOIPV6)
++CFLAGS += $(OPT) $(NOIPV6)
+ LIBS =
+ ifneq ($(NOIPV6),)
+ APPEXTV6=-noipv6
+@@ -53,7 +52,7 @@
+ # $(MAKE) CC=icc OPT="-w -O3 -parallel -unroll -align -xM -vec_report -par_report2"
+
+ $(APP)$(EXTRAVERSION)$(APPEXT): $(APP)$(EXTRAVERSION).c $(LIBS)
+- $(CC) $(CFLAGS) -o $@ $< $(LIBS)
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ $< $(LIBS)
+ inet_ntop.o: missing/inet_ntop.c missing/config.h
+ $(CC) $(CFLAGS.MISSING) -o $@ -c $<
+ inet_pton.o: missing/inet_pton.c missing/config.h
diff --git a/net-analyzer/nuttcp/files/nuttcp.confd b/net-analyzer/nuttcp/files/nuttcp.confd
new file mode 100644
index 000000000000..a41d858550a1
--- /dev/null
+++ b/net-analyzer/nuttcp/files/nuttcp.confd
@@ -0,0 +1,5 @@
+# Config file for /etc/init.d/nuttcp
+
+# extra options (run nuttcp -h for a list of supported options)
+# Parameter -S indicates that nuttcp acts as a server.
+NUTTCP_OPTS="-S"
diff --git a/net-analyzer/nuttcp/files/nuttcp.initd b/net-analyzer/nuttcp/files/nuttcp.initd
new file mode 100644
index 000000000000..3ba80fab8f6e
--- /dev/null
+++ b/net-analyzer/nuttcp/files/nuttcp.initd
@@ -0,0 +1,16 @@
+#!/sbin/openrc-run
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+command="/usr/bin/nuttcp"
+command_background="yes"
+command_args="${NUTTCP_OPTS}"
+pidfile="/run/${RC_SVCNAME}.pid"
+
+depend() {
+ need net
+}
+
+start_post() {
+ pgrep -n "${RC_SVCNAME%%.*}" > "${pidfile}"
+}
diff --git a/net-analyzer/nuttcp/metadata.xml b/net-analyzer/nuttcp/metadata.xml
new file mode 100644
index 000000000000..dac4dc272a73
--- /dev/null
+++ b/net-analyzer/nuttcp/metadata.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>spiderx@spiderx.dp.ua</email>
+ <name>Vladimir Pavljuchenkov</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription lang="en">
+ nuttcp is a network performance measurement tool intended for use
+ by network and system managers. Its most basic usage is to determine
+ the raw TCP (or UDP) network layer throughput by transferring memory
+ buffers from a source system across an interconnecting network to
+ a destination system, either transferring data for a specified time
+ interval, or alternatively transferring a specified number of bytes.
+ </longdescription>
+ <upstream>
+ <bugs-to>mailto:nuttcp@lcp.nrl.navy.mil</bugs-to>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/nuttcp/nuttcp-8.1.4-r1.ebuild b/net-analyzer/nuttcp/nuttcp-8.1.4-r1.ebuild
new file mode 100644
index 000000000000..e45ea3aabc0a
--- /dev/null
+++ b/net-analyzer/nuttcp/nuttcp-8.1.4-r1.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit readme.gentoo-r1 systemd toolchain-funcs
+
+DESCRIPTION="Network performance measurement tool"
+HOMEPAGE="https://www.nuttcp.net/"
+SRC_URI="https://nuttcp.net/${PN}/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="xinetd"
+
+RDEPEND="xinetd? ( sys-apps/xinetd )"
+
+DOCS=( examples.txt README )
+# Honor CC, LDFLAGS, CFLAGS, CPPFLAGS
+PATCHES=( "${FILESDIR}"/"${P}"-makefile.patch )
+
+DOC_CONTENTS="Usage of nuttpc by its service name in xinetd service,
+iptables rules, etc. will require adding these lines to /etc/services:\\n
+nuttcp\\t\\t5000/tcp\\n
+nuttcp-data\\t\\t5001/tcp\\n
+nuttcp6\\t\\t5000/tcp\\n
+nuttcp6-data\\t\\t5001/tcp\\n\\n
+To run ${PN} in server mode, run:\\n/etc/init.d/${PN} start"
+
+src_prepare() {
+ default
+
+ # Fix path to binary
+ sed -i '/server/s|/local||' xinetd.d/nuttcp || die "sed failed"
+}
+
+src_compile() {
+ emake APPEXT='' CC="$(tc-getCC)"
+}
+
+src_install() {
+ einstalldocs
+ doman "${PN}".8
+ newbin "${P}" "${PN}"
+
+ newinitd "${FILESDIR}"/"${PN}".initd "${PN}"
+ newconfd "${FILESDIR}"/"${PN}".confd "${PN}"
+ systemd_dounit systemd/"${PN}"@.service
+ systemd_dounit systemd/"${PN}".socket
+
+ if use xinetd ; then
+ insinto /etc/xinetd.d
+ doins xinetd.d/"${PN}"
+ fi
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+}
diff --git a/net-analyzer/odhcploc/Manifest b/net-analyzer/odhcploc/Manifest
new file mode 100644
index 000000000000..f5781687b5bc
--- /dev/null
+++ b/net-analyzer/odhcploc/Manifest
@@ -0,0 +1 @@
+DIST odhcploc-20111021.tar.gz 13831 BLAKE2B c0eb71bc47bdf70fee5f701d6d3a6641110682c82f49f3ea38402526cd4f83e588cbd75272adfafae15e9e3d2c366a9b4004a0a6cfe478cd469c6507627f0e28 SHA512 3270b2bf25e079544805ceaba152e4d47a3cae3d78db0429b21c884686de8e0a872628a92390eebe5128ebcf9dcc3d14020420bb95ae8b367784ae4282d21556
diff --git a/net-analyzer/odhcploc/metadata.xml b/net-analyzer/odhcploc/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/odhcploc/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/odhcploc/odhcploc-20111021-r2.ebuild b/net-analyzer/odhcploc/odhcploc-20111021-r2.ebuild
new file mode 100644
index 000000000000..24cc8e6c719e
--- /dev/null
+++ b/net-analyzer/odhcploc/odhcploc-20111021-r2.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Open DHCP Locator"
+HOMEPAGE="https://odhcploc.sourceforge.io"
+SRC_URI="https://downloads.sourceforge.net/project/${PN}/${PV}/${P}.tar.gz"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND="
+ elibc_musl? ( sys-libs/queue-standalone )
+"
+
+src_configure() {
+ # Don't clobber toolchain defaults
+ sed -i -e 's:-Wp,-D_FORTIFY_SOURCE=2::' Makefile || die
+
+ tc-export CC
+}
+
+src_install() {
+ dobin ${PN}
+ doman ${PN}.8
+ dodoc AUTHORS
+}
diff --git a/net-analyzer/oinkmaster/Manifest b/net-analyzer/oinkmaster/Manifest
new file mode 100644
index 000000000000..ab053bf236a1
--- /dev/null
+++ b/net-analyzer/oinkmaster/Manifest
@@ -0,0 +1 @@
+DIST oinkmaster-2.0.tar.gz 80111 BLAKE2B 486eecc69f046bafc056266f4329bc645dbec0aa46b0703b2ebec760db49146fec1e2d151075a7bf76fab158be6f93876ad4862a2de1ae29a35acf0e4410944e SHA512 03874462cff71e558d4383fef9e757eb4260b20f4b1de4741edcd49fec6effe32669e95edb637962b77b12c519deeb74adc3c15427d0e054e1b96e2f03ffdb3b
diff --git a/net-analyzer/oinkmaster/metadata.xml b/net-analyzer/oinkmaster/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/oinkmaster/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/oinkmaster/oinkmaster-2.0.ebuild b/net-analyzer/oinkmaster/oinkmaster-2.0.ebuild
new file mode 100644
index 000000000000..1fdc2a043589
--- /dev/null
+++ b/net-analyzer/oinkmaster/oinkmaster-2.0.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="Rule management for SNORT"
+HOMEPAGE="https://oinkmaster.sourceforge.net/"
+SRC_URI="https://downloads.sourceforge.net/oinkmaster/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~arm ppc ~sparc x86"
+IUSE="X"
+
+RDEPEND="
+ app-arch/gzip
+ app-arch/tar
+ >=dev-lang/perl-5.6.1
+ net-misc/wget
+ X? ( dev-perl/Tk )
+"
+
+src_install() {
+ dobin \
+ contrib/addmsg.pl \
+ contrib/addsid.pl \
+ contrib/create-sidmap.pl \
+ contrib/makesidex.pl \
+ oinkmaster.pl
+
+ use X && dobin contrib/oinkgui.pl
+
+ dodoc FAQ README README.gui README.win32 UPGRADING contrib/README.contrib
+
+ doman oinkmaster.1
+
+ insinto /etc
+ doins oinkmaster.conf
+}
diff --git a/net-analyzer/ookla-speedtest/Manifest b/net-analyzer/ookla-speedtest/Manifest
new file mode 100644
index 000000000000..def0e9c7711a
--- /dev/null
+++ b/net-analyzer/ookla-speedtest/Manifest
@@ -0,0 +1,4 @@
+DIST ookla-speedtest-1.2.0-linux-aarch64.tgz 1082287 BLAKE2B dc30e0c2bbe3206e326e22c1724f5bd63a9bf3d2237347222d2b36b2ccc98af06b55f5d5635c4487ae85d32323ea66a927b578ee29f89369ca395787bded34a3 SHA512 d7b78428220b84eac345594a500a76211dcbd19ffc9e399642a2e1506494433f9b6e596828bb5387275b0e1d38eada78af8183cefafa2ed1d93bfecdc366e569
+DIST ookla-speedtest-1.2.0-linux-armhf.tgz 1039260 BLAKE2B 8c4dc63bfdd797fd1e8482fa56f514486a564f3fd0e7f1fc008ba1dd6c20c5b3b8d92eb9b25458324b9ee65987edd1ce18f446b16a8e07f1c1f8df864424f75e SHA512 97a41d4ff38aa550faccfc29b9fe8b5d3e25deb2de4690598f2fb8c9469b379604fbd452ab978268e231b70154807ccc9d268a1cf40fa6aa10d2ec176e9b8be7
+DIST ookla-speedtest-1.2.0-linux-i386.tgz 1191626 BLAKE2B e416169ea7d7f86587b166458d5bff6b2d7e7757fb122deafb4fc824430059c15767b54113705e28b3bdb84bfe8420008f5e9bf5e221427ef7e0838faa04ede8 SHA512 a02cb0aabf9ce261944be9097ad9923bcbdc6b61989e764ac67ff5a46dedaff4f39a27ede733c081e3cc8e0b31f494e6be9aebcae9f4f8c63c4e0184ac9e320b
+DIST ookla-speedtest-1.2.0-linux-x86_64.tgz 1106829 BLAKE2B 0eef2c45e3b8d2a9b22f52dce3661d2d0ca472f7127404c0d2ba696068a17e09bdc37427162c41ddb7a3f928c3c402047630f7cd733a3651ee4f65ede2f5d6c2 SHA512 f7ea618abcb17204fea3ede6ec84ed968cd2625540a2922247019830fc6f80a3d2e744a78fc37c7c265e7f51222334b49aef222f80acc1698a57c3c9066708e1
diff --git a/net-analyzer/ookla-speedtest/metadata.xml b/net-analyzer/ookla-speedtest/metadata.xml
new file mode 100644
index 000000000000..ab6d48498440
--- /dev/null
+++ b/net-analyzer/ookla-speedtest/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>conikost@gentoo.org</email>
+ <name>Conrad Kostecki</name>
+ </maintainer>
+ <longdescription>
+ Speedtest CLI brings the trusted technology and global server network
+ behind Speedtest to the command line. Built for software developers,
+ system administrators and computer enthusiasts alike,
+ Speedtest CLI is the first official Linux-native Speedtest application
+ backed by Ookla.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/ookla-speedtest/ookla-speedtest-1.2.0.ebuild b/net-analyzer/ookla-speedtest/ookla-speedtest-1.2.0.ebuild
new file mode 100644
index 000000000000..04352bc97a59
--- /dev/null
+++ b/net-analyzer/ookla-speedtest/ookla-speedtest-1.2.0.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Internet connection measurement by Ookla"
+HOMEPAGE="https://www.speedtest.net/apps/cli"
+SRC_URI="
+ amd64? ( https://install.speedtest.net/app/cli/${P}-linux-x86_64.tgz )
+ arm? ( https://install.speedtest.net/app/cli/${P}-linux-armhf.tgz )
+ arm64? ( https://install.speedtest.net/app/cli/${P}-linux-aarch64.tgz )
+ x86? ( https://install.speedtest.net/app/cli/${P}-linux-i386.tgz )
+"
+S="${WORKDIR}"
+
+LICENSE="Ookla"
+SLOT="0"
+KEYWORDS="-* ~amd64 ~arm ~arm64 ~x86"
+RESTRICT="bindist mirror"
+
+QA_PREBUILT="usr/bin/ookla-speedtest"
+
+src_install() {
+ newbin speedtest ookla-speedtest
+ newman speedtest.5 ookla-speedtest.5
+ newdoc speedtest.md ookla-speedtest.md
+}
diff --git a/net-analyzer/openbsd-netcat/Manifest b/net-analyzer/openbsd-netcat/Manifest
new file mode 100644
index 000000000000..0335465e67df
--- /dev/null
+++ b/net-analyzer/openbsd-netcat/Manifest
@@ -0,0 +1,6 @@
+DIST netcat-openbsd_1.218-5.debian.tar.xz 52052 BLAKE2B 38ccde34bfa6f1873a8e38fa7355f94bc74cdeb125fd4081fd68819a685d49a4c8a6cc7ed243d49df2d38c7536f4ac680d598bd4c28a938bc4750c89376d2961 SHA512 a230eb143e32fe80ee108325bb81c4e163d48982b484bf4a93ef266e9eed12890e7e294c2fe3dd2ce91fe5aec7de2f1407bf25dc938c2565bfb3e0759555dddc
+DIST netcat-openbsd_1.218.orig.tar.gz 22964 BLAKE2B 2dba29cc93ef5295ec24db7632454564fa640fba139116d2732aff465c9a4b37238f65d51ad727f9b29d304b73ce05282b82ec468444c63f5611a90a1384ac62 SHA512 a830f0e3efdff01ba1bb0b344f49d545b9c184001cd641e523a6d24670b97d52dc723318660a5ec8f3215cb57ebe62ca4c06387000b6c8b6495a5c653a4206c6
+DIST netcat-openbsd_1.219-1.debian.tar.xz 52048 BLAKE2B 62c2e4a6446fbdb01ea34a70c10dc72a980e62b4d8e06e4564f05932b9fb291be73558a1b8c11f448c509b0fc3c5fe42381a1a9f0a14bba0c2e087dd1e6da9f1 SHA512 badc1afbe8a467c068fa1d3bf12817d568eae5bb9774f9f11d3b30c065eb3a8b39724bb456329d7153ea3160cd10fab159a6756f7eeafd9bfc8c5d78114f7da6
+DIST netcat-openbsd_1.219.orig.tar.gz 22940 BLAKE2B 4e871124a22fec2ba572f2a614b7eb5134565acd5d952973f7e7f76ead6b22d0811efcc916726da1e7719c5d3014f94ea53ad09804a77b55c4b15fc571bf0e95 SHA512 9f6d531d33410457b8f1e6a3eb0d105dbd819d5e4fe9753d32d7fd4583680ceba102a60307a8b5ef26b47047492b207388742b725da3708d30d360d4a196f115
+DIST netcat-openbsd_1.234-1.debian.tar.xz 52892 BLAKE2B 82be4c8f944cb8a63805d0ad97cc675ebe46c8510acf14bd68f98c289107615a3ee6f9f1119b3f21fd6c8673c60d95d0c520d9a0917f42aac1f20e367b631836 SHA512 481a9617749c02cee3ee0b871eb8f7f364f1514c1c89bf1d1d741bb4c4960ae3279306f233b4edb1c6805f9bb0cc0d056e59003bb35db8ee28aa779540ab4fb9
+DIST netcat-openbsd_1.234.orig.tar.gz 23408 BLAKE2B 60d43fad746374b18862d53394e7e3d70da242b3ef242730f5dbf124d237e7b6d95139c09e916f0d5b4301bf6d5d10e4548e61a9044075965b3df1c6232dac9e SHA512 81b1cb461cb26d728b0a5d1d07c53624a05c84872a82f3d9cba43c9e8c25581b773cbe7a3467ad91add028f6765d9349c21dafbe0d746806763ae601547a9673
diff --git a/net-analyzer/openbsd-netcat/files/openbsd-netcat-1.105-musl-b64_ntop.patch b/net-analyzer/openbsd-netcat/files/openbsd-netcat-1.105-musl-b64_ntop.patch
new file mode 100644
index 000000000000..a9603b38bc03
--- /dev/null
+++ b/net-analyzer/openbsd-netcat/files/openbsd-netcat-1.105-musl-b64_ntop.patch
@@ -0,0 +1,349 @@
+diff -Naur netcat-openbsd-1.105.orig/Makefile netcat-openbsd-1.105/Makefile
+--- netcat-openbsd-1.105.orig/Makefile 2017-06-18 09:01:44.293852659 -0700
++++ netcat-openbsd-1.105/Makefile 2017-06-18 09:04:35.566687655 -0700
+@@ -1,7 +1,7 @@
+ # $OpenBSD: Makefile,v 1.6 2001/09/02 18:45:41 jakob Exp $
+
+ PROG= nc
+-SRCS= netcat.c atomicio.c socks.c
++SRCS= netcat.c atomicio.c socks.c compat/base64.c
+
+ LIBS= `pkg-config --libs libbsd` -lresolv
+ OBJS= $(SRCS:.c=.o)
+diff -Naur netcat-openbsd-1.105.orig/compat/base64.c netcat-openbsd-1.105/compat/base64.c
+--- netcat-openbsd-1.105.orig/compat/base64.c 1969-12-31 16:00:00.000000000 -0800
++++ netcat-openbsd-1.105/compat/base64.c 2017-06-18 09:01:31.288700637 -0700
+@@ -0,0 +1,315 @@
++/* $OpenBSD: base64.c,v 1.8 2015/01/16 16:48:51 deraadt Exp $ */
++
++/*
++ * Copyright (c) 1996 by Internet Software Consortium.
++ *
++ * Permission to use, copy, modify, and distribute this software for any
++ * purpose with or without fee is hereby granted, provided that the above
++ * copyright notice and this permission notice appear in all copies.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS
++ * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
++ * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE
++ * CONSORTIUM BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
++ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
++ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
++ * ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
++ * SOFTWARE.
++ */
++
++/*
++ * Portions Copyright (c) 1995 by International Business Machines, Inc.
++ *
++ * International Business Machines, Inc. (hereinafter called IBM) grants
++ * permission under its copyrights to use, copy, modify, and distribute this
++ * Software with or without fee, provided that the above copyright notice and
++ * all paragraphs of this notice appear in all copies, and that the name of IBM
++ * not be used in connection with the marketing of any product incorporating
++ * the Software or modifications thereof, without specific, written prior
++ * permission.
++ *
++ * To the extent it has a right to do so, IBM grants an immunity from suit
++ * under its patents, if any, for the use, sale or manufacture of products to
++ * the extent that such products are used for performing Domain Name System
++ * dynamic updates in TCP/IP networks by means of the Software. No immunity is
++ * granted for any product per se or for any other function of any product.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", AND IBM DISCLAIMS ALL WARRANTIES,
++ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
++ * PARTICULAR PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL,
++ * DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER ARISING
++ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE, EVEN
++ * IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES.
++ */
++
++#include <sys/types.h>
++#include <sys/socket.h>
++#include <netinet/in.h>
++#include <arpa/inet.h>
++#include <arpa/nameser.h>
++
++#include <ctype.h>
++#include <resolv.h>
++#include <stdio.h>
++
++#include <stdlib.h>
++#include <string.h>
++
++static const char Base64[] =
++ "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
++static const char Pad64 = '=';
++
++/* (From RFC1521 and draft-ietf-dnssec-secext-03.txt)
++ The following encoding technique is taken from RFC 1521 by Borenstein
++ and Freed. It is reproduced here in a slightly edited form for
++ convenience.
++
++ A 65-character subset of US-ASCII is used, enabling 6 bits to be
++ represented per printable character. (The extra 65th character, "=",
++ is used to signify a special processing function.)
++
++ The encoding process represents 24-bit groups of input bits as output
++ strings of 4 encoded characters. Proceeding from left to right, a
++ 24-bit input group is formed by concatenating 3 8-bit input groups.
++ These 24 bits are then treated as 4 concatenated 6-bit groups, each
++ of which is translated into a single digit in the base64 alphabet.
++
++ Each 6-bit group is used as an index into an array of 64 printable
++ characters. The character referenced by the index is placed in the
++ output string.
++
++ Table 1: The Base64 Alphabet
++
++ Value Encoding Value Encoding Value Encoding Value Encoding
++ 0 A 17 R 34 i 51 z
++ 1 B 18 S 35 j 52 0
++ 2 C 19 T 36 k 53 1
++ 3 D 20 U 37 l 54 2
++ 4 E 21 V 38 m 55 3
++ 5 F 22 W 39 n 56 4
++ 6 G 23 X 40 o 57 5
++ 7 H 24 Y 41 p 58 6
++ 8 I 25 Z 42 q 59 7
++ 9 J 26 a 43 r 60 8
++ 10 K 27 b 44 s 61 9
++ 11 L 28 c 45 t 62 +
++ 12 M 29 d 46 u 63 /
++ 13 N 30 e 47 v
++ 14 O 31 f 48 w (pad) =
++ 15 P 32 g 49 x
++ 16 Q 33 h 50 y
++
++ Special processing is performed if fewer than 24 bits are available
++ at the end of the data being encoded. A full encoding quantum is
++ always completed at the end of a quantity. When fewer than 24 input
++ bits are available in an input group, zero bits are added (on the
++ right) to form an integral number of 6-bit groups. Padding at the
++ end of the data is performed using the '=' character.
++
++ Since all base64 input is an integral number of octets, only the
++ -------------------------------------------------
++ following cases can arise:
++
++ (1) the final quantum of encoding input is an integral
++ multiple of 24 bits; here, the final unit of encoded
++ output will be an integral multiple of 4 characters
++ with no "=" padding,
++ (2) the final quantum of encoding input is exactly 8 bits;
++ here, the final unit of encoded output will be two
++ characters followed by two "=" padding characters, or
++ (3) the final quantum of encoding input is exactly 16 bits;
++ here, the final unit of encoded output will be three
++ characters followed by one "=" padding character.
++ */
++
++int
++b64_ntop(src, srclength, target, targsize)
++ u_char const *src;
++ size_t srclength;
++ char *target;
++ size_t targsize;
++{
++ size_t datalength = 0;
++ u_char input[3];
++ u_char output[4];
++ int i;
++
++ while (2 < srclength) {
++ input[0] = *src++;
++ input[1] = *src++;
++ input[2] = *src++;
++ srclength -= 3;
++
++ output[0] = input[0] >> 2;
++ output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
++ output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
++ output[3] = input[2] & 0x3f;
++
++ if (datalength + 4 > targsize)
++ return (-1);
++ target[datalength++] = Base64[output[0]];
++ target[datalength++] = Base64[output[1]];
++ target[datalength++] = Base64[output[2]];
++ target[datalength++] = Base64[output[3]];
++ }
++
++ /* Now we worry about padding. */
++ if (0 != srclength) {
++ /* Get what's left. */
++ input[0] = input[1] = input[2] = '\0';
++ for (i = 0; i < srclength; i++)
++ input[i] = *src++;
++
++ output[0] = input[0] >> 2;
++ output[1] = ((input[0] & 0x03) << 4) + (input[1] >> 4);
++ output[2] = ((input[1] & 0x0f) << 2) + (input[2] >> 6);
++
++ if (datalength + 4 > targsize)
++ return (-1);
++ target[datalength++] = Base64[output[0]];
++ target[datalength++] = Base64[output[1]];
++ if (srclength == 1)
++ target[datalength++] = Pad64;
++ else
++ target[datalength++] = Base64[output[2]];
++ target[datalength++] = Pad64;
++ }
++ if (datalength >= targsize)
++ return (-1);
++ target[datalength] = '\0'; /* Returned value doesn't count \0. */
++ return (datalength);
++}
++
++/* skips all whitespace anywhere.
++ converts characters, four at a time, starting at (or after)
++ src from base - 64 numbers into three 8 bit bytes in the target area.
++ it returns the number of data bytes stored at the target, or -1 on error.
++ */
++
++int
++b64_pton(src, target, targsize)
++ char const *src;
++ u_char *target;
++ size_t targsize;
++{
++ int tarindex, state, ch;
++ u_char nextbyte;
++ char *pos;
++
++ state = 0;
++ tarindex = 0;
++
++ while ((ch = (unsigned char)*src++) != '\0') {
++ if (isspace(ch)) /* Skip whitespace anywhere. */
++ continue;
++
++ if (ch == Pad64)
++ break;
++
++ pos = strchr(Base64, ch);
++ if (pos == 0) /* A non-base64 character. */
++ return (-1);
++
++ switch (state) {
++ case 0:
++ if (target) {
++ if (tarindex >= targsize)
++ return (-1);
++ target[tarindex] = (pos - Base64) << 2;
++ }
++ state = 1;
++ break;
++ case 1:
++ if (target) {
++ if (tarindex >= targsize)
++ return (-1);
++ target[tarindex] |= (pos - Base64) >> 4;
++ nextbyte = ((pos - Base64) & 0x0f) << 4;
++ if (tarindex + 1 < targsize)
++ target[tarindex+1] = nextbyte;
++ else if (nextbyte)
++ return (-1);
++ }
++ tarindex++;
++ state = 2;
++ break;
++ case 2:
++ if (target) {
++ if (tarindex >= targsize)
++ return (-1);
++ target[tarindex] |= (pos - Base64) >> 2;
++ nextbyte = ((pos - Base64) & 0x03) << 6;
++ if (tarindex + 1 < targsize)
++ target[tarindex+1] = nextbyte;
++ else if (nextbyte)
++ return (-1);
++ }
++ tarindex++;
++ state = 3;
++ break;
++ case 3:
++ if (target) {
++ if (tarindex >= targsize)
++ return (-1);
++ target[tarindex] |= (pos - Base64);
++ }
++ tarindex++;
++ state = 0;
++ break;
++ }
++ }
++
++ /*
++ * We are done decoding Base-64 chars. Let's see if we ended
++ * on a byte boundary, and/or with erroneous trailing characters.
++ */
++
++ if (ch == Pad64) { /* We got a pad char. */
++ ch = (unsigned char)*src++; /* Skip it, get next. */
++ switch (state) {
++ case 0: /* Invalid = in first position */
++ case 1: /* Invalid = in second position */
++ return (-1);
++
++ case 2: /* Valid, means one byte of info */
++ /* Skip any number of spaces. */
++ for (; ch != '\0'; ch = (unsigned char)*src++)
++ if (!isspace(ch))
++ break;
++ /* Make sure there is another trailing = sign. */
++ if (ch != Pad64)
++ return (-1);
++ ch = (unsigned char)*src++; /* Skip the = */
++ /* Fall through to "single trailing =" case. */
++ /* FALLTHROUGH */
++
++ case 3: /* Valid, means two bytes of info */
++ /*
++ * We know this char is an =. Is there anything but
++ * whitespace after it?
++ */
++ for (; ch != '\0'; ch = (unsigned char)*src++)
++ if (!isspace(ch))
++ return (-1);
++
++ /*
++ * Now make sure for cases 2 and 3 that the "extra"
++ * bits that slopped past the last full byte were
++ * zeros. If we don't check them, they become a
++ * subliminal channel.
++ */
++ if (target && tarindex < targsize &&
++ target[tarindex] != 0)
++ return (-1);
++ }
++ } else {
++ /*
++ * We ended by seeing the end of the string. Make sure we
++ * have no partial bytes lying around.
++ */
++ if (state != 0)
++ return (-1);
++ }
++
++ return (tarindex);
++}
+diff -Naur netcat-openbsd-1.105.orig/compat/base64.h netcat-openbsd-1.105/compat/base64.h
+--- netcat-openbsd-1.105.orig/compat/base64.h 1969-12-31 16:00:00.000000000 -0800
++++ netcat-openbsd-1.105/compat/base64.h 2017-06-18 09:09:02.057554167 -0700
+@@ -0,0 +1,3 @@
++#include <sys/types.h>
++int b64_ntop(u_char const* src, size_t srclength, char *target, size_t targsize);
++int b64_pton(char const* src, u_char *target, size_t targsize);
+diff -Naur netcat-openbsd-1.105.orig/socks.c netcat-openbsd-1.105/socks.c
+--- netcat-openbsd-1.105.orig/socks.c 2017-06-18 09:01:44.293852659 -0700
++++ netcat-openbsd-1.105/socks.c 2017-06-18 09:09:21.105757665 -0700
+@@ -40,6 +40,7 @@
+ #include <resolv.h>
+ #include <bsd/readpassphrase.h>
+ #include "atomicio.h"
++#include "compat/base64.h"
+
+ #define SOCKS_PORT "1080"
+ #define HTTP_PROXY_PORT "3128"
diff --git a/net-analyzer/openbsd-netcat/files/openbsd-netcat-1.190-darwin13.patch b/net-analyzer/openbsd-netcat/files/openbsd-netcat-1.190-darwin13.patch
new file mode 100644
index 000000000000..216b8c207922
--- /dev/null
+++ b/net-analyzer/openbsd-netcat/files/openbsd-netcat-1.190-darwin13.patch
@@ -0,0 +1,54 @@
+strtonum isn't available on <Darwin-11
+
+however, it is in the header files on systems like 10.15 with an
+availability clause, so don't define strtonum static such that it
+matches the prototype from stdlib.h
+
+diff --git a/netcat.c b/netcat.c
+index a0fb51b..bbb5dd1 100644
+--- a/netcat.c
++++ b/netcat.c
+@@ -240,6 +243,43 @@ static int connect_with_timeout(int fd, const struct sockaddr *sa,
+
+ static void quit();
+
++static char* strtonumerrs[] = {
++ "too large",
++ "too small",
++ "invalid"
++};
++
++long long
++strtonum(
++ const char *nptr,
++ long long minval,
++ long long maxval,
++ const char **errstr)
++{
++ long long val;
++
++ while (*nptr != '\0' && isspace(*nptr))
++ nptr++;
++ if (*nptr == '\0') {
++ if (errstr != NULL)
++ *errstr = strtonumerrs[2];
++ return 0;
++ }
++ val = atoll(nptr);
++ if (val < minval) {
++ if (errstr != NULL)
++ *errstr = strtonumerrs[1];
++ return 0;
++ }
++ if (val > maxval) {
++ if (errstr != NULL)
++ *errstr = strtonumerrs[0];
++ return 0;
++ }
++ *errstr = NULL;
++ return val;
++}
++
+ int
+ main(int argc, char *argv[])
+ {
diff --git a/net-analyzer/openbsd-netcat/files/openbsd-netcat-1.219-darwin.patch b/net-analyzer/openbsd-netcat/files/openbsd-netcat-1.219-darwin.patch
new file mode 100644
index 000000000000..564c414fc750
--- /dev/null
+++ b/net-analyzer/openbsd-netcat/files/openbsd-netcat-1.219-darwin.patch
@@ -0,0 +1,95 @@
+Allow compilation on Darwin, reverting parts of Linux/Debian patch
+
+Signed-off-by: Fabian Groffen <grobian@gentoo.org>
+
+--- a/netcat.c 2023-09-26 15:04:51.169658537 +0200
++++ b/netcat.c 2023-09-26 15:07:00.270929256 +0200
+@@ -50,13 +50,18 @@
+ # include <bsd/readpassphrase.h>
+ #endif
+
++#ifndef IPTOS_LOWCOST
++# define IPTOS_LOWCOST 0x02
++#endif
+ #ifndef IPTOS_LOWDELAY
+ # define IPTOS_LOWDELAY 0x10
+ # define IPTOS_THROUGHPUT 0x08
+ # define IPTOS_RELIABILITY 0x04
+-# define IPTOS_LOWCOST 0x02
+ # define IPTOS_MINCOST IPTOS_LOWCOST
+ #endif /* IPTOS_LOWDELAY */
++#ifndef SOCK_CLOEXEC
++# define SOCK_CLOEXEC 0
++#endif
+
+ # ifndef IPTOS_DSCP_AF11
+ # define IPTOS_DSCP_AF11 0x28
+@@ -108,8 +113,9 @@
+ # include <tls.h>
+ #endif
+ #include <unistd.h>
+-#include <bsd/stdlib.h>
+-#include <bsd/string.h>
++#include <stdlib.h>
++#include <string.h>
++#include <ctype.h>
+
+ #include "atomicio.h"
+
+@@ -814,9 +820,8 @@
+ int connfd;
+
+ len = sizeof(cliaddr);
+- connfd = accept4(s, (struct sockaddr *)&cliaddr,
+- &len, SOCK_NONBLOCK);
+- if (connfd == -1) {
++ connfd = accept(s, (struct sockaddr *)&cliaddr, &len);
++ if (connfd == -1 || fcntl(connfd, F_SETFL, O_NONBLOCK) == -1) {
+ /* For now, all errnos are fatal */
+ err(1, "accept");
+ }
+@@ -1069,6 +1074,8 @@
+ } else
+ err(1, "poll failed");
+ }
++ if (fcntl(s, F_SETFD, FD_CLOEXEC) == -1)
++ return -1;
+
+ return ret;
+ }
+@@ -1218,9 +1225,13 @@
+ port, gai_strerror(error));
+
+ for (res = res0; res; res = res->ai_next) {
+- if ((s = socket(res->ai_family, res->ai_socktype |
+- SOCK_NONBLOCK, res->ai_protocol)) == -1)
++ if ((s = socket(res->ai_family, res->ai_socktype,
++ res->ai_protocol)) == -1)
+ continue;
++ if (fcntl(s, F_SETFL, O_NONBLOCK) == -1) {
++ close(s);
++ continue;
++ }
+
+ /* Bind to a local port or source address if specified. */
+ if (sflag || pflag) {
+--- a/socks.c 2023-09-26 15:04:51.085185645 +0200
++++ b/socks.c 2023-09-26 15:07:30.947097100 +0200
+@@ -38,7 +38,7 @@
+ #include <string.h>
+ #include <unistd.h>
+ #include <resolv.h>
+-#include <bsd/readpassphrase.h>
++#include <readpassphrase.h>
+ #include "atomicio.h"
+
+ #define SOCKS_PORT "1080"
+@@ -53,6 +53,8 @@
+ #define SOCKS_DOMAIN 3
+ #define SOCKS_IPV6 4
+
++#define explicit_bzero(S,L) bzero(S,L)
++
+ int remote_connect(const char *, const char *, struct addrinfo, char *);
+ int socks_connect(const char *, const char *, struct addrinfo,
+ const char *, const char *, struct addrinfo, int,
diff --git a/net-analyzer/openbsd-netcat/metadata.xml b/net-analyzer/openbsd-netcat/metadata.xml
new file mode 100644
index 000000000000..d78d735c0c83
--- /dev/null
+++ b/net-analyzer/openbsd-netcat/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>heroxbd@gentoo.org</email>
+ <name>Benda Xu</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/openbsd-netcat/openbsd-netcat-1.218_p5.ebuild b/net-analyzer/openbsd-netcat/openbsd-netcat-1.218_p5.ebuild
new file mode 100644
index 000000000000..317785048787
--- /dev/null
+++ b/net-analyzer/openbsd-netcat/openbsd-netcat-1.218_p5.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+MY_PV=$(ver_cut 1-2)
+DESCRIPTION="The OpenBSD network swiss army knife"
+HOMEPAGE="https://cvsweb.openbsd.org/src/usr.bin/nc/ https://salsa.debian.org/debian/netcat-openbsd"
+SRC_URI="
+ mirror://debian/pool/main/n/netcat-openbsd/netcat-openbsd_${MY_PV}.orig.tar.gz
+ mirror://debian/pool/main/n/netcat-openbsd/netcat-openbsd_${MY_PV}-$(ver_cut 4).debian.tar.xz
+"
+S="${WORKDIR}"/netcat-openbsd-${MY_PV}
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~arm arm64 ~ppc ppc64 ~riscv x86 ~x64-macos"
+
+RDEPEND="
+ !net-analyzer/netcat
+ !elibc_Darwin? ( dev-libs/libbsd )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+src_prepare() {
+ local i
+ for i in $(<"${WORKDIR}"/debian/patches/series) ; do
+ PATCHES+=( "${WORKDIR}"/debian/patches/${i} )
+ done
+
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # This undoes some of the Debian/Linux changes
+ PATCHES+=( "${FILESDIR}"/${PN}-1.219-darwin.patch )
+
+ if [[ ${CHOST##*-darwin} -lt 20 ]] ; then
+ PATCHES+=( "${FILESDIR}"/${PN}-1.190-darwin13.patch )
+ fi
+ fi
+
+ if use elibc_musl ; then
+ PATCHES+=( "${FILESDIR}"/${PN}-1.105-musl-b64_ntop.patch )
+ fi
+
+ default
+}
+
+src_compile() {
+ # gnu99 for bug #943711
+ emake CC="$(tc-getCC) -std=gnu99" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}"
+}
+
+src_install() {
+ dobin nc
+ doman nc.1
+
+ cd "${WORKDIR}"/debian || die
+ newdoc netcat-openbsd.README.Debian README
+ dodoc -r examples
+}
+
+pkg_postinst() {
+ if use kernel_linux ; then
+ ewarn "SO_REUSEPORT is introduced in linux 3.9. If your running kernel is older"
+ ewarn "and kernel header is newer, nc will not listen correctly. Matching the header"
+ ewarn "to the running kernel will do. See bug #490246 for details."
+ fi
+}
diff --git a/net-analyzer/openbsd-netcat/openbsd-netcat-1.219_p1.ebuild b/net-analyzer/openbsd-netcat/openbsd-netcat-1.219_p1.ebuild
new file mode 100644
index 000000000000..50921666bb3d
--- /dev/null
+++ b/net-analyzer/openbsd-netcat/openbsd-netcat-1.219_p1.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+MY_PV=$(ver_cut 1-2)
+DESCRIPTION="The OpenBSD network swiss army knife"
+HOMEPAGE="https://cvsweb.openbsd.org/src/usr.bin/nc/ https://salsa.debian.org/debian/netcat-openbsd"
+SRC_URI="
+ mirror://debian/pool/main/n/netcat-openbsd/netcat-openbsd_${MY_PV}.orig.tar.gz
+ mirror://debian/pool/main/n/netcat-openbsd/netcat-openbsd_${MY_PV}-$(ver_cut 4).debian.tar.xz
+"
+S="${WORKDIR}"/netcat-openbsd-${MY_PV}
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~arm arm64 ~loong ~ppc ppc64 ~riscv x86 ~arm64-macos ~x64-macos"
+
+RDEPEND="
+ !net-analyzer/netcat
+ !elibc_Darwin? ( dev-libs/libbsd )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+src_prepare() {
+ local i
+ for i in $(<"${WORKDIR}"/debian/patches/series) ; do
+ PATCHES+=( "${WORKDIR}"/debian/patches/${i} )
+ done
+
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # This undoes some of the Debian/Linux changes
+ PATCHES+=( "${FILESDIR}"/${PN}-1.219-darwin.patch )
+
+ if [[ ${CHOST##*-darwin} -lt 20 ]] ; then
+ PATCHES+=( "${FILESDIR}"/${PN}-1.190-darwin13.patch )
+ fi
+ fi
+
+ if use elibc_musl ; then
+ PATCHES+=( "${FILESDIR}"/${PN}-1.105-musl-b64_ntop.patch )
+ fi
+
+ default
+}
+
+src_compile() {
+ # gnu99 for bug #943711
+ emake CC="$(tc-getCC) -std=gnu99" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" PKG_CONFIG="$(tc-getPKG_CONFIG)"
+}
+
+src_install() {
+ dobin nc
+ doman nc.1
+
+ cd "${WORKDIR}"/debian || die
+ newdoc netcat-openbsd.README.Debian README
+ dodoc -r examples
+}
+
+pkg_postinst() {
+ if use kernel_linux ; then
+ ewarn "SO_REUSEPORT is introduced in linux 3.9. If your running kernel is older"
+ ewarn "and kernel header is newer, nc will not listen correctly. Matching the header"
+ ewarn "to the running kernel will do. See bug #490246 for details."
+ fi
+}
diff --git a/net-analyzer/openbsd-netcat/openbsd-netcat-1.234_p1.ebuild b/net-analyzer/openbsd-netcat/openbsd-netcat-1.234_p1.ebuild
new file mode 100644
index 000000000000..ef325c2ba65b
--- /dev/null
+++ b/net-analyzer/openbsd-netcat/openbsd-netcat-1.234_p1.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+MY_PV=$(ver_cut 1-2)
+DESCRIPTION="The OpenBSD network swiss army knife"
+HOMEPAGE="https://cvsweb.openbsd.org/src/usr.bin/nc/ https://salsa.debian.org/debian/netcat-openbsd"
+SRC_URI="
+ mirror://debian/pool/main/n/netcat-openbsd/netcat-openbsd_${MY_PV}.orig.tar.gz
+ mirror://debian/pool/main/n/netcat-openbsd/netcat-openbsd_${MY_PV}-$(ver_cut 4).debian.tar.xz
+"
+S="${WORKDIR}"/netcat-openbsd-${MY_PV}
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86 ~arm64-macos ~x64-macos"
+
+RDEPEND="
+ !net-analyzer/netcat
+ !elibc_Darwin? ( dev-libs/libbsd )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+src_prepare() {
+ local i
+ for i in $(<"${WORKDIR}"/debian/patches/series) ; do
+ PATCHES+=( "${WORKDIR}"/debian/patches/${i} )
+ done
+
+ if [[ ${CHOST} == *-darwin* ]] ; then
+ # This undoes some of the Debian/Linux changes
+ PATCHES+=( "${FILESDIR}"/${PN}-1.219-darwin.patch )
+
+ if [[ ${CHOST##*-darwin} -lt 20 ]] ; then
+ PATCHES+=( "${FILESDIR}"/${PN}-1.190-darwin13.patch )
+ fi
+ fi
+
+ if use elibc_musl ; then
+ PATCHES+=( "${FILESDIR}"/${PN}-1.105-musl-b64_ntop.patch )
+ fi
+
+ default
+}
+
+src_compile() {
+ # gnu99 for bug #943711
+ emake CC="$(tc-getCC) -std=gnu99" CFLAGS="${CFLAGS}" LDFLAGS="${LDFLAGS}" PKG_CONFIG="$(tc-getPKG_CONFIG)"
+}
+
+src_install() {
+ dobin nc
+ doman nc.1
+
+ cd "${WORKDIR}"/debian || die
+ newdoc netcat-openbsd.README.Debian README
+ dodoc -r examples
+}
+
+pkg_postinst() {
+ if use kernel_linux ; then
+ ewarn "SO_REUSEPORT is introduced in linux 3.9. If your running kernel is older"
+ ewarn "and kernel header is newer, nc will not listen correctly. Matching the header"
+ ewarn "to the running kernel will do. See bug #490246 for details."
+ fi
+}
diff --git a/net-analyzer/openvas-scanner/Manifest b/net-analyzer/openvas-scanner/Manifest
new file mode 100644
index 000000000000..a0e4f37fb456
--- /dev/null
+++ b/net-analyzer/openvas-scanner/Manifest
@@ -0,0 +1,2 @@
+DIST openvas-scanner-23.26.1.tar.gz 1617204 BLAKE2B c21c7d82bd1e5d7325422a8e3c467da2caa0cbbd9f44102fbd7aeacc5eafc452676f8f520eda18ad767901a982e937074cb1ff3942217aa63a4f07ceefbfe565 SHA512 67f99e6f35b8afa7aea8384400110d1e5e1f544f5f9c9545e386f6bdb542a76269153075459be3e1c919178967a822243a32147a19b6cbf1d2ea0fd58cafc27a
+DIST openvas-scanner-23.40.0.tar.gz 2432069 BLAKE2B 7396a2178a842543db7236f81cb32727f26e75f5e914e472853cb78f7c67ad7daa7b8aa3ab4e727754abfff8d7d7357b08c1453cfd425b30bee1e60cf7c28622 SHA512 f5f486093fd9bcafe793e27122bd2e357d2b77c6c225a08fd0ddf4b7b2f414caf5431bbfa8427dde9a29d65fd9835f308b8650fa87c524b11cfcc402bb867165
diff --git a/net-analyzer/openvas-scanner/files/README.gentoo b/net-analyzer/openvas-scanner/files/README.gentoo
new file mode 100644
index 000000000000..16547c23c7b4
--- /dev/null
+++ b/net-analyzer/openvas-scanner/files/README.gentoo
@@ -0,0 +1,3 @@
+The redis configuration file is located in:
+/etc/gvm/redis-openvas.conf
+Please apply your changes to the new configuration files.
diff --git a/net-analyzer/openvas-scanner/files/openvas-scanner-23.40.0-remove-unworking-tests.patch b/net-analyzer/openvas-scanner/files/openvas-scanner-23.40.0-remove-unworking-tests.patch
new file mode 100644
index 000000000000..8715a32e78ff
--- /dev/null
+++ b/net-analyzer/openvas-scanner/files/openvas-scanner-23.40.0-remove-unworking-tests.patch
@@ -0,0 +1,54 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -193,7 +193,7 @@ configure_file (src/openvas_log_conf.cmake_in src/openvas_log.conf)
+ enable_testing ()
+
+ add_custom_target (tests
+- DEPENDS attack-test pcap-test ipc-openvas-test lsc-test)
++ DEPENDS attack-test ipc-openvas-test lsc-test)
+
+ ## Program
+
+--- a/misc/CMakeLists.txt
++++ b/misc/CMakeLists.txt
+@@ -156,6 +156,7 @@ set (ALIVEDETECTION_TEST_LINKER_WRAP_OPTIONS
+ "-Wl,-wrap,socket,-wrap,setsockopt")
+
+ # pcap-tests
++#[===[
+ add_executable (pcap-test EXCLUDE_FROM_ALL pcap_tests.c)
+ add_test (pcap-test pcap-test)
+ target_include_directories (pcap-test PRIVATE ${CGREEN_INCLUDE_DIRS})
+@@ -174,7 +175,7 @@ set_tests_properties(
+ )
+ add_custom_target (tests-pcap
+ DEPENDS pcap-test)
+-
++]===]
+ # ipc-openvas-tests
+ add_executable (ipc-openvas-test EXCLUDE_FROM_ALL ipc_openvas_tests.c)
+ add_test (ipc-openvas-test ipc-openvas-test)
+--- a/src/CMakeLists.txt
++++ b/src/CMakeLists.txt
+@@ -156,17 +156,17 @@ add_executable (attack-test
+
+ set_target_properties (attack-test PROPERTIES LINKER_LANGUAGE C)
+
+-target_compile_options(attack-test PRIVATE "-fsanitize=address")
+-target_link_options(attack-test PRIVATE "-fsanitize=address")
++#target_compile_options(attack-test PRIVATE "-fsanitize=address")
++#target_link_options(attack-test PRIVATE "-fsanitize=address")
+
+ add_test (attack-test attack-test)
+-
++#[===[
+ set_tests_properties(
+ attack-test
+ PROPERTIES
+ ENVIRONMENT "ASAN_OPTIONS=detect_leaks=1:halt_on_error=1:abort_on_error=1"
+ )
+-
++]===]
+ target_link_libraries (attack-test openvas_nasl_shared cgreen
+ ${LIBOPENVAS_NASL_LDFLAGS}
+ ${LIBOPENVAS_MISC_LDFLAGS}
diff --git a/net-analyzer/openvas-scanner/files/openvas.conf-22 b/net-analyzer/openvas-scanner/files/openvas.conf-22
new file mode 100644
index 000000000000..b2d964ff4b53
--- /dev/null
+++ b/net-analyzer/openvas-scanner/files/openvas.conf-22
@@ -0,0 +1 @@
+db_address = /run/redis-openvas/redis.sock
diff --git a/net-analyzer/openvas-scanner/files/openvas.logrotate b/net-analyzer/openvas-scanner/files/openvas.logrotate
new file mode 100644
index 000000000000..7d116f6fbbc0
--- /dev/null
+++ b/net-analyzer/openvas-scanner/files/openvas.logrotate
@@ -0,0 +1,13 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+# Daemon ignore HUP so we use 'copytruncate' instead of 'create'
+# with safe file size to prevent losing log entries.
+
+/var/log/gvm/openvas.log {
+ compress
+ missingok
+ notifempty
+ sharedscripts
+ copytruncate
+ maxsize 10M
+}
diff --git a/net-analyzer/openvas-scanner/files/redis-openvas.confd b/net-analyzer/openvas-scanner/files/redis-openvas.confd
new file mode 100644
index 000000000000..6a75dfdc7d28
--- /dev/null
+++ b/net-analyzer/openvas-scanner/files/redis-openvas.confd
@@ -0,0 +1,20 @@
+# Redis user.
+REDIS_USER="gvm"
+
+# Redis group.
+REDIS_GROUP="gvm"
+
+# Redis configuration file.
+REDIS_CONF="/etc/gvm/redis-openvas.conf"
+
+# Redis dump directory.
+REDIS_DIR="/var/lib/openvas/redis"
+
+# Redis options.
+# (Redis expects the first argument to be the configuration file.)
+REDIS_OPTS="${REDIS_CONF}"
+
+# Specify the network service that corresponds to the "bind" setting
+# in your redis.conf. For example, if you bind to 127.0.0.1, this should
+# be set to "net.lo" which provides the loopback interface.
+rc_need="net.lo"
diff --git a/net-analyzer/openvas-scanner/files/redis-openvas.initd b/net-analyzer/openvas-scanner/files/redis-openvas.initd
new file mode 100644
index 000000000000..0841942eac6d
--- /dev/null
+++ b/net-analyzer/openvas-scanner/files/redis-openvas.initd
@@ -0,0 +1,29 @@
+#!/sbin/openrc-run
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+: ${REDIS_DIR:=/var/lib/openvas/redis}
+: ${REDIS_CONF:=/etc/gvm/redis-openvas.conf}
+: ${REDIS_OPTS:="${REDIS_CONF}"}
+: ${REDIS_USER:=gvm}
+: ${REDIS_GROUP:=gvm}
+: ${REDIS_TIMEOUT:=30}
+
+# https://bugs.gentoo.org/631002#c10
+# Force '--daemonize no' to override the config file
+command="/usr/sbin/redis-server"
+command_args="${REDIS_OPTS} --daemonize no"
+command_background="true"
+command_user="${REDIS_USER}:${REDIS_GROUP}"
+pidfile="/run/${RC_SVCNAME}/redis-server.pid"
+retry="${REDIS_TIMEOUT}"
+directory="${REDIS_DIR}"
+
+start_post() {
+ checkpath -f --mode 0644 --owner ${REDIS_USER}:${REDIS_GROUP} /var/log/gvm/openvas.log
+}
+
+depend() {
+ use localmount logger
+ after keepalived
+}
diff --git a/net-analyzer/openvas-scanner/files/redis-openvas.service b/net-analyzer/openvas-scanner/files/redis-openvas.service
new file mode 100644
index 000000000000..5eb8dd29e287
--- /dev/null
+++ b/net-analyzer/openvas-scanner/files/redis-openvas.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=A persistent key-value database
+After=syslog.target network.target
+PartOf=gvm.target
+
+[Service]
+Type=forking
+PIDFile=/run/redis-openvas/redis-server.pid
+ExecStart=/usr/sbin/redis-server /etc/gvm/redis-openvas.conf
+User=gvm
+
+[Install]
+WantedBy=multi-user.target
diff --git a/net-analyzer/openvas-scanner/files/redis-openvas.tmpfiles b/net-analyzer/openvas-scanner/files/redis-openvas.tmpfiles
new file mode 100644
index 000000000000..6dea2932cc0b
--- /dev/null
+++ b/net-analyzer/openvas-scanner/files/redis-openvas.tmpfiles
@@ -0,0 +1,2 @@
+# redis runtime directory
+d /run/redis-openvas 0755 gvm root -
diff --git a/net-analyzer/openvas-scanner/metadata.xml b/net-analyzer/openvas-scanner/metadata.xml
new file mode 100644
index 000000000000..135637aa77e1
--- /dev/null
+++ b/net-analyzer/openvas-scanner/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>foti.giuseppe@gmail.com</email>
+ <name>Giuseppe Foti</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <use>
+ <flag name="snmp">Build againts <pkg>net-analyzer/net-snmp</pkg> for "improved SNMP support"</flag>
+ </use>
+ <longdescription lang="en">
+ Open Vulnerability Assessment System (OpenVAS) Scanner is the Greenbone Vulnerability Management (GVM) Solution.
+ It is used for the Greenbone Security Manager appliances and is a full-featured scan engine that executes a continuously
+ updated and extended feed of Network Vulnerability Tests (NVTs).
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/openvas-scanner/openvas-scanner-23.26.1.ebuild b/net-analyzer/openvas-scanner/openvas-scanner-23.26.1.ebuild
new file mode 100644
index 000000000000..65685bbb734a
--- /dev/null
+++ b/net-analyzer/openvas-scanner/openvas-scanner-23.26.1.ebuild
@@ -0,0 +1,157 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake systemd tmpfiles toolchain-funcs readme.gentoo-r1 optfeature
+
+MY_DN="openvas"
+
+DESCRIPTION="Open Vulnerability Assessment Scanner"
+HOMEPAGE="https://www.greenbone.net https://github.com/greenbone/openvas-scanner/"
+SRC_URI="
+ https://github.com/greenbone/openvas-scanner/archive/v${PV}.tar.gz -> ${P}.tar.gz
+"
+
+LICENSE="GPL-2 GPL-2+"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="doc snmp test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ acct-user/gvm
+ app-crypt/gpgme:=
+ app-crypt/mit-krb5:=
+ >=dev-db/redis-5.0.3
+ >=dev-libs/glib-2.42:2
+ >=dev-libs/libgcrypt-1.6:=
+ dev-libs/libgpg-error
+ >=dev-libs/libksba-1.0.7
+ dev-libs/libbsd
+ >=net-libs/libssh-0.6.0:=
+ >=dev-libs/json-glib-1.4.4
+ >=net-analyzer/gvm-libs-22.4
+ >=net-libs/gnutls-3.6.4:=
+ net-libs/libpcap
+ >=net-misc/curl-7.74.0[ssl]
+ snmp? ( net-analyzer/net-snmp:= )
+"
+RDEPEND="${DEPEND}"
+BDEPEND="
+ >=sys-devel/bison-2.5
+ app-alternatives/lex
+ virtual/pkgconfig
+ doc? (
+ app-text/doxygen[dot]
+ app-text/xmltoman
+ app-text/htmldoc
+ virtual/pandoc
+ )
+ test? ( dev-libs/cgreen )
+"
+
+src_prepare() {
+ cmake_src_prepare
+ # QA-Fix | Remove -Werror compiler flag
+ sed -i -e "s/-Werror//" "${S}"/CMakeLists.txt || die #909560
+ # QA-Fix | Remove !CLANG doxygen warnings for 7.0.0
+ if use doc; then
+ if ! tc-is-clang; then
+ local f
+ for f in doc/*.in
+ do
+ sed -i \
+ -e "s*CLANG_ASSISTED_PARSING = NO*#CLANG_ASSISTED_PARSING = NO*g" \
+ -e "s*CLANG_OPTIONS*#CLANG_OPTIONS*g" \
+ "${f}" || die "couldn't disable CLANG parsing"
+ done
+ fi
+ fi
+
+ #Remove tests that doesn't work in the network sandbox
+ if use test; then
+ sed -i 's/add_test (pcap-test pcap-test)/ /g' misc/CMakeLists.txt || die
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ "-DLOCALSTATEDIR=${EPREFIX}/var"
+ "-DSYSCONFDIR=${EPREFIX}/etc"
+ "-DSBINDIR=${EPREFIX}/usr/bin"
+ "-DOPENVAS_FEED_LOCK_PATH=${EPREFIX}/var/lib/openvas/feed-update.lock"
+ "-DOPENVAS_RUN_DIR=/run/ospd"
+ "-DBUILD_WITH_NETSNMP=$(usex snmp)"
+ )
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+ if use doc; then
+ cmake_build -C "${BUILD_DIR}" doxygen-full manual
+ fi
+ cmake_build rebuild_cache
+ if use test; then
+ cmake_build tests
+ fi
+}
+
+src_install() {
+ if use doc; then
+ mv "${BUILD_DIR}"/doc/html "${BUILD_DIR}"/doc/html-manual || die
+ local HTML_DOCS=(
+ "${BUILD_DIR}"/doc/generated/html/.
+ "${BUILD_DIR}"/doc/html-manual
+ )
+ fi
+ cmake_src_install
+
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}/${MY_DN}.logrotate" "${MY_DN}"
+
+ # Set proper permissions on required files/directories
+ keepdir /var/log/gvm
+ if ! use prefix; then
+ fowners gvm:gvm /var/log/gvm
+ fi
+
+ keepdir /var/lib/openvas/{gnupg,plugins}
+ if ! use prefix; then
+ fowners -R gvm:gvm /var/lib/openvas
+ fi
+
+ insinto /etc/openvas
+ newins "${FILESDIR}/openvas.conf-22" openvas.conf
+
+ systemd_newunit "${FILESDIR}/redis-openvas.service" redis-openvas.service
+ newtmpfiles "${FILESDIR}/redis-openvas.tmpfiles" redis-openvas.conf
+
+ insinto /etc/gvm
+ doins config/redis-openvas.conf
+ if ! use prefix; then
+ fowners -R gvm:gvm /etc/gvm /etc/gvm/redis-openvas.conf
+ fi
+
+ fperms 0750 /etc/gvm
+ fperms 0640 /etc/gvm/redis-openvas.conf
+
+ newconfd "${FILESDIR}/redis-openvas.confd" redis-openvas
+ newinitd "${FILESDIR}/redis-openvas.initd" redis-openvas
+
+ if use prefix; then
+ diropts -m0750
+ else
+ diropts -m0750 -o gvm -g gvm
+ fi
+ keepdir /var/lib/openvas/redis
+
+ readme.gentoo_create_doc
+}
+
+pkg_postinst() {
+ tmpfiles_process redis-openvas.conf
+ optfeature "port scanner" net-analyzer/nmap
+ readme.gentoo_print_elog
+}
diff --git a/net-analyzer/openvas-scanner/openvas-scanner-23.40.0.ebuild b/net-analyzer/openvas-scanner/openvas-scanner-23.40.0.ebuild
new file mode 100644
index 000000000000..f3e5a9725103
--- /dev/null
+++ b/net-analyzer/openvas-scanner/openvas-scanner-23.40.0.ebuild
@@ -0,0 +1,157 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake systemd tmpfiles toolchain-funcs greadme optfeature
+
+MY_DN="openvas"
+
+DESCRIPTION="Open Vulnerability Assessment Scanner"
+HOMEPAGE="https://www.greenbone.net https://github.com/greenbone/openvas-scanner/"
+SRC_URI="
+ https://github.com/greenbone/openvas-scanner/archive/v${PV}.tar.gz -> ${P}.tar.gz
+"
+
+LICENSE="GPL-2 GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc snmp test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ acct-user/gvm
+ app-crypt/gpgme:=
+ app-crypt/mit-krb5:=
+ >=dev-db/redis-5.0.3
+ >=dev-libs/glib-2.42:2
+ >=dev-libs/libgcrypt-1.6:=
+ dev-libs/libgpg-error
+ >=dev-libs/libksba-1.0.7
+ dev-libs/libbsd
+ >=net-libs/libssh-0.6.0:=
+ >=dev-libs/json-glib-1.4.4
+ >=net-analyzer/gvm-libs-22.4
+ >=net-libs/gnutls-3.6.4:=
+ net-libs/libpcap
+ >=net-misc/curl-7.74.0[ssl]
+ snmp? ( net-analyzer/net-snmp:= )
+"
+RDEPEND="${DEPEND}"
+BDEPEND="
+ >=sys-devel/bison-2.5
+ app-alternatives/lex
+ virtual/pkgconfig
+ doc? (
+ app-text/doxygen[dot]
+ app-text/xmltoman
+ app-text/htmldoc
+ virtual/pandoc
+ )
+ test? ( dev-libs/cgreen )
+"
+
+PATCHES=(
+ # Remove tests that don't work in the network sandbox
+ "${FILESDIR}/${P}-remove-unworking-tests.patch"
+)
+
+src_prepare() {
+ cmake_src_prepare
+ # QA-Fix | Remove -Werror compiler flag
+ sed -i -e "s/-Werror//" "${S}"/CMakeLists.txt || die #909560
+ # QA-Fix | Remove !CLANG doxygen warnings for 7.0.0
+ if use doc; then
+ if ! tc-is-clang; then
+ local f
+ for f in doc/*.in
+ do
+ sed -i \
+ -e "s*CLANG_ASSISTED_PARSING = NO*#CLANG_ASSISTED_PARSING = NO*g" \
+ -e "s*CLANG_OPTIONS*#CLANG_OPTIONS*g" \
+ "${f}" || die "couldn't disable CLANG parsing"
+ done
+ fi
+ fi
+}
+
+src_configure() {
+ local mycmakeargs=(
+ "-DLOCALSTATEDIR=${EPREFIX}/var"
+ "-DSYSCONFDIR=${EPREFIX}/etc"
+ "-DSBINDIR=${EPREFIX}/usr/bin"
+ "-DOPENVAS_FEED_LOCK_PATH=${EPREFIX}/var/lib/openvas/feed-update.lock"
+ "-DOPENVAS_RUN_DIR=/run/ospd"
+ "-DBUILD_WITH_NETSNMP=$(usex snmp)"
+ )
+ cmake_src_configure
+}
+
+src_compile() {
+ cmake_src_compile
+ if use doc; then
+ cmake_build -C "${BUILD_DIR}" doxygen-full manual
+ fi
+ cmake_build rebuild_cache
+ if use test; then
+ cmake_build tests
+ fi
+}
+
+src_install() {
+ if use doc; then
+ mv "${BUILD_DIR}"/doc/html "${BUILD_DIR}"/doc/html-manual || die
+ local HTML_DOCS=(
+ "${BUILD_DIR}"/doc/generated/html/.
+ "${BUILD_DIR}"/doc/html-manual
+ )
+ fi
+ cmake_src_install
+
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}/${MY_DN}.logrotate" "${MY_DN}"
+
+ # Set proper permissions on required files/directories
+ keepdir /var/log/gvm
+ if ! use prefix; then
+ fowners gvm:gvm /var/log/gvm
+ fi
+
+ keepdir /var/lib/openvas/{gnupg,plugins}
+ if ! use prefix; then
+ fowners -R gvm:gvm /var/lib/openvas
+ fi
+
+ insinto /etc/openvas
+ newins "${FILESDIR}/openvas.conf-22" openvas.conf
+
+ systemd_newunit "${FILESDIR}/redis-openvas.service" redis-openvas.service
+ newtmpfiles "${FILESDIR}/redis-openvas.tmpfiles" redis-openvas.conf
+
+ insinto /etc/gvm
+ doins config/redis-openvas.conf
+ if ! use prefix; then
+ fowners -R gvm:gvm /etc/gvm /etc/gvm/redis-openvas.conf
+ fi
+
+ fperms 0750 /etc/gvm
+ fperms 0640 /etc/gvm/redis-openvas.conf
+
+ newconfd "${FILESDIR}/redis-openvas.confd" redis-openvas
+ newinitd "${FILESDIR}/redis-openvas.initd" redis-openvas
+
+ if use prefix; then
+ diropts -m0750
+ else
+ diropts -m0750 -o gvm -g gvm
+ fi
+ keepdir /var/lib/openvas/redis
+
+ greadme_file "${FILESDIR}/README.gentoo"
+}
+
+pkg_postinst() {
+ tmpfiles_process redis-openvas.conf
+ optfeature "port scanner" net-analyzer/nmap
+ greadme_pkg_postinst
+}
diff --git a/net-analyzer/opsgenie-lamp/Manifest b/net-analyzer/opsgenie-lamp/Manifest
new file mode 100644
index 000000000000..f5e3b547bec3
--- /dev/null
+++ b/net-analyzer/opsgenie-lamp/Manifest
@@ -0,0 +1 @@
+DIST opsgenie-lamp-3.1.4.tar.gz 994564 BLAKE2B bbc8801b9943eb57bd784ddd7a8f2631e0879c88b6760b9759dc37d95149dbc2c7013544c481f69cd4272bb19eca2df537a5d4a60acd56d5b70a88ad4449fbc8 SHA512 e5770d0188d9e8ef9d9c24f2cc3d160bca75732fff8c6bd1a694f18c604a1c85303b803817c15f461358521eafee029e86475c2f11177c719e173eaf18f4d5c1
diff --git a/net-analyzer/opsgenie-lamp/metadata.xml b/net-analyzer/opsgenie-lamp/metadata.xml
new file mode 100644
index 000000000000..17492b5107c4
--- /dev/null
+++ b/net-analyzer/opsgenie-lamp/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>williamh@gentoo.org</email>
+ <name>William Hubbs</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/opsgenie-lamp/opsgenie-lamp-3.1.4.ebuild b/net-analyzer/opsgenie-lamp/opsgenie-lamp-3.1.4.ebuild
new file mode 100644
index 000000000000..5f53acd66c72
--- /dev/null
+++ b/net-analyzer/opsgenie-lamp/opsgenie-lamp-3.1.4.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit go-module
+
+DESCRIPTION="command line client for the opsgenie service"
+HOMEPAGE="https://docs.opsgenie.com/docs/lamp-command-line-interface-for-opsgenie"
+SRC_URI="https://github.com/opsgenie/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+# yes, CHANEGLOG.md is a typo in the source
+DOCS=( CHANEGLOG.md README.md )
+
+src_compile() {
+ ego build -mod=vendor
+}
+
+src_install() {
+ newbin ${PN} lamp
+ dodoc conf/lamp.conf
+ einstalldocs
+}
diff --git a/net-analyzer/ospd-openvas/Manifest b/net-analyzer/ospd-openvas/Manifest
new file mode 100644
index 000000000000..d1056bf87751
--- /dev/null
+++ b/net-analyzer/ospd-openvas/Manifest
@@ -0,0 +1,2 @@
+DIST ospd-openvas-22.10.1.tar.gz 256447 BLAKE2B e1d695440bea8386ec823d3091a1612e4158f590d78adeed8651a1701724ddff6362ac185302f7fd3f3e1436b23c8306ed03148da6d195d8e3ec0a5a5dae15ab SHA512 4764b7939d85333250d44b5a7c93228866865281b73e6e3317486ea5d483c607428e28449e9d56f787a91e9b0bf331dd0520989c2c785c63f7afbfe6929876b3
+DIST ospd-openvas-22.9.0.tar.gz 250165 BLAKE2B 4e82df9902dcd10bcfa0cf6024875025ad78d8811da25b1b25d5d188b1b2e69243e7e5141199d82f845da70f7544bf2f87166d1e0fdefe91055c0bf3e5c037cf SHA512 5bbfadd1b5a75a0b0a44c1382d730cea824f66bfe22d33cc263328ff633f4ac1d39c1dc1416ecab5d06a5c8b47fa8241debac48baff98a4c2a305e0942d9b07f
diff --git a/net-analyzer/ospd-openvas/files/ospd-openvas-22.confd b/net-analyzer/ospd-openvas/files/ospd-openvas-22.confd
new file mode 100644
index 000000000000..dbe9d762dae0
--- /dev/null
+++ b/net-analyzer/ospd-openvas/files/ospd-openvas-22.confd
@@ -0,0 +1,4 @@
+# OpenVAS Scanner command args
+
+# e.g --foreground
+OSPD_OPENVAS_OPTIONS=""
diff --git a/net-analyzer/ospd-openvas/files/ospd-openvas-22.initd b/net-analyzer/ospd-openvas/files/ospd-openvas-22.initd
new file mode 100644
index 000000000000..d8ef2f27c214
--- /dev/null
+++ b/net-analyzer/ospd-openvas/files/ospd-openvas-22.initd
@@ -0,0 +1,24 @@
+#!/sbin/openrc-run
+# Copyright 2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+: ${GVM_USER:=gvm}
+: ${GVM_GROUP:=$(id -ng ${GVM_USER})}
+: ${OSPD_TIMEOUT:=30}
+
+name="remotely control an OpenVAS Scanner"
+command=/usr/bin/ospd-openvas
+command_user="${GVM_USER}:${GVM_GROUP}"
+command_args="${OSPD_OPENVAS_OPTIONS} \
+ --config /etc/gvm/ospd-openvas.conf"
+pidfile=/run/ospd/ospd-openvas.pid
+retry="${OSPD_TIMEOUT}"
+
+depend() {
+ after bootmisc redis-openvas
+ need localmount redis-openvas
+}
+
+start_pre() {
+ checkpath -d --owner ${GVM_USER} /var/run/ospd
+}
diff --git a/net-analyzer/ospd-openvas/files/ospd-openvas.logrotate b/net-analyzer/ospd-openvas/files/ospd-openvas.logrotate
new file mode 100644
index 000000000000..7fed1aa23437
--- /dev/null
+++ b/net-analyzer/ospd-openvas/files/ospd-openvas.logrotate
@@ -0,0 +1,13 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+# Daemon ignore HUP so we use 'copytruncate' instead of 'create'
+# with safe file size to prevent losing log entries.
+
+/var/log/gvm/ospd-openvas.log {
+ compress
+ missingok
+ notifempty
+ sharedscripts
+ copytruncate
+ maxsize 10M
+}
diff --git a/net-analyzer/ospd-openvas/files/ospd-openvas.service.conf b/net-analyzer/ospd-openvas/files/ospd-openvas.service.conf
new file mode 100644
index 000000000000..976d81bc72bc
--- /dev/null
+++ b/net-analyzer/ospd-openvas/files/ospd-openvas.service.conf
@@ -0,0 +1,7 @@
+[Unit]
+After=network.target networking.service redis-openvas.service mosquitto.service
+Wants=redis-openvas.service
+PartOf=gvm.target
+
+[Service]
+ExecStartPre=+setfacl -m u:gvm:rw /run/redis-openvas/redis.sock
diff --git a/net-analyzer/ospd-openvas/files/ospd-openvas.service_notus.conf b/net-analyzer/ospd-openvas/files/ospd-openvas.service_notus.conf
new file mode 100644
index 000000000000..cd8b7d8d0e70
--- /dev/null
+++ b/net-analyzer/ospd-openvas/files/ospd-openvas.service_notus.conf
@@ -0,0 +1,9 @@
+[Unit]
+After=network.target networking.service redis-openvas.service mosquitto.service
+Wants=redis-openvas.service
+PartOf=gvm.target
+
+[Service]
+ExecStartPre=+setfacl -m u:gvm:rw /run/redis-openvas/redis.sock
+ExecStart=
+ExecStart=/usr/bin/ospd-openvas --config /etc/gvm/ospd-openvas.conf --log-config /etc/gvm/ospd-logging.conf --lock-file-dir /var/lib/openvas --socket-mode 0o770 --mqtt-broker-address localhost --mqtt-broker-port 1883 --notus-feed-dir /var/lib/notus/advisories
diff --git a/net-analyzer/ospd-openvas/metadata.xml b/net-analyzer/ospd-openvas/metadata.xml
new file mode 100644
index 000000000000..27ff18fa40c7
--- /dev/null
+++ b/net-analyzer/ospd-openvas/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>foti.giuseppe@gmail.com</email>
+ <name>Giuseppe Foti</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription lang="en">
+ This is an OSP server implementation to allow GVM to remotely control OpenVAS.
+ Once running, you need to configure OpenVAS for the Greenbone Vulnerability Manager, for example via the web interface Greenbone Security Assistant. Then you can create scan tasks to use OpenVAS.
+ </longdescription>
+ <use>
+ <flag name="notus">Set systemd service file to use notus-scanner</flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/ospd-openvas/ospd-openvas-22.10.1.ebuild b/net-analyzer/ospd-openvas/ospd-openvas-22.10.1.ebuild
new file mode 100644
index 000000000000..1c99792f0e80
--- /dev/null
+++ b/net-analyzer/ospd-openvas/ospd-openvas-22.10.1.ebuild
@@ -0,0 +1,86 @@
+# Copyright 2020-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+DISTUTILS_USE_PEP517=poetry
+inherit distutils-r1 systemd
+
+DESCRIPTION="This is an OSP server implementation to allow GVM to remotely control OpenVAS"
+HOMEPAGE="https://www.greenbone.net https://github.com/greenbone/ospd-openvas"
+SRC_URI="https://github.com/greenbone/ospd-openvas/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="AGPL-3+ GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="doc +notus"
+
+DEPEND="
+ acct-user/gvm
+ >=dev-python/defusedxml-0.6[${PYTHON_USEDEP}]
+ >=dev-python/deprecated-1.2.10[${PYTHON_USEDEP}]
+ >=dev-python/lxml-4.5.2[${PYTHON_USEDEP}]
+ <dev-python/lxml-7.0.0[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ >=dev-python/psutil-5.5.1[${PYTHON_USEDEP}]
+ <dev-python/psutil-8.0.0[${PYTHON_USEDEP}]
+ >=dev-python/redis-4.5.0[${PYTHON_USEDEP}]
+ >=dev-python/python-gnupg-0.4.8[${PYTHON_USEDEP}]
+ <dev-python/python-gnupg-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/paho-mqtt-1.6[${PYTHON_USEDEP}]
+ <dev-python/paho-mqtt-3[${PYTHON_USEDEP}]
+ net-libs/paho-mqtt-c
+ app-misc/mosquitto
+"
+RDEPEND="
+ ${DEPEND}
+ app-admin/sudo
+ >=net-analyzer/openvas-scanner-22.4
+ notus? ( >=net-analyzer/notus-scanner-22.4 )
+"
+
+distutils_enable_tests unittest
+
+python_compile() {
+ if use doc; then
+ bash "${S}"/docs/generate || die
+ HTML_DOCS=( "${S}"/docs/. )
+ fi
+ distutils-r1_python_compile
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ insinto /etc/gvm
+ doins config/${PN}.conf
+ if ! use prefix; then
+ fowners -R gvm:gvm /etc/gvm
+ fi
+
+ newinitd "${FILESDIR}/${PN}-22.initd" "${PN}"
+ newconfd "${FILESDIR}/${PN}-22.confd" "${PN}"
+
+ systemd_dounit config/${PN}.service
+
+ if use notus; then
+ systemd_install_serviced "${FILESDIR}/ospd-openvas.service_notus.conf" \
+ ${PN}.service
+ else
+ systemd_install_serviced "${FILESDIR}/ospd-openvas.service.conf" \
+ ${PN}.service
+ fi
+
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}/ospd-openvas.logrotate" ospd-openvas
+
+ # OSPD OpenVAS attempts to call openvas via sudo as network security
+ # scanning often requires priviliged operations.
+ insinto /etc/sudoers.d
+ newins - openvas <<-EOF
+ gvm ALL = NOPASSWD: /usr/bin/openvas
+EOF
+ fperms 0750 /etc/sudoers.d
+ fperms 0440 /etc/sudoers.d/openvas
+}
diff --git a/net-analyzer/ospd-openvas/ospd-openvas-22.9.0.ebuild b/net-analyzer/ospd-openvas/ospd-openvas-22.9.0.ebuild
new file mode 100644
index 000000000000..8f3b8caa578f
--- /dev/null
+++ b/net-analyzer/ospd-openvas/ospd-openvas-22.9.0.ebuild
@@ -0,0 +1,86 @@
+# Copyright 2020-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+DISTUTILS_USE_PEP517=poetry
+inherit distutils-r1 systemd
+
+DESCRIPTION="This is an OSP server implementation to allow GVM to remotely control OpenVAS"
+HOMEPAGE="https://www.greenbone.net https://github.com/greenbone/ospd-openvas"
+SRC_URI="https://github.com/greenbone/ospd-openvas/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="AGPL-3+ GPL-2+"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="doc +notus"
+
+DEPEND="
+ acct-user/gvm
+ >=dev-python/defusedxml-0.6[${PYTHON_USEDEP}]
+ >=dev-python/deprecated-1.2.10[${PYTHON_USEDEP}]
+ >=dev-python/lxml-4.5.2[${PYTHON_USEDEP}]
+ <dev-python/lxml-7.0.0[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ >=dev-python/psutil-5.5.1[${PYTHON_USEDEP}]
+ <dev-python/psutil-8.0.0[${PYTHON_USEDEP}]
+ >=dev-python/redis-4.5.0[${PYTHON_USEDEP}]
+ >=dev-python/python-gnupg-0.4.8[${PYTHON_USEDEP}]
+ <dev-python/python-gnupg-0.6.0[${PYTHON_USEDEP}]
+ >=dev-python/paho-mqtt-1.6[${PYTHON_USEDEP}]
+ <dev-python/paho-mqtt-3[${PYTHON_USEDEP}]
+ net-libs/paho-mqtt-c
+ app-misc/mosquitto
+"
+RDEPEND="
+ ${DEPEND}
+ app-admin/sudo
+ >=net-analyzer/openvas-scanner-22.4
+ notus? ( >=net-analyzer/notus-scanner-22.4 )
+"
+
+distutils_enable_tests unittest
+
+python_compile() {
+ if use doc; then
+ bash "${S}"/docs/generate || die
+ HTML_DOCS=( "${S}"/docs/. )
+ fi
+ distutils-r1_python_compile
+}
+
+python_install() {
+ distutils-r1_python_install
+
+ insinto /etc/gvm
+ doins config/${PN}.conf
+ if ! use prefix; then
+ fowners -R gvm:gvm /etc/gvm
+ fi
+
+ newinitd "${FILESDIR}/${PN}-22.initd" "${PN}"
+ newconfd "${FILESDIR}/${PN}-22.confd" "${PN}"
+
+ systemd_dounit config/${PN}.service
+
+ if use notus; then
+ systemd_install_serviced "${FILESDIR}/ospd-openvas.service_notus.conf" \
+ ${PN}.service
+ else
+ systemd_install_serviced "${FILESDIR}/ospd-openvas.service.conf" \
+ ${PN}.service
+ fi
+
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}/ospd-openvas.logrotate" ospd-openvas
+
+ # OSPD OpenVAS attempts to call openvas via sudo as network security
+ # scanning often requires priviliged operations.
+ insinto /etc/sudoers.d
+ newins - openvas <<-EOF
+ gvm ALL = NOPASSWD: /usr/bin/openvas
+EOF
+ fperms 0750 /etc/sudoers.d
+ fperms 0440 /etc/sudoers.d/openvas
+}
diff --git a/net-analyzer/ossec-hids/Manifest b/net-analyzer/ossec-hids/Manifest
new file mode 100644
index 000000000000..a88003bb41c7
--- /dev/null
+++ b/net-analyzer/ossec-hids/Manifest
@@ -0,0 +1 @@
+DIST ossec-hids-3.6.0.tar.gz 1921753 BLAKE2B ca33a94d09265c94dbdb99e2b9637d1e062f39ab88837a5c8f089d64a6369c1bef1e010b18ac4713cd4965dcf189bb1c2866fd33813cd94ae34ac04182070580 SHA512 1f5e897de757df264dfb56def74b7d8f886b6b9d772b5b3d0197c9cd00a32fd7fd8a7b53566851fea3cd74d433b5594cbd074e50b7dbe36305fb3c243e8ddcf5
diff --git a/net-analyzer/ossec-hids/files/gcc-fno-common-3.6.0.patch b/net-analyzer/ossec-hids/files/gcc-fno-common-3.6.0.patch
new file mode 100644
index 000000000000..e8ed3c66dd9e
--- /dev/null
+++ b/net-analyzer/ossec-hids/files/gcc-fno-common-3.6.0.patch
@@ -0,0 +1,402 @@
+diff --git a/src/addagent/main.c b/src/addagent/main.c
+index 587a8a3d8..ab12f0326 100644
+--- a/src/addagent/main.c
++++ b/src/addagent/main.c
+@@ -17,6 +17,7 @@ static void print_banner(void);
+ static void manage_shutdown(int sig) __attribute__((noreturn));
+ #endif
+
++int willchroot;
+
+ #if defined(__MINGW32__)
+ static int setenv(const char *name, const char *val, __attribute__((unused)) int overwrite)
+diff --git a/src/addagent/manage_agents.c b/src/addagent/manage_agents.c
+index ac39c1e66..4f9c266ff 100644
+--- a/src/addagent/manage_agents.c
++++ b/src/addagent/manage_agents.c
+@@ -85,6 +85,8 @@ int add_agent(int json_output)
+
+ char authfile[257];
+
++ extern int willchroot;
++
+ if(willchroot > 0) {
+ snprintf(authfile, 256, "%s", AUTH_FILE); //XXX
+ } else {
+diff --git a/src/addagent/manage_agents.h b/src/addagent/manage_agents.h
+index 4812dba43..f2962e80b 100644
+--- a/src/addagent/manage_agents.h
++++ b/src/addagent/manage_agents.h
+@@ -147,4 +147,4 @@ extern fpos_t fp_pos;
+ #define GMF_UNKN_ERROR ARGV0 ": Could not run GetModuleFileName which returned (%ld).\n"
+
+
+-int willchroot;
++//int willchroot;
+diff --git a/src/addagent/manage_keys.c b/src/addagent/manage_keys.c
+index 146b48326..ffb9a1f21 100644
+--- a/src/addagent/manage_keys.c
++++ b/src/addagent/manage_keys.c
+@@ -336,6 +336,8 @@ int k_bulkload(const char *cmdbulk)
+ char delims[] = ",";
+ char *token = NULL;
+
++ extern int willchroot;
++
+ /* Check if we can open the input file */
+ printf("Opening: [%s]\n", cmdbulk);
+ infp = fopen(cmdbulk, "r");
+diff --git a/src/analysisd/analysisd.c b/src/analysisd/analysisd.c
+index a220f4421..0a81971de 100644
+--- a/src/analysisd/analysisd.c
++++ b/src/analysisd/analysisd.c
+@@ -42,7 +42,12 @@
+ #endif
+
+ #ifdef SQLITE_ENABLED
+-#include "syscheck-sqlite.h"
++#include <sqlite3.h>
++sqlite3 *conn;
++#endif
++
++#ifdef LIBGEOIP_ENABLED
++GeoIP *geoipdb;
+ #endif
+
+ /** Prototypes **/
+diff --git a/src/analysisd/config.h b/src/analysisd/config.h
+index 8d74c756e..976d1942e 100644
+--- a/src/analysisd/config.h
++++ b/src/analysisd/config.h
+@@ -12,6 +12,7 @@
+
+ #include "config/config.h"
+ #include "config/global-config.h"
++
+ #ifdef LIBGEOIP_ENABLED
+ #include "GeoIP.h"
+ #endif
+@@ -20,9 +21,11 @@
+ extern long int __crt_ftell; /* Global ftell pointer */
+ extern _Config Config; /* Global Config structure */
+
++/*
+ #ifdef LIBGEOIP_ENABLED
+ GeoIP *geoipdb;
+ #endif
++*/
+
+ int GlobalConf(const char *cfgfile);
+
+diff --git a/src/analysisd/decoders/geoip.c b/src/analysisd/decoders/geoip.c
+index 464e4bb71..9816b4c81 100644
+--- a/src/analysisd/decoders/geoip.c
++++ b/src/analysisd/decoders/geoip.c
+@@ -30,6 +30,7 @@ char *GetGeoInfobyIP(char *ip_addr)
+ GeoIPRecord *geoiprecord;
+ char *geodata = NULL;
+ char geobuffer[256 +1];
++ extern GeoIP *geoipdb;
+
+ if(!geoipdb)
+ {
+diff --git a/src/analysisd/decoders/syscheck.c b/src/analysisd/decoders/syscheck.c
+index a6d675892..30339a00d 100644
+--- a/src/analysisd/decoders/syscheck.c
++++ b/src/analysisd/decoders/syscheck.c
+@@ -16,7 +16,7 @@
+ #include "decoder.h"
+
+ #ifdef SQLITE_ENABLED
+-#include "syscheck-sqlite.h"
++#include <sqlite3.h>
+ #endif
+
+ typedef struct __sdb {
+diff --git a/src/analysisd/makelists.c b/src/analysisd/makelists.c
+index 06c90db70..dfbe6a4a3 100644
+--- a/src/analysisd/makelists.c
++++ b/src/analysisd/makelists.c
+@@ -32,6 +32,10 @@ time_t c_time;
+ char __shost[512];
+ OSDecoderInfo *NULL_Decoder;
+
++#ifdef LIBGEOIP_ENABLED
++GeoIP *geoipdb;
++#endif
++
+ /* print help statement */
+ __attribute__((noreturn))
+ static void help_makelists(void)
+diff --git a/src/analysisd/syscheck-sqlite.h b/src/analysisd/syscheck-sqlite.h
+deleted file mode 100644
+index 526cab26e..000000000
+--- a/src/analysisd/syscheck-sqlite.h
++++ /dev/null
+@@ -1,5 +0,0 @@
+-#ifdef SQLITE_ENABLED
+-#include <sqlite3.h>
+-
+-sqlite3 *conn;
+-#endif
+diff --git a/src/analysisd/testrule.c b/src/analysisd/testrule.c
+index c08fb4885..b1aa928f7 100644
+--- a/src/analysisd/testrule.c
++++ b/src/analysisd/testrule.c
+@@ -83,6 +83,7 @@ int main(int argc, char **argv)
+ memset(prev_month, '\0', 4);
+
+ #ifdef LIBGEOIP_ENABLED
++ extern GeoIP *geoipdb;
+ geoipdb = NULL;
+ #endif
+
+diff --git a/src/client-agent/agentd.c b/src/client-agent/agentd.c
+index c09cf87d3..67828e79c 100644
+--- a/src/client-agent/agentd.c
++++ b/src/client-agent/agentd.c
+@@ -23,6 +23,8 @@ void AgentdStart(const char *dir, int uid, int gid, const char *user, const char
+ fd_set fdset;
+ struct timeval fdtimeout;
+
++ extern agent *agt;
++
+ available_server = 0;
+
+ /* Initial random numbers must happen before chroot */
+diff --git a/src/client-agent/agentd.h b/src/client-agent/agentd.h
+index 0246a5457..a362ff9a3 100644
+--- a/src/client-agent/agentd.h
++++ b/src/client-agent/agentd.h
+@@ -81,9 +81,9 @@ void os_agent_cb(int fd, short ev, void *arg);
+ extern time_t available_server;
+ extern int run_foreground;
+ extern keystore keys;
+-extern agent *agt;
++//extern agent *agt;
+ #ifndef WIN32
+-struct imsgbuf server_ibuf;
++//struct imsgbuf server_ibuf;
+ #endif //WIN32
+
+ #endif /* __AGENTD_H */
+diff --git a/src/client-agent/event-forward.c b/src/client-agent/event-forward.c
+index 2e81f0c90..22ed0beb9 100644
+--- a/src/client-agent/event-forward.c
++++ b/src/client-agent/event-forward.c
+@@ -19,6 +19,9 @@
+ /* Receive a message locally on the agent and forward it to the manager */
+ void *EventForward(void)
+ {
++
++ extern agent *agt;
++
+ ssize_t recv_b;
+ char msg[OS_MAXSTR + 1];
+
+diff --git a/src/client-agent/main.c b/src/client-agent/main.c
+index 5f85cfb73..01c18970c 100644
+--- a/src/client-agent/main.c
++++ b/src/client-agent/main.c
+@@ -16,7 +16,8 @@
+ #define ARGV0 "ossec-agentd"
+ #endif
+
+-extern struct imsgbuf server_ibuf;
++//extern struct imsgbuf server_ibuf;
++struct imsgbuf server_ibuf;
+
+
+ /* Prototypes */
+@@ -112,6 +113,8 @@ int main(int argc, char **argv)
+
+ debug1(STARTED_MSG, ARGV0);
+
++ extern agent *agt;
++
+ agt = (agent *)calloc(1, sizeof(agent));
+ if (!agt) {
+ ErrorExit(MEM_ERROR, ARGV0, errno, strerror(errno));
+diff --git a/src/client-agent/notify.c b/src/client-agent/notify.c
+index 1b239f26c..93fec325c 100644
+--- a/src/client-agent/notify.c
++++ b/src/client-agent/notify.c
+@@ -68,6 +68,8 @@ void run_notify()
+ os_md5 md5sum;
+ time_t curr_time;
+
++ extern agent *agt;
++
+ keep_alive_random[0] = '\0';
+ curr_time = time(0);
+
+diff --git a/src/client-agent/receiver-win.c b/src/client-agent/receiver-win.c
+index 859bdf7f9..4ab62ee77 100644
+--- a/src/client-agent/receiver-win.c
++++ b/src/client-agent/receiver-win.c
+@@ -19,6 +19,7 @@
+ /* Receive events from the server */
+ void *receiver_thread(__attribute__((unused)) void *none)
+ {
++ extern agent *agt;
+ int recv_b;
+
+ char file[OS_SIZE_1024 + 1];
+diff --git a/src/client-agent/receiver.c b/src/client-agent/receiver.c
+index fde64c282..5286e60dc 100644
+--- a/src/client-agent/receiver.c
++++ b/src/client-agent/receiver.c
+@@ -29,6 +29,8 @@ void *receive_msg()
+ char cleartext[OS_MAXSTR + 1];
+ char *tmp_msg;
+
++ extern agent *agt;
++
+ memset(cleartext, '\0', OS_MAXSTR + 1);
+ memset(buffer, '\0', OS_MAXSTR + 1);
+
+diff --git a/src/client-agent/sendmsg.c b/src/client-agent/sendmsg.c
+index 454c2e714..3076dfcf9 100644
+--- a/src/client-agent/sendmsg.c
++++ b/src/client-agent/sendmsg.c
+@@ -15,6 +15,9 @@
+ /* Send a message to the server */
+ int send_msg(int agentid, const char *msg)
+ {
++
++ extern agent *agt;
++
+ size_t msg_size;
+ char crypt_msg[OS_MAXSTR + 1];
+
+diff --git a/src/client-agent/start_agent.c b/src/client-agent/start_agent.c
+index 51670cee5..f1df43715 100644
+--- a/src/client-agent/start_agent.c
++++ b/src/client-agent/start_agent.c
+@@ -24,6 +24,9 @@ int connect_server(int initial_id)
+ #ifdef WIN32
+ unsigned int attempts = 2;
+ #endif //WIN32
++
++ extern agent *agt;
++
+ int rc = initial_id;
+
+ /* Checking if the initial is zero, meaning we have to
+@@ -139,6 +142,8 @@ void start_agent(int is_startup)
+ char cleartext[OS_MAXSTR + 1];
+ char fmsg[OS_MAXSTR + 1];
+
++ extern agent *agt;
++
+ memset(msg, '\0', OS_MAXSTR + 2);
+ memset(buffer, '\0', OS_MAXSTR + 1);
+ memset(cleartext, '\0', OS_MAXSTR + 1);
+@@ -241,6 +246,8 @@ void os_agent_cb(int fd, short ev, void *arg) {
+ struct imsg imsg;
+ struct imsgbuf *ibuf = (struct imsgbuf *)arg;
+
++ extern agent *agt;
++
+ if (ev & EV_READ) {
+ if ((n = imsg_read(ibuf) == -1 && errno != EAGAIN)) {
+ ErrorExit("%s: ERROR: imsg_read() failed: %s", ARGV0, strerror(errno));
+diff --git a/src/os_net/os_net.c b/src/os_net/os_net.c
+index f18e3be77..756e9fac8 100644
+--- a/src/os_net/os_net.c
++++ b/src/os_net/os_net.c
+@@ -14,7 +14,7 @@
+ #include <errno.h>
+ #include "shared.h"
+ #include "os_net.h"
+-agent *agt;
++agent *os_net_agt;
+
+ /* Prototypes */
+ static OSNetInfo *OS_Bindport(char *_port, unsigned int _proto, const char *_ip);
+@@ -346,11 +346,11 @@ int OS_Connect(char *_port, unsigned int protocol, const char *_ip)
+ return(OS_INVALID);
+ }
+
+- if (agt) {
+- if (agt->lip) {
++ if (os_net_agt) {
++ if (os_net_agt->lip) {
+ memset(&hints, 0, sizeof(struct addrinfo));
+ hints.ai_flags = AI_NUMERICHOST;
+- s = getaddrinfo(agt->lip, NULL, &hints, &result);
++ s = getaddrinfo(os_net_agt->lip, NULL, &hints, &result);
+ if (s != 0) {
+ verbose("getaddrinfo: %s", gai_strerror(s));
+ }
+@@ -363,8 +363,8 @@ int OS_Connect(char *_port, unsigned int protocol, const char *_ip)
+ memset(&hints, 0, sizeof(struct addrinfo));
+ /* Allow IPv4 or IPv6 if local_ip isn't specified */
+ hints.ai_family = AF_UNSPEC;
+- if (agt) {
+- if (agt->lip) {
++ if (os_net_agt) {
++ if (os_net_agt->lip) {
+ hints.ai_family = local_ai->ai_family;
+ }
+ }
+@@ -398,13 +398,13 @@ int OS_Connect(char *_port, unsigned int protocol, const char *_ip)
+ continue;
+ }
+
+- if (agt) {
+- if (agt->lip) {
++ if (os_net_agt) {
++ if (os_net_agt->lip) {
+ if (bind(ossock, local_ai->ai_addr, local_ai->ai_addrlen)) {
+ verbose("Unable to bind to local address %s. Ignoring. (%s)",
+- agt->lip, strerror(errno));
++ os_net_agt->lip, strerror(errno));
+ }
+- else verbose("Connecting from local address %s", agt->lip);
++ else verbose("Connecting from local address %s", os_net_agt->lip);
+ }
+ }
+
+diff --git a/src/os_net/os_net.h b/src/os_net/os_net.h
+index 9b7250928..3aaf00429 100644
+--- a/src/os_net/os_net.h
++++ b/src/os_net/os_net.h
+@@ -13,7 +13,7 @@
+
+ #include "headers/shared.h"
+ #include "config/client-config.h"
+-extern agent *agt;
++extern agent *os_net_agt;
+ #ifdef WIN32
+ #ifndef AI_ADDRCONFIG
+ #define AI_ADDRCONFIG 0x0400
+diff --git a/src/win32/win_agent.c b/src/win32/win_agent.c
+index 40a37e621..a2ec784f2 100644
+--- a/src/win32/win_agent.c
++++ b/src/win32/win_agent.c
+@@ -124,6 +124,7 @@ int local_start()
+ WSADATA wsaData;
+ DWORD threadID;
+ DWORD threadID2;
++ extern agent *agt;
+
+ /* Start agent */
+ agt = (agent *)calloc(1, sizeof(agent));
+@@ -271,6 +272,7 @@ int SendMSG(__attribute__((unused)) int queue, const char *message, const char *
+ char tmpstr[OS_MAXSTR + 2];
+ char crypt_msg[OS_MAXSTR + 2];
+ DWORD dwWaitResult;
++ extern agent *agt;
+
+ tmpstr[OS_MAXSTR + 1] = '\0';
+ crypt_msg[OS_MAXSTR + 1] = '\0';
+@@ -468,6 +470,8 @@ void send_win32_info(time_t curr_time)
+ tmp_msg[OS_MAXSTR + 1] = '\0';
+ crypt_msg[OS_MAXSTR + 1] = '\0';
+
++ extern agent *agt;
++
+ debug1("%s: DEBUG: Sending keep alive message.", ARGV0);
+
+ /* Fix time */
diff --git a/net-analyzer/ossec-hids/files/makefile-3.6.0.patch b/net-analyzer/ossec-hids/files/makefile-3.6.0.patch
new file mode 100644
index 000000000000..810bc077d438
--- /dev/null
+++ b/net-analyzer/ossec-hids/files/makefile-3.6.0.patch
@@ -0,0 +1,28 @@
+--- a/Makefile 2019-03-09 16:33:13.465947636 +0100
++++ b/Makefile 2019-03-09 16:32:57.105946856 +0100
+@@ -370,7 +370,6 @@
+ install-server: install-server-generic
+
+ install-common: build
+- ./init/adduser.sh ${OSSEC_USER} ${OSSEC_USER_MAIL} ${OSSEC_USER_REM} ${OSSEC_GROUP} ${PREFIX}
+ $(call INSTALL_CMD,0550,root,${OSSEC_GROUP}) -d ${PREFIX}/
+ $(call INSTALL_CMD,0750,${OSSEC_USER},${OSSEC_GROUP}) -d ${PREFIX}/logs
+ $(call INSTALL_CMD,0660,${OSSEC_USER},${OSSEC_GROUP}) /dev/null ${PREFIX}/logs/ossec.log
+@@ -1160,7 +1159,7 @@
+ #### test ##########
+ ####################
+
+-CFLAGS_TEST = -g -O0 --coverage
++CFLAGS_TEST = -g -O0
+
+ LDFLAGS_TEST = -lcheck -lm -pthread -lrt
+
+@@ -1171,7 +1170,7 @@
+
+ test_programs = test_os_zlib test_os_xml test_os_regex test_os_crypto test_shared
+
+-.PHONY: test run_tests build_tests test_valgrind test_coverage
++.PHONY: test run_tests build_tests test_valgrind
+
+ test: build_tests
+ ${MAKE} run_tests
diff --git a/net-analyzer/ossec-hids/metadata.xml b/net-analyzer/ossec-hids/metadata.xml
new file mode 100644
index 000000000000..2ad5ca2037fd
--- /dev/null
+++ b/net-analyzer/ossec-hids/metadata.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <longdescription>
+ OSSEC is a full platform to monitor and control your systems. It mixes
+ together all the aspects of HIDS (host-based intrusion detection), log
+ monitoring and SIM/SIEM together in a simple, powerful and open source
+ solution.
+ To determine which build target (agent, server, hybrid or local) best
+ suits your needs, please visit https://www.ossec.net/ and review the
+ documentation provided there.
+ </longdescription>
+ <use>
+ <flag name="agent">Build "agent" installation target (see package description)</flag>
+ <flag name="hybrid">Build "hybrid" installation target</flag>
+ <flag name="local">Build "local" installation target</flag>
+ <flag name="server">Build "server" installation target</flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/ossec-hids/ossec-hids-3.6.0.ebuild b/net-analyzer/ossec-hids/ossec-hids-3.6.0.ebuild
new file mode 100644
index 000000000000..f77d99e03354
--- /dev/null
+++ b/net-analyzer/ossec-hids/ossec-hids-3.6.0.ebuild
@@ -0,0 +1,74 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="Open Source Host-based Intrusion Detection System"
+HOMEPAGE="https://www.ossec.net/"
+SRC_URI="https://github.com/ossec/ossec-hids/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="agent hybrid local mysql postgres server sqlite test"
+REQUIRED_USE="^^ ( agent hybrid local server )
+ ?? ( mysql postgres )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="acct-user/ossec
+ acct-user/ossecm
+ acct-user/ossecr
+ dev-libs/libevent
+ dev-libs/libpcre2[jit]
+ mysql? ( virtual/mysql )
+ postgres? ( dev-db/postgresql:= )
+ sqlite? ( dev-db/sqlite:3 )"
+DEPEND="${RDEPEND}
+ test? (
+ dev-libs/check
+ dev-python/python-subunit
+ )"
+S="${WORKDIR}/${P}/src"
+
+declare -a MY_OPT
+
+src_prepare() {
+ # Patch for the GCC version 10 -fno-common change. See
+ # https://github.com/ossec/ossec-hids/pull/1875
+ eapply -p2 "${FILESDIR}/gcc-fno-common-${PV}.patch"
+ eapply -p1 "${FILESDIR}/makefile-${PV}.patch"
+ eapply_user
+}
+
+src_configure() {
+ local target="local"
+ use agent && target="agent"
+ use hybrid && target="hybrid"
+ use server && target="server"
+ MY_OPT=(
+ PCRE2_SYSTEM=yes
+ TARGET=${target}
+ USE_SQLITE=$(usex sqlite)
+ V=0
+ ZLIB_SYSTEM=yes
+ )
+ use mysql && MY_OPT+=( DATABASE=mysql )
+ use postgres && MY_OPT+=( DATABASE=pgsql )
+}
+
+src_compile() {
+ emake "${MY_OPT[@]}" PREFIX=/var/ossec
+}
+
+src_test() {
+ emake "${MY_OPT[@]}" PREFIX=/var/ossec test
+}
+
+src_install() {
+ keepdir /var/ossec/logs/{alerts,archives,firewall}
+ keepdir /var/ossec/lua/{compiled,native}
+ keepdir /var/ossec/queue/{agent-info,agentless,alerts,diff,fts,ossec,rids,rootcheck,syscheck}
+ keepdir /var/ossec/{.ssh,stats,tmp,var/run}
+ newenvd - 50ossec-hids <<<'CONFIG_PROTECT="/var/ossec/etc"'
+ emake "${MY_OPT[@]}" PREFIX="${D}/var/ossec" install
+}
diff --git a/net-analyzer/p0f/Manifest b/net-analyzer/p0f/Manifest
new file mode 100644
index 000000000000..0446617b5acf
--- /dev/null
+++ b/net-analyzer/p0f/Manifest
@@ -0,0 +1 @@
+DIST p0f-3.09b.tgz 92896 BLAKE2B 5db3fe335c1dd3fedca5c007e8a133ff7327189c640ec6bce254ae7b1e6fe5729acd39d5a3d507e286742ac0b7c7612eb5aae452d60ab0e737cb05b0191ffbbb SHA512 2a688baa865f27c91c023a7c53e530649f56a681e6ca2533152ab07b42883857b20c378b636e87dda8d1d5dfac17e426d09ee032b363d0b7d98e57a9ff6164d0
diff --git a/net-analyzer/p0f/files/p0f-3.09_beta-build.patch b/net-analyzer/p0f/files/p0f-3.09_beta-build.patch
new file mode 100644
index 000000000000..1f2419c2ed85
--- /dev/null
+++ b/net-analyzer/p0f/files/p0f-3.09_beta-build.patch
@@ -0,0 +1,66 @@
+Fixes build with C99/c23 compilers by including a patch from
+arcctgx@poczta.onet.pl at https://bugs.gentoo.org/881143#c8
+Folds all seds into a patch
+https://bugs.gentoo.org/881143
+--- a/build.sh
++++ b/build.sh
+@@ -16,11 +16,11 @@
+ BASIC_CFLAGS="-Wall -Wno-format -I/usr/local/include/ \
+ -I/opt/local/include/ -DVERSION=\"$VERSION\" $CFLAGS"
+
+ BASIC_LDFLAGS="-L/usr/local/lib/ -L/opt/local/lib $LDFLAGS"
+
+-USE_CFLAGS="-fstack-protector-all -fPIE -D_FORTIFY_SOURCE=2 -g -ggdb \
++USE_CFLAGS="-fstack-protector-all -fPIE -D_FORTIFY_SOURCE=2 \
+ $BASIC_CFLAGS"
+
+ USE_LDFLAGS="-Wl,-z,relro -pie $BASIC_LDFLAGS"
+
+ if [ "$OSTYPE" = "cygwin" ]; then
+@@ -79,12 +79,12 @@
+ exit 0
+
+ elif [ "$1" = "all" -o "$1" = "" ]; then
+
+ echo "[+] Configuring production build."
+- BASIC_CFLAGS="$BASIC_CFLAGS -O3"
+- USE_CFLAGS="$USE_CFLAGS -O3"
++ BASIC_CFLAGS="$BASIC_CFLAGS"
++ USE_CFLAGS="$USE_CFLAGS"
+
+ elif [ "$1" = "debug" ]; then
+
+ echo "[+] Configuring debug build."
+ BASIC_CFLAGS="$BASIC_CFLAGS -DDEBUG_BUILD=1"
+@@ -195,11 +195,11 @@
+
+ echo -n "[*] Checking if memory alignment is required... "
+
+ rm -f "$TMP" "$TMP.c" "$TMP.log" || exit 1
+
+-echo -e "#include \"types.h\"\nvolatile u8 tmp[6]; int main() { printf(\"%d\x5cn\", *(u32*)(tmp+1)); return 0; }" >"$TMP.c" || exit 1
++echo -e "#include <stdio.h>\n#include \"types.h\"\nvolatile u8 tmp[6]; int main() { printf(\"%d\x5cn\", *(u32*)(tmp+1)); return 0; }" >"$TMP.c" || exit 1
+ $CC $USE_CFLAGS $USE_LDFLAGS "$TMP.c" -o "$TMP" &>"$TMP.log"
+
+ if [ ! -x "$TMP" ]; then
+
+ echo "FAIL"
+--- a/tools/Makefile
++++ b/tools/Makefile
+@@ -5,13 +5,13 @@
+ # Copyright (C) 2012 by Michal Zalewski <lcamtuf@coredump.cx>
+ #
+ # Distributed under the terms and conditions of GNU LGPL.
+ #
+
+-CC = gcc
+-CFLAGS = -g -ggdb -Wall -Wno-format -funsigned-char
+-LDFLAGS =
++CC ?= gcc
++CFLAGS += -Wall -Wno-format -funsigned-char
++LDFLAGS +=
+ TARGETS = p0f-client p0f-sendsyn p0f-sendsyn6
+
+ all: $(TARGETS)
+
+ clean:
diff --git a/net-analyzer/p0f/metadata.xml b/net-analyzer/p0f/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/p0f/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/p0f/p0f-3.09_beta-r1.ebuild b/net-analyzer/p0f/p0f-3.09_beta-r1.ebuild
new file mode 100644
index 000000000000..e7c8957feb58
--- /dev/null
+++ b/net-analyzer/p0f/p0f-3.09_beta-r1.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit edo toolchain-funcs
+
+MY_P=${P/_beta/b}
+
+DESCRIPTION="A tool to perform passive OS detection based on SYN packets"
+HOMEPAGE="https://lcamtuf.coredump.cx/p0f3/"
+SRC_URI="https://lcamtuf.coredump.cx/p0f3/releases/${MY_P}.tgz"
+S="${WORKDIR}"/${MY_P}
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 ppc ~sparc x86"
+IUSE="debug ipv6"
+
+RDEPEND="net-libs/libpcap"
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ default
+
+ sed -i \
+ -e 's:-g -ggdb::' \
+ -e 's:-O3::' \
+ -e '/^CC/s:=:?=:' \
+ -e '/^CFLAGS/s:=:+=:' \
+ -e '/^LDFLAGS/s:=:+=:' \
+ build.sh tools/Makefile || die
+
+ sed -i -e "/FP_FILE/s:p0f.fp:${EPREFIX}/etc/&:" config.h || die
+}
+
+src_compile() {
+ tc-export CC
+
+ edo ./build.sh $(use debug && echo debug)
+
+ emake -C tools p0f-client p0f-sendsyn $(use ipv6 && echo p0f-sendsyn6)
+}
+
+src_install() {
+ dosbin p0f tools/p0f-{client,sendsyn}
+ use ipv6 && dosbin tools/p0f-sendsyn6
+
+ insinto /etc
+ doins p0f.fp
+
+ dodoc docs/{ChangeLog,README,TODO,*.txt} tools/README-TOOLS
+}
diff --git a/net-analyzer/p0f/p0f-3.09_beta-r2.ebuild b/net-analyzer/p0f/p0f-3.09_beta-r2.ebuild
new file mode 100644
index 000000000000..b81400122b19
--- /dev/null
+++ b/net-analyzer/p0f/p0f-3.09_beta-r2.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit edo toolchain-funcs
+
+MY_P=${P/_beta/b}
+
+DESCRIPTION="A tool to perform passive OS detection based on SYN packets"
+HOMEPAGE="https://lcamtuf.coredump.cx/p0f3/"
+SRC_URI="https://lcamtuf.coredump.cx/p0f3/releases/${MY_P}.tgz"
+S="${WORKDIR}"/${MY_P}
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="amd64 ppc ~sparc x86"
+IUSE="debug"
+
+RDEPEND="net-libs/libpcap"
+DEPEND="${RDEPEND}"
+
+PATCHES=( "${FILESDIR}/${P}-build.patch" )
+
+src_prepare() {
+ default
+
+ sed -i -e "/FP_FILE/s:p0f.fp:${EPREFIX}/etc/&:" config.h || die
+}
+
+src_compile() {
+ tc-export CC
+
+ edo ./build.sh $(use debug && echo debug)
+
+ emake -C tools p0f-client p0f-sendsyn p0f-sendsyn6
+}
+
+src_test() {
+ ./p0f -L || die # check that program starts and can print current interfaces
+}
+
+src_install() {
+ dosbin p0f tools/p0f-{client,sendsyn,sendsyn6}
+
+ insinto /etc
+ doins p0f.fp
+
+ dodoc docs/{ChangeLog,README,TODO,*.txt} tools/README-TOOLS
+}
diff --git a/net-analyzer/packit/Manifest b/net-analyzer/packit/Manifest
new file mode 100644
index 000000000000..62512f7495e4
--- /dev/null
+++ b/net-analyzer/packit/Manifest
@@ -0,0 +1 @@
+DIST packit-1.8.tar.gz 150410 BLAKE2B d0a0926643b6b595159d1fec703295a880c1fcad188e2d9a6719b879bad0b1f081ab75031550257d5c8573f2d8ed9960e7d46fdbe4c4c19c669015b048509a24 SHA512 1873c687c8be489966d5f8868def3cb824264dcfd8c6572b03fd51f15f8920965c8682b13cc6a9d6fec62bf9fe3b4e91f5a9d3d4c6441232d3f6f51a244a8baf
diff --git a/net-analyzer/packit/metadata.xml b/net-analyzer/packit/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/packit/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/packit/packit-1.8.ebuild b/net-analyzer/packit/packit-1.8.ebuild
new file mode 100644
index 000000000000..f5476b45e11e
--- /dev/null
+++ b/net-analyzer/packit/packit-1.8.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="Network packet generator and capture tool"
+HOMEPAGE="https://github.com/resurrecting-open-source-projects/packit"
+SRC_URI="https://github.com/resurrecting-open-source-projects/packit/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86"
+
+DEPEND="net-libs/libnet:1.1
+ net-libs/libpcap"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ default
+
+ eautoreconf
+}
+
+src_install() {
+ default
+
+ dodoc docs/*
+}
diff --git a/net-analyzer/pathload/Manifest b/net-analyzer/pathload/Manifest
new file mode 100644
index 000000000000..608325e460be
--- /dev/null
+++ b/net-analyzer/pathload/Manifest
@@ -0,0 +1 @@
+DIST pathload-1.3.2.tar.gz 68524 BLAKE2B 0ea27000647c292e4d04c92574dc2d63fcdd9c16be57d9af49df8651e6f8905561c70f48b9854c69a16c4b3d16fc8bec61ffed3cbbdad7e1f18e2209e9b4f199 SHA512 9fef51c86b8aa2c28a33effe5a5bff36eebc0812f6d6744fac93df46ec0cbce8f5977d24b6ac52442386fb263550fe46e639c4a3ff4612fe92ad09d6595e5d7f
diff --git a/net-analyzer/pathload/files/pathload-1.3.2-clang16.patch b/net-analyzer/pathload/files/pathload-1.3.2-clang16.patch
new file mode 100644
index 000000000000..479aaeec520e
--- /dev/null
+++ b/net-analyzer/pathload/files/pathload-1.3.2-clang16.patch
@@ -0,0 +1,34 @@
+configure.ac is missing, so need to edit this manually
+
+https://bugs.gentoo.org/870661
+--- a/configure
++++ b/configure
+@@ -630,3 +630,3 @@
+
+-main(){return(0);}
++int main(void){return(0);}
+ EOF
+--- a/pathload_rcv.h
++++ b/pathload_rcv.h
+@@ -85,3 +85,3 @@
+ EXTERN l_int32 get_sndr_time_interval(double snd_time[],double *sum);
+-EXTERN void sig_alrm();
++EXTERN void sig_alrm(int __attribute__((__unused__)) unused);
+ EXTERN void terminate_gracefully(struct timeval exp_start_time);
+@@ -100,3 +100,3 @@
+ EXTERN void help();
+-EXTERN void sig_sigusr1() ;
++EXTERN void sig_sigusr1(int __attribute__((__unused__)) unused) ;
+
+--- a/pathload_rcv_func.c
++++ b/pathload_rcv_func.c
+@@ -669,3 +669,3 @@
+
+-void sig_sigusr1()
++void sig_sigusr1(int __attribute__((__unused__)) unused)
+ {
+@@ -674,3 +674,3 @@
+
+-void sig_alrm()
++void sig_alrm(int __attribute__((__unused__)) unused)
+ {
diff --git a/net-analyzer/pathload/files/pathload-1.3.2-make.patch b/net-analyzer/pathload/files/pathload-1.3.2-make.patch
new file mode 100644
index 000000000000..451b0eadf538
--- /dev/null
+++ b/net-analyzer/pathload/files/pathload-1.3.2-make.patch
@@ -0,0 +1,19 @@
+--- a/makefile.in
++++ b/makefile.in
+@@ -11,13 +11,13 @@
+
+ TARGETS=pathload_snd pathload_rcv
+
+-all:${TARGETS} clean
++all:${TARGETS}
+
+ pathload_snd: $(SOBJS)
+- $(CC) $(SOBJS) -o pathload_snd $(LIBS) $(LDFLAGS) $(CFLAGS)
++ $(CC) $(CFLAGS) $(LDFLAGS) $(SOBJS) -o pathload_snd $(LIBS)
+
+ pathload_rcv: $(ROBJS)
+- $(CC) $(ROBJS) -o pathload_rcv $(LIBS) $(LDFLAGS) $(CFLAGS)
++ $(CC) $(CFLAGS) $(LDFLAGS) $(ROBJS) -o pathload_rcv $(LIBS)
+
+ pathload_rcv.o pathload_rcv_func.o: pathload_gbls.h pathload_rcv.h
+
diff --git a/net-analyzer/pathload/metadata.xml b/net-analyzer/pathload/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/pathload/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/pathload/pathload-1.3.2-r1.ebuild b/net-analyzer/pathload/pathload-1.3.2-r1.ebuild
new file mode 100644
index 000000000000..b8e220379490
--- /dev/null
+++ b/net-analyzer/pathload/pathload-1.3.2-r1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Non-intrusive utility for estimation of available bandwidth of Internet paths"
+HOMEPAGE="https://www.cc.gatech.edu/fac/constantinos.dovrolis/bw-est/pathload.html"
+SRC_URI="https://dev.gentoo.org/~jsmolic/distfiles/${P}.tar.gz"
+S="${WORKDIR}/${P/-/_}"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-make.patch
+ "${FILESDIR}"/${P}-clang16.patch
+)
+
+src_configure() {
+ tc-export CC
+
+ default
+}
+
+src_install() {
+ dobin ${PN}_snd ${PN}_rcv
+ dodoc CHANGELOG CHANGES README
+}
diff --git a/net-analyzer/pbnj/Manifest b/net-analyzer/pbnj/Manifest
new file mode 100644
index 000000000000..4e843ab2f086
--- /dev/null
+++ b/net-analyzer/pbnj/Manifest
@@ -0,0 +1 @@
+DIST pbnj-2.04.tar.bz2 57438 BLAKE2B 43b057fb95e74cd7f4d8d11e905fb6c3734971295db13116e94250a7665d28f5a9bb288b5ba07f50c7426a9a90664ea90bb790ad0aea87c24838398faa3ec0f8 SHA512 7f486c4e16a891d90ff10fa80b85ba68346f37152c5f932832c3760985f0dff5c58e0f23309ed395f0c06ff4287bf4af66d1b39de7f2838a868e6b8335afe206
diff --git a/net-analyzer/pbnj/files/pbnj-2.04-ipv4_sort.patch b/net-analyzer/pbnj/files/pbnj-2.04-ipv4_sort.patch
new file mode 100644
index 000000000000..9b9fd8237320
--- /dev/null
+++ b/net-analyzer/pbnj/files/pbnj-2.04-ipv4_sort.patch
@@ -0,0 +1,11 @@
+--- a/t/02parser.t
++++ b/t/02parser.t
+@@ -40,7 +40,7 @@
+
+ #TESTING IPV4_SORT
+ my @hosts = (HOST3, HOST1, HOST4, HOST2);
+- is_deeply([$np->ipv4_sort(@hosts)],[HOST1, HOST2, HOST3, HOST4], 'Testing ipv4_sort');
++ is_deeply([$np->addr_sort(@hosts)],[HOST1, HOST2, HOST3, HOST4], 'Testing addr_sort');
+
+
+ #TESTING ALL_HOSTS()
diff --git a/net-analyzer/pbnj/metadata.xml b/net-analyzer/pbnj/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/pbnj/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/pbnj/pbnj-2.04-r1.ebuild b/net-analyzer/pbnj/pbnj-2.04-r1.ebuild
new file mode 100644
index 000000000000..2e661641aa78
--- /dev/null
+++ b/net-analyzer/pbnj/pbnj-2.04-r1.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit perl-module
+
+DESCRIPTION="Tool for running Nmap scans and diff'ing the results"
+HOMEPAGE="https://pbnj.sourceforge.net/"
+SRC_URI="https://downloads.sourceforge.net/pbnj/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+
+DEPEND="
+ dev-perl/DBD-SQLite
+ dev-perl/DBI
+ dev-perl/File-HomeDir
+ dev-perl/File-Which
+ dev-perl/Nmap-Parser
+ dev-perl/Shell
+ dev-perl/Text-CSV_XS
+ dev-perl/XML-Twig
+ dev-perl/YAML
+"
+RDEPEND="
+ ${DEPEND}
+ net-analyzer/nmap
+"
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.04-ipv4_sort.patch
+)
+
+src_prepare() {
+ default
+
+ mv t/04change.t{,his-test-fails} || die
+ mv t/05output.t{,his-test-fails} || die
+}
diff --git a/net-analyzer/pinger/Manifest b/net-analyzer/pinger/Manifest
new file mode 100644
index 000000000000..994a344d6a4d
--- /dev/null
+++ b/net-analyzer/pinger/Manifest
@@ -0,0 +1 @@
+DIST pinger-0.33.tar.gz 247827 BLAKE2B 6139044be634438945c92a431b97276b5556b513a948a675d6d70c73e4e22d08a58b9cf6607170f804354c18371af54a222b0e064cc1c8275ba77f67ddbd6699 SHA512 fff07599ef91fbdcff9be7806eca57a71e8e6fac7e9afc67c4147e6246b0bcdadf379de28f87054dbe7c409955c0e0ddeae7f529e954231bea0cfb39e4e29bc1
diff --git a/net-analyzer/pinger/files/pinger-0.33-clang16.patch b/net-analyzer/pinger/files/pinger-0.33-clang16.patch
new file mode 100644
index 000000000000..1a6fe6cf03da
--- /dev/null
+++ b/net-analyzer/pinger/files/pinger-0.33-clang16.patch
@@ -0,0 +1,8 @@
+https://bugs.gentoo.org/870871
+--- a/src/interface_ncurses.c
++++ b/src/interface_ncurses.c
+@@ -41,3 +41,3 @@
+ * characters */
+-static nr_print_ull(char *c, int max_chars, unsigned long long l)
++static int nr_print_ull(char *c, int max_chars, unsigned long long l)
+ {
diff --git a/net-analyzer/pinger/files/pinger-0.33-gentoo.patch b/net-analyzer/pinger/files/pinger-0.33-gentoo.patch
new file mode 100644
index 000000000000..76ef052a4a2d
--- /dev/null
+++ b/net-analyzer/pinger/files/pinger-0.33-gentoo.patch
@@ -0,0 +1,73 @@
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -2,7 +2,12 @@
+
+ bin_PROGRAMS = pinger
+ man_MANS = pinger.1
++if HAVE_GTK_2
+ bin_SCRIPTS = gtkpinger
++endif
++if HAVE_GTK_3
++bin_SCRIPTS = gtkpinger
++endif
+
+ P_SOURCES = timefunc.c parse.c ping.c pinger.c dns.c log.c timefunc.h parse.h ping.h globals.h fake_gtk.h dns.h log.h
+ if HAVE_CURSES
+--- a/configure.in
++++ b/configure.in
+@@ -54,34 +54,46 @@
+ AC_HEADER_TIME
+ AM_INADDRT
+
++PKG_PROG_PKG_CONFIG()
++
+ dnl GTK3/GTK2 tests
+ dnl Note: PKG_CHECK_MODULES cannot be used conditionaly due to sharing the tests and depending on it
+ AC_ARG_ENABLE([gtk], AS_HELP_STRING([--enable-gtk[[[=version]]]], [Build with GTK+ interface. Supported versions are gtk2 and gtk3. Default is gtk2.]))
+-PKG_CHECK_MODULES(GTK, [ gtk+-2.0 >= 2.4 ], HAVE_GTK_2=1; )
+-AC_SUBST(GTK_CFLAGS)
+-AC_SUBST(GTK_LIBS)
+-PKG_CHECK_MODULES(GTK3, [ gtk+-3.0 >= 3.12 ], HAVE_GTK_3=1)
+-AC_SUBST(GTK3_CFLAGS)
+-AC_SUBST(GTK3_LIBS)
+
+ if test "x$enableval" = "x" || test "x$enableval" = "xgtk2"; then
++PKG_CHECK_MODULES(GTK, [ gtk+-2.0 >= 2.4 ], HAVE_GTK_2=1,[])
++AC_SUBST(GTK_CFLAGS)
++AC_SUBST(GTK_LIBS)
+ CFLAGS="$CFLAGS $GTK_CFLAGS"
+ LIBS="$LIBS $GTK_LIBS"
+ HAVE_GTK_3=0
+ AC_DEFINE(HAVE_GTK_2, 1, Found GTK+ 2.x support)
+ elif test "x$enableval" = "xgtk3"; then
++PKG_CHECK_MODULES(GTK3, [ gtk+-3.0 >= 3.12 ], HAVE_GTK_3=1,[])
++AC_SUBST(GTK3_CFLAGS)
++AC_SUBST(GTK3_LIBS)
+ CFLAGS="$CFLAGS $GTK3_CFLAGS"
+ LIBS="$LIBS $GTK3_LIBS"
+ HAVE_GTK_2=0
+ AC_DEFINE(HAVE_GTK_3, 1, Found GTK+ 3.x support)
+ else
+-echo "Sorry, the value $enableval is not supported as argument of --enable-gtk."
+-exit 1
++HAVE_GTK_2=0
++HAVE_GTK_3=0
+ fi
+
+-dnl Check for additional external libraries etc..
++AC_ARG_ENABLE(ncurses, [ --enable-ncurses enable ncurses support],
++ [if test "$enableval" = no; then no_ncurses=yes; fi])
++if test x$no_ncurses != xyes; then
++PKG_CHECK_MODULES(ncurses, ncurses,[
++ AC_DEFINE([HAVE_LIBNCURSES], [1], found ncurses library)
++ HAVE_CURSES=1
++ LIBS="$LIBS $ncurses_LIBS"
++ CFLAGS="$CFLAGS $ncurses_CFLAGS"],
+ AC_CHECK_LIB(ncurses, initscr, HAVE_CURSES=1; LIBS="$LIBS -lncurses";
+ AC_DEFINE([HAVE_LIBNCURSES], [1], found ncurses library))
++ )
++fi
++dnl Check for additional external libraries etc..
+ AC_CHECK_LIB(intl, libintl_gettext, LIBS="$LIBS -lintl")
+ AC_CHECK_LIB(pthread, pthread_create, LIBS="$LIBS -lpthread", AC_MSG_ERROR(Pthread required and not found. Please check if you have libpthread in your system and specify using CFLAGS and LDFLAGS when configure))
+
diff --git a/net-analyzer/pinger/files/pinger-0.33-interface_ncurses-fix-C23-compat.patch b/net-analyzer/pinger/files/pinger-0.33-interface_ncurses-fix-C23-compat.patch
new file mode 100644
index 000000000000..41ae74b87a9c
--- /dev/null
+++ b/net-analyzer/pinger/files/pinger-0.33-interface_ncurses-fix-C23-compat.patch
@@ -0,0 +1,39 @@
+From a6392be483562043f9e06273a2b1e34b64b5eb13 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Wed, 12 Feb 2025 15:24:41 +0000
+Subject: [PATCH 1/2] interface_ncurses: fix C23 compat
+
+adjust_size is called as a signal handler so needs to take an int param;
+just define one and throw it away.
+
+Bug: https://bugs.gentoo.org/944034
+Signed-off-by: Sam James <sam@gentoo.org>
+---
+ src/interface_ncurses.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/interface_ncurses.c b/src/interface_ncurses.c
+index f3ffc53..28d2ce5 100644
+--- a/src/interface_ncurses.c
++++ b/src/interface_ncurses.c
+@@ -23,7 +23,7 @@ int new_cols, new_rows;
+ #endif
+
+ #if CAN_RESIZE
+-void adjust_size();
++void adjust_size(int);
+ int size_changed = 0;
+ #endif
+
+@@ -519,7 +519,7 @@ void ncurses_gui_loop(hosts_data * hosts, int *stop_loop)
+
+ /* Resize terminal if necessary */
+ #if CAN_RESIZE
+-void adjust_size()
++void adjust_size(int unused)
+ {
+ struct winsize size;
+
+--
+2.48.1
+
diff --git a/net-analyzer/pinger/files/pinger-0.33-interface_ncurses-fix-Wformat-security.patch b/net-analyzer/pinger/files/pinger-0.33-interface_ncurses-fix-Wformat-security.patch
new file mode 100644
index 000000000000..5586ac0308a1
--- /dev/null
+++ b/net-analyzer/pinger/files/pinger-0.33-interface_ncurses-fix-Wformat-security.patch
@@ -0,0 +1,60 @@
+From d464aa2a165adcf42c37d87e38ea3796ee56d485 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Wed, 12 Feb 2025 15:25:15 +0000
+Subject: [PATCH 2/2] interface_ncurses: fix -Wformat-security
+
+Newer ncurses has format attributes which trigger this.
+
+Signed-off-by: Sam James <sam@gentoo.org>
+---
+ src/interface_ncurses.c | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/src/interface_ncurses.c b/src/interface_ncurses.c
+index 28d2ce5..a7496d2 100644
+--- a/src/interface_ncurses.c
++++ b/src/interface_ncurses.c
+@@ -188,7 +188,7 @@ void show_host_status(host_data * host, int colpair, int attr, char *statstr,
+ attroff(attr);
+ /* print time */
+ get_currtime_str(NULL, time_str);
+- mvprintw(0, COLS - 8, time_str);
++ mvprintw(0, COLS - 8, "%s", time_str);
+ refresh();
+ }
+ }
+@@ -319,11 +319,11 @@ void print_header(char *title)
+ printw("%s", line);
+ move(0, HDR_LINE_X_START);
+ sprintf(line, "Pinger v%s", VERSION);
+- printw(line);
++ printw("%s", line);
+ title_start = strlen(line) + HDR_LINE_X_START + 1;
+ sprintf(line, _("'q' key to quit"));
+ move(0, COLS - strlen(line) - 9); /* 1 + clock width */
+- printw(line);
++ printw("%s", line);
+ title_maxlen = COLS - strlen(line) - 9 - title_start;
+ if ((title_maxlen > 4) && (title != NULL)) {
+ title_len = strlen(title);
+@@ -342,7 +342,7 @@ void print_header(char *title)
+ for (idx = 0; idx < strlen(title_with_brackets); idx++)
+ if (title_with_brackets[idx] == '%')
+ title_with_brackets[idx] = ':';
+- printw(title_with_brackets);
++ printw("%s", title_with_brackets);
+ }
+ //if (title != NULL) free(title);
+ if (title_with_brackets != NULL)
+@@ -351,7 +351,7 @@ void print_header(char *title)
+ attron(A_BOLD);
+ move(0, COLS - 8);
+ get_currtime_str(NULL, line);
+- printw(line);
++ printw("%s", line);
+ free(line);
+
+ move(1, 0);
+--
+2.48.1
+
diff --git a/net-analyzer/pinger/files/pinger-0.33-musl-int-types.patch b/net-analyzer/pinger/files/pinger-0.33-musl-int-types.patch
new file mode 100644
index 000000000000..0777242ba6f8
--- /dev/null
+++ b/net-analyzer/pinger/files/pinger-0.33-musl-int-types.patch
@@ -0,0 +1,158 @@
+From: Sam James <sam@gentoo.org>
+Date: Wed, 29 Dec 2021 23:40:20 +0000
+Subject: [PATCH] Use <stdint.h> types
+
+Fixes musl compatibility.
+
+Bug: https://bugs.gentoo.org/712746
+--- a/src/fake_gtk.h
++++ b/src/fake_gtk.h
+@@ -7,7 +7,6 @@
+ #define GdkEvent int
+ #define gpointer int *
+ #define gboolean void
+-#define gint int
+ #define GdkInputCondition int
+
+ #else
+--- a/src/globals.h
++++ b/src/globals.h
+@@ -62,10 +62,6 @@
+ #define EXTERN extern
+ #endif
+
+-#ifndef __USE_MISC
+-#define unsigned int uint;
+-#endif
+-
+ #define MAX_HOSTS 100
+ /* Maximum size of domain name */
+ #define MAX_DNAME_LEN 60
+@@ -93,8 +89,8 @@ typedef struct host_data_t
+ struct timeval lastok_tv; /* timestamp of last ok echo */
+ int status; /* status of host, online, without reply, ... */
+ double delay; /* ping latency in miliseconds */
+- u_int last_seq_sent; /* sequence nr. of last packet sent */
+- u_int last_seq_recv; /* sequence nr. of last packet received */
++ unsigned int last_seq_sent; /* sequence nr. of last packet sent */
++ unsigned int last_seq_recv; /* sequence nr. of last packet received */
+ unsigned long long nr_sent; /* number of send and received */
+ unsigned long long nr_recv;
+ int ok_delay; /* time in ms, after we send next echo when OK (sucessfuly ping - ECHO REPLY) */
+@@ -164,9 +160,9 @@ typedef struct flstruct
+ #ifdef LOCAL
+ /* hosts specified only by domain names are resolved every 10 minutes. Specify
+ * other interval in seconds here if required. -1=disable. */
+-uint dns_check_s = 600;
++unsigned int dns_check_s = 600;
+ #else
+-extern uint dns_check_s;
++extern unsigned int dns_check_s;
+ #endif
+
+ EXTERN int mode;
+--- a/src/interface_gtk.c
++++ b/src/interface_gtk.c
+@@ -3,6 +3,7 @@
+ #include "ping.h"
+ #include <gdk/gdkkeysyms.h>
+ #include <stdio.h>
++#include <stdint.h>
+ #include <string.h>
+
+ GtkWidget *window;
+@@ -13,7 +14,7 @@ static GtkWidget *scrolled_list;
+ static GtkWidget *tabs;
+ /* status bar for clock */
+ static GtkWidget *status_bar;
+-static guint status_bar_context;
++static unsigned int status_bar_context;
+ /* Box where store tabs and status bar */
+ static GtkWidget *vbox;
+
+@@ -31,7 +32,7 @@ struct regular_disp_data
+ {
+ hosts_data *hosts;
+ int *stop_loop;
+- guint disp_timeout_id;
++ unsigned int disp_timeout_id;
+ };
+
+ /* Interface display data */
+@@ -54,7 +55,7 @@ enum
+ static GtkWidget *create_list(hosts_data * hosts, int set_nr,
+ GtkListStore ** model);
+ static gboolean display_pinger_status(gpointer data);
+-static gint gtk_delete_event(GtkWidget * widget, GdkEvent * event,
++static int gtk_delete_event(GtkWidget * widget, GdkEvent * event,
+ gpointer data);
+ static gchar *my_locale_to_utf8(char *text, char *file, int line);
+
+@@ -63,7 +64,7 @@ static void tab_refresh_rate(GtkWidget * widget, GdkEvent * event,
+ {
+ g_source_remove(int_disp_data->disp_timeout_id);
+ int_disp_data->disp_timeout_id =
+- g_timeout_add((guint32) * (int *) data, display_pinger_status,
++ g_timeout_add((uint32_t) * (int *) data, display_pinger_status,
+ (gpointer) int_disp_data);
+ }
+
+@@ -462,7 +463,7 @@ static GtkWidget *create_list(hosts_data * hosts, int set_nr,
+ }
+
+ /* delete_event callback function. data is (hosts_data *) */
+-static gint gtk_delete_event(GtkWidget * widget,
++static int gtk_delete_event(GtkWidget * widget,
+ GdkEvent * event, gpointer data)
+ {
+ if (free_sockets((hosts_data *) data))
+@@ -532,7 +533,7 @@ void gtk_gui_loop(hosts_data * hosts, int *stop_loop)
+ disp_data.stop_loop = stop_loop;
+
+ disp_data.disp_timeout_id =
+- g_timeout_add((guint32) hosts->titles->refresh_int,
++ g_timeout_add((uint32_t) hosts->titles->refresh_int,
+ display_pinger_status, (gpointer) & disp_data);
+ display_pinger_status((gpointer) & disp_data);
+
+--- a/src/ping.c
++++ b/src/ping.c
+@@ -35,10 +35,10 @@
+ #endif
+
+ /* Compute checksum for ICMP output buffer */
+-static u_short cksum(u_short * buf, u_int len)
++static unsigned short cksum(unsigned short * buf, unsigned int len)
+ {
+- u_int sum = 0;
+- u_short retval;
++ unsigned int sum = 0;
++ unsigned short retval;
+
+ /* 32 bit sum adds sequential 16 bit buffer parts */
+ while (len > 1) {
+@@ -51,12 +51,12 @@ static u_short cksum(u_short * buf, u_int len)
+
+ union
+ {
+- u_short word;
+- u_char byte;
++ unsigned short word;
++ unsigned char byte;
+ } odd;
+
+ odd.word = 0;
+- odd.byte = *(u_char *) buf;
++ odd.byte = *(unsigned char *) buf;
+ sum += odd.word;
+ }
+
+@@ -189,7 +189,7 @@ int send_icmp_echo(host_data * host, hosts_data * hosts)
+ ich->checksum = 0;
+ ich->un.echo.sequence = ++host->last_seq_sent;
+ ich->un.echo.id = getpid() & 0xFFFF;
+- ich->checksum = cksum((u_short *) outpacket, outpacket_len);
++ ich->checksum = cksum((unsigned short *) outpacket, outpacket_len);
+
+ if ((sendto
+ (host->rawfd, outpacket, outpacket_len, 0, (struct sockaddr *) &to,
diff --git a/net-analyzer/pinger/metadata.xml b/net-analyzer/pinger/metadata.xml
new file mode 100644
index 000000000000..97b07939b625
--- /dev/null
+++ b/net-analyzer/pinger/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <use>
+ <flag name="gtk2">Install the gtkpinger GUI utility based on <pkg>x11-libs/gtk+</pkg>:2</flag>
+ <flag name="gtk3">Install the gtkpinger GUI utility based on <pkg>x11-libs/gtk+</pkg>:3</flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/pinger/pinger-0.33-r2.ebuild b/net-analyzer/pinger/pinger-0.33-r2.ebuild
new file mode 100644
index 000000000000..ef60082f3865
--- /dev/null
+++ b/net-analyzer/pinger/pinger-0.33-r2.ebuild
@@ -0,0 +1,59 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic
+
+DESCRIPTION="Cyclic multi ping utility for selected adresses using GTK/ncurses"
+HOMEPAGE="http://aa.vslib.cz/silk/projekty/pinger/"
+SRC_URI="http://aa.vslib.cz/silk/projekty/pinger/download/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86"
+IUSE="gtk2 gtk3 ncurses nls"
+
+REQUIRED_USE="|| ( gtk2 gtk3 ncurses )
+ ?? ( gtk2 gtk3 )"
+
+GTK_DEPEND="dev-libs/glib:2"
+RDEPEND="gtk2? (
+ ${GTK_DEPEND}
+ >=x11-libs/gtk+-2.4:2
+ )
+ gtk3? (
+ ${GTK_DEPEND}
+ >=x11-libs/gtk+-3.12:3
+ )
+ ncurses? ( sys-libs/ncurses:= )"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+DOCS=( AUTHORS BUGS ChangeLog NEWS README )
+
+PATCHES=(
+ "${FILESDIR}"/${P}-gentoo.patch
+ "${FILESDIR}"/${P}-musl-int-types.patch
+ "${FILESDIR}"/${P}-clang16.patch
+ "${FILESDIR}"/${P}-interface_ncurses-fix-C23-compat.patch
+ "${FILESDIR}"/${P}-interface_ncurses-fix-Wformat-security.patch
+)
+
+src_prepare() {
+ default
+
+ sed -i -e '/Root privileges/d' src/Makefile.am || die
+
+ eautoreconf
+}
+
+src_configure() {
+ append-cppflags -D_GNU_SOURCE
+
+ econf \
+ $(usex gtk2 --enable-gtk=gtk2 '') \
+ $(usex gtk3 --enable-gtk=gtk3 '') \
+ $(use_enable ncurses) \
+ $(use_enable nls)
+}
diff --git a/net-analyzer/pktstat/Manifest b/net-analyzer/pktstat/Manifest
new file mode 100644
index 000000000000..2675732650ad
--- /dev/null
+++ b/net-analyzer/pktstat/Manifest
@@ -0,0 +1 @@
+DIST pktstat-1.8.5.tar.gz 133404 BLAKE2B 8aa533bf2570a56ed99812e3216c653a625e8ee89b9a4fe1dbe1bb12c68c00ce2ae1252de65bec147f0373f3627944c38ab1d76541a1a63d77bac430a825e2da SHA512 0401b34646b3e6238a9fe032fa4c2afb70a3a009850bc85c043ff4bba7da6fab0dcf20b963c62ba4db5ba15a7508241dba4f4789ea59b12193928b4c4ec7f0c7
diff --git a/net-analyzer/pktstat/files/pktstat-1.8.5-gcc15.patch b/net-analyzer/pktstat/files/pktstat-1.8.5-gcc15.patch
new file mode 100644
index 000000000000..112e6832d6f3
--- /dev/null
+++ b/net-analyzer/pktstat/files/pktstat-1.8.5-gcc15.patch
@@ -0,0 +1,24 @@
+https://github.com/dleonard0/pktstat/pull/6
+https://bugs.gentoo.org/945321
+
+--- a/resize.c
++++ b/resize.c
+@@ -36,7 +36,7 @@
+ #include "compat.h"
+
+ #ifdef SIGWINCH
+-static RETSIGTYPE sigwinch();
++static RETSIGTYPE sigwinch(int sig);
+ #endif
+
+ static volatile int sigwinch_seen;
+@@ -44,8 +44,7 @@ static volatile int sigwinch_seen;
+ #ifdef SIGWINCH
+ /* Set the flag when the window size changes */
+ static RETSIGTYPE
+-sigwinch(sig)
+- int sig;
++sigwinch(int sig)
+ {
+ sigwinch_seen = 1;
+ }
diff --git a/net-analyzer/pktstat/files/pktstat-1.8.5-smtp_line.patch b/net-analyzer/pktstat/files/pktstat-1.8.5-smtp_line.patch
new file mode 100644
index 000000000000..67ea9e9181e8
--- /dev/null
+++ b/net-analyzer/pktstat/files/pktstat-1.8.5-smtp_line.patch
@@ -0,0 +1,46 @@
+--- a/tcp_smtp.c
++++ b/tcp_smtp.c
+@@ -149,13 +149,9 @@
+ struct smtp_state *state;
+ const char *s;
+ int addr_changed = 0;
+-FILE*log;
+
+ state = (struct smtp_state *)f->udata;
+
+-if ((log = fopen("/tmp/smtp.log", "a")))
+- fprintf(log, "smpt_line [%s]\n", line);
+-
+ if (state->in_data) {
+ if (strcmp(line, ".") == 0) {
+ state->in_data = 0;
+@@ -180,18 +176,15 @@
+ } else {
+ /* Normalize the command line */
+ normalize_line(line);
+-if (log)fprintf(log, "normalized to [%s]\n", line);
+ if ((s = strip_prefix(line, "MAIL FROM:"))) {
+ snprintf(state->from_addr, sizeof state->from_addr, "%s", s);
+ normalize_addr(state->from_addr);
+ addr_changed = 1;
+-if (log)fprintf(log, "from_addr = [%s]\n", state->from_addr);
+ }
+ else if ((s = strip_prefix(line, "RCPT TO:"))) {
+ snprintf(state->to_addr, sizeof state->to_addr, "%s", s);
+ normalize_addr(state->to_addr);
+ addr_changed = 1;
+-if (log)fprintf(log, "to_addr = [%s]\n", state->to_addr);
+ }
+ else if (strcmp(line, "DATA") == 0) {
+ state->in_data = 1;
+@@ -213,10 +206,7 @@
+ if (strcmp(line, "QUIT") != 0)
+ snprintf(f->desc, sizeof f->desc, "%s", line);
+ }
+-if (log)fprintf(log, "set desc to: [%s]\n", f->desc);
+ }
+-
+-if (log)fclose(log);
+ }
+
+ /*
diff --git a/net-analyzer/pktstat/files/pktstat-1.8.5-tinfo.patch b/net-analyzer/pktstat/files/pktstat-1.8.5-tinfo.patch
new file mode 100644
index 000000000000..5181124b8053
--- /dev/null
+++ b/net-analyzer/pktstat/files/pktstat-1.8.5-tinfo.patch
@@ -0,0 +1,10 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -18,6 +18,7 @@
+ AC_SEARCH_LIBS(gethostbyname, [nsl]) dnl for Solaris
+ AC_SEARCH_LIBS(pcap_open_live, [pcap])
+ AC_SEARCH_LIBS(exp, [m])
++PKG_CHECK_MODULES(ncurses,ncurses,LIBS="$LIBS $ncurses_LIBS",AC_MSG_ERROR[ncurses is required])
+ AC_SEARCH_LIBS(tgoto, [termlib termcap curses ncurses ocurses])
+ AC_SEARCH_LIBS(initscr, [curses ncurses ocurses])
+ AC_SEARCH_LIBS(nanosleep, [posix4])
diff --git a/net-analyzer/pktstat/metadata.xml b/net-analyzer/pktstat/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/pktstat/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/pktstat/pktstat-1.8.5-r2.ebuild b/net-analyzer/pktstat/pktstat-1.8.5-r2.ebuild
new file mode 100644
index 000000000000..60a82ccc40ab
--- /dev/null
+++ b/net-analyzer/pktstat/pktstat-1.8.5-r2.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="A network monitoring tool with bandwidth tracking"
+HOMEPAGE="https://github.com/dleonard0/pktstat http://www.adaptive-enterprises.com.au/~d/software/pktstat/"
+SRC_URI="http://www.adaptive-enterprises.com.au/~d/software/pktstat/${P}.tar.gz"
+
+LICENSE="public-domain"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86"
+
+BDEPEND="virtual/pkgconfig"
+RDEPEND="
+ net-libs/libpcap
+ >=sys-libs/ncurses-5.3-r1
+"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-tinfo.patch
+ "${FILESDIR}"/${P}-smtp_line.patch
+ "${FILESDIR}"/${P}-gcc15.patch
+)
+
+src_prepare() {
+ default
+
+ eautoreconf
+}
+
+src_install() {
+ dosbin pktstat
+ doman pktstat.1
+ dodoc ChangeLog NEWS README TODO
+}
diff --git a/net-analyzer/pmacct/Manifest b/net-analyzer/pmacct/Manifest
new file mode 100644
index 000000000000..0f60bad90346
--- /dev/null
+++ b/net-analyzer/pmacct/Manifest
@@ -0,0 +1 @@
+DIST pmacct-1.7.9.tar.gz 2132268 BLAKE2B 70bca376e76d774527ef81f5688ed8f33723989d5a4627532e1bfa66789933ff7cb95848d9347763ce86c2fd34887916d60c40db309ec48fe9fa8d2f084e4e0a SHA512 a12b76c094c1f6abc8c3de31219d9471d3422a3ed27d4edf8785d14c9bebe1cc6fd070ea839f02a2e2f70da87943aa7843586092cff1a9965d36d84a79585129
diff --git a/net-analyzer/pmacct/files/nfacctd.service b/net-analyzer/pmacct/files/nfacctd.service
new file mode 100644
index 000000000000..d649f47030bf
--- /dev/null
+++ b/net-analyzer/pmacct/files/nfacctd.service
@@ -0,0 +1,18 @@
+[Unit]
+Description=netflow accounting daemon
+After=network.target
+
+[Service]
+ProtectSystem=full
+ProtectHome=true
+ProtectHostname=true
+ProtectKernelTunables=true
+ProtectKernelModules=true
+ProtectKernelLogs=true
+ProtectControlGroups=true
+RestrictRealtime=true
+Type=forking
+ExecStart=/usr/sbin/nfacctd -f /etc/pmacctd/nfacctd.conf -i %I
+
+[Install]
+WantedBy=multi-user.target
diff --git a/net-analyzer/pmacct/files/pmacct-1.7.9-build-system.patch b/net-analyzer/pmacct/files/pmacct-1.7.9-build-system.patch
new file mode 100644
index 000000000000..3e9680b79043
--- /dev/null
+++ b/net-analyzer/pmacct/files/pmacct-1.7.9-build-system.patch
@@ -0,0 +1,27 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -1212,11 +1212,7 @@
+ dnl Git submodule Dependencies buid system
+ dnl --------------------------------------
+
+-dnl First check whether to build git submodule deps
+-WITH_EXTERNAL_DEPS_DEFAULT=yes
+-if [ test ! -f "$srcdir/src/external_libs/libcdada/include/cdada.h" ] && [ test -z `git rev-parse HEAD 2> /dev/null` ]; then
+- WITH_EXTERNAL_DEPS_DEFAULT=no
+-fi
++WITH_EXTERNAL_DEPS_DEFAULT=no
+
+ AC_MSG_CHECKING([whether external dependencies (git submodules) should be compiled])
+ AC_ARG_WITH(external-deps,
+@@ -1263,9 +1259,9 @@
+ AC_MSG_RESULT(yes)
+ tmp_CFLAGS=`echo $CFLAGS | sed 's/O2/O0/g'`
+ CFLAGS="$tmp_CFLAGS"
+- CFLAGS="$CFLAGS -g -Wall -Werror"
++ CFLAGS="$CFLAGS -g -Wall"
+ else
+- CFLAGS="$CFLAGS -Wall -Werror"
++ CFLAGS="$CFLAGS -Wall"
+ AC_MSG_RESULT(no)
+ fi
+ ],
diff --git a/net-analyzer/pmacct/files/pmacct-1.7.9-c23.patch b/net-analyzer/pmacct/files/pmacct-1.7.9-c23.patch
new file mode 100644
index 000000000000..b1c80c0fce65
--- /dev/null
+++ b/net-analyzer/pmacct/files/pmacct-1.7.9-c23.patch
@@ -0,0 +1,49 @@
+From 6466578967d3d39c46f7ec10b308bca36568697d Mon Sep 17 00:00:00 2001
+From: Paolo Lucente <pl+github@pmacct.net>
+Date: Tue, 11 Mar 2025 23:02:05 +0000
+Subject: [PATCH] * fix, making gcc15 happy. Patch contributed by Petr Gajdos
+
+--- a/src/pmacct.h
++++ b/src/pmacct.h
+@@ -368,9 +368,9 @@ struct child_ctl2 {
+ #include "util.h"
+
+ /* prototypes */
+-void startup_handle_falling_child();
+-void handle_falling_child();
+-void ignore_falling_child();
++void startup_handle_falling_child(int);
++void handle_falling_child(int);
++void ignore_falling_child(int);
+ void PM_sigint_handler(int);
+ void PM_sigalrm_noop_handler(int);
+ void reload(int);
+--- a/src/signals.c
++++ b/src/signals.c
+@@ -29,7 +29,7 @@
+ extern struct plugins_list_entry *plugin_list;
+
+ /* functions */
+-void startup_handle_falling_child()
++void startup_handle_falling_child(int unused)
+ {
+ int i, j;
+
+@@ -42,7 +42,7 @@ void startup_handle_falling_child()
+ }
+ }
+
+-void handle_falling_child()
++void handle_falling_child(int unused)
+ {
+ struct plugins_list_entry *list = NULL;
+ int j, ret;
+@@ -100,7 +100,7 @@ void handle_falling_child()
+ }
+ }
+
+-void ignore_falling_child()
++void ignore_falling_child(int unused)
+ {
+ pid_t cpid;
+ int status;
diff --git a/net-analyzer/pmacct/files/pmacctd-conf.d b/net-analyzer/pmacct/files/pmacctd-conf.d
new file mode 100644
index 000000000000..442be1eb9a86
--- /dev/null
+++ b/net-analyzer/pmacct/files/pmacctd-conf.d
@@ -0,0 +1,6 @@
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+# Other options to pass to pmacctd
+#OPTS=""
+
diff --git a/net-analyzer/pmacct/files/pmacctd-init.d b/net-analyzer/pmacct/files/pmacctd-init.d
new file mode 100644
index 000000000000..fad4b49ccbe3
--- /dev/null
+++ b/net-analyzer/pmacct/files/pmacctd-init.d
@@ -0,0 +1,40 @@
+#!/sbin/openrc-run
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+PMACCTDDIR=${PMACCTDDIR:-/etc/pmacctd}
+if [ ${SVCNAME} != "pmacctd" ]; then
+ PMACCTDPID="/run/${SVCNAME}.pid"
+else
+ PMACCTDPID="/run/pmacctd.pid"
+fi
+PMACCTDCONF="${PMACCTDDIR}/${SVCNAME}.conf"
+
+depend() {
+ need net
+}
+
+checkconfig() {
+ if [ ! -e ${PMACCTDCONF} ] ; then
+ eerror "You need an ${PMACCTDCONF} file to run pmacctd"
+ return 1
+ fi
+}
+
+start() {
+ checkconfig || return 1
+ ebegin "Starting ${SVCNAME}"
+ start-stop-daemon --start \
+ --pidfile "${PMACCTDPID}" \
+ --exec /usr/sbin/"${SVCNAME}" \
+ -- -D -f "${PMACCTDCONF}" -F "${PMACCTDPID}" ${OPTS}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping ${SVCNAME}"
+ start-stop-daemon --stop \
+ --pidfile "${PMACCTDPID}" \
+ --exec /usr/sbin/"${SVCNAME}"
+ eend $?
+}
diff --git a/net-analyzer/pmacct/files/pmacctd.service b/net-analyzer/pmacct/files/pmacctd.service
new file mode 100644
index 000000000000..a2dbb8c45846
--- /dev/null
+++ b/net-analyzer/pmacct/files/pmacctd.service
@@ -0,0 +1,19 @@
+[Unit]
+Description=promiscuous mode accounting daemon
+After=network.target
+
+[Service]
+ProtectSystem=full
+ProtectHome=true
+ProtectHostname=true
+ProtectKernelTunables=true
+ProtectKernelModules=true
+ProtectKernelLogs=true
+ProtectControlGroups=true
+RestrictRealtime=true
+Type=forking
+ExecStart=/usr/sbin/pmacctd -f /etc/pmacctd/pmacctd.conf -i %I
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/net-analyzer/pmacct/files/sfacctd.service b/net-analyzer/pmacct/files/sfacctd.service
new file mode 100644
index 000000000000..7a334e0ffadd
--- /dev/null
+++ b/net-analyzer/pmacct/files/sfacctd.service
@@ -0,0 +1,18 @@
+[Unit]
+Description=sflow accounting daemon
+After=network.target
+
+[Service]
+ProtectSystem=full
+ProtectHome=true
+ProtectHostname=true
+ProtectKernelTunables=true
+ProtectKernelModules=true
+ProtectKernelLogs=true
+ProtectControlGroups=true
+RestrictRealtime=true
+Type=forking
+ExecStart=/usr/sbin/sfacctd -f /etc/pmacctd/sfacctd.conf -i %I
+
+[Install]
+WantedBy=multi-user.target
diff --git a/net-analyzer/pmacct/metadata.xml b/net-analyzer/pmacct/metadata.xml
new file mode 100644
index 000000000000..97a9215d26a2
--- /dev/null
+++ b/net-analyzer/pmacct/metadata.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <use>
+ <flag name="bgp-bins">Link BGP daemon binaries</flag>
+ <flag name="bmp-bins">Link BMP daemon binaries</flag>
+ <flag name="geoipv2">Enable support for GeoIP2 through <pkg>dev-libs/libmaxminddb</pkg>
+ </flag>
+ <flag name="jansson">Enable support for JSON through <pkg>dev-libs/jansson</pkg>
+ </flag>
+ <flag name="kafka">Enable support for Apache Kafka through <pkg>dev-libs/librdkafka</pkg>
+ </flag>
+ <flag name="l2">Enable Layer-2 features and support</flag>
+ <flag name="ndpi">Enable support for nDPI through <pkg>net-libs/nDPI</pkg>
+ </flag>
+ <flag name="nflog">Enable support for NFLOG through uacctd</flag>
+ <flag name="rabbitmq">Enable support for RabbitMQ through <pkg>net-libs/rabbitmq-c</pkg>
+ </flag>
+ <flag name="st-bins">Link Streaming Telemetry daemon binaries</flag>
+ <flag name="traffic-bins">Link IPv4/IPv6 traffic accounting binaries</flag>
+ <flag name="zmq">Enable support for ZeroMQ through <pkg>net-libs/zeromq</pkg>
+ </flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/pmacct/pmacct-1.7.9.ebuild b/net-analyzer/pmacct/pmacct-1.7.9.ebuild
new file mode 100644
index 000000000000..9067df99452c
--- /dev/null
+++ b/net-analyzer/pmacct/pmacct-1.7.9.ebuild
@@ -0,0 +1,108 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools toolchain-funcs systemd
+
+DESCRIPTION="A network tool to gather IP traffic information"
+HOMEPAGE="http://www.pmacct.net/"
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/pmacct/pmacct"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/pmacct/pmacct/releases/download/v${PV}/${P}.tar.gz
+ http://www.pmacct.net/${P}.tar.gz"
+
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+
+IUSE="+bgp-bins +bmp-bins geoipv2 jansson kafka +l2 mysql ndpi nflog postgres rabbitmq sqlite +st-bins +traffic-bins zmq"
+
+REQUIRED_USE="
+ kafka? ( jansson )
+ rabbitmq? ( jansson )
+"
+
+RDEPEND="dev-libs/libcdada
+ net-libs/libpcap
+ geoipv2? ( dev-libs/libmaxminddb )
+ jansson? ( dev-libs/jansson:= )
+ kafka? ( dev-libs/librdkafka )
+ mysql? (
+ dev-db/mysql-connector-c:0=
+ sys-process/numactl
+ )
+ ndpi? ( >=net-libs/nDPI-3.2:= )
+ nflog? ( net-libs/libnetfilter_log )
+ postgres? ( dev-db/postgresql:* )
+ rabbitmq? ( net-libs/rabbitmq-c )
+ sqlite? ( =dev-db/sqlite-3* )
+ zmq? ( >=net-libs/zeromq-4.2.0:= )"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.7.9-build-system.patch
+ "${FILESDIR}"/${PN}-1.7.9-c23.patch
+)
+
+DOCS=(
+ CONFIG-KEYS ChangeLog FAQS QUICKSTART UPGRADE
+ docs/INTERNALS docs/PLUGINS docs/SIGNALS
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ tc-export CC AR RANLIB
+
+ local myeconfargs=(
+ $(use_enable bgp-bins)
+ $(use_enable bmp-bins)
+ $(use_enable geoipv2)
+ $(use_enable jansson)
+ $(use_enable kafka)
+ $(use_enable l2)
+ $(use_enable mysql)
+ $(use_enable ndpi)
+ $(use_enable nflog)
+ $(use_enable postgres pgsql)
+ $(use_enable rabbitmq)
+ $(use_enable sqlite sqlite3)
+ $(use_enable st-bins)
+ $(use_enable traffic-bins)
+ $(use_enable zmq)
+
+ --without-external-deps
+ --disable-ebpf
+ --disable-debug
+ --disable-mongodb
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+
+ local dirname
+ for dirname in examples sql; do
+ dodoc -r ${dirname}
+ done
+
+ newinitd "${FILESDIR}"/pmacctd-init.d pmacctd
+ newconfd "${FILESDIR}"/pmacctd-conf.d pmacctd
+
+ systemd_dounit "${FILESDIR}"/{nfacctd,pmacctd,sfacctd}.service
+
+ insinto /etc/pmacctd
+ newins examples/pmacctd-imt.conf.example pmacctd.conf
+}
diff --git a/net-analyzer/pmacct/pmacct-9999.ebuild b/net-analyzer/pmacct/pmacct-9999.ebuild
new file mode 100644
index 000000000000..7e3d57215f5a
--- /dev/null
+++ b/net-analyzer/pmacct/pmacct-9999.ebuild
@@ -0,0 +1,106 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools toolchain-funcs systemd
+
+DESCRIPTION="A network tool to gather IP traffic information"
+HOMEPAGE="http://www.pmacct.net/"
+
+if [[ ${PV} == 9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/pmacct/pmacct"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/pmacct/pmacct/releases/download/v${PV}/${P}.tar.gz
+ http://www.pmacct.net/${P}.tar.gz"
+
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+
+IUSE="+bgp-bins +bmp-bins geoipv2 jansson kafka +l2 mysql ndpi nflog postgres rabbitmq sqlite +st-bins +traffic-bins zmq"
+
+REQUIRED_USE="
+ kafka? ( jansson )
+ rabbitmq? ( jansson )
+"
+
+RDEPEND="dev-libs/libcdada
+ net-libs/libpcap
+ geoipv2? ( dev-libs/libmaxminddb )
+ jansson? ( dev-libs/jansson:= )
+ kafka? ( dev-libs/librdkafka )
+ mysql? (
+ dev-db/mysql-connector-c:0=
+ sys-process/numactl
+ )
+ ndpi? ( >=net-libs/nDPI-3.2:= )
+ nflog? ( net-libs/libnetfilter_log )
+ postgres? ( dev-db/postgresql:* )
+ rabbitmq? ( net-libs/rabbitmq-c )
+ sqlite? ( =dev-db/sqlite-3* )
+ zmq? ( >=net-libs/zeromq-4.2.0:= )"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.7.9-build-system.patch
+)
+
+DOCS=(
+ CONFIG-KEYS ChangeLog FAQS QUICKSTART UPGRADE
+ docs/INTERNALS docs/PLUGINS docs/SIGNALS
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ tc-export CC AR RANLIB
+
+ local myeconfargs=(
+ $(use_enable bgp-bins)
+ $(use_enable bmp-bins)
+ $(use_enable geoipv2)
+ $(use_enable jansson)
+ $(use_enable kafka)
+ $(use_enable l2)
+ $(use_enable mysql)
+ $(use_enable ndpi)
+ $(use_enable nflog)
+ $(use_enable postgres pgsql)
+ $(use_enable rabbitmq)
+ $(use_enable sqlite sqlite3)
+ $(use_enable st-bins)
+ $(use_enable traffic-bins)
+ $(use_enable zmq)
+
+ --without-external-deps
+ --disable-ebpf
+ --disable-debug
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+
+ local dirname
+ for dirname in examples sql; do
+ dodoc -r ${dirname}
+ done
+
+ newinitd "${FILESDIR}"/pmacctd-init.d pmacctd
+ newconfd "${FILESDIR}"/pmacctd-conf.d pmacctd
+
+ systemd_dounit "${FILESDIR}"/{nfacctd,pmacctd,sfacctd}.service
+
+ insinto /etc/pmacctd
+ newins examples/pmacctd-imt.conf.example pmacctd.conf
+}
diff --git a/net-analyzer/pnp4nagios/Manifest b/net-analyzer/pnp4nagios/Manifest
new file mode 100644
index 000000000000..4e4f6a6af8a7
--- /dev/null
+++ b/net-analyzer/pnp4nagios/Manifest
@@ -0,0 +1,2 @@
+DIST pnp4nagios-0.6.26_p20230918.tar.gz 3036216 BLAKE2B 101b84623bec93cb3c3c2c5f5785a308afeeff6c7a89504ec5e39812be5e0807eaf7dabf720a69e58a3dd7bfd654f124dd26030deab60f5c6e0a31bd665e83e6 SHA512 4b03c5bf3d00339627e22cf14669b21433f926d6e698933833911a40d8b324d5a70dc5187ee5291f48bfcc12e9b51aaba24c8d263d5f25081544f97dce372890
+DIST pnp4nagios-0.6.26_p20241118.tar.gz 3037069 BLAKE2B bbbf9740e79ab0720cccb5c973f75440d3a4f01da898edf5c2e787227a0b5ef0d36051f1b13fe01d87d9115358e33c1ba7e84d43fce8e7ca69546074bbb0592c SHA512 43990847c74c9da1d94ce56341d4f873c2d1023282c81656f590dddf9823f0e3f42148cf7354e8d1c87c677f0f87c2ca01f4bc0d19622f423ac42d524572a682
diff --git a/net-analyzer/pnp4nagios/files/98_pnp4nagios-2.4.conf b/net-analyzer/pnp4nagios/files/98_pnp4nagios-2.4.conf
new file mode 100644
index 000000000000..5944a2e2f70f
--- /dev/null
+++ b/net-analyzer/pnp4nagios/files/98_pnp4nagios-2.4.conf
@@ -0,0 +1,29 @@
+<IfDefine PNP>
+
+ Alias /pnp4nagios /usr/share/pnp/
+
+ <Directory /usr/share/pnp>
+ AllowOverride AuthConfig
+ Require all granted
+
+ <IfModule rewrite_module>
+ # Turn on URL rewriting
+ RewriteEngine On
+ Options +FollowSymLinks
+
+ # Installation directory
+ RewriteBase /pnp4nagios
+
+ # Protect application and system files from being viewed
+ RewriteRule ^(application|modules|system) - [F,L]
+
+ # Allow any files or directories that exist to be displayed directly
+ RewriteCond %{REQUEST_FILENAME} !-f
+ RewriteCond %{REQUEST_FILENAME} !-d
+
+ # Rewrite all other URLs to index.php/URL
+ RewriteRule .* index.php/$0 [PT,L]
+ </IfModule>
+ </Directory>
+
+</IfDefine>
diff --git a/net-analyzer/pnp4nagios/files/npcd.initd b/net-analyzer/pnp4nagios/files/npcd.initd
new file mode 100644
index 000000000000..23eb77aa63a4
--- /dev/null
+++ b/net-analyzer/pnp4nagios/files/npcd.initd
@@ -0,0 +1,18 @@
+#!/sbin/openrc-run
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+extra_started_commands="reload"
+
+command="/usr/bin/npcd"
+command_args="-f /etc/pnp/npcd.cfg -d"
+
+depend() {
+ need net
+}
+
+reload() {
+ ebegin "Reloading npcd"
+ kill -HUP `pgrep npcd`
+ eend $? "Failed to reload npcd"
+}
diff --git a/net-analyzer/pnp4nagios/files/pnp4nagios-0.6.14-makefile.patch b/net-analyzer/pnp4nagios/files/pnp4nagios-0.6.14-makefile.patch
new file mode 100644
index 000000000000..469389d3ee31
--- /dev/null
+++ b/net-analyzer/pnp4nagios/files/pnp4nagios-0.6.14-makefile.patch
@@ -0,0 +1,32 @@
+diff -Naur pnp4nagios-0.6.14.orig/src/Makefile.in pnp4nagios-0.6.14/src/Makefile.in
+--- pnp4nagios-0.6.14.orig/src/Makefile.in 2011-08-10 17:18:46.000000000 +0200
++++ pnp4nagios-0.6.14/src/Makefile.in 2011-08-10 17:19:51.000000000 +0200
+@@ -83,7 +83,7 @@
+ #
+ ###############################
+ npcd: npcd.c $(NPCDOBJS) $(NPCDHEAD)
+- $(CC) $(CFLAGS) -o $@ npcd.c $(NPCDOBJS) -lpthread
++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ npcd.c $(NPCDOBJS) -lpthread
+
+ ###############################
+ #
+@@ -118,7 +118,6 @@
+
+ install:
+ $(MAKE) install-basic
+- $(MAKE) strip-post-install
+
+ install-unstripped:
+ $(MAKE) install-basic
+diff -Naur pnp4nagios-0.6.14.orig/configure pnp4nagios-0.6.14/configure
+--- pnp4nagios-0.6.14.orig/configure 2011-08-12 09:01:12.000000000 +0200
++++ pnp4nagios-0.6.14/configure 2011-08-12 09:03:32.000000000 +0200
+@@ -5565,7 +5565,7 @@
+ PERFDATA_LOG="${localstatedir}/perfdata.log"
+ PERFDATA_DIR="${localstatedir}/perfdata"
+ PERFDATA_SPOOL_DIR="${localstatedir}/spool"
+- mandir="\${prefix}/man"
++ mandir="/usr/share/man"
+ ;;
+ esac
+
diff --git a/net-analyzer/pnp4nagios/metadata.xml b/net-analyzer/pnp4nagios/metadata.xml
new file mode 100644
index 000000000000..69b6839acfa7
--- /dev/null
+++ b/net-analyzer/pnp4nagios/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>sysadmin@gentoo.org</email>
+ <name>Gentoo Sysadmin Project</name>
+ </maintainer>
+ <use>
+ <flag name="nagios">
+ Build against <pkg>net-analyzer/nagios-core</pkg> (the default)
+ </flag>
+ <flag name="icinga">
+ Build against <pkg>net-analyzer/icinga2</pkg> instead of
+ <pkg>net-analyzer/nagios-core</pkg>
+ </flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/pnp4nagios/pnp4nagios-0.6.26_p20230918.ebuild b/net-analyzer/pnp4nagios/pnp4nagios-0.6.26_p20230918.ebuild
new file mode 100644
index 000000000000..5ef07a6cac34
--- /dev/null
+++ b/net-analyzer/pnp4nagios/pnp4nagios-0.6.26_p20230918.ebuild
@@ -0,0 +1,112 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="A performance data analyzer for nagios"
+HOMEPAGE="https://github.com/ConSol-Monitoring/pnp"
+GH_COMMIT="e52677d3994d35197db68120d7089906a174a3f9"
+SRC_URI="https://github.com/ConSol-Monitoring/pnp/archive/${GH_COMMIT}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/pnp-${GH_COMMIT}"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="apache2 icinga +nagios"
+KEYWORDS="amd64 ~ppc ppc64 ~sparc x86"
+
+REQUIRED_USE="^^ ( icinga nagios )"
+
+# Some things (sync mode, for one) are broken with nagios-4.x, but since
+# nagios-3.x has been end-of-life'd, we don't have much choice here but
+# to accept it.
+DEPEND="net-analyzer/rrdtool[graph,perl]
+ icinga? (
+ acct-group/icinga
+ acct-user/icinga
+ )
+ nagios? (
+ acct-group/nagios
+ acct-user/nagios
+ )"
+
+# A list of modules used in our Apache config file.
+APACHE_MODS="apache2_modules_alias," # "Alias" directive
+APACHE_MODS+="apache2_modules_authz_core," # "Require" directive
+APACHE_MODS+="apache2_modules_rewrite" # "RewriteEngine" and friends
+
+RDEPEND="${DEPEND}
+ dev-lang/php:*[filter,gd,json(+),simplexml,xml,zlib]
+ media-fonts/dejavu
+ virtual/perl-Getopt-Long
+ virtual/perl-Time-HiRes
+ apache2? ( >=www-servers/apache-2.4[${APACHE_MODS}] )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0.6.14-makefile.patch"
+)
+
+src_configure() {
+ local user_group=nagios
+ use icinga && user_group=icinga
+
+ local myeconfargs=(
+ --sysconfdir="${EPREFIX}"/etc/pnp
+ --datarootdir="${EPREFIX}"/usr/share/pnp
+ --localstatedir="${EPREFIX}"/var/lib/pnp
+ --with-nagios-user="${user_group}"
+ --with-nagios-group="${user_group}"
+ --with-perfdata-logfile="${EPREFIX}"/var/log/pnp/process_perfdata.log
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ # The default target just shows a help
+ emake all
+}
+
+src_install() {
+ # Don't use INSTALL_OPTS because they set insecure permissions on
+ # all of /etc/pnp (https://github.com/lingej/pnp4nagios/issues/140).
+ emake INSTALL_OPTS="" DESTDIR="${D}" install install-config
+ einstalldocs
+ newinitd "${FILESDIR}"/npcd.initd npcd
+ rm "${ED}/usr/share/pnp/install.php" || \
+ die "unable to remove ${ED}/usr/share/pnp/install.php"
+
+ # Fix CVE-2012-3457 (Gentoo bug 430358)
+ fperms o-rwx /etc/pnp/process_perfdata.cfg
+
+ if use apache2 ; then
+ insinto /etc/apache2/modules.d
+ newins "${FILESDIR}"/98_pnp4nagios-2.4.conf 98_pnp4nagios.conf
+ fi
+
+ # The nagios or icinga user needs to write performance data to the
+ # perfdata-dir...
+ local user_group=nagios
+ use icinga && user_group=icinga
+ fowners ":${user_group}" /var/lib/pnp/{,perfdata,spool}
+ fperms g+rwx /var/lib/pnp/{,perfdata,spool}
+
+ # and likewise for its logs...
+ dodir /var/log/pnp
+ fowners ":${user_group}" /var/log/pnp
+ fperms g+rwx /var/log/pnp
+
+ # and its statistics. This one is arguably the responsibility of the
+ # build system, since process_perfdata.cfg refers to this location.
+ dodir /var/lib/pnp/stats
+ fowners ":${user_group}" /var/lib/pnp/stats
+ fperms g+rwx /var/lib/pnp/stats
+}
+
+pkg_postinst() {
+ elog "To enable the pnp4nagios web front-end, please visit"
+ elog "${EROOT}/etc/conf.d/apache2 and add \"-D PNP -D PHP\""
+ elog "to APACHE2_OPTS. Then pnp4nagios will be available at,"
+ elog
+ elog " http://localhost/pnp4nagios"
+ elog
+}
diff --git a/net-analyzer/pnp4nagios/pnp4nagios-0.6.26_p20241118.ebuild b/net-analyzer/pnp4nagios/pnp4nagios-0.6.26_p20241118.ebuild
new file mode 100644
index 000000000000..f49715628d8f
--- /dev/null
+++ b/net-analyzer/pnp4nagios/pnp4nagios-0.6.26_p20241118.ebuild
@@ -0,0 +1,112 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="A performance data analyzer for nagios"
+HOMEPAGE="https://github.com/ConSol-Monitoring/pnp"
+GH_COMMIT="f4a831e7bd51651bb427931ab492d63197e77e0e"
+SRC_URI="https://github.com/ConSol-Monitoring/pnp/archive/${GH_COMMIT}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/pnp-${GH_COMMIT}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~sparc ~x86"
+IUSE="apache2 icinga +nagios"
+
+REQUIRED_USE="^^ ( icinga nagios )"
+
+# Some things (sync mode, for one) are broken with nagios-4.x, but since
+# nagios-3.x has been end-of-life'd, we don't have much choice here but
+# to accept it.
+DEPEND="net-analyzer/rrdtool[graph,perl]
+ icinga? (
+ acct-group/icinga
+ acct-user/icinga
+ )
+ nagios? (
+ acct-group/nagios
+ acct-user/nagios
+ )"
+
+# A list of modules used in our Apache config file.
+APACHE_MODS="apache2_modules_alias," # "Alias" directive
+APACHE_MODS+="apache2_modules_authz_core," # "Require" directive
+APACHE_MODS+="apache2_modules_rewrite" # "RewriteEngine" and friends
+
+RDEPEND="${DEPEND}
+ dev-lang/php:*[filter,gd,json(+),simplexml,xml,zlib]
+ media-fonts/dejavu
+ virtual/perl-Getopt-Long
+ virtual/perl-Time-HiRes
+ apache2? ( >=www-servers/apache-2.4[${APACHE_MODS}] )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0.6.14-makefile.patch"
+)
+
+src_configure() {
+ local user_group=nagios
+ use icinga && user_group=icinga
+
+ local myeconfargs=(
+ --sysconfdir="${EPREFIX}"/etc/pnp
+ --datarootdir="${EPREFIX}"/usr/share/pnp
+ --localstatedir="${EPREFIX}"/var/lib/pnp
+ --with-nagios-user="${user_group}"
+ --with-nagios-group="${user_group}"
+ --with-perfdata-logfile="${EPREFIX}"/var/log/pnp/process_perfdata.log
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_compile() {
+ # The default target just shows a help
+ emake all
+}
+
+src_install() {
+ # Don't use INSTALL_OPTS because they set insecure permissions on
+ # all of /etc/pnp (https://github.com/lingej/pnp4nagios/issues/140).
+ emake INSTALL_OPTS="" DESTDIR="${D}" install install-config
+ einstalldocs
+ newinitd "${FILESDIR}"/npcd.initd npcd
+ rm "${ED}/usr/share/pnp/install.php" || \
+ die "unable to remove ${ED}/usr/share/pnp/install.php"
+
+ # Fix CVE-2012-3457 (Gentoo bug 430358)
+ fperms o-rwx /etc/pnp/process_perfdata.cfg
+
+ if use apache2 ; then
+ insinto /etc/apache2/modules.d
+ newins "${FILESDIR}"/98_pnp4nagios-2.4.conf 98_pnp4nagios.conf
+ fi
+
+ # The nagios or icinga user needs to write performance data to the
+ # perfdata-dir...
+ local user_group=nagios
+ use icinga && user_group=icinga
+ fowners ":${user_group}" /var/lib/pnp/{,perfdata,spool}
+ fperms g+rwx /var/lib/pnp/{,perfdata,spool}
+
+ # and likewise for its logs...
+ dodir /var/log/pnp
+ fowners ":${user_group}" /var/log/pnp
+ fperms g+rwx /var/log/pnp
+
+ # and its statistics. This one is arguably the responsibility of the
+ # build system, since process_perfdata.cfg refers to this location.
+ dodir /var/lib/pnp/stats
+ fowners ":${user_group}" /var/lib/pnp/stats
+ fperms g+rwx /var/lib/pnp/stats
+}
+
+pkg_postinst() {
+ elog "To enable the pnp4nagios web front-end, please visit"
+ elog "${EROOT}/etc/conf.d/apache2 and add \"-D PNP -D PHP\""
+ elog "to APACHE2_OPTS. Then pnp4nagios will be available at,"
+ elog
+ elog " http://localhost/pnp4nagios"
+ elog
+}
diff --git a/net-analyzer/poink/Manifest b/net-analyzer/poink/Manifest
new file mode 100644
index 000000000000..cad1d56652a1
--- /dev/null
+++ b/net-analyzer/poink/Manifest
@@ -0,0 +1 @@
+DIST poink-2.03.tar.gz 11427 BLAKE2B eeea10cbc7ba0b29d87de8c784ce0a68325ede592b190d570b71461c126517610309540876e46e6a1c49dbec8ef8009a4280e54a0e10e18086f27ecc8ae78b73 SHA512 25299093f3e70af97da85f0e7bbe9032466b3ef3ad886d4e658a0cfc11793570c2fb1eefd3330fa549517d033297e5ac3e90f7012a122c8ad988625372d986a8
diff --git a/net-analyzer/poink/files/poink-2.03-signed-char-fixup.patch b/net-analyzer/poink/files/poink-2.03-signed-char-fixup.patch
new file mode 100644
index 000000000000..deaff51bcf86
--- /dev/null
+++ b/net-analyzer/poink/files/poink-2.03-signed-char-fixup.patch
@@ -0,0 +1,13 @@
+diff -Nuar poink-2.03.orig/poink.c poink-2.03/poink.c
+--- a/poink.c 2002-11-03 03:12:56.000000000 -0800
++++ b/poink.c 2007-06-11 11:59:09.763490735 -0700
+@@ -109,7 +109,8 @@
+ SOCKADDR_IN s;
+ struct timeval ping_start, ping_end;
+ struct sigaction siga;
+- char ch, pingerror[100];
++ signed char ch; // EOF is -1
++ char pingerror[100];
+ int delay=DEF_DELAY,timeout=DEF_TIMEOUT;
+ int suck, tmp, port=65535;
+
diff --git a/net-analyzer/poink/metadata.xml b/net-analyzer/poink/metadata.xml
new file mode 100644
index 000000000000..7de0d30287fa
--- /dev/null
+++ b/net-analyzer/poink/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>robbat2@gentoo.org</email>
+ </maintainer>
+ <longdescription lang="en">
+ A TCP/IP-based ping implementation. It does not require special
+ privileges and is designed for multiuser shell systems. It is
+ meant to be a secure replacement for the standard IPv4 network
+ monitoring tool.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/poink/poink-2.03.ebuild b/net-analyzer/poink/poink-2.03.ebuild
new file mode 100644
index 000000000000..e9f173afff5a
--- /dev/null
+++ b/net-analyzer/poink/poink-2.03.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+DESCRIPTION="TCP/IP-based ping implementation"
+HOMEPAGE="https://directory.fsf.org/security/system/poink.html"
+SRC_URI="https://ep09.pld-linux.org/~mmazur/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86"
+IUSE=""
+
+PATCHES=( "${FILESDIR}/${PN}-2.03-signed-char-fixup.patch" )
+
+src_compile() {
+ emake \
+ CFLAGS="${CFLAGS} ${LDFLAGS}" \
+ CC="$(tc-getCC)"
+}
+
+src_install() {
+ dobin poink poink6
+ newman ping.1 poink.1
+ dodoc README* ChangeLog
+}
diff --git a/net-analyzer/pontos/Manifest b/net-analyzer/pontos/Manifest
new file mode 100644
index 000000000000..6947d8153e3e
--- /dev/null
+++ b/net-analyzer/pontos/Manifest
@@ -0,0 +1,2 @@
+DIST pontos-25.7.2.tar.gz 405393 BLAKE2B 9c7ac529054cd330ce735a7f9af31f97d622da415d2681432436fcb11ba1ee635759de6edc9f586d9829374b72d38e7a4b4dcecd6543c172b96acbbcba9c281d SHA512 9eb9fd2f5a07bf87bf10fb1e1b0c8db1e3f724a7d9130af78f0e2dc6becae6ed49b251169310cda86184c28bb743d136d2aa312b20601e49e420740bc668a552
+DIST pontos-25.8.1.tar.gz 405571 BLAKE2B edf7405038e4af73730abf6b0c243ff7f93729c75c973c6a2fdb46bdcdbab65b928651b2fa6f201d0a0cb34a270e9a53aa989e5f00d112ea1cf5c2d4aefb6a4e SHA512 1c321c693ffc144671b460bfde1615fe71b44a3f967529675dc5f66626a953a2b620c1cb638f07edf69bf0108b9f8e827e6f0f9b3e84ba90762a42a110494803
diff --git a/net-analyzer/pontos/metadata.xml b/net-analyzer/pontos/metadata.xml
new file mode 100644
index 000000000000..4ba12e9322fa
--- /dev/null
+++ b/net-analyzer/pontos/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>foti.giuseppe@gmail.com</email>
+ <name>Giuseppe Foti</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription lang="en">
+ The pontos Python package is a collection of utilities, tools, classes
+ and functions maintained by Greenbone Networks.
+ It is needed to run tests on some Greenbone Vulnerability Management packages.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/pontos/pontos-25.7.2.ebuild b/net-analyzer/pontos/pontos-25.7.2.ebuild
new file mode 100644
index 000000000000..3be206777988
--- /dev/null
+++ b/net-analyzer/pontos/pontos-25.7.2.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+DISTUTILS_USE_PEP517=poetry
+
+inherit distutils-r1
+
+DESCRIPTION="Common utilities and tools maintained by Greenbone Networks"
+HOMEPAGE="
+ https://www.greenbone.net
+ https://github.com/greenbone/pontos/
+ https://greenbone.github.io/pontos/
+"
+
+SRC_URI="https://github.com/greenbone/pontos/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="amd64"
+
+RDEPEND="
+ >=dev-python/colorful-0.5.4[${PYTHON_USEDEP}]
+ >=dev-python/tomlkit-0.5.11[${PYTHON_USEDEP}]
+ >=dev-python/packaging-20.3[${PYTHON_USEDEP}]
+ >=dev-python/httpx-0.23[${PYTHON_USEDEP}]
+ >=dev-python/rich-12.4.4[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.8.2[${PYTHON_USEDEP}]
+ >=dev-python/semver-2.13[${PYTHON_USEDEP}]
+ >=dev-python/lxml-4.9.0[${PYTHON_USEDEP}]
+ >=dev-python/shtab-1.7.0[${PYTHON_USEDEP}]
+"
+
+DEPEND="${RDEPEND}"
+
+EPYTEST_DESELECT=(
+ tests/git/test_git.py::GitExtendedTestCase::test_git_error
+ tests/version/commands/test_java.py::GetCurrentJavaVersionCommandTestCase::test_getting_version_without_version_config
+ tests/version/commands/test_java.py::VerifyJavaVersionCommandTestCase::test_verify_version_does_not_match
+)
+
+distutils_enable_tests pytest
diff --git a/net-analyzer/pontos/pontos-25.8.1.ebuild b/net-analyzer/pontos/pontos-25.8.1.ebuild
new file mode 100644
index 000000000000..d1be80c70954
--- /dev/null
+++ b/net-analyzer/pontos/pontos-25.8.1.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+DISTUTILS_USE_PEP517=poetry
+
+inherit distutils-r1
+
+DESCRIPTION="Common utilities and tools maintained by Greenbone Networks"
+HOMEPAGE="
+ https://www.greenbone.net
+ https://github.com/greenbone/pontos/
+ https://greenbone.github.io/pontos/
+"
+
+SRC_URI="https://github.com/greenbone/pontos/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ >=dev-python/colorful-0.5.4[${PYTHON_USEDEP}]
+ >=dev-python/tomlkit-0.5.11[${PYTHON_USEDEP}]
+ >=dev-python/packaging-20.3[${PYTHON_USEDEP}]
+ >=dev-python/httpx-0.23[${PYTHON_USEDEP}]
+ >=dev-python/rich-12.4.4[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.8.2[${PYTHON_USEDEP}]
+ >=dev-python/semver-2.13[${PYTHON_USEDEP}]
+ >=dev-python/lxml-4.9.0[${PYTHON_USEDEP}]
+ >=dev-python/shtab-1.7.0[${PYTHON_USEDEP}]
+"
+
+DEPEND="${RDEPEND}"
+
+EPYTEST_DESELECT=(
+ tests/git/test_git.py::GitExtendedTestCase::test_git_error
+ tests/version/commands/test_java.py::GetCurrentJavaVersionCommandTestCase::test_getting_version_without_version_config
+ tests/version/commands/test_java.py::VerifyJavaVersionCommandTestCase::test_verify_version_does_not_match
+)
+
+distutils_enable_tests pytest
diff --git a/net-analyzer/portmon/Manifest b/net-analyzer/portmon/Manifest
new file mode 100644
index 000000000000..f1c22c17f1de
--- /dev/null
+++ b/net-analyzer/portmon/Manifest
@@ -0,0 +1 @@
+DIST portmon-2.0.tar.gz 107246 BLAKE2B 0f3d33aecca7d41a5af08c656bdb9665c9560aaee78dab7b02bf330d21ddde3fcc916a06b7b48ea1ae305b5188e62073065a8c745fd31310415b47ce3b29a733 SHA512 1feafd1a8701d269c2f2e36f46ef51eeda8975aeca85d6f720cf5805e3f8bd031eb681117fa9414e775ea46c543066deb3532e7cc7d26c655daf6163fac77e25
diff --git a/net-analyzer/portmon/files/portmon-2.0-fno-common.patch b/net-analyzer/portmon/files/portmon-2.0-fno-common.patch
new file mode 100644
index 000000000000..bfe6a914635e
--- /dev/null
+++ b/net-analyzer/portmon/files/portmon-2.0-fno-common.patch
@@ -0,0 +1,58 @@
+--- a/src/portmon.c
++++ b/src/portmon.c
+@@ -35,6 +35,15 @@
+ #include <getopt.h>
+ #endif
+
++int report_flag;
++int daemonize_flag;
++
++struct host_struct *hosts;
++char *err_msg;
++char logfile[STRLARGE];
++int timeout;
++int verbose;
++
+ void version(void)
+ {
+ printf("This is %s, version %s\n", PACKAGE, VERSION);
+--- a/src/portmon.h
++++ b/src/portmon.h
+@@ -31,8 +31,8 @@
+ #define STRLARGE 512
+
+ // flags
+-int report_flag;
+-int daemonize_flag;
++extern int report_flag;
++extern int daemonize_flag;
+
+ struct port
+ {
+@@ -43,7 +43,7 @@
+ };
+
+ // create an array of hosts
+-struct host_struct
++extern struct host_struct
+ {
+ char name[STRMED];
+ struct port ports[STRSMALL];
+@@ -52,13 +52,13 @@
+ *hosts;
+
+ // place to hold error messages
+-char *err_msg;
++extern char *err_msg;
+ // place we log crap
+-char logfile[STRLARGE];
++extern char logfile[STRLARGE];
+ // timeout (seconds)
+-int timeout;
++extern int timeout;
+ // verbose mode
+-int verbose;
++extern int verbose;
+
+ // Functions in various files
+
diff --git a/net-analyzer/portmon/files/portmon.init b/net-analyzer/portmon/files/portmon.init
new file mode 100644
index 000000000000..3fe1ea6a2819
--- /dev/null
+++ b/net-analyzer/portmon/files/portmon.init
@@ -0,0 +1,29 @@
+#!/sbin/openrc-run
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+# configuration is done in /etc/pormon.sh
+
+depend() {
+ need net
+}
+
+checkconfig() {
+ if [ ! -e /etc/portmon/portmon.hosts ]; then
+ error " You need /etc/portmon/portmaon.hosts to run portmon."
+ return 1
+ fi
+}
+
+start() {
+ checkconfig || return 1
+ ebegin "Starting portmon"
+ start-stop-daemon --start --quiet --exec /usr/sbin/portmon -- -d -c /etc/portmon/portmon.hosts
+ eend $?
+}
+
+stop() {
+ checkconfig || return 1
+ ebegin "Staring portmon"
+ start-stop-daemon --stopt --quiet --exec /usr/sbin/portmon
+}
diff --git a/net-analyzer/portmon/metadata.xml b/net-analyzer/portmon/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/portmon/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/portmon/portmon-2.0-r2.ebuild b/net-analyzer/portmon/portmon-2.0-r2.ebuild
new file mode 100644
index 000000000000..ce593ab853a8
--- /dev/null
+++ b/net-analyzer/portmon/portmon-2.0-r2.ebuild
@@ -0,0 +1,40 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="Portmon is a network service monitoring daemon"
+HOMEPAGE="http://aboleo.net/software/portmon/"
+SRC_URI="http://aboleo.net/software/portmon/downloads/${P}.tar.gz"
+
+KEYWORDS="~amd64 ~ppc x86"
+SLOT="0"
+LICENSE="GPL-2"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-fno-common.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ econf --sysconfdir=/etc/portmon
+}
+
+src_install() {
+ into /usr
+ dosbin src/portmon
+
+ doman extras/portmon.8
+
+ insinto /etc/portmon
+ doins extras/portmon.hosts.sample
+ dodoc AUTHORS BUGS README
+
+ newinitd "${FILESDIR}"/portmon.init portmon
+}
diff --git a/net-analyzer/portsentry/Manifest b/net-analyzer/portsentry/Manifest
new file mode 100644
index 000000000000..0dc45121d823
--- /dev/null
+++ b/net-analyzer/portsentry/Manifest
@@ -0,0 +1 @@
+DIST portsentry-1.2.tar.gz 48054 BLAKE2B e7baf49ed02fe0100a789737c263ca9bd4d2122f59f00fbffa5fc6fac6215926ee46d7fbcb1424a1ace76a8c2845ff915550695509d7bd6b7892a746d05f2ec1 SHA512 bcbea576816c654a9e165897ea51de3a4dde2940b05e26e785315fae5a5c7a0f697abfa2ace14d16e687e4a26f37c75cdaffefa1c5f98681f858dda22bcf3dae
diff --git a/net-analyzer/portsentry/files/portsentry-1.2-conf.patch b/net-analyzer/portsentry/files/portsentry-1.2-conf.patch
new file mode 100644
index 000000000000..54f78fb467bc
--- /dev/null
+++ b/net-analyzer/portsentry/files/portsentry-1.2-conf.patch
@@ -0,0 +1,17 @@
+--- a/portsentry.conf
++++ b/portsentry.conf
+@@ -80,11 +80,11 @@
+ ######################
+ #
+ # Hosts to ignore
+-IGNORE_FILE="/usr/local/psionic/portsentry/portsentry.ignore"
++IGNORE_FILE="/etc/portsentry/portsentry.ignore"
+ # Hosts that have been denied (running history)
+-HISTORY_FILE="/usr/local/psionic/portsentry/portsentry.history"
++HISTORY_FILE="/etc/portsentry/portsentry.history"
+ # Hosts that have been denied this session only (temporary until next restart)
+-BLOCKED_FILE="/usr/local/psionic/portsentry/portsentry.blocked"
++BLOCKED_FILE="/etc/portsentry/portsentry.blocked"
+
+ ##############################
+ # Misc. Configuration Options#
diff --git a/net-analyzer/portsentry/files/portsentry-1.2-config.h.patch b/net-analyzer/portsentry/files/portsentry-1.2-config.h.patch
new file mode 100644
index 000000000000..28c02b85e5af
--- /dev/null
+++ b/net-analyzer/portsentry/files/portsentry-1.2-config.h.patch
@@ -0,0 +1,11 @@
+--- a/portsentry_config.h
++++ b/portsentry_config.h
+@@ -22,7 +22,7 @@
+
+ /* These are probably ok. Be sure you change the Makefile if you */
+ /* change the path */
+-#define CONFIG_FILE "/usr/local/psionic/portsentry/portsentry.conf"
++#define CONFIG_FILE "/etc/portsentry/portsentry.conf"
+
+ /* The location of Wietse Venema's TCP Wrapper hosts.deny file */
+ #define WRAPPER_HOSTS_DENY "/etc/hosts.deny"
diff --git a/net-analyzer/portsentry/files/portsentry-1.2-gcc.patch b/net-analyzer/portsentry/files/portsentry-1.2-gcc.patch
new file mode 100644
index 000000000000..613808fe7225
--- /dev/null
+++ b/net-analyzer/portsentry/files/portsentry-1.2-gcc.patch
@@ -0,0 +1,12 @@
+--- a/portsentry.c
++++ b/portsentry.c
+@@ -1581,8 +1581,7 @@
+ Usage (void)
+ {
+ printf ("PortSentry - Port Scan Detector.\n");
+- printf ("Copyright 1997-2003 Craig H. Rowland <craigrowland at users dot
+-sourceforget dot net>\n");
++ printf ("Copyright 1997-2003 Craig H. Rowland <craigrowland at users dot sourceforget dot net>\n");
+ printf ("Licensing restrictions apply. Please see documentation\n");
+ printf ("Version: %s\n\n", VERSION);
+ #ifdef SUPPORT_STEALTH
diff --git a/net-analyzer/portsentry/files/portsentry-1.2-ignore.csh.patch b/net-analyzer/portsentry/files/portsentry-1.2-ignore.csh.patch
new file mode 100644
index 000000000000..ec45dd1daac7
--- /dev/null
+++ b/net-analyzer/portsentry/files/portsentry-1.2-ignore.csh.patch
@@ -0,0 +1,11 @@
+--- a/ignore.csh
++++ b/ignore.csh
+@@ -35,7 +35,7 @@
+ endif
+
+ # Safe directory
+-set SENTRYDIR=/usr/local/psionic/portsentry
++set SENTRYDIR=/etc/portsentry
+ set TMPFILE=portsentry.ignore.tmp
+
+ if (-f $SENTRYDIR/portsentry.ignore) then
diff --git a/net-analyzer/portsentry/files/portsentry.8 b/net-analyzer/portsentry/files/portsentry.8
new file mode 100644
index 000000000000..7c9d6a617262
--- /dev/null
+++ b/net-analyzer/portsentry/files/portsentry.8
@@ -0,0 +1,151 @@
+.TH PORTSENTRY 8
+.\" NAME should be all caps, SECTION should be 1-8, maybe w/ subsection
+.\" other parms are allowed: see man(7), man(1)
+.SH NAME
+portsentry \- detect portscan activity
+.SH SYNOPSIS
+.B portsentry
+.I "[ \-tcp | \-stcp | \-atcp ]"
+.br
+.B portsentry
+.I "[ \-udp | \-sudp | \-audp ]"
+.SH "DESCRIPTION"
+This manual page documents briefly the
+.BR portsentry
+command.
+This manual page was written for the Debian GNU/Linux distribution
+because the original program does not have a manual page.
+.PP
+.B portsentry
+is a program that tries to detect portscans on network interfaces with the ability to detect stealth scans. On alarm portsentry can block the scanning machine via hosts.deny (see
+.BR hosts_access (5),
+firewall rule (see
+.BR ipfwadm (8) ,
+.BR ipchains (8)
+and
+.BR iptables (8))
+or dropped route (see
+.BR route (8)).
+.SH OPTIONS
+For details on the various modes see
+.I /usr/doc/portsentry/README.install
+.
+.TP
+.B \-tcp
+tcp portscan detection on ports specified under
+.I TCP_PORTS
+in the config file
+.IR /etc/portsentry/portsentry.conf .
+.TP
+.B \-stcp
+As above but additionally detect stealth scans.
+.TP
+.B \-atcp
+Advanced tcp or inverse mode. Portsentry binds to all unused ports below
+.I ADVANCED_PORTS_TCP
+given in the config file
+.IR /etc/portsentry/portsentry.conf .
+
+.TP
+.B \-udp
+udp portscan detection on ports specified under
+.I UDP_PORTS
+in the config file
+.IR /etc/portsentry/portsentry.conf .
+.TP
+.B \-sudp
+As above but additionally detect "stealth" scans.
+.TP
+.B \-audp
+Advanced udp or inverse mode. Portsentry binds to all unused ports below
+.I ADVANCED_PORTS_UDP
+given in the config file
+.IR /etc/portsentry/portsentry.conf .
+
+.SH "CONFIGURATION FILES"
+.B portsentry
+keeps all its configuration files in
+.BR /etc/portsentry.
+.B portsentry.conf
+is
+.BR portsentry 's
+main configuration file. See
+.BR portsentry.conf (5)
+for details.
+
+The file
+.BR portsentry.ignore
+contains a list of all hosts that are ignored, if they connect to a tripwired
+port. It should contain at least the localhost(127.0.0.1), 0.0.0.0 and the IP addresses of all local interfaces. You can ignore whole subnets by using a notation <IP Address>/<Netmask Bits>. It is *not* recommend putting in every machine IP on your network. It may be important for you to see who is connecting to you, even if it is a "friendly" machine. This can help you detect internal host compromises faster.
+
+If you use the
+.IR /etc/init.d/portsentry
+script to start the daemon,
+.BR portsentry.ignore
+is rebuild on each start of the daemon using
+.BR portsentry.ignore.static
+and all the IP addresses found on the machine via
+.BR ifconfig .
+
+.BR /etc/default/portsenty
+specifies in which protocol modes
+.B portsentry
+should be startet from
+.IR /etc/init.d/portsentry
+There are currently two options:
+.TP
+.B TCP_MODE=
+either
+.BR tcp ", " stcp " or " atcp " (see " OPTIONS " above)."
+.TP
+.B UDP_MODE=
+either
+.BR udp ", " sudp " or " audp " (see " OPTIONS " above)."
+
+.PP
+The options above correspond to portsentry's commandline arguments. For example
+.B TCP_MODE="atcp"
+has the same effect as to start portsentry using
+.BR portsentry " " -atcp.
+Only one mode per protocol can be started at a time (i.e. one tcp and one udp mode).
+
+.SH "FILES"
+.BR /etc/portsentry/portsentry.conf
+main configuration file
+.TP
+.BR /etc/portsentry/portsentry.ignore
+IP addresses to ignore
+.TP
+.BR /etc/portsentry/portsentry.ignore.static
+static IP addresses to ignore
+.TP
+.BR /etc/default/portsentry
+startup options
+.TP
+.BR /etc/init.d/portsentry
+script responsible for starting and stopping the daemon
+.TP
+.BR /var/lib/portsentry/portsentry.blocked.*
+blocked hosts(cleared upon reload)
+.TP
+.BR /var/lib/portsentry/portsentry.history
+history file
+.LP
+.SH "SEE ALSO"
+.BR portsentry.conf(5),
+.BR hosts_access(5),
+.BR hosts_options(5),
+.BR route(8),
+.BR ipfwadm(8),
+.BR ipchains(8),
+.BR iptables(8),
+.BR ifconfig(8)
+
+.BR /usr/share/doc/portsentry/README.install
+.LP
+.SH AUTHOR
+.B portsentry
+was written by Craig H. Howland
+.B <crowland@users.sf.net>.
+
+This manual page was stitched together by Guido Guenther <agx@debian.org>, for the Debian GNU/Linux system (but may be used by others). Some parts are just a cut and paste from the original documentation.
diff --git a/net-analyzer/portsentry/files/portsentry.conf.5 b/net-analyzer/portsentry/files/portsentry.conf.5
new file mode 100644
index 000000000000..314e2abb2a44
--- /dev/null
+++ b/net-analyzer/portsentry/files/portsentry.conf.5
@@ -0,0 +1,217 @@
+.TH PORTSENTRY.CONF 5
+.\" NAME should be all caps, SECTION should be 1-8, maybe w/ subsection
+.\" other parms are allowed: see man(7), man(1)
+.SH NAME
+portsentry.conf \- portsentry´s main configuration file
+.SH "DESCRIPTION"
+This manual page documents briefly the format of
+.BR portsentry ´s(8)
+configuration file.
+.SH OPTIONS
+.TP
+.B TCP_PORTS
+A comma delimited string of TCP ports you want PortSentry to
+listen to. This string can NOT have any spaces in it. You can put in as
+many sockets as you want. PortSentry will try to bind them all up until
+the default limit of 64.
+
+For the stealth scan detection modes, the ports are not "bound" per se,
+but they are monitored at the socket level for connections.
+
+For the Advanced Stealth Scan Detection (see below) this list is *ignored*
+.TP
+.B UDP_PORTS
+The same as above, except for UDP ports. You need to be
+very careful with UDP mode as an attacker can forge a port sweep and
+make you block any number of hosts. Use this option with caution, or
+not at all if your host is a well-known Internet connected system.
+
+For the Advanced Stealth Scan Detection (see below) this list is *ignored*
+
+.TP
+.B ADVANCED_PORTS_TCP
+A number indicating the highest port number to
+monitor down from. Any port *below* this number is then monitored. The
+default is 1024 (reserved port range), but can be made as large as 65535
+(system max). I don't recommend going over 1024 with this option.
+
+.TP
+.B ADVANCED_PORTS_UDP
+Same as above, except for UDP.
+
+.TP
+.B ADVANCED_EXCLUDE_TCP
+A comma delimited string of TCP ports that should
+be manually excluded from monitoring in Advanced mode. These are normally
+ports that may get hit by mistake by remote clients and shouldn't cause
+alarms (ident, SSL, etc).
+
+.TP
+.B ADVANCED_EXCLUDE_UDP
+Same as above, except for UDP.
+
+.TP
+.B IGNORE_FILE
+The path to the file that contains IP addresses of hosts you
+want to always be ignored.
+
+.TP
+.B BLOCKED_FILE
+The path to the file that contains the IP addresses of
+blocked hosts.
+
+.TP
+.B RESOLVE_HOST - This option turns off DNS resolution for
+hosts. If you have a slow DNS server it may be more effective
+to turn off resolution.
+
+.TP
+.B BLOCK_UDP
+This option disables all automatic responses to UDP probes.
+Because UDP can be easily forged, it may allow an attacker to start a
+denial of service attack against the protected host, causing it to block
+all manner of hosts that should normally be left alone. Setting this option
+to "0" will disable all responses, although the connects are still logged.
+This option is mainly useful for Internet exposed hosts. For internal hosts
+you should leave this enabled. If someone internally is firing spoofed
+packets at you, then you have a much bigger problem than a denial of service.
+
+.TP
+.B BLOCK_TCP
+Same as above, but for TCP. Packet forgery is not as big a problem
+though because PortSentry waits for a full connect to occur and this is much
+harder to forge in the basic modes. Leave this enabled, even for
+Internet connected hosts. For stealth scan detection modes the UDP warning
+applies:
+
+ An attacker can cause you to block hosts you don't want to
+ through packet forgery. I wouldn't worry about this until it is a
+ problem, but you should be aware of it.
+
+.TP
+.B KILL_ROUTE
+This is the command to run to drop the offending route(see
+.BR route (8))
+if an attack is detected. This is the *full path* to the route command
+along with the necessary parameters to make the command work. The macro
+.B $TARGET$
+will be substituted with the attacking host IP and is
+REQUIRED in this option. Your gateway should be a *dead host* on the
+local subnet. On some systems though you can just put in the localhost
+address (127.0.0.1) and this will probably work. All packets from the
+target host will get routed to this address so don't mess this up.
+More modern route commands will include a "-blackhole" or "-reject" flag.
+Check your man(1) pages and if your route command supports this feature
+you should use it (although we recommend using packet filtering
+instead, see below).
+
+Also be aware that this creates what is known as an "asynchronous
+route" which basically means packets enter your host via one route
+and are sent out on another (dead) route. This works OK for full
+TCP connect requests, but for UDP and stealth scan modes it
+still allows packets to activate PortSentry and you may get a
+series of "already blocked" alarms by PortSentry. For UDP scans
+this method prevents ICMP messages from returning to the attacker
+so all ports appear open. However, if the attacker is performing
+an actual exploit with UDP the drop route method will not work.
+The asynchronous route allows the packet to hit the system and the
+attacker could perform a "blind" attack with UDP if they know what
+the responses are going to be.
+
+By far the best method is to use the local packet filter (see
+.BR ipfwadm (8),
+.BR ipchains (8),
+or
+.BR iptables (8)).
+This is a much cleaner solution and is
+detailed in the config file. The macro
+.B $PORT$
+will substitute the port
+that was connected to by the attacker, but this is NOT required for this
+option. The macro $MODE$ reports what mode the blocking occurred in
+(tcp, udp, stcp, sudp, atcp, audp) but is also NOT required.
+
+.TP
+.B KILL_HOSTS_DENY
+This is the format of the string to drop into the
+hosts.deny file that TCP wrappers uses(see
+.BR hosts_access (5),
+and
+.BR hosts_options (5)).
+Again the
+.B $TARGET$
+macro is
+expanded out to be the IP of the attacker and is required. You can
+also drop in any TCP wrapper escape codes here as well (%h, twist,
+etc). The macro
+.B $PORT$
+will substitute the port that was connected to
+by the attacker, but this is NOT required for this option.
+The macro $MODE$ reports what mode the blocking occurred in
+(tcp, udp, stcp, sudp, atcp, audp) but is also NOT required.
+
+.TP
+.B KILL_RUN_CMD
+This is a command you want run *before* the route
+is dropped to the attacker. You can put in any program/script you want
+executed when an attack is detected. WE NEVER RECOMMEND PUTTING IN
+RETALIATORY ACTION AGAINST AN ATTACKING HOST. Virtually every time you're
+are port scanned the host doing the scanning has been compromised itself.
+Therefore, if you retaliate you are probably attacking an innocent(?)
+party. Also the goal of security is to make the person GO AWAY. You don't
+want to irritate them into making a personal vendetta against you.
+Remember, even a 13 year old can run a [insert favorite D.O.S. program
+here] attack against you from their Windows box to make your life
+miserable. As above, the
+.BR $TARGET$ ,
+.B $PORT$
+and
+.B $MODE$
+macros are available to you but they are not required with this option as above.
+
+.TP
+.B KILL_RUN_CMD_FIRST
+Setting this to "1" makes the command above run before the route is
+dropped. Setting it to "0" makes the command run aftter the blocking
+has occurred.
+
+.TP
+.B SCAN_TRIGGER
+PortSentry has a state engine that will remember hosts
+that connected to it. Setting this value will tell PortSentry to allow X
+number of grace port hits before it reacts. This will detect both
+sequential and random port sweeps. The default is 0 which will react
+immediately. A setting of 1 or 2 will reduce false alarms, anything
+higher is probably too much as anything more than 3 hits to different
+ports is pretty suspicious behavior. Usually you can leave this at 0
+without any consequence, with the exception of Advanced stealth scan
+detection modes where you may create a "hair trigger" if you aren't
+careful. Use your own discretion.
+
+.TP
+.B PORT_BANNER
+A text banner you want displayed to the connecting host if
+the PortSentry is activated. Leave this commented out if you don't want this
+feature. If you do use it, try not to taunt the person too badly. We
+recommend keeping it professional and to the point. The banner is *not*
+displayed when stealth scan detection modes are used.
+
+.LP
+.SH "SEE ALSO"
+.BR portsentry(8),
+.BR hosts_access(5),
+.BR hosts_options(5),
+.BR route(8),
+.BR ipfwadm(8),
+.BR ipchains(8)
+
+.BR /usr/share/doc/portsentry/README.install
+.LP
+.SH AUTHOR
+.B portsentry
+was written by Craig H. Howland
+.B <crowland@users.sf.net>.
+
+This manual page is essentially just a "cut and paste" from the README.install file and was done by Guido Guenther <agx@debian.org>(hopefully without adding too many errors), for the Debian GNU/Linux system (but may be used by others).
+
+
diff --git a/net-analyzer/portsentry/files/portsentry.confd b/net-analyzer/portsentry/files/portsentry.confd
new file mode 100644
index 000000000000..49729516ef7c
--- /dev/null
+++ b/net-analyzer/portsentry/files/portsentry.confd
@@ -0,0 +1,12 @@
+# Config file for /etc/init.d/portsentry
+#
+# This file is read by /etc/init.d/portsentry. See the portsentry.8
+# manpage for details.
+#
+# The options in this file refer to commandline arguments (all in lowercase)
+# of portsentry. Use only one tcp and udp mode at a time.
+#
+
+#PORTSENTRY_MODES="udp tcp"
+#PORTSENTRY_MODES="stcp sudp"
+#PORTSENTRY_MODES="atcp audp" \ No newline at end of file
diff --git a/net-analyzer/portsentry/files/portsentry.rc6 b/net-analyzer/portsentry/files/portsentry.rc6
new file mode 100644
index 000000000000..1d89be401ada
--- /dev/null
+++ b/net-analyzer/portsentry/files/portsentry.rc6
@@ -0,0 +1,38 @@
+#!/sbin/openrc-run
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+# NB: Config is in /etc/conf.d/portsentry
+
+depend() {
+ need net
+}
+
+checkconfig() {
+ if [ ! -e /etc/portsentry/portsentry.conf ] ; then
+ eerror "You need an /etc/portsentry/portsentry.conf file"
+ eerror "There is a sample in /usr/share/doc/portsentry"
+ return 1
+ fi
+ if [ -z "$PORTSENTRY_MODES" ] ; then
+ eerror "You need to setup your PORTSENTRY_MODES first"
+ eerror "Check /etc/conf.d/portsentry that you've enabled some or all of them"
+ return 1
+ fi
+}
+
+start() {
+ checkconfig || return 1
+ ebegin "Starting portsentry"
+ for mode in $PORTSENTRY_MODES ; do
+ /usr/bin/portsentry -$mode
+ result=$(( $result + $? ))
+ done
+ eend $result
+}
+
+stop() {
+ ebegin "Stopping portsentry"
+ killall portsentry
+ eend $?
+}
diff --git a/net-analyzer/portsentry/metadata.xml b/net-analyzer/portsentry/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/portsentry/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/portsentry/portsentry-1.2-r1.ebuild b/net-analyzer/portsentry/portsentry-1.2-r1.ebuild
new file mode 100644
index 000000000000..ae9657ed17ad
--- /dev/null
+++ b/net-analyzer/portsentry/portsentry-1.2-r1.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+DESCRIPTION="Automated port scan detector and response tool"
+# Seems like CISCO took the site down?
+HOMEPAGE="https://sourceforge.net/projects/sentrytools/"
+SRC_URI="https://downloads.sourceforge.net/sentrytools/${P}.tar.gz"
+S="${WORKDIR}"/${PN}_beta
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="amd64 ppc x86 ~x64-macos"
+
+RDEPEND="kernel_Darwin? ( app-shells/tcsh )"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-conf.patch
+ "${FILESDIR}"/${P}-config.h.patch
+ "${FILESDIR}"/${P}-gcc.patch
+ "${FILESDIR}"/${P}-ignore.csh.patch
+)
+
+src_compile() {
+ local target
+
+ if use kernel_Darwin ; then
+ target="osx"
+ elif use kernel_linux ; then
+ target="linux"
+ elif use kernel_SunOS ; then
+ target="solaris"
+ fi
+
+ if [[ -z "${target}" ]] ; then
+ elog "Using 'generic' target for your platform"
+ target="generic"
+ else
+ elog "Using '${target}' (detected) target for your platform"
+ fi
+
+ emake CC="$(tc-getCC)" CFLAGS="${CFLAGS} ${CPPFLAGS} ${LDFLAGS}" "${target}"
+}
+
+src_install() {
+ doman "${FILESDIR}"/{portsentry.8,portsentry.conf.5}
+
+ dobin portsentry ignore.csh
+ dodoc README* CHANGES CREDITS
+ newdoc portsentry.ignore portsentry.ignore.sample
+ newdoc portsentry.conf portsentry.conf.sample
+
+ insinto /etc/portsentry
+ newins portsentry.ignore portsentry.ignore.sample
+ newins portsentry.conf portsentry.conf.sample
+
+ newinitd "${FILESDIR}"/portsentry.rc6 portsentry
+ newconfd "${FILESDIR}"/portsentry.confd portsentry
+}
diff --git a/net-analyzer/prettyping/Manifest b/net-analyzer/prettyping/Manifest
new file mode 100644
index 000000000000..5dcbbe05c59e
--- /dev/null
+++ b/net-analyzer/prettyping/Manifest
@@ -0,0 +1 @@
+DIST prettyping-1.0.1.tar.gz 10104 BLAKE2B 41158972fa41fcfaf078fd8fa4b9af10e2d3e65d547f81f0a6daf826f0a1c725de97e14dc597624d2c9281492d94c4b5cf7e6f40e9743aea0792ece0f84211fc SHA512 967626f11cd58fd9a0ce91a320caf6b6a296681ed809e04188f0cfe00d03c80a3620bf4d3ec86e855be363810763ff3ccd8bb0a959d03e62b31edba2cfae7f79
diff --git a/net-analyzer/prettyping/metadata.xml b/net-analyzer/prettyping/metadata.xml
new file mode 100644
index 000000000000..5ffb81f5e580
--- /dev/null
+++ b/net-analyzer/prettyping/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <longdescription>
+ 'prettyping' is a wrapper around the standard 'ping' tool,
+ making the output prettier, more colorful, more compact,
+ and easier to read.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/prettyping/prettyping-1.0.1.ebuild b/net-analyzer/prettyping/prettyping-1.0.1.ebuild
new file mode 100644
index 000000000000..284ed8a7c3b4
--- /dev/null
+++ b/net-analyzer/prettyping/prettyping-1.0.1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="Ping wrapper that produces coloured, easily readable output"
+HOMEPAGE="https://denilson.sa.nom.br/prettyping/"
+SRC_URI="https://github.com/denilsonsa/prettyping/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 ~x86"
+
+RDEPEND="app-shells/bash
+ net-misc/iputils
+ app-alternatives/awk"
+
+src_install() {
+ dobin prettyping
+}
diff --git a/net-analyzer/pypacker/Manifest b/net-analyzer/pypacker/Manifest
new file mode 100644
index 000000000000..f746ae904f44
--- /dev/null
+++ b/net-analyzer/pypacker/Manifest
@@ -0,0 +1 @@
+DIST pypacker-v5.2.tar.bz2 544026 BLAKE2B 3401b47a496e8c76d2b925e63c43838d2a05af01655a3e470ddfd0c2c57ab6b37ba1b9acd49386232b5c0fb4bc8d061f8992eac07f5729306502fa76413c51f5 SHA512 3ccb82ff2a352553819991c0e24fb6da8a26091f5cdced3d3358192ecf6598153fb3b36d48b1f51cdc1dd7f54e136c073e8e5a2f3fb050af24f83c77e1bda3b4
diff --git a/net-analyzer/pypacker/metadata.xml b/net-analyzer/pypacker/metadata.xml
new file mode 100644
index 000000000000..dae0ad56c5ba
--- /dev/null
+++ b/net-analyzer/pypacker/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <upstream>
+ <maintainer>
+ <email>michael.stahn.42@googlemail.com</email>
+ <name>Michael Stahn</name>
+ </maintainer>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/pypacker/pypacker-5.2.ebuild b/net-analyzer/pypacker/pypacker-5.2.ebuild
new file mode 100644
index 000000000000..ea5c3cdfc13d
--- /dev/null
+++ b/net-analyzer/pypacker/pypacker-5.2.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Fast and simple packet creation and parsing library for Python"
+HOMEPAGE="https://gitlab.com/mike01/pypacker"
+SRC_URI="https://gitlab.com/mike01/pypacker/-/archive/v${PV}/pypacker-v${PV}.tar.bz2"
+S="${WORKDIR}"/${PN}-v${PV}
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="examples"
+
+DOCS=( AUTHORS CHANGES HACKING README.md )
+
+python_test() {
+ "${EPYTHON}" tests/test_pypacker.py || die
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+ use examples && dodoc -r examples
+}
diff --git a/net-analyzer/python-gvm/Manifest b/net-analyzer/python-gvm/Manifest
new file mode 100644
index 000000000000..30ec162209f8
--- /dev/null
+++ b/net-analyzer/python-gvm/Manifest
@@ -0,0 +1,2 @@
+DIST python-gvm-26.4.0.tar.gz 354900 BLAKE2B 0ac0d1e855d4015b649671d6a7ee88a23507d99cf6a8c40c84a774cb0cb12eb7dfd366e6cc2a0bb6348b48e9d96b9f431c4a5d0b8ffb51b1769d0fbd20f4979c SHA512 821fc0df07355bc6addcba7a8c74a7630ce5079d1e3e1f14bdb6a71e62d3b750c46223598fd0dc264c5b3826aaf4c1ebfe7d2c9f3b513598d405f5a70500e567
+DIST python-gvm-26.9.1.tar.gz 391799 BLAKE2B a212565558bd30a63b292e02d292b2f403b164726face65148c8a29ae5b6d6187d65382fbbfb1a3a139b8ebc5c10aa5f6f6132fee364d98e40502777d84b746b SHA512 10cdcd6d799ae4fdbf9aed21523f6db7be6764809c3c4503f21833e87db417b4562167a89f7227b7dce94603fe339c43d7d34f9bb46ac30c31e8630a9e13d419
diff --git a/net-analyzer/python-gvm/metadata.xml b/net-analyzer/python-gvm/metadata.xml
new file mode 100644
index 000000000000..6060478b194e
--- /dev/null
+++ b/net-analyzer/python-gvm/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>foti.giuseppe@gmail.com</email>
+ <name>Giuseppe Foti</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription lang="en">
+ The Greenbone Vulnerability Management Python API library (python-gvm) is a collection of
+ APIs that help with remote controlling a Greenbone Security Manager (GSM) appliance and its
+ underlying Greenbone Vulnerability Manager (GVM). The library essentially abstracts accessing
+ the communication protocols Greenbone Management Protocol (GMP) and Open Scanner Protocol (OSP).
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/python-gvm/python-gvm-26.4.0.ebuild b/net-analyzer/python-gvm/python-gvm-26.4.0.ebuild
new file mode 100644
index 000000000000..c945097f72c1
--- /dev/null
+++ b/net-analyzer/python-gvm/python-gvm-26.4.0.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+DISTUTILS_USE_PEP517=poetry
+
+inherit distutils-r1
+
+DESCRIPTION="Greenbone Vulnerability Management Python Library"
+HOMEPAGE="https://www.greenbone.net https://github.com/greenbone/python-gvm/"
+SRC_URI="https://github.com/greenbone/python-gvm/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="amd64"
+
+RDEPEND="
+ >=dev-python/lxml-4.5.0[${PYTHON_USEDEP}]
+ >=dev-python/paramiko-2.7.1[${PYTHON_USEDEP}]
+ dev-python/httpx[${PYTHON_USEDEP}]
+ test? (
+ >=net-analyzer/pontos-22.7.2[${PYTHON_USEDEP}]
+ )
+"
+DEPEND="${RDEPEND}"
+
+distutils_enable_tests unittest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # drop connection tests
+ rm -r tests/connections || die
+}
diff --git a/net-analyzer/python-gvm/python-gvm-26.9.1.ebuild b/net-analyzer/python-gvm/python-gvm-26.9.1.ebuild
new file mode 100644
index 000000000000..1d65ebbc9a9b
--- /dev/null
+++ b/net-analyzer/python-gvm/python-gvm-26.9.1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{13..14} )
+DISTUTILS_USE_PEP517=poetry
+
+inherit distutils-r1
+
+DESCRIPTION="Greenbone Vulnerability Management Python Library"
+HOMEPAGE="https://www.greenbone.net https://github.com/greenbone/python-gvm/"
+SRC_URI="https://github.com/greenbone/python-gvm/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ >=dev-python/lxml-4.5.0[${PYTHON_USEDEP}]
+ >=dev-python/paramiko-3.4.0[${PYTHON_USEDEP}]
+ dev-python/httpx[${PYTHON_USEDEP}]
+ test? (
+ >=net-analyzer/pontos-22.7.2[${PYTHON_USEDEP}]
+ )
+"
+DEPEND="${RDEPEND}"
+
+distutils_enable_tests unittest
+
+src_prepare() {
+ distutils-r1_src_prepare
+
+ # drop connection tests
+ rm -r tests/connections || die
+}
diff --git a/net-analyzer/raddump/Manifest b/net-analyzer/raddump/Manifest
new file mode 100644
index 000000000000..6911e995bb58
--- /dev/null
+++ b/net-analyzer/raddump/Manifest
@@ -0,0 +1 @@
+DIST raddump-0.3.1.tar.gz 175078 BLAKE2B b65bbf2200792c41ffe8363aaedc3e009fddc0b684f647352bba5011e84ab99c4741f9cf567e6a668c08ba7e4f8df144875379fbc7f1fff1a2217cdfbde1fde8 SHA512 35daf9c31fc21f29e713fa0f3e5c438f5762087060068506f6e0d829a0fabe74a99fdd1a35bf878aa0cbf5a5f0bec212b0af51b7c3df4e58ec0165b4dee023fa
diff --git a/net-analyzer/raddump/files/raddump-0.3.1-cast-pointer.patch b/net-analyzer/raddump/files/raddump-0.3.1-cast-pointer.patch
new file mode 100644
index 000000000000..0c29d02e6a6d
--- /dev/null
+++ b/net-analyzer/raddump/files/raddump-0.3.1-cast-pointer.patch
@@ -0,0 +1,17 @@
+https://bugs.gentoo.org/968883
+Fix to permit compilation with GCC15/in C23 context.
+Code doesn't move `struct pktrecord p` around, and program is single-threaded
+so it is safe to cast referenced address to const.
+--- a/pktrecord.c
++++ b/pktrecord.c
+@@ -169,7 +169,7 @@
+
+ #ifdef HAVE_PCAP_NEXT_EX
+ if (pcap_next_ex(ph->pcap_handle, &(ph->pcap_hdr),
+- &(p->pkt_data)) != 1) return 0;
++ (const unsigned char **)&(p->pkt_data)) != 1) return 0;
+ #else
+ /* older version of libpcap */
+ p->pkt_data = (unsigned char *)pcap_next(ph->pcap_handle, ph->pcap_hdr);
+Only in raddump-0.3.1: pktrecord.o
+Only in raddump-0.3.1: raddump
diff --git a/net-analyzer/raddump/metadata.xml b/net-analyzer/raddump/metadata.xml
new file mode 100644
index 000000000000..5d08ae950a93
--- /dev/null
+++ b/net-analyzer/raddump/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>robbat2@gentoo.org</email>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/raddump/raddump-0.3.1-r1.ebuild b/net-analyzer/raddump/raddump-0.3.1-r1.ebuild
new file mode 100644
index 000000000000..53d74e5510e7
--- /dev/null
+++ b/net-analyzer/raddump/raddump-0.3.1-r1.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="RADIUS packet interpreter"
+HOMEPAGE="https://sourceforge.net/projects/raddump/"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86"
+
+RDEPEND=">=net-analyzer/tcpdump-3.8.3-r1"
+DEPEND="${RDEPEND}"
+
+PATCHES=( "${FILESDIR}/${P}-cast-pointer.patch" )
+
+src_prepare() {
+ default
+ eautoreconf
+}
diff --git a/net-analyzer/raddump/raddump-0.3.1.ebuild b/net-analyzer/raddump/raddump-0.3.1.ebuild
new file mode 100644
index 000000000000..b6622a0152e5
--- /dev/null
+++ b/net-analyzer/raddump/raddump-0.3.1.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools
+
+DESCRIPTION="RADIUS packet interpreter"
+HOMEPAGE="https://sourceforge.net/projects/raddump/"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86"
+IUSE=""
+
+RDEPEND=">=net-analyzer/tcpdump-3.8.3-r1"
+DEPEND=${RDEPEND}
+
+src_prepare() {
+ default
+ eautoreconf
+}
diff --git a/net-analyzer/rrdcollect/Manifest b/net-analyzer/rrdcollect/Manifest
new file mode 100644
index 000000000000..fd13c476d231
--- /dev/null
+++ b/net-analyzer/rrdcollect/Manifest
@@ -0,0 +1 @@
+DIST rrdcollect-0.2.10.tar.bz2 114312 BLAKE2B 8e75a44e6ea2dcf57eec7418912383fe1ed846eda5ac2e402b7ed3b0f47f3f169d84b563821380fcb1ee87b70fcdf881dd48763fbb4ab3c8ef301ca9ef5f2a74 SHA512 c926ccfdbf98a4de114b80012151bf6859644742a97e14ce06f3c44c3b48bb242d47fda54deef8069d57aa8d207389e788e6021ce337559c0185e7cdb680b26e
diff --git a/net-analyzer/rrdcollect/metadata.xml b/net-analyzer/rrdcollect/metadata.xml
new file mode 100644
index 000000000000..91d88a9211ea
--- /dev/null
+++ b/net-analyzer/rrdcollect/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <use>
+ <flag name="exec">Enable exec:/// support</flag>
+ <flag name="librrd">Use the librrd library from <pkg>net-analyzer/rrdtool</pkg>
+ </flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/rrdcollect/rrdcollect-0.2.10.ebuild b/net-analyzer/rrdcollect/rrdcollect-0.2.10.ebuild
new file mode 100644
index 000000000000..7bd0e454f847
--- /dev/null
+++ b/net-analyzer/rrdcollect/rrdcollect-0.2.10.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit autotools
+
+DESCRIPTION="Read system statistical data and feed it to RRDtool"
+HOMEPAGE="http://rrdcollect.sourceforge.net/"
+SRC_URI="https://downloads.sourceforge.net/rrdcollect/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~x86"
+IUSE="exec librrd pcre"
+
+DEPEND="
+ librrd? ( net-analyzer/rrdtool )
+ pcre? ( dev-libs/libpcre )
+"
+RDEPEND="${DEPEND}"
+DOCS=( AUTHORS ChangeLog NEWS TODO )
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_enable exec) \
+ $(use_with librrd) \
+ $(use_with pcre libpcre)
+}
+
+src_install() {
+ default
+ docinto examples
+ dodoc doc/examples/*
+}
diff --git a/net-analyzer/rrdtool/Manifest b/net-analyzer/rrdtool/Manifest
new file mode 100644
index 000000000000..3cc77a422414
--- /dev/null
+++ b/net-analyzer/rrdtool/Manifest
@@ -0,0 +1 @@
+DIST rrdtool-1.9.0.gh.tar.gz 833532 BLAKE2B f2b5ece76d5e229f210781e1cc3756cc350b84b771221cc64a31a8928f047c5caca55d15b237de1cf95d8ca2b80c98d5eb0c3530c8b8caf257238dbf7fcba512 SHA512 82d947f3cb41223437c4548cd30054f0b0b08f5f07438203deadcc2a0f106a6df8ef7b8e04eeac4cd31f8bc0549b5fa098ad1bb4c6b17fcfa20fc1bc40f634db
diff --git a/net-analyzer/rrdtool/files/rrdcached.confd-r1 b/net-analyzer/rrdtool/files/rrdcached.confd-r1
new file mode 100644
index 000000000000..99213acd1e1b
--- /dev/null
+++ b/net-analyzer/rrdtool/files/rrdcached.confd-r1
@@ -0,0 +1,13 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Default user and group for the rrdcached daemon
+GROUP="rrdcached"
+USER="root"
+
+# Default options for the rrdcached daemon
+RRCACHE_ARGS="-B -F -m 770 -s rrdcached -l unix:/run/rrdcached.sock"
+
+# Default path for database and journal
+RRCACHE_DATABASE="/var/lib/rrdcached/db"
+RRCACHE_JOURNAL="/var/lib/rrdcached/journal"
diff --git a/net-analyzer/rrdtool/files/rrdcached.init-r1 b/net-analyzer/rrdtool/files/rrdcached.init-r1
new file mode 100644
index 000000000000..f7bdb0c68504
--- /dev/null
+++ b/net-analyzer/rrdtool/files/rrdcached.init-r1
@@ -0,0 +1,23 @@
+#!/sbin/openrc-run
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+description="Data caching daemon for RRDTool"
+rrdcached_database="${RRCACHE_DATABASE:-/var/lib/rrdcached/db}"
+rrdcached_group="${GROUP:-rrdcached}"
+rrdcached_journal="${RRCACHE_JOURNAL:-/var/lib/rrdcached/journal}"
+rrdcached_user="${USER:-rrdcached}"
+pidfile="/run/rrdcached.pid"
+
+command="/usr/bin/rrdcached"
+command_args="${RRCACHE_ARGS} -b ${rrdcached_database} -G ${rrdcached_group} -j ${rrdcached_journal} -p ${pidfile} -U ${rrdcached_user}"
+
+depend() {
+ need localmount
+ use logger
+}
+
+start_pre() {
+ checkpath -d -o "${rrdcached_user}:${rrdcached_group}" -q "${rrdcached_database}"
+ checkpath -d -o "${rrdcached_user}:${rrdcached_group}" -q "${rrdcached_journal}"
+}
diff --git a/net-analyzer/rrdtool/files/rrdtool-1.7.0-disable-rrd_graph-cgi.patch b/net-analyzer/rrdtool/files/rrdtool-1.7.0-disable-rrd_graph-cgi.patch
new file mode 100644
index 000000000000..beb1ba794f22
--- /dev/null
+++ b/net-analyzer/rrdtool/files/rrdtool-1.7.0-disable-rrd_graph-cgi.patch
@@ -0,0 +1,49 @@
+--- a/src/rrd_cgi.c
++++ b/src/rrd_cgi.c
+@@ -51,6 +51,7 @@
+ const char **);
+
+ /* call rrd_graph and insert appropriate image tag */
++#ifdef HAVE_RRD_GRAPH
+ static char *drawgraph(
+ long,
+ const char **);
+@@ -59,6 +60,7 @@
+ static char *drawprint(
+ long,
+ const char **);
++#endif /* HAVE_RRD_GRAPH */
+
+ /* pretty-print the <last></last> value for some.rrd via strftime() */
+ static char *printtimelast(
+@@ -510,9 +512,13 @@
+ }
+ parse(&buffer, i, "<RRD::GETVAR", rrdgetvar);
+ parse(&buffer, i, "<RRD::GOODFOR", rrdgoodfor);
++#ifdef HAVE_RRD_GRAPH
+ parse(&buffer, i, "<RRD::GRAPH", drawgraph);
++#endif /* HAVE_RRD_GRAPH */
+ parse(&buffer, i, "<RRD::INCLUDE", includefile);
++#ifdef HAVE_RRD_GRAPH
+ parse(&buffer, i, "<RRD::PRINT", drawprint);
++#endif /* HAVE_RRD_GRAPH */
+ parse(&buffer, i, "<RRD::SETCONSTVAR", rrdsetvarconst);
+ parse(&buffer, i, "<RRD::SETENV", rrdsetenv);
+ parse(&buffer, i, "<RRD::SETVAR", rrdsetvar);
+@@ -900,7 +906,7 @@
+ }
+
+
+-
++#ifdef HAVE_RRD_GRAPH
+ static char *drawgraph(
+ long argc,
+ const char **args)
+@@ -931,6 +937,7 @@
+ }
+ return NULL;
+ }
++#endif /* HAVE_RRD_GRAPH */
+
+ static char *drawprint(
+ long argc,
diff --git a/net-analyzer/rrdtool/files/rrdtool-1.7.1-configure.ac.patch b/net-analyzer/rrdtool/files/rrdtool-1.7.1-configure.ac.patch
new file mode 100644
index 000000000000..1b65f959c95d
--- /dev/null
+++ b/net-analyzer/rrdtool/files/rrdtool-1.7.1-configure.ac.patch
@@ -0,0 +1,12 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -241,9 +241,6 @@
+
+
+
+-dnl add pic flag in any case this makes sure all our code is relocatable
+-dnl eval `./libtool --config | grep pic_flag=`
+-dnl CFLAGS="$CFLAGS $pic_flag"
+
+
+ dnl Checks for library functions.
diff --git a/net-analyzer/rrdtool/metadata.xml b/net-analyzer/rrdtool/metadata.xml
new file mode 100644
index 000000000000..bafb4639667b
--- /dev/null
+++ b/net-analyzer/rrdtool/metadata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>conikost@gentoo.org</email>
+ <name>Conrad Kostecki</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <use>
+ <flag name="graph">Enable support for graphing functions</flag>
+ <flag name="rados">Enable support for librados from <pkg>sys-cluster/ceph</pkg>
+ </flag>
+ <flag name="rrdcached">Build support for write-caching daemon</flag>
+ <flag name="rrdcgi">Build rrdcgi support</flag>
+ </use>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:rrdtool_project:rrdtool</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/rrdtool/rrdtool-1.9.0-r3.ebuild b/net-analyzer/rrdtool/rrdtool-1.9.0-r3.ebuild
new file mode 100644
index 000000000000..31e2a8136b7c
--- /dev/null
+++ b/net-analyzer/rrdtool/rrdtool-1.9.0-r3.ebuild
@@ -0,0 +1,286 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-{1,3,4} luajit )
+PYTHON_COMPAT=( python3_{13..14} )
+DISTUTILS_EXT=1
+DISTUTILS_OPTIONAL="true"
+DISTUTILS_USE_PEP517="setuptools"
+GENTOO_DEPEND_ON_PERL="no"
+MY_P="${P/_/-}"
+
+inherit autotools lua perl-module distutils-r1 flag-o-matic
+
+DESCRIPTION="A data logging and graphing system for time series data"
+HOMEPAGE="https://oss.oetiker.ch/rrdtool/"
+# upstream dist doesnt include python tests
+SRC_URI="
+ https://github.com/oetiker/rrdtool-1.x/archive/refs/tags/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+S="${WORKDIR}/rrdtool-1.x-${PV}"
+
+LICENSE="GPL-2"
+SLOT="0/8.0.0"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+IUSE="dbi doc examples graph lua perl python rados rrdcached rrdcgi ruby static-libs tcl tcpd test ${GENTOO_PERL_USESTRING}"
+
+RESTRICT="!test? ( test )"
+
+# perl? ( graph ) bug #940931
+REQUIRED_USE="
+ perl? ( graph )
+ python? ( ${PYTHON_REQUIRED_USE} )
+ lua? ( ${LUA_REQUIRED_USE} )
+"
+
+PDEPEND="ruby? ( ~dev-ruby/rrdtool-bindings-${PV} )"
+
+RDEPEND="
+ dev-libs/glib:2[static-libs(+)?]
+ dev-libs/libxml2:2=[static-libs(+)?]
+ dbi? ( dev-db/libdbi[static-libs(+)?] )
+ graph? (
+ media-libs/libpng:0=[static-libs(+)?]
+ x11-libs/cairo[svg(+),static-libs(+)?]
+ x11-libs/pango
+ )
+ lua? ( ${LUA_DEPS} )
+ perl? (
+ ${GENTOO_PERL_DEPSTRING}
+ dev-lang/perl:=
+ )
+ python? ( ${PYTHON_DEPS} )
+ rados? ( sys-cluster/ceph )
+ rrdcached? (
+ acct-group/rrdcached
+ acct-user/rrdcached
+ )
+ tcl? ( dev-lang/tcl:0= )
+ tcpd? ( sys-apps/tcp-wrappers )
+"
+
+DEPEND="${RDEPEND}"
+
+BDEPEND="
+ sys-apps/groff
+ virtual/pkgconfig
+ app-alternatives/awk
+ python? (
+ ${DISTUTILS_DEPS}
+ $(python_gen_cond_dep 'dev-python/setuptools[${PYTHON_USEDEP}]')
+ )
+ test? (
+ app-alternatives/bc
+ lua? ( ${LUA_DEPS} )
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.7.0-disable-rrd_graph-cgi.patch
+ "${FILESDIR}"/${PN}-1.7.1-configure.ac.patch
+)
+
+src_prepare() {
+ default
+
+ # Bug #456810
+ local mysedargs=(
+ -e 's|$LUA_CFLAGS|IGNORE_THIS_BAD_TEST|g'
+ -e 's|^sleep 1$||g'
+ -e '/^dnl.*png/s|^dnl||g'
+ -i configure.ac
+ )
+
+ sed "${mysedargs[@]}" || die
+
+ # Python bindings are built and installed manually
+ local mysedargs=(
+ -e '/^all-local:/s| @COMP_PYTHON@||'
+ -i bindings/Makefile.am
+ )
+
+ sed "${mysedargs[@]}" || die
+
+ if ! use graph ; then
+ # Makefile needs to be adjusted for disabling 'graph' feature
+ local mysedargs=(
+ -e '/^TESTS =/,/^$/ {
+ s:rpn[0-9]*::g;
+ s:create-with-source-4::;
+ s:xport1::;
+ s:dcounter1::;
+ s:vformatter1::;
+ s:graph[0-9]*::g;
+ }'
+ -i tests/Makefile.am
+ )
+
+ sed "${mysedargs[@]}" || die
+
+ # Remove graph test from lua
+ sed -i -e '/Testing rrd.graphv/,$ d' bindings/lua/test.lua{,50}.bottom || die
+ fi
+
+ # Makefile needs to be adjusted for disabling 'rrdcached' feature
+ if ! use rrdcached ; then
+ local mysedargs=(
+ -e '/^TESTS =/,/^$/ {
+ s:list1::;
+ }'
+ -i tests/Makefile.am
+ )
+
+ sed "${mysedargs[@]}" || die
+ fi
+
+ eautoreconf
+}
+
+src_configure() {
+ export rd_cv_gcc_flag__Werror=no
+ export rd_cv_ms_async=ok
+ export RRDDOCDIR="${EPREFIX}/usr/share/doc/${PF}"
+
+ # Bug #260380
+ [[ ${CHOST} == *-solaris* ]] && append-flags -D__EXTENSIONS__
+
+ # Enabling '-ffast-math' is known to cause problems.
+ filter-flags -ffast-math
+
+ # We will handle Lua bindings ourselves, upstream is not multi-impl-ready
+ # and their Lua-detection logic depends on having the right version of the Lua
+ # interpreter available at build time.
+ local myeconfargs=(
+ --disable-lua
+ --disable-ruby
+ --disable-ruby-site-install
+ --disable-python
+ $(usex !dbi '--disable-libdbi' '')
+ $(usex !examples '--disable-examples' '')
+ $(use_enable graph rrd_graph)
+ $(use_enable perl perl-site-install)
+ $(use_enable perl)
+ $(usex !rados '--disable-librados' '')
+ $(usex !rrdcached '--disable-rrdcached' '')
+ $(use_enable rrdcgi)
+ $(use_enable static-libs static)
+ $(usex !tcpd '--disable-libwrap' '')
+ $(use_enable tcl)
+ $(use_enable tcl tcl-site)
+ $(use_with tcl tcllib "${EPREFIX}"/usr/$(get_libdir))
+ --with-perl-options="INSTALLDIRS=vendor"
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+lua_src_compile() {
+ pushd "${BUILD_DIR}"/bindings/lua || die
+
+ # We do need the CMOD-dir path here, otherwise libtool complains.
+ # Use the real one (i.e. not within ${ED}) just in case.
+ local myemakeargs=(
+ LUA_CFLAGS="$(lua_get_CFLAGS)"
+ LUA_INSTALL_CMOD="$(lua_get_cmod_dir)"
+ )
+
+ emake "${myemakeargs[@]}"
+
+ popd || die
+}
+
+python_compile() {
+ cd bindings/python || die
+ distutils-r1_python_compile
+}
+
+src_compile() {
+ default
+
+ # Only copy sources now so that we do not
+ # trigger librrd compilation multiple times.
+ if use lua; then
+ lua_copy_sources
+ lua_foreach_impl lua_src_compile
+ fi
+
+ use python && distutils-r1_src_compile
+}
+
+lua_src_test() {
+ pushd "${BUILD_DIR}"/bindings/lua || die
+ LUA_CPATH="${PWD}/.libs/?.so" emake LUA="${LUA}" test
+ popd || die
+}
+
+python_test() {
+ LD_LIBRARY_PATH="${S}/src/.libs:${LD_LIBRARY_PATH}" eunittest
+}
+
+src_test() {
+ export LC_ALL=C
+ default
+
+ if use lua; then
+ lua_foreach_impl lua_src_test
+ fi
+
+ if use perl; then
+ pushd bindings/perl-shared >/dev/null || die
+ LD_LIBRARY_PATH="${S}/src/.libs:${LD_LIBRARY_PATH}" perl-module_src_test
+ popd >/dev/null || die
+ pushd bindings/perl-piped >/dev/null || die
+ LD_LIBRARY_PATH="${S}/src/.libs:${LD_LIBRARY_PATH}" perl-module_src_test
+ popd >/dev/null || die
+ fi
+
+ if use python && use graph ; then
+ # All tests explicitly use graph
+ pushd bindings/python >/dev/null || die
+ distutils-r1_src_test
+ popd >/dev/null || die
+ fi
+}
+
+lua_src_install() {
+ pushd "${BUILD_DIR}"/bindings/lua || die
+
+ # This time we must prefix the CMOD-dir path with ${ED},
+ # so that make does not try to violate the sandbox.
+ local myemakeargs=(
+ LUA_INSTALL_CMOD="${ED}/$(lua_get_cmod_dir)"
+ )
+
+ emake "${myemakeargs[@]}" install
+
+ popd || die
+}
+
+src_install() {
+ default
+
+ if ! use doc; then
+ rm -rf "${ED}"/usr/share/doc/"${PF}"/{html,txt} || die
+ fi
+
+ if use lua; then
+ lua_foreach_impl lua_src_install
+ fi
+
+ if use perl; then
+ perl_delete_localpod
+ perl_delete_packlist
+ fi
+
+ use python && distutils-r1_src_install
+
+ if use rrdcached; then
+ newconfd "${FILESDIR}"/rrdcached.confd-r1 rrdcached
+ newinitd "${FILESDIR}"/rrdcached.init-r1 rrdcached
+ fi
+
+ find "${ED}" -name '*.la' -delete || die
+}
diff --git a/net-analyzer/rustscan/Manifest b/net-analyzer/rustscan/Manifest
new file mode 100644
index 000000000000..c4519b51d166
--- /dev/null
+++ b/net-analyzer/rustscan/Manifest
@@ -0,0 +1,271 @@
+DIST addr2line-0.22.0.crate 39156 BLAKE2B 3fbb55f6cacbb177d06359bcd39885247a9eeef96d95ffac0dfd1d45ed394dcd1e9e069c02c71a9ffca0b69e3a974e4d96bc3385470ee39c87d7a30ea7914303 SHA512 b334f51bd369348b4446805b4f624ec9b4cc8eefcc53ceb57b523ff55bf018d1dfe23259daf48d1878170ad4fcb44181d4738456eb5e35ede6932ff29686268e
+DIST adler-1.0.2.crate 12778 BLAKE2B a1dc17786adae945ac09d3525e609ed944e6465690787bbb831a1b9d53793cba1989793d0a5606d5d23ee20d36457923d451b1b3530c9ec7072a487aa3e55bbd SHA512 7ab190d31890fc05b0b55d8e2c6527a505e06793d5496be0b3831e0513412f9ba97f8148f6f68ed0770fa9cd980a5092d885e058becf1d5506b7c74b82674aa1
+DIST ahash-0.8.11.crate 43607 BLAKE2B 7dff8e41798ba25df8c4827ff414a182bb25da4825f0119a74916fe775db5445b87be8fc87f7c7f98d3b5053e1d47546f98873de1a942d36e5f308a3fb7dd620 SHA512 47d211b2422de0b381dfe32229faa346406eb7a22dff867dc04c22389609a8671ce3218e662000c49891a06c259d82e0ff4413740f007729d80e097a6c3f0d9d
+DIST aho-corasick-1.1.3.crate 183311 BLAKE2B 8dfcbba0b9d94e55eae739b16f5c6474baa43ee7854c5ca792f426a9f46fb0eece79cd493b804e51449181bcad338b96819fe977c02c9907654d713e26b9f830 SHA512 ba422a54688c4678fcf16e34fdf3ed06c333e6e3fc8b75af9272a215add494d43ebaef319021134b61327fd5d3572aec0dc655b714ffb3bc71ba3c265c9ebb69
+DIST anes-0.1.6.crate 23857 BLAKE2B 9ef464a964709b408c7d7846b9b1e54e52d6ae8f21f22ccfe509ef7197d4694f439084dbdb01fdf88829d181965ea9d1452253789a46fdf6d0520e3413c50d61 SHA512 f9dfaaca9ca327881ec30efaf24e208daae668b1e9d6963c8b0ca9f9fd13be777c793076a87980429f0dfa4db28ef5331ce6652a76da4d5a87485b23fc2fde29
+DIST ansi_term-0.12.1.crate 24838 BLAKE2B f636772c34e2d68cda7b8d3b2b86abda074585a62bd2654812ce92384244655a9197fa66e6939e19a674c0148ca605313d83de262bb18c2339a8a4eb4438a791 SHA512 b840e28b3e7700689a69a39659b1e066560078dd4a58326b91a028915819e7af883399ee53e920db68fd974c58d35bb1ddf8d427af5937d5f696f57c4376b671
+DIST anstream-0.6.18.crate 29681 BLAKE2B b6f72cda084b38f1e1cfe60de2562e8d62ebbc352176bdf668a2d6be09349bec46d291cd475e8af814ce66def44d95cb98c325761150130752284a82d8a84f21 SHA512 5149977d6f7b5e9cf6350f1ef130caa3ff46c7e78976358452a185ce196cdd77fee48a3a9838f434ae6ea9c15b19f6bfbab156edf819f81179d6774318f08963
+DIST anstyle-1.0.7.crate 15709 BLAKE2B 872e0ed09e7e94c6f6b812349e39f949aff4d7cbb87744ab26fe49f57a7d330e0f79447213374f7f862ea276aab2dd1077dc8df3f7c5f34079ef30c4d17eeeba SHA512 e20d49f7d148e03f7b127be7802e0b6b7a2b05720614d46c2ade5e440ce322b44ddd3a9239b897886faa03ed1cb30f947ee27d3811fa83dffba10b3975eba7ed
+DIST anstyle-parse-0.2.4.crate 23069 BLAKE2B e80bd81e351326a222238b3f559020a2430ac37293e61b6b6309b37bbb8bdb78ec11ca9c0fd270098af5e5ffb2f5660cfbfda949d20fd2efd336ed1c143215b2 SHA512 c1dac475df77d090a4d2041ba40ff418abe66e93e4ddda54653bf024fb4995e431166684343509a2337bc813fe06f362d3df8a1d7d05d177cec1a488bcb9942a
+DIST anstyle-query-1.1.0.crate 9832 BLAKE2B de106e289c874bca806214e275647415bdd02e2878f3a80e7d337cfbcdb755d8c182b2879371f00f5cad97cdf68224ac11ca41cc89ad7ab3929f854a9f9e76a6 SHA512 321ddfa7b090142116c96bc8c70d81cec3e816922249ae0f07389e2d1b62c8b40636675ccfdfd23d52e29c162ae7d929637dfc7d697dafb79e596d04eb8cd90b
+DIST anstyle-wincon-3.0.6.crate 12271 BLAKE2B d9f4d9d46fa93a1168ca340562681718be852ffa94e30c9ea208af53af9d6697ca84921837a325ddc36681caab2b866b7f574901c80b5c0d862dcb765b81b68b SHA512 59ec6f5a53bd68b6344d82e923eb8c45ddac481dd0d270a7b452dc5b0540ee1656705697c1508942ecc131e7c075248c85d8f4159f27d97ea94f22469ce2eeb5
+DIST anyhow-1.0.86.crate 46741 BLAKE2B 21b1f3acd1c1b659e6e9a53693178de67c806d7dbad30dedea0fb7078b2388baa196d1e7240a7dc88ed9dc93ee4c00bca8e608dad1b6bfb5bfa4f4c5ab51f0d3 SHA512 3853da32a2c53d73969bb29a1e622f3a6d5832d8888dc6bc8eedb76394b392f983aa3fcb1f542933e238841486106f0f38e9a2400c12c7699baba0ebe1d8193a
+DIST async-channel-1.9.0.crate 13664 BLAKE2B 52455c1c9f82bede902a96de0526ce4563184a9da303477110b556b4c877b563c21c32bfd9c6ded446ea0bad416af81a07e5df5a62e7c8f40c8183c1d09ac4f5 SHA512 cc624b87dbf34e4be4e219a82b96036396b92042025eeed2362d91f414ca17884365470fca5014b02659be44b77f20530ca33236dc427f0a2fcff2704c46c3dc
+DIST async-channel-2.3.1.crate 14576 BLAKE2B 09ea03c9758805c90be9aba222e1d74f3166ab492e533597647d1b4f08bf1dda79d73b21de791b9802e19c225cb94b7cb25550bba61488c7b61fa87f88eb29dd SHA512 94c999912bdf681dcb686292645bc8c340c2687bc9544f317e0123e672752c6b31e9d784e488e7d0bab79b5f207da8904a7f1fe140397513b47c292a6508a7e5
+DIST async-executor-1.12.0.crate 28529 BLAKE2B 8bc6ca73d4ed9fea222e0960a3a3dbd3b67eb2b85d0b61014d5ccce4454fbe9c499e9ed33a9749e82d4afb04b1fc38327371ec6c5372a321cc53e4f4f4cfdec6 SHA512 1d0c967f310e360ee156aad85af273cb8c89735e846f82ac56846063db23ca435cafa917a5b146c7bd26fc3111cfa320f2b43def3a00419b93c7d75dd230664c
+DIST async-global-executor-2.4.1.crate 11844 BLAKE2B 910e2472142201b970a20e6a65406b5e79d3fd96d88d03e43f6c2b868a6cbd3a5fa715cba3ebd427e5ea6e30dbf159bba162ea7f0718d8b5c9eda1a8e355aab4 SHA512 688fc105404feb0bcc841e9b853e5f270257cf2bdffc041bac7dd681a2990978a0f0d1e48e2eb574bfccd991d95632641e2407768d572c6352084b2808aca3b1
+DIST async-io-2.3.3.crate 49746 BLAKE2B 312d71f8670f720947ae5e78e6bd0251534d5a872164845f8606951ef88009e54684019831f55f27322e6e5d7d3f6f4a8157032fb6387ae6859be0d0dab74689 SHA512 5709064176812556a567cd558161a5e1a014b989e6835de5b77f387bcda8f148d03e5ac79a5dde56977bd3f2d38644593aa99ed28a4d646d3535332eae4b09c9
+DIST async-lock-3.4.0.crate 34446 BLAKE2B e113033a86101bd93543d287379ba354b4bd61ce87786719f05f8a990c177a885eb50a19eb71fcd5cafa01308cb45b7872be65cd7e975cde03b0555a691a4bd7 SHA512 83731067a3302d3266848b0f65ea6564dad60188472c80e78a7d4cd93804f830332aa01b404b60a8f91cc1c6c7170020ebdfe4b5bae14fef6d3bddcc5f1ed9a5
+DIST async-std-1.13.0.crate 221584 BLAKE2B c4b99fccd21dbfe600d0a96987d01c9c0ebd044c97e722e00492aceb461377ae88098b1e235f7fd9277ccb84cba2c5689c2f88d0372dc895f4fc63b0087d7656 SHA512 47d50f728b1d5f8d9510234833d0b2044ee6817e7a5920df58bffabb6fdd5b821c9645fc54303f8f270de06329f041385b11eec9ce3983eb5975870d99d5ca48
+DIST async-task-4.7.1.crate 38077 BLAKE2B 200f3c2eff92afeffb34404bd9b02af39226024d309137c3835342ab6631c09f14f47abc5d25d77e73cbd133274e731fc88e7e94d8456f690b0f1056bae8dd95 SHA512 8495436d0739a2ce83b372ae13ff24ca1487c92e032948d5830af19c3ba411d7cd004634fa10bc2f748f8a82de27c12cbfacaac92cd0012e1fae024eca9e78ca
+DIST async-trait-0.1.81.crate 28896 BLAKE2B 154e6b8da082193832bca7bbc097eb5ee25ed8365d1cb8dedf27f62fbffc710cfbfd0094a200a10399e942014083b74f521dae01cc4601e0f6b9d7364761fce0 SHA512 1fabbaa813ba320012c0bad54d27232eebca4d3fff1cc5ed771df9f90d9e9bfaca4f7b018358dc599fd30c5974d00b34ffc05ce6e9151a57ba572543bff83fd0
+DIST atomic-waker-1.1.2.crate 12422 BLAKE2B fc6632f3c9d719b1d24a1c8e05947d94028909d1c629b80576e176e567636dd4cca699c7e91cae2df63541da574146b3ce766374e93f0ee429bb5bc89a4d3cae SHA512 e07e58db7955791259d0ec00fc4d53318aefb4506e062914819c4220c6dc75fa11a7af0289b4653aa1f9041eb975a025635190de68b4800a0e91e33cdb0ba11c
+DIST autocfg-1.3.0.crate 16524 BLAKE2B 7d5a03853d6b4f0da08d8e139fb200da21e47fa7e50d1956270d0ff0cc496f660f8f800122c95eee9ba98d9210ab200c3010b782097483d12d6be4ac0df0e7c9 SHA512 a5570b955d57a7183ba148b335837dc5af24b202e80681027536d33fe2822509ba644fc70c29f018c893285ced2bf6774f44ca6c59f7c7e2226d5349cf7c3635
+DIST backtrace-0.3.73.crate 87617 BLAKE2B 585eebbb44671dfb3ff088092f62c7b25118ffc34e148b9b6ac67707923254ea43056861e2658c5fac7b9ed16fa56c30e7734e976fc3178f1fc03912d1d44c40 SHA512 dacedfd32cb91fe408e4f395441baf09c0a4b3bc4ba8f79d088359455cc903c93d24969567c7c5b2feb806433ffbb63a526d73f53caa4bee9c51961b61f831d9
+DIST base64-0.21.7.crate 82576 BLAKE2B 25cc8761c14220981ff4ed332058f6179948080cbfa2b225ec1d1602e4af14cd470c969e8b7049117e6fc51a5a24e06b1d27bab844486ecb76409d12e0581d5d SHA512 c6986d88dd9aa081d914f35b4174be4ba874848657ac4b5e63b9b45af765d973289c548ccb5a01584edfc0d8d79ff5be25b51365295d6e7a311bd7f0ae3c0cb9
+DIST bitflags-2.6.0.crate 45357 BLAKE2B 3a368bd2eb58c095b7b4a46680cc2d90a28e24b2e37c854bbf8647c861c4b8fb37eca827599673c5c7df763048149dd82123d1ede1f8a0e58a6bc23c8250f7e6 SHA512 f9bb3c48931ed7e7e05ec6d13305af5da6b6c18861ff307d7dc17c658f63972c87b70b0527287b3625c8592befc207cfe15550654995faf3862bb12a6d95bacf
+DIST blocking-1.6.1.crate 17788 BLAKE2B d07246809d8b80f1fdbdc678b2877f349b748f2dd0f8543e91fde4aec7aea0b45e145a44f07cdbf26934d20269af01844e1cf7d9dd8b9588d129da7f929d9c95 SHA512 1879bf31c18d5cc4653f794dd4109769ae32071564d3a0d63896162fe160bb5ed3d7d8de59ab34363f8192871122099bb8564ffa93de5a5b75ffd93c0d424ed6
+DIST bumpalo-3.16.0.crate 85677 BLAKE2B 08da17b757931d2910e0299df53eb62731aa8c4ebd8915859b81d1982b331e7455dfac977c754e500a35ee07ba8eff00a61d2f62be99744e2ddbba06c1268f49 SHA512 a51b75c36f6794db444cab20eeb24f42a319080ecb486a56d254d6f873f3d188b5ccba11db30c068bd0c52c4322d4a3f5f5195c81c94b0bc04387030418835b1
+DIST bytes-1.6.0.crate 60605 BLAKE2B 3e4cd094443969c6062b51917ad9df314b61ec9ddcb0336cf2621d8966c568d5b1fdbf16b11b5e2fab01b43ea76f6609f753eb5c2380a5e4aa8fb6e807a2ff5d SHA512 6507bc4274204d0a19b6a95c3284c52245c71cbf5f2dfb5cd372193d989e49869ec557c0c4e449e96ed4e3028c90606dfb0dcdc1d72bb234a36bc5f344c0a7a8
+DIST cast-0.3.0.crate 11452 BLAKE2B fe6edddd0589fa436cda32342d7beaabe4003afdbdf1d7c5db7e8748adf23b1b2cdcdd286235837c735d2143f29e692c152a5d56fb0458a54961e4dea303b2cb SHA512 4a3e19bc1e9e5ecc03aaef9bcdce01624ac0e6858c065fa1c41693db0ac172b9735ce872064561347cd9e79f00a274129011f6e4ccf9e61d960c8bb684b6d396
+DIST cc-1.0.106.crate 80289 BLAKE2B 10a7c9e25f9ea0fc09bcac63111d7655029da65e00c0d3f920b6b8c3748c298a253b023cae252e991815be041b4dadc656d0c4c31102623d9ecf4f2bb05eda1c SHA512 1ffe4b1f109bb889a68498f5b60f81865de7d1d528508f013c82463d12883684f7c0c623e7b3483b53e6b2beef9ffa649bc07271b28f09747b53c182f2d071a3
+DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b79b807cea836c89fc3926d693458893baca2882448d3d44e3f64e06141f6d916b748daa10b8cc1ae16d1b SHA512 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff
+DIST ciborium-0.2.2.crate 35611 BLAKE2B 7bb34ed2b16f55af2d762bbc83263bba901a0f05bc7677a370460549297839c4d6e913622e8a6cb3a5c2447b94b0bd17b7d5007228ea8881193d08e5b8deb072 SHA512 8d1af6a09f116e42f0098d7d0e34dd906dc3e718b257ff1a1fde655a235d40619f61f18917c0cf35c55de9160c255a9795d5e7525989037e3512807cc6a900b1
+DIST ciborium-io-0.2.2.crate 6697 BLAKE2B 07636da78f59859515af0075cb36d9ca969113ac327ff727953c73b64b60ddae22e5b1b65d8be5aa401f8b13d34074cbc8b47f23abd7a13d551f0b1c78f23575 SHA512 641b8592f9699d5e6c607815c8e6dfc82b2bd01897015e04ef8853420a7d90c2ec5c1140e39eb7623ce05587bea52ef63659eae76baee5b6592d2ac5298ce106
+DIST ciborium-ll-0.2.2.crate 14695 BLAKE2B 3c9ab0b338070359f9565706a504e4f6c65560072380af6e0a57068ae6716773d40e75dee84ded5e1d32f93445a07a0965759bedace58291b68b94479fb16488 SHA512 2f7ef6ad8bf5a862e8b9daa64bc6d8184c87a22c264b10dbb35c00c9effcd5712f354b4ca6c2eb8e6795d4b99d7cb88fa2acf01f3ad6fb28caf81708a500549a
+DIST cidr-0.2.3.crate 33908 BLAKE2B 26c89a302e3760534cef4834e799f18e49245a81b73ed7e5811c363c7b9c93905a5869b9c945cd2537a67e43ecaf73e391304c078955a1651cdf3c907651b196 SHA512 7d726cb30a303e2651be5f44b0e2081e60fb38d810e0469b1bb8b099eab20b44ea86d480b85eb0cfc1c97da5b7e3f81fa6edf42c658f236aa3dc842c8880ad40
+DIST cidr-utils-0.6.1.crate 7727 BLAKE2B b09203a375343bb907d513815fc77e5c9517ddefa6c8c81c895f15e6852ac8cc704b2829f22c7f8ca319d8f178b6f1b991855297d22e389130a40ea5f5ff689f SHA512 717681468e316f36b26814e874332ed2f65a3614c7cf3df947e9462732255d07ac055c40c4443a827853f0ff0a0866d4485edede305b38b2192d87c51e4149b4
+DIST clap-4.5.13.crate 56267 BLAKE2B 233f2fb4405ee2ff669220214c13b6c94858dbc375c8bf7eb83d7488690d74ebd8e1514679e02d1354b493b6e37fd7ed4b2ae32065d115a7287014aece90c2af SHA512 dd1a42ad3bf39463966c2ef76f3ec2dc5a847160bcd73de1718bd6706790f1ace183e3c9e6ee8d06f6ddea4b9bf30c884fa97d36b44f30dac26a85a52d9a0025
+DIST clap_builder-4.5.13.crate 164093 BLAKE2B f938635782ba9c1a675bc15a73a36ee7f1cbee501dd10be6f267364fde125c75474e5abe226e0eaf0c9fb224887c65bbc1be4641ca093282d3042f9980f4ab94 SHA512 ab7a29b29a15d22701550fc590ca6ec256edf03828e2b9a87072734a8f66b6e5a1843ac2ee7856c62472960af4e8f40840f840adb78ce5afca918f333e0f623f
+DIST clap_derive-4.5.13.crate 30132 BLAKE2B d5fcd2c5a213817165c61ba2071fc6424ce822e4881686556b8379fc71188f60d8c6712f6f4a8e5c8b125b58d7454aa9846214caf324fbc93300abba240bea17 SHA512 2dae32bffd91de9311d94e2be0d990074cb2e2edc832f422cd5e7c5177f5daafc0c335e74f865024c77cae5fff631ddaba58028fcfc24b203467478fd473bbf5
+DIST clap_lex-0.7.1.crate 12766 BLAKE2B e0e3a1a4a65bf9df3c21753f9298a7461046e6b34c7a8d26521efc551ef3511a7d202f25ebdddf285ff68c4073364f48cf739ff0bda32f41d4fd0c87c4cf02fb SHA512 4cdede5eb9fa527567e9f3f94fd8fe7e1022d9e9236e78d30b3068befbaadedd778b5464f800e74bf187c44af9df582365f4d41a0113f8ab0fe9abc936171fc2
+DIST colorchoice-1.0.1.crate 7895 BLAKE2B f1c841e74f01f33fa83cf41c5f0a1286ca3899239d9a188a838550abde507af374a4fe3e85934d10d28bd5eae2c7fa1f662307bd46d5dd4daa52249cb64ebb5b SHA512 3d216ba46cfcca5c52a56884ed09fe7d6d350ccb44144a60c75006582f7f9a28df21d44375a8cb304c721b9de615875675b3a03c485eb209b2a12d745fa609cd
+DIST colored-3.0.0.crate 34497 BLAKE2B 6477cfaf974399a2823a714b766800766245c8965abc99f142c4ab72effeb665cbe408e9f34e28ca54a0b1e82859b8712027ec0cf88b98d2c536f0878e7ef6ea SHA512 2e3a0b7625cebe491a884a4bd1d8c4b4355235cf6e1e940768f92968313e09233d2f9a13a623cd44542f7f2894d4a7d64759083e005f22967d0a4991e0491396
+DIST colorful-0.3.2.crate 21802 BLAKE2B 0da07455b341483c5c43372c1c07b40716c9da9a574a9af1b6b0fe5c26139babd40cde9113bfc665c290e72d34f4a0a16bc80558b891099e2a67b17d0821566d SHA512 849be07d8a37cdd361059b3b71f8e7d0717aebea5d72dcfed0a8cdda42c5d01473b2c7192897c2dc527ee70e5fd554865e2ed23a135f5efd68184be0f4aeb385
+DIST concurrent-queue-2.5.0.crate 22654 BLAKE2B b490e76804e45d6a7af6bb4ec074fb370d9ec7cd67c7ecfb55d5ed53b9b437c174e678add915303559e902ac81c8751dccb2c5ef0543d5961713372fd2b08d3c SHA512 235704f9161dfac60d2a6d2cf96425e39c097dcde2f005187c1f044704eec66d8303d59352cd414a81a3ed0eed60421054b0070a9b8f69065a79a2519e913e5a
+DIST criterion-0.5.1.crate 110088 BLAKE2B b99018b6a6f97fe47d90a2135e3d483ee624d43088d7881bafb2c35ba385629f1a4353110bf190c04903abc4ee99ad1735bc9c5afc6c2854a1aa9221fd714617 SHA512 6a1a32437bdb95f8472bafb5b04bb5999a6ff6fee4ca5965028ec53b4867d01b529241d01809a003722ec7d5710c323274b6f3b50ca0935919a9dee693f4d3b0
+DIST criterion-plot-0.5.0.crate 22706 BLAKE2B 28a50375f2871ce6f168aafabff46f4368bf55cac379c67a2b4396403259372759dba3355786e695b566b1cddee9091a469755a04c06ee949f00aee8e9a28699 SHA512 971e96dcc64a5afa7488f1a99475f0f5639c0ef63f9eeebcada351868697cbff397e99827cc07c0a52e7d7d1a87856fe1fc48c22075776b3bc9c94af62d79f14
+DIST crossbeam-deque-0.8.5.crate 21726 BLAKE2B d97b35e8e8858deaa7fa9a836e836d02914aad29e5c34ab121f52ed65e95213cb2574df82273277365889ea771f04eb40bb2439347c259979f1dd6d5e9853bcf SHA512 0f0c9745763ab156136227cf1415de514952a3f8282ffe413cc249f9f4b345b029940e6a6c87b3be8331a7c783655a35b89c7a2547360ea5ae10aa64ba7ae864
+DIST crossbeam-epoch-0.9.18.crate 46875 BLAKE2B 200c256cad6011a3a14c4664bea6b150fce72d561c4fffc387fa561b08c0480e8756bf51c14874c5fb19f427424547f72d2cd7dd6f56fb8b6666a85f8d52bfd1 SHA512 0a8a199b9d77f4e28e91fe0a0cbff7e0dec58cac283631fd972477fa912d2f6ddfddaed2c695e4978b01cb5440b702822af6333e7c3dfbcb9a2c2086999516b2
+DIST crossbeam-utils-0.8.20.crate 42487 BLAKE2B b50da06721cfbfff07825574feada8a28d3814edb218434288683eec31bddabe2ffbf7e5ef1281ee14a8a77c56db3b66f3c5ceabaea9c72317c1bd2cecda0c26 SHA512 7175eadf9fa7c526fa11ff87e40ff203f0e7a4bcec15cb972f924f3c7ff7cc20b6e2e8dbbc1ede142a0207cd2baa4f446deb25d825d28a54cbd25c263701bfaa
+DIST crunchy-0.2.2.crate 2995 BLAKE2B 74ddf8c5e0deb2ceab65c20a2743e1230739ac6aa3af60c9e867a7852270697a1278b7dee00df8949fc4268f9756a4a098df1211ab3b3e31a122652c3ba0a6fb SHA512 36dc0aebc41a3aac5f1b178a7e61b65bcd9bb5c8539b2024f79428200f7c62daa7098af55c6ab0765febd2f8969bd6c0ac8096f73cdc0958e5c4e4eb6a4f7025
+DIST data-encoding-2.6.0.crate 20769 BLAKE2B 9d5713e63f6f6a4d6e5324fb0be9308a231ccefa20d69cda9e19609a2250e2cd72030ec28309068f71c932327a3ef680b749125658e27d35273354c3465f9931 SHA512 a685c7bbd251a5738b27ac3ac8121a0db049221510c99e0ada6f245ed7499d04ec29d725ad01c688ad283e3d2d5aae0751685c804f6d95cae84e63a160d04c9c
+DIST dirs-6.0.0.crate 14190 BLAKE2B e214cf0c4669fa149d1e3eda1f6ba5b10a4a4b7d13a9050e63c13a4b605aae5d545bb711fb659312dabad26028f190853764acf74c1f6f31014e57c0a53a2281 SHA512 f29f0f932aa627bada67db5bd9d2661b5fb3b18d07030f5d88da28de7049eb872a2f35756cf29c094aacbc2429a3a333b54fb94d70e470288d3ca091cf6d4aa8
+DIST dirs-sys-0.5.0.crate 10157 BLAKE2B 0808bd5c7bfaceef00d62476ff459a8f3ab19fdd4d3a860b04698e51c390285ab8f01690fdec7faf01ccee5734b28c44e50a4358f30de1193a0d54ae5c6622c3 SHA512 c2ca362ad04e92c929e2cea4db359de689e512b7c76246c408f40d10f1d47c5dbbd49238e67edc0a251bd642ee292cae88992e5755035c632baec36cd77c10b2
+DIST displaydoc-0.2.5.crate 24219 BLAKE2B ba3396c93d27a99a92ff4a0f01a8d192b419bad25e48d9427b76260ebf2f9982291d77f2eb24d239c0b1fbb097e866a20bc46dc1879fdfc6637ea49928444a92 SHA512 5ca35fa59f263162389c1180331e9df607d9374bcb056cb04bc46c98e4d87277162ddb2335ffa8a8c5f69218abc3eabccdcaa71c21b8dd9081cc4146f266b948
+DIST either-1.13.0.crate 19169 BLAKE2B d6223c76421babf163a694aa513fe07adcf4cea329872c02f5af5956e89b2c353a899f5708e5a2924e5a92d871ba748490350ba30c17dcd78dd4379e229f6e11 SHA512 72e803079bae621d282136ab1e423ba71415bf12038b6f386f294cae68a67ad9ff16e4fdf4344eb3fee4418e853f9cac344c248f6befa3006d1c954668b36322
+DIST enum-as-inner-0.6.0.crate 12079 BLAKE2B fea251b187470b6204f686eede8d9d2fc3869a396d50051a45c72e3628b4d893a2393760afdbe14676cf505b1892ff67846226ffdc4a23f59a18b2cda1a2629c SHA512 c06e0bbc43068161a07a8b34bf1382311273cfc5390f3fb4c90b758d47cf49baf648f6bb277770a983942f7d2effd242bf1f6eaa4eab77e7f6f4fe9ef6ce188b
+DIST env_filter-0.1.0.crate 11553 BLAKE2B 8e358517c0aeda431239f14610925bcfd6be3bd346c7628e1818cdbaa1796bfdf2454db99cd06bc6ffdca95e7ff47c0a621d1f4c3bb50ecd1641f9d19efe4b4d SHA512 a0ab51c2b905466d23c75fd77b430dff2956556b7687ea434050c78a497cbe63018c5730be950724c0ca6aefe29bbc379ac01c8a7cd2779a69c5a03e92a21bf1
+DIST env_logger-0.11.6.crate 31105 BLAKE2B 536f7b02bc6bd4f186061d55d2c5fb0d57aa91adc73d0c2521e0136573283147d5d336228fa7b64306daec9f488a2a83c83b96f06d648f45c3b52d04699b15d9 SHA512 1ec41e4c4eee4ea6bea38d40e739b1f324ef236fc786553fd77c6bacf6303f13d35c1626d3408a18346d42ebf5c896869deba133ef34b8cccf3729957c72de0e
+DIST equivalent-1.0.1.crate 6615 BLAKE2B 302d78069d9df05e78b53f0488a9e4eb98fa2bc1e21893dc8a0acf2234347ba7c4df4b9d6b380ae77d8ffb1074b9c790460fe2dae47318aa1c4fe4208244540a SHA512 b2bc60e804c1b02c461dcefcfd60fc37145af710d183ebe65f9a4d63f2b2072d23193f98dc550a9213c7fdc6a2a837af23b04a89294ebbb681a4aaf5d5031140
+DIST errno-0.3.9.crate 10690 BLAKE2B 8deb19cf0c830ff2adebb733ab961558cb4463f256604f9c76d5c5952f34a79b70dce47e28f68f459977ef34d4821ab5d0f7e79a7a110693700f80b49ba56651 SHA512 777fbac5730d420d58275ef63b7579997d8e6c72106d483ee1e3b1f1ce3977f1f66c56870a05acaa4cfacacb820eaf963e9c763748759cff3668fa2e6f89f04a
+DIST event-listener-2.5.3.crate 15392 BLAKE2B c56ed5eafa64014141e869dcf952e86f755eb35ed1722f8139260cb502ba226351ed1bea301618e94c9ca7f3309747057eb5f7d7986cfcdb7f6b79d13d52b439 SHA512 ddd67c1139ffe2aba95d763b73db0e2a9985dd2e57cf8f72030047d53d46d833df4b4192730cf0af4e060ce52e4f2df23aab6509abb94a6cd02e0d8cc3559d22
+DIST event-listener-5.3.1.crate 42576 BLAKE2B dfd8020527c06adae338e9bcf19076e70ae745facd7b49e8d6604e8508436b70b48fb1f4479214998f288055447186d4ef4969630af90e301103bc5faf6492e5 SHA512 98b7219a3959d6225ee5fb68e8b9d284ab03334d895f52a71f673e59cabab1d06a0abb9eab905e8d38d5f9589725c7c598355ae3c909044a23bc5830b761f5c0
+DIST event-listener-strategy-0.5.2.crate 10697 BLAKE2B f49faa8a2cda551b65e29b9dc98e4e55dabff7f2b330097bf5f6a5a5927804a99cb699d1f693db9c7cbd92ecb44f6c1b51be2b86810d3e3fbfd5eebcfad1a241 SHA512 7b3759d07c7936b53351172e38623658cbe642f079426c99e7f9187ba1d7f8cbbe7530c056cc760909cda4e70281a50577caa41426164b4c8d6c3f4cbddb2626
+DIST fastrand-2.1.0.crate 14907 BLAKE2B f96c74c1da31bae35e5ae0a557b3cdf120099cd7f31475ff6ce0eddfd8d30baeb025cd17b661f452cc4d3fedde763621301545e28efa030b3be21d1d9ba8d0d9 SHA512 ce776a3d0fbc108017c93ce9bff7c9e7e65590acb149dcd55c2f349d2077ffdf5ac6427753732f60cd7acf141ef6f89359b2e7d9368016be53b24e8703e71104
+DIST form_urlencoded-1.2.1.crate 8969 BLAKE2B 383d3a197b73fba199220b7708e16d770591ac16725faf4efc1a8c230c569c381870d4a11b8fba623e761e68f9d318630b22101d461e67dd26c67e13a73358a1 SHA512 c65104e2dc08fad572bb31f981700fd43dd29fcff42b01c7ccdbd3d4c23dec12360aed3f1b5fc4766fee386d418a65349b2941b8735f788cb0d35d631a6a8dd1
+DIST futures-0.3.30.crate 53828 BLAKE2B 4e595639500f7147ceb994359ef1656ed096ea679409a5721c05ff84ba439fe4e82563a7cf8dca9aed4cd16b03e89ba1385b0a34feed9d4923871225e131b91e SHA512 98fc67bf1047609c8bb0763c00ab9cb39b6a6d0cb7d993bce4966ddc2492a6578b789e98095981b207ddd73ac4b1dfcd5224b352a0e970eed347537c6fbea43e
+DIST futures-channel-0.3.30.crate 31736 BLAKE2B 57461dbb723fd53daa07b2fe6164125508cc3901e0138d2a60da5c814ade415a3611baa45c71487f1853812282ef358c132785ff40c630408e8544d57eee3483 SHA512 689531748821529c528772a6dd0f27362078ff5803d2e0b431ee5a0ecf8787b5a15262d65d52f48486ded46b88f7a9c477ad95cc2c5a3e8f5f9b9f53f367832c
+DIST futures-core-0.3.30.crate 14071 BLAKE2B 76a9fa5aedd0d4ae8dd9db9639839b6b342125759c1b9f9bbf58aacb4ecca316ff1f24ff8f3c15f559ffbf974e4c2cd02a5418cb4c4d7612dac8449c8234eeb8 SHA512 3c7259ddacbe02e47a84178b75e5f13523bd0c8f8bc0b2375f7ecca60b7075695ee0a5cc4e1c1de26665cf250271173be803661e2f2f53e2a3b96380a8efe7c4
+DIST futures-executor-0.3.30.crate 17744 BLAKE2B 927abec40eab31251409149179baa95a8d025f9cdb848afa83f95439c4768abbf6da8e2163291a086ea0b83b0b650d1e19cb8e15f70369b70efdc70eb3121f6b SHA512 fa65c038e5eeee695b2673cd65cf7529713bef47da373290595b554bc287267ee5cd015ddeda5a22169cc8828717987364584a91a69685cdbfc0fc779abd764f
+DIST futures-io-0.3.30.crate 8910 BLAKE2B c9af4290f45a9fd0839e107fbdfa4abff4f9077ff45b61054670419076f1c4508d7d560d4d86f8cd7ce146e436e531b9f5e0abfed2c4f2406c57be209cfdd498 SHA512 077acf5eab1101917b5b4b4b83347d30d533110d9a34c2de6db1411ffae0f0530f457033c5a5c14249119e89375c9f12127790b46e486dcd003a12a6fad48bc2
+DIST futures-lite-2.3.0.crate 39181 BLAKE2B 0e4c510d7b640efc6ca8e8b00f4cd51b05b727ce5d25d76e317fd5aec2f515d3b1dac57e4058c323fdd0c5d125ebc4073a9ab1f2ee21aee0e5aa0f9bf2e049ac SHA512 057de40b58d5ae06104c480a0e20a0ee4a962a93af615b04a9a34cd08135359c1f49f1b61577f15277fa73e9b7a93d2a659d3203b490ca4295b88fde2316bc7f
+DIST futures-macro-0.3.30.crate 11278 BLAKE2B 6311039db4bd31242e4f45bb7c581bec28eec9da850c47ffd9235c4baef5e5f1c72155f49573b2dc942a9cf246949b79c7d35200d04f91a13b0205cbd33d96c0 SHA512 220b5cc61c744617479d7e8ef9888785a17b9bc26c517c9c4445a39e8be21f111f77e53bfb3d143df18dfde23feccee17e349a84b897eb4d86f94d7ae4f714cc
+DIST futures-sink-0.3.30.crate 7852 BLAKE2B dc768e4ec4c9f9dfb22a20c1c977401d859072b9222e6f77978332f495cbd0f764b175a679c9d7c77028d7b56cda5e2d86188ee979c7f323187defa6a0485ce3 SHA512 1c198da8f4118d9a9ab2b597e3f7b4e1ac7094dfa547bb81f3c4148c45216ef55b309255849174a517ebddba6c874283425f1df6e56e2ba5150af091bacf46a3
+DIST futures-task-0.3.30.crate 11126 BLAKE2B c2ded9b9b709fc10c44cfeaa72d4e7477e43331b14f3e72433b25126fef93f2812a09b4fdc3c246b7379d41d3764ba17fa87c3e9c131095864cbb5f54771a204 SHA512 c190fa0acf7ff15fa67fe172911cfae803b2a8c08168570a5518a40767d08134f147259a413ab25c45cac5dbf2f601a9753c77ab0eb2c180cad2fe48cfe3867d
+DIST futures-util-0.3.30.crate 159977 BLAKE2B 9012edf76336952dab02cb61db48dfc74b6cfc17c137c36372709e8d575b306a4d7c4da89328067c9482a645aceb7b44ef57deb21a0c25964a5515e738a039d0 SHA512 7faae5aa35641d858d0f5430e4a69acd4ba9037852ad73c5a890bffeed411d28820883e18bad4ca8f7b0a765f9f4c5dbeaf5d0cfaaf90c2c69846434ae091951
+DIST gcd-2.3.0.crate 8934 BLAKE2B 7abecae633692861373a962262f8047893508706d8d7e7b9f7c1454b7c17cdfea9f039e52811d56e21de25a593d4a9607ccee9725578fa0c6ae22c4604904d97 SHA512 703bbaeb5ca76efb6f3fa3329566df34924850a3aa21e6cc38fa6f99e2cffcb12e1214d7f23cf5341de9d0edc3528504226a175385308d5a04cf765e98399613
+DIST getrandom-0.2.15.crate 37163 BLAKE2B 7d534e799a4711d01c6553b8c9422dbf01e384a850fb0f7cd76e444628f2b96d28d0f5e8dae042f8081a2bf9340f57c558be50a6f22ed5fa6b0301a15898fb35 SHA512 04789a53d3f4a84862e1e8b2113641af67e471b468de1222470d5e6cef0015232463a2cf3c3518dc2a533b3983b175a7c8922da00665bcf71c1e4e279b67e6fb
+DIST getrandom-0.3.1.crate 42449 BLAKE2B dd70e0abfd27a7c363ce1b91746ef7568edf1d176d5575201623b6403f3a503b5d8503d10ba01d055f9de61cd8092729d34ac8f0f4f9fc6ad79b9fce926720d1 SHA512 431682efdc2ba82114e173925b99e1059d4915ebec6b0432d4a7683e56ccff7b4b45b9ee9cf5d0ee53067d5ae1ba733524c18577379c8414c385189718fbbcfe
+DIST gimli-0.29.0.crate 275756 BLAKE2B 092e5bce9503a337451f63706e7ae7d12a4228db6a43d2c14fa6af74640a790ec70ea2055ac84db3919d19612ee6ee0453f64981390667abec97637679ff06d3 SHA512 a6b591d48dbe93a1fa6b814759a5cb61fba0838288840667aaecf01346a3ab862fbfe1cab51b057a425ba9a0ce35c8421b28cd5195464be881f38905062f1446
+DIST gloo-timers-0.3.0.crate 5530 BLAKE2B 5036f519e6b7e91b140fa3b61cb1cd2b58034fa11b6063549f050c3189767bce516e178e74710b0f08f1e0d0d59379cc0fabca30ff2ee60d5bd565750f0b2c2a SHA512 35b87a0fcdca230157c05cbe0c781c60128869c49c32d6aea90653e22dea9b996be1678181d999059dc300bbac4e8c046c51418b1c2edb1638a118742db4b2b1
+DIST half-2.4.1.crate 50892 BLAKE2B c275a9ec70d2fc0c50cb63421399202d31252b0dbf463798ed0a12a17493817c66b8933811d483b348f8f945cb05aab7cc2a4d952bd16009c3da4860202e28dc SHA512 0bce235583ca128723186e1fb50f636b519bf826c942f02c5b969db4117baa87c644665c541991c16d1f1dd97c7233c017a513d45075fc72c5d99ccc7c1ac193
+DIST hashbrown-0.12.3.crate 102968 BLAKE2B 492072f27eaec45abd2c5d7405c614c0c6a8221425e901bb6174bfa1688ee524408a618650126d6c683b7285b9bf0a21dcdbff7347e4d8f97bf7111defa1b7e5 SHA512 b3700fcd659a21a6b9b3777c18b37a83bf25542b4e8f2b963779a122f5d22e1742c064cfc03e649583e7dd5c6e90ca8407f8c51a0e8755f6a108682853022f76
+DIST hashbrown-0.13.2.crate 105265 BLAKE2B e9ff7e6e753166ab3051a834df6f2da81a19ac6997ba269ab13a65e0abb9ce00839311785aefb451553284ad5ef3a0cda925dc2bc188d2a138a78578e530969c SHA512 21dae7a283326d21e16bb32ae0dd1481c4936939a32a06478a3351c2dec97941be532437b808e99ac40e7900a75433fe0efbd852158659a682461245e19d0e70
+DIST hashbrown-0.15.0.crate 136460 BLAKE2B a2bc34b9d2eb7ca52dad7bc59e9bbb38ff9f79925495e1645eda7c0587e86e0a3d0675f8c7f159c5a83dfb2832fee9788a7ba6914168b51c26f762e140bd05b2 SHA512 497310e0f8e256e931ae0e752f66eb3811d5d3b9254dacfe2a1227e8532dc23eac8cce7a3f0758fbe0e0fd8f08b7bb18b5f118dbbf4fdf575a31666283583111
+DIST heck-0.4.1.crate 11567 BLAKE2B 520aeea740cfa30b0cca12f73594ffa655f32959673b1c9caaca1ea0162e455546ae3033881394c0ba0516bcd5c9a997da02162e1585522d665813b9096eabd9 SHA512 8c80e959d2f10a2893f9a71994720f90747742bb5b61fc0a539eed3ea5679b140c48fd7f7690d7122cd6af5f7f20a19d412e3569fe741c6d31f6b2ce1e0b80e8
+DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76
+DIST hermit-abi-0.3.9.crate 16165 BLAKE2B b779f005bd4cb9ba9abe401a0a559a5bbcc44726ac37f53e9c8d1f7218389ec8b48f74d14666261bc4fba4fbe5558cfefae873c49a2312c8c8bd4010b8344064 SHA512 f3a5a51d834a6ad55480b53f7e9cdc73a512ab0cc6c246a6ab1e8bf8f9851a0c8a55982f5bba6cb57b5a03b54870e73b0bab0a79195764c308318394a3ea8045
+DIST hermit-abi-0.4.0.crate 16310 BLAKE2B efcd1dee7bcd6d185cbe0051c7bc7e2776857ffcfd2adc3fb101febd7c1bd75994b7e4a4a0a59c5b4628cc2521b4c1f043e98a0c44935d0180e7499667690ab8 SHA512 b1a21f6d54598185a8e8c29565ffc2e1bc5da57cf1c9d87ba643d23d7c23d53e8ad36ee2f5c1ec8a504334b6f98b0f17a832ff37877c7b7f9238b196f4034e6f
+DIST hickory-proto-0.24.3.crate 383451 BLAKE2B 3cf3f47a789598de5d291ea577007d83be952e5e5b2f0082c2951630a78bb99923682f2fbe8c663813cd5b1061414865ce9c52253d4532a41e0a01f551e7afe2 SHA512 928ff2629785f3d1433adfeb356b355b812b0adfd9690cc3ae0c945a9a2ddf5d146bd8ceb2ef595e977e9104ff90c816c5b78d5a286413b179dec31eab556f7d
+DIST hickory-resolver-0.24.3.crate 89591 BLAKE2B db4c2abfb1c787e970ef4fc2e29e37166f11a5075b183921aa467e429d4f550af9812998d90114443640670a330746e9d8d0b58553d6566cee46d0f305476c0f SHA512 00fd9ec6f60b8086fe40e092344a864789f8b248190480cf76c9b4efc18f09d65da830fcdb590a8f8c1fc28550af4965ae367cb14cfb1824248127660f785c2c
+DIST hostname-0.3.1.crate 9272 BLAKE2B cafcae4bbfadd51d058e3daba3e63d897bc3418723d8e843fd941d9663dbc89dba131c77d14ce7a5da552650ea3c40c4e418c88d465f1bab2fa20c178596852d SHA512 a90407996353c9bcf5b76be03713e3a0455ac80a50892e77a508744cf436a938ddb87ef97d8cc91ec7dc4353cfb7bca0fd28c90a72f8a9ecd4f29220d174edf2
+DIST humantime-2.1.0.crate 16749 BLAKE2B e2ae8325b037fb175b9200cc5c1944ce579056c6662cce307beb6701894552362a25e371aad65f8fb9384945b48815ca74bb8b544a32e0a5845b7edd30b918c9 SHA512 3bf29ddd1391d82897c22baa0ff3ed58ef6d6959859f1f8ed54d324caba5b6fb4422e56790511ce82f902cd11467f93c8ab7fc7b0e0bdb719308a4d0a446ae0c
+DIST icu_collections-1.5.0.crate 82762 BLAKE2B ab89336790ceafe62dd72f0aaef16a6eb47fa5e41424ed990e6c059ad431cdb3dcea943436aed0bf9c6eabd7aba12d255a2233fbbcf9cf5f666ef1dfd5b79a16 SHA512 127f1c91101ba69405b10a2590579606df766166fcf1fe6aa9a74c4900296425cba5c47a391a53a01b02026af5581f068fce4a7a400179809f7ed9922b94c0db
+DIST icu_locid-1.5.0.crate 55131 BLAKE2B cde2b988f0af200b8e7851a66b8ae08881670ad6ff79c5caf5135a04c200e5ecd0acf27d8856fb0fce46d502527d506095f469c28f325b9b9d21d2a3657149be SHA512 4b85f0e7cc73166a542b2e502b3ffae1f30d2a9609ab83acf98e90b0edb37fa8ae4592f61ecf48a0ae0779fdd376abeff59e1d5cb97475012eda99ce2a97da57
+DIST icu_locid_transform-1.5.0.crate 29094 BLAKE2B c7bb5c5ed273a6a97279d4599f612dccdd796f3ae717411aa5b21949721989986d8b766041b9c7e49a91cdd42a48fc965effb8d7fb6d33554926d203a6535953 SHA512 1779078e2ef9859bee2bfd5414ad7e4b0f0a40e6813f4ccf8de2bbe8c764fac7f99ef001cce22332a8b3840af22e9c7fb7cc0341cf8ba61303794ebe87071e63
+DIST icu_locid_transform_data-1.5.0.crate 44727 BLAKE2B 7fc5408510886bd7b7d796850a542f2c1d759d2c67492b695245d46b34930e3918513cae2699963f603d2bd02484960b05afd58cefb6c3152ec201880366d44a SHA512 1c00fb962eb4b8c759b1120313bb890f4388d579890d7450b798d6266a7d6adcbbebc8a8dad2f267668ca6f1c059d0bd2209eafbe2a72f4558c85258eba57405
+DIST icu_normalizer-1.5.0.crate 53113 BLAKE2B ccd58f24469da1f237ed9a349f0b3bdbb49b8f5b1995d6254c6e3eab53a71208ff4a0b09bdc68082cdbd288df66499efb19555f41d12a19205d724af22fb504c SHA512 22612b86a24e3ea222469392763ae9d40dcbb37191dd8b9fa1c64332463a4299a53275a1cd3deb7e0f057d137f4312d990762f9925d0ceafbc8839d67c425a13
+DIST icu_normalizer_data-1.5.0.crate 50561 BLAKE2B c7b8c5751c6d6df03b23d63855335ef67b34a0b13b15f1f8a8986943b5131874f5205155889e12253692b39918256fe2cfed70dfe2087011683ab9165a5fd786 SHA512 222fbb819791fb4ec7889e45ed3032ac8d4753e2e9cdce9d0b3f79128baca5ce64157a8a58ecdf39cfddb6c2395001e3cc8828ed51803e85cae133c247cb338f
+DIST icu_properties-1.5.1.crate 64479 BLAKE2B be7d3a1663664095f4af654723ebc74f385a6423fbd3acad325ba0d6188dce9d9321eb323c1b1d8e6d75fc9aaef3d873b609d7049525d2402456c6331bcbf486 SHA512 7e347c0a02a41a3add950290bee90a339091a713546d4369c2995022e64f127f54204b0d46cbb88f396b3bccbd4cf12720a93d8551b73926f78fd5ec01829cac
+DIST icu_properties_data-1.5.0.crate 227993 BLAKE2B 3b3141507077dfdeb4f89316e63e1a651fc5570cda58c6c2d566130858ff67f900c3b151113e6303962fedf1d6b6d617601b21a08c4c0c98e6bf135aace6f299 SHA512 c651d0a50c229acafa648ce234a73bc1d0a85a8bf2369fdadaa62badc741c35e8a7d5392fb1bdb7b720fe2e0f883d1309c78de4ba913691969e5367a4e8bafac
+DIST icu_provider-1.5.0.crate 52722 BLAKE2B b1e53ac677e2db5870df0a91de405ebbc635c3f7931960f3bd744b57350c7536116f3861d4177faed2145b79c1c957d79815fadc2dc85faa656a1f0bb338a16d SHA512 6c11d89c7d2b788a44757f02b0e298b558ebe174fe917664401d91109cdc7bd1aba5526b3cdcee1f066018de1b775bc9dfc294bdfb40476c53d552bd6f29d6a1
+DIST icu_provider_macros-1.5.0.crate 6436 BLAKE2B 7405924dca41db72ce422437434a4affece69f888e5c18d2a92f761a8d83b180f40c8de9a34ec15d0e107b63b2fe0502cebd0a0ae6f98d9d6ee37d197e754703 SHA512 a0dd58d731556a010428fe4aebbc9dbcd626b46d380cf28ba5236ec8824045a20f6f2ec986e0c1e791bc8bc2b692a10306f448279f079b4c37237e4a3c3cef63
+DIST idna-0.5.0.crate 271940 BLAKE2B 0b781c2e9bf717af429efb53bdfd18244f2b8c58e5111c3bd3bee50c8a01cc747513fe20db75c38b6b771d5845647bf6c1849ae6667766c9623e018c1f399a9b SHA512 bee6cfbfc99859b113aa8c7b487429a836dabc4e317980f132d28ff8333336f33480bf9f8b186a07115eff33024cd855bc85d346fce85e17c4132e886769c54c
+DIST idna-1.0.3.crate 142515 BLAKE2B 6835a64772e5d301c2456a94f8f5f40ebe6828aaeb1d48e3fbe015917dc3ef95ac7cfd0e1f1763e23950482f4b46ef7987928c8dfddebab63947d5a29fb490ac SHA512 e75ab18297878df11d82bf3623b005a3dbf7a6fa38c8f78830c219adc7d6f4ac07dce24a5f1186de69035ec316421319e487396cfacb053674137342d72a4126
+DIST idna_adapter-1.2.0.crate 8206 BLAKE2B 5e8d7dbfea699584542cde53039df9d8c3dd408efa2534f11fce7086f679872c45d9905d6b2cfe523148eda3bb0cd4820a7b14317f91725f3d9cdb475aafbd57 SHA512 1d8b54c19878645749a1bae768dacf353b07d266f2cb3bfa1071a7afb56ca68f534dc1d54cae277b777bc97e5986f297cbe2051a82e14f553ea73cd723d9da7e
+DIST indexmap-1.9.3.crate 54653 BLAKE2B 7bc1768589e74020dc15d3dd064009edaaef39b7aeb682d0ca8e49944e3f020b9c04d64feb102e88b22feb40863479dfaf4722d6a77b5d19e7ca553f4bf64c1b SHA512 2aa8069eb07a814c8fa3e11296c9f032ef60963520d7786ad20cca5cb7e73b8f76d97722a994d65295bb713020aadce5008cd3df5e99d8bd968ef1979f910a37
+DIST indexmap-2.6.0.crate 85204 BLAKE2B 420a3cceedab93e5023b476f9b6b93e57057238425d4095de59eb9490c2a088193873e643dcad2f739e34e5798baa9a18939424cac1afc5fc7b93ae496ba188c SHA512 c870348691f5acf97e7bff25c805e60f2e9db9e3ee7b3b939b7be45b6bcfaadee9880e6ad27adbbe2545865193655b5fa9de18487b7a1d030017b2fca48616ca
+DIST ipconfig-0.3.2.crate 24468 BLAKE2B dbaedc8f4ec23fbbe48a8c79f16fa1575b8374f055237447d12eb009694067a82bd54b503f73f9520e9b731dbf2b7797ee2d6fe2c07ad3946146b32cdc68ad0e SHA512 6029a7d453db77bcf397580fd44c5c777ce6c288c251376cb591174e9fe0aa66b49925764050cc9bcb2d656a8f6c4af0cbcd6685b2ea4616c2d2cf8de9bd67bf
+DIST ipnet-2.9.0.crate 27627 BLAKE2B e7e1c74815b965e9cec1cd37cc3dca76671168feb689620d44d5e635f3a5fa92a7276cb3022f25a9512ffbaaa11b0a8719cc1b838a7dacda71a5beb1a992ecc0 SHA512 8ce429ba2bae53cfdaf8a7d6bf980e10b9dd515446ef3ed4e4e11432043a18e09454260567419818f523bc589fc367194bc345660f2cc808d281db235d3e0b54
+DIST is-terminal-0.4.13.crate 7665 BLAKE2B 47a024e135ca4931a04a8dc8151f999f816ab50c924f17321af4295dd84fd51bf98ff057de967e646a461c1cc9ffbfd7ae245a9021b3a77f3812f43707b44aa2 SHA512 ea5b18dbfc965b96a27086eabc070747fdc557a6a9acd06203164e846c2f390c4bebedb29211ec008e060dc80b10f53de6d6cdc822d4f51a543057736fe33448
+DIST is_terminal_polyfill-1.70.0.crate 7451 BLAKE2B 9efe76f14d61a5af6d3cd30d5e64209971d4292d8d2c12f4a621ef65324a5bccbb7e1d79d5efa75ea7456431241d6325cdeaa0af802b1480c6cd9c1bc5a35994 SHA512 c07d5076978e4c5d8d6a191d8880fb62643161979c473564881feb17726cd9ac8da25c40094ff12727dbdb064fe88fbda1867120a2c3fda1051bcc39380645d6
+DIST itertools-0.10.5.crate 115354 BLAKE2B f24734bdfedf1dba48554e39b43669efcd4a43656eeb2c511096060daeaf049e1ad3eab232e757057750ce94aabad9fc8a0cf29a997edc6c4b167301c3443391 SHA512 d03c3cfba9841776913bbb6daad0c8945830c155f32ae4b48872e0f937c75a443f0ac9a0355f43b359ff75232f38b15f4f6d446b4be30b00b4209cf66ef770c3
+DIST itertools-0.14.0.crate 152715 BLAKE2B 3c075b735a6ae4b66980b1f7ca0ccf4237286b140268ea179e4ac01b1349105da227f03ea9ea721d3e762c3cf8b736cc48b6902148eae73addd864b9c79aa219 SHA512 bb168e21281ef3e43f9c93a079fc1938d79b6db2366fe17e26a90f7ce6fa55df73e54a06334cdb2a7b208b0a64473b5af9de76827a9ecb49378a5f9073d2e645
+DIST itoa-1.0.11.crate 10563 BLAKE2B 94da07e0f7f2535d0b1491b3a3c64905274b315ffd35ec8e9a3e36e26cd7211733b462eefb5208963e388345f65be9694804c344a6132b2b595b0bc716c0b328 SHA512 7e22dffac34c9c9f432daef395e0ec710ed658164bc9cd9fc6445c9f984c912a10bac556214a026bcddbe27a3197b35b0c87d6709fd605062637d086b2d20311
+DIST js-sys-0.3.69.crate 81083 BLAKE2B 529c94cd2289883b3b43a848d47d8ae025ad0909548a38ba93ebc684ed3edafab16842b922da6c8b6be5ba39c36a1c05057dd3dd93fc8936d5dac372937ab8f6 SHA512 506722e6dc13484828a4147d974822ff9d103d9e7db58a48181b0957770d9fc43b97605ced105c5b680d8b2cda5fa1705f605707611cb48ed8a45a96d5f196b9
+DIST kv-log-macro-1.0.7.crate 16842 BLAKE2B ad3c028863d78730e4b2bb2e8cb980581b13d741b5dd2b76435ae91f5a7498a1e9f99178a0c9370b693a3af6a95c0682ff0d63e81a2515a267c6564d50ec3683 SHA512 aa7d79ae599930dcbca06f77590d9623dce461b118435dae1a4128fa8f38149a820109fe4bd1f19944b67285cf1b41bbf78e94b47e561dff1af683953c55a697
+DIST libc-0.2.155.crate 743539 BLAKE2B 42cdcf8d4a187383548b1f09d404474f168916d626d614463fe10a1fd886e972e1caf6297e75445214af3f31fe631d0927e54ec1cdc63e20082b3587e38dce16 SHA512 05354bba532b8338bda1f88f12c7f3893429734a06e33925fca2b99d49548ae5216e2cd84e782d2368a2dfef20b0e035e2dcad8dd13ede7119462a8c639b2807
+DIST libredox-0.1.3.crate 6068 BLAKE2B cf09f261d3a945d290ecaaa724903e0042d66eca46dde8a40c261ccb1e82c0d6b9926898eadafc6313fdb9f19cde56377b8a9179935482559c4b9707e327511a SHA512 c62142fdca92388664eef83fc89b8607e2df318cbadff6edf9e3d927837853d5cfeb54445299a82054a0ca81853b0a33536966ab26f1f2e0fa43b39aaaf67c49
+DIST linked-hash-map-0.5.6.crate 15049 BLAKE2B 0f30e388633c60433dcbee353507f1c6857bd210f0b61a4d166a9b95067bdadaebe49d5fca4fa6ce13072e26037c6f75d46cc30cf8dc3c9cfcb3f33b33630093 SHA512 031a87645381c96beff33572e4bac1a9877e52fd2f99d39918fbede17d72291b35e2eb69e07edec20c3058554c35cc38fe85b8f175c2a3c69366136fcc71f707
+DIST linux-raw-sys-0.4.14.crate 1826665 BLAKE2B 804af73daf396bb20da14f831f26ce06325181de14f0c277350bd22d21789f2bdd663a964cc0e7c5cbd2e084285d02a401a6bfbb3e8a8f079c120f9488b56f99 SHA512 28149660bd975ede05624af3582d5c78f498239f5d89713c2c32f5372fc16f4ca024dec35f81ea973a2cf986098890395dbda06ac6cf4ee29df3f9a0e11eaea7
+DIST litemap-0.7.4.crate 28257 BLAKE2B 52989ad353a782e9592357530dca3504e3ef5475bd2f1b2c795b60825d971ee6d3e6da51fbb6bbc26cb3c3303f6a751a3e15d1caa78c0cb888288a965666279c SHA512 5009c486a87b2f52237e15e2e772365424e4780c146776656d8e1551e52bc8e06e5c1cee8db1c59ef20d0463962fc07ba5221a46020a82df17a2f623a175f58f
+DIST lock_api-0.4.12.crate 27591 BLAKE2B 4504d146a114d8f8e1fe9ae70b993c713cbfe884dd69c61c54dec978733b95a853c3e5af26f237e48ebb4ee9dbebfce0f6c06067f74a3d122e92f5ace40e22d7 SHA512 525d971f495449bbd02eb70fcd84d4aab05ca582142144a5f314f9aa67ad4c5b4c98dc919a416d0ed2e555063eab037a441d671d56b633f2cb75dfab5d99bcf7
+DIST log-0.4.25.crate 44876 BLAKE2B ab9433934d16edca42b38f559c3c87f949c4540fc422e6d65c75aedd5055c7a4935ac0f735e7ef5c901a7443e70d60be77079a104dc61a3955b0c900162b3967 SHA512 b420404c82aeb04219e9f63505d60b8853cad44d1de0bec0750715baae21afae806bd4f741bb8964dd39bb5d1e0f5be41bc38d76773bdfd5e920d30533146231
+DIST lru-cache-0.1.2.crate 9307 BLAKE2B 606072bc5390a13cf24b4c64c77ba7f84c4c2b1a73c4abe8ead4e1d19067b063888d5cbe478dc9108d193f0a66aa5fb2ddc073f3edfac466de34f85a52a15ef2 SHA512 ecc67b4b2ed8d3596816c47e9c6aa242c7bdd1ee8087646e90c27a60d59175f661ec3ef82058c196bef2abdd302d429b7ea4279169689254a9f322dfd5697bf1
+DIST match_cfg-0.1.0.crate 7153 BLAKE2B d3f40e5b16761fed337ed18dfa9db9e46aa2ad84ca8cfdc7cf7c72bea7cff8d084d95214ce013b3515bbe5b1ad4b8527bfce692569551e4588fe6f396a8a96ee SHA512 fd36f2b128d70a0f278e708bcb3274d90380229f754aed7ce9b808138b0189d5e1a07e0ba732216f788a530cecddcdd980559b3f71efa371d8805a213ff8f2d6
+DIST memchr-2.7.4.crate 96670 BLAKE2B da38114beca670467c3e1fbf4e415af6f22d52e3223715d52e181babb89b872b46511563985bcc16d7ff4e82f812c6e83ad904b0fe2501b14445119dfa8240e6 SHA512 8d0e8b9c30208897d4b1b920f1bdcccd0c2b75d92a06abe4a1b2407938768abb6487d63de56c6a80419798fe69517210643dfaf11f5f5540185f0eccf220adb2
+DIST miniz_oxide-0.7.4.crate 56119 BLAKE2B 68facfec9ff405bebe99f52bcf3aac6788f1b5eef313ca393e2a15e1158bf294003cbe31efea4c793e644e8ab4e00ef67d38f7d32849ab6f01a8e19d31c30221 SHA512 482bf02d7bfd25bd8abe5e5959132677202d8c5dc014b9b0b64fbdc204be1b8431867095c140a1183dd1ca59f6ba871a355422fbd148ce34d62960cad2b7a978
+DIST mio-0.8.11.crate 102983 BLAKE2B 913a8e0e4843b3b19cce3eeaaff0a0024eaf1bdb4784a710e54ee95b6631edbd763e37669ec7d269e45157907663dd2eb6c9279db850fa47ef4c1eee867ea24a SHA512 9a2806ea78b0637d0cf92448abcd50bc5d09bd80da0f37752c847bc98d014baae7a5cc4d929de98be6283c76d82ccab1f1467aa6ab583a4e782d97d5592b0bb1
+DIST num-bigint-0.4.6.crate 102801 BLAKE2B 0460e7dfdbd44b6c68fc8ead6bff4353e549127158dab8bb5d217ee33104fe9ad5f58b63a01d56fffa8d7c4df1a87dcf5b536e436a0ef98dc4418a4690c4cc15 SHA512 19d14a7755de2b559026547d9e3e1775e636781bdfdd418f2e1d962c51411a0973a46d84d0356e30c0f708a7c7b2097926611960043f71391919cab1aeb6aa04
+DIST num-integer-0.1.46.crate 22331 BLAKE2B d88c9f84e5d803a3aa8f44dfc1bd6d9b5e336e7cbf47231cb3a7de30dfe263c41c62c586d31f0029459c8c240475cd329b3fce79f355be7643bdccf8d56dcbba SHA512 e27986d91f6c6dc3d5a0900defe28ab5f47905cde3f84d0914b7acee076dca8fec6fdb7b631ac94d3a31eb01ecbc5854e51afc3187cd1abfa21e1bfafdc700ae
+DIST num-traits-0.2.19.crate 51631 BLAKE2B 78637360cbf32d172510a62bd9442708af9730c0296a2bb4ebd200c08facd49bc31bf8ddd58967e0df7273a938832b620265d9f8f4d26ad16049bf6dac1cb4e5 SHA512 180018a5eceb45085e4e8d103ff21bb4d5079cea874c42a0ad4c76c99d275d434bbc1cc289f0cdec172866daa89dbfe0871410b2cc3407233fe1129786905956
+DIST num_cpus-1.16.0.crate 15713 BLAKE2B 11b432fc7c7496d48918f09ed0954e0f1d0845596301266321293b374392898853fb7c313a0b0fd9d22d9dbfe3ccc5cc1e38f38407c89b2e5906eb76caa6ad68 SHA512 a75863afc4a563e63c64d06471c7921615355d98011ea9497b1f1a7dac2bdfc876509136018e8062ac38575ccf476a196d1fd9231e09e90017333bbf2df4615d
+DIST object-0.36.1.crate 323865 BLAKE2B 60afa0ce744d32544b56e982fee69a33114de81ddb8e25156c4f1c6e492b39390a47e14a929cb7a9688bad34923a67d164295a42eb17932433b7d6b5cac72d85 SHA512 a64a7538f4be5473f9f206cdb0c79cc402ff3c868b7b4d33ec899e07754d55999e9a1dea0f7cc465be8effb3dbf9859d1460b083de1e3ee7bbdc7434d242361a
+DIST once_cell-1.20.3.crate 33456 BLAKE2B b16081751a1b6649d0235fe9cef3fd0a9023d4f6980521933e4a411282458050ca27c1a8aa01d5237d424fa279219b5713da21d8900eccc3100d19c37d24b7a2 SHA512 3ede903f232d6ced73aa74c6b2e2ec306012517eac684db253913df4656515d087d1aff9f437a58fdeecb77cedf8a5960d6772d72bf1f1f19f1ce3fe54bc72dd
+DIST oorandom-11.1.4.crate 10201 BLAKE2B fc77678ec202bc5ef7314ed876f670575983612db9cc94ddec4ad7e9f04e2e2742d12b746803b33f1dada4a10c8afe19210fbc337803ca59a0df74998fa6de92 SHA512 8d5acd7b344b1eb9635ae597b38d65f0da519366664f02bfd083d37b5e9c88f21403066a8e93d8a61e843e06ad9323cca9796058aabd901d0adf7e7235c17562
+DIST option-ext-0.2.0.crate 7345 BLAKE2B cbfc03e7c960fe3023512a4ad816d657b4f54f8ecbde9f9c4df4c5fee3b36b68ab463c67ad650778279e01c7ffaa63a0dacbd0c080c8c3d15b1611de0e71f92d SHA512 f8539f97b01af97e0b80fc96556002251befa60f8ddd19613311e62f9dc9834d71c22f5d8e7c53c4925046e38cdcf834c3c28042a4da862d6f6a21ddff8d8e56
+DIST parameterized-2.0.0.crate 15092 BLAKE2B e69658b8be43cae88d9ef184dd5571acc2d58dac3ccf2d55f010bf2021b09e92e8d837995c97193ff75e1dec8b6547935ad5f04336f201a23628bb7170b65c52 SHA512 b3a1511f8d31fe1cc09ef43c48eef894ffe845862296678e6983ddf67b8697607d01fd11365bc0cccd13d7f4eed9feea4dace4cd30a05d45d6ef4fd41762993a
+DIST parameterized-macro-2.0.0.crate 9151 BLAKE2B 3fbac19cb2e4d5e58b0aed5c39d88939ff2b95f369e5fc262439781ff5ae5d94f88e2683c0dacf78f96ebd5e4e6561987f013959e80be8b50be86049f2cec58f SHA512 660b87911f68e8504a894adcfe7792e2107317baa36b0af3b035f2cd7713c64d09295761f466ca6c635851e8d18219fd97da3d7616515b6cbea1b1e0ab4f4a9a
+DIST parking-2.2.0.crate 9730 BLAKE2B c6da9ea4d8c0a488a64510781b025ce07f283814a09703c58e8d46c625cd74e2c55d7e28a4c09b0886fe4ab415b128bd3114f8283d4c903398e12a11d65489b6 SHA512 184a4514322279ed093a27a9bcad5fce808900a9ebbfb624216dfcb90a5483e8bcc054d82a0bba4da3809364ad1ed0a623328cf983bec3751e4503c9670a3f9a
+DIST parking_lot-0.12.3.crate 41860 BLAKE2B d1899a1132035aaea3a784290cf4951ea3b36b2018d407e27d333b2a2ce3820e040d635009c44cb6e58ad07cec6565c0347af6f6fb02954eac2d4c348bb036f0 SHA512 368c17203fb5b9e4ecfd4857e3b1ab96b86da3770b8f21be392818c845952f72dde1072a10265760a62aa8a1dd65332bfd585667444e5fbb9dbe3280b5862703
+DIST parking_lot_core-0.9.10.crate 32406 BLAKE2B 25339d028579eb45a957ae5fdbac00288b1472d784c0aa7fa2953fcf9279c750d243ce69744993ee8cbe6899633e71e0a54ffc11e39247755685107f2f8dea54 SHA512 4f30fb60ded274d3154ffb00f6f50ac284b6fb97daebc1a2ac897ce97fa8e2ec6ff30cbdadf3b7419617a410fa7525f30ef5e580334e07d4420f4c0200a57389
+DIST percent-encoding-2.3.1.crate 10235 BLAKE2B cf8e2fd7b359a05b7bdaf731f9ae84c7fe6f468a53482eb2db7f93dfdaab64ac812b3664899db260055a93449462e6d219c695942fc5b030517b197b4df9b95f SHA512 5951ea8315e52cf3acfbaa023cb9e13a136b114c54a7da0bd44619ae24cd2159d4a96469d7572a2fdabd94e19513a033387117d7ca81d0eb409fb383e4acda44
+DIST pin-project-lite-0.2.14.crate 28817 BLAKE2B 8e9875967059faff399fbffff82cf8835982c46ea8df942acf50b038e3f500e04d3d8cde39da5a71ebcc38b869553f8c49830e484d1109b353247a4cfdeda89e SHA512 f90a6b9f5ab8701718f72677a4f3597c1b9f32e5fa53198b47a94696227ea37815997599abaa6058b217c5b32a94602582c6b13fdb66e2d683bc98921de95293
+DIST pin-utils-0.1.0.crate 7580 BLAKE2B 457e1287202f16d1873b24bf4f1de1828300128c4ba3131758e64f9784d36d47365f22d85493c3a85d854f0d8dbb4c6cef3a0f5b064014dc03943e58b7ba9178 SHA512 828422b8440cc82ac6b0743e0112fa7540d437aed457564999092b1462cd7672cd6b1f0201b67075431aeedd3d9c5127468a3dd028744109944f7f023c82fd70
+DIST piper-0.2.3.crate 15924 BLAKE2B 13263d38692f954b321568d999c92640040b4a411ceb82fa68ad84e32c40f56d62db49a0611f4afc24825fd8aa7252422120581e173d9adc236e0294cd11e759 SHA512 18867a2ca43c3224c3c749debdcfb65c07e0fe28759973140320712ec0d6a86125635665aceb4feae0c3aca9667048b6754121b7667a2c8caa1ecd2e3b3af7c9
+DIST plotters-0.3.7.crate 149031 BLAKE2B a53b3aa85eda3ac2278cf49c4d701642b37a5f52a3a013594101388d9d104b96e35f542ff6b8ee33bf711fb64c8c25a48c8f10b3c12e70e6e57c90fd30cb9b5f SHA512 526fa20153b445176efcd1314c2e36963561e267c566223ddbbcdaf74340aa821e9c0174c15849c55f3cb3177fd5e34aa9bdd872888476b7ff0a20ec3c1a04e1
+DIST plotters-backend-0.3.7.crate 13709 BLAKE2B 7ba96de1435beaffe0171dd4fd010f84d0bb6bf0856adb05da87dd324a5834aee3a71545a019ac899e141cec32cd15e395c56d281f498430e54b6715eaa46761 SHA512 5b53e5d369f39748d45269c82c87a0731cf23666b88d7e407162602c715a01807ebc50f8a90805f417c0e7e74dc511d1d7861052835beb8a9d548e2f33c062e3
+DIST plotters-svg-0.3.7.crate 6715 BLAKE2B 1437ad7e1c1b3e82ab1f58660ff6931e510f6ea5ea6cae6eb48582d4652bc65c5dad518d3312e25303651c03d90bf56d9abac4c2e3979f8290b4cb35c0b6ba5c SHA512 9a60e19026edfad359a7d042630b60825d7723855fc0c17881ac880c29160a81449ca672a3ae5cea4405293947ae0556f31cb37f519dad4cef56353248350cd6
+DIST polling-3.7.2.crate 57988 BLAKE2B 4a957ac93d2d4b1d1cda0525b42b6f5b9a3a93b115fd107339e7cdadeb7344833749467ee99cd7c77de0a065378faf89dbf85520fa1a71b67f71e7f9dd5eaa53 SHA512 d98ead0c929458f65ff75b9712ef9665878ad2656c729333eaea4340a236f67876b1c665eb683f695c9f12a89420401e1461c39ae8297081f4789dd5d2a7562b
+DIST ppv-lite86-0.2.17.crate 22242 BLAKE2B 48c4a31a3b555fa37072c4de083580bb769747c7668748541af472778b5b58c3e7ab2b5e178760f542f973774f09910bdd4058ae5fb9d6b10c103eb76cfd0d3d SHA512 539d916e7e5869d832045c1aa88aec519bd000227f9b01d4dd0bfc9ffb640d5f5eb21b05eba718174773c97192a655ad3cb31b53ceb914dd19179a6699b3583a
+DIST proc-macro2-1.0.93.crate 52388 BLAKE2B dae4493215b88f68cc485bc0ae80f0a48ebad68e0260839b1c367832d1ab778197bf040647b3fe36cfe9d5f7a496e05cd71b5914f531eb129c2d458d5f0be896 SHA512 1ae650e390e4f1b18d05f42d2ffcd025cabf72568a326cd85496c722600108b0aa0ab0161b39fcc931b8b302427f678650e703f4db57aa1a60f1751db881dc6c
+DIST quick-error-1.2.3.crate 15066 BLAKE2B 1c61525d383f3588c1c5017f016f60b484bbf2035e7f63c553bd9a49b638ab0c6106ac3676a41072b24da4e13dde78706e0f99fd1ec9ee329d5be81d45a85866 SHA512 f8aaf9024d20ccd42b706c756eed8320aee339f8776392b47a41cc82ca06b03df1a5b1f00854cea96689c5af261b4d8c5d2b1a242d10f2755e7e33dc41be35b9
+DIST quote-1.0.36.crate 28507 BLAKE2B b93495163ed205e33543ed45f084870240d479071d643704b6e348fb9ada6e1d8401893c13348b9964f4b6b17ddb96cb5458eec540f0d761655fcb96a4cd9129 SHA512 f1f002a912692f7ffd4912ca980ec57ff4aca3a7d9e2e42e9e3409e2105c9f59d86c05719f6af309bccaef2f8843b0848a6e3afda3356e045d8e7cc5956ae685
+DIST rand-0.8.5.crate 87113 BLAKE2B 516f26bb2a969d0d79e957818133f35d2c0b4d9f1b401098ea23c5b80d27599e842b9298c0c5e46e2a6cb6953857bf8a9fb71ec9366c5ce6708cf17df14f179c SHA512 8b33a8988906ba5e2057a9a84bdd11f867a5536c22f5056eec59ed4ec4e3a6da2fd773da4c0510d343762e5a4ea0f007db4c4a7cef87a47f90e36c1a84d86fb2
+DIST rand-0.9.0.crate 97798 BLAKE2B db07e33ceedec70d4cf094ba18d010e45036d9ab847beceefd1dbfd3cf7a608d9e333ff1a0f157cd920dd71d8e63d0e3634f24076b72a88aa3ccd29f25770536 SHA512 e07c9650dda7f9686b4f604990bb7f948667bc820322f464302fac3b2a8136a2a5d48ae6399f104e47bc1ebfda105f99ad8b031ce090cdb71840afb85f6a3032
+DIST rand_chacha-0.3.1.crate 15251 BLAKE2B 645771b2c3e274f085e0837a20306b1d59f6e9032fba8eb38a6d1b30180d15e2f89ffa2a162bf6358da41e030098242d81e71dab4321980d0a4f6ddfc2974ce3 SHA512 8198c580b1b9b0429758ffa49cd8138fa3ce724f0dcf73c767ea7e55611d6a2e4c7cad9950896510def500ce4062b594386c947ac3d89425b4e5c9b04d0b8075
+DIST rand_chacha-0.9.0.crate 18258 BLAKE2B aa0efd158877a116b2587177f2da84832ba8153b629aaf8181ca7622bc8ea624b5a5d205d1b745caafaad78d5a55aa08a4f35822b8925acdf7d1212baf62abeb SHA512 f62a7bb067ff984049c96cddccc841cd9931daeb5b25bb69f056bfe577f62b1b35c08f2bb5028590eefa04a9369beead4e6b03607eec97256e0383b20542af96
+DIST rand_core-0.6.4.crate 22666 BLAKE2B 8b6b66d50aade877f2779c006f8038db450f808c66d73d79efa66c4178dc03db06f12201bf0e7930181c4b0f4030c49b20cce6eb7839763cf2217cad9710789a SHA512 36c67eb845aa2ccca49d6d680f28d418229bbc5a050729e487fe6b9f9f384fdd7b8d67fc6508b90b79ffb3c26688e72feceb3ecae57d3d7f59338aeb62296f79
+DIST rand_core-0.9.0.crate 23441 BLAKE2B 8f1543e2f33622edba457c340bdb4c266f8a3c9cdd95a3afaadf487f8dca7760548316227c1decc481a7e1ca5475f6915cfadb1ffd3860631c7a91494ea7f25a SHA512 def4746229c8405ceb46eb9300838918693f17a39a749e6ca42ad73fd02b0f0e14dca0dd26b3f030338db45da0d149d8c563d95cbd71c31995c5ab6294bd087a
+DIST rayon-1.10.0.crate 180155 BLAKE2B 16cb706d2317d8a349394c521ec5ab550290c5ab2a0a0dc24f0282fa7eb01fd1351a7dc8b5af3a55ea321e6526fbe037fec3cf8b32463166a082a6e417a51fca SHA512 3f628c58f3af3cbd1f245ca1be9c8393eff41112891fc4e676a2b9e26b6cba7cb80d7b6ce46e75bbb65e42fc00c5c0bb6b6a4b59092882f03febeb31f9cca5d3
+DIST rayon-core-1.12.1.crate 70701 BLAKE2B a32eb9ae9a71b4f0881f7bfd5375aa7db5681f20f7e0b25e6ecb3161f2aad36b93026c1691d02bf298a48ea07ec9475a237fba457ed0b0b8624aebab2b4988df SHA512 33d0297b682f131c50e1eabc3be583211a5abe790301cbca91bf510e43d6714b7564ca39fab7c4bf6f02aa0df6bb394f386a61320f21ddb6bd7aea1372b5e99e
+DIST redox_syscall-0.5.2.crate 23957 BLAKE2B 6261df25a59af5119a21d31fc3b6a8800bb1783cf2fd63a5524d48d0b187f5f2e65ebbdec00d9282adf110ba8f307d4ceb154bf029a0c6a26e8a887fc722b2d7 SHA512 b7e39a08e220153370449cec7b058c2dbc4916ff7be01b34658e1793035323ecc28f40712194cb9bfc9b863e4bb316e58662721eb0e54f68f09438bd880ea032
+DIST redox_users-0.5.0.crate 15586 BLAKE2B d38045f8b10c2c62eeca1207110e6a194366d17964a641eb4e2898378b9ebb127a5a89f379caf3b4d530f247eb5440844e31056d47a125fe0e6aff25d98d17c5 SHA512 11f255963cede17382071354568315e6aaaec5afe5ae09986fc71e273f6a44ae8eef2f6169e3a5b635bfed7729775d485a4edf655ae8c1297aa73bc156d78554
+DIST regex-1.10.5.crate 253805 BLAKE2B 9f5418b577209051640c3614a98b15604a1e71144763a6f00caa7757f0ff67fd833a7d14fe9d6acef96386a2a4eb60cf5d490472e73fd62ca8bb0e78d4f9f125 SHA512 177fddb001e14281510e34070f88f8e5167278a46f1d93d9286d9606b7673346f504e4064d7ad53558e6988a400c728e33b663ab398fee12ae23fba7158da5fb
+DIST regex-automata-0.4.7.crate 617582 BLAKE2B 6295d866706b623b2025fdc0c407086fec15053229d708713d0ec165bd526ba25e7468d0009625cbbbc21d20345f0af2eea10addf6de633e8e6a02dddced67b8 SHA512 b19d00d64bb8cd833cfb35fabb162b9481716f4b7f6035c1c8f1de4e0f90e00823d006e057aa3505aeda48c9e1802e61173c4a2878891129a3a918727e43b0d3
+DIST regex-syntax-0.8.4.crate 347577 BLAKE2B 400323cdad2a7daa8d4006e4dd7a7b1234704df0f80ca0f4bb19447f8f1d270053bc8aa613e48291ab3a78c7eb02d7afec57bfc8d966a48b372a4c80de9b120c SHA512 10719c138d9aa304106fcbf77da0b01645d1b6fbc621abb639dbd43ed5fc3dbd22aaad8b86df55a60e7b2b4fc347b6f41419131d7b047273e146073250d892ed
+DIST resolv-conf-0.7.0.crate 17352 BLAKE2B 32b565a11d5d752e2cce2ac7b44e483b8a682220c99a9ca34d0a440d87cb5a874c407d474e47757f128bc5d78ea57940452eb099ea6fa433d8f6d1fe881f4302 SHA512 538b97f88fee8b82f15845f9a596e09757e3c2869c4e8708ddff97e19348e9f88d4bcf75e810d2aee47113fa64d550a9fe2deac6fc38d95242ebc20228e9b5f4
+DIST ring-0.17.8.crate 4188554 BLAKE2B f531b15cc5cf88f2ef00b1708473a7e98a42dbbd026027ef2c42f2d8bdba0eb1665621fc98db618252f6a131bd54b1493987a0285bf2b9a22eba4c9409ee1cab SHA512 e4966409a4078ee43bfc9cc659d08ad28419effe2a729c8c275361a7fe0620a3c727009bcfb1d0bab265af2bc107b50c19d868a4e80da7a8bb55f97e8b214358
+DIST rlimit-0.10.2.crate 19093 BLAKE2B 1b3cb20fecc89caa3d8079130965476f73cf4e2ed6268d8ae8b0adf42f5759832f5b9c6e43a951dc1945bb68c91f135f3ff63c06602a16c6796ba319595e9bef SHA512 80c713dda749f35753546376b8ad804d9a89f430659b26eea1f56b50ac0c1f28ec3f66e611ec20986e5efcfd70e1cbc38c9be1acc816f668c8f4f864b34a056a
+DIST rustc-demangle-0.1.24.crate 29047 BLAKE2B 8248b014eedb26cdc0b748544ba91b9aae9c992a6f93b4d3ac256b78f691d572f8885a3575492ea556698a241d2759743968293079ca02bb6a5f318b0ed66dd4 SHA512 eb897c35300b87766e6105917a907fca1c5b1f7691fc03c6c1aaf38075ac883a73d1eb54a245d13ba59c7b0f0333d6543e23fc1b1c542fbbd5c750a84660b9e8
+DIST rustix-0.38.34.crate 365160 BLAKE2B 02513c2513ac45897b659f0d332a0dc32401d238b8fb64ad4a90ecc4d8952fb042c0bde4bf13d52630cef34e73e96dd32cf772a8601b4f6eb5e2961f0a394add SHA512 717cf26e2ec792b41819ff964888adb265a215d2b6c6e2b7a8ca1f7f793b713b853bba9cf03c2cc88b0f9a5eb1a0478faedbc05526f39bd81583e7b1f764756f
+DIST rustls-0.21.12.crate 285674 BLAKE2B 44977600effb314aa3c89609059c61337905f0380464ce05b4e91783f1a1c9076a016c8957afb3d184a7a6d076cdbc59e4703be22fc15c540e46a057527ac1ca SHA512 7e48a990ee69fc298df45d9a0de9b5a33a56261ec3f79ff16065cbae7368705c1f3432b77e3262a6141df68b19cbedcccf16eb271a54202049435c63454186e5
+DIST rustls-pemfile-1.0.4.crate 22092 BLAKE2B 9a776027d6e43a336ecfdd6713d4b1e6642378f81b73c97752563ee1d2cac5b3988afd48c92d25d55f655a6fa248436954aaa0e0bd9c7c679c987ce7df0cc99f SHA512 bc748ee06f2c101d8e54e8c4555e88c5ca824ac7bb0182f8e49bfe1fc66d418d2a3da8e454f3741697f491ad0c7bc8e924a752697023a191c1bb6eb98c48aa37
+DIST rustls-webpki-0.101.7.crate 168808 BLAKE2B ab7177449be359e17f1f4553193e96e71b8e26e1298a0937af658b1a6f9485f051183d1bf8262d52430ea4c3b96263d1fd903c7a5f046bfe5f87b6b97ebb0672 SHA512 680e3d52f699c9d6200e2e738a4245a5114fc7122546c07d3f15f1e6741a52275061b3e016c2240f1dc3eb9f701f7346193bd82e827274fb73b8e9e0d5af4e68
+DIST rustscan-2.4.1.tar.gz 3114776 BLAKE2B 778489d0cb8fa353269faf5592099dd78cdb136a94810924226a91ec3c9b7227fc9e250bffb4f4efb8c60394880e1db4800573650c6919f123590e992d1a822c SHA512 c55edabd03bef7540633212110c8ebdf483632cd8602b1ad8481063f6d3bba1b1ee5c03ec5ae32ac71bd75e0ee0ecc7195b5ccbe76b1e91a6a3155bc6df06de0
+DIST ryu-1.0.18.crate 47713 BLAKE2B 409cdf4b4e77685394018371e91ad6fdb175ac57e1df9f902871f13208515e5a2ab1daa226fc1e7291278e64448332845be4cc9409bce3b2f3daed409259e104 SHA512 a9b2beac778ec47e6be303148d7512ee681bd2361f6e4ac6db32c8b4baf86a8c5eb5b0d02eacd6131ae88c7b5105c57018c3050676e0b3dd1ed9c4d2fd650e84
+DIST same-file-1.0.6.crate 10183 BLAKE2B a320c8343e0b38078ba81c4f0159d886bf47764c74efe0d7cd2b3218426e8341b51e523c00a9e5fbc2ee1057618296bd70b576c68751bd55d6ddb352defaca15 SHA512 3ba35309742c8db63210d9ea78bff4ecd80471d69e6238eb96c7bf0673814f221e2d838fe6311bfc5a0e71b4a7ccba33e07859c0b9cff2171969ff08a4214a7c
+DIST scopeguard-1.2.0.crate 11619 BLAKE2B 8b7e9ed6cefef9ee55407fb9690d57a2a98bb93e5105aeebdb475a52485e9e185255249e1dce8f83cd80534e7402d485aac3efa7e8493b13135de27550cd4bc4 SHA512 6247719a15fe1e4e2d179127b9a934bd2f99367724f41175ed9522f58824b6bc69b35002eae66b35880375ff61d77ac43ddaa78cbde7160a35183a1da32d3fbb
+DIST sct-0.7.1.crate 27501 BLAKE2B 12f63e62f49a0ed0c5a62c1c9b42a83c1df43401ed1de85f993167d8fc52733908e58ea1fe76cd7ff6128d4d6046d7c0335434672ed1865c8ddb1b3fbaecb590 SHA512 6030295b3b11411f5a7e518db1066282bf11a279c27414c5e959cd430e9fcbb7358e5d69bcc68c8bf696d4c1d9579ed7218b7f9dfbb61de2271c4c3d3316fb7e
+DIST serde-1.0.204.crate 78253 BLAKE2B 6fdebf3cbcc0327b404caaae43c87ba2b6105374a5ee3eaa34d44866e782132cff535da4c069c007783b7b6468d55cb1ceb6a41da74b9eab03ace7cf4811e09e SHA512 2fefbeed0117bd791fd25dd5ad0c99ed4f60aac5919605b6f642050f748dd472bf9d4d121b78b0cfe8719db30a675559d097bcc7542cb57451d1779dfd8d294f
+DIST serde_derive-1.0.204.crate 55871 BLAKE2B 8f0cdb244a820712d557a3273e505c4461f4d7db89e8394040b4c66ede787b6b38b4c9923b38959ab4042c9076b8af72008c0dd15ac93a0ecdeb99da8fb526ae SHA512 bbb2b5e60e2af5bc7528b937ffaf0d3ffd433dbd9cb2592c1e07090620309057e4f11cbd6112fc1d2c5557e1bb3c0f4d59eb06ff06fa021ec683ab880997140e
+DIST serde_json-1.0.120.crate 147062 BLAKE2B 54f93ef2b0f1c9e7c5a8e8797fd298c96513913a20c3e08a21aea39a15ffb5ad0269d5daab10fceea7164ba432e355b89d89dea2985f86bd0e73ac3920f827c5 SHA512 dab44850326f9020d6f6dd3fc8147e22eed693527fe9cac2c6bc8f6a030f461061e8e54d2780382ce32cced63b5a016372a4f9938effdd1631d8f3dc96014e3e
+DIST serde_spanned-0.6.8.crate 9330 BLAKE2B 630bb2cabd74e8d9736e315ac57c4d2c5c4f72264aab35ecc8e0040cb4186885722051a9f7b8a9006fd121fe58428cbb151e5cf541e7de30b6528c84e968f7ac SHA512 2343a2fda35ff57ed8ff7d8eeadd651821fce7e22f91c2d5797c6af7db9e009b7d637382f6f390c17911912865a5aea1ce87a86fbe36f4b6aeccb065a4c8942d
+DIST slab-0.4.9.crate 17108 BLAKE2B 8e5288c4d00efa915e7be27b55f2204850968624f0d8101c091a357131106bceeea7a63c98007420c12f67893dd2228b15d3f23508108c3a0ceaa605474bc7a9 SHA512 b6b5423ae026472920f7c9a4abe0962314140a36dc562c0a9e3fa60725b2b8b7a8b343110d9d4c0e18fb318b0103e14c0ccbc9ae350d5563a5ac80c35f228c40
+DIST smallvec-1.13.2.crate 35216 BLAKE2B 31a268aad595c06cdb078577a97b089dbea156a0df307a3e6aaaf4861bd9a680c5b11921da9dbdb1bcfe17d58c0cbede1ffe6bba3aef59b384fb1b9703c62d27 SHA512 a97c758b668e40ad9eb572e65feeae4954e09200a04ab92e26a13b48894381cd3a3d2571070c4b7a5e181182e1ede9688f990650342ec69ecfe1a264d234c679
+DIST socket2-0.5.7.crate 55758 BLAKE2B 148d2e2b6610895ec555b1357b340576984eb76cb3ea719f85af50cc4215b2ea2db739e2a61434c09360a0c1ff8e05911764e18dc4a59451c0aeb0eb60b8403f SHA512 ca37157bfa970cf3cee8b45c7fe64930becf2ffbbc309ea4613be968400279b70edd084d159f65b76fe1130917312d81455023c0d7c1bab7a59c79542aef9dcd
+DIST spin-0.9.8.crate 38958 BLAKE2B 8648bf2e48fc618758e3de67f0a493bf3cd22a8d18666164b0d850ed7c0d73650f7b0af783019dd361116bd60c61d24895cdd2c579383cd2700de0e32a23cdae SHA512 b15ad66ba9b308937f34ea166b799676fa45c67224e10cb57530fe33d2a8317ff3e3db3223a3249fa2862cc141c964d2130d3f39910a86ac5ef8aaf8ff4bc6ee
+DIST stable_deref_trait-1.2.0.crate 8054 BLAKE2B 287a65c3e5b47213544a43e57c60a54add60b4c2e3c8d042407d860cc950ba7ca01a2e67ce56aed6744992b61ec1f9aed3321e3d88482e33129548b7d51df205 SHA512 a13cfb22723f1f2cf089b2d07d657846f50c37bc0438d1a76096bea30214cad226b7a422c21f9e191ce87071da8a141d61882aedf9e0203a5fffdfda86a5fb03
+DIST strsim-0.11.1.crate 14266 BLAKE2B 252a9ede4241b165525486aa8855dece37af77f5b28e0e1858c4a5d2047db9fa958328db10989234aad69463ab51b2303785ec056c63ea8c95bf95e111ddabf2 SHA512 0cebe0155a92640e56db9a599ae62078cbb32e1d2da8bfa67ed0e8f410a7558dfcf7b3c2720ff5913282e291ecf076aed9fe9bf84c8d44e814a642b1bed3335c
+DIST syn-2.0.96.crate 297497 BLAKE2B 68b62de28ad670572096a1d92ff8ed6fb55fee441f2d429edfeffcc48fa1d4f1cd39327540a4216d94a9763b84831956cb7e5c8ce89b81f1dc5767ea5734620d SHA512 ec2e352a5b0b2aa619774c01d7a7767674a44ffe91dea45d3379bf172d13039c3d37f264e98e26b20fe1d86db6d5190f220831c842f3316469d4ae73c2bfddec
+DIST synstructure-0.13.1.crate 18327 BLAKE2B b29ee88c559a2d58fa46b7af155b448f001649ea79a1898f0ac87e69108b87c65cbd287d8f9001f360df7fef06ff39c937b48d33e487a30c8eec6a46c639c0c2 SHA512 09024193b44fc9a8901bda845b9f86c57dad65d0f53e309b2e7e968538fab6f67db1c86e5e52a2eb8fd116dc073e3ad10983bd60764662ec6ba94fee22a958aa
+DIST terminal_size-0.3.0.crate 10096 BLAKE2B 097ef50a85945128dcfa36d8ea0fb15f11142c206462a32980dbbba4fe2872abd214823fe3c75e804f3159a97d6e929ec338860e9c89587da509fb9e6da5d339 SHA512 f3bc9144aa8a87556543584a2495df6267ce3bb017f3ed3d00fa43e89b5de783e1285ca62dbad9dd9c3b37e3a476a6f3ab0804eba2411cb594a569bbdb310681
+DIST text_placeholder-0.5.1.crate 7744 BLAKE2B a29d8aea14dbea90acc0c9dfc6323a1b0acf5ba43bda976dcdc90d19a20014f021dcff4f8fd89ed1b3a16c0d2027920a1a16659a3ebce3c05f841802ccd7d3c3 SHA512 af3e2ef597bebb62f25d8255f49a426d57b708cff5d405e584f2c4f438140e9eef4258fa01ebc1288b94b3f63f670faf641526c398394452f9a7bbb60389ad10
+DIST thiserror-1.0.61.crate 21264 BLAKE2B 97337830507c009dbb4cad84cdfc02bc097b9d39d0af2fdecfaa63f0c12229e60727244fa4e44c2d54daee67bf8b4e8492d94a5de55d1a90b8eeab8c0d082e80 SHA512 9c08b868eaa47178ee60733aaeeda60dc46d58d2b9c15985ba3dcae4923e8edf02b97556df52f508753b0ff52782f6ca3227e9ef6343066e5d5d3a89e03f3f15
+DIST thiserror-2.0.11.crate 28648 BLAKE2B 973126f9a9ca5f3118e830af11ddde4b26c905e13df89b2888b42facc4e48b3adea53b66405260f6291c3df7ddb85a93856841be3626b005040b3fd15502e2bd SHA512 ba0c3c2615bb9bfb07affa66ffeb2eeda43b16a974dc9a0482165a4a5a502a376e2fd6b569a228a08647de23d291e2c301dedf89d8caa79833b965a184dd5904
+DIST thiserror-impl-1.0.61.crate 15786 BLAKE2B d63773424aa047c6eed8a6c9bcc8dfcee9841a2d4fdf6fc2c117695c09359371931722198b2e0b2bae32b0c54b6275f964e679b78b8bef1c365ca33aa41562c9 SHA512 b43bd2ba6b751b777e2fc78aac92a3e662a1876f704625c4e894019fc68a6b7628b9c3b7ddfbd2cb15fe6fdc0ff679ff94b0c47e2660a40919000ad2fe1cfeec
+DIST thiserror-impl-2.0.11.crate 21067 BLAKE2B 33be76d7ab098eaeeaefb2ea5ef20a73221ac51b491d6339e1fff66e24118854f3640de43241e233c68be17804b90d22d75f1d60f7df274acef4647c871e0e17 SHA512 3fb76f16613064917d2b21f1bab06fd4dec9f40ad1f850aa78c5917854347cf9034a72d2091dc792ac06ce9ff9e29ed2bec3a4330b459abff379356e35c8f701
+DIST tinystr-0.7.6.crate 16971 BLAKE2B 33a248261c4cded41a81f0d6e6c8df55437f042b37f235c39787986ec562f0dbff50b282ad0f1483daaf49c4b33e6618e139a6677d1238c21f4e12082562b4ae SHA512 a33051848de248cac0a2d151760a78cb3aa62c787d84ff7aac38b11c0660e9188e4d43d43a77fb8676e49ac6102015e9c3db057848d809e71981851875d0fb25
+DIST tinytemplate-1.2.1.crate 26490 BLAKE2B af39d96f33f63238e455a4e38fde1d1730fd9661ae68be7b05df6ef9d2ab1a04db1332cc4ec9deb6da3a8e22b124df81b0fa8916d8491b808742bb733c8e48be SHA512 0cc080057e096f0796e72004343e1a8332c2e8a12e43f6ade150ebf632e9c29c7ad04de0b940cd57df81efdc4d07a6607da9b86a30d8383e39ac3d7be185edb9
+DIST tinyvec-1.7.0.crate 46743 BLAKE2B ec9741aaf6900ed2651c222d80688176353fd2ba99ef54db18059bc527b638fea1e9d0ed03b18a8c2f3a4732f94dcfbdf1411050f1d744da5d88cbab569b88de SHA512 9628e5a8861d01e22f00161b3cee58861a2801cd0c64016872bc0c6fb49899a553abd0bbed61064ed91e3a8fbd93e311b2a622fd21d74345e80ec27c1e2f36db
+DIST tinyvec_macros-0.1.1.crate 5865 BLAKE2B 2bf4f68ca11dc19c72232951605a4c809b34ff38ee365ee4f592a3c41360e23c9330cfba961e2692a0ad568fef4aaaac51c40808d491178cf7a0c4b5a1c5d484 SHA512 10008c7b3a3d50c94b9c370015b76ee082f5dfb6dcacf014dc2f2dbe92f903618d10d0202b21f48fcf98a94ae76fb712db55a5e8ad353645d378cf0e6ec74f7e
+DIST tokio-1.38.0.crate 774094 BLAKE2B c7d85234ed0de32526246d2ecb52b70b1c4b81681c6b26aeec256090b4aafb41a9173dbe754a5716baecf2c45d9e3cc02fa375fbb343da09e728890b0194b9ff SHA512 4bc16fe979f2261cb17f007ce8ebb05b915be79c1000c5c429744cab01755b933908aadba0005c84faba6bf5d486ae6e3aae6c8f9bf0d6a5dc0ab6d0390ebae9
+DIST tokio-rustls-0.24.1.crate 33049 BLAKE2B b061bc5895b9d7e5aef96512667673ac6fb813a4524b1f6620af9e2598425662b15b5e07d3896499b8a24d820462d15b71a2b9cc804886d546c8ac5957f28529 SHA512 93098f34d117107214e2e80e0e6c030423850ba160d1858b5149c165643700d308dacef7723e45b79fc911ba13bc1bf363c89ccac047cc6636e48a9a5a9502fa
+DIST toml-0.8.20.crate 51095 BLAKE2B 8e46bf5b667fa650883fba759efd1cc524fa758eaf1b9124f73121127cc72c0ebefaf64edaba6d249d7a9d0d81f75295d335f68e4e88d20949aba538a2aa71a5 SHA512 c842705270baea3e62e3b0535485f15af87e9a1b26dafb7945e1918e9fd59654b83316ace4ff837d84739d2dd1fddfafabc7d7b0c3ea1dcb9a07433a8cce72f1
+DIST toml_datetime-0.6.8.crate 12028 BLAKE2B 62113366771f22b437b2ed0d3bb2489ae9078cb589cfad2ad2e92c81ddbda48f689e5a573366eea4f54c2b3cbc6b37eaa8b442b6d935b631a992de4917268757 SHA512 d38b98db3b2d4eebd3001d88e2135b6fdbae63b200f7e900c6bb9c121dd3f170e557332bd26f237312c1cbef61666716b0cf550c2d730f86fa7cd9eb5f64a16f
+DIST toml_edit-0.22.23.crate 106376 BLAKE2B d218ade72fcf2ced6f40eeb4d32dd616dc82d3bf9bf82492b4a0bb11c2448cf411bf15bc4f9193659aeab027f8652a5b3f3982a689d39ba384ce8d5ec6815447 SHA512 4a08e10910c6fa089a3c788aed3df222c70c5567e97128810fc0eb881ff88ba8db0e9bb6a1877f24ea6bc1b259769293440991147536bca61e5ba8eda6ce29ba
+DIST tracing-0.1.40.crate 79459 BLAKE2B 33693ee71564fe5925a63dca351e838dfd8612b4b1e49a33a70095e56ca63287c13c772661ace0e540d08c92942d7cbdc51ff2cce4f4b372164d9aa20ec05dee SHA512 5622188a45dddc0d6d3a8244a9b12db6221f4180944ce1019d18f4e613e4bd113dae5d45fb57dd0754f6e8e153b047cdf00c8f200782bb2b868bc2d423d99275
+DIST tracing-attributes-0.1.27.crate 32241 BLAKE2B a20af0f50a90dcd64e5318e55779142da294ba18d1cd40059a8aa964fd3c92834e03ee563e41caaeef71a30e3f027e5c8d167d90e2844da79e0774b267e179b4 SHA512 7dc59f4234c3bf3434fb352baed2b81db4e931eeb3ed207c4a204e480da734be40847b167b808058d2807b5583815625bcd5153e2bbe79804cfa6f069a74ffa0
+DIST tracing-core-0.1.32.crate 61221 BLAKE2B a7815c46af9852ce62498083103c6d359351f4d33609b4291330073b6abf4b63f5e1bb1a7dfed3bbf4d6913ad5217e96999416261af8a70609408a29109e4db6 SHA512 164f79cacfcca533a53b7dbbdc2015aaf851a16e00c72fbc4e5f515b6a6dedfa464e964810009b54f08cbcdc5a314e50245ac7b1b01a71fce4c63db135bf5521
+DIST unicode-bidi-0.3.15.crate 56811 BLAKE2B 1f1d372c86ec7444f13eb32baf13dfc8699b52156b265a2b53f40c0d771064876405451120fe54739a2679e6991caaf4f63e0644f03729cab814079fef4868c8 SHA512 7a21d5eb05ea8d691dfd54ce4cf7d3693d08067f7a88ef17b8c3044634f46411176b1bde1516c442577910b254007b247f5e40f9932eb601cd96cd574f9d9db8
+DIST unicode-ident-1.0.12.crate 42168 BLAKE2B 4cede03c08758ccd6bf53a0d0057d7542dfdd0c93d342e89f3b90460be85518a9fd24958d8b1da2b5a09b5ddbee8a4263982194158e171c2bba3e394d88d6dac SHA512 bc1824e1e4452a40732fc69874d7e1a66f7803717a314790dcf48867eba34bc9441331ef031e386912e52c385645c25b6ed39d4f149973b5b97371b1b96b1920
+DIST unicode-normalization-0.1.23.crate 122649 BLAKE2B 22ea5ce3f5a2b371c3c8782321b1bbbee724db1e4d8c1d43af4e6bd8044b99307c227d93631d178d10fda445a941a485882ae0015a6e3d3c347e4bd465bbe1d9 SHA512 539f04010810d73fde7b0ab314faf813f3e7ecd2e51d7975281554b7cba4a8706e2b5523c4b7840568593652360ca59e9db0e1ce342e71c28db635ff55ffb0f5
+DIST untrusted-0.9.0.crate 14447 BLAKE2B 8e9c3ae09435af0885bc4a6e3c8943805b48cfc00bdae228c7c43093254e1be15d7005d1026561ff369ec37865d8458203f421a9c89ae3db077f655449621aed SHA512 5929e4079c1c2ff933ae8d8f59a2ecc7a424e71a20d1b8821f75925af68bdf82604b024c008e5464b02e25ff093e561a352b685e755b3d0b27e4c30254689416
+DIST url-2.5.2.crate 79704 BLAKE2B be3526298a8816fbd88385caf49c2d58aacc7dcbe2d9183478cf501c26fb5f22d7704ef1313ba6d355e849cbf8ab7980310c1aae85e253a2b28d59099e23af29 SHA512 2515903e41c0659cb226f9bb049ef80f2a49d1b609b6ac480e570a84e899088ffe3be4fb58f41a1fa7f5288eb5f97ab513f331aeb6d56979df783d48e2ace28a
+DIST utf16_iter-1.0.5.crate 9736 BLAKE2B edcd9776113d4d2b267a9cbd58cab11c5497ff1a8252c4e695de619fc8e5eee1595343c857651774b3670d13392144e9d7df579f2e226842aa7e4e023a76fb65 SHA512 44dcbc5a7db149392fdaa31862be240f78fc5d7616f54be32cfc8f3adbee310e8681ae1bbe6edaad8a7fe6e7759dbac8ae4f69d0dbdbe5350c21dccdbbe975fa
+DIST utf8_iter-1.0.4.crate 10437 BLAKE2B 1e7a8b9241ebbb62cb497542b970473780f735010a0af900771a43abceae4e7f362d21d4f79f7c00630e4549400875ea17574b2cbe4f5ea19e8ed428e3b5577d SHA512 a72671995b3eb295581c60dc632e4a25ba257227fb5d58a8bec322428b6d69529bba79a6f02b8e7ee6698b7779d9d6695f5badad73e07c254b00c9d6256c9090
+DIST utf8parse-0.2.2.crate 13499 BLAKE2B 095b5d219ab8ff04c06fd6303e03d913ae36a57845f0b2ca3217a40e31a54cb0fb5ecedbde165d28f5f60f1553d8252986d7098fa83befc84a7cb20bf3b76144 SHA512 f3dbf78fe924f1dc3cf9498b6e43fb10174699463f31091a7a8136d8f31ec84fc00e80e3d8551b7e86257e8b3573cfddb56fc0de797fdb2cde0e962a8f239266
+DIST value-bag-1.9.0.crate 39936 BLAKE2B 78bd900226b9032f2016ae087f92e5f47ec282fba37dcbb204faa83ff4bcddca8f47a14f899d36dabe0df0a684c8f1874d26206edbb5fdbb30b883c09afb37cc SHA512 37b121feb957f81f9900cd5754bc3e5bbb5ac53e4f5626ee1aaacaf70d5c3d1c0128b26f585b8bcaf555970a0f023ee977fac836861a3f928b70b2b79ac5bac5
+DIST version_check-0.9.4.crate 14895 BLAKE2B fa1fa4008af165bfc1fdbe560488afd9d232cfafee94104fbcc4cbc52f234849bff9ddfa88109a1ac682f6d9c1d86b0459893d223f64e65adc08966aaf93dc89 SHA512 b172dc9a3759a4a683ffc39b9a40b03b9974b626a088217de87090466cef695226557c226cf3e469b2b25ee7297b7eb0d7719878cab42457f80146a81943c0c8
+DIST wait-timeout-0.2.1.crate 11435 BLAKE2B 6fc9e1b88253c96aaadeafa4eace8281ef9c4bc961334058866e9db9490da35f191973d46753c381cbd53fd8b8843ed3ccaf681bd26fed5113cbdc9872b1f635 SHA512 aa89eb76bd7abc8c12d0d372a74a3e838978d85939ae5bec97392031ba4c211c09fbc0a8719c668835dec325f94c6098a9a684ba180f9fa8352f8131754cd334
+DIST walkdir-2.5.0.crate 23951 BLAKE2B a2d3a973f206e94699adec0263dd5e211347722cf3ab82536295019268b3125084da5dbcad818070bfdcb6a5de08da4eb483475bc225a829f58a1e3e040b5fba SHA512 da36a121dc6656942dc9cd9887fcf4f6eea7750354ef3f59c7c25d836e7afe06f33260b4d55d0d99421104ed4ce56ef2a1f0f4c3b713766fff90548c21793fad
+DIST wasi-0.11.0+wasi-snapshot-preview1.crate 28131 BLAKE2B fe501889f25d65e2d032f885cc50c4f8bf7dd70fd5cbc438de349838370d8699e9627b0a4fc76030ea9fe6d508f41d0c9928a875fdbc47e73bfb17241cf7b155 SHA512 043500ab28cd9cb779475255da5d109ebab7fccca72b64873dc28d77bc5a157ba8d96b9e8f05223b5b36c7089bb7b4ba87657fc69bac16b78972f897294a865f
+DIST wasi-0.13.3+wasi-0.2.2.crate 136754 BLAKE2B a17e2670caed033c1b2e2bd709a79c1dff5d0ff46b32e9d9b0faceac2b3350397e7bc6ce113a9275c400537121c9d853130b4bd546afbf0bcd248f4c69d8a708 SHA512 c0b0ce3c4d82ad7350e017fda565a69cf91186ebc41a1c5bc21a6e2fd2f0d8e7d90bcd60488074da6062ac1fa39c684ddd8ee1d8efd66e82eff36ddb16682abd
+DIST wasm-bindgen-0.2.92.crate 184119 BLAKE2B ca256c686bb3854492bad6afe3cd27dab314561a1ea2e0205579820066b462bacdb2cc01075fb420bd20eb33b03a648ce1ff46feee04d8759ea8aa990ff8232a SHA512 6e46501276c0d4befbf930c816d6ae6c3764e3b5ce0ef4aafa627a6ea371f1a056ecc15970a817e9e9bf51c0a2ffa57df427d758b2d367beb6a474d75b8939a5
+DIST wasm-bindgen-backend-0.2.92.crate 28348 BLAKE2B 425497aa7a023b70549c55d5a15dfed80877c5503863b186c0a9d11b29551c4606c1cd5961c7dfdeee2eab5662952ad7ad215513e93abe727a33f84b30bd181e SHA512 22e4f5848d62bd1fd55f4f054ea1293e223b3cd6f916bde2523eec10388e733623492c3a3246d61831e696dffdec5d000b95e9aa1217be6e38dd6459872166aa
+DIST wasm-bindgen-futures-0.4.42.crate 15380 BLAKE2B a20ba9f2bc814d7aac031f1cbaec90289f63893b76c60b536a65af85379771e102d6c3d949a8528328587ac776d7a3b684c12a217f9e186bf10046a1fcb34652 SHA512 0a77203499381b6bc4e9258480d7ef499d9c26b195baf38d0b7b228872f844d24c827cd57c8e2b0176927fd5957428084f53fe80cf60b35b7ba02d02b27a4682
+DIST wasm-bindgen-macro-0.2.92.crate 13835 BLAKE2B 1f2202fdaeb78c32813eaf08b2fbd7aa9c469228386df71b8ffd81a46374e39a7104b79991f702505f9b7e97957fda8574517fbb03e3f9e93098c4d6e1e46be3 SHA512 78d2ddac88a9ca3ca5eef8a7af81cdf2366187a67d844e69f65f6893d1949f9723ab5f2be762c2217a5c21aee2f3dbc2d5d55ef0c9cbf0dec0d52d67a6ba7462
+DIST wasm-bindgen-macro-support-0.2.92.crate 20092 BLAKE2B 8e274a4053e7afc680740e811c3941478caf5342e2206e3d28cdea9f9514bedbfa4f2b6bc608817306a1c455dd7134b7e17f0f04499f6bfb5302f29b041ac7ae SHA512 92543d2aad0b25798ec20e68832b823610c2c01401088cd9cac1684a86ddd1b567b3e2712acb862060f9c645a0df509b01d9834fd3e13cdaab97960f66d8daa7
+DIST wasm-bindgen-shared-0.2.92.crate 7263 BLAKE2B e54895486b9a31cc4651b7bb042059cc84421708346c06a9764315ebd4f440a1077520c7d325d6889a690b2c06aa185d40cede2dc4d061b363594cbde20fac31 SHA512 70e3a22731ed8aec428433bf30500eb3f62e3b7f4f1be34d8bb3b6f34f99690fc85d49eb413caecab807064494cfec64242c6a42709dffd638046e370bf86e07
+DIST web-sys-0.3.69.crate 728877 BLAKE2B 9f1678cbddb15f5a37331216a43785c72896f87e8ce62c6b9e69007316ca6eeaa7edbb33b9f2d9bf96c98de2a1e10afe491d8734657b186e2c3905ad1ff19ad9 SHA512 78b79ceb6a47485c766ad660bb8b971ba549424542a020c35c7db64a19f7b161617e464eaea0602f433b6ac4973b8d1a86a56e76dcda179ccea60aef1245347b
+DIST widestring-1.1.0.crate 85046 BLAKE2B 591f8ba6c3c45721d342fd4668805c19915d500b2b46b8e1e75a485ebc772db187acec791205415e5cbf288ee70299a5813a3185d933443d426eb61d7fc6003f SHA512 a4feb959e19d5238e89b0973f040b26849f896e7e9fd567d0e74fbb4972958a4dd76e74de5ea8d407b74cff28f20f9c80446488da6abdbee38aa87a94d683435
+DIST winapi-0.3.9.crate 1200382 BLAKE2B cb5799749ccd935ea2d7068d953cecf19f543d9db7dc16ad4584bb7005373ada34937a3ced7225544d8bc765da599911c7a3190efefb3a25b7c1bb7123b4f673 SHA512 ff8b7b78065f3d8999ec03c725a0460ebc059771bf071c7a3df3f0ecd733edf3b0a2450024d4e24e1aedddaecd9038ce1376c0d8bbf45132068cf45cf4a53a97
+DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2
+DIST winapi-util-0.1.9.crate 12464 BLAKE2B 7fb9dd803fc2608c4e5bc75674472992d82da364f24c22072d5624d6ae6abc44abd3e3ea3c45a7558e045331f3d87572b306b4ab5de52c07ff3706e7f13c2a38 SHA512 c46b893f67ec6e36499b00736bb6b9421e0e2611e76784afa6da01d7ebd033df82f1be7cf8d871d541125d290983f98f26f759488ba9aface49efce8edd682e9
+DIST winapi-x86_64-pc-windows-gnu-0.4.0.crate 2947998 BLAKE2B 2ad1ea8b5fa07d544e910ccba043ae925269b76b26c9da356305b34b86741dd8b9aff0b9ffe3d562db4fcd7d7c46a11ce9e3168b782b1d89ae6881742b7ede82 SHA512 4a654af6a5d649dc87e00497245096b35a2894ae66f155cb62389902c3b93ddcc5cf7d0d8b9dd97b291d2d80bc686af2298e80abef6ac69883f4a54e79712513
+DIST windows-sys-0.48.0.crate 2628884 BLAKE2B 551e900de4f67187ef034b60df9fd0e0d8f82a3100ef28e1eabd543ac129d882dc86ffcc1714071aba09e4cb2ae2d2f07ace1a32b99fd989ce525cf05991edab SHA512 bdf534bcf3face31e9ebe11427a911a53f89f4ff5eaea8cccd094e139bfe14b2aec602b1cab1df774794d999477439d9adc6b627a8e33c20334fc348ba2c47ed
+DIST windows-sys-0.52.0.crate 2576877 BLAKE2B 69d6b560ccfc8f679e2678663ba606060d71fa28efa82c8aef8cceaa2c63b06f2052764d60163964f939649a26bbec6361ee4b094555e941fae92070db566980 SHA512 24ee0df246c2b456a4987a9124786a28acd358768cc7d1305bccd81bc5bb8822b81a03fb18d35174a520b911c6d9b685f81a34ab319fee13da3b985273584f03
+DIST windows-sys-0.59.0.crate 2387323 BLAKE2B 3110c8cd2bc005f8c95cd038a8d574af648dc19788fe4485f977376f92e36b911b1a542d669a07ae9cd4ea72a884ab01ec78b8a2b5587456eb202452d1d8fa0d SHA512 d35e009e979633a1f3c8468cd038bd5c8c0381405165ce03497decd7d9edaaac485d704487e4a61d9aaf4e4d011b4248408912df6a0044d50e8457259867e061
+DIST windows-targets-0.48.5.crate 6904 BLAKE2B 7396bb210f37bd51da86f39fca3425c8f6610721d5c4e94f9fafa0a8a8046303b3fcc6979146bcfaa32f4406d242a0455f6cbb220f84c6ff84650e755acf5223 SHA512 e079eeef255a046be7f8e6a31c14f7b230254ebcf05eed2944827bb3d2a0dc30940d87593cf544d5e7ef35f6312b99430efcfb01421d91b02bb9c4bef7d98709
+DIST windows-targets-0.52.6.crate 6403 BLAKE2B eb98d0a8daeed5fe76e7fa8edb2743e2a3e77dfb9c4ea68605a6ab10532cb7cfc43bc1cea0180869445bd940be762a40136500e26b84ca88b5e0c502004c7a4c SHA512 d6d2dbd96096c6c396dba141a9817e377c35877f3b2fe58b2553280c7cfcb1ed6ee75bd4d62c9b882662de67ddaf0c1049b91530d29c94dd709c230e08eb895f
+DIST windows_aarch64_gnullvm-0.48.5.crate 418492 BLAKE2B 5c6f7d73ad05740f0bac304ed1ef9b2ea63b0d6ca8f875552ae299a0b73b1557e8fe996f1c2b69be9f2df350c9288690f49ee62239a2896991364331d6c55462 SHA512 20158d31454488f6053d3ad7b97d7fc6eae6cf37e4ba0e50c28bd29b368505eed64199ae31104d5f97b66846be54e5ed25c0ad31ea850819205c573a31ac0996
+DIST windows_aarch64_gnullvm-0.52.6.crate 435718 BLAKE2B 8b12ae02892cb69401329034bbca671d13bd268a112120b56b90504707cef89decfbd2560492844a9f0588fab62dc1476ab7e931126b939015d25a8cc91ca334 SHA512 f62b2d942bdb3a9353465b07d47b93de179bb706511aa497e4addd74cff95e689a9b633e7801ce786e73b5ae5f30b506b6faa199c5ab86eefdc1d94652df79c5
+DIST windows_aarch64_msvc-0.48.5.crate 798483 BLAKE2B 60c466d6536426425a34b5ca20da97c8127ebeb4fb9b1363911165bada484f8913fcd50e90410b5661e0c27dbfe8f4eeaa62fb17d1f3566bfc82b6255e11619b SHA512 223f016c6f1a44dbc5c8a8428b39438f75380ea06951b7c26ed0877b19d79410c6fde5e4c7f2c839b6e76159131f39a1230e0e3a208dfc425ba9117e3665c4ff
+DIST windows_aarch64_msvc-0.52.6.crate 832615 BLAKE2B adc8ff61b6dc96d39c92c7d4221ae6aa0575edfc016cfcd046067ca5d8fcfd56d10e8e227be1c038ce34684be22c7ccaf5f18cd5a7638d28fbff4ba15b48b90b SHA512 a3e21305ad0e6de38f5b5ed5d37ee5825b7521064163bcdf31d63341cd87983f54377865d2daf3bb480d2d0aa66d6f598fa09540ec1d71baea74569c86bd213b
+DIST windows_i686_gnu-0.48.5.crate 844891 BLAKE2B fdc37cd74a4982056bf22fdb7b84e1c55dc838f3cb19ff3648730a77e673ef4ecc0380b3e4277bb8df2fcfa25f57b69014713d9e3ed27c28e19b25b3ea2ab774 SHA512 931ba5c1e4eb8ae73248e00d9611298d1c4b4b0dae719fdeb9243930cd420a103a7bc2738e0a4887c42c8f25728d6c5d64ad141dc092bc3f1d0f35dbe37d303a
+DIST windows_i686_gnu-0.52.6.crate 880402 BLAKE2B 5aab8ee07132eccb7695807eb44811beeb0657aadfb672c54e99b6ae39c067ba9b93e38fc69bb5b9b14a9759f263ccd5e301597d2727d83b31b49a409b6bd405 SHA512 a1f6b5dd23d17ec3567bc9d11a4be6f35e196eee21ca342e9b88dbaa6a5f7c46e439c834b77e724f32ac22c0d81573746b3b513a6c944a221b92b2c76fe98822
+DIST windows_i686_gnullvm-0.52.6.crate 475940 BLAKE2B fec4fda8bb2bf319a501a22372fa642ae682e4dee3235b258a028190ee73220bfc55b3142f06249bb4579b17e5fde662bb2b121aefe18544653350d7d0fe7d8e SHA512 95f13af855d530acc0b856214478d4b11b8dbab3f8f79dd223d0b009790c0e46d096fc1773e0277997deb2d5b96c704f17f23c7df11411524629f75415dec99f
+DIST windows_i686_msvc-0.48.5.crate 864300 BLAKE2B 3d3ea8be55e2d6ced0eeda18abe1dffb925a1a78f456d683e4450d9f2fd287ad2e8494d65b2b770c677a12b3a60d10f0435e16c61880e3867c3657fd44892442 SHA512 70e2fb4fdb006a4cbd43ab2c7e940b277a15fb1790dfa2d1fc1f1fd18bead4886f6dc046e44326603e4894d988578917b8932aba5d9a6a4cc8424911cad9dc7e
+DIST windows_i686_msvc-0.52.6.crate 901163 BLAKE2B 99ed34e052db5ba77bab240ed5d38ce450be347a794d63ec39b719304c32722c9999b540ab40abe0216318900b7412970df99dfb36d1516a9517cae0c77d1bdc SHA512 ca97913ce202d73266cf55947b868bea7e964a4516b6a096a81aeab6a60ee73867171032ced35e3afccff741ddfb2def7468343b6eceb95253e4d4f349efbf96
+DIST windows_x86_64_gnu-0.48.5.crate 801619 BLAKE2B aa7e7e6a6ff9f9553ada3a0a39a9aa798e9d995a8eef36e0b6fdb2a0db93ddecee5548970575271fe43aec74797a420d0ee231d503b5bad1bd999059261e0e33 SHA512 1d6056fae430b3d042bdff3c6217c76be4b8b9f5dada9bad06beaac2db7d7ab9b0a82e44f498ec88e61afa73e99f56d84d445dc3847732b9ce5d947e08485f74
+DIST windows_x86_64_gnu-0.52.6.crate 836363 BLAKE2B e2335829155cdbd4a55cc9f9babc237e14e32aab97f6f91afabcdf80d2aee37d6fb4b8669aaf433ff532c85dba59b3d366c7d41b61a2f29b96f960169c900687 SHA512 c4086bb0280042f2bef9b556283b67f8a5cacddd209e1c5fabec63decec6d4fd2d6a7071407973981b98ae0c0cf7034fc612f9e70dc6d3eed9acdec771ae31cb
+DIST windows_x86_64_gnullvm-0.48.5.crate 418486 BLAKE2B 12a2199d434617c1df1a839e9f435620ad64b40c579f6d0c3677553ad7a48e5765d12c266b04946402e15c92cff2e4ac4979ce2130750ef426e2672119680284 SHA512 c016d5b5e73832b61ff67929d92fa8c16e154656294357266ad29ce1f44db4ca2d2935dba31a6b571187dc838b1d22f1e3b41fefffd1d719a338439adf1646aa
+DIST windows_x86_64_gnullvm-0.52.6.crate 435707 BLAKE2B ab77dccd06328cdb00175f41cdbc120594050a9678b7f9820444391fb50aada3911a91ea00f3a6db2b4fa1820fd23bc9a007dfbe65ad41417c26ee1137ef9b96 SHA512 67681f5859e249c56b0183181811f6212cc7008d6471dad78aecc7ebe3d027686b19210b8aa9014c554410f69f913d21ce2aca928eea905eab779bea26464cbd
+DIST windows_x86_64_msvc-0.48.5.crate 798412 BLAKE2B 8abc0721e2fb337fe17c91d278947d36122d9045b839ba0cf3e690202d242265b676f23cc301da5f9d98c56ca4ecb76f7d6f072ee71bf986a1deca87020b90e5 SHA512 fa1c5cd14ca2ff0082e2504cf59d317dc4dc6f7138d35c12f95d4476a9c13d8b7f5537d0ee251eee7c99411ad31b22263171b7fbd391daa5d3ea3488ceaa61a0
+DIST windows_x86_64_msvc-0.52.6.crate 832564 BLAKE2B 8e9a3044654c6de99a9153e7cacd575474e7a8a3d883c67b02132af5d3fc99d03cd5f7a4dd666a3947451d11218e6acc6eb5e2526f012481106cc13453839719 SHA512 21944cd8e3a481b514509e73ae3f62722fe7ed380d37ea0c25f8fbdeba79174dd52ff65d898838da5df4197894b74e00f45d47489418e978753b4e55c7e623e7
+DIST winnow-0.7.1.crate 170986 BLAKE2B 0c68ef187c248b7a04fc86aca9ed87eaa1cbfbf7ba63c64f6aceb9398d57d8d3a250d23d581710d86b593dc816fdac89c3a95abf3c4fe6c830a9d488ab95d512 SHA512 640952229a81845fbc2e425c816298481dcd7c86ba237e7f3d7cfc4e38a590e62787f0a1468037314c40452df69070f7809291f084484ea5a1ebc5e5315e0899
+DIST winreg-0.50.0.crate 29703 BLAKE2B db9a968ef96cc07bc1088831affc4627e09c7ab8170a54fdf70a599c2d6180a8a9ac46b6304b61fdd2fac96e01bb004ebd8051940300c7b52c5b7b7975732d11 SHA512 2f52a9e3ab794665263499c88dfdf06009c6477d180a90ebbe86e786ae7f5003c9dc8b3c26224024e79450f3b94688000458f2ea8b1ae1c3691453c3d4df4787
+DIST wit-bindgen-rt-0.33.0.crate 3357 BLAKE2B 7c5227e835eb405b681ba36a2472fb3330b9e44f8e9cef06ae5de326691d4e4535cfd09843241963572060f4ccb048aa088fb8692591f9253cd215f510969420 SHA512 fffae2da775fcb5066398aba5cd02119a07f5bb5ab2282c74f1665656de0278ba13352b8ccc6ff107677aec3ec5d401729158332f653e0a2e7b393d1aa018b8a
+DIST write16-1.0.0.crate 7218 BLAKE2B 548796314339463e4b71f8af3d344e45dc89480e103180b6d56c90fcb816ad1a37ab2ba20766c4b9754f2cc686752eb1f3a5a12ec1ed4369a9cef749ad4f3e97 SHA512 655a207b8082bb88e462f992ecb4833cef9d590da06d6356b41d109df2862b49ee5705189c78a607b549e7343035119d158020d58fcad49608e51659357a83c1
+DIST writeable-0.5.5.crate 22354 BLAKE2B e4ff9862c070b413568ce0c75d1eccafcf1db8578eee4795ea9046dadd643f8a77258b437be288b93af247199d63455298ac2cff909226bc432f91c0aa863921 SHA512 818b2546c8ec25816aeaf5e31a1ded927d197bf7256e7c5073738c2709bc58a95d382a0256eb38a99235ae83729b578701261866d42ea3357a26024906e196c1
+DIST yoke-0.7.5.crate 29673 BLAKE2B cd2e42103140e080a29bf579fe5176b36a192f9b1309c1f2fd7557fe93b2f6eadbf6fca4a6a3b1a7b6288403d2f643841dfc7a5b6a4476776943950abe5c1613 SHA512 6bbd99671d1a5a5217890eaa267113d193b3636b265393afb6e72a313f01704d462fe017264f061405e8e84c188b590094c29e3fcf19a63c375ae165d1a0bbef
+DIST yoke-derive-0.7.5.crate 7525 BLAKE2B 9b6b97eaf3c50f0f5ce8cebf685a1a17d4c21eb9b26d38eac99e0a4c0f9d592e95a7843b7a0b897945a14c4eb78ffdf2c0972b448d31d7bc7b077f27aad81d9a SHA512 e30b06b020aa283080905004295fb643c539b130d0d53bda51927b95e79ba562336aad30d8a6202d9a0c62d5b64559a01218c6f02f3faada6003d4b03c205cd6
+DIST zerocopy-0.7.35.crate 152645 BLAKE2B 8f13123c9d9257ac5a5c6954d38c3510fa658624442f7e03cdcc6db5a0977d9f26bb4e277be172b7872ec365cf6e58ac742e5578636f7698f9f37093e9249d9a SHA512 17fcb31c029ae89c01e5bae5fb2bb46bd434120199a3dc2c7fe0012dbbcfe2a0bb38934c4a7d3a4920e3fe47c097403beee554fefa54b66cb390f8b1de638d3c
+DIST zerocopy-0.8.14.crate 229188 BLAKE2B 9a77e34a409cd2e02bde03ac27b5c676ba24deee2044ea40df3733c7c917b7b007b5eeb3770787215c5562f539a10df63bef3b2e14fc1907b884b5ab142315ba SHA512 3fa3186cc509fe92ecc305f331b3422a2b622803fa088028d4a8c07bb74a670e4289d8c3b5c617ce1315cd09192058e1491ee87d78c81efb2840d187d6805f30
+DIST zerocopy-derive-0.7.35.crate 37829 BLAKE2B badeb7fa5e0bfe93a6788d93fd297604ed31de526b121549300ead3c49d450f49265f499e2e7ce606dcce2b59dd01f7fa817b8fbb3f237475185c5b42f5299c4 SHA512 dbe23573b62a6267d7bc8c744320b75b2fbda03b908c1d175211f7394374fe182bce58021e25485c10671d726b2007f250565dfe53134d51c89293bb607e9feb
+DIST zerocopy-derive-0.8.14.crate 80308 BLAKE2B f66557cddeae39596cd6cdbd86f4444622281fdec823660250a19ebb2610e1a611341560025ee11d31898e844edb33c8de62e1623243babe9d59529eedd81131 SHA512 7204b9584cc6bdbcb1bf2408be26ebc5266ec3084816c2eafbc7e0712437eeceaf479851388534a11a310d354b43261c1cdc0b01391bf2550ce0efd9fc4ab461
+DIST zerofrom-0.1.5.crate 5091 BLAKE2B a2b938197957755c4a8ccfb258f60f90931a0a342d9d4bd098c7a25e1c9069148a51ddfffd2b72a6a9856d8c6e66fe1482ab2081a5f3478b4b318062caffff42 SHA512 11f16a1003967b3f30d7b32ffc8541ec05fb335690b08cf4f7554c624ad4312ee0961c83390a997e2a73aee06d8bb09a0ff4e6a5e489f8fb925141e732006544
+DIST zerofrom-derive-0.1.5.crate 8285 BLAKE2B d19bf1b74be89f4d27eda36ba6407d598358d3d69bed64f02903ab7dc509faa006cde9c13e19f5f3cde09cf9049120575263996c922b20da366a11e18baa42dc SHA512 75098e0f1c690bd8476f819f4ea2a7645b88237042a8876259bf4e025b070a4b105caf16ca7a824c5dd6c4690b693fcc74bed9ac0b5e6fdab05a5bed1b5cb298
+DIST zerovec-0.10.4.crate 126398 BLAKE2B b078784d6f178bbb9de1c3c1b6c7ef996f00bdd7dfd2924bda921e62f3e09e953fbf50f8d0da99ac6ff6d134f146253846f5663549dcf8df08eaf34b9d4016b3 SHA512 db12bba1d7476ddead92e6dfcdcc30e2e0defff4f263a740244eabee265a2cab265473a663d3dc3210f48e113b66d951da496dfab7965ce1bc792e5f2db422a0
+DIST zerovec-derive-0.10.3.crate 19438 BLAKE2B 9f7df8a4e4a0b62ab25aed967b26509db4bcc5d5b10b3bd73305099a4c49a60be8921484ced1a34d9b7ae30ffa5abe789686f432416a8f1cfc07de1db1dff594 SHA512 caefbffeb35265db9f74933bf07109d57f0da48156cafd4f330af78a5c7eb9ab0831a80789ad4fb119875ebc6cfd7e3de68c9984b77dca5151f9be41f1ae6e09
diff --git a/net-analyzer/rustscan/metadata.xml b/net-analyzer/rustscan/metadata.xml
new file mode 100644
index 000000000000..0938545f15e4
--- /dev/null
+++ b/net-analyzer/rustscan/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>ago@gentoo.org</email>
+ <name>Agostino Sarubbo</name>
+ </maintainer>
+ <use>
+ <flag name="nmap">Installs <pkg>net-analyzer/nmap</pkg>
+ </flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/rustscan/rustscan-2.4.1.ebuild b/net-analyzer/rustscan/rustscan-2.4.1.ebuild
new file mode 100644
index 000000000000..0a9a094b00fe
--- /dev/null
+++ b/net-analyzer/rustscan/rustscan-2.4.1.ebuild
@@ -0,0 +1,311 @@
+# Copyright 2025-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Autogenerated by pycargoebuild 0.13.4
+
+EAPI=8
+
+CRATES="
+ addr2line@0.22.0
+ adler@1.0.2
+ ahash@0.8.11
+ aho-corasick@1.1.3
+ anes@0.1.6
+ ansi_term@0.12.1
+ anstream@0.6.18
+ anstyle-parse@0.2.4
+ anstyle-query@1.1.0
+ anstyle-wincon@3.0.6
+ anstyle@1.0.7
+ anyhow@1.0.86
+ async-channel@1.9.0
+ async-channel@2.3.1
+ async-executor@1.12.0
+ async-global-executor@2.4.1
+ async-io@2.3.3
+ async-lock@3.4.0
+ async-std@1.13.0
+ async-task@4.7.1
+ async-trait@0.1.81
+ atomic-waker@1.1.2
+ autocfg@1.3.0
+ backtrace@0.3.73
+ base64@0.21.7
+ bitflags@2.6.0
+ blocking@1.6.1
+ bumpalo@3.16.0
+ bytes@1.6.0
+ cast@0.3.0
+ cc@1.0.106
+ cfg-if@1.0.0
+ ciborium-io@0.2.2
+ ciborium-ll@0.2.2
+ ciborium@0.2.2
+ cidr-utils@0.6.1
+ cidr@0.2.3
+ clap@4.5.13
+ clap_builder@4.5.13
+ clap_derive@4.5.13
+ clap_lex@0.7.1
+ colorchoice@1.0.1
+ colored@3.0.0
+ colorful@0.3.2
+ concurrent-queue@2.5.0
+ criterion-plot@0.5.0
+ criterion@0.5.1
+ crossbeam-deque@0.8.5
+ crossbeam-epoch@0.9.18
+ crossbeam-utils@0.8.20
+ crunchy@0.2.2
+ data-encoding@2.6.0
+ dirs-sys@0.5.0
+ dirs@6.0.0
+ displaydoc@0.2.5
+ either@1.13.0
+ enum-as-inner@0.6.0
+ env_filter@0.1.0
+ env_logger@0.11.6
+ equivalent@1.0.1
+ errno@0.3.9
+ event-listener-strategy@0.5.2
+ event-listener@2.5.3
+ event-listener@5.3.1
+ fastrand@2.1.0
+ form_urlencoded@1.2.1
+ futures-channel@0.3.30
+ futures-core@0.3.30
+ futures-executor@0.3.30
+ futures-io@0.3.30
+ futures-lite@2.3.0
+ futures-macro@0.3.30
+ futures-sink@0.3.30
+ futures-task@0.3.30
+ futures-util@0.3.30
+ futures@0.3.30
+ gcd@2.3.0
+ getrandom@0.2.15
+ getrandom@0.3.1
+ gimli@0.29.0
+ gloo-timers@0.3.0
+ half@2.4.1
+ hashbrown@0.12.3
+ hashbrown@0.13.2
+ hashbrown@0.15.0
+ heck@0.4.1
+ heck@0.5.0
+ hermit-abi@0.3.9
+ hermit-abi@0.4.0
+ hickory-proto@0.24.3
+ hickory-resolver@0.24.3
+ hostname@0.3.1
+ humantime@2.1.0
+ icu_collections@1.5.0
+ icu_locid@1.5.0
+ icu_locid_transform@1.5.0
+ icu_locid_transform_data@1.5.0
+ icu_normalizer@1.5.0
+ icu_normalizer_data@1.5.0
+ icu_properties@1.5.1
+ icu_properties_data@1.5.0
+ icu_provider@1.5.0
+ icu_provider_macros@1.5.0
+ idna@0.5.0
+ idna@1.0.3
+ idna_adapter@1.2.0
+ indexmap@1.9.3
+ indexmap@2.6.0
+ ipconfig@0.3.2
+ ipnet@2.9.0
+ is-terminal@0.4.13
+ is_terminal_polyfill@1.70.0
+ itertools@0.10.5
+ itertools@0.14.0
+ itoa@1.0.11
+ js-sys@0.3.69
+ kv-log-macro@1.0.7
+ libc@0.2.155
+ libredox@0.1.3
+ linked-hash-map@0.5.6
+ linux-raw-sys@0.4.14
+ litemap@0.7.4
+ lock_api@0.4.12
+ log@0.4.25
+ lru-cache@0.1.2
+ match_cfg@0.1.0
+ memchr@2.7.4
+ miniz_oxide@0.7.4
+ mio@0.8.11
+ num-bigint@0.4.6
+ num-integer@0.1.46
+ num-traits@0.2.19
+ num_cpus@1.16.0
+ object@0.36.1
+ once_cell@1.20.3
+ oorandom@11.1.4
+ option-ext@0.2.0
+ parameterized-macro@2.0.0
+ parameterized@2.0.0
+ parking@2.2.0
+ parking_lot@0.12.3
+ parking_lot_core@0.9.10
+ percent-encoding@2.3.1
+ pin-project-lite@0.2.14
+ pin-utils@0.1.0
+ piper@0.2.3
+ plotters-backend@0.3.7
+ plotters-svg@0.3.7
+ plotters@0.3.7
+ polling@3.7.2
+ ppv-lite86@0.2.17
+ proc-macro2@1.0.93
+ quick-error@1.2.3
+ quote@1.0.36
+ rand@0.8.5
+ rand@0.9.0
+ rand_chacha@0.3.1
+ rand_chacha@0.9.0
+ rand_core@0.6.4
+ rand_core@0.9.0
+ rayon-core@1.12.1
+ rayon@1.10.0
+ redox_syscall@0.5.2
+ redox_users@0.5.0
+ regex-automata@0.4.7
+ regex-syntax@0.8.4
+ regex@1.10.5
+ resolv-conf@0.7.0
+ ring@0.17.8
+ rlimit@0.10.2
+ rustc-demangle@0.1.24
+ rustix@0.38.34
+ rustls-pemfile@1.0.4
+ rustls-webpki@0.101.7
+ rustls@0.21.12
+ ryu@1.0.18
+ same-file@1.0.6
+ scopeguard@1.2.0
+ sct@0.7.1
+ serde@1.0.204
+ serde_derive@1.0.204
+ serde_json@1.0.120
+ serde_spanned@0.6.8
+ slab@0.4.9
+ smallvec@1.13.2
+ socket2@0.5.7
+ spin@0.9.8
+ stable_deref_trait@1.2.0
+ strsim@0.11.1
+ syn@2.0.96
+ synstructure@0.13.1
+ terminal_size@0.3.0
+ text_placeholder@0.5.1
+ thiserror-impl@1.0.61
+ thiserror-impl@2.0.11
+ thiserror@1.0.61
+ thiserror@2.0.11
+ tinystr@0.7.6
+ tinytemplate@1.2.1
+ tinyvec@1.7.0
+ tinyvec_macros@0.1.1
+ tokio-rustls@0.24.1
+ tokio@1.38.0
+ toml@0.8.20
+ toml_datetime@0.6.8
+ toml_edit@0.22.23
+ tracing-attributes@0.1.27
+ tracing-core@0.1.32
+ tracing@0.1.40
+ unicode-bidi@0.3.15
+ unicode-ident@1.0.12
+ unicode-normalization@0.1.23
+ untrusted@0.9.0
+ url@2.5.2
+ utf16_iter@1.0.5
+ utf8_iter@1.0.4
+ utf8parse@0.2.2
+ value-bag@1.9.0
+ version_check@0.9.4
+ wait-timeout@0.2.1
+ walkdir@2.5.0
+ wasi@0.11.0+wasi-snapshot-preview1
+ wasi@0.13.3+wasi-0.2.2
+ wasm-bindgen-backend@0.2.92
+ wasm-bindgen-futures@0.4.42
+ wasm-bindgen-macro-support@0.2.92
+ wasm-bindgen-macro@0.2.92
+ wasm-bindgen-shared@0.2.92
+ wasm-bindgen@0.2.92
+ web-sys@0.3.69
+ widestring@1.1.0
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-util@0.1.9
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ winapi@0.3.9
+ windows-sys@0.48.0
+ windows-sys@0.52.0
+ windows-sys@0.59.0
+ windows-targets@0.48.5
+ windows-targets@0.52.6
+ windows_aarch64_gnullvm@0.48.5
+ windows_aarch64_gnullvm@0.52.6
+ windows_aarch64_msvc@0.48.5
+ windows_aarch64_msvc@0.52.6
+ windows_i686_gnu@0.48.5
+ windows_i686_gnu@0.52.6
+ windows_i686_gnullvm@0.52.6
+ windows_i686_msvc@0.48.5
+ windows_i686_msvc@0.52.6
+ windows_x86_64_gnu@0.48.5
+ windows_x86_64_gnu@0.52.6
+ windows_x86_64_gnullvm@0.48.5
+ windows_x86_64_gnullvm@0.52.6
+ windows_x86_64_msvc@0.48.5
+ windows_x86_64_msvc@0.52.6
+ winnow@0.7.1
+ winreg@0.50.0
+ wit-bindgen-rt@0.33.0
+ write16@1.0.0
+ writeable@0.5.5
+ yoke-derive@0.7.5
+ yoke@0.7.5
+ zerocopy-derive@0.7.35
+ zerocopy-derive@0.8.14
+ zerocopy@0.7.35
+ zerocopy@0.8.14
+ zerofrom-derive@0.1.5
+ zerofrom@0.1.5
+ zerovec-derive@0.10.3
+ zerovec@0.10.4
+"
+
+RUST_MIN_VER="1.80"
+
+inherit cargo
+
+DESCRIPTION="The Modern Port Scanner"
+HOMEPAGE="https://github.com/RustScan/RustScan"
+SRC_URI="https://github.com/RustScan/RustScan/archive/${PV}.tar.gz -> ${P}.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+S="${WORKDIR}/RustScan-${PV}"
+LICENSE="GPL-3"
+# Dependent crate licenses
+LICENSE+=" Apache-2.0 ISC MIT MPL-2.0 Unicode-3.0 Unicode-DFS-2016"
+SLOT="0"
+KEYWORDS="~amd64"
+IUSE="nmap"
+RDEPEND="nmap? ( net-analyzer/nmap )"
+
+src_test() {
+ # those tests require the network
+ if has network-sandbox ${FEATURES} ; then
+ local CARGO_SKIP_TESTS=(
+ address::tests::parse_correct_host_addresses
+ address::tests::parse_hosts_file_and_incorrect_hosts
+ address::tests::resolver_args_google_dns
+ address::tests::resolver_default_cloudflare
+ )
+ fi
+
+ cargo_src_test
+}
diff --git a/net-analyzer/sancp/Manifest b/net-analyzer/sancp/Manifest
new file mode 100644
index 000000000000..82188b274820
--- /dev/null
+++ b/net-analyzer/sancp/Manifest
@@ -0,0 +1,6 @@
+DIST sancp-1.6.1-musl.patch.bz2 7013 BLAKE2B a54c3a3c45b1029a95451a21de2b42497434dff6715cb173db5f04293740f3e03869900e23c571dae97a563a9b7fdce76c4295f3267857a77a074a65e79f3b53 SHA512 3310577acef1d16b87b51924ed6fbb82b491afc5646555667fcd2430aef1b0dd5f0ee510c6356eebd32402b79eb8e9f5032955b5194517acc0c055da8dd74fc2
+DIST sancp-1.6.1.fix200511.a.patch 662 BLAKE2B d3d5114662f3904db4052d581b3a95f07f5a492b439958bd64149ca6f9aaf48f2d2d9cf2094500b9ab829b3a06358180893637ed6d3f502ef46f87dfe8527ccc SHA512 87662d9ea863a3a2468b7b64c81a191d34c81348eab9374245a73d3ed63cf2f25df54561f092f3713d516d9cc4eb553d4d7286fd920676a301e61669a023142e
+DIST sancp-1.6.1.fix200511.b.patch 870 BLAKE2B 18ad38c37f11aa1c4804400db5475323db25e0c135d3478e9c81af3a0a3885f397521fdf9b58825216fdd16ec2e2616584f3dc9e175e76d64c7125a767b2c029 SHA512 a54bbec1ce3799f83c006f7375297bafee85b12a90361f1f5dbbf46c936193c7e0f1196483a2bdf560019e93ceffe9129b3c01322eedc397e5dfa3a1a6b76b81
+DIST sancp-1.6.1.fix200601.c.patch 3578 BLAKE2B 7c7e5ef0e1967d41f731d3c79f4273a4ebfc922159ada1940ba4635f6f82e63ed55faeffe53636d2c8fd96d57e1516211fff8852c73876d019fc13d59f4ace9d SHA512 3d15028d33e7dbddc74d8c6eefac6d66e357f024dca15afdfb8156b0cf969ab093c26baa43ebf7c1ac88f4275ef4bdc91c1cc69c5aa7b439a042ed966edea30f
+DIST sancp-1.6.1.fix200606.d.patch 6847 BLAKE2B 2d3d2369738adef1ae5ea37cfcab5952be243af269574292e042e361d7d4d02174bbaea2769f5fa6bf802eea6ae9559a3b637ee4dbce1b53715f1e4b66f9df51 SHA512 474a69052a2b9642fdc59e28c0237852d49b7b05445f0ffbbd2ea3f01b70a44e10ee49fba6294b413a53afe50271aaf88f979f8c479fb4b464b3ba5a70534276
+DIST sancp-1.6.1.tar.gz 69986 BLAKE2B 66ed4f5817f1bc299edc66441eea97fa0deeb0fffb15aeb251e3b0351d35f1c25aa452b30e0ba3feb80d306929687448228d0b6ac96e8deaf16c83322b73916a SHA512 41c6b35a2e7295d3b8185b9cc556c56b285cae7542c7ace78e663e54cef8d470bfa2ee083d9837fa34cf5ad1e7c325fb838b00e4f776f5662cade7d61e07145c
diff --git a/net-analyzer/sancp/files/sancp-1.6.1-compiler.patch b/net-analyzer/sancp/files/sancp-1.6.1-compiler.patch
new file mode 100644
index 000000000000..5b4391d79ddc
--- /dev/null
+++ b/net-analyzer/sancp/files/sancp-1.6.1-compiler.patch
@@ -0,0 +1,45 @@
+--- a/Makefile
++++ b/Makefile
+@@ -1,26 +1,26 @@
+
+ # !!! Uncomment this CFLAGS for a small binary !!!
+-CFLAGS = -O3 -s -I/usr/include/pcap -L/usr/lib/libpcap.so.0.6.2
++CFLAGS += -I/usr/include/pcap -L/usr/lib/libpcap.so.0.6.2
+
+ # !!! or uncomment this CFLAGS for a large binary with symbols; use for debugging !!!
+ #CFLAGS = -O0 -g -I/usr/include/pcap -L/usr/lib/libpcap.so.0.6.2
+
+ final : sancp.cc Makefile
+- if [ ! -f build_acl.o -o build_acl.cc -nt build_acl.o ]; then g++ -Wall $(CFLAGS) -c build_acl.cc -o build_acl.o; fi
+- if [ ! -f misc_functs.o -o misc_functs.cc -nt misc_functs.o ]; then g++ -Wall $(CFLAGS) -c misc_functs.cc -o misc_functs.o; fi
+- if [ ! -f outputFileHandle.o -o outputFileHandle.cc -nt outputFileHandle.o ]; then g++ -Wall $(CFLAGS) -c outputFileHandle.cc -o outputFileHandle.o; fi
+- if [ ! -f apply_rule.o -o apply_rule.cc -nt apply_rule.o ]; then g++ -Wall $(CFLAGS) -c apply_rule.cc -o apply_rule.o; fi
+- if [ ! -f decode.o -o decode.cc -nt decode.o ]; then g++ -Wall $(CFLAGS) -c decode.cc -o decode.o; fi
+- if [ ! -f fileHandle.o -o fileHandle.cc -nt fileHandle.o ]; then g++ -Wall $(CFLAGS) -c fileHandle.cc -o fileHandle.o; fi
+- if [ ! -f MemoryPool.o -o MemoryPool.cc -nt MemoryPool.o ]; then g++ -Wall $(CFLAGS) -c MemoryPool.cc -o MemoryPool.o; fi
+- if [ ! -f pcapFileHandle.o -o pcapFileHandle.cc -nt pcapFileHandle.o ]; then g++ -Wall $(CFLAGS) -c pcapFileHandle.cc -o pcapFileHandle.o; fi
+- if [ ! -f sancp.o -o sancp.cc -nt sancp.o ]; then g++ -Wall $(CFLAGS) -c sancp.cc -o sancp.o; fi
+- if [ ! -f pcap_functions.o -o pcap_functions.c -nt pcap_functions.o ]; then gcc -Wall $(CFLAGS) -c pcap_functions.c -o pcap_functions.o; fi
+- if [ ! -f help.o -o help.cc -nt help.o ]; then g++ -Wall $(CFLAGS) -c help.cc -o help.o ; fi
+- if [ ! -f permissions.o -o permissions.cc -nt permissions.o ]; then g++ -Wall $(CFLAGS) -c permissions.cc -o permissions.o ; fi
+- if [ ! -f check_packet.o -o check_packet.cc -nt check_packet.o ]; then g++ -Wall $(CFLAGS) -c check_packet.cc -o check_packet.o; fi
+- if [ ! -f statefull_logging.o -o statefull_logging.cc -nt statefull_logging.o ]; then g++ -Wall $(CFLAGS) -c statefull_logging.cc -o statefull_logging.o ; fi
+- g++ -Wall $(CFLAGS) -o sancp sancp.o misc_functs.o check_packet.o statefull_logging.o build_acl.o apply_rule.o decode.o pcap_functions.o pcapFileHandle.o fileHandle.o MemoryPool.o help.o permissions.o outputFileHandle.o -lpcap
++ if [ ! -f build_acl.o -o build_acl.cc -nt build_acl.o ]; then $(CXX) -Wall $(CFLAGS) -c build_acl.cc -o build_acl.o; fi
++ if [ ! -f misc_functs.o -o misc_functs.cc -nt misc_functs.o ]; then $(CXX) -Wall $(CFLAGS) -c misc_functs.cc -o misc_functs.o; fi
++ if [ ! -f outputFileHandle.o -o outputFileHandle.cc -nt outputFileHandle.o ]; then $(CXX) -Wall $(CFLAGS) -c outputFileHandle.cc -o outputFileHandle.o; fi
++ if [ ! -f apply_rule.o -o apply_rule.cc -nt apply_rule.o ]; then $(CXX) -Wall $(CFLAGS) -c apply_rule.cc -o apply_rule.o; fi
++ if [ ! -f decode.o -o decode.cc -nt decode.o ]; then $(CXX) -Wall $(CFLAGS) -c decode.cc -o decode.o; fi
++ if [ ! -f fileHandle.o -o fileHandle.cc -nt fileHandle.o ]; then $(CXX) -Wall $(CFLAGS) -c fileHandle.cc -o fileHandle.o; fi
++ if [ ! -f MemoryPool.o -o MemoryPool.cc -nt MemoryPool.o ]; then $(CXX) -Wall $(CFLAGS) -c MemoryPool.cc -o MemoryPool.o; fi
++ if [ ! -f pcapFileHandle.o -o pcapFileHandle.cc -nt pcapFileHandle.o ]; then $(CXX) -Wall $(CFLAGS) -c pcapFileHandle.cc -o pcapFileHandle.o; fi
++ if [ ! -f sancp.o -o sancp.cc -nt sancp.o ]; then $(CXX) -Wall $(CFLAGS) -c sancp.cc -o sancp.o; fi
++ if [ ! -f pcap_functions.o -o pcap_functions.c -nt pcap_functions.o ]; then $(CC) -Wall $(CFLAGS) -c pcap_functions.c -o pcap_functions.o; fi
++ if [ ! -f help.o -o help.cc -nt help.o ]; then $(CXX) -Wall $(CFLAGS) -c help.cc -o help.o ; fi
++ if [ ! -f permissions.o -o permissions.cc -nt permissions.o ]; then $(CXX) -Wall $(CFLAGS) -c permissions.cc -o permissions.o ; fi
++ if [ ! -f check_packet.o -o check_packet.cc -nt check_packet.o ]; then $(CXX) -Wall $(CFLAGS) -c check_packet.cc -o check_packet.o; fi
++ if [ ! -f statefull_logging.o -o statefull_logging.cc -nt statefull_logging.o ]; then $(CXX) -Wall $(CFLAGS) -c statefull_logging.cc -o statefull_logging.o ; fi
++ $(CXX) -Wall $(CFLAGS) $(LDFLAGS) -o sancp sancp.o misc_functs.o check_packet.o statefull_logging.o build_acl.o apply_rule.o decode.o pcap_functions.o pcapFileHandle.o fileHandle.o MemoryPool.o help.o permissions.o outputFileHandle.o -lpcap
+
+ clean :
+ rm -f *.o sancp
diff --git a/net-analyzer/sancp/files/sancp-1.6.1-extern.patch b/net-analyzer/sancp/files/sancp-1.6.1-extern.patch
new file mode 100644
index 000000000000..c046f1eb4971
--- /dev/null
+++ b/net-analyzer/sancp/files/sancp-1.6.1-extern.patch
@@ -0,0 +1,18 @@
+--- a/sancp.cc
++++ b/sancp.cc
+@@ -54,7 +54,6 @@
+ *************/
+
+ int main(int argc, char *argv[]) {
+- extern struct gvars gVars;
+ int cKey;
+ pid_t pid=0;
+
+@@ -274,7 +273,6 @@
+
+ extern "C" void ProcessMyPacket(char *user, struct pcap_pkthdr * pkthdr, u_char * pkt)
+ {
+- extern struct gvars gVars;
+ CBuffer *buffer;
+ struct cnx *new_cnx=0;
+ gVars.timeptr.tv_sec=pkthdr->ts.tv_sec;
diff --git a/net-analyzer/sancp/files/sancp-1.6.1-gcc6.patch b/net-analyzer/sancp/files/sancp-1.6.1-gcc6.patch
new file mode 100644
index 000000000000..e56d7114468e
--- /dev/null
+++ b/net-analyzer/sancp/files/sancp-1.6.1-gcc6.patch
@@ -0,0 +1,26 @@
+--- a/pcapFileHandle.h
++++ b/pcapFileHandle.h
+@@ -16,7 +16,12 @@
+
+ #define PCAP_HEADER_SIZE 24
+
+-const char pcap_header[] = { 0xd4,0xc3,0xb2,0xa1,0x02,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x4e,0x00,0x00,0x01,0x00,0x00,0x00 };
++const char pcap_header[] = {
++ (char) 0xd4,(char) 0xc3,(char) 0xb2,(char) 0xa1,(char) 0x02,(char) 0x00,
++ (char) 0x04,(char) 0x00,(char) 0x00,(char) 0x00,(char) 0x00,(char) 0x00,
++ (char) 0x00,(char) 0x00,(char) 0x00,(char) 0x00,(char) 0x20,(char) 0x4e,
++ (char) 0x00,(char) 0x00,(char) 0x01,(char) 0x00,(char) 0x00,(char) 0x00
++};
+
+ class pcapFileHandle : public fileHandle {
+
+--- a/sancp.h
++++ b/sancp.h
+@@ -223,7 +223,6 @@
+ #define R_URG 0x20
+ #define R_RES2 0x40
+ #define R_RES1 0x80
+-#define max(i,j) (((i)>(j)) ? (i) : (j))
+ #define SIZE_OF_CLASS_C 11
+
+ struct t_ports {
diff --git a/net-analyzer/sancp/files/sancp.confd b/net-analyzer/sancp/files/sancp.confd
new file mode 100644
index 000000000000..31cbef82ec1b
--- /dev/null
+++ b/net-analyzer/sancp/files/sancp.confd
@@ -0,0 +1,15 @@
+# Config file for /etc/init.d/sancp
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+# Interface to listen on
+IFACE="eth0"
+
+# Directory to log in
+LOGDIR="/var/log/sancp"
+
+# Default config file
+CONF="/etc/sancp/sancp.conf"
+
+# You could add more options :)
+SANCP_OPTS="-d $LOGDIR/today -i $IFACE -c $CONF -u sancp -g sancp"
diff --git a/net-analyzer/sancp/files/sancp.rc1 b/net-analyzer/sancp/files/sancp.rc1
new file mode 100644
index 000000000000..07745f675676
--- /dev/null
+++ b/net-analyzer/sancp/files/sancp.rc1
@@ -0,0 +1,42 @@
+#!/sbin/openrc-run
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+today=$(date '+%Y-%m-%d')
+
+depend() {
+ need net
+}
+checkconfig() {
+ if [ ! -e /etc/sancp/sancp.conf ] ; then
+ eerror "You need an /etc/sancp/sancp.conf to run sancp"
+ return 1
+ fi
+}
+
+start() {
+ checkconfig || return 1
+
+ # Today's log directory
+ if [ ! -d $LOGDIR/$today ]; then
+ /bin/mkdir $LOGDIR/$today
+ /bin/rm -f $LOGDIR/today
+ fi
+
+ # today/ directory :)
+ if [ ! -d $LOGDIR/today ]; then
+ /bin/ln -s $LOGDIR/$today $LOGDIR/today
+ fi
+
+ ebegin "Starting sancp"
+ start-stop-daemon --start --quiet -m --pidfile /var/run/sancp.pid \
+ --exec /usr/bin/sancp \
+ -- ${SANCP_OPTS} > /var/log/sancp.log 2>&1 &
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping sancp"
+ start-stop-daemon --stop --quiet --pidfile /var/run/sancp.pid
+ eend $?
+}
diff --git a/net-analyzer/sancp/files/sguil_sancp.conf b/net-analyzer/sancp/files/sguil_sancp.conf
new file mode 100644
index 000000000000..f559286e7bb3
--- /dev/null
+++ b/net-analyzer/sancp/files/sguil_sancp.conf
@@ -0,0 +1,69 @@
+# $Id: sancp.conf,v 1.1 2004/03/19 20:33:59 bamm Exp $ #
+#
+# This sancp.conf is distributed as part of sguil (http://sguil.sf.net).
+# It's purpose is to define a default output that is compatible with table
+# schema defined by sguil. Please read the README.sancp for more information
+#
+# sancp is copyrighted by John Curry and can be downloaded at:
+# www.metre.net/sancp.html
+#
+
+# SANCP VERSION 1.5.3
+
+# Currently, sguil only supports the 'stats' output and we want it in
+# timestamped fields
+default stats tsfilename stats
+
+# Time in seconds we write a new file if expired cnxs are available
+default flush_interval=30
+# This tells sancp to open new file handle, write, and close in one step
+default burst_mode=enable
+
+# Default timeout: how many secs to wait after the last packet till we consider the cnx closed
+default timeout=120
+
+# Conforms with out sguil sancp table schema
+format stats sancp_id,start_time_gmt,stop_time_gmt,duration,ip_proto,src_ip_decimal,src_port,dst_ip_decimal,dst_port,src_pkts,src_bytes,dst_pkts,dst_bytes,sflags,dflags
+
+# From here on you define what stats/cnxs/sessions/flows (whatever you
+# want to call it) get logged. Please read the sancp documention for
+# more information. Most of the below are examples of setting
+# variables for complex rules.
+
+var ip 8 # ether proto 0x0800 # ip traffic
+
+# define some ip protocols
+
+var icmp 1
+var tcp 6
+var udp 17
+
+# define some tcp protocols
+
+var http 80
+var https 443
+var smtp 25
+var dns 53
+
+var HOME_NET 127.0.0.1
+#var WWW_NET 192.168.1.0/24
+#var MAIL_SERVER 192.168.1.2
+#var MAIL_SERVER2 192.168.1.3
+
+
+# Default output logging for each connection
+# We don't use realtime or pcap logging at this point so we pass them
+default realtime=pass
+default pcap=pass
+
+# Here is where our "rules" start. We log all stats by default
+# so this is defining exceptions.
+#
+# first six fields are required before rule options can be used
+#
+# eth_proto src_ip dst_ip ip_proto src_port dst_port
+#
+
+# Here is an example if ignoring outbound HTTP stats.
+#ip HOME_NET any tcp any http, stats pass
+#ip HOME_NET any tcp any https, stats pass
diff --git a/net-analyzer/sancp/metadata.xml b/net-analyzer/sancp/metadata.xml
new file mode 100644
index 000000000000..e6c8881b91f7
--- /dev/null
+++ b/net-analyzer/sancp/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <use>
+ <flag name="sguil">Enable sguil (The Analyst Console for Network Security Monitoring) support</flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/sancp/sancp-1.6.1-r7.ebuild b/net-analyzer/sancp/sancp-1.6.1-r7.ebuild
new file mode 100644
index 000000000000..f3ea7b0a3461
--- /dev/null
+++ b/net-analyzer/sancp/sancp-1.6.1-r7.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+DESCRIPTION="collect network traffic statistics and store them in pcap format"
+HOMEPAGE="https://sourceforge.net/projects/sancp/"
+SRC_URI="http://www.metre.net/files/${P}.tar.gz
+ http://sancp.sourceforge.net/${PN}-1.6.1.fix200511.a.patch
+ http://sancp.sourceforge.net/${PN}-1.6.1.fix200511.b.patch
+ http://sancp.sourceforge.net/${PN}-1.6.1.fix200601.c.patch
+ http://sancp.sourceforge.net/${PN}-1.6.1.fix200606.d.patch
+ https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${PN}-1.6.1-musl.patch.bz2"
+
+LICENSE="QPL-1.0 GPL-2" # GPL-2 for init script
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="sguil"
+
+RDEPEND="
+ acct-group/sancp
+ acct-user/sancp
+ net-libs/libpcap"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${DISTDIR}"/${PN}-1.6.1.fix200511.a.patch
+ "${DISTDIR}"/${PN}-1.6.1.fix200511.b.patch
+ # bug 138337
+ "${DISTDIR}"/${PN}-1.6.1.fix200601.c.patch
+ "${DISTDIR}"/${PN}-1.6.1.fix200606.d.patch
+ "${FILESDIR}"/${PN}-1.6.1-compiler.patch
+ "${FILESDIR}"/${PN}-1.6.1-gcc6.patch
+ "${FILESDIR}"/${PN}-1.6.1-extern.patch
+ "${WORKDIR}"/${PN}-1.6.1-musl.patch
+)
+
+src_compile() {
+ tc-export CC CXX
+ emake CFLAGS="${CXXFLAGS}"
+}
+
+src_install() {
+ keepdir /var/log/sancp/
+ dodoc docs/CHANGES docs/fields.LIST docs/README docs/SETUP \
+ "${FILESDIR}"/sguil_sancp.conf etc/sancp/sancp.conf
+
+ insinto /etc/sancp
+ if use sguil ; then
+ newins "${FILESDIR}"/sguil_sancp.conf sancp.conf
+ else
+ doins etc/sancp/sancp.conf
+ fi
+
+ dobin sancp
+
+ newinitd "${FILESDIR}"/sancp.rc1 sancp
+ newconfd "${FILESDIR}"/sancp.confd sancp
+ if use sguil ; then
+ sed -i -e /^SANCP_OPTS/s:'sancp':"sguil":g \
+ -e s:'-d $LOGDIR/today':"-d /var/lib/sguil/$(hostname)/sancp": \
+ "${D}/etc/conf.d/sancp"
+ fi
+
+ fowners sancp:sancp /var/log/sancp
+ fperms 0770 /var/log/sancp
+}
diff --git a/net-analyzer/sarg/Manifest b/net-analyzer/sarg/Manifest
new file mode 100644
index 000000000000..46ce89cb0525
--- /dev/null
+++ b/net-analyzer/sarg/Manifest
@@ -0,0 +1 @@
+DIST sarg-2.4.0.tar.gz 1371812 BLAKE2B 4a07e97f5bdf36dc9ea867517f511dff4e2b501c01231c523778b283000bcf8e6eeb26e219c3d710551ad31f939a47453341b6a8a5575df1d8f3957461326675 SHA512 cb314c15379b01c1ad874e473fcc41664ed5a0dd492b8537d5f375e2c00d9e083679a01da5e3506775b7d66f2d43ba698864ffbd36f5e5e512ef58882148739b
diff --git a/net-analyzer/sarg/files/sarg-2.4.0-config.patch b/net-analyzer/sarg/files/sarg-2.4.0-config.patch
new file mode 100644
index 000000000000..1168f98337d7
--- /dev/null
+++ b/net-analyzer/sarg/files/sarg-2.4.0-config.patch
@@ -0,0 +1,81 @@
+--- a/log.c
++++ b/log.c
+@@ -151,7 +151,7 @@
+ strcpy(FontSize,"9px");
+ strcpy(TempDir,"/tmp");
+ TempDirPath[0] = '\0';
+- strcpy(OutputDir,"/var/www/html/squid-reports");
++ strcpy(OutputDir,"/var/www/localhost/htdocs/squid-reports");
+ AnonymousOutputFiles=false;
+ Ip2Name=false;
+ DateFormat='u';
+--- a/htaccess
++++ b/htaccess
+@@ -1,4 +1,4 @@
+-AuthUserFile /usr/local/sarg/passwd
++AuthUserFile /etc/sarg/passwd
+ AuthName "SARG, Squid Analysis Report Generator"
+ AuthType Basic
+ <Limit GET POST>
+--- a/sarg.conf
++++ b/sarg.conf
+@@ -17,7 +17,7 @@
+ # If some files are passed on the command line with "sarg -l file" or
+ # "sarg file", the files listed here are ignored.
+ #
+-#access_log /usr/local/squid/var/logs/access.log
++#access_log /var/log/squid/access.log
+
+ # TAG: graphs yes|no
+ # Use graphics where is possible.
+@@ -147,7 +147,7 @@
+ # The reports will be saved in that directory
+ # sarg -o dir
+ #
+-#output_dir /var/www/html/squid-reports
++#output_dir /var/www/localhost/htdocs/squid-reports
+
+ # TAG: anonymous_output_files yes/no
+ # Use anonymous file and directory names in the report. If it is set to
+@@ -632,7 +632,7 @@
+ # Generate reports from SquidGuard logs.
+ # Use 'none' to disable.
+ # You can use sarg -L filename to use an alternate squidGuard log.
+-# squidguard_conf /usr/local/squidGuard/squidGuard.conf
++# squidguard_conf /etc/squidGuard/squidGuard.conf
+ #
+ #squidguard_conf none
+
+--- a/user_limit_block
++++ b/user_limit_block
+@@ -24,8 +24,8 @@
+ #
+ #
+
+-conf="/usr/local/sarg/sarg.conf"
+-squid_password_file="/usr/local/squid/etc/passwd"
++conf="/etc/sarg/sarg.conf"
++squid_password_file="/etc/squid/passwd"
+ tmp="/tmp/sarg_limit.$$"
+
+ limit_file=`grep "per_user_limit" $conf|grep -v "#"|awk '{print $2}'`
+--- a/sarg-php/config.php.inc
++++ b/sarg-php/config.php.inc
+@@ -1,13 +1,13 @@
+ <?php
+
+ // Change to squidGuard and sarg config file paths
+-$SargConf = "/usr/local/sarg/sarg.conf";
+-$squidGuardConf = "/usr/local/squidGuard/squidGuard.conf";
++$SargConf = "/etc/sarg/sarg.conf";
++$squidGuardConf = "/etc/squidGuard/squidGuard.conf";
+
+ // File where URL to block will be appended
+-$DefaultSquidBlock = "/usr/local/squid/etc/block.txt";
++$DefaultSquidBlock = "/etc/squid/etc/block.txt";
+
+ // Choose the locale you want to use to display messages (it must exist on your system)
+-$language = "fr_BE.utf-8";
++$language = "POSIX";
+
+ ?>
diff --git a/net-analyzer/sarg/files/sarg-2.4.0-configure.patch b/net-analyzer/sarg/files/sarg-2.4.0-configure.patch
new file mode 100644
index 000000000000..7ca44a6901f1
--- /dev/null
+++ b/net-analyzer/sarg/files/sarg-2.4.0-configure.patch
@@ -0,0 +1,43 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -35,6 +35,11 @@
+ dnl C99 support is required to define LLONG_MAX (at least on CentOS 5.7)
+ AC_PROG_CC_C99
+
++dnl mkdir_p / MKDIR_P
++AC_PROG_MKDIR_P
++mkdir_p="$MKDIR_P"
++AC_SUBST(mkdir_p)
++
+ # Report more warnings to improve code quality.
+ CFLAGS="${CFLAGS} -Wall"
+
+@@ -50,23 +55,23 @@
+ # Don't compare signs as it is a mess
+ CFLAGS="${CFLAGS} -Wno-sign-compare"
+
+-AC_MSG_CHECKING([for implicit-function-declaration error flag in $CC])
++AC_MSG_CHECKING([for implicit-function-declaration warning flag in $CC])
+ saved_CFLAGS="${CFLAGS}"
+-CFLAGS="${CFLAGS} -Werror=implicit-function-declaration"
++CFLAGS="${CFLAGS} -Wimplicit-function-declaration"
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([])],[have_implicit_function_declaration="yes"],[have_implicit_function_declaration="no"])
+ AC_MSG_RESULT($have_implicit_function_declaration)
+ AS_IF([test "$have_implicit_function_declaration" = "no"],[CFLAGS="${saved_CFLAGS}"])
+
+-AC_MSG_CHECKING([for format error flag in $CC])
++AC_MSG_CHECKING([for format warning flag in $CC])
+ saved_CFLAGS="${CFLAGS}"
+-CFLAGS="${CFLAGS} -Werror=format"
++CFLAGS="${CFLAGS} -Wformat"
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE([])],[have_error_format="yes"],[have_error_format="no"])
+ AC_MSG_RESULT($have_error_format)
+ AS_IF([test "$have_error_format" = "no"],[CFLAGS="${saved_CFLAGS}"])
+
+ case "$host" in
+ *-solaris*)
+- LDFLAGS="${LDFLAGS} -lsocket -lnsl"
++ LIBS="${LIBS} -lsocket -lnsl"
+ CFLAGS="-DSOLARIS ${CFLAGS}"
+ ;;
+ esac
diff --git a/net-analyzer/sarg/files/sarg-2.4.0-fabs.patch b/net-analyzer/sarg/files/sarg-2.4.0-fabs.patch
new file mode 100644
index 000000000000..e9b73d88fb4a
--- /dev/null
+++ b/net-analyzer/sarg/files/sarg-2.4.0-fabs.patch
@@ -0,0 +1,11 @@
+--- a/btree_cache.c
++++ b/btree_cache.c
+@@ -268,7 +268,7 @@
+ static struct bt *get_disbalanced_node(struct bt *node)
+ {
+ struct bt *rdn;
+- if (fabs(node->balanceinfo) > 1)
++ if (abs(node->balanceinfo) > 1)
+ return node;
+ if (node->left)
+ {
diff --git a/net-analyzer/sarg/files/sarg-2.4.0-format.patch b/net-analyzer/sarg/files/sarg-2.4.0-format.patch
new file mode 100644
index 000000000000..686f659c1300
--- /dev/null
+++ b/net-analyzer/sarg/files/sarg-2.4.0-format.patch
@@ -0,0 +1,22 @@
+--- a/userinfo.c
++++ b/userinfo.c
+@@ -78,7 +78,7 @@
+ int skip;
+ int flen;
+ int count, clen;
+- char cstr[9];
++ char cstr[10];
+ char filename[MAX_USER_FNAME_LEN];
+
+ if (!UserStrings) {
+--- a/index.c
++++ b/index.c
+@@ -535,7 +535,7 @@
+ struct dirent *direntp;
+ char yearindex[MAXLEN];
+ char yeardir[MAXLEN];
+- char yearnum[10];
++ char yearnum[15];
+ int yearsort[150];
+ int nyears;
+ int year;
diff --git a/net-analyzer/sarg/metadata.xml b/net-analyzer/sarg/metadata.xml
new file mode 100644
index 000000000000..51b5948436b2
--- /dev/null
+++ b/net-analyzer/sarg/metadata.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <longdescription>Squid Analysis Report Generator is a tool that allow you to view where your users are going to on the Internet. Sarg provides many informations about Squid users activities: times, bytes, sites, etc...</longdescription>
+ <use>
+ <flag name="doublecheck">Make sarg double check the data it manipulates and output a warning if an error is found</flag>
+ <flag name="gd">Enable support for graphs in reports through <pkg>media-libs/gd</pkg>
+ </flag>
+ <flag name="glob">Disable to ignore wildcards in file names</flag>
+ <flag name="pcre">Enable support for regular expressions in the hostalias file through <pkg>dev-libs/libpcre</pkg>
+ </flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/sarg/sarg-2.4.0-r1.ebuild b/net-analyzer/sarg/sarg-2.4.0-r1.ebuild
new file mode 100644
index 000000000000..62999c969ca2
--- /dev/null
+++ b/net-analyzer/sarg/sarg-2.4.0-r1.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit autotools flag-o-matic
+
+DESCRIPTION="Squid Analysis Report Generator"
+HOMEPAGE="https://sourceforge.net/projects/sarg/"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${P/_/-}.tar.gz"
+
+LICENSE="GPL-2"
+KEYWORDS="amd64 ppc x86"
+SLOT="0"
+IUSE="bzip2 doublecheck +gd +glob ldap lzma pcre zlib"
+
+RDEPEND="
+ bzip2? ( app-arch/bzip2 )
+ gd? ( media-libs/gd[png,truetype] )
+ ldap? ( net-nds/openldap:= )
+ lzma? ( app-arch/xz-utils )
+ pcre? ( dev-libs/libpcre )
+ zlib? ( virtual/zlib:= )
+"
+DEPEND="
+ ${RDEPEND}
+"
+DOCS=( BETA-TESTERS CONTRIBUTORS DONATIONS README ChangeLog htaccess )
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.4.0-config.patch
+ "${FILESDIR}"/${PN}-2.4.0-configure.patch
+ "${FILESDIR}"/${PN}-2.4.0-fabs.patch
+ "${FILESDIR}"/${PN}-2.4.0-format.patch
+)
+S=${WORKDIR}/${P/_/-}
+
+src_prepare() {
+ default
+
+ eautoreconf
+}
+
+src_configure() {
+ append-cflags -fcommon
+ econf \
+ $(use_enable doublecheck) \
+ $(use_with bzip2 bzlib) \
+ $(use_with gd) \
+ $(use_with glob) \
+ $(use_with ldap) \
+ $(use_with lzma liblzma) \
+ $(use_with pcre) \
+ $(use_with zlib) \
+ --sysconfdir="${EPREFIX}/etc/sarg/"
+}
+
+src_install() {
+ default
+
+ dodoc documentation/*
+}
diff --git a/net-analyzer/sbd/Manifest b/net-analyzer/sbd/Manifest
new file mode 100644
index 000000000000..06c30b3fe73d
--- /dev/null
+++ b/net-analyzer/sbd/Manifest
@@ -0,0 +1 @@
+DIST sbd-1.37.tar.gz 83991 BLAKE2B 7dd0f1e3c428e9eed24ca513c99a242ec5bf2a147416b2a979335ff9c55b6d68ca8769ccd00e11637e0411c9537895fd2523a3f237be704d4540db5b4d12bbc9 SHA512 845f3eb20d3a6006f7afc9b60eecaa3049172b3fb2796058f18a13ddbfb7f2c9914bef45bd4f3557db814783717eae24fe13d46d22c65359ba3f816c6d52ea7c
diff --git a/net-analyzer/sbd/metadata.xml b/net-analyzer/sbd/metadata.xml
new file mode 100644
index 000000000000..fa461b86646b
--- /dev/null
+++ b/net-analyzer/sbd/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <longdescription>
+sbd is a Netcat-clone, designed to be portable and offer strong encryption. It
+features AES-CBC-128 + HMAC-SHA1 encryption (by Christophe Devine), program
+execution (-e option), choosing source port, continuous reconnection with delay,
+and some other nice features. Only TCP/IP communication is supported.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/sbd/sbd-1.37-r1.ebuild b/net-analyzer/sbd/sbd-1.37-r1.ebuild
new file mode 100644
index 000000000000..6b87335cd5a6
--- /dev/null
+++ b/net-analyzer/sbd/sbd-1.37-r1.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+DESCRIPTION="Netcat-clone, designed to be portable and offer strong encryption"
+HOMEPAGE="http://tigerteam.se/dl/sbd/"
+SRC_URI="http://tigerteam.se/dl/sbd/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~ppc ~x86"
+
+src_prepare() {
+ default
+ sed -i \
+ -e '/ -o /{ s| $(UNIX_LDFLAGS) $(LDFLAGS)||g;s|$(CFLAGS)|& $(LDFLAGS)|g }' \
+ Makefile || die
+}
+
+src_compile() {
+ emake \
+ CC="$(tc-getCC)" \
+ CFLAGS="${CFLAGS}" \
+ LDFLAGS="${LDFLAGS}" \
+ unix
+}
+
+src_install() {
+ dobin sbd
+ dodoc CHANGES README
+}
diff --git a/net-analyzer/scanlogd/Manifest b/net-analyzer/scanlogd/Manifest
new file mode 100644
index 000000000000..510460b61e21
--- /dev/null
+++ b/net-analyzer/scanlogd/Manifest
@@ -0,0 +1,2 @@
+DIST scanlogd-2.2.8.tar.gz 12190 BLAKE2B 26396c3174de3d3cceed9833354cae7d7bbcf3078a81472ae1fa28856f011e6984fa8182a994d5a10632c19f15f86e31f1ee73309273cad04e05fec942afa0a4 SHA512 92f7a28dd40593dad6afae4fd0572efeceea3f43f334ff82c349538d4a28e9ab624912f82fc5c102a4a9937009bbf7b76a81029588e2815ff9b305144143572a
+DIST scanlogd-2.2.8.tar.gz.sig 801 BLAKE2B d14643b84c26aaf23662db804ce29eef76077beda37bd54ebff857c939b8768e1c0a9e4fa8df53a4c8929f3c1d49930544a5f718171a3e9877f29c014333ad20 SHA512 2fc46af5fe7395b10ad275fec0ff943139aa83675fbfbbd61c0a86fd6c9c7fa070110249ab0df04dd167881797d29b3c22fb1ff92f7842106250d506967fa0f7
diff --git a/net-analyzer/scanlogd/files/scanlogd-2.2.7-gentoo.patch b/net-analyzer/scanlogd/files/scanlogd-2.2.7-gentoo.patch
new file mode 100644
index 000000000000..4d1d2f01c643
--- /dev/null
+++ b/net-analyzer/scanlogd/files/scanlogd-2.2.7-gentoo.patch
@@ -0,0 +1,21 @@
+--- a/Makefile
++++ b/Makefile
+@@ -1,14 +1,11 @@
+-CC = gcc
+ LD = $(CC)
+ RM = rm -f
+-CFLAGS = -Wall -O2 -fomit-frame-pointer
+-LDFLAGS = -s
+
+-PCAP_H = -I/usr/include/pcap
+-PCAP_L = -lpcap
++PCAP_H = $(shell pcap-config --cflags)
++PCAP_L = $(shell pcap-config --libs)
+
+-NIDS_H = -I/usr/local/include
+-NIDS_L = -L/usr/local/lib -lnids -lnet -lpcap
++NIDS_H = -I/usr/include
++NIDS_L = -lnids
+
+ PROJ = scanlogd
+
diff --git a/net-analyzer/scanlogd/files/scanlogd.rc b/net-analyzer/scanlogd/files/scanlogd.rc
new file mode 100644
index 000000000000..ef600deb94f5
--- /dev/null
+++ b/net-analyzer/scanlogd/files/scanlogd.rc
@@ -0,0 +1,20 @@
+#!/sbin/openrc-run
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ need net
+ use logger
+}
+
+start() {
+ ebegin "Starting scanlogd"
+ start-stop-daemon --start --quiet --exec /usr/sbin/scanlogd
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping scanlogd"
+ start-stop-daemon --stop --quiet --exec /usr/sbin/scanlogd
+ eend $?
+}
diff --git a/net-analyzer/scanlogd/metadata.xml b/net-analyzer/scanlogd/metadata.xml
new file mode 100644
index 000000000000..453ace9f821d
--- /dev/null
+++ b/net-analyzer/scanlogd/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <use>
+ <flag name="nids">Use <pkg>net-libs/libnids</pkg> for packet capturing</flag>
+ <flag name="pcap">Use <pkg>net-libs/libpcap</pkg> for packet capturing</flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/scanlogd/scanlogd-2.2.8-r1.ebuild b/net-analyzer/scanlogd/scanlogd-2.2.8-r1.ebuild
new file mode 100644
index 000000000000..8fe2452bec96
--- /dev/null
+++ b/net-analyzer/scanlogd/scanlogd-2.2.8-r1.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/openwall.asc
+inherit savedconfig toolchain-funcs verify-sig
+
+DESCRIPTION="A port scan detection tool"
+HOMEPAGE="https://www.openwall.com/scanlogd/"
+SRC_URI="
+ https://www.openwall.com/scanlogd/${P}.tar.gz
+ verify-sig? ( https://www.openwall.com/scanlogd/${P}.tar.gz.sign -> ${P}.tar.gz.sig )
+"
+
+LICENSE="scanlogd GPL-2" # GPL-2 for initscript
+SLOT="0"
+KEYWORDS="~amd64 ~ppc x86"
+IUSE="+nids pcap"
+REQUIRED_USE="?? ( nids pcap )"
+
+DEPEND="
+ nids? ( net-libs/libnids )
+ pcap? ( net-libs/libpcap )
+"
+RDEPEND="
+ ${DEPEND}
+ acct-group/scanlogd
+ acct-user/scanlogd
+"
+BDEPEND="sec-keys/openpgp-keys-openwall"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.2.7-gentoo.patch
+)
+
+src_prepare() {
+ default
+
+ restore_config params.h
+
+ tc-export CC
+}
+
+src_compile() {
+ local target=linux
+
+ use nids && target=libnids
+ use pcap && target=libpcap
+ emake ${target}
+}
+
+src_install() {
+ dosbin scanlogd
+
+ doman scanlogd.8
+ newinitd "${FILESDIR}"/scanlogd.rc scanlogd
+
+ save_config params.h
+}
diff --git a/net-analyzer/scanssh/Manifest b/net-analyzer/scanssh/Manifest
new file mode 100644
index 000000000000..c8ef4f3a55c8
--- /dev/null
+++ b/net-analyzer/scanssh/Manifest
@@ -0,0 +1,2 @@
+DIST scanssh-2.1.3.1.tar.gz 147954 BLAKE2B a263eda2d49159e715bb8d2190fc78f8e41d5f3a56e0bf67b70ed716eb787c09cff0ea9e759b5aa62096f75de01d2d5b5980aa66a7c5b14635d835fd3b7c6f07 SHA512 970cbb03aa44fcef62aa03132335e6ecedb083cee98a360b3d781efc8c2d3c169f70c17837b1faaf9ceaa2691a7c619174a9bb185146af50188eaceda5d14adb
+DIST scanssh-2.1.3.1_p20260130.gh.tar.gz 148075 BLAKE2B e312903bc49cdfecb3983d0d68835f25d8479c0e850b7fb0a3f5960823cc9ffb31e9fdc730ae6baee1054e9906beb09a724825a2c3ada8a2d637137d221f5271 SHA512 30366abb057f71639e3cbc9f762c24d74d36e21f4941fc6a23c2cabf4513786c962a8a3cb96f4a66e0e2e699a3454342902f5eafa6f9e420a75ce6349ee75de1
diff --git a/net-analyzer/scanssh/files/scanssh-2.0-fix-warnings.diff b/net-analyzer/scanssh/files/scanssh-2.0-fix-warnings.diff
new file mode 100644
index 000000000000..0ced6821efa9
--- /dev/null
+++ b/net-analyzer/scanssh/files/scanssh-2.0-fix-warnings.diff
@@ -0,0 +1,61 @@
+--- a/arc4random.c
++++ b/arc4random.c
+@@ -1,5 +1,6 @@
+ #include <sys/types.h>
+ #include <stdlib.h>
++#include <time.h>
+
+ #include "config.h"
+
+--- a/interface.c
++++ b/interface.c
+@@ -56,6 +56,13 @@
+
+ #include "interface.h"
+
++#ifndef HAVE_STRLCPY
++ size_t strlcpy(char *, const char *, size_t);
++#endif
++#ifndef HAVE_STRLCAT
++ size_t strlcat(char *, const char *, size_t);
++#endif
++
+ /* Prototypes */
+ static int pcap_dloff(pcap_t *);
+
+--- a/md5.c
++++ b/md5.c
+@@ -23,6 +23,7 @@
+ copyright in any changes I have made; this code remains in the
+ public domain. */
+
++#include <string.h>
+ #include <sys/types.h>
+
+ #ifdef HAVE_CONFIG_H
+--- a/scanssh.c
++++ b/scanssh.c
+@@ -78,6 +78,10 @@
+ #define DNFPRINTF(y, x)
+ #endif
+
++#ifndef HAVE_STRLCPY
++ size_t strlcpy(char *, const char *, size_t);
++#endif
++
+ struct address_node {
+ TAILQ_ENTRY (address_node) an_next;
+
+--- a/xmalloc.c
++++ b/xmalloc.c
+@@ -20,6 +20,10 @@
+
+ #include "config.h"
+
++#ifndef HAVE_STRLCPY
++ size_t strlcpy(char *, const char *, size_t);
++#endif
++
+ void *
+ xmalloc(size_t size)
+ {
diff --git a/net-analyzer/scanssh/files/scanssh-2.1.3-libdir.diff b/net-analyzer/scanssh/files/scanssh-2.1.3-libdir.diff
new file mode 100644
index 000000000000..c34159b3fca7
--- /dev/null
+++ b/net-analyzer/scanssh/files/scanssh-2.1.3-libdir.diff
@@ -0,0 +1,191 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -20,8 +20,8 @@ AC_PROG_CC
+ AC_PROG_INSTALL
+
+ dnl XXX - Solaris sux.
+-AC_CHECK_LIB(socket, socket)
+-AC_CHECK_LIB(nsl, gethostbyname)
++AC_SEARCH_LIBS(socket, socket)
++AC_SEARCH_LIBS(gethostbyname, nsl)
+
+ dnl XXX - we need WinPcap developer's pack under Cygwin for win32
+
+@@ -33,11 +33,11 @@ case $host_os in
+ if test -d /usr/include/mingw ; then
+ CPPFLAGS="$CPPFLAGS -mno-cygwin"
+ CFLAGS="$CFLAGS -mno-cygwin"
+- AC_DEFINE(WIN32_LEAN_AND_MEAN, 1,
++ AC_DEFINE(WIN32_LEAN_AND_MEAN, 1,
+ [Define for faster code generation.])
+ AC_CHECK_LIB(ws2_32, main)
+ AC_CHECK_LIB(iphlpapi, main)
+- AC_DEFINE(snprintf, _snprintf,
++ AC_DEFINE(snprintf, _snprintf,
+ [Use MingW32's internal snprintf])
+ else
+ AC_MSG_ERROR([need MingW32 package to build under Cygwin])
+@@ -84,92 +84,9 @@ if test $neederr = yes; then
+ AC_LIBOBJ(err)
+ fi
+
+-dnl Checks for libpcap
+-AC_MSG_CHECKING(for libpcap)
+-AC_ARG_WITH(libpcap,
+-[ --with-libpcap=DIR use libpcap build directory],
+-[ case "$withval" in
+- yes|no)
+- AC_MSG_RESULT(no)
+- ;;
+- *)
+- AC_MSG_RESULT($withval)
+- if test -f $withval/pcap.h -a -f $withval/libpcap.a; then
+- owd=`pwd`
+- if cd $withval; then withval=`pwd`; cd $owd; fi
+- PCAPINC="-I$withval -I$withval/bpf"
+- PCAPLIB="-L$withval -lpcap"
+- else
+- AC_MSG_ERROR(pcap.h or libpcap.a not found in $withval)
+- fi
+- ;;
+- esac ],
+-[ if test -f ${prefix}/include/pcap.h; then
+- PCAPINC="-I${prefix}/include"
+- PCAPLIB="-L${prefix}/lib -lpcap"
+- elif test -f /usr/include/pcap/pcap.h; then
+- PCAPINC="-I/usr/include/pcap"
+- PCAPLIB="-lpcap"
+- elif test -f /usr/include/pcap.h; then
+- PCAPLIB="-lpcap"
+- else
+- AC_MSG_RESULT(no)
+- AC_MSG_ERROR(libpcap not found)
+- fi
+- AC_MSG_RESULT(yes) ]
+-)
+ AC_SUBST(PCAPINC)
+ AC_SUBST(PCAPLIB)
+
+-dnl Checks for (installed) libdnet
+-AC_ARG_WITH(libdnet,
+-[ --with-libdnet=DIR use libdnet in DIR],
+-[ case "$withval" in
+- yes|no)
+- AC_MSG_ERROR(Please specify directory containing dnet-config when using --with-libdnet)
+- ;;
+- *)
+- AC_MSG_CHECKING(for libdnet)
+- AC_MSG_RESULT($withval)
+- if test -f $withval/src/libdnet.a; then
+- DNETINC="-I$withval/include"
+- DNETLIB="-L$withval/src -ldnet `$withval/dnet-config --libs`"
+- elif test -x $withval/bin/dnet-config; then
+- DNETINC="`$withval/bin/dnet-config --cflags`"
+- DNETLIB="`$withval/bin/dnet-config --libs`"
+- else
+- AC_MSG_RESULT(no)
+- AC_MSG_ERROR(dnet-config not found in $withval/bin)
+- fi
+- ;;
+- esac
+- AC_MSG_RESULT(yes) ],
+-[ dnl This is the default case so let's just use AC_PATH_PROG! --CPK.
+- AC_PATH_PROG(dnetconfig, dnet-config, "no")
+- if test "$dnetconfig" = "no"; then
+- AC_MSG_ERROR(dnet-config not found)
+- else
+- DNETINC="`$dnetconfig --cflags`"
+- DNETLIB="`$dnetconfig --libs`"
+- fi]
+-)
+-
+-dnl We still need to check whether it's dnet or dumbnet as
+-dnl for example on Debian. We test by looking at the content
+-dnl of DNETLIB and derive from the library name what version
+-dnl we're dealing with. If we find a libdumbnet, we prefix
+-dnl compat/libdnet to our inclusion path. It provides a dnet.h
+-dnl that transparently includes dumbnet.h for those systems. --CPK.
+-AC_MSG_CHECKING([whether libdnet is a libdumbnet])
+-if test `echo $DNETLIB | sed -e '/dumb/=;d'`; then
+- AC_MSG_RESULT(yes)
+- AC_DEFINE(HAVE_DUMBNET, 1,
+- [Define if our libdnet is a libdumbnet])
+- DNETCOMPAT="compat/libdnet"
+-else
+- AC_MSG_RESULT(no)
+-fi
+-
+ AC_SUBST(DNETCOMPAT)
+ AC_SUBST(DNETINC)
+ AC_SUBST(DNETLIB)
+@@ -180,50 +97,16 @@ then
+ else
+ CFLAGS="-I$DNETCOMPAT $DNETINC"
+ fi
++save_LIBS=$LIBS
+ LIBS=$DNETLIB
+
+-dnl Checks for libevent
+-AC_MSG_CHECKING(for libevent)
+-AC_ARG_WITH(libevent,
+-[ --with-libevent=DIR use libevent build directory],
+-[ case "$withval" in
+- yes|no)
+- AC_MSG_RESULT(no)
+- ;;
+- *)
+- AC_MSG_RESULT($withval)
+- if test -f $withval/event.h -a -f $withval/libevent.a; then
+- owd=`pwd`
+- if cd $withval; then withval=`pwd`; cd $owd; fi
+- EVENTINC="-I$withval"
+- EVENTLIB="-L$withval -levent"
+- else
+- AC_MSG_ERROR(event.h or libevent.a not found in $withval)
+- fi
+- ;;
+- esac ],
+-[ if test -f ${prefix}/include/event.h; then
+- EVENTINC="-I${prefix}/include"
+- EVENTLIB="-L${prefix}/lib -levent"
+- elif test -f /usr/include/event/event.h; then
+- EVENTINC="-I/usr/include/event"
+- EVENTLIB="-levent"
+- elif test -f /usr/include/event.h; then
+- EVENTLIB="-levent"
+- else
+- AC_MSG_RESULT(no)
+- AC_MSG_ERROR(libevent not found)
+- fi
+- AC_MSG_RESULT(yes) ]
+-)
+ AC_SUBST(EVENTINC)
+ AC_SUBST(EVENTLIB)
+
+ CFLAGS=$EVENTINC
+ LIBS=$EVENTLIB
+
+-CFLAGS=""
+-LIBS=""
++LIBS=$save_LIBS
+
+ AC_HEADER_SYS_WAIT
+ AC_CHECK_HEADERS(fcntl.h sys/ioctl.h sys/time.h unistd.h)
+@@ -271,7 +154,7 @@ AC_EGREP_CPP(yes,
+ #ifdef BSD4_4
+ yes
+ #endif
+-],
++],
+ AC_EGREP_CPP(yes,
+ [#include <sys/param.h>
+ #ifdef OpenBSD
+@@ -285,7 +168,7 @@ AC_EGREP_CPP(yes,
+ ),
+ AC_MSG_RESULT([good byte order])
+ )
+-
++
+ AC_MSG_CHECKING([for sin_len in struct sockaddr_in])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ #include <sys/types.h>
diff --git a/net-analyzer/scanssh/metadata.xml b/net-analyzer/scanssh/metadata.xml
new file mode 100644
index 000000000000..eb153b4de5cb
--- /dev/null
+++ b/net-analyzer/scanssh/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <longdescription>Scanssh protocol scanner - scans a list of addresses an networks for running SSH protocol servers and their version numbers.</longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/scanssh/scanssh-2.1.3.1.ebuild b/net-analyzer/scanssh/scanssh-2.1.3.1.ebuild
new file mode 100644
index 000000000000..566663202cbb
--- /dev/null
+++ b/net-analyzer/scanssh/scanssh-2.1.3.1.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="network scanner that gathers info on SSH protocols and versions"
+HOMEPAGE="https://github.com/ofalk/scanssh/"
+SRC_URI="https://github.com/ofalk/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~hppa ppc ~ppc64 ~riscv ~sparc x86"
+
+DEPEND="
+ dev-libs/libdnet
+ dev-libs/libevent:=
+ net-libs/libpcap
+"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.0-fix-warnings.diff
+ "${FILESDIR}"/${PN}-2.1.3-libdir.diff
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ DNETINC='' \
+ DNETLIB=-ldnet \
+ EVENTINC='' \
+ EVENTLIB=-levent \
+ PCAPINC='' \
+ PCAPLIB=-lpcap
+}
+
+src_compile() {
+ emake CFLAGS="${CFLAGS}"
+}
+
+src_install() {
+ dobin scanssh
+ doman scanssh.1
+}
diff --git a/net-analyzer/scanssh/scanssh-2.1.3.1_p20260130.ebuild b/net-analyzer/scanssh/scanssh-2.1.3.1_p20260130.ebuild
new file mode 100644
index 000000000000..3f592ea278bd
--- /dev/null
+++ b/net-analyzer/scanssh/scanssh-2.1.3.1_p20260130.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="network scanner that gathers info on SSH protocols and versions"
+HOMEPAGE="https://github.com/ofalk/scanssh/"
+HASH="14a7b8faa7a876b132fa8e8d1d092b429604038e"
+SRC_URI="https://github.com/ofalk/scanssh/archive/${HASH}.tar.gz -> ${P}.gh.tar.gz"
+S="${WORKDIR}/${PN}-${HASH}"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~hppa ppc ~ppc64 ~riscv ~sparc x86"
+
+DEPEND="
+ dev-libs/libdnet
+ dev-libs/libevent:=
+ net-libs/libpcap
+"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.1.3-libdir.diff
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ DNETINC='' \
+ DNETLIB=-ldnet \
+ EVENTINC='' \
+ EVENTLIB=-levent \
+ PCAPINC='' \
+ PCAPLIB=-lpcap
+}
+
+src_compile() {
+ emake CFLAGS="${CFLAGS}"
+}
+
+src_install() {
+ dobin scanssh
+ doman scanssh.1
+}
diff --git a/net-analyzer/scapy/Manifest b/net-analyzer/scapy/Manifest
new file mode 100644
index 000000000000..e588041439d2
--- /dev/null
+++ b/net-analyzer/scapy/Manifest
@@ -0,0 +1 @@
+DIST scapy-2.6.1.tar.gz 7048560 BLAKE2B 5c930c3aa2d0a4d545cf64f10abd3aa962755e3fb712ea1613c4f49b159202a55e5ffadc527d429118958bad6e93f9626084d3ee974caaa6cb1733f05080d3f2 SHA512 4ab02f5b9dfcf329ee4f4837655066227b1e162e695d6cbe84ada4e2ff44589462a9843b0f16699ec974dcf6e0a81af3c5b088ceac48a679e9591f4cec0eedc8
diff --git a/net-analyzer/scapy/files/scapy-2.6.1-missing-autorun-test-marker.patch b/net-analyzer/scapy/files/scapy-2.6.1-missing-autorun-test-marker.patch
new file mode 100644
index 000000000000..76108598d758
--- /dev/null
+++ b/net-analyzer/scapy/files/scapy-2.6.1-missing-autorun-test-marker.patch
@@ -0,0 +1,10 @@
+--- a/test/regression.uts
++++ b/test/regression.uts
+@@ -1139,6 +1139,7 @@ ret = autorun_get_text_interactive_session("scapy_undefined")
+ assert "NameError" in ret[0]
+
+ = Test autorun with logging
++~ autorun
+
+ cmds = """log_runtime.info(hex_bytes("446166742050756e6b"))\n"""
+ ret = autorun_get_text_interactive_session(cmds)
diff --git a/net-analyzer/scapy/files/scapy-2.6.1-skip-test.patch b/net-analyzer/scapy/files/scapy-2.6.1-skip-test.patch
new file mode 100644
index 000000000000..bf71e22cdde9
--- /dev/null
+++ b/net-analyzer/scapy/files/scapy-2.6.1-skip-test.patch
@@ -0,0 +1,20 @@
+Fails in network-sandbox (probably because of the namespace + fake interface
+Portage makes).
+--- a/test/regression.uts
++++ b/test/regression.uts
+@@ -470,6 +470,7 @@ conf.ifaces.providers = _bkp_providers
+ conf.ifaces.reload()
+
+ = Test read_routes6() - default output
++~ netaccess
+
+ routes6 = read_routes6()
+ if WINDOWS:
+@@ -519,6 +520,7 @@ pkt.build()
+
+
+ = Test read_routes6() - check mandatory routes
++~ netaccess
+
+ import re
+ ll_route = re.compile(r"fe80:\d{0,2}:")
diff --git a/net-analyzer/scapy/metadata.xml b/net-analyzer/scapy/metadata.xml
new file mode 100644
index 000000000000..76b4b550dbc6
--- /dev/null
+++ b/net-analyzer/scapy/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>sam@gentoo.org</email>
+ <name>Sam James</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:scapy:scapy</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/scapy/scapy-2.6.1.ebuild b/net-analyzer/scapy/scapy-2.6.1.ebuild
new file mode 100644
index 000000000000..8b697296a83b
--- /dev/null
+++ b/net-analyzer/scapy/scapy-2.6.1.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+inherit distutils-r1 readme.gentoo-r1
+
+DESCRIPTION="A Python interactive packet manipulation program for mastering the network"
+HOMEPAGE="https://scapy.net/ https://github.com/secdev/scapy"
+SRC_URI="https://github.com/secdev/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 x86"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="
+ test? (
+ app-arch/brotli[python,${PYTHON_USEDEP}]
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/zstandard[${PYTHON_USEDEP}]
+ net-libs/libpcap
+ )
+"
+
+DOC_CONTENTS="
+Scapy has optional support for the following packages:
+
+ dev-python/cryptography
+ dev-python/ipython
+ dev-python/matplotlib
+ dev-python/pyx
+ media-gfx/graphviz
+ net-analyzer/tcpdump
+ net-analyzer/tcpreplay
+ net-libs/libpcap
+ virtual/imagemagick-tools
+
+ See also ""${EPREFIX}/usr/share/doc/${PF}/installation.rst""
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.6.1-skip-test.patch
+ "${FILESDIR}"/${PN}-2.6.1-missing-autorun-test-marker.patch
+)
+
+src_prepare() {
+ export SCAPY_VERSION=${PV}
+
+ # Timed out
+ rm test/tftp.uts || die
+ # Needs ipython
+ rm test/scapy/layers/dhcp.uts || die
+ # Import failures
+ rm test/contrib/isotp_native_socket.uts \
+ test/contrib/isotpscan.uts \
+ test/contrib/isotp_soft_socket.uts || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ # https://scapy.readthedocs.io/en/latest/development.html#testing-with-utscapy
+ # https://github.com/secdev/scapy/blob/master/tox.ini
+ #
+ # netaccess: network access, obviously
+ # tshark, tcpdump: hangs
+ # samba: needs rpcdump (and too heavy of a test dep)
+ # interact, autorun: tests fail
+ "${EPYTHON}" -m scapy.tools.UTscapy -c ./test/configs/linux.utsc -N \
+ -K netaccess \
+ -K tshark \
+ -K tcpdump \
+ -K samba \
+ -K interact \
+ -K autorun \
+ -K ci_only || die "Tests failed with ${EPYTHON}"
+}
+
+src_install() {
+ distutils-r1_src_install
+
+ dodoc -r doc/${PN}/*
+ DISABLE_AUTOFORMATTING=1 readme.gentoo_create_doc
+}
diff --git a/net-analyzer/sec/Manifest b/net-analyzer/sec/Manifest
new file mode 100644
index 000000000000..0c73853f517b
--- /dev/null
+++ b/net-analyzer/sec/Manifest
@@ -0,0 +1,2 @@
+DIST sec-2.9.3.tar.gz 153606 BLAKE2B 25a6dbade8b2442450fc7d7d03364b1a0554903906c614b74295ad7f5420a95f5e92b17f127e20112b9f7797f3d1bdcffbac3c62306398fbc9f4d4dab5f45701 SHA512 7facf3f5d80ec5466e1e35cc1ab186bbac092bb011816a72e8be6c60eadffca75c5765a914e8700eacf90d7f8c46088bdb17213a7c670c4ca5b852ce30fbdf26
+DIST sec-2.9.4.tar.gz 155430 BLAKE2B fe58c6706e7c80f461200a100384dec900cb3ba42174a8e9d39be4c518653c6f33f40af7c224257bf02d44d644bc997249f244861638f9028b4e3bf8caa90abf SHA512 e049ea61e52420faddc2ad3373d9ec65cc6187d59e89537d919eb0342688e494c3d9db334347dbaf9a42260930c99756d46ed3f9f015a38bd95f6959ded047d9
diff --git a/net-analyzer/sec/files/sec.conf.d b/net-analyzer/sec/files/sec.conf.d
new file mode 100644
index 000000000000..a6d8b9c1fddc
--- /dev/null
+++ b/net-analyzer/sec/files/sec.conf.d
@@ -0,0 +1,12 @@
+# configuration file for /etc/init.d/sec
+
+# flags to pass to sec (see 'sec --help')
+SEC_FLAGS=""
+
+# Define a debug level (1..6)
+DEBUG_LEVEL="4"
+
+# define where sec reads messages from for translating them
+#INPUT_FILES="${INPUT_FILES} -input=/var/log/some.log"
+#INPUT_FILES="${INPUT_FILES} -input=/tmp/other.file"
+INPUT_FILES="-input=/var/log/messages"
diff --git a/net-analyzer/sec/files/sec.init.d b/net-analyzer/sec/files/sec.init.d
new file mode 100644
index 000000000000..252b23242648
--- /dev/null
+++ b/net-analyzer/sec/files/sec.init.d
@@ -0,0 +1,35 @@
+#!/sbin/openrc-run
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ use logger
+}
+
+checkconfig() {
+ if [ ! -e /etc/sec.conf ] ; then
+ eerror "You need an /etc/sec.conf config file to run sec"
+ return 1
+ fi
+ return 0
+}
+
+start() {
+ checkconfig || return 1
+ ebegin "Starting sec"
+ start-stop-daemon --start --quiet --interpreted --exec /usr/bin/sec -- \
+ -pid=/run/sec.pid \
+ -detach -log=/var/log/sec.log \
+ -conf=/etc/sec.conf \
+ ${INPUT_FILES} \
+ -debug=${DEBUG_LEVEL} \
+ ${SEC_FLAGS} > /dev/null 2>&1
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping sec"
+ start-stop-daemon --stop --quiet --pidfile /run/sec.pid
+ eend $?
+}
+
diff --git a/net-analyzer/sec/metadata.xml b/net-analyzer/sec/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/sec/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/sec/sec-2.9.3.ebuild b/net-analyzer/sec/sec-2.9.3.ebuild
new file mode 100644
index 000000000000..863ac1c4bc31
--- /dev/null
+++ b/net-analyzer/sec/sec-2.9.3.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Simple Event Correlator"
+HOMEPAGE="https://simple-evcorr.github.io/ https://github.com/simple-evcorr/sec"
+SRC_URI="https://github.com/simple-evcorr/sec/releases/download/${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86"
+
+RDEPEND="
+ >=dev-lang/perl-5.8.0
+ virtual/perl-JSON-PP
+"
+
+src_install() {
+ dobin sec
+
+ dodoc ChangeLog README
+ docinto contrib
+ dodoc contrib/{itostream.c,convert.pl,swatch2sec.pl}
+
+ newman sec.man sec.1
+
+ newinitd "${FILESDIR}"/sec.init.d sec
+ newconfd "${FILESDIR}"/sec.conf.d sec
+}
diff --git a/net-analyzer/sec/sec-2.9.4.ebuild b/net-analyzer/sec/sec-2.9.4.ebuild
new file mode 100644
index 000000000000..dac890bce9e2
--- /dev/null
+++ b/net-analyzer/sec/sec-2.9.4.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DESCRIPTION="Simple Event Correlator"
+HOMEPAGE="https://simple-evcorr.github.io/ https://github.com/simple-evcorr/sec"
+SRC_URI="https://github.com/simple-evcorr/sec/releases/download/${PV}/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86"
+
+RDEPEND="
+ >=dev-lang/perl-5.8.0
+"
+
+src_install() {
+ dobin sec
+
+ dodoc ChangeLog README
+ docinto contrib
+ dodoc contrib/{itostream.c,convert.pl,swatch2sec.pl}
+
+ newman sec.man sec.1
+
+ newinitd "${FILESDIR}"/sec.init.d sec
+ newconfd "${FILESDIR}"/sec.conf.d sec
+}
diff --git a/net-analyzer/sflowtool/Manifest b/net-analyzer/sflowtool/Manifest
new file mode 100644
index 000000000000..30d754909b1e
--- /dev/null
+++ b/net-analyzer/sflowtool/Manifest
@@ -0,0 +1 @@
+DIST sflowtool-6.06.tar.gz 82125 BLAKE2B c817742f196fc90f273c3fba53475a2e345d24e116ace4015adfb2d06e7737a04db307c53c25241df4d4ac4a4f5bb5fcf652429142e6d628edae6125352270ee SHA512 68acfc5da9ee52b95c59d40986d267546f69e6d286c3a3cf35967d89cd970c2e8f8d32d6eb3f985a6bb48bd695ebed3f42559dcdc993b4fa8d3b904f6f9d756a
diff --git a/net-analyzer/sflowtool/metadata.xml b/net-analyzer/sflowtool/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/sflowtool/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/sflowtool/sflowtool-6.06.ebuild b/net-analyzer/sflowtool/sflowtool-6.06.ebuild
new file mode 100644
index 000000000000..4d35722f857f
--- /dev/null
+++ b/net-analyzer/sflowtool/sflowtool-6.06.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic
+
+DESCRIPTION="Utility for collecting and processing sFlow data"
+HOMEPAGE="
+ https://inmon.com/technology/sflowTools.php
+ https://github.com/sflow/sflowtool
+"
+SRC_URI="https://github.com/sflow/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="inmon-sflow"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+IUSE="debug"
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ append-cppflags -DSPOOFSOURCE
+ use debug && append-cppflags -DDEBUG
+
+ default
+}
+
+src_install() {
+ default
+ dobin scripts/sflowenable
+}
diff --git a/net-analyzer/shodan/Manifest b/net-analyzer/shodan/Manifest
new file mode 100644
index 000000000000..f7f2df0ae10b
--- /dev/null
+++ b/net-analyzer/shodan/Manifest
@@ -0,0 +1 @@
+DIST shodan-1.31.0.tar.gz 57939 BLAKE2B 7d22e8ec9e32669494838ddef76115ce80ba4600ca71e5c7e9e6c91d82bbf2a55e5e754d7fd4018545c9dbba01fd21bd9fd444d4f2090938f09c7b1610b98100 SHA512 fe66fdd4ae1088d165a2acd67f85a54a9fcbed8130ee5e2a5764d318fa0c50fb472fd5a76ce72f84fcfdb4c74c29ae2e14881f86468fb177ddc3191cb95d3b67
diff --git a/net-analyzer/shodan/metadata.xml b/net-analyzer/shodan/metadata.xml
new file mode 100644
index 000000000000..e2963e524a3d
--- /dev/null
+++ b/net-analyzer/shodan/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>mario.haustein@hrz.tu-chemnitz.de</email>
+ <name>Mario Haustein</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription>
+ Shodan is a search engine for Internet-connected devices. Google lets
+ you search for websites, Shodan lets you search for devices. This
+ library provides developers easy access to all of the data stored in
+ Shodan in order to automate tasks and integrate into existing tools.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/shodan/shodan-1.31.0.ebuild b/net-analyzer/shodan/shodan-1.31.0.ebuild
new file mode 100644
index 000000000000..b2a6a19cfcf6
--- /dev/null
+++ b/net-analyzer/shodan/shodan-1.31.0.ebuild
@@ -0,0 +1,36 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+inherit distutils-r1
+
+DESCRIPTION="The official Python library for Shodan"
+HOMEPAGE="https://github.com/achillean/shodan-python"
+
+MY_PN="${PN}-python"
+
+if [[ ${PV} = "9999" ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/achillean/shodan-python.git"
+else
+ inherit pypi
+ KEYWORDS="amd64 ~loong x86"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND="
+ dev-python/click[${PYTHON_USEDEP}]
+ dev-python/click-plugins[${PYTHON_USEDEP}]
+ dev-python/colorama[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.2.1[${PYTHON_USEDEP}]
+ dev-python/tldextract[${PYTHON_USEDEP}]
+ dev-python/xlsxwriter[${PYTHON_USEDEP}]
+"
+
+# Test requires API key
+RESTRICT="test"
diff --git a/net-analyzer/shodan/shodan-9999.ebuild b/net-analyzer/shodan/shodan-9999.ebuild
new file mode 100644
index 000000000000..7e2dee6bee87
--- /dev/null
+++ b/net-analyzer/shodan/shodan-9999.ebuild
@@ -0,0 +1,36 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+inherit distutils-r1
+
+DESCRIPTION="The official Python library for Shodan"
+HOMEPAGE="https://github.com/achillean/shodan-python"
+
+MY_PN="${PN}-python"
+
+if [[ ${PV} = "9999" ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/achillean/shodan-python.git"
+else
+ inherit pypi
+ KEYWORDS="~amd64 ~loong ~x86"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND="
+ dev-python/click[${PYTHON_USEDEP}]
+ dev-python/click-plugins[${PYTHON_USEDEP}]
+ dev-python/colorama[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.2.1[${PYTHON_USEDEP}]
+ dev-python/tldextract[${PYTHON_USEDEP}]
+ dev-python/xlsxwriter[${PYTHON_USEDEP}]
+"
+
+# Test requires API key
+RESTRICT="test"
diff --git a/net-analyzer/slurm/Manifest b/net-analyzer/slurm/Manifest
new file mode 100644
index 000000000000..2f14f31cb87d
--- /dev/null
+++ b/net-analyzer/slurm/Manifest
@@ -0,0 +1 @@
+DIST slurm-0.4.4.tar.gz 76154 BLAKE2B 4f5fa23f42dce3a5eca2a82b82b55cc81e564843a943c572b33c2c07b752e985f52516795c4331ba80137a76ababc8e61a8f7fbf183a032551f3aa2a95ba61d8 SHA512 5a54d004e18a27ead40140f0b5d1bf4db773d2d12a1d8358993944e0a51db8598353e330e114851b90125f09fd8d5ebfb50d2be362e85ad50e7c39ce6aa6bcc1
diff --git a/net-analyzer/slurm/metadata.xml b/net-analyzer/slurm/metadata.xml
new file mode 100644
index 000000000000..ec0bef05784c
--- /dev/null
+++ b/net-analyzer/slurm/metadata.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <longdescription>
+ Generic network load monitor for *BSD, Linux, HP-UX and Solaris witgh the next features:
+ * "realtime" traffic statistics
+ * three graph modes: combined RX and TX and two split views
+ * can monitor any network device
+ * curses ascii graphics
+ * ascii theme support
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/slurm/slurm-0.4.4.ebuild b/net-analyzer/slurm/slurm-0.4.4.ebuild
new file mode 100644
index 000000000000..8d871880002d
--- /dev/null
+++ b/net-analyzer/slurm/slurm-0.4.4.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit meson
+
+DESCRIPTION="Realtime network interface monitor based on FreeBSD's pppstatus"
+HOMEPAGE="https://github.com/mattthias/slurm"
+SRC_URI="https://github.com/mattthias/slurm/archive/upstream/${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${PN}-upstream-${PV}"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="amd64 ~ppc ~sparc x86"
+
+RDEPEND="sys-libs/ncurses:="
+DEPEND="${RDEPEND}"
+
+DOCS=( ChangeLog FAQ KEYS README.md THEMES.txt TODO )
diff --git a/net-analyzer/snallygaster/Manifest b/net-analyzer/snallygaster/Manifest
new file mode 100644
index 000000000000..2514df31dfbf
--- /dev/null
+++ b/net-analyzer/snallygaster/Manifest
@@ -0,0 +1,2 @@
+DIST snallygaster-0.0.14.tar.gz 15621 BLAKE2B 2b38e54ceb8e8519c608b4d9ab2f5fd3123e88ec227438d7ea19baf08c0de53f063615720319dea3ae1165ae901c6e449ec3c679fdbc0d0b8bbe3edd7b7cf2aa SHA512 8ab10bceb36634053a7991624955ba39e76dbbfa291c80be1734fd1ea1c6e10ede301f25a1c8e0cd115bf43f30451461873afaa9e30fcec70b0651a0b2dadf70
+DIST snallygaster-0.0.15.tar.gz 23681 BLAKE2B f639d91c38a8dab771666d1d1502d0da39eae2f726adf084c0d05a13b3c59df71bedad2fff865d29b942cc626935beca9a8ead399b07809f145e1ec89ea6f172 SHA512 a5b1825415298bfdfa2d94f1bf27d42f2bfae5d12ed5def9c65ec309e1402b7dd48846539f916874cbdb9e853dd7b156c9ea54ab94dac6fa4aa9c74a7b1b80d3
diff --git a/net-analyzer/snallygaster/metadata.xml b/net-analyzer/snallygaster/metadata.xml
new file mode 100644
index 000000000000..c6eb48b47eb8
--- /dev/null
+++ b/net-analyzer/snallygaster/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>hanno@gentoo.org</email>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/snallygaster/snallygaster-0.0.14.ebuild b/net-analyzer/snallygaster/snallygaster-0.0.14.ebuild
new file mode 100644
index 000000000000..11dde91d798a
--- /dev/null
+++ b/net-analyzer/snallygaster/snallygaster-0.0.14.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{13..14} )
+DISTUTILS_SINGLE_IMPL=1
+DISTUTILS_USE_PEP517=setuptools
+inherit distutils-r1 pypi
+
+DESCRIPTION="Finds file leaks and other security problems on HTTP servers"
+HOMEPAGE="https://github.com/hannob/snallygaster"
+
+LICENSE="0BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND="dev-python/dnspython
+ dev-python/urllib3
+ dev-python/lxml"
+RDEPEND="${DEPEND}"
+# doc TESTS.md missing in 0.0.14 tarball, will be re-added in next version
+DOCS=( README.md )
+
+# Only codingstyle and similar tests, require dependencies
+# not packaged in Gentoo
+RESTRICT="test"
diff --git a/net-analyzer/snallygaster/snallygaster-0.0.15.ebuild b/net-analyzer/snallygaster/snallygaster-0.0.15.ebuild
new file mode 100644
index 000000000000..9688899297df
--- /dev/null
+++ b/net-analyzer/snallygaster/snallygaster-0.0.15.ebuild
@@ -0,0 +1,23 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+PYTHON_COMPAT=( python3_{13..14} )
+DISTUTILS_SINGLE_IMPL=1
+DISTUTILS_USE_PEP517=setuptools
+inherit distutils-r1 pypi
+
+DESCRIPTION="Finds file leaks and other security problems on HTTP servers"
+HOMEPAGE="https://github.com/hannob/snallygaster"
+
+LICENSE="0BSD"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND="dev-python/dnspython
+ dev-python/urllib3
+ dev-python/lxml"
+RDEPEND="${DEPEND}"
+DOCS=( README.md TESTS.md )
+
+distutils_enable_tests unittest
diff --git a/net-analyzer/sngrep/Manifest b/net-analyzer/sngrep/Manifest
new file mode 100644
index 000000000000..eb378dcf4e86
--- /dev/null
+++ b/net-analyzer/sngrep/Manifest
@@ -0,0 +1 @@
+DIST sngrep-1.8.2.tar.gz 254184 BLAKE2B c13ffc6ff8231e0c1086a65815abb3d9831a3f016d7348da773c69d38a1c4433fdae98b6e810f277e350cad8d48033090ab86c0bd6ff237dd88e9c1b5207ac87 SHA512 0aa630ccd1816e81ed2d16f30275326ea4a91becd053ce5480a9695300e0cf1a97d06b75be248e8915a3e61f94baad0f6e61c2b580a28d291d1b8204388570c4
diff --git a/net-analyzer/sngrep/metadata.xml b/net-analyzer/sngrep/metadata.xml
new file mode 100644
index 000000000000..02e842f8e031
--- /dev/null
+++ b/net-analyzer/sngrep/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ </maintainer>
+ <use>
+ <flag name="eep">Enable EEP packet send/receive support</flag>
+ <flag name="gnutls">Use <pkg>net-libs/gnutls</pkg> to parse captured TLS packets</flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/sngrep/sngrep-1.8.2.ebuild b/net-analyzer/sngrep/sngrep-1.8.2.ebuild
new file mode 100644
index 000000000000..37af6f61402c
--- /dev/null
+++ b/net-analyzer/sngrep/sngrep-1.8.2.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="Ncurses SIP Messages flow viewer"
+HOMEPAGE="https://github.com/irontec/sngrep"
+SRC_URI="https://github.com/irontec/sngrep/releases/download/v${PV}/${P}.tar.gz"
+
+LICENSE="GPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="eep gnutls pcre ssl zlib"
+
+DEPEND="
+ net-libs/libpcap
+ sys-libs/ncurses:=[unicode(+)]
+ ssl? (
+ !gnutls? ( dev-libs/openssl:= )
+ gnutls? ( net-libs/gnutls:= )
+ )
+ pcre? ( dev-libs/libpcre2 )
+ zlib? ( virtual/zlib:= )
+"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ local myeconfargs=(
+ --enable-ipv6
+ --enable-unicode
+ --without-pcre
+ $(use_enable eep)
+ $(use_with pcre pcre2)
+ $(use_with ssl $(usex gnutls gnutls openssl))
+ $(use_with zlib)
+ )
+
+ econf "${myeconfargs[@]}"
+}
diff --git a/net-analyzer/sniffit/Manifest b/net-analyzer/sniffit/Manifest
new file mode 100644
index 000000000000..605011094631
--- /dev/null
+++ b/net-analyzer/sniffit/Manifest
@@ -0,0 +1,2 @@
+DIST sniffit-0.5.tar.gz 60074 BLAKE2B 55d2a65da3801cab4e612a8d1a1770c00abfa44555779ee29dc7358d9636e0b2a3f1e291bc64234588089967510bff99f5a9831d8acc01dacb080d7341081372 SHA512 cf6f4a1d396d47e0fa51cb527e8f64cc4f9af5f83121728ce6cbfb6a11509899e52a6c01f0dd20b0d3b92a567991390d9a616151c9496d4f2d764608ef3542bc
+DIST sniffit-0.6_p20240924.tar.gz 59838 BLAKE2B 4cb051e6ec3682652c40dff65238887c8bc29211acaf5934295e0d5393de1e7a7ebb0931ac0506eeb160066f427bd4081d7a82c9f993e1d6caddbe30e8bbf0ef SHA512 b6f7138051fbd13446d77eedbd1ba25f0fbfc098bbebbc27afc3218840713b633c6a7dafc6504e7cb77252c364cc5c49855ac788c1211830042efec01daadcb7
diff --git a/net-analyzer/sniffit/files/sniffit-0.4.0-tinfo.patch b/net-analyzer/sniffit/files/sniffit-0.4.0-tinfo.patch
new file mode 100644
index 000000000000..85e266fb5d13
--- /dev/null
+++ b/net-analyzer/sniffit/files/sniffit-0.4.0-tinfo.patch
@@ -0,0 +1,12 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -12,7 +12,8 @@
+ AC_PROG_CC
+
+ # Checks for libraries.
+-AC_CHECK_LIB(ncurses, main, , [AC_MSG_ERROR([Couldn't find libncurses])])
++AC_CHECK_LIB(ncurses, initscr, , [AC_MSG_ERROR([Couldn't find libncurses])])
++AC_SEARCH_LIBS(keypad, tinfo, , [AC_MSG_ERROR([Couldn't find libncurses])])
+ AC_CHECK_LIB(pcap, pcap_open_live, , [AC_MSG_ERROR([Couldn't find libpcap])])
+
+ # Checks for header files.
diff --git a/net-analyzer/sniffit/files/sniffit-0.5.0-implicit-func-decl.patch b/net-analyzer/sniffit/files/sniffit-0.5.0-implicit-func-decl.patch
new file mode 100644
index 000000000000..e6ee580d6e33
--- /dev/null
+++ b/net-analyzer/sniffit/files/sniffit-0.5.0-implicit-func-decl.patch
@@ -0,0 +1,50 @@
+https://github.com/resurrecting-open-source-projects/sniffit/pull/3
+
+From a05340968343d9f61f57506ed00bff0a62d3f38e Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Thu, 28 Jul 2022 12:14:44 +0100
+Subject: [PATCH] Fix -Wimplicit-function-declaration
+
+--- a/src/sn_cfgfile.c
++++ b/src/sn_cfgfile.c
+@@ -2,6 +2,7 @@
+ /* - by : Brecht Claerhout */
+ /* - improvements: Shudoh Kazuyuki */
+
++#include <ctype.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <string.h>
+--- a/src/sn_generation.c
++++ b/src/sn_generation.c
+@@ -13,7 +13,9 @@
+ #include "sn_curses.h"
+ #include "sn_defines.h"
+ #include "sn_structs.h"
++#include "sn_packets.h"
+ #include "sn_generation.h"
++#include "sn_interface.h"
+
+ extern volatile int screen_busy;
+
+--- a/src/sn_interface.c
++++ b/src/sn_interface.c
+@@ -4,6 +4,7 @@
+ #include "sn_config.h"
+
+ #ifdef INCLUDE_INTERFACE
++#include <ctype.h>
+ #include <signal.h>
+ #include <termios.h>
+ #include <stdlib.h>
+--- a/src/sniffit.c
++++ b/src/sniffit.c
+@@ -3,6 +3,7 @@
+
+ #include "sn_config.h" /* Config header file */
+
++#include <ctype.h>
+ #include <unistd.h>
+ #include <signal.h>
+ #include <stdlib.h>
+
diff --git a/net-analyzer/sniffit/files/sniffit-0.6-tinfo.patch b/net-analyzer/sniffit/files/sniffit-0.6-tinfo.patch
new file mode 100644
index 000000000000..960aaf853013
--- /dev/null
+++ b/net-analyzer/sniffit/files/sniffit-0.6-tinfo.patch
@@ -0,0 +1,12 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -16,7 +16,8 @@ AC_PROG_CC
+ # not use it because src/sn_config.h does not define INCLUDE_INTERFACE because
+ # other conditions are not met. It would be better to move that logic entirely
+ # to Autoconf and to define (or not) INCLUDE_INTERFACE only here.
+-AC_CHECK_LIB(ncurses, initscr)
++AC_CHECK_LIB(ncurses, initscr, , [AC_MSG_ERROR([Couldn't find libncurses])])
++AC_SEARCH_LIBS(keypad, tinfo, , [AC_MSG_ERROR([Couldn't find libncurses])])
+ AC_CHECK_LIB(pcap, pcap_open_live, , [AC_MSG_ERROR([Couldn't find libpcap])])
+
+ # Checks for header files.
diff --git a/net-analyzer/sniffit/metadata.xml b/net-analyzer/sniffit/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/sniffit/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/sniffit/sniffit-0.5-r1.ebuild b/net-analyzer/sniffit/sniffit-0.5-r1.ebuild
new file mode 100644
index 000000000000..82d9af795416
--- /dev/null
+++ b/net-analyzer/sniffit/sniffit-0.5-r1.ebuild
@@ -0,0 +1,31 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="Interactive Packet Sniffer"
+HOMEPAGE="https://github.com/resurrecting-open-source-projects/sniffit"
+SRC_URI="https://github.com/resurrecting-open-source-projects/sniffit/archive/${P}.tar.gz"
+S="${WORKDIR}"/${PN}-${P}
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ppc ~sparc x86"
+
+RDEPEND="
+ net-libs/libpcap
+ >=sys-libs/ncurses-5.2
+"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.4.0-tinfo.patch
+ "${FILESDIR}"/${PN}-0.5.0-implicit-func-decl.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
diff --git a/net-analyzer/sniffit/sniffit-0.6_p20240924.ebuild b/net-analyzer/sniffit/sniffit-0.6_p20240924.ebuild
new file mode 100644
index 000000000000..3fa08752362b
--- /dev/null
+++ b/net-analyzer/sniffit/sniffit-0.6_p20240924.ebuild
@@ -0,0 +1,44 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic
+
+DESCRIPTION="Interactive Packet Sniffer"
+HOMEPAGE="https://github.com/resurrecting-open-source-projects/sniffit"
+
+if [[ ${PV} == *_p* ]] ; then
+ SNIFFIT_COMMIT="22ab988654fa113fcc291844029a9b3889e5c84c"
+ SRC_URI="https://github.com/resurrecting-open-source-projects/sniffit/archive/${SNIFFIT_COMMIT}.tar.gz -> ${P}.tar.gz"
+ S="${WORKDIR}"/${PN}-${SNIFFIT_COMMIT}
+else
+ SRC_URI="https://github.com/resurrecting-open-source-projects/sniffit/archive/${P}.tar.gz"
+ S="${WORKDIR}"/${PN}-${P}
+fi
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ppc ~sparc x86"
+
+RDEPEND="
+ net-libs/libpcap
+ >=sys-libs/ncurses-5.2:=
+"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.6-tinfo.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ # bug #877295
+ append-flags -std=gnu89
+
+ econf
+}
diff --git a/net-analyzer/snmpclitools/Manifest b/net-analyzer/snmpclitools/Manifest
new file mode 100644
index 000000000000..bef97f1443c3
--- /dev/null
+++ b/net-analyzer/snmpclitools/Manifest
@@ -0,0 +1 @@
+DIST snmpclitools-0.7.2.tar.gz 59948 BLAKE2B fc2b0bf913e7145a62a910d759c18ed5a4954783d386b18af55522061bc729ec2337b8871ed76c8419441ed9b81be6e05ffd173c713356cd1a2d59e43d6e3912 SHA512 2b546f2286d8fe977ca17b6f04fa871a5d7d5d815a2157aef6c6af12e05021be829f766e43abda439c5ee5ae8a84e366178381d10760a536302363245ae5739b
diff --git a/net-analyzer/snmpclitools/metadata.xml b/net-analyzer/snmpclitools/metadata.xml
new file mode 100644
index 000000000000..3e6023768fc5
--- /dev/null
+++ b/net-analyzer/snmpclitools/metadata.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <stabilize-allarches />
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/snmpclitools/snmpclitools-0.7.2.ebuild b/net-analyzer/snmpclitools/snmpclitools-0.7.2.ebuild
new file mode 100644
index 000000000000..6f979fc2c60d
--- /dev/null
+++ b/net-analyzer/snmpclitools/snmpclitools-0.7.2.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=poetry
+PYTHON_COMPAT=( python3_{13..14} )
+inherit distutils-r1 pypi
+
+DESCRIPTION="Pure-Python SNMP management tools"
+HOMEPAGE="
+ https://github.com/lextudio/snmpclitools/
+ https://pypi.org/project/snmpclitools/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/pysnmp-6.0.0[${PYTHON_USEDEP}]
+"
+
+# TODO: doc
+#distutils_enable_sphinx docs/source \
+# dev-python/sphinx-copybutton dev-python/sphinx-notfound-page dev-python/sphinx-sitemap
diff --git a/net-analyzer/snmptt/Manifest b/net-analyzer/snmptt/Manifest
new file mode 100644
index 000000000000..5e868c48ef06
--- /dev/null
+++ b/net-analyzer/snmptt/Manifest
@@ -0,0 +1 @@
+DIST snmptt_1.4.2.tgz 142697 BLAKE2B 5603197adb919a8e34d07d6981f35ff60db5674f254ce3ac4e9e12f7aad31b4ba85ddfa5b785df0c759bd97929a24e9f694b9511d060fc94d60fe2e70764c662 SHA512 b8782aa5789227253c1b65c98771de7eba319f1f29b56224415f89d0c687515cd099f0ba7d0e304d43a9d054fa66335fe09d99545f50415745ac86b8b56a2b9d
diff --git a/net-analyzer/snmptt/files/snmptt.initd-r1 b/net-analyzer/snmptt/files/snmptt.initd-r1
new file mode 100644
index 000000000000..02b8fea24895
--- /dev/null
+++ b/net-analyzer/snmptt/files/snmptt.initd-r1
@@ -0,0 +1,19 @@
+#!/sbin/openrc-run
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ need snmptrapd
+}
+
+start() {
+ ebegin "Starting snmptt"
+ start-stop-daemon --start --pidfile /run/snmptt.pid --exec /usr/sbin/snmptt
+ eend
+}
+
+stop() {
+ ebegin "Stopping snmptt"
+ start-stop-daemon --stop --pidfile /run/snmptt.pid
+ eend
+}
diff --git a/net-analyzer/snmptt/metadata.xml b/net-analyzer/snmptt/metadata.xml
new file mode 100644
index 000000000000..87d758018cdd
--- /dev/null
+++ b/net-analyzer/snmptt/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:snmptt:snmptt</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/snmptt/snmptt-1.4.2.ebuild b/net-analyzer/snmptt/snmptt-1.4.2.ebuild
new file mode 100644
index 000000000000..075a33df8231
--- /dev/null
+++ b/net-analyzer/snmptt/snmptt-1.4.2.ebuild
@@ -0,0 +1,60 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="SNMP Trap Translator"
+SRC_URI="https://downloads.sourceforge.net/snmptt/${P/-/_}.tgz"
+HOMEPAGE="http://www.snmptt.org/"
+LICENSE="GPL-2"
+
+KEYWORDS="~amd64 ~ppc x86"
+SLOT="0"
+
+S="${WORKDIR}/${P/-/_}"
+
+RDEPEND="
+ dev-lang/perl
+ dev-perl/Config-IniFiles
+ net-analyzer/net-snmp
+"
+
+src_prepare() {
+ default
+
+ # bug 105354, daemonize by default
+ sed -i \
+ -e 's:mode = standalone:mode = daemon:g' \
+ -e '/pid_file/s:/var/run:/run:g' \
+ snmptt.ini || die
+
+ echo "traphandle default /usr/sbin/snmptt" > examples/snmptrapd.conf.sample || die
+}
+
+src_install() {
+ into /usr
+ dosbin \
+ snmptt \
+ snmptt-net-snmp-test \
+ snmpttconvert \
+ snmpttconvertmib \
+ snmptthandler \
+ snmptthandler-embedded
+
+ insinto /etc/snmp
+ doins \
+ examples/snmptrapd.conf.sample \
+ examples/snmptt.conf.generic \
+ snmptt.ini
+ newins examples/snmptt.conf.generic snmptt.conf
+
+ dodoc ChangeLog README sample-trap
+
+ docinto html
+ dodoc docs/*
+
+ newinitd "${FILESDIR}"/snmptt.initd-r1 snmptt
+
+ insinto /etc/logrotate.d
+ newins snmptt.logrotate snmptt
+}
diff --git a/net-analyzer/snort/Manifest b/net-analyzer/snort/Manifest
new file mode 100644
index 000000000000..d74b593f0aeb
--- /dev/null
+++ b/net-analyzer/snort/Manifest
@@ -0,0 +1 @@
+DIST snort-2.9.20.tar.gz 7009894 BLAKE2B 0fa1426dce94e2800550691bb433c01371c1688616a528c27803f75837cb5eb430246ee113b2a5a1e374b14b6fd5a57140ce54fe13fb13df94276fbd19aa0a15 SHA512 a9ca37e814baeb978a6db06c3c62256b9e98fdd9fa18ce881a2ce854c0c9a5d92476c3384bec9017b8a67e5d78c6f31ca19956a914f54b817343a159a2a7fced
diff --git a/net-analyzer/snort/files/snort-2.9.12-snort.pc.patch b/net-analyzer/snort/files/snort-2.9.12-snort.pc.patch
new file mode 100644
index 000000000000..3608a71c6922
--- /dev/null
+++ b/net-analyzer/snort/files/snort-2.9.12-snort.pc.patch
@@ -0,0 +1,11 @@
+--- a/snort.pc.in
++++ b/snort.pc.in
+@@ -12,6 +12,5 @@ Name: Snort
+ Description: Snort dynamic plugins/detection/rules
+ URL: www.snort.org
+ Version: @VERSION@
+-Libs: -L${libdir} -lcurl @LDFLAGS@ @LIBS@
+-Cflags: @CFLAGS@ @CPPFLAGS@
+-
++Libs: -L${libdir} -lcurl @LIBS@
++Cflags: -I${includedir} @CPPFLAGS@
diff --git a/net-analyzer/snort/files/snort-2.9.20-gcc-15-fix.patch b/net-analyzer/snort/files/snort-2.9.20-gcc-15-fix.patch
new file mode 100644
index 000000000000..c17a6d08326c
--- /dev/null
+++ b/net-analyzer/snort/files/snort-2.9.20-gcc-15-fix.patch
@@ -0,0 +1,26 @@
+Adapted from: https://lists.openembedded.org/g/openembedded-devel/topic/meta_oe_patch_2_8_snort/112466576
+
+Upstream-Status: Backport [resolved in snort3 https://github.com/snort3/snort3/commit/c3cc27355ac302bd24ee3e9d613166898ec2be64]
+
+Signed-off-by: Martin Jansa <martin.jansa@gmail.com>
+--- a/src/dynamic-preprocessors/dcerpc2/spp_dce2.c
++++ b/src/dynamic-preprocessors/dcerpc2/spp_dce2.c
+@@ -160,7 +160,7 @@ static void DCE2_ReloadSwapFree(void *);
+ static void DCE2_AddPortsToPaf(struct _SnortConfig *, DCE2_Config *, tSfPolicyId);
+ static void DCE2_ScAddPortsToPaf(struct _SnortConfig *, void *);
+ static uint32_t max(uint32_t a, uint32_t b);
+-static uint32_t DCE2_GetReloadSafeMemcap();
++static uint32_t DCE2_GetReloadSafeMemcap(tSfPolicyUserContextId pConfig);
+
+ static bool dce2_file_cache_is_enabled = false;
+ static bool dce2_file_cache_was_enabled = false;
+--- a/src/preprocessors/HttpInspect/include/file_decomp_PDF.h
++++ b/src/preprocessors/HttpInspect/include/file_decomp_PDF.h
+@@ -80,6 +80,6 @@ fd_status_t File_Decomp_Init_PDF( fd_session_p_t SessionPtr );
+
+ fd_status_t File_Decomp_End_PDF( fd_session_p_t SessionPtr );
+
+-fd_status_t File_Decomp_PDF();
++fd_status_t File_Decomp_PDF( fd_session_p_t SessionPtr );
+
+ #endif /* FILE_DECOMP_PDF_H */
diff --git a/net-analyzer/snort/files/snort-2.9.8.3-no-implicit.patch b/net-analyzer/snort/files/snort-2.9.8.3-no-implicit.patch
new file mode 100644
index 000000000000..7faf9a4aaa25
--- /dev/null
+++ b/net-analyzer/snort/files/snort-2.9.8.3-no-implicit.patch
@@ -0,0 +1,8 @@
+diff --git a/src/preprocessors/perf_indicators.c b/src/preprocessors/perf_indicators.c
+index d859fe7..c183552 100755
+--- a/src/preprocessors/perf_indicators.c
++++ b/src/preprocessors/perf_indicators.c
+@@ -25,2 +25,3 @@
+ #include "perf_indicators.h"
++#include "cpuclock.h" /* get_ticks_per_usec */
+
diff --git a/net-analyzer/snort/files/snort-2.9.8.3-rpc.patch b/net-analyzer/snort/files/snort-2.9.8.3-rpc.patch
new file mode 100644
index 000000000000..51ee56d8410e
--- /dev/null
+++ b/net-analyzer/snort/files/snort-2.9.8.3-rpc.patch
@@ -0,0 +1,26 @@
+diff -ruN snort-2.9.8.3.orig/configure.in snort-2.9.8.3/configure.in
+--- snort-2.9.8.3.orig/configure.in 2016-04-26 10:08:28.000000000 -0000
++++ snort-2.9.8.3/configure.in 2017-09-25 20:21:17.632003858 -0000
+@@ -187,6 +187,22 @@
+ AC_CHECK_LIB(nsl, inet_ntoa)
+ fi
+
++AC_ARG_WITH([libtirpc],
++ AS_HELP_STRING([--with-libtirpc], [Use libtirpc as RPC implementation (instead of sunrpc)]),
++ [], [ with_libtirpc=no ])
++
++AS_IF([test "x$with_libtirpc" != xno],
++ [PKG_CHECK_MODULES([TIRPC],
++ [libtirpc],
++ [extra_incl="$extra_incl $TIRPC_CFLAGS"; LIBS="$LIBS $TIRPC_LIBS";],
++ [AC_MSG_ERROR([libtirpc requested, but library not found.])]
++ )],
++ [AC_CHECK_HEADER(rpc/rpc.h,
++ [],
++ [AC_MSG_ERROR([sunrpc requested, but headers are not present.])]
++ )]
++)
++
+ if test -z "$no_libsocket"; then
+ AC_CHECK_LIB(socket, socket)
+ fi
diff --git a/net-analyzer/snort/files/snort.confd.2 b/net-analyzer/snort/files/snort.confd.2
new file mode 100644
index 000000000000..780c91052d1d
--- /dev/null
+++ b/net-analyzer/snort/files/snort.confd.2
@@ -0,0 +1,16 @@
+# Config file for /etc/init.d/snort
+
+# The following options are now set in your snort.conf file:
+# config set_gid:
+# config set_uid:
+# config snaplen:
+# config bpf_file:
+# config logdir:
+
+# The only options that should be set here are SNORT_IFACE and SNORT_CONF.
+
+# This tell snort which interface to listen on (any for every interface)
+SNORT_IFACE="eth1"
+
+# Probably not this either
+SNORT_CONF="/etc/snort/snort.conf"
diff --git a/net-analyzer/snort/files/snort.rc12 b/net-analyzer/snort/files/snort.rc12
new file mode 100644
index 000000000000..ad453c821fd2
--- /dev/null
+++ b/net-analyzer/snort/files/snort.rc12
@@ -0,0 +1,60 @@
+#!/sbin/openrc-run
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+extra_commands="checkconfig"
+extra_started_commands="reload"
+
+depend() {
+ need net
+ after mysql
+ after postgresql
+}
+
+checkconfig() {
+ if [ ! -e ${SNORT_CONF} ] ; then
+ eerror "You need a configuration file to run snort"
+ eerror "There is an example config in /etc/snort/snort.conf.distrib"
+ return 1
+ fi
+ if [ ! -d "/var/run/snort" ] ; then
+ checkpath -d /var/run/snort
+ fi
+}
+
+start() {
+ checkconfig || return 1
+ ebegin "Starting snort"
+ start-stop-daemon --start --quiet --exec /usr/bin/snort \
+ -- --nolock-pidfile --pid-path /var/run/snort -D -i ${SNORT_IFACE} \
+ -c ${SNORT_CONF} >/dev/null 2>&1
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping snort"
+ start-stop-daemon --stop --quiet --pidfile /var/run/snort/snort_${SNORT_IFACE}.pid
+ # Snort needs a few seconds to fully shutdown
+ sleep 15
+ eend $?
+}
+
+reload() {
+
+ local SNORT_PID="`cat /var/run/snort/snort_${SNORT_IFACE}.pid`"
+ local SNORT_USER="`ps -p ${SNORT_PID} --no-headers -o user`"
+
+ if [ ! -f /var/run/snort/snort_${SNORT_IFACE}.pid ]; then
+ eerror "Snort isn't running"
+ return 1
+ elif [ ${SNORT_USER} != root ]; then
+ eerror "Snort must be running as root for reload to work!"
+ return 1
+ else
+ checkconfig || return 1
+ ebegin "Reloading Snort"
+ start-stop-daemon --signal HUP --pidfile /var/run/snort/snort_${SNORT_IFACE}.pid
+ fi
+}
+
+
diff --git a/net-analyzer/snort/files/snort.tmpfiles b/net-analyzer/snort/files/snort.tmpfiles
new file mode 100644
index 000000000000..5772f2fd1ad1
--- /dev/null
+++ b/net-analyzer/snort/files/snort.tmpfiles
@@ -0,0 +1 @@
+d /run/snort 0755 snort snort -
diff --git a/net-analyzer/snort/files/snort_at.service b/net-analyzer/snort/files/snort_at.service
new file mode 100644
index 000000000000..40fb0cb1a1d5
--- /dev/null
+++ b/net-analyzer/snort/files/snort_at.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=Snort IDS system listening on '%I'
+
+[Service]
+Type=simple
+ExecStartPre=/bin/ip link set up dev %I
+ExecStart=/usr/bin/snort --daq-dir /usr/lib/daq/ -A fast -b -p -u snort -g snort -c /etc/snort/snort.conf -i %I
+ExecReload=/bin/kill -HUP $MAINPID
+
+[Install]
+Alias=multi-user.target.wants/snort@%i.service
diff --git a/net-analyzer/snort/metadata.xml b/net-analyzer/snort/metadata.xml
new file mode 100644
index 000000000000..3e804536b73d
--- /dev/null
+++ b/net-analyzer/snort/metadata.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>patrick@gentoo.org</email>
+ <name>Patrick Lauer</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <longdescription>
+ Snort is an open source network intrusion prevention and detection
+ system (IDS/IPS) developed by Sourcefire. Combining the benefits of
+ signature, protocol, and anomaly-based inspection, Snort is the most
+ widely deployed IDS/IPS technology worldwide. With millions of downloads
+ and approximately 300,000 registered users, Snort has become the de facto
+ standard for IPS.
+ </longdescription>
+ <upstream>
+ <maintainer>
+ <email>snort-team@sourcefire.com</email>
+ <name>Snort Team</name>
+ </maintainer>
+ <changelog>https://www.snort.org/downloads</changelog>
+ <doc>https://snort.org/documents#OfficialDocumentation</doc>
+ <bugs-to>https://snort.org/community#bugs</bugs-to>
+ <remote-id type="cpe">cpe:/a:snort:snort</remote-id>
+ </upstream>
+ <use>
+ <flag name="control-socket">
+ Enables Snort's control socket.
+ </flag>
+ <flag name="file-inspect">
+ Enables extended file inspection capabilities.
+ </flag>
+ <flag name="gre">
+ Enable support for inspecting and processing Generic Routing
+ Encapsulation (GRE) packet headers. Only needed if you are
+ monitoring GRE tunnels.
+ </flag>
+ <flag name="high-availability">
+ Enables high-availability state sharing.
+ </flag>
+ <flag name="inline-init-failopen">
+ Enables support to allow traffic to pass (fail-open) through
+ inline deployments while snort is starting and not ready to begin
+ inspecting traffic. If this option is not enabled, network
+ traffic will not pass (fail-closed) until snort has fully started
+ and is ready to perform packet inspection.
+ </flag>
+ <flag name="linux-smp-stats">
+ Enable accurate statistics reporting through /proc on systems with
+ multiple processors.
+ </flag>
+ <flag name="non-ether-decoders">
+ Enable decoding of non-ethernet protocols such as TokenRing, FDDI,
+ IPX, etc.
+ </flag>
+ <flag name="open-appid">
+ Enable OpenAppID, an open, application-focused detection language
+ and processing module for Snort that enables users to create, share,
+ and implement application detection. Requires <pkg>dev-lang/luajit</pkg>.
+ </flag>
+ <flag name="perfprofiling">
+ Enables support for preprocessor and rule performance profiling
+ using the perfmonitor preprocessor.
+ </flag>
+ <flag name="ppm">
+ Enables support for setting per rule or per packet latency limits.
+ Helps protect against introducing network latency with inline
+ deployments.
+ </flag>
+ <flag name="react">
+ Enables support for the react rule keyword. Supports interception,
+ termination, and redirection of HTTP connections.
+ </flag>
+ <flag name="shared-rep">
+ Enables the use of shared memory for the Reputation Preprocessor
+ (Only available on Linux systems)
+ </flag>
+ <flag name="side-channel">
+ Enables Snort's side channel.
+ </flag>
+ <flag name="sourcefire">
+ Enables Sourcefire specific build options, which include
+ --enable-perfprofiling and --enable-ppm.
+ </flag>
+ <flag name="reload-error-restart">
+ Enables support for completely restarting snort if an error is
+ detected during a reload.
+ </flag>
+ <flag name="active-response">
+ Enables support for automatically sending TCP resets and ICMP
+ unreachable messages to terminate connections. Used with inline
+ deployments.
+ </flag>
+ <flag name="flexresp3">
+ Enables support for new flexable response preprocessor for enabling
+ connection tearing for inline deployments. Replaces flexresp and
+ flexresp2.
+ </flag>
+ <flag name="large-pcap-64bit">
+ Allows Snort to read pcap files that are larger than 2 GB. ONLY
+ VALID FOR 64bit SYSTEMS!
+ </flag>
+ <flag name="libtirpc">
+ Build against <pkg>net-libs/libtirpc</pkg> for RPC support
+ </flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/snort/snort-2.9.20-r1.ebuild b/net-analyzer/snort/snort-2.9.20-r1.ebuild
new file mode 100644
index 000000000000..2d2b3757673c
--- /dev/null
+++ b/net-analyzer/snort/snort-2.9.20-r1.ebuild
@@ -0,0 +1,253 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-{1,3,4} luajit )
+
+inherit autotools flag-o-matic lua-single systemd tmpfiles
+
+DESCRIPTION="The de facto standard for intrusion detection/prevention"
+HOMEPAGE="https://www.snort.org"
+SRC_URI="https://www.snort.org/downloads/archive/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+
+KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+IUSE="+active-response control-socket debug file-inspect +flexresp3 +gre
+high-availability inline-init-failopen large-pcap-64bit +libtirpc
+linux-smp-stats +non-ether-decoders open-appid +perfprofiling +ppm +react
+reload-error-restart selinux shared-rep side-channel sourcefire +threads"
+
+DEPEND="acct-user/snort
+ acct-group/snort
+ dev-libs/libdnet
+ >=dev-libs/libpcre-8.33
+ net-libs/libnsl:0=
+ >=net-libs/libpcap-1.3.0
+ virtual/zlib:=
+ !libtirpc? ( sys-libs/glibc[rpc(-)] )
+ libtirpc? ( net-libs/libtirpc )
+ open-appid? ( ${LUA_DEPS} )"
+BDEPEND=">=net-libs/daq-2.0.2"
+RDEPEND="${DEPEND}
+ selinux? ( sec-policy/selinux-snort )"
+
+REQUIRED_USE="!kernel_linux? ( !shared-rep )
+ open-appid? ( ${LUA_REQUIRED_USE} )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2.9.8.3-no-implicit.patch"
+ "${FILESDIR}/${PN}-2.9.8.3-rpc.patch"
+ "${FILESDIR}/${PN}-2.9.12-snort.pc.patch"
+ "${FILESDIR}/${PN}-2.9.20-gcc-15-fix.patch"
+)
+
+pkg_setup() {
+ use open-appid && lua-single_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ mv configure.{in,ac} || die
+
+ AT_M4DIR=m4 eautoreconf
+}
+
+src_configure() {
+ # -Werror=strict-aliasing
+ # https://bugs.gentoo.org/861239
+ #
+ # Upstream does bug mail. Sent an email.
+ #
+ # Do not trust with LTO either.
+ append-flags -fno-strict-aliasing
+ filter-lto
+
+ econf \
+ $(use_enable gre) \
+ $(use_enable control-socket) \
+ $(use_enable file-inspect) \
+ $(use_enable high-availability ha) \
+ $(use_enable non-ether-decoders) \
+ $(use_enable shared-rep) \
+ $(use_enable side-channel) \
+ $(use_enable sourcefire) \
+ $(use_enable ppm) \
+ $(use_enable perfprofiling) \
+ $(use_enable linux-smp-stats) \
+ $(use_enable inline-init-failopen) \
+ $(use_enable open-appid) \
+ $(use_enable threads pthread) \
+ $(use_enable debug) \
+ $(use_enable debug debug-msgs) \
+ $(use_enable debug corefiles) \
+ $(use_enable !debug dlclose) \
+ $(use_enable active-response) \
+ $(use_enable reload-error-restart) \
+ $(use_enable react) \
+ $(use_enable flexresp3) \
+ $(use_enable large-pcap-64bit large-pcap) \
+ $(use_with libtirpc) \
+ --enable-mpls \
+ --enable-normalizer \
+ --enable-reload \
+ --enable-targetbased \
+ --disable-build-dynamic-examples \
+ --disable-profile \
+ --disable-ppm-test \
+ --disable-intel-soft-cpm \
+ --disable-static-daq \
+ --disable-static \
+ --disable-so-with-static-lib
+}
+
+src_install() {
+ default
+
+ keepdir /var/log/snort \
+ /etc/snort/rules \
+ /etc/snort/so_rules \
+ /usr/$(get_libdir)/snort_dynamicrules
+
+ # config.log and build.log are needed by Sourcefire
+ # to trouble shoot build problems and bug reports so we are
+ # perserving them incase the user needs upstream support.
+ dodoc RELEASE.NOTES ChangeLog \
+ doc/* \
+ tools/u2boat/README.u2boat
+
+ insinto /etc/snort
+ doins etc/attribute_table.dtd \
+ etc/classification.config \
+ etc/gen-msg.map \
+ etc/reference.config \
+ etc/threshold.conf \
+ etc/unicode.map
+
+ # We use snort.conf.distrib because the config file is complicated
+ # and the one shipped with snort can change drastically between versions.
+ # Users should migrate setting by hand and not with etc-update.
+ newins etc/snort.conf snort.conf.distrib
+
+ # config.log and build.log are needed by Sourcefire
+ # to troubleshoot build problems and bug reports so we are
+ # preserving them incase the user needs upstream support.
+ if [ -f "${WORKDIR}/${PF}/config.log" ]; then
+ dodoc "${WORKDIR}/${PF}/config.log"
+ fi
+ if [ -f "${T}/build.log" ]; then
+ dodoc "${T}/build.log"
+ fi
+
+ insinto /etc/snort/preproc_rules
+ doins preproc_rules/decoder.rules \
+ preproc_rules/preprocessor.rules \
+ preproc_rules/sensitive-data.rules
+
+ fowners -R snort:snort \
+ /var/log/snort \
+ /etc/snort
+
+ newinitd "${FILESDIR}/snort.rc12" snort
+ newconfd "${FILESDIR}/snort.confd.2" snort
+ systemd_newunit "${FILESDIR}/snort_at.service" "snort@.service"
+
+ newtmpfiles "${FILESDIR}"/snort.tmpfiles snort.conf
+
+ # Sourcefire uses Makefiles to install docs causing Bug #297190.
+ # This removes the unwanted doc directory and rogue Makefiles.
+ rm -rf "${ED}"/usr/share/doc/snort || die "Failed to remove SF doc directories"
+ rm "${ED}"/usr/share/doc/"${PF}"/Makefile* || die "Failed to remove doc make files"
+
+ # Remove unneeded .la files (Bug #382863)
+ find "${ED}" -name '*.la' -type f -delete || die
+
+ # Set the correct lib path for dynamicengine, dynamicpreprocessor, and dynamicdetection
+ sed -i -e 's|/usr/local/lib|/usr/'$(get_libdir)'|g' \
+ "${ED}/etc/snort/snort.conf.distrib" || die
+
+ # Set the correct rule location in the config
+ sed -i -e 's|RULE_PATH ../rules|RULE_PATH /etc/snort/rules|g' \
+ "${ED}/etc/snort/snort.conf.distrib" || die
+
+ # Set the correct preprocessor/decoder rule location in the config
+ sed -i -e 's|PREPROC_RULE_PATH ../preproc_rules|PREPROC_RULE_PATH /etc/snort/preproc_rules|g' \
+ "${ED}/etc/snort/snort.conf.distrib" || die
+
+ # Enable the preprocessor/decoder rules
+ sed -i -e 's|^# include $PREPROC_RULE_PATH|include $PREPROC_RULE_PATH|g' \
+ "${ED}/etc/snort/snort.conf.distrib" || die
+
+ sed -i -e 's|^# dynamicdetection directory|dynamicdetection directory|g' \
+ "${ED}/etc/snort/snort.conf.distrib" || die
+
+ # Just some clean up of trailing /'s in the config
+ sed -i -e 's|snort_dynamicpreprocessor/$|snort_dynamicpreprocessor|g' \
+ "${ED}/etc/snort/snort.conf.distrib" || die
+
+ # Make it clear in the config where these are...
+ sed -i -e 's|^include classification.config|include /etc/snort/classification.config|g' \
+ "${ED}/etc/snort/snort.conf.distrib" || die
+
+ sed -i -e 's|^include reference.config|include /etc/snort/reference.config|g' \
+ "${ED}/etc/snort/snort.conf.distrib" || die
+
+ # Disable all rule files by default.
+ sed -i -e 's|^include $RULE_PATH|# include $RULE_PATH|g' \
+ "${ED%}/etc/snort/snort.conf.distrib" || die
+
+ # Set the configured DAQ to afpacket
+ sed -i -e 's|^# config daq: <type>|config daq: afpacket|g' \
+ "${ED%}/etc/snort/snort.conf.distrib" || die
+
+ # Set the location of the DAQ modules
+ sed -i -e 's|^# config daq_dir: <dir>|config daq_dir: /usr/'$(get_libdir)'/daq|g' \
+ "${ED%}/etc/snort/snort.conf.distrib" || die
+
+ # Set the DAQ mode to passive
+ sed -i -e 's|^# config daq_mode: <mode>|config daq_mode: passive|g' \
+ "${ED%}/etc/snort/snort.conf.distrib" || die
+
+ # Set snort to run as snort:snort
+ sed -i -e 's|^# config set_gid:|config set_gid: snort|g' \
+ "${ED}/etc/snort/snort.conf.distrib" || die
+ sed -i -e 's|^# config set_uid:|config set_uid: snort|g' \
+ "${ED}/etc/snort/snort.conf.distrib" || die
+
+ # Set the default log dir
+ sed -i -e 's|^# config logdir:|config logdir: /var/log/snort/|g' \
+ "${ED}/etc/snort/snort.conf.distrib" || die
+
+ # Set the correct so_rule location in the config
+ sed -i -e 's|SO_RULE_PATH ../so_rules|SO_RULE_PATH /etc/snort/so_rules|g' \
+ "${ED}/etc/snort/snort.conf.distrib" || die
+}
+
+pkg_postinst() {
+ tmpfiles_process snort.conf
+
+ einfo "There have been a number of improvements and new features"
+ einfo "added to ${P}. Please review the RELEASE.NOTES and"
+ einfo "ChangLog located in /usr/share/doc/${PF}."
+ einfo
+ elog "The Sourcefire Vulnerability Research Team (VRT) recommends that"
+ elog "users migrate their snort.conf customizations to the latest config"
+ elog "file released by the VRT. You can find the latest version of the"
+ elog "Snort config file in /etc/snort/snort.conf.distrib."
+ elog
+ elog "!! It is important that you migrate to this new snort.conf file !!"
+ elog
+ elog "This version of the ebuild includes an updated init.d file and"
+ elog "conf.d file that rely on options found in the latest Snort"
+ elog "config file provided by the VRT."
+
+ if use debug; then
+ elog "You have the 'debug' USE flag enabled. If this has been done to"
+ elog "troubleshoot an issue by producing a core dump or a back trace,"
+ elog "then you need to also ensure the FEATURES variable in make.conf"
+ elog "contains the 'nostrip' option."
+ fi
+}
diff --git a/net-analyzer/snort/snort-2.9.20.ebuild b/net-analyzer/snort/snort-2.9.20.ebuild
new file mode 100644
index 000000000000..a65656105da7
--- /dev/null
+++ b/net-analyzer/snort/snort-2.9.20.ebuild
@@ -0,0 +1,252 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-{1,3,4} luajit )
+
+inherit autotools flag-o-matic lua-single systemd tmpfiles
+
+DESCRIPTION="The de facto standard for intrusion detection/prevention"
+HOMEPAGE="https://www.snort.org"
+SRC_URI="https://www.snort.org/downloads/archive/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+
+KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+IUSE="+active-response control-socket debug file-inspect +flexresp3 +gre
+high-availability inline-init-failopen large-pcap-64bit +libtirpc
+linux-smp-stats +non-ether-decoders open-appid +perfprofiling +ppm +react
+reload-error-restart selinux shared-rep side-channel sourcefire +threads"
+
+DEPEND="acct-user/snort
+ acct-group/snort
+ dev-libs/libdnet
+ >=dev-libs/libpcre-8.33
+ net-libs/libnsl:0=
+ >=net-libs/libpcap-1.3.0
+ virtual/zlib:=
+ !libtirpc? ( sys-libs/glibc[rpc(-)] )
+ libtirpc? ( net-libs/libtirpc )
+ open-appid? ( ${LUA_DEPS} )"
+BDEPEND=">=net-libs/daq-2.0.2"
+RDEPEND="${DEPEND}
+ selinux? ( sec-policy/selinux-snort )"
+
+REQUIRED_USE="!kernel_linux? ( !shared-rep )
+ open-appid? ( ${LUA_REQUIRED_USE} )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2.9.8.3-no-implicit.patch"
+ "${FILESDIR}/${PN}-2.9.8.3-rpc.patch"
+ "${FILESDIR}/${PN}-2.9.12-snort.pc.patch"
+)
+
+pkg_setup() {
+ use open-appid && lua-single_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ mv configure.{in,ac} || die
+
+ AT_M4DIR=m4 eautoreconf
+}
+
+src_configure() {
+ # -Werror=strict-aliasing
+ # https://bugs.gentoo.org/861239
+ #
+ # Upstream does bug mail. Sent an email.
+ #
+ # Do not trust with LTO either.
+ append-flags -fno-strict-aliasing
+ filter-lto
+
+ econf \
+ $(use_enable gre) \
+ $(use_enable control-socket) \
+ $(use_enable file-inspect) \
+ $(use_enable high-availability ha) \
+ $(use_enable non-ether-decoders) \
+ $(use_enable shared-rep) \
+ $(use_enable side-channel) \
+ $(use_enable sourcefire) \
+ $(use_enable ppm) \
+ $(use_enable perfprofiling) \
+ $(use_enable linux-smp-stats) \
+ $(use_enable inline-init-failopen) \
+ $(use_enable open-appid) \
+ $(use_enable threads pthread) \
+ $(use_enable debug) \
+ $(use_enable debug debug-msgs) \
+ $(use_enable debug corefiles) \
+ $(use_enable !debug dlclose) \
+ $(use_enable active-response) \
+ $(use_enable reload-error-restart) \
+ $(use_enable react) \
+ $(use_enable flexresp3) \
+ $(use_enable large-pcap-64bit large-pcap) \
+ $(use_with libtirpc) \
+ --enable-mpls \
+ --enable-normalizer \
+ --enable-reload \
+ --enable-targetbased \
+ --disable-build-dynamic-examples \
+ --disable-profile \
+ --disable-ppm-test \
+ --disable-intel-soft-cpm \
+ --disable-static-daq \
+ --disable-static \
+ --disable-so-with-static-lib
+}
+
+src_install() {
+ default
+
+ keepdir /var/log/snort \
+ /etc/snort/rules \
+ /etc/snort/so_rules \
+ /usr/$(get_libdir)/snort_dynamicrules
+
+ # config.log and build.log are needed by Sourcefire
+ # to trouble shoot build problems and bug reports so we are
+ # perserving them incase the user needs upstream support.
+ dodoc RELEASE.NOTES ChangeLog \
+ doc/* \
+ tools/u2boat/README.u2boat
+
+ insinto /etc/snort
+ doins etc/attribute_table.dtd \
+ etc/classification.config \
+ etc/gen-msg.map \
+ etc/reference.config \
+ etc/threshold.conf \
+ etc/unicode.map
+
+ # We use snort.conf.distrib because the config file is complicated
+ # and the one shipped with snort can change drastically between versions.
+ # Users should migrate setting by hand and not with etc-update.
+ newins etc/snort.conf snort.conf.distrib
+
+ # config.log and build.log are needed by Sourcefire
+ # to troubleshoot build problems and bug reports so we are
+ # preserving them incase the user needs upstream support.
+ if [ -f "${WORKDIR}/${PF}/config.log" ]; then
+ dodoc "${WORKDIR}/${PF}/config.log"
+ fi
+ if [ -f "${T}/build.log" ]; then
+ dodoc "${T}/build.log"
+ fi
+
+ insinto /etc/snort/preproc_rules
+ doins preproc_rules/decoder.rules \
+ preproc_rules/preprocessor.rules \
+ preproc_rules/sensitive-data.rules
+
+ fowners -R snort:snort \
+ /var/log/snort \
+ /etc/snort
+
+ newinitd "${FILESDIR}/snort.rc12" snort
+ newconfd "${FILESDIR}/snort.confd.2" snort
+ systemd_newunit "${FILESDIR}/snort_at.service" "snort@.service"
+
+ newtmpfiles "${FILESDIR}"/snort.tmpfiles snort.conf
+
+ # Sourcefire uses Makefiles to install docs causing Bug #297190.
+ # This removes the unwanted doc directory and rogue Makefiles.
+ rm -rf "${ED}"/usr/share/doc/snort || die "Failed to remove SF doc directories"
+ rm "${ED}"/usr/share/doc/"${PF}"/Makefile* || die "Failed to remove doc make files"
+
+ # Remove unneeded .la files (Bug #382863)
+ find "${ED}" -name '*.la' -type f -delete || die
+
+ # Set the correct lib path for dynamicengine, dynamicpreprocessor, and dynamicdetection
+ sed -i -e 's|/usr/local/lib|/usr/'$(get_libdir)'|g' \
+ "${ED}/etc/snort/snort.conf.distrib" || die
+
+ # Set the correct rule location in the config
+ sed -i -e 's|RULE_PATH ../rules|RULE_PATH /etc/snort/rules|g' \
+ "${ED}/etc/snort/snort.conf.distrib" || die
+
+ # Set the correct preprocessor/decoder rule location in the config
+ sed -i -e 's|PREPROC_RULE_PATH ../preproc_rules|PREPROC_RULE_PATH /etc/snort/preproc_rules|g' \
+ "${ED}/etc/snort/snort.conf.distrib" || die
+
+ # Enable the preprocessor/decoder rules
+ sed -i -e 's|^# include $PREPROC_RULE_PATH|include $PREPROC_RULE_PATH|g' \
+ "${ED}/etc/snort/snort.conf.distrib" || die
+
+ sed -i -e 's|^# dynamicdetection directory|dynamicdetection directory|g' \
+ "${ED}/etc/snort/snort.conf.distrib" || die
+
+ # Just some clean up of trailing /'s in the config
+ sed -i -e 's|snort_dynamicpreprocessor/$|snort_dynamicpreprocessor|g' \
+ "${ED}/etc/snort/snort.conf.distrib" || die
+
+ # Make it clear in the config where these are...
+ sed -i -e 's|^include classification.config|include /etc/snort/classification.config|g' \
+ "${ED}/etc/snort/snort.conf.distrib" || die
+
+ sed -i -e 's|^include reference.config|include /etc/snort/reference.config|g' \
+ "${ED}/etc/snort/snort.conf.distrib" || die
+
+ # Disable all rule files by default.
+ sed -i -e 's|^include $RULE_PATH|# include $RULE_PATH|g' \
+ "${ED%}/etc/snort/snort.conf.distrib" || die
+
+ # Set the configured DAQ to afpacket
+ sed -i -e 's|^# config daq: <type>|config daq: afpacket|g' \
+ "${ED%}/etc/snort/snort.conf.distrib" || die
+
+ # Set the location of the DAQ modules
+ sed -i -e 's|^# config daq_dir: <dir>|config daq_dir: /usr/'$(get_libdir)'/daq|g' \
+ "${ED%}/etc/snort/snort.conf.distrib" || die
+
+ # Set the DAQ mode to passive
+ sed -i -e 's|^# config daq_mode: <mode>|config daq_mode: passive|g' \
+ "${ED%}/etc/snort/snort.conf.distrib" || die
+
+ # Set snort to run as snort:snort
+ sed -i -e 's|^# config set_gid:|config set_gid: snort|g' \
+ "${ED}/etc/snort/snort.conf.distrib" || die
+ sed -i -e 's|^# config set_uid:|config set_uid: snort|g' \
+ "${ED}/etc/snort/snort.conf.distrib" || die
+
+ # Set the default log dir
+ sed -i -e 's|^# config logdir:|config logdir: /var/log/snort/|g' \
+ "${ED}/etc/snort/snort.conf.distrib" || die
+
+ # Set the correct so_rule location in the config
+ sed -i -e 's|SO_RULE_PATH ../so_rules|SO_RULE_PATH /etc/snort/so_rules|g' \
+ "${ED}/etc/snort/snort.conf.distrib" || die
+}
+
+pkg_postinst() {
+ tmpfiles_process snort.conf
+
+ einfo "There have been a number of improvements and new features"
+ einfo "added to ${P}. Please review the RELEASE.NOTES and"
+ einfo "ChangLog located in /usr/share/doc/${PF}."
+ einfo
+ elog "The Sourcefire Vulnerability Research Team (VRT) recommends that"
+ elog "users migrate their snort.conf customizations to the latest config"
+ elog "file released by the VRT. You can find the latest version of the"
+ elog "Snort config file in /etc/snort/snort.conf.distrib."
+ elog
+ elog "!! It is important that you migrate to this new snort.conf file !!"
+ elog
+ elog "This version of the ebuild includes an updated init.d file and"
+ elog "conf.d file that rely on options found in the latest Snort"
+ elog "config file provided by the VRT."
+
+ if use debug; then
+ elog "You have the 'debug' USE flag enabled. If this has been done to"
+ elog "troubleshoot an issue by producing a core dump or a back trace,"
+ elog "then you need to also ensure the FEATURES variable in make.conf"
+ elog "contains the 'nostrip' option."
+ fi
+}
diff --git a/net-analyzer/snortalog/Manifest b/net-analyzer/snortalog/Manifest
new file mode 100644
index 000000000000..2229e562f202
--- /dev/null
+++ b/net-analyzer/snortalog/Manifest
@@ -0,0 +1 @@
+DIST snortalog_v2.4.3.tar 1324032 BLAKE2B dae81fe861c7d85ce5fce63ffe773cccb8b643654a861e1b9cc91db22e5683c4a5d2c83ee6a1895386777c600b004978f91e3ed8a333397139bfe6f9644a79ce SHA512 b4b8558865ae4d1ef932114f2a2fb5af7fb069f1b587955d9d489a31635e890fb0ed36ebcde19322ab0c0cae49734da08602e283bd731c769de527abf7d74d06
diff --git a/net-analyzer/snortalog/metadata.xml b/net-analyzer/snortalog/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/snortalog/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/snortalog/snortalog-2.4.3-r2.ebuild b/net-analyzer/snortalog/snortalog-2.4.3-r2.ebuild
new file mode 100644
index 000000000000..2063d0ad5aa0
--- /dev/null
+++ b/net-analyzer/snortalog/snortalog-2.4.3-r2.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+MY_P="${PN}_v${PV}"
+
+inherit edos2unix
+
+DESCRIPTION="A powerful perl script that summarizes snort logs"
+HOMEPAGE="http://jeremy.chartier.free.fr/snortalog/"
+SRC_URI="http://jeremy.chartier.free.fr/snortalog/downloads/${PN}/${MY_P}.tar"
+S="${WORKDIR}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~sparc ~x86"
+IUSE="tk"
+
+RDEPEND="
+ || ( >=dev-lang/perl-5.38.2-r3[perl_features_ithreads] <dev-lang/perl-5.38.2-r3[ithreads] )
+ dev-perl/GDGraph
+ dev-perl/HTML-HTMLDoc
+ virtual/perl-DB_File
+ virtual/perl-Getopt-Long
+ tk? ( dev-perl/Tk )
+"
+
+src_prepare() {
+ default
+
+ local convert=$(find conf/ modules/ -type f || die)
+ convert+=( ${PN}.* CHANGES )
+
+ local item
+ for item in ${convert[@]} ; do
+ edos2unix "${item}"
+ done
+
+ # fix paths, erroneous can access message
+ sed -i \
+ -e "s:\(modules/\):/usr/lib/snortalog/${PV}/\1:g" \
+ -e 's:\($domains_file = "\)conf/\(domains\)\(".*\):\1/etc/snortalog/\2\3:' \
+ -e 's:\($rules_file = "\)conf/\(rules\)\(".*\):\1/etc/snortalog/\2\3:' \
+ -e 's:\($picts_dir ="\)picts\(".*\):\1/etc/snortalog/picts\2:' \
+ -e 's:\($hw_file = "\)conf/\(hw\)\(".*\):\1/etc/snortalog/\2\3:' \
+ -e 's:\($lang_file ="\)conf/\(lang\)\(".*\):\1/etc/snortalog/\2\3:' \
+ -e 's:Can access:Cannot access:' \
+ snortalog.pl || die
+}
+
+src_install() {
+ dobin snortalog.pl
+
+ insinto /etc/snortalog
+ doins conf/{domains,hw,lang,rules}
+
+ insinto /etc/snortalog/picts
+ doins picts/*
+
+ insinto /usr/lib/snortalog/${PV}/modules
+ doins -r modules/*
+
+ dodoc CHANGES doc/snortalog_v2.2.1.pdf
+}
diff --git a/net-analyzer/softflowd/Manifest b/net-analyzer/softflowd/Manifest
new file mode 100644
index 000000000000..8e5c65851f2a
--- /dev/null
+++ b/net-analyzer/softflowd/Manifest
@@ -0,0 +1 @@
+DIST softflowd-1.0.0.tar.gz 168379 BLAKE2B 97ce677adf8f8278516f25e82db1757ad5fe208fb8923b189698525d58d60c998ea847f29ae91eefed57d7bd1eb42f119a99e46346753539cb3a9584a90eb484 SHA512 01a4f89755c957a495b08c49b572b8b6aa41f5ac7672feb5e31b039fbfab84f3a206b1da95b11de2ec5882123f6ca2387c02efb874ce707c2263bf79b56012fd
diff --git a/net-analyzer/softflowd/files/softflowd.confd b/net-analyzer/softflowd/files/softflowd.confd
new file mode 100644
index 000000000000..dc1a36c874cd
--- /dev/null
+++ b/net-analyzer/softflowd/files/softflowd.confd
@@ -0,0 +1,9 @@
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# Copy conf file to softflowd.interface
+
+# SOFTFLOWD_COLLECTOR=host:port
+# SOFTFLOWD_TIMEOUTS="maxlife=600"
+# SOFTFLOWD_MAXFLOWS=17000
+# SOFTFLOWD_EXTRA=
+# SOFTFLOWD_INTERFACE_IDX=
diff --git a/net-analyzer/softflowd/files/softflowd.initd b/net-analyzer/softflowd/files/softflowd.initd
new file mode 100644
index 000000000000..c0c2a831c629
--- /dev/null
+++ b/net-analyzer/softflowd/files/softflowd.initd
@@ -0,0 +1,53 @@
+#!/sbin/openrc-run
+# Copyright 1999-2012 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ need net
+}
+
+softflowd_checkconfig() {
+ SOFTFLOWD_INTERFACE=${SVCNAME#*.}
+ if [ ${SOFTFLOWD_INTERFACE} = ${SVCNAME} ]; then
+ eerror "You have to create an init script for each interface:"
+ eerror "ln -s softflowd /etc/init.d/softflowd.eth0"
+ return 1
+ fi
+
+ if [ -z "${SOFTFLOWD_COLLECTOR}" ]; then
+ eerror "Specify the host and port that the accounting datagrams are to be"
+ eerror "sent to in /etc/conf.d/${SVCNAME}."
+ eerror "Example: SOFTFLOWD_COLLECTOR=collector.example.com:9995"
+ return 1
+ fi
+ SOFTFLOWD_PIDFILE="/var/run/softflowd.${SOFTFLOWD_INTERFACE}.pid"
+ SOFTFLOWD_CTLFILE="/var/run/softflowd.${SOFTFLOWD_INTERFACE}.ctl"
+}
+
+
+start() {
+ softflowd_checkconfig || return 1
+
+ ebegin "Starting softflowd on interface ${SOFTFLOWD_INTERFACE}"
+ iface_arg=${SOFTFLOWD_INTERFACE}
+ [ -n "${SOFTFLOWD_INTERFACE_IDX}" ] && iface_arg="${SOFTFLOWD_INTERFACE_IDX}:${iface_arg}"
+ start-stop-daemon --start \
+ --exec /usr/sbin/softflowd \
+ -- -i "${iface_arg}" \
+ -n "${SOFTFLOWD_COLLECTOR}" \
+ -p "${SOFTFLOWD_PIDFILE}" \
+ -c "${SOFTFLOWD_CTLFILE}" \
+ -t "${SOFTFLOWD_TIMEOUTS-maxlife=600}" \
+ -m "${SOFTFLOWD_MAXFLOWS-17000}" \
+ ${SOFTFLOWD_EXTRA}
+ eend $?
+}
+
+stop() {
+ softflowd_checkconfig || return 1
+
+ ebegin "Stopping softflowd on interface ${SOFTFLOWD_INTERFACE}"
+ # use softflowd's own way to shut it down
+ /usr/sbin/softflowctl -c ${SOFTFLOWD_CTLFILE} shutdown
+ eend $?
+}
diff --git a/net-analyzer/softflowd/metadata.xml b/net-analyzer/softflowd/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/softflowd/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/softflowd/softflowd-1.0.0.ebuild b/net-analyzer/softflowd/softflowd-1.0.0.ebuild
new file mode 100644
index 000000000000..6795a9a13ead
--- /dev/null
+++ b/net-analyzer/softflowd/softflowd-1.0.0.ebuild
@@ -0,0 +1,35 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit autotools
+
+DESCRIPTION="flow-based network traffic analyser capable of Cisco NetFlow data export"
+HOMEPAGE="https://www.mindrot.org/projects/softflowd/"
+SRC_URI="https://github.com/irino/${PN}/archive/${P}.tar.gz"
+
+LICENSE="BSD GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+DEPEND="net-libs/libpcap"
+RDEPEND="${DEPEND}"
+PATCHES=(
+# "${FILESDIR}"/${PN}-0.9.9-_GNU_SOURCE.patch
+)
+S=${WORKDIR}/${PN}-${P}
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_install() {
+ default
+
+ docinto examples
+ dodoc collector.pl
+
+ newinitd "${FILESDIR}"/${PN}.initd ${PN}
+ newconfd "${FILESDIR}"/${PN}.confd ${PN}
+}
diff --git a/net-analyzer/speedtest++/Manifest b/net-analyzer/speedtest++/Manifest
new file mode 100644
index 000000000000..96c1c7976566
--- /dev/null
+++ b/net-analyzer/speedtest++/Manifest
@@ -0,0 +1 @@
+DIST speedtest++-0.0.20240407.tar.gz 17713 BLAKE2B b813f28e953105d763b8792462632b75e0f0a179849c2f89e73259250512c1e50d52236b206544cbf98505e037cc7dc8215549e0a1b7c90c9b1ced6d5624d292 SHA512 3a802ff31c693fd52215c0ff2ec361bb15993128e4f67ca1f98de347d8a37ad64324129727f2082cd374e0a8c032878667dba15f43ff2bd9369b6a072362c26f
diff --git a/net-analyzer/speedtest++/files/speedtest++-0.0.20240407-cmake-4.patch b/net-analyzer/speedtest++/files/speedtest++-0.0.20240407-cmake-4.patch
new file mode 100644
index 000000000000..302b53959205
--- /dev/null
+++ b/net-analyzer/speedtest++/files/speedtest++-0.0.20240407-cmake-4.patch
@@ -0,0 +1,8 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-cmake_minimum_required(VERSION 2.7)
++cmake_minimum_required(VERSION 4.0)
+ project(SpeedTest)
+
+ set (SpeedTest_VERSION_MAJOR 1)
diff --git a/net-analyzer/speedtest++/metadata.xml b/net-analyzer/speedtest++/metadata.xml
new file mode 100644
index 000000000000..1958e5e3c5a9
--- /dev/null
+++ b/net-analyzer/speedtest++/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>zx2c4@gentoo.org</email>
+ <name>Jason A. Donenfeld</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/speedtest++/speedtest++-0.0.20240407.ebuild b/net-analyzer/speedtest++/speedtest++-0.0.20240407.ebuild
new file mode 100644
index 000000000000..94bc14c247bd
--- /dev/null
+++ b/net-analyzer/speedtest++/speedtest++-0.0.20240407.ebuild
@@ -0,0 +1,26 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="High performance speedtest.net CLI"
+HOMEPAGE="https://github.com/taganaka/SpeedTest"
+SNAPSHOT_COMMIT="b743996d617e63c065b8552165954dfd2b1f2918"
+SRC_URI="https://github.com/taganaka/SpeedTest/archive/${SNAPSHOT_COMMIT}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND="
+ net-misc/curl
+ dev-libs/libxml2:=
+ dev-libs/openssl:0=
+"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}/SpeedTest-${SNAPSHOT_COMMIT}"
+
+PATCHES=( "${FILESDIR}"/"${P}"-cmake-4.patch )
diff --git a/net-analyzer/speedtest-cli/Manifest b/net-analyzer/speedtest-cli/Manifest
new file mode 100644
index 000000000000..8cccddb672e4
--- /dev/null
+++ b/net-analyzer/speedtest-cli/Manifest
@@ -0,0 +1 @@
+DIST speedtest-cli-2.1.3.tar.gz 24771 BLAKE2B 70c604848ffa29ae0a28a636a40ffdd278000c865b243038f773d20a4f6f1c668704505c8bae302d84a0957b2a6ad9d4b303e2e9371b351348d7147ff9a5a67d SHA512 e2ecd9b4eea95e3641045c3da217ec5a39846b26c1f773fdd31c6ffe3cb5e35341320fc1992f865af48afd1a704c4d4224f9ec4048abb69131ee2f32385ae94c
diff --git a/net-analyzer/speedtest-cli/files/speedtest-cli-2.1.3-json-serverlist.patch b/net-analyzer/speedtest-cli/files/speedtest-cli-2.1.3-json-serverlist.patch
new file mode 100644
index 000000000000..455fd4bfd2eb
--- /dev/null
+++ b/net-analyzer/speedtest-cli/files/speedtest-cli-2.1.3-json-serverlist.patch
@@ -0,0 +1,88 @@
+diff --git a/speedtest.py b/speedtest.py
+index a33296d..e7490b1 100755
+--- a/speedtest.py
++++ b/speedtest.py
+@@ -20,6 +20,7 @@ import re
+ import csv
+ import sys
+ import math
++import json
+ import errno
+ import signal
+ import socket
+@@ -1250,10 +1251,7 @@ class Speedtest(object):
+ )
+
+ urls = [
+- '://www.speedtest.net/speedtest-servers-static.php',
+- 'http://c.speedtest.net/speedtest-servers-static.php',
+- '://www.speedtest.net/speedtest-servers.php',
+- 'http://c.speedtest.net/speedtest-servers.php',
++ "://www.speedtest.net/api/js/servers",
+ ]
+
+ headers = {}
+@@ -1296,53 +1294,31 @@ class Speedtest(object):
+ printer('Servers XML:\n%s' % serversxml, debug=True)
+
+ try:
+- try:
+- try:
+- root = ET.fromstring(serversxml)
+- except ET.ParseError:
+- e = get_exception()
+- raise SpeedtestServersError(
+- 'Malformed speedtest.net server list: %s' % e
+- )
+- elements = etree_iter(root, 'server')
+- except AttributeError:
+- try:
+- root = DOM.parseString(serversxml)
+- except ExpatError:
+- e = get_exception()
+- raise SpeedtestServersError(
+- 'Malformed speedtest.net server list: %s' % e
+- )
+- elements = root.getElementsByTagName('server')
+- except (SyntaxError, xml.parsers.expat.ExpatError):
++ elements = json.loads(serversxml)
++ except SyntaxError:
+ raise ServersRetrievalError()
+
+ for server in elements:
+- try:
+- attrib = server.attrib
+- except AttributeError:
+- attrib = dict(list(server.attributes.items()))
+-
+- if servers and int(attrib.get('id')) not in servers:
++ if servers and int(server.get('id')) not in servers:
+ continue
+
+- if (int(attrib.get('id')) in self.config['ignore_servers']
+- or int(attrib.get('id')) in exclude):
++ if (int(server.get('id')) in self.config['ignore_servers']
++ or int(server.get('id')) in exclude):
+ continue
+
+ try:
+ d = distance(self.lat_lon,
+- (float(attrib.get('lat')),
+- float(attrib.get('lon'))))
++ (float(server.get('lat')),
++ float(server.get('lon'))))
+ except Exception:
+ continue
+
+- attrib['d'] = d
++ server['d'] = d
+
+ try:
+- self.servers[d].append(attrib)
++ self.servers[d].append(server)
+ except KeyError:
+- self.servers[d] = [attrib]
++ self.servers[d] = [server]
+
+ break
+
diff --git a/net-analyzer/speedtest-cli/metadata.xml b/net-analyzer/speedtest-cli/metadata.xml
new file mode 100644
index 000000000000..61748ea16a00
--- /dev/null
+++ b/net-analyzer/speedtest-cli/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>conikost@gentoo.org</email>
+ <name>Conrad Kostecki</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/speedtest-cli/speedtest-cli-2.1.3-r2.ebuild b/net-analyzer/speedtest-cli/speedtest-cli-2.1.3-r2.ebuild
new file mode 100644
index 000000000000..5670e77aa7f6
--- /dev/null
+++ b/net-analyzer/speedtest-cli/speedtest-cli-2.1.3-r2.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517="setuptools"
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="Command line interface for testing internet bandwidth using speedtest.net"
+HOMEPAGE="https://github.com/sivel/speedtest-cli"
+SRC_URI="https://github.com/sivel/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 ~arm arm64 ppc ppc64 x86"
+
+DEPEND="dev-python/setuptools[${PYTHON_USEDEP}]"
+RDEPEND="${DEPEND}"
+
+PATCHES=( "${FILESDIR}/${PN}-2.1.3-json-serverlist.patch" )
+
+python_install_all() {
+ doman ${PN}.1
+ distutils-r1_python_install_all
+}
diff --git a/net-analyzer/sqlninja/Manifest b/net-analyzer/sqlninja/Manifest
new file mode 100644
index 000000000000..a5105289778d
--- /dev/null
+++ b/net-analyzer/sqlninja/Manifest
@@ -0,0 +1 @@
+DIST sqlninja-0.2.6-r1.tgz 454841 BLAKE2B c8fc4932c4bffe03e873126801c75dbf9961b97979ff1fd1530aca5f0d132513f62de2516e1649f57955c0ef5ca723b52cd4f9c6e89b27df63b978b0aaf42745 SHA512 18f6c8f0f1eca59d9ce6df80267f1f6bf45d151dfcd395b32d349119e1480389ba28f057778349b4276d480f60c41ca03578a1ca9c4e246f3fcb63653bc6ccf9
diff --git a/net-analyzer/sqlninja/files/sqlninja b/net-analyzer/sqlninja/files/sqlninja
new file mode 100644
index 000000000000..bb0f9e18b747
--- /dev/null
+++ b/net-analyzer/sqlninja/files/sqlninja
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+cd /usr/lib/sqlninja/
+./sqlninja $@
diff --git a/net-analyzer/sqlninja/metadata.xml b/net-analyzer/sqlninja/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/sqlninja/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/sqlninja/sqlninja-0.2.6_p1-r1.ebuild b/net-analyzer/sqlninja/sqlninja-0.2.6_p1-r1.ebuild
new file mode 100644
index 000000000000..60cf228b8201
--- /dev/null
+++ b/net-analyzer/sqlninja/sqlninja-0.2.6_p1-r1.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_PV="${PV//_/-}"
+MY_PV="${MY_PV/p/r}"
+MY_P="${PN}-${MY_PV}"
+
+DESCRIPTION="A SQL Server injection & takeover tool"
+HOMEPAGE="http://sqlninja.sourceforge.net/"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${MY_P}.tgz"
+S="${WORKDIR}/${MY_P}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc"
+RESTRICT="mirror"
+
+RDEPEND="
+ dev-lang/perl
+ dev-perl/IO-Socket-SSL
+ dev-perl/List-MoreUtils
+ dev-perl/Net-DNS
+ dev-perl/Net-Pcap
+ dev-perl/Net-RawIP
+ dev-perl/NetPacket
+"
+
+src_install() {
+ dodoc sqlninja-howto.html ChangeLog README
+
+ if use doc; then
+ dodoc -r sources
+ docompress -x /usr/share/doc/${P}/sources
+ fi
+
+ insinto /etc/${PN}
+ doins sqlninja.conf.example
+
+ rm -r sources sqlninja-howto.html ChangeLog README LICENSE || die
+ rm -r apps || die
+ rm sqlninja.conf.example || die
+
+ insinto /usr/lib/${PN}
+ exeinto /usr/lib/${PN}
+ doins -r *
+
+ doexe sqlninja
+ dosbin "${FILESDIR}"/${PN}
+}
diff --git a/net-analyzer/squid-graph/Manifest b/net-analyzer/squid-graph/Manifest
new file mode 100644
index 000000000000..bdc0dc6484a3
--- /dev/null
+++ b/net-analyzer/squid-graph/Manifest
@@ -0,0 +1 @@
+DIST squid-graph-3.2.tar.gz 20066 BLAKE2B 16c4b9621ad45eefe7be8c83d7339fb832516241e8eb17c7f0906b6dc7cddf06b2ed32d00e84ab390f95f7a57798f7af75a36af940605ce186513c09611c2152 SHA512 ab2529b0b67fb6549dd0837f2208ae712460ad19876baee8000a51c91ab31c464b83b360dfc93690ad6f4b3feb969cc95ca38a179ddefb6e0aa54b0cff866bfd
diff --git a/net-analyzer/squid-graph/metadata.xml b/net-analyzer/squid-graph/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/squid-graph/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/squid-graph/squid-graph-3.2-r2.ebuild b/net-analyzer/squid-graph/squid-graph-3.2-r2.ebuild
new file mode 100644
index 000000000000..e0e5a19500ef
--- /dev/null
+++ b/net-analyzer/squid-graph/squid-graph-3.2-r2.ebuild
@@ -0,0 +1,20 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+DESCRIPTION="Squid logfile analyzer and traffic grapher"
+HOMEPAGE="http://squid-graph.sourceforge.net/"
+SRC_URI="https://downloads.sourceforge.net/squid-graph/${P}.tar.gz"
+S="${WORKDIR}"/${PN}
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86"
+
+RDEPEND="dev-perl/GD[png(+)]"
+
+src_install() {
+ dobin apacheconv generate.cgi squid-graph timeconv
+ dodoc README
+}
diff --git a/net-analyzer/squidview/Manifest b/net-analyzer/squidview/Manifest
new file mode 100644
index 000000000000..f1e76b0e0fbb
--- /dev/null
+++ b/net-analyzer/squidview/Manifest
@@ -0,0 +1 @@
+DIST squidview-0.86.tar.gz 129911 BLAKE2B 8a514728508c2739aa619d1a481beddd6783e61ccad1252ee6f6a8052fe87bf0edbf23eac19761aac275a370092af45b981ae201a1e4a7b47168941ba642f128 SHA512 c020799e149a4884525b832a21ce990b90da5d3e1caac240913a37b8559bac4e3402b8f5732c3728308ecbea0a56a9e4b764ec7f36b15727c000d6d9e25a57a6
diff --git a/net-analyzer/squidview/files/squidview-0.86-tinfo.patch b/net-analyzer/squidview/files/squidview-0.86-tinfo.patch
new file mode 100644
index 000000000000..7dd536c5f81f
--- /dev/null
+++ b/net-analyzer/squidview/files/squidview-0.86-tinfo.patch
@@ -0,0 +1,43 @@
+--- a/configure.in
++++ b/configure.in
+@@ -1,23 +1,9 @@
+-AC_DEFUN([CURSES_TEST],
+-[
+-if test "x$sv_curses" = xno; then
+- sv_test=$1
+- sv_pass="no"
+- AC_MSG_CHECKING([name is $sv_test])
+- LIBS="-l$sv_test"
+- AC_LINK_IFELSE([AC_LANG_PROGRAM([#include <curses.h>], [initscr();])],
+- [sv_pass="yes"])
+- AC_MSG_RESULT([$sv_pass])
+- test "$sv_pass" = yes && sv_curses=$sv_test
+- unset LIBS
+-fi
+-])
+-
+ AC_INIT(squidview.cpp)
+ AM_CONFIG_HEADER(config.h)
+ AM_INIT_AUTOMAKE(squidview,0.86)
+ AC_PROG_CXX
+ AC_PROG_INSTALL
++PKG_PROG_PKG_CONFIG
+
+ AC_CHECK_HEADERS(curses.h, signal.h sys/time.h sys/types.h sys/stat.h \
+ unistd.h fcntl.h time.h stdlib.h math.h stdio.h,, \
+@@ -28,14 +14,7 @@
+ AC_CHECK_HEADER(vector,,AC_MSG_ERROR(C++ STL vector class missing))
+ AC_CHECK_HEADER(algorithm,,AC_MSG_ERROR(C++ STL algorithm class missing))
+
+-AC_MSG_NOTICE([Checking curses library name])
+-sv_curses=no
+-CURSES_TEST(ncurses)
+-CURSES_TEST(curses)
+-if test "x$sv_curses" = xno; then
+- AC_MSG_ERROR([No suitable curses found])
+-fi
+-AC_CHECK_LIB($sv_curses, wgetch,,AC_MSG_ERROR([Curses support is not complete?]))
++PKG_CHECK_MODULES([NCURSES],[ncurses],LIBS="$LIBS $NCURSES_LIBS",AC_MSG_ERROR([No suitable curses found]))
+
+ AC_MSG_CHECKING([large file support])
+ sv_large="no"
diff --git a/net-analyzer/squidview/metadata.xml b/net-analyzer/squidview/metadata.xml
new file mode 100644
index 000000000000..5f33304011d5
--- /dev/null
+++ b/net-analyzer/squidview/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/squidview/squidview-0.86.ebuild b/net-analyzer/squidview/squidview-0.86.ebuild
new file mode 100644
index 000000000000..4ee7ee30ad0e
--- /dev/null
+++ b/net-analyzer/squidview/squidview-0.86.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit autotools
+
+DESCRIPTION="Interactive console program to analyse squid logs"
+HOMEPAGE="http://www.rillion.net/squidview/"
+SRC_URI="http://www.rillion.net/squidview/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ sys-libs/ncurses
+"
+DEPEND="
+ ${RDEPEND}
+ virtual/pkgconfig
+"
+DOCS=(
+ AUTHORS BUGS ChangeLog HOWTO README
+)
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.86-tinfo.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
diff --git a/net-analyzer/ssh-audit/Manifest b/net-analyzer/ssh-audit/Manifest
new file mode 100644
index 000000000000..b779836867c0
--- /dev/null
+++ b/net-analyzer/ssh-audit/Manifest
@@ -0,0 +1,2 @@
+DIST ssh-audit-3.3.0.tar.gz 172808 BLAKE2B 9c02708344b491c3a64edec96b95973dddc7eb2e77bfc7752e747d4b890b2e0ef9ca2724962ea81940b0ee7ed475f5a149f768d915289bb704ea3b2cec17dafb SHA512 5be8c2e65ca76f34b425392ee54dc62be7a7bfe00fd567123000278a3c4fcd5fe7f4cab8f1edab5ffb08cb9827303ec1e6605b4d0b0a8b35c210f69a57fc595d
+DIST ssh-audit-3.3.0_p20250901.tar.gz 178497 BLAKE2B 4184d89e630fe9fb5c6571ad144db01e6f3edf6894a9b8da4aeafefa45ceb43900821a6f976c470e06a047ad6aa357cd4bfae6522eda641c27d60fac7a2f3f0b SHA512 db6b389c564bd326da8c449287981e90a218cdec2583de07e02f0f3af9b77998a2c3f783aca6aeb9d3bd8a747b7497467b5a603a925fdeeb4031e4245eeb297c
diff --git a/net-analyzer/ssh-audit/metadata.xml b/net-analyzer/ssh-audit/metadata.xml
new file mode 100644
index 000000000000..ae2d62efbed5
--- /dev/null
+++ b/net-analyzer/ssh-audit/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>hlein@korelogic.com</email>
+ <name>Hank Leininger</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/ssh-audit/ssh-audit-3.3.0.ebuild b/net-analyzer/ssh-audit/ssh-audit-3.3.0.ebuild
new file mode 100644
index 000000000000..7f9b37599d9e
--- /dev/null
+++ b/net-analyzer/ssh-audit/ssh-audit-3.3.0.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="SSH server auditing (banner, key exchange, encryption, mac, compression, etc)"
+HOMEPAGE="https://github.com/jtesta/ssh-audit"
+SRC_URI="https://github.com/jtesta/ssh-audit/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64"
+IUSE="test"
+
+# Tests require prospector which is not packaged
+RESTRICT="test"
+
+src_install() {
+ distutils-r1_src_install
+
+ doman ssh-audit.1
+}
diff --git a/net-analyzer/ssh-audit/ssh-audit-3.3.0_p20250901.ebuild b/net-analyzer/ssh-audit/ssh-audit-3.3.0_p20250901.ebuild
new file mode 100644
index 000000000000..eca44fca2476
--- /dev/null
+++ b/net-analyzer/ssh-audit/ssh-audit-3.3.0_p20250901.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit distutils-r1
+
+DESCRIPTION="SSH server auditing (banner, key exchange, encryption, mac, compression, etc)"
+HOMEPAGE="https://github.com/jtesta/ssh-audit"
+COMMIT="4f9a630de4292663bd50fff4dfa347c53316ca37"
+SRC_URI="https://github.com/jtesta/ssh-audit/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${PN}-${COMMIT}"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64"
+IUSE="test"
+
+# Tests require prospector which is not packaged
+RESTRICT="test"
+
+src_install() {
+ distutils-r1_src_install
+
+ doman ssh-audit.1
+}
diff --git a/net-analyzer/sshping/Manifest b/net-analyzer/sshping/Manifest
new file mode 100644
index 000000000000..5ff59abc1d9a
--- /dev/null
+++ b/net-analyzer/sshping/Manifest
@@ -0,0 +1 @@
+DIST sshping-0.1.4.tar.gz 3536227 BLAKE2B 30ee41324046d5ba5fb38a28acbf11dabadcbe41c506f7e4f51f2a5e95c015251d77ad16c534160eb1b83a871a5d25083b2481a5df91f5beb104279268838ae7 SHA512 16d72099b468c58d44835822a372f97863ba0b73282e8e64c20b0a0e6465e6f9efa634a85b0c7c13d03c470c547b08332820bf177f5bad59984270801ab74782
diff --git a/net-analyzer/sshping/files/sshping-0.1.4-cmake-minimum-version.patch b/net-analyzer/sshping/files/sshping-0.1.4-cmake-minimum-version.patch
new file mode 100644
index 000000000000..888e5cdbf5b5
--- /dev/null
+++ b/net-analyzer/sshping/files/sshping-0.1.4-cmake-minimum-version.patch
@@ -0,0 +1,30 @@
+https://github.com/spook/sshping/pull/50
+From: John Helmert III <ajak@gentoo.org>
+Date: Tue, 25 Mar 2025 21:20:43 -0700
+Subject: [PATCH] cmake: set cmake_minimum_required to 3.10
+
+cmake-4 removes support for the minimum version being lower than 3.5,
+and older than 3.10 is deprecated with 3.31.
+
+Closes: #49
+Gentoo-Bug: https://bugs.gentoo.org/951814
+Signed-off-by: John Helmert III <ajak@gentoo.org>
+---
+ CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e8a7d0b..046bc72 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,6 +1,6 @@
+ # See https://github.com/spook/sshping
++cmake_minimum_required(VERSION 3.10)
+ project(sshping)
+-cmake_minimum_required(VERSION 2.8)
+
+ #find_package(libssh)
+
+--
+2.48.1
+
diff --git a/net-analyzer/sshping/files/sshping-0.1.4-fix-man-dir.patch b/net-analyzer/sshping/files/sshping-0.1.4-fix-man-dir.patch
new file mode 100644
index 000000000000..2758e84b70e4
--- /dev/null
+++ b/net-analyzer/sshping/files/sshping-0.1.4-fix-man-dir.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index 2e59dd5..d20c9a9 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -34,7 +34,7 @@ if (UNIX)
+ endif (UNIX)
+
+ add_custom_target(man ALL DEPENDS ${MAN_TGT})
+-install(FILES ${MAN_TGT} DESTINATION ${CMAKE_INSTALL_PREFIX}/man/man8)
++install(FILES ${MAN_TGT} DESTINATION ${CMAKE_INSTALL_PREFIX}/share/man/man8)
+
+ # Packaging for RPM or DEB
+ find_program(rpmbuild_path "rpmbuild" FALSE)
diff --git a/net-analyzer/sshping/files/sshping-0.1.4-respect-cxxflags.patch b/net-analyzer/sshping/files/sshping-0.1.4-respect-cxxflags.patch
new file mode 100644
index 000000000000..9f2f905aded6
--- /dev/null
+++ b/net-analyzer/sshping/files/sshping-0.1.4-respect-cxxflags.patch
@@ -0,0 +1,13 @@
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index e8a7d0b..00ade1c 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -5,7 +5,7 @@ cmake_minimum_required(VERSION 2.8)
+ #find_package(libssh)
+
+ # Build the sshping binary
+-set(CMAKE_CXX_FLAGS "-I ${CMAKE_CURRENT_SOURCE_DIR}/ext/ -Wall")
++set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I ${CMAKE_CURRENT_SOURCE_DIR}/ext/")
+ add_executable(${PROJECT_NAME} src/sshping.cxx)
+ target_link_libraries(${PROJECT_NAME} ssh)
+ install(TARGETS ${PROJECT_NAME} DESTINATION bin)
diff --git a/net-analyzer/sshping/metadata.xml b/net-analyzer/sshping/metadata.xml
new file mode 100644
index 000000000000..c98f336fe25a
--- /dev/null
+++ b/net-analyzer/sshping/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>ajak@gentoo.org</email>
+ <name>John Helmert III</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/sshping/sshping-0.1.4-r1.ebuild b/net-analyzer/sshping/sshping-0.1.4-r1.ebuild
new file mode 100644
index 000000000000..853943b6e8ce
--- /dev/null
+++ b/net-analyzer/sshping/sshping-0.1.4-r1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 2020-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="ssh-based ping: measure character echo latency and bandwidth"
+HOMEPAGE="https://github.com/spook/sshping"
+SRC_URI="https://github.com/spook/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64"
+
+BDEPEND="dev-lang/perl"
+DEPEND="net-libs/libssh:="
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}/${P}-fix-man-dir.patch"
+ "${FILESDIR}/${P}-respect-cxxflags.patch"
+ "${FILESDIR}/${P}-cmake-minimum-version.patch"
+)
+
+src_configure() {
+ local mycmakeargs=(
+ -DCMAKE_INSTALL_PREFIX="${EPREFIX}/usr"
+ -DCMAKE_CXX_FLAGS="${CXXFLAGS}"
+ )
+
+ cmake_src_configure
+}
diff --git a/net-analyzer/ssldump/Manifest b/net-analyzer/ssldump/Manifest
new file mode 100644
index 000000000000..ea6cea811a6a
--- /dev/null
+++ b/net-analyzer/ssldump/Manifest
@@ -0,0 +1,3 @@
+DIST ssldump-1.5.tar.gz 129388 BLAKE2B 9877bf604690911a3680cf4edfe0115a8a8e2ddf14abc260a99fdcc181bd727c5f3bfb0aa8864f502ff560ccab76e27a22266a3ed78eb516f019ed7cb44bef69 SHA512 4eb84744591539fdaf9b2454d23c917f5e97cb2e5f03e0c38393327caecc72dfc77ee7b734519b1f224a5e3a132185b8fccfeb9186fc9f1b586444fc748a3814
+DIST ssldump-1.8.tar.gz 188219 BLAKE2B e6cff9598e6818eb2192450c0958a7f9bf003d79ad74dd9e60b1af2e977b27a6b3667a5d7ed6fdb1fa836a51c4ab7a6dc2f0c5afb1dbd8b3b08af3cd145a872e SHA512 5435187fa851cddd167a5ee7e79f8051752780512873195b215e8695430282338f22719e6ddd32bd4eae3cc9a385abd44a4b369f93dc201908696aaed214b9bc
+DIST ssldump-1.9.tar.gz 159474 BLAKE2B e42355ae619e73b3eefe0fb538f4e6f89fa9f160b77176f13904b545f3ba24a5776a837f48e4f712b8b808f5d8ccea2fd3c508a5e75986b27caf387ce2192f69 SHA512 762e09b3d41bcb19553c6290467010fae96633c825617131d90d193b81232aa08d59a4d28d37a32867d6cd92d85ed1a29cf7ece5908b65aa887f7a1e77147511
diff --git a/net-analyzer/ssldump/metadata.xml b/net-analyzer/ssldump/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/ssldump/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/ssldump/ssldump-1.5.ebuild b/net-analyzer/ssldump/ssldump-1.5.ebuild
new file mode 100644
index 000000000000..a247c33d32e6
--- /dev/null
+++ b/net-analyzer/ssldump/ssldump-1.5.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="An SSLv3/TLS network protocol analyzer"
+HOMEPAGE="https://github.com/adulau/ssldump/"
+SRC_URI="https://github.com/adulau/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="openssl"
+SLOT="0"
+KEYWORDS="amd64 ~arm ppc ~sparc x86"
+
+RDEPEND="dev-libs/json-c:=
+ dev-libs/openssl:=
+ net-libs/libnet:1.1
+ net-libs/libpcap"
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+ default
+
+ eautoreconf
+}
+
+src_install() {
+ dosbin ssldump
+ doman ssldump.1
+ dodoc ChangeLog CREDITS README README.md
+}
diff --git a/net-analyzer/ssldump/ssldump-1.8.ebuild b/net-analyzer/ssldump/ssldump-1.8.ebuild
new file mode 100644
index 000000000000..f20cb707284d
--- /dev/null
+++ b/net-analyzer/ssldump/ssldump-1.8.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="An SSLv3/TLS network protocol analyzer"
+HOMEPAGE="https://github.com/adulau/ssldump/"
+SRC_URI="https://github.com/adulau/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="openssl"
+SLOT="0"
+KEYWORDS="amd64 ~arm ppc ~sparc x86"
+
+RDEPEND="dev-libs/json-c:=
+ dev-libs/openssl:=
+ net-libs/libnet:1.1
+ net-libs/libpcap"
+DEPEND="${RDEPEND}"
+
+src_install() {
+ dosbin "${BUILD_DIR}"/${PN}
+ doman ${PN}.1
+ einstalldocs
+}
diff --git a/net-analyzer/ssldump/ssldump-1.9.ebuild b/net-analyzer/ssldump/ssldump-1.9.ebuild
new file mode 100644
index 000000000000..f20cb707284d
--- /dev/null
+++ b/net-analyzer/ssldump/ssldump-1.9.ebuild
@@ -0,0 +1,26 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+DESCRIPTION="An SSLv3/TLS network protocol analyzer"
+HOMEPAGE="https://github.com/adulau/ssldump/"
+SRC_URI="https://github.com/adulau/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="openssl"
+SLOT="0"
+KEYWORDS="amd64 ~arm ppc ~sparc x86"
+
+RDEPEND="dev-libs/json-c:=
+ dev-libs/openssl:=
+ net-libs/libnet:1.1
+ net-libs/libpcap"
+DEPEND="${RDEPEND}"
+
+src_install() {
+ dosbin "${BUILD_DIR}"/${PN}
+ doman ${PN}.1
+ einstalldocs
+}
diff --git a/net-analyzer/sslscan/Manifest b/net-analyzer/sslscan/Manifest
new file mode 100644
index 000000000000..6370a1ec3a5a
--- /dev/null
+++ b/net-analyzer/sslscan/Manifest
@@ -0,0 +1,3 @@
+DIST sslscan-2.2.0.tar.gz 117569 BLAKE2B 65a43bba582215dcf2aaa54694a6c29b5dcdcbf5286e6549cc31d886738a932dc06d50510dee4c256251d33a275001fc1a3240182ad606e1e0da50657b8ec931 SHA512 b01cc5fc903cd15d6895675724c3e6f8060a97b1f1536af6e88e28d63cc5cfdd32beaf61f7a717ecfe0e802d61e092d5189f7b6259fbc9866b82562d3e82ad78
+DIST sslscan-2.2.1.tar.gz 117840 BLAKE2B a317fa42122014007d4699db75a18e94f89d64119c0fb4df578779b52ccc90b4e2a445519d33d430c53c3b86597c3e7e0102d6d90e5e6efffb603dad007477e6 SHA512 83d1faf9f936c565d9e26147b3e239ac2e0166b2ac0a32dc8e92a63e9c28ad37f14612a98dc8a7005f538242fcb18022ae607df0d56c9b9660fbdf3d999079b0
+DIST sslscan-openssl-3.5.0.tar.gz 53323888 BLAKE2B bfd846b0e96ae728bd6740a6b584748176d8706d8fcfa06a03295b373262e8c08eb30b99c987cfb4f78f9bc0c9665b1eb399685aad27db813d9cbb3b22973431 SHA512 a1ef09ecc810b761b3adcdb79b5746ba06244a10f626a40e495a3df19411546b98d75f6c7e7c13de7c15753caf3db87af7096ed0bb835afed8cc6dbc366b542f
diff --git a/net-analyzer/sslscan/files/gentoo.config-1.0.2 b/net-analyzer/sslscan/files/gentoo.config-1.0.2
new file mode 100644
index 000000000000..68d7d0ac1fc1
--- /dev/null
+++ b/net-analyzer/sslscan/files/gentoo.config-1.0.2
@@ -0,0 +1,171 @@
+#!/usr/bin/env bash
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+#
+# Openssl doesn't play along nicely with cross-compiling
+# like autotools based projects, so let's teach it new tricks.
+#
+# Review the bundled 'config' script to see why kind of targets
+# we can pass to the 'Configure' script.
+
+
+# Testing routines
+if [[ $1 == "test" ]] ; then
+ for c in \
+ "arm-gentoo-linux-uclibc |linux-generic32 -DL_ENDIAN" \
+ "armv5b-linux-gnu |linux-armv4 -DB_ENDIAN" \
+ "x86_64-pc-linux-gnu |linux-x86_64" \
+ "alpha-linux-gnu |linux-alpha-gcc" \
+ "alphaev56-unknown-linux-gnu |linux-alpha+bwx-gcc" \
+ "i686-pc-linux-gnu |linux-elf" \
+ "whatever-gentoo-freebsdX.Y |BSD-generic32" \
+ "i686-gentoo-freebsdX.Y |BSD-x86-elf" \
+ "sparc64-alpha-freebsdX.Y |BSD-sparc64" \
+ "ia64-gentoo-freebsd5.99234 |BSD-ia64" \
+ "x86_64-gentoo-freebsdX.Y |BSD-x86_64" \
+ "hppa64-aldsF-linux-gnu5.3 |linux-generic32 -DB_ENDIAN" \
+ "powerpc-gentOO-linux-uclibc |linux-ppc" \
+ "powerpc64-unk-linux-gnu |linux-ppc64" \
+ "powerpc64le-linux-gnu |linux-ppc64le" \
+ "x86_64-apple-darwinX |darwin64-x86_64-cc" \
+ "powerpc64-apple-darwinX |darwin64-ppc-cc" \
+ "i686-apple-darwinX |darwin-i386-cc" \
+ "i386-apple-darwinX |darwin-i386-cc" \
+ "powerpc-apple-darwinX |darwin-ppc-cc" \
+ "i586-pc-winnt |winnt-parity" \
+ "s390-ibm-linux-gnu |linux-generic32 -DB_ENDIAN" \
+ "s390x-linux-gnu |linux64-s390x" \
+ ;do
+ CHOST=${c/|*}
+ ret_want=${c/*|}
+ ret_got=$(CHOST=${CHOST} "$0")
+
+ if [[ ${ret_want} == "${ret_got}" ]] ; then
+ echo "PASS: ${CHOST}"
+ else
+ echo "FAIL: ${CHOST}"
+ echo -e "\twanted: ${ret_want}"
+ echo -e "\twe got: ${ret_got}"
+ fi
+ done
+ exit 0
+fi
+[[ -z ${CHOST} && -n $1 ]] && CHOST=$1
+
+
+# Detect the operating system
+case ${CHOST} in
+ *-aix*) system="aix";;
+ *-darwin*) system="darwin";;
+ *-freebsd*) system="BSD";;
+ *-hpux*) system="hpux";;
+ *-linux*) system="linux";;
+ *-solaris*) system="solaris";;
+ *-winnt*) system="winnt";;
+ x86_64-*-mingw*) system="mingw64";;
+ *mingw*) system="mingw";;
+ *) exit 0;;
+esac
+
+
+# Compiler munging
+compiler="gcc"
+if [[ ${CC} == "ccc" ]] ; then
+ compiler=${CC}
+fi
+
+
+# Detect target arch
+machine=""
+chost_machine=${CHOST%%-*}
+case ${system} in
+linux)
+ case ${chost_machine}:${ABI} in
+ aarch64*be*) machine="aarch64 -DB_ENDIAN";;
+ aarch64*) machine="aarch64 -DL_ENDIAN";;
+ alphaev56*|\
+ alphaev[678]*)machine=alpha+bwx-${compiler};;
+ alpha*) machine=alpha-${compiler};;
+ armv[4-9]*b*) machine="armv4 -DB_ENDIAN";;
+ armv[4-9]*) machine="armv4 -DL_ENDIAN";;
+ arm*b*) machine="generic32 -DB_ENDIAN";;
+ arm*) machine="generic32 -DL_ENDIAN";;
+ avr*) machine="generic32 -DL_ENDIAN";;
+ bfin*) machine="generic32 -DL_ENDIAN";;
+ # hppa64*) machine=parisc64;;
+ hppa*) machine="generic32 -DB_ENDIAN";;
+ i[0-9]86*|\
+ x86_64*:x86) machine=elf;;
+ ia64*) machine=ia64;;
+ m68*) machine="generic32 -DB_ENDIAN";;
+ mips*el*) machine="generic32 -DL_ENDIAN";;
+ mips*) machine="generic32 -DB_ENDIAN";;
+ powerpc64*le*)machine=ppc64le;;
+ powerpc64*) machine=ppc64;;
+ powerpc*le*) machine="generic32 -DL_ENDIAN";;
+ powerpc*) machine=ppc;;
+ riscv32*) machine="generic32 -DL_ENDIAN";;
+ riscv64*) machine="generic64 -DL_ENDIAN";;
+ # sh64*) machine=elf;;
+ sh*b*) machine="generic32 -DB_ENDIAN";;
+ sh*) machine="generic32 -DL_ENDIAN";;
+ # TODO: Might want to do -mcpu probing like glibc to determine a
+ # better default for sparc-linux-gnu targets. This logic will
+ # break v7 and older systems when they use it.
+ sparc*v7*) machine="generic32 -DB_ENDIAN";;
+ sparc64*) machine=sparcv9 system=linux64;;
+ sparc*v9*) machine=sparcv9;;
+ sparc*v8*) machine=sparcv8;;
+ sparc*) machine=sparcv8;;
+ s390x*) machine=s390x system=linux64;;
+ s390*) machine="generic32 -DB_ENDIAN";;
+ x86_64*:x32) machine=x32;;
+ x86_64*) machine=x86_64;;
+ esac
+ ;;
+BSD)
+ case ${chost_machine} in
+ alpha*) machine=generic64;;
+ i[6-9]86*) machine=x86-elf;;
+ ia64*) machine=ia64;;
+ sparc64*) machine=sparc64;;
+ x86_64*) machine=x86_64;;
+ *) machine=generic32;;
+ esac
+ ;;
+aix)
+ machine=${compiler}
+ ;;
+darwin)
+ case ${chost_machine} in
+ powerpc64) machine=ppc-cc; system=${system}64;;
+ powerpc) machine=ppc-cc;;
+ i?86*) machine=i386-cc;;
+ x86_64) machine=x86_64-cc; system=${system}64;;
+ esac
+ ;;
+hpux)
+ case ${chost_machine} in
+ ia64) machine=ia64-${compiler} ;;
+ esac
+ ;;
+solaris)
+ case ${chost_machine} in
+ i386) machine=x86-${compiler} ;;
+ x86_64*) machine=x86_64-${compiler}; system=${system}64;;
+ sparcv9*) machine=sparcv9-${compiler}; system=${system}64;;
+ sparc*) machine=sparcv8-${compiler};;
+ esac
+ ;;
+winnt)
+ machine=parity
+ ;;
+mingw*)
+ # special case ... no xxx-yyy style name
+ echo ${system}
+ ;;
+esac
+
+
+# If we have something, show it
+[[ -n ${machine} ]] && echo ${system}-${machine}
diff --git a/net-analyzer/sslscan/files/sslscan-2.2.0-use-distfile-openssl.patch b/net-analyzer/sslscan/files/sslscan-2.2.0-use-distfile-openssl.patch
new file mode 100644
index 000000000000..b4f4836cbc5e
--- /dev/null
+++ b/net-analyzer/sslscan/files/sslscan-2.2.0-use-distfile-openssl.patch
@@ -0,0 +1,18 @@
+--- a/Makefile 2025-06-17 07:59:35.185135080 +0200
++++ b/Makefile 2025-06-17 08:00:23.657589676 +0200
+@@ -141,14 +141,7 @@
+ @true
+
+ opensslpull:
+- upstream=`git ls-remote https://github.com/openssl/openssl | grep -Eo '(openssl-3\.5\.[0-9]+)' | sort -V | tail -n 1` ; \
+- if [ -d openssl -a -d openssl/.git ]; then \
+- if [ "$$upstream" != "`cd ./openssl && git describe --exact-match --tags`" ]; then \
+- cd ./openssl && git fetch --depth 1 origin refs/tags/$$upstream:refs/tags/$$upstream && git checkout $$upstream && touch ../.openssl.is.fresh ; \
+- fi \
+- else \
+- git clone --depth 1 -b $$upstream https://github.com/openssl/openssl ./openssl && cd ./openssl && touch ../.openssl.is.fresh ; \
+- fi
++ @true
+
+ openssl/Makefile: .openssl.is.fresh
+ cd ./openssl; ./Configure -v -fstack-protector-all -D_FORTIFY_SOURCE=2 -fPIC no-shared enable-weak-ssl-ciphers zlib
diff --git a/net-analyzer/sslscan/files/sslscan-2.2.1-respect-makej.patch b/net-analyzer/sslscan/files/sslscan-2.2.1-respect-makej.patch
new file mode 100644
index 000000000000..bbe8140463ce
--- /dev/null
+++ b/net-analyzer/sslscan/files/sslscan-2.2.1-respect-makej.patch
@@ -0,0 +1,43 @@
+--- a/Makefile
++++ b/Makefile
+@@ -92,14 +92,16 @@
+ CFLAGS += -I/usr/local/include -I/usr/local/ssl/include -I/usr/local/ssl/include/openssl -I/usr/local/opt/openssl/include -I/opt/local/include -I/opt/local/include/openssl
+ endif
+
+-# Find the number of processors on the system (used in -j option in building OpenSSL).
++# If -j wasn't passed to make, find the number of processors on the system.
+ # Uses /usr/bin/nproc if available, otherwise defaults to 1.
+-NUM_PROCS = 1
+-ifneq (,$(wildcard /usr/bin/nproc))
+- NUM_PROCS = `/usr/bin/nproc --all`
+-endif
+-ifeq ($(OS), Darwin)
+- NUM_PROCS = `sysctl -n hw.ncpu`
++ifeq (,$(findstring -j,$(MAKEFLAGS)))
++ JOBS_ARG = -j1
++ ifneq (,$(wildcard /usr/bin/nproc))
++ JOBS_ARG = -j`/usr/bin/nproc --all`
++ endif
++ ifeq ($(OS), Darwin)
++ JOBS_ARG = -j`sysctl -n hw.ncpu`
++ endif
+ endif
+
+ .PHONY: all sslscan clean realclean install uninstall static opensslpull
+@@ -147,12 +149,12 @@
+ cd ./openssl; ./Configure -v -fstack-protector-all -D_FORTIFY_SOURCE=2 -fPIC no-shared enable-weak-ssl-ciphers zlib
+
+ openssl/libcrypto.a: openssl/Makefile
+- $(MAKE) -j $(NUM_PROCS) -C openssl depend
+- $(MAKE) -j $(NUM_PROCS) -C openssl build_libs
+-# $(MAKE) -j $(NUM_PROCS) -C openssl test # Disabled because this takes 45+ minutes for OpenSSL v1.1.1.
++ $(MAKE) $(JOBS_ARG) -C openssl depend
++ $(MAKE) $(JOBS_ARG) -C openssl build_libs
++# $(MAKE) $(JOBS_ARG) -C openssl test # Disabled because this takes 45+ minutes for OpenSSL v1.1.1.
+
+ static: openssl/libcrypto.a
+- $(MAKE) -j $(NUM_PROCS) sslscan STATIC_BUILD=TRUE
++ $(MAKE) $(JOBS_ARG) sslscan STATIC_BUILD=TRUE
+
+ docker:
+ docker build -t sslscan:sslscan .
diff --git a/net-analyzer/sslscan/metadata.xml b/net-analyzer/sslscan/metadata.xml
new file mode 100644
index 000000000000..ae2d62efbed5
--- /dev/null
+++ b/net-analyzer/sslscan/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>hlein@korelogic.com</email>
+ <name>Hank Leininger</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/sslscan/sslscan-2.2.0.ebuild b/net-analyzer/sslscan/sslscan-2.2.0.ebuild
new file mode 100644
index 000000000000..fb4a3fa23a5c
--- /dev/null
+++ b/net-analyzer/sslscan/sslscan-2.2.0.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+# sslscan builds against a static openssl library to allow weak ciphers
+# to be enabled so that they can be tested.
+OPENSSL_RELEASE_TAG="openssl-3.5.0"
+
+DESCRIPTION="Fast SSL configuration scanner"
+HOMEPAGE="https://github.com/rbsec/sslscan"
+SRC_URI="https://github.com/rbsec/sslscan/archive/${PV}.tar.gz -> ${P}.tar.gz
+ https://github.com/openssl/openssl/archive/${OPENSSL_RELEASE_TAG}.tar.gz -> ${PN}-${OPENSSL_RELEASE_TAG}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="amd64 arm64 ppc64 x86"
+
+# Requires a docker environment
+RESTRICT="test"
+
+PATCHES=( "${FILESDIR}/${P}-use-distfile-openssl.patch" )
+
+# S="${WORKDIR}/${P}-${MY_FORK}"
+
+src_prepare() {
+ ln -s ../openssl-${OPENSSL_RELEASE_TAG} openssl || die
+ touch .openssl_is_fresh || die
+
+ # Copied from dev-libs/openssl
+ # allow openssl to be cross-compiled
+ cp "${FILESDIR}"/gentoo.config-1.0.2 gentoo.config || die
+ chmod a+rx gentoo.config || die
+
+ default
+}
+
+src_configure() {
+ # Copied from dev-libs/openssl
+ unset APPS #197996
+ unset SCRIPTS #312551
+ unset CROSS_COMPILE #311473
+
+ tc-export CC AR RANLIB RC
+
+ local sslout=$(./gentoo.config)
+ einfo "Use configuration ${sslout:-(openssl knows best)}"
+ local config="Configure"
+ [[ -z ${sslout} ]] && config="config"
+
+ # Clean out hardcoded flags that openssl uses
+ local DEFAULT_CFLAGS=$(grep ^CFLAGS= Makefile | LC_ALL=C sed \
+ -e 's:^CFLAGS=::' \
+ -e 's:\(^\| \)-fomit-frame-pointer::g' \
+ -e 's:\(^\| \)-O[^ ]*::g' \
+ -e 's:\(^\| \)-march=[^ ]*::g' \
+ -e 's:\(^\| \)-mcpu=[^ ]*::g' \
+ -e 's:\(^\| \)-m[^ ]*::g' \
+ -e 's:^ *::' \
+ -e 's: *$::' \
+ -e 's: \+: :g' \
+ -e 's:\\:\\\\:g'
+ )
+
+ # Now insert clean default flags with user flags
+ sed -i \
+ -e "/^CFLAGS=/s|=.*|=${DEFAULT_CFLAGS} ${CFLAGS}|" \
+ -e "/^LDFLAGS=/s|=[[:space:]]*$|=${LDFLAGS}|" \
+ Makefile || die
+}
+
+src_compile() {
+ emake static
+}
+
+src_install() {
+ DESTDIR="${D}" emake install
+
+ dodoc Changelog README.md
+}
diff --git a/net-analyzer/sslscan/sslscan-2.2.1-r1.ebuild b/net-analyzer/sslscan/sslscan-2.2.1-r1.ebuild
new file mode 100644
index 000000000000..338fb943628c
--- /dev/null
+++ b/net-analyzer/sslscan/sslscan-2.2.1-r1.ebuild
@@ -0,0 +1,83 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+# sslscan builds against a static openssl library to allow weak ciphers
+# to be enabled so that they can be tested.
+OPENSSL_RELEASE_TAG="openssl-3.5.0"
+
+DESCRIPTION="Fast SSL configuration scanner"
+HOMEPAGE="https://github.com/rbsec/sslscan"
+SRC_URI="https://github.com/rbsec/sslscan/archive/${PV}.tar.gz -> ${P}.tar.gz
+ https://github.com/openssl/openssl/archive/${OPENSSL_RELEASE_TAG}.tar.gz -> ${PN}-${OPENSSL_RELEASE_TAG}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+
+# Requires a docker environment
+RESTRICT="test"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2.2.0-use-distfile-openssl.patch"
+ "${FILESDIR}/${PN}-2.2.1-respect-makej.patch"
+)
+
+src_prepare() {
+ ln -s ../openssl-${OPENSSL_RELEASE_TAG} openssl || die
+ touch .openssl_is_fresh || die
+
+ # Copied from dev-libs/openssl
+ # allow openssl to be cross-compiled
+ cp "${FILESDIR}"/gentoo.config-1.0.2 gentoo.config || die
+ chmod a+rx gentoo.config || die
+
+ default
+}
+
+src_configure() {
+ # Copied from dev-libs/openssl
+ unset APPS #197996
+ unset SCRIPTS #312551
+ unset CROSS_COMPILE #311473
+
+ tc-export CC AR RANLIB RC
+
+ local sslout=$(./gentoo.config)
+ einfo "Use configuration ${sslout:-(openssl knows best)}"
+ local config="Configure"
+ [[ -z ${sslout} ]] && config="config"
+
+ # Clean out hardcoded flags that openssl uses
+ local DEFAULT_CFLAGS=$(grep ^CFLAGS= Makefile | LC_ALL=C sed \
+ -e 's:^CFLAGS=::' \
+ -e 's:\(^\| \)-fomit-frame-pointer::g' \
+ -e 's:\(^\| \)-O[^ ]*::g' \
+ -e 's:\(^\| \)-march=[^ ]*::g' \
+ -e 's:\(^\| \)-mcpu=[^ ]*::g' \
+ -e 's:\(^\| \)-m[^ ]*::g' \
+ -e 's:^ *::' \
+ -e 's: *$::' \
+ -e 's: \+: :g' \
+ -e 's:\\:\\\\:g'
+ )
+
+ # Now insert clean default flags with user flags
+ sed -i \
+ -e "/^CFLAGS=/s|=.*|=${DEFAULT_CFLAGS} ${CFLAGS}|" \
+ -e "/^LDFLAGS=/s|=[[:space:]]*$|=${LDFLAGS}|" \
+ Makefile || die
+}
+
+src_compile() {
+ emake static
+}
+
+src_install() {
+ DESTDIR="${D}" emake install
+
+ dodoc Changelog README.md
+}
diff --git a/net-analyzer/sslscan/sslscan-2.2.1.ebuild b/net-analyzer/sslscan/sslscan-2.2.1.ebuild
new file mode 100644
index 000000000000..9a65891fcfe6
--- /dev/null
+++ b/net-analyzer/sslscan/sslscan-2.2.1.ebuild
@@ -0,0 +1,80 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+# sslscan builds against a static openssl library to allow weak ciphers
+# to be enabled so that they can be tested.
+OPENSSL_RELEASE_TAG="openssl-3.5.0"
+
+DESCRIPTION="Fast SSL configuration scanner"
+HOMEPAGE="https://github.com/rbsec/sslscan"
+SRC_URI="https://github.com/rbsec/sslscan/archive/${PV}.tar.gz -> ${P}.tar.gz
+ https://github.com/openssl/openssl/archive/${OPENSSL_RELEASE_TAG}.tar.gz -> ${PN}-${OPENSSL_RELEASE_TAG}.tar.gz"
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+
+# Requires a docker environment
+RESTRICT="test"
+
+PATCHES=( "${FILESDIR}/${PN}-2.2.0-use-distfile-openssl.patch" )
+
+src_prepare() {
+ ln -s ../openssl-${OPENSSL_RELEASE_TAG} openssl || die
+ touch .openssl_is_fresh || die
+
+ # Copied from dev-libs/openssl
+ # allow openssl to be cross-compiled
+ cp "${FILESDIR}"/gentoo.config-1.0.2 gentoo.config || die
+ chmod a+rx gentoo.config || die
+
+ default
+}
+
+src_configure() {
+ # Copied from dev-libs/openssl
+ unset APPS #197996
+ unset SCRIPTS #312551
+ unset CROSS_COMPILE #311473
+
+ tc-export CC AR RANLIB RC
+
+ local sslout=$(./gentoo.config)
+ einfo "Use configuration ${sslout:-(openssl knows best)}"
+ local config="Configure"
+ [[ -z ${sslout} ]] && config="config"
+
+ # Clean out hardcoded flags that openssl uses
+ local DEFAULT_CFLAGS=$(grep ^CFLAGS= Makefile | LC_ALL=C sed \
+ -e 's:^CFLAGS=::' \
+ -e 's:\(^\| \)-fomit-frame-pointer::g' \
+ -e 's:\(^\| \)-O[^ ]*::g' \
+ -e 's:\(^\| \)-march=[^ ]*::g' \
+ -e 's:\(^\| \)-mcpu=[^ ]*::g' \
+ -e 's:\(^\| \)-m[^ ]*::g' \
+ -e 's:^ *::' \
+ -e 's: *$::' \
+ -e 's: \+: :g' \
+ -e 's:\\:\\\\:g'
+ )
+
+ # Now insert clean default flags with user flags
+ sed -i \
+ -e "/^CFLAGS=/s|=.*|=${DEFAULT_CFLAGS} ${CFLAGS}|" \
+ -e "/^LDFLAGS=/s|=[[:space:]]*$|=${LDFLAGS}|" \
+ Makefile || die
+}
+
+src_compile() {
+ emake static
+}
+
+src_install() {
+ DESTDIR="${D}" emake install
+
+ dodoc Changelog README.md
+}
diff --git a/net-analyzer/sslsplit/Manifest b/net-analyzer/sslsplit/Manifest
new file mode 100644
index 000000000000..99d65e3f8129
--- /dev/null
+++ b/net-analyzer/sslsplit/Manifest
@@ -0,0 +1 @@
+DIST sslsplit-0.5.5.tar.gz 1846850 BLAKE2B b223491c480070dd9718804f0ceb8fec9fe519cf0d189fd9bf9cc4dce5ae00d93227dca42349b42d2b82c62d0d92c451442670f6eae2f8d2beedef437907299b SHA512 f236f1ccce8bdb4a09659551defd73b73fbf660ceedace6ffbbb687c1de4488f74a23274b53a67e7001dfcdbd0ede7270ba8261feab633a25ae9f57cce468f39
diff --git a/net-analyzer/sslsplit/files/sslsplit-0.5.5-libcrypto-pkgconfig.patch b/net-analyzer/sslsplit/files/sslsplit-0.5.5-libcrypto-pkgconfig.patch
new file mode 100644
index 000000000000..dd6ae812efb6
--- /dev/null
+++ b/net-analyzer/sslsplit/files/sslsplit-0.5.5-libcrypto-pkgconfig.patch
@@ -0,0 +1,23 @@
+Use pkgconfig for localization of libcrypto. This is needed for tests in
+multilib systems.
+
+diff --git a/extra/engine/GNUmakefile b/extra/engine/GNUmakefile
+index b50717b..3712ad6 100644
+--- a/extra/engine/GNUmakefile
++++ b/extra/engine/GNUmakefile
+@@ -16,9 +16,9 @@ else
+ SUFFIX:= so
+ endif
+
+-CFLAGS+= -fPIC -I$(OPENSSL_BASE)/include
+-LDFLAGS+= -L$(OPENSSL_BASE)/lib
+-LIBS+= -lcrypto
++CFLAGS+= -fPIC $(shell pkg-config --cflags libcrypto)
++LDFLAGS+= $(shell pkg-config --libs-only-L libcrypto)
++LIBS+= $(shell pkg-config --libs-only-l libcrypto)
+
+ TARGET= dummy-engine
+
+--
+2.35.1
+
diff --git a/net-analyzer/sslsplit/files/sslsplit-0.5.5-libnet-pkgconfig.patch b/net-analyzer/sslsplit/files/sslsplit-0.5.5-libnet-pkgconfig.patch
new file mode 100644
index 000000000000..5eebf8d4deaf
--- /dev/null
+++ b/net-analyzer/sslsplit/files/sslsplit-0.5.5-libnet-pkgconfig.patch
@@ -0,0 +1,40 @@
+Subject: [PATCH] locate libnet with pkgconfig
+
+This is partially reverted from upstream commit 46a55de8040a ("Refactor
+location of packages, improve libnet detection")
+
+diff --git a/GNUmakefile b/GNUmakefile
+index cc7197e..2343272 100644
+--- a/GNUmakefile
++++ b/GNUmakefile
+@@ -277,6 +277,10 @@ PKGS+= $(shell $(PKGCONFIG) $(PCFLAGS) --exists libevent_openssl \
+ PKGS+= $(shell $(PKGCONFIG) $(PCFLAGS) --exists libevent_pthreads \
+ && echo libevent_pthreads)
+ endif
++ifndef LIBNET_BASE
++PKGS+= $(shell $(PKGCONFIG) $(PCFLAGS) --exists libnet \
++ && echo libnet)
++endif
+ ifneq ($(filter -DWITHOUT_MIRROR,$(FEATURES)),-DWITHOUT_MIRROR)
+ ifndef LIBPCAP_BASE
+ PKGS+= $(shell $(PKGCONFIG) $(PCFLAGS) --exists libpcap \
+@@ -333,7 +337,7 @@ CHECK_MISSING:= 1
+ endif
+ endif
+
+-# Always search filesystem for libnet because libnet-config is unreliable
++ifeq (,$(filter libnet,$(PKGS)))
+ ifneq ($(filter -DWITHOUT_MIRROR,$(FEATURES)),-DWITHOUT_MIRROR)
+ LIBNET_FOUND:= $(call locate,libnet,include/libnet-1.1/libnet.h,$(LIBNET_BASE))
+ ifdef LIBNET_FOUND
+@@ -347,6 +351,7 @@ $(error dependency 'libnet' not found; \
+ install it or point LIBNET_BASE to base path)
+ endif
+ endif
++endif
+
+ ifdef OPENSSL_FOUND
+ PKG_CPPFLAGS+= -I$(OPENSSL_FOUND)/include
+--
+2.35.1
+
diff --git a/net-analyzer/sslsplit/files/sslsplit-0.5.5-openssl3.patch b/net-analyzer/sslsplit/files/sslsplit-0.5.5-openssl3.patch
new file mode 100644
index 000000000000..10807bee3899
--- /dev/null
+++ b/net-analyzer/sslsplit/files/sslsplit-0.5.5-openssl3.patch
@@ -0,0 +1,31 @@
+From: Soner Tari <sonertari@gmail.com>
+Date: Fri, 4 Feb 2022 19:46:58 +0300
+Subject: [PATCH] Fix build errors with OpenSSL 3.0.x, but not deprecation
+ warnings, issue #290
+
+This patch fixes errors only, so that build succeeds, but deprecation
+warnings remain. It seems we need considerable changes to replace those
+deprecated functions in the warnings.
+---
+
+Upstream-commit: e17de8454a65 ("Fix build errors with OpenSSL 3.0.x, but not deprecation warnings, issue #290")
+Upstream-issue: https://github.com/droe/sslsplit/issues/290
+
+diff --git a/pxyconn.c b/pxyconn.c
+index e69de20..09a8b80 100644
+--- a/pxyconn.c
++++ b/pxyconn.c
+@@ -72,6 +72,10 @@ bufferevent_openssl_set_allow_dirty_shutdown(UNUSED struct bufferevent *bev,
+ }
+ #endif /* LIBEVENT_VERSION_NUMBER < 0x02010000 */
+
++#if OPENSSL_VERSION_NUMBER >= 0x30000000L
++#define ERR_GET_FUNC(x) 0
++#define ERR_func_error_string(x) ""
++#endif
+
+ /*
+ * Maximum size of data to buffer per connection direction before
+--
+2.35.1
+
diff --git a/net-analyzer/sslsplit/metadata.xml b/net-analyzer/sslsplit/metadata.xml
new file mode 100644
index 000000000000..c3a2f6f1b3c9
--- /dev/null
+++ b/net-analyzer/sslsplit/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>arkamar@gentoo.org</email>
+ <name>Petr Vaněk</name>
+ </maintainer>
+ <longdescription lang="en">
+ SSLsplit is a tool for man-in-the-middle attacks against SSL/TLS
+ encrypted network connections. It is intended to be useful for network
+ forensics, application security analysis and penetration testing.
+ </longdescription>
+ <upstream>
+ <maintainer status="active">
+ <email>daniel@roe.ch</email>
+ <name>Daniel Roethlisberger</name>
+ </maintainer>
+ <bugs-to>https://github.com/droe/sslsplit/issues</bugs-to>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/sslsplit/sslsplit-0.5.5-r1.ebuild b/net-analyzer/sslsplit/sslsplit-0.5.5-r1.ebuild
new file mode 100644
index 000000000000..bd815603e0c1
--- /dev/null
+++ b/net-analyzer/sslsplit/sslsplit-0.5.5-r1.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit flag-o-matic
+
+DESCRIPTION="Transparent SSL/TLS interception"
+HOMEPAGE="
+ https://www.roe.ch/SSLsplit
+ https://github.com/droe/sslsplit
+"
+
+LICENSE="BSD-2"
+SLOT="0"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+if [[ ${PV} == *9999 ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/droe/${PN}"
+ EGIT_BRANCH="develop"
+else
+ SRC_URI="https://github.com/droe/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm64 ~x86"
+fi
+
+RDEPEND="
+ dev-libs/libevent:=[ssl,threads(+)]
+ dev-libs/openssl:0=
+ net-libs/libnet:1.1
+ net-libs/libpcap
+ elibc_musl? ( sys-libs/fts-standalone )"
+DEPEND="${RDEPEND}
+ test? ( dev-libs/check )"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}/${P}-openssl3.patch"
+ "${FILESDIR}/${P}-libnet-pkgconfig.patch"
+ "${FILESDIR}/${P}-libcrypto-pkgconfig.patch"
+)
+
+src_prepare() {
+ default
+
+ use elibc_musl && append-libs "-lfts"
+
+ sed -i -e 's/-D_FORTIFY_SOURCE=2 //g' \
+ -e 's/\<FEATURES\>/SSLSPLIT_FEATURES/g' GNUmakefile || die
+ sed -i '/opts_suite/d' main.t.c || die
+}
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" SYSCONFDIR="${EPREFIX}/etc" install
+ dodoc AUTHORS.md NEWS.md README.md
+}
diff --git a/net-analyzer/ssmping/Manifest b/net-analyzer/ssmping/Manifest
new file mode 100644
index 000000000000..852881e4703c
--- /dev/null
+++ b/net-analyzer/ssmping/Manifest
@@ -0,0 +1 @@
+DIST ssmping-0.9.1.tar.gz 16863 BLAKE2B f3ebb2940197feb8f280369d3d217c8335c64265e001d24b6e75b10dff5df0fced29b005267eb57abfd8b6aa41c2071aba69a766a85877aefe3c765134ae1454 SHA512 7929b43867f29ac7f93298820149fd326d8540187a59e4f28f226e1c0dbfcdc60dc3da437de250e4082a2d6bd845ae9e619bf3b592b824dd8d529bf093cdedff
diff --git a/net-analyzer/ssmping/files/ssmping-0.9-build.patch b/net-analyzer/ssmping/files/ssmping-0.9-build.patch
new file mode 100644
index 000000000000..586819ca0dd5
--- /dev/null
+++ b/net-analyzer/ssmping/files/ssmping-0.9-build.patch
@@ -0,0 +1,23 @@
+fixup build errors/warnings
+
+http://bugs.gentoo.org/240750
+
+--- a/Makefile
++++ b/Makefile
+@@ -1,4 +1,5 @@
+ PREFIX ?= /usr/local
++CPPFLAGS += -D_GNU_SOURCE
+
+ all: ssmping asmping ssmpingd mcfirst
+
+--- a/ssmping.c
++++ b/ssmping.c
+@@ -22,7 +22,7 @@
+ uint16_t size;
+ uint32_t intface;
+ struct sockaddr_storage name, ucaddr, mcaddr, grpaddr;
+- size_t namelen;
++ socklen_t namelen;
+ #ifdef WIN32
+ WORD wVersionRequested;
+ WSADATA wsaData;
diff --git a/net-analyzer/ssmping/metadata.xml b/net-analyzer/ssmping/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/ssmping/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/ssmping/ssmping-0.9.1.ebuild b/net-analyzer/ssmping/ssmping-0.9.1.ebuild
new file mode 100644
index 000000000000..13fb78913e09
--- /dev/null
+++ b/net-analyzer/ssmping/ssmping-0.9.1.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+DESCRIPTION="Tool for testing multicast connectivity"
+HOMEPAGE="http://www.venaas.no/multicast/ssmping/"
+SRC_URI="http://www.venaas.no/multicast/ssmping/${P}.tar.gz"
+
+LICENSE="public-domain"
+SLOT="0"
+KEYWORDS="amd64 ~riscv x86"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.9-build.patch
+)
+
+src_prepare() {
+ default
+ tc-export CC
+}
+
+src_install() {
+ dobin ssmping asmping mcfirst
+ dosbin ssmpingd
+ doman ssmping.1 asmping.1 mcfirst.1
+}
diff --git a/net-analyzer/suricata/Manifest b/net-analyzer/suricata/Manifest
new file mode 100644
index 000000000000..4ee77f8337b9
--- /dev/null
+++ b/net-analyzer/suricata/Manifest
@@ -0,0 +1,2 @@
+DIST suricata-7.0.15.tar.gz 22924598 BLAKE2B 4249e2621315da9e201556db2e7675c403110fdf8a7ee8698bc82fc06c8495d9b969e57a0d07496178c278f7fb5aee78963e7cc72a6a3d2b7e84387f52f395c3 SHA512 04ca4777c7da80445a69e55baccbec08a7f689bea9c3b57465cd707c59215d4efebbd9c291ceee9518b43355a02d8020a7fa92d6c2e80b7083a4dde58d244000
+DIST suricata-7.0.15.tar.gz.sig 566 BLAKE2B 29649ba355573182642869a2cd5839f59297a3762b8a6ce57ac31425e50473770a0187b7b0423003c051e6b514958438c28f81c93c4fda1bbce4903c4aa39ea1 SHA512 ae273a91fa4bcd00be9abde9e36003f424406c88270af804f6f586a75c255e27e7c91efedfc7f002830d0038f97f8b48e5246c68dbd80aa187f6b01e43e2757c
diff --git a/net-analyzer/suricata/files/suricata-5.0.1_configure-no-lz4-automagic.patch b/net-analyzer/suricata/files/suricata-5.0.1_configure-no-lz4-automagic.patch
new file mode 100644
index 000000000000..5efce46f6d9f
--- /dev/null
+++ b/net-analyzer/suricata/files/suricata-5.0.1_configure-no-lz4-automagic.patch
@@ -0,0 +1,23 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -2292,7 +2292,11 @@
+ fi
+
+ # Check for lz4
+-enable_liblz4="yes"
++AC_ARG_ENABLE(lz4,
++ AS_HELP_STRING([--enable-lz4], [Enable compressed pcap logging using liblz4]),
++ [enable_liblz4=$enableval],
++ [enable_liblz4=yes])
++if test "x$enable_liblz4" != "xno"; then
+ AC_CHECK_LIB(lz4, LZ4F_createCompressionContext, , enable_liblz4="no")
+
+ if test "$enable_liblz4" = "no"; then
+@@ -2306,6 +2310,7 @@
+ echo " yum install lz4-devel"
+ echo
+ fi
++fi
+
+ # get cache line size
+ AC_PATH_PROG(HAVE_GETCONF_CMD, getconf, "no")
diff --git a/net-analyzer/suricata/files/suricata-5.0.7_configure-no-hyperscan-automagic.patch b/net-analyzer/suricata/files/suricata-5.0.7_configure-no-hyperscan-automagic.patch
new file mode 100644
index 000000000000..69a857408eee
--- /dev/null
+++ b/net-analyzer/suricata/files/suricata-5.0.7_configure-no-hyperscan-automagic.patch
@@ -0,0 +1,24 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -729,8 +729,11 @@
+ fi
+
+ # libhs
+- enable_hyperscan="no"
+-
++ AC_ARG_ENABLE(hyperscan,
++ AS_HELP_STRING([--enable-hyperscan], [Enable high-performance regex matching with hyperscan]),
++ [enable_hyperscan=$enableval],
++ [enable_hyperscan=no])
++ if test "x$enable_hyperscan" != "xno"; then
+ # Try pkg-config first:
+ PKG_CHECK_MODULES([libhs], libhs,, [with_pkgconfig_libhs=no])
+ if test "$with_pkgconfig_libhs" != "no"; then
+@@ -765,6 +768,7 @@
+ enable_hyperscan="no"
+ fi
+ fi
++ fi
+ AS_IF([test "x$enable_hyperscan" = "xyes"], [AC_DEFINE([BUILD_HYPERSCAN], [1], [Intel Hyperscan support enabled])])
+
+ # libyaml
diff --git a/net-analyzer/suricata/files/suricata-6.0.0_default-config.patch b/net-analyzer/suricata/files/suricata-6.0.0_default-config.patch
new file mode 100644
index 000000000000..03e0f1cda944
--- /dev/null
+++ b/net-analyzer/suricata/files/suricata-6.0.0_default-config.patch
@@ -0,0 +1,27 @@
+--- a/suricata.yaml.in
++++ b/suricata.yaml.in
+@@ -209,8 +209,9 @@
+ # https://suricata.readthedocs.io/en/latest/output/eve/eve-json-output.html#dns-v1-format
+
+ # As of Suricata 5.0, version 2 of the eve dns output
+- # format is the default.
+- #version: 2
++ # format is the default - but the daemon produces a warning to that effect
++ # at start-up if this isn't explicitly set.
++ version: 2
+
+ # Enable/disable this logger. Default: enabled.
+ #enabled: yes
+@@ -988,9 +989,9 @@
+ ##
+
+ # Run Suricata with a specific user-id and group-id:
+-#run-as:
+-# user: suri
+-# group: suri
++run-as:
++ user: suricata
++ group: suricata
+
+ # Some logging modules will use that name in event as identifier. The default
+ # value is the hostname
diff --git a/net-analyzer/suricata/files/suricata-7.0.2_configure-no-sphinx-pdflatex-automagic.patch b/net-analyzer/suricata/files/suricata-7.0.2_configure-no-sphinx-pdflatex-automagic.patch
new file mode 100644
index 000000000000..07fddac0a6d2
--- /dev/null
+++ b/net-analyzer/suricata/files/suricata-7.0.2_configure-no-sphinx-pdflatex-automagic.patch
@@ -0,0 +1,20 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -2231,7 +2231,7 @@
+ fi
+
+ # sphinx-build for documentation, and also check for a new enough version
+- AC_PATH_PROG([SPHINX_BUILD], [sphinx-build], [no])
++ SPHINX_BUILD="no"
+ if test "$SPHINX_BUILD" != "no"; then
+ MIN_SPHINX_BUILD_VERSION="3.4.3"
+ sphinx_build_version=$($SPHINX_BUILD --version 2>&1 | cut -d' ' -f2-)
+@@ -2257,7 +2257,7 @@
+ AM_CONDITIONAL([HAVE_SURICATA_MAN], [test "x$have_suricata_man" = "xyes"])
+
+ # pdflatex for the pdf version of the user manual
+- AC_PATH_PROG(HAVE_PDFLATEX, pdflatex, "no")
++ HAVE_PDFLATEX="no"
+ if test "$HAVE_PDFLATEX" = "no"; then
+ enable_pdflatex=no
+ fi
diff --git a/net-analyzer/suricata/files/suricata-7.0.5_configure-fortify_source.patch b/net-analyzer/suricata/files/suricata-7.0.5_configure-fortify_source.patch
new file mode 100644
index 000000000000..302f9bb382f3
--- /dev/null
+++ b/net-analyzer/suricata/files/suricata-7.0.5_configure-fortify_source.patch
@@ -0,0 +1,18 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -339,15 +339,6 @@
+ [AC_MSG_RESULT(no)])
+ CFLAGS="${TMPCFLAGS}"
+
+- #compile-time best-practices errors for certain libc functions, provides checks of buffer lengths and memory regions
+- AC_MSG_CHECKING(for -D_FORTIFY_SOURCE=2)
+- TMPCFLAGS="${CFLAGS}"
+- CFLAGS="${CFLAGS} -D_FORTIFY_SOURCE=2"
+- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[SECCFLAGS="${SECCFLAGS} -D_FORTIFY_SOURCE=2"
+- AC_MSG_RESULT(yes)],
+- [AC_MSG_RESULT(no)])
+- CFLAGS="${TMPCFLAGS}"
+-
+ #compile-time warnings about misuse of format strings
+ AC_MSG_CHECKING(for -Wformat -Wformat-security)
+ TMPCFLAGS="${CFLAGS}"
diff --git a/net-analyzer/suricata/files/suricata.confd b/net-analyzer/suricata/files/suricata.confd
new file mode 100644
index 000000000000..7f22113dbf0d
--- /dev/null
+++ b/net-analyzer/suricata/files/suricata.confd
@@ -0,0 +1,62 @@
+# Config file for /etc/init.d/suricata*
+
+# Where config files are stored. Default:
+
+# SURICATA_DIR="/etc/suricata"
+
+# Pass options to each suricata service.
+#
+# You can launch more than one service at the same time with different options.
+# This can be useful in a multi-queue gateway, for example.
+# You can expand on the Suricata inline example found at:
+# http://suricata.readthedocs.io/en/latest/setting-up-ipsinline-for-linux.html
+# Instead of configuring iptables to send traffic to just one queue, you can configure it to "load balance"
+# on several queues. You can then have a Suricata instance processing traffic for each queue.
+# This should help improve performance on the gateway/firewall.
+#
+# Suppose you configured iptables to use queues 0 and 1 named q0 and q1. You can now do the following:
+# ln -s /etc/init.d/suricata /etc/init.d/suricata.q0
+# ln -s /etc/init.d/suricata /etc/init.d/suricata.q1
+# cp /etc/suricata/suricata.yaml /etc/suricata/suricata-q0.yaml
+# cp /etc/suricata/suricata.yaml /etc/suricata/suricata-q1.yaml
+#
+# Edit both suricata-q{0,1}.yaml files and set values accordingly.
+# You can override these yaml config file names with SURICATA_CONF* below (optional).
+# This allows you to use the same yaml config file for multiple instances as long as you override
+# sensible options such as the log file paths.
+# SURICATA_CONF_q0="suricata-queues.yaml"
+# SURICATA_CONF_q1="suricata-queues.yaml"
+# SURICATA_CONF="suricata.yaml"
+
+# You can define the options here:
+# NB: avoid using -l, -c, --user, --group and setting logging.outputs.1.file.filename as the init script will try to set them for you.
+
+# SURICATA_OPTS_q0="-q 0"
+# SURICATA_OPTS_q1="-q 1"
+
+# If you want to use ${SURICATA_DIR}/suricata.yaml and start the service with /etc/init.d/suricata
+# then you can set:
+
+SURICATA_OPTS="--af-packet"
+
+# Log paths listed here will be created by the init script and will override the log path
+# set in the yaml file, if present.
+# SURICATA_LOG_FILE_q0="/var/log/suricata/q0/suricata.log"
+# SURICATA_LOG_FILE_q1="/var/log/suricata/q1/suricata.log"
+# SURICATA_LOG_FILE="/var/log/suricata/suricata.log"
+
+# Run as user/group.
+# Do not define if you want to run as root or as the user defined in the yaml config file (run-as).
+# The ebuild should have created the dedicated user/group suricata:suricata for you to specify here below.
+# SURICATA_USER_q0="suricata"
+# SURICATA_GROUP_q0="suricata"
+# SURICATA_USER_q1="suricata"
+# SURICATA_GROUP_q1="suricata"
+# SURICATA_USER="suricata"
+# SURICATA_GROUP="suricata"
+
+# Suricata processes can take a long time to shut down.
+# If necessary, adjust timeout in seconds to be used when calling stop from the init script.
+# Examples:
+# SURICATA_MAX_WAIT_ON_STOP="300"
+# SURICATA_MAX_WAIT_ON_STOP="SIGTERM/30"
diff --git a/net-analyzer/suricata/files/suricata.initd b/net-analyzer/suricata/files/suricata.initd
new file mode 100644
index 000000000000..154636ef828e
--- /dev/null
+++ b/net-analyzer/suricata/files/suricata.initd
@@ -0,0 +1,147 @@
+#!/sbin/openrc-run
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+SURICATA_BIN=/usr/bin/suricata
+SURICATA_DIR=${SURICATA_DIR:-/etc/suricata}
+SURICATA=${SVCNAME#*.}
+SURICATAID=$(shell_var "${SURICATA}")
+if [ -n "${SURICATA}" ] && [ ${SVCNAME} != "suricata" ]; then
+ eval SURICATACONF=\$SURICATA_CONF_${SURICATAID}
+ [ ${#SURICATACONF} -eq 0 ] && SURICATACONF="${SURICATA_DIR}/suricata-${SURICATA}.yaml" || SURICATACONF="${SURICATA_DIR}/${SURICATACONF}"
+ SURICATAPID="/run/suricata/suricata.${SURICATA}.pid"
+ eval SURICATAOPTS=\$SURICATA_OPTS_${SURICATAID}
+ eval SURICATALOGPATH=\$SURICATA_LOG_FILE_${SURICATAID}
+ eval SURICATAUSER=\$SURICATA_USER_${SURICATAID}
+ eval SURICATAGROUP=\$SURICATA_GROUP_${SURICATAID}
+else
+ SURICATACONF=${SURICATA_CONF}
+ [ ${#SURICATACONF} -eq 0 ] && SURICATACONF="${SURICATA_DIR}/suricata.yaml" || SURICATACONF="${SURICATA_DIR}/${SURICATACONF}"
+ SURICATAPID="/run/suricata/suricata.pid"
+ SURICATAOPTS=${SURICATA_OPTS}
+ SURICATALOGPATH=${SURICATA_LOG_FILE}
+ SURICATAUSER=${SURICATA_USER}
+ SURICATAGROUP=${SURICATA_GROUP}
+fi
+SURICATAUSER=${SURICATAUSER:-${SURICATA_USER}}
+SURICATAGROUP=${SURICATAGROUP:-${SURICATA_GROUP}}
+[ -e ${SURICATACONF} ] && SURICATAOPTS="-c ${SURICATACONF} ${SURICATAOPTS}"
+[ -z "${SURICATA_MAX_WAIT_ON_STOP}" ] || SURICATA_RETRY="--retry ${SURICATA_MAX_WAIT_ON_STOP}"
+
+description="Suricata IDS/IPS"
+extra_commands="checkconfig dump"
+description_checkconfig="Check config for ${SVCNAME}"
+description_dump="List all config values that can be used with --set"
+extra_started_commands="reload relog"
+description_reload="Live rule and config reload"
+description_relog="Close and re-open all log files"
+
+depend() {
+ need net
+ after mysql
+ after postgresql
+}
+
+checkconfig() {
+ if [ ! -d "/run/suricata" ] ; then
+ checkpath -d /run/suricata
+ fi
+ if [ ${#SURICATALOGPATH} -gt 0 ]; then
+ SURICATALOGFILE=$( basename ${SURICATALOGPATH} )
+ SURICATALOGFILE=${SURICATALOGFILE:-suricata.log}
+ SURICATALOGPATH=$( dirname ${SURICATALOGPATH} )
+ if [ ! -d "${SURICATALOGPATH}" ] ; then
+ checkpath -d "${SURICATALOGPATH}"
+ fi
+ if [ ${#SURICATAUSER} -gt 0 ] && [ ${#SURICATAGROUP} -gt 0 ] && [ -e "${SURICATALOGPATH}" ]; then
+ chown ${SURICATAUSER}:${SURICATAGROUP} "${SURICATALOGPATH}" || return 1
+ chown ${SURICATAUSER}:${SURICATAGROUP} "${SURICATALOGPATH}"/* >/dev/null 2>&1 3>&1
+ fi
+ SURICATAOPTS="${SURICATAOPTS} --set logging.outputs.1.file.filename=${SURICATALOGPATH}/${SURICATALOGFILE}"
+ SURICATALOGPATH="-l ${SURICATALOGPATH}"
+ fi
+ if [ ! -e ${SURICATACONF} ] ; then
+ einfo "The configuration file ${SURICATACONF} was not found."
+ einfo "If this is OK then make sure you set enough options for ${SVCNAME} in /etc/conf.d/suricata."
+ einfo "Take a look at the suricata arguments --set and --dump-config."
+ fi
+ if [ ${#SURICATAUSER} -gt 0 ] && [ ${#SURICATAGROUP} -gt 0 ]; then
+ einfo "${SVCNAME} will run as user ${SURICATAUSER}:${SURICATAGROUP}."
+ SURICATAOPTS="${SURICATAOPTS} --user=${SURICATAUSER} --group=${SURICATAGROUP}"
+ fi
+}
+
+initpidinfo() {
+ [ -e ${SURICATAPID} ] && SUR_PID="$(cat ${SURICATAPID})"
+ if [ ${#SUR_PID} -gt 0 ]; then
+ SUR_PID_CHECK="$(ps -eo pid | grep -c ${SUR_PID})"
+ SUR_USER="$(ps -p ${SUR_PID} --no-headers -o user)"
+ fi
+}
+
+checkpidinfo() {
+ initpidinfo
+ if [ ! -e ${SURICATAPID} ]; then
+ eerror "${SVCNAME} isn't running"
+ return 1
+ elif [ ${#SUR_PID} -eq 0 ] || [ $((SUR_PID_CHECK)) -ne 1 ]; then
+ eerror "Could not determine PID of ${SVCNAME}! Did the service crash?"
+ return 1
+ elif [ ${#SUR_USER} -eq 0 ]; then
+ eerror "Unable to determine user running ${SVCNAME}!"
+ return 1
+ elif [ "x${SUR_USER}" != "xroot" ]; then
+ ewarn "${SVCNAME} may need to be running as root or as a priviledged user for the extra commands reload and relog to work."
+ fi
+}
+
+start() {
+ checkconfig || return 1
+ ebegin "Starting ${SVCNAME}"
+ start-stop-daemon --start --quiet --exec ${SURICATA_BIN} \
+ -- --pidfile ${SURICATAPID} -D ${SURICATAOPTS} ${SURICATALOGPATH} >/dev/null 2>&1
+ local SUR_EXIT=$?
+ if [ $((SUR_EXIT)) -ne 0 ]; then
+ einfo "Could not start ${SURICATA_BIN} with:"
+ einfo "--pidfile ${SURICATAPID} -D ${SURICATAOPTS} ${SURICATALOGPATH}"
+ einfo "Exit code ${SUR_EXIT}"
+ fi
+ eend ${SUR_EXIT}
+}
+
+stop() {
+ ebegin "Stopping ${SVCNAME}"
+ start-stop-daemon --stop ${SURICATA_RETRY} --quiet --pidfile ${SURICATAPID} >/dev/null 2>&1
+ eend $?
+}
+
+reload() {
+ checkpidinfo || return 1
+ checkconfig || return 1
+ ebegin "Sending USR2 signal to ${SVCNAME} to perform a live rule and config reload."
+ if [ ${#SURICATAUSER} -gt 0 ] && [ ${#SURICATAGROUP} -gt 0 ]; then
+ start-stop-daemon --user ${SURICATAUSER} --group ${SURICATAGROUP} --signal USR2 --pidfile ${SURICATAPID}
+ else
+ start-stop-daemon --signal USR2 --pidfile ${SURICATAPID}
+ fi
+ eend $?
+}
+
+relog() {
+ checkpidinfo || return 1
+ checkconfig || return 1
+ ebegin "Sending HUP signal to ${SVCNAME} to close and re-open all log files."
+ if [ ${#SURICATAUSER} -gt 0 ] && [ ${#SURICATAGROUP} -gt 0 ]; then
+ start-stop-daemon --user ${SURICATAUSER} --group ${SURICATAGROUP} --signal HUP --pidfile ${SURICATAPID}
+ else
+ start-stop-daemon --signal HUP --pidfile ${SURICATAPID}
+ fi
+ eend $?
+}
+
+dump() {
+ checkconfig || return 1
+ ebegin "Dumping ${SVCNAME} config values and quitting."
+ ${SURICATA_BIN} --dump-config --pidfile ${SURICATAPID} ${SURICATAOPTS} ${SURICATALOGPATH}
+ eend $?
+}
diff --git a/net-analyzer/suricata/files/suricata.service b/net-analyzer/suricata/files/suricata.service
new file mode 100644
index 000000000000..1fb056957ec5
--- /dev/null
+++ b/net-analyzer/suricata/files/suricata.service
@@ -0,0 +1,19 @@
+[Unit]
+Description=Suricata IDS/IDP daemon
+After=network.target
+Requires=network.target
+Documentation=man:suricata(8) man:suricatasc(8)
+Documentation=https://suricata.readthedocs.io/
+
+[Service]
+Environment=OPTIONS='-c /etc/suricata/suricata.yaml --af-packet'
+PIDFile=/run/suricata/suricata.pid
+ExecStart=/usr/bin/suricata --pidfile /run/suricata/suricata.pid $OPTIONS
+ExecReload=/bin/kill -HUP $MAINPID
+ExecStop=/bin/kill $MAINPID
+PrivateTmp=yes
+ProtectHome=yes
+
+[Install]
+WantedBy=multi-user.target
+
diff --git a/net-analyzer/suricata/files/suricata.tmpfiles b/net-analyzer/suricata/files/suricata.tmpfiles
new file mode 100644
index 000000000000..a6e784cc37c7
--- /dev/null
+++ b/net-analyzer/suricata/files/suricata.tmpfiles
@@ -0,0 +1 @@
+d /run/suricata - - - -
diff --git a/net-analyzer/suricata/metadata.xml b/net-analyzer/suricata/metadata.xml
new file mode 100644
index 000000000000..16edbcddd271
--- /dev/null
+++ b/net-analyzer/suricata/metadata.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <use>
+ <flag name="af-packet">Enable AF_PACKET support</flag>
+ <flag name="bpf">Enable support for eBPF (as well as XDP if supported by the kernel and the NIC driver)
+ for low-level, high-speed packet processing</flag>
+ <flag name="control-socket">Enable unix socket</flag>
+ <flag name="detection">Enable detection modules</flag>
+ <flag name="hyperscan">Enable high-performance regex matching with Hyperscan</flag>
+ <flag name="lz4">Enable support for compressed pcap logging using the LZ4 algorithm</flag>
+ <flag name="nflog">Enable libnetfilter_log support</flag>
+ <flag name="nfqueue">Enable NFQUEUE support for inline IDP</flag>
+ <flag name="redis">Enable Redis support</flag>
+ <flag name="xdp">Enable support for AF_XDP high performance packet processing</flag>
+ </use>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:oisf:suricata</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/suricata/suricata-7.0.15-r1.ebuild b/net-analyzer/suricata/suricata-7.0.15-r1.ebuild
new file mode 100644
index 000000000000..118dc54879ca
--- /dev/null
+++ b/net-analyzer/suricata/suricata-7.0.15-r1.ebuild
@@ -0,0 +1,232 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-{1,3,4} luajit )
+PYTHON_COMPAT=( python3_{13..14} )
+RUST_MIN_VER="1.63.0"
+
+inherit autotools flag-o-matic linux-info lua-single python-single-r1 rust systemd tmpfiles verify-sig
+
+DESCRIPTION="High performance Network IDS, IPS and Network Security Monitoring engine"
+HOMEPAGE="https://suricata.io/"
+SRC_URI="https://www.openinfosecfoundation.org/download/${P}.tar.gz
+ verify-sig? ( https://www.openinfosecfoundation.org/download/${P}.tar.gz.sig )"
+
+LICENSE="GPL-2"
+SLOT="0/7"
+KEYWORDS="~amd64 ~riscv ~x86"
+IUSE="+af-packet bpf control-socket cuda debug +detection geoip hardened hyperscan lua lz4 nflog +nfqueue redis systemd test xdp"
+VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/openinfosecfoundation.org.asc"
+
+RESTRICT="!test? ( test )"
+
+REQUIRED_USE="${PYTHON_REQUIRED_USE}
+ bpf? ( af-packet )
+ lua? ( ${LUA_REQUIRED_USE} )
+ xdp? ( bpf )"
+
+RDEPEND="${PYTHON_DEPS}
+ acct-group/suricata
+ acct-user/suricata
+ dev-libs/jansson:=
+ dev-libs/libpcre2
+ dev-libs/libyaml
+ net-libs/libnet:*
+ net-libs/libnfnetlink
+ dev-libs/nspr
+ dev-libs/nss
+ $(python_gen_cond_dep '
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ ')
+ >=net-libs/libhtp-0.5.53
+ net-libs/libpcap
+ sys-apps/file
+ sys-libs/libcap-ng
+ bpf? ( dev-libs/libbpf )
+ cuda? ( dev-util/nvidia-cuda-toolkit )
+ geoip? ( dev-libs/libmaxminddb:= )
+ hyperscan? ( dev-libs/vectorscan:= )
+ lua? ( ${LUA_DEPS} )
+ lz4? ( app-arch/lz4 )
+ nflog? ( net-libs/libnetfilter_log )
+ nfqueue? ( net-libs/libnetfilter_queue )
+ redis? ( dev-libs/hiredis:= )
+ xdp? ( net-libs/xdp-tools )"
+DEPEND="${RDEPEND}
+ >=dev-build/autoconf-2.69-r5
+"
+BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-oisf-20260319 )"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-5.0.1_configure-no-lz4-automagic.patch"
+ "${FILESDIR}/${PN}-5.0.7_configure-no-hyperscan-automagic.patch"
+ "${FILESDIR}/${PN}-6.0.0_default-config.patch"
+ "${FILESDIR}/${PN}-7.0.2_configure-no-sphinx-pdflatex-automagic.patch"
+ "${FILESDIR}/${PN}-7.0.5_configure-fortify_source.patch"
+)
+
+pkg_pretend() {
+ if use bpf && use kernel_linux; then
+ if kernel_is -lt 4 15; then
+ ewarn "Kernel 4.15 or newer is necessary to use all XDP features like the CPU redirect map"
+ fi
+
+ CONFIG_CHECK="~XDP_SOCKETS"
+ ERROR_XDP_SOCKETS="CONFIG_XDP_SOCKETS is not set, making it impossible for Suricata to load XDP programs. "
+ ERROR_XDP_SOCKETS+="Other eBPF features should work normally."
+ check_extra_config
+ fi
+
+ if use xdp && use kernel_linux; then
+ if kernel_is -lt 4 18; then
+ ewarn "Kernel 4.18 or newer is required for AF_XDP"
+ fi
+ fi
+}
+
+pkg_setup() {
+ python-single-r1_pkg_setup
+ rust_pkg_setup
+}
+
+src_prepare() {
+ default
+ sed -ie 's/docdir =.*/docdir = ${datarootdir}\/doc\/'${PF}'\//' "${S}/doc/Makefile.am" || die
+ eautoreconf
+}
+
+src_configure() {
+ # Bug #861242
+ filter-lto
+
+ local myeconfargs=(
+ "--localstatedir=/var" \
+ "--runstatedir=/run" \
+ "--enable-non-bundled-htp" \
+ "--enable-gccmarch-native=no" \
+ "--enable-python" \
+ $(use_enable af-packet) \
+ $(use_enable bpf ebpf) \
+ $(use_enable control-socket unix-socket) \
+ $(use_enable cuda) \
+ $(use_enable detection) \
+ $(use_enable geoip) \
+ $(use_enable hardened gccprotect) \
+ $(use_enable hardened pie) \
+ $(use_enable hyperscan) \
+ $(use_enable lz4) \
+ $(use_enable nflog) \
+ $(use_enable nfqueue) \
+ $(use_enable redis hiredis) \
+ $(use_enable test unittests) \
+ $(use_enable xdp af-xdp) \
+ "--disable-coccinelle"
+ )
+ if use lua; then
+ if use lua_single_target_luajit; then
+ myeconfargs+=( --enable-luajit )
+ else
+ myeconfargs+=( --enable-lua )
+ fi
+ fi
+
+ if use debug; then
+ myeconfargs+=( $(use_enable debug) )
+ # so we can get a backtrace according to "reporting bugs" on upstream web site
+ QA_FLAGS_IGNORED="usr/bin/${PN}"
+ CFLAGS="-ggdb -O0" econf ${myeconfargs[@]}
+ else
+ econf ${myeconfargs[@]}
+ fi
+}
+
+src_compile() {
+ emake -Onone
+}
+
+src_install() {
+ emake DESTDIR="${D}" install
+ python_optimize
+ # Bug #878855
+ python_fix_shebang "${ED}"/usr/bin/
+
+ if use bpf; then
+ rm -f ebpf/Makefile.{am,in} || die
+ dodoc -r ebpf/
+ keepdir /usr/libexec/suricata/ebpf
+ fi
+
+ insinto "/etc/${PN}"
+ doins etc/{classification,reference}.config threshold.config suricata.yaml
+
+ keepdir "/var/lib/${PN}/rules" "/var/lib/${PN}/update"
+ keepdir "/var/log/${PN}"
+
+ fowners -R ${PN}: "/var/lib/${PN}" "/var/log/${PN}" "/etc/${PN}"
+ fperms 750 "/var/lib/${PN}" "/var/log/${PN}" "/etc/${PN}"
+ fperms 6750 "/var/lib/${PN}/rules" "/var/lib/${PN}/update"
+
+ newinitd "${FILESDIR}/${PN}.initd" ${PN}
+ newconfd "${FILESDIR}/${PN}.confd" ${PN}
+ systemd_dounit "${FILESDIR}"/${PN}.service
+ newtmpfiles "${FILESDIR}"/${PN}.tmpfiles ${PN}.conf
+
+ insopts -m0644
+ insinto /etc/logrotate.d
+ newins etc/${PN}.logrotate ${PN}
+}
+
+pkg_postinst() {
+ tmpfiles_process ${PN}.conf
+
+ elog
+ if use systemd; then
+ elog "Suricata requires either the mode of operation (e.g. --af-packet) or the interface to listen on (e.g. -i eth0)"
+ elog "to be specified on the command line. The provided systemd unit launches Suricata in af-packet mode and relies"
+ elog "on file configuration to specify interfaces, should you prefer to run it differently you will have to customise"
+ elog "said unit. The simplest way of doing it is to override the Environment=OPTIONS='...' line using a .conf file"
+ elog "placed in the directory ${EPREFIX}/etc/systemd/system/suricata.service.d/ ."
+ elog "For details, see the section on drop-in directories in systemd.unit(5)."
+ else
+ elog "The ${PN} init script expects to find the path to the configuration"
+ elog "file as well as extra options in /etc/conf.d."
+ elog
+ elog "To create more than one ${PN} service, simply create a new .yaml file for it"
+ elog "then create a symlink to the init script from a link called"
+ elog "${PN}.foo - like so"
+ elog " cd /etc/${PN}"
+ elog " ${EDITOR##*/} suricata-foo.yaml"
+ elog " cd /etc/init.d"
+ elog " ln -s ${PN} ${PN}.foo"
+ elog "Then edit /etc/conf.d/${PN} and make sure you specify sensible options for foo."
+ elog
+ elog "You can create as many ${PN}.foo* services as you wish."
+ fi
+
+ if use bpf; then
+ elog
+ elog "eBPF/XDP files must be compiled (using llvm-core/clang[llvm_targets_BPF]) before use"
+ elog "because their configuration is hard-coded. You can find the default ones in"
+ elog " ${EPREFIX}/usr/share/doc/${PF}/ebpf"
+ elog "and the common location for eBPF bytecode is"
+ elog " ${EPREFIX}/usr/libexec/${PN}"
+ elog "For more information, see https://${PN}.readthedocs.io/en/${P}/capture-hardware/ebpf-xdp.html"
+ fi
+
+ if use debug; then
+ elog
+ elog "You have enabled the debug USE flag. Please read this link to report bugs upstream:"
+ elog "https://redmine.openinfosecfoundation.org/projects/suricata/wiki/Reporting_Bugs"
+ elog "You need to also ensure the FEATURES variable in make.conf contains the"
+ elog "'nostrip' option to produce useful core dumps or back traces."
+ fi
+
+ elog
+ if [[ -z "${REPLACING_VERSIONS}" ]]; then
+ elog "To download and install an initial set of rules, run:"
+ elog " suricata-update"
+ fi
+ elog
+}
diff --git a/net-analyzer/symon/Manifest b/net-analyzer/symon/Manifest
new file mode 100644
index 000000000000..a1d54d83f8f7
--- /dev/null
+++ b/net-analyzer/symon/Manifest
@@ -0,0 +1,2 @@
+DIST symon-2.89.tar.gz 106210 BLAKE2B d87fececf6e1e6dc9c39c0474e2a3e5bb6bb47b9a256e377385302a011532d94b751572040594b62962d4b2c2ac2d5bbd90513a79ab82bd69aeb4f30e93609a1 SHA512 631870aafbd29610a0ddc936f86ab12c16c3b19454b6bd98b3f1a1179767be890f9ea828dddcb8d79278f2c10b67631184386d6deb8ffb5c090d7bdc558e5db7
+DIST symon-2.90.tar.gz 102807 BLAKE2B 9ae6042a3376154ed3548d81ddf2bd2fda611f3009d1f12f0dfec957226951c004fc6351933aa78a021bbaa3ffdf0cf4ce0739d861d9e64bf48906c6e4df3f16 SHA512 b6d3664660f119f9f62a3e9cd7fb7d72df7356adf8544a65cb467b9d18b18a5252e3b3cc57ee21f72e45b8dd4f57063a3c876ed736413c11a57575568857aefc
diff --git a/net-analyzer/symon/files/symon-2.89-condition-makefiles.patch b/net-analyzer/symon/files/symon-2.89-condition-makefiles.patch
new file mode 100644
index 000000000000..76ff4f517da7
--- /dev/null
+++ b/net-analyzer/symon/files/symon-2.89-condition-makefiles.patch
@@ -0,0 +1,39 @@
+Fold sed that injects LDFLAGS. Inject CFLAGS too.
+Remove hardcoded CFLAGS. Remove strip that previously was sidestepped
+by setting STRIP=true in ebuild
+--- a/Makefile.inc
++++ b/Makefile.inc
+@@ -2,7 +2,6 @@
+
+ AR?= ar
+ CC?= cc
+-CFLAGS+=-g -Wall -Wpedantic -Wextra -Wno-unused-parameter -Werror
+ INSTALL?=install
+ LORDER?=lorder
+ TSORT?=tsort
+--- a/symon/Makefile
++++ b/symon/Makefile
+@@ -21,9 +21,8 @@
+ ${OBJS}: conf.h
+
+ symon: ${OBJS}
+- ${CC} -o $@ ${OBJS} ${LIBS}
++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ ${OBJS} ${LIBS}
+ .ifndef DEBUG
+- ${STRIP} $@
+ .endif
+
+ clean:
+--- a/symux/Makefile
++++ b/symux/Makefile
+@@ -10,9 +10,8 @@
+ all: symux symux.cat8
+
+ symux: ${OBJS}
+- ${CC} -o $@ ${OBJS} ${LIBS}
++ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ ${OBJS} ${LIBS}
+ .ifndef DEBUG
+- ${STRIP} $@
+ .endif
+
+ clean:
diff --git a/net-analyzer/symon/files/symon-2.89-extern_c.patch b/net-analyzer/symon/files/symon-2.89-extern_c.patch
new file mode 100644
index 000000000000..088f8c53ec6c
--- /dev/null
+++ b/net-analyzer/symon/files/symon-2.89-extern_c.patch
@@ -0,0 +1,441 @@
+Replace internal glib definition with correct C++ guard
+https://bugs.gentoo.org/716080
+--- a/lib/data.c
++++ b/lib/data.c
+@@ -54,14 +54,18 @@
+ #include "net.h"
+ #include "xmalloc.h"
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ int bytelenvar(char);
+ int checklen(int, int, int);
+ struct stream *create_stream(int, char *);
+ char *formatstrvar(char);
+ char *rrdstrvar(char);
+ int strlenvar(char);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ /* Stream formats
+ *
+--- a/lib/data.h
++++ b/lib/data.h
+@@ -38,6 +38,8 @@
+ #ifndef _SYMON_LIB_DATA_H
+ #define _SYMON_LIB_DATA_H
+
++#include <sys/types.h>
++
+ #include "platform.h"
+
+ #include <stdarg.h>
+
+--- a/lib/error.c
++++ b/lib/error.c
+@@ -27,8 +27,6 @@
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+-#include <sys/cdefs.h>
+-
+ #include <limits.h>
+ #include <stdarg.h>
+ #include <stdio.h>
+@@ -38,9 +36,13 @@
+
+ #include "error.h"
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void output_message(int, char *, va_list);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ int flag_daemon = 0;
+ int flag_debug = 0;
+--- a/lib/error.h
++++ b/lib/error.h
+@@ -31,17 +31,19 @@
+ #ifndef _SYMON_LIB_ERROR_H
+ #define _SYMON_LIB_ERROR_H
+
+-#include <sys/cdefs.h>
+-
+ extern char *__progname;
+ extern int flag_debug;
+ extern int flag_daemon;
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void fatal(char *,...);
+ void warning(char *,...);
+ void info(char *,...);
+ void debug(char *,...);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif /* _SYMON_LIB_ERROR_H */
+--- a/lib/lex.h
++++ b/lib/lex.h
+@@ -36,8 +36,6 @@
+ #ifndef _SYMON_LIB_LEX_H
+ #define _SYMON_LIB_LEX_H
+
+-#include <sys/cdefs.h>
+-
+ #include <stdio.h>
+
+ /* Tokens known to lex */
+@@ -100,7 +98,9 @@
+ type; /* type of token in buffer */
+ };
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ char *parse_opcode(int);
+ int lex_nexttoken(struct lex *);
+ int parse_token(const char *);
+@@ -110,7 +110,9 @@
+ void parse_error(struct lex *, const char *);
+ void reset_lex(struct lex *);
+ void rewind_lex(struct lex *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ /* EXPECT(l,x) = next token in l must be opcode x or error. */
+ #define EXPECT(l, x) do { \
+--- a/lib/net.h
++++ b/lib/net.h
+@@ -40,7 +40,9 @@
+ extern char res_service[];
+ extern struct sockaddr_storage res_addr;
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ int cmpsock_addr(struct sockaddr *, struct sockaddr *);
+ int get_numeric_name(struct sockaddr_storage *);
+ int getaddr(char *, char *, int, int);
+@@ -50,6 +52,8 @@
+ void get_sockaddr(struct sockaddr_storage *, int, int, int, char*, char *);
+ void get_mux_sockaddr(struct mux *, int);
+ int get_source_sockaddr(struct source *, int);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif /* _SYMON_LIB_NET_H */
+--- a/lib/xmalloc.h
++++ b/lib/xmalloc.h
+@@ -18,10 +18,14 @@
+ #include <sys/types.h>
+
+ /* Like malloc and friends, but these call fatal if something breaks */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void *xmalloc(size_t);
+ void *xrealloc(void *, size_t);
+ void xfree(void *);
+ char *xstrdup(const char *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif /* _SYMON_LIB_XMALLOC_H */
+--- a/symon/readconf.c
++++ b/symon/readconf.c
+@@ -40,11 +40,15 @@
+ #include "symon.h"
+ #include "xmalloc.h"
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ int read_host_port(struct muxlist *, struct mux *, struct lex *);
+ int read_symon_args(struct mux *, struct lex *);
+ int read_monitor(struct muxlist *, struct lex *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ const char *default_symux_port = SYMUX_PORT;
+
+--- a/symon/readconf.h
++++ b/symon/readconf.h
+@@ -33,7 +33,11 @@
+
+ #include "data.h"
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ int read_config_file(struct muxlist *, char *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif /* _SYMON_READCONF_H */
+--- a/symon/symon.c
++++ b/symon/symon.c
+@@ -53,13 +53,17 @@
+ #include "symonnet.h"
+ #include "xmalloc.h"
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void alarmhandler(int);
+ void exithandler(int);
+ void huphandler(int);
+ void init_streams(struct muxlist *mul);
+ void drop_privileges(int unsecure);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ int flag_unsecure = 0;
+ int flag_hup = 0;
+--- a/symon/symon.h
++++ b/symon/symon.h
+@@ -59,7 +59,9 @@
+ extern time_t now;
+
+ /* prototypes */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ /* sm_cpu.c */
+ extern void init_cpu(struct stream *);
+ extern void gets_cpu(void);
+@@ -136,6 +138,8 @@
+ void gets_flukso(void);
+ int get_flukso(char *, int, struct stream *);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif /* _SYMON_SYMON_H */
+--- a/symon/symonnet.h
++++ b/symon/symonnet.h
+@@ -34,11 +34,15 @@
+ #include "data.h"
+
+ /* prototypes */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void connect2mux(struct mux *);
+ void send_packet(struct mux *);
+ void prepare_packet(struct mux *, time_t t);
+ void stream_in_packet(struct stream *, struct mux *);
+ void finish_packet(struct mux *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif /* _SYMON_SYMONNET_H */
+--- a/symux/readconf.c
++++ b/symux/readconf.c
+@@ -28,8 +28,8 @@
+ *
+ */
+
+-#include <sys/stat.h>
++#include <sys/stat.h>
+
+ #include <string.h>
+ #include <fcntl.h>
+ #include <unistd.h>
+@@ -42,12 +42,15 @@
+ #include "readconf.h"
+ #include "xmalloc.h"
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ int read_mux(struct muxlist * mul, struct lex *);
+ int read_source(struct sourcelist * sol, struct lex *, int);
+ int insert_filename(char *, int, int, char *);
+-__END_DECLS
+-
++#ifdef __cplusplus
++}
++#endif
+ const char *default_symux_port = SYMUX_PORT;
+
+ int
+--- a/symux/readconf.h
++++ b/symux/readconf.h
+@@ -34,8 +34,12 @@
+
+ #include "data.h"
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ int read_config_file(struct muxlist *, const char *, int);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif /* _SYMUX_READCONF_H */
+--- a/symux/share.c
++++ b/symux/share.c
+@@ -76,7 +76,9 @@
+ *
+ */
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void check_master(void);
+ void check_sem(void);
+ void client_doneread(void);
+@@ -86,7 +88,9 @@
+ void exitmaster(void);
+ void master_resetsem(int);
+ void reap_clients(void);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ int realclients; /* number of clients active */
+ int newclients;
+--- a/symux/share.h
++++ b/symux/share.h
+@@ -47,7 +47,9 @@
+ };
+
+ /* prototypes */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ int master_forbidread(void);
+ void master_permitread(void);
+ long shared_getlen(int);
+@@ -56,6 +58,8 @@
+ void initshare(int);
+ void shared_setlen(int, long);
+ pid_t spawn_client(int);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ #endif /* _SYMUX_SHARE_H */
+--- a/symux/symux.c
++++ b/symux/symux.c
+@@ -56,11 +56,15 @@
+
+ #include "platform.h"
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ void exithandler(int);
+ void huphandler(int);
+ void signalhandler(int);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ int flag_hup = 0;
+ int flag_testconf = 0;
+--- a/symux/symuxnet.c
++++ b/symux/symuxnet.c
+@@ -46,9 +46,13 @@
+ #include "xmalloc.h"
+ #include "share.h"
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ int check_crc_packet(struct symonpacket *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+
+ /* Obtain sockets for incoming symon traffic */
+ int
+--- a/symux/symuxnet.h
++++ b/symux/symuxnet.h
+@@ -34,11 +34,15 @@
+ #include "data.h"
+
+ /* prototypes */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ int get_client_socket(struct mux *);
+ int get_symon_sockets(struct mux *);
+ int accept_connection(int);
+ int recv_symon_packet(struct mux *, int, struct source **);
+ void wait_for_traffic(struct mux *, struct source **);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif /* _SYMUX_SYMUXNET_H */
+--- a/lib/data.h
++++ b/lib/data.h
+@@ -358,7 +360,9 @@
+ };
+
+ /* prototypes */
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+ char *type2str(const int);
+ int bytelen_sourcelist(struct sourcelist *);
+ int bytelen_streamlist(struct streamlist *);
+@@ -393,5 +397,7 @@
+ void init_crc32(void);
+ void init_symon_packet(struct mux *);
+ void init_symux_packet(struct mux *);
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif /* _SYMON_LIB_DATA_H */
diff --git a/net-analyzer/symon/files/symon-init.d b/net-analyzer/symon/files/symon-init.d
new file mode 100644
index 000000000000..3d48b793e597
--- /dev/null
+++ b/net-analyzer/symon/files/symon-init.d
@@ -0,0 +1,32 @@
+#!/sbin/openrc-run
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the 2-clause BSD license
+
+extra_started_commands="reload"
+
+depend() {
+ after bootmisc
+ need localmount net
+ use logger
+}
+
+reload() {
+ ebegin "Reloading symon"
+ start-stop-daemon \
+ --pidfile /run/symon.pid \
+ --exec /usr/sbin/symon \
+ --signal HUP
+ eend $?
+}
+
+start() {
+ ebegin "Starting symon"
+ start-stop-daemon --start --exec /usr/sbin/symon -- -u
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping symon"
+ start-stop-daemon --stop --pidfile /run/symon.pid
+ eend $?
+}
diff --git a/net-analyzer/symon/files/symon.conf b/net-analyzer/symon/files/symon.conf
new file mode 100644
index 000000000000..920662185e58
--- /dev/null
+++ b/net-analyzer/symon/files/symon.conf
@@ -0,0 +1,14 @@
+#
+# Demo configuration for symon. See symon(8) for BNF.
+#
+
+monitor { cpu(0), mem,
+ if(lo),
+# cpuiow(0),
+# sensor(fan0), sensor(in0), sensor(temp0),
+# if(eth0), if(eth1), if(eth2),
+# df(sda),
+# smart(sda),
+# io(hda), io(hdb), io(hdc), io(hdd)
+ io(sda)
+} stream to 127.0.0.1 2100
diff --git a/net-analyzer/symon/files/symux-init.d b/net-analyzer/symon/files/symux-init.d
new file mode 100644
index 000000000000..452d4581b807
--- /dev/null
+++ b/net-analyzer/symon/files/symux-init.d
@@ -0,0 +1,32 @@
+#!/sbin/openrc-run
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the 2-clause BSD license
+
+extra_started_commands="reload"
+
+depend() {
+ after bootmisc
+ need localmount net
+ use logger
+}
+
+reload() {
+ ebegin "Reloading symux"
+ start-stop-daemon \
+ --pidfile /run/symux.pid \
+ --exec /usr/sbin/symux \
+ --signal HUP
+ eend $?
+}
+
+start() {
+ ebegin "Starting symux"
+ start-stop-daemon --start --exec /usr/sbin/symux
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping symux"
+ start-stop-daemon --stop --pidfile /run/symux.pid
+ eend $?
+}
diff --git a/net-analyzer/symon/files/symux.conf b/net-analyzer/symon/files/symux.conf
new file mode 100644
index 000000000000..fa0ed50631d7
--- /dev/null
+++ b/net-analyzer/symon/files/symux.conf
@@ -0,0 +1,35 @@
+#
+# Demo symux configuration. See symux(8) for BNF.
+#
+
+mux 127.0.0.1 2100
+
+source 127.0.0.1 {
+ accept { cpu(0), mem,
+ if(lo),
+# cpuiow(0),
+# sensor(fan0), sensor(in0), sensor(temp0),
+# if(eth0), if(eth1), if(eth2),
+# df(sda),
+# smart(sda),
+# io(hda), io(hdb), io(hdc), io(hdd)
+ io(sda)
+ }
+ datadir "/var/lib/symon/rrds/localhost"
+}
+
+# an example showing the write directive
+#
+# source 10.0.0.2 {
+# accept { cpu(0), mem, if(eth0), if(eth1),
+# if(lo), if(eth2), io(sda)
+# }
+#
+# write cpu(0) in "/var/lib/symon/rrds/<host>/cpu0.rrd"
+# write mem in "/var/lib/symon/rrds/<host>/mem.rrd"
+# write if(eth0) in "/var/lib/symon/rrds/<host>/if_eth0.rrd"
+# write if(eth1) in "/var/lib/symon/rrds/<host>/if_eth1.rrd"
+# write if(lo) in "/var/lib/symon/rrds/<host>/if_lo.rrd"
+# write if(eth2) in "/var/lib/symon/rrds/<host>/if_eth2.rrd"
+# write io(sda) in "/var/lib/symon/rrds/<host>/io_sda.rrd"
+# }
diff --git a/net-analyzer/symon/metadata.xml b/net-analyzer/symon/metadata.xml
new file mode 100644
index 000000000000..a56fd5040caf
--- /dev/null
+++ b/net-analyzer/symon/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <use>
+ <flag name="perl">Enables a generic perl symux client</flag>
+ <flag name="symon">Enables the system monitor. Offers no functionality
+ but monitoring and forwarding of measured data</flag>
+ <flag name="symux">Enables the multiplexer which stores incoming symon
+ streams on disk in RRD (<pkg>net-analyzer/rrdtool</pkg>) files</flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/symon/symon-2.89.ebuild b/net-analyzer/symon/symon-2.89.ebuild
new file mode 100644
index 000000000000..ae76643393c0
--- /dev/null
+++ b/net-analyzer/symon/symon-2.89.ebuild
@@ -0,0 +1,99 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit edo perl-module toolchain-funcs
+
+DESCRIPTION="Performance and information monitoring tool"
+HOMEPAGE="https://wpd.home.xs4all.nl/symon/"
+SRC_URI="https://wpd.home.xs4all.nl/symon/philes/${P}.tar.gz"
+S="${WORKDIR}"/${PN}
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~sparc ~x86"
+IUSE="perl +symon symux"
+REQUIRED_USE="|| ( perl symon symux )"
+# there are no tests, trying to run them fails because pmakefile
+RESTRICT="test"
+
+BDEPEND="dev-build/pmake"
+RDEPEND="
+ perl? ( dev-lang/perl )
+ symux? ( net-analyzer/rrdtool )
+"
+DEPEND="${RDEPEND}"
+
+# Deletes the directory passed as an argument from the internal pmake
+# variable SUBDIR.
+zap_subdir() {
+ sed -i "/^SUBDIR/s|$1||" Makefile || die
+}
+
+PATCHES=(
+ "${FILESDIR}/${P}-condition-makefiles.patch"
+ "${FILESDIR}/${P}-extern_c.patch"
+)
+
+src_configure() {
+ # Do some sed magic in accordance with the USE flags.
+ use perl && ! use symon && ! use symux && zap_subdir lib
+ ! use perl && zap_subdir client
+ ! use symux && zap_subdir symux
+ ! use symon && zap_subdir symon
+}
+
+src_compile() {
+ edo pmake CC="$(tc-getCC)" CFLAGS+="${CFLAGS}" LDFLAGS+="${LDFLAGS}"
+}
+
+src_install() {
+ if use symon; then
+ insinto /etc
+ doins "${FILESDIR}"/symon.conf
+
+ newinitd "${FILESDIR}"/symon-init.d symon
+
+ dodoc CHANGELOG HACKERS TODO
+
+ doman symon/symon.8
+ dosbin symon/symon
+ fi
+
+ if use perl; then
+ dobin client/getsymonitem.pl
+
+ perl_set_version
+ insinto ${VENDOR_LIB}
+ doins client/SymuxClient.pm
+ fi
+
+ if use symux; then
+ insinto /etc
+ doins "${FILESDIR}"/symux.conf
+
+ newinitd "${FILESDIR}"/symux-init.d symux
+
+ doman symux/symux.8
+ dosbin symux/symux
+
+ insinto /usr/share/symon
+ doins symux/c_smrrds.sh
+ fperms a+x /usr/share/symon/c_smrrds.sh
+
+ dodir /var/lib/symon/rrds/localhost
+ keepdir /var/lib/symon/rrds/localhost
+ fi
+}
+
+pkg_postinst() {
+ if use symux; then
+ elog "The RRDs files can be obtained by running"
+ elog "/usr/share/symon/c_smrrds.sh all."
+ elog "For information about migrating RRDs from a previous"
+ elog "symux version read the LEGACY FORMATS section of symux(8)."
+ elog "To view the rrdtool pictures of the stored data, emerge"
+ elog "net-analyzer/syweb."
+ fi
+}
diff --git a/net-analyzer/symon/symon-2.90.ebuild b/net-analyzer/symon/symon-2.90.ebuild
new file mode 100644
index 000000000000..371ba28573fb
--- /dev/null
+++ b/net-analyzer/symon/symon-2.90.ebuild
@@ -0,0 +1,98 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit edo perl-module toolchain-funcs
+
+DESCRIPTION="Performance and information monitoring tool"
+HOMEPAGE="https://wpd.home.xs4all.nl/symon/"
+SRC_URI="https://wpd.home.xs4all.nl/symon/philes/${P}.tar.gz"
+S="${WORKDIR}"/${PN}
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~sparc ~x86"
+IUSE="perl +symon symux"
+REQUIRED_USE="|| ( perl symon symux )"
+# there are no tests, trying to run them fails because pmakefile
+RESTRICT="test"
+
+BDEPEND="dev-build/pmake"
+RDEPEND="
+ perl? ( dev-lang/perl )
+ symux? ( net-analyzer/rrdtool )
+"
+DEPEND="${RDEPEND}"
+
+# Deletes the directory passed as an argument from the internal pmake
+# variable SUBDIR.
+zap_subdir() {
+ sed -i "/^SUBDIR/s|$1||" Makefile || die
+}
+
+PATCHES=(
+ "${FILESDIR}/${PN}-2.89-condition-makefiles.patch"
+)
+
+src_configure() {
+ # Do some sed magic in accordance with the USE flags.
+ use perl && ! use symon && ! use symux && zap_subdir lib
+ ! use perl && zap_subdir client
+ ! use symux && zap_subdir symux
+ ! use symon && zap_subdir symon
+}
+
+src_compile() {
+ edo pmake CC="$(tc-getCC)" CFLAGS+="${CFLAGS}" LDFLAGS+="${LDFLAGS}"
+}
+
+src_install() {
+ if use symon; then
+ insinto /etc
+ doins "${FILESDIR}"/symon.conf
+
+ newinitd "${FILESDIR}"/symon-init.d symon
+
+ dodoc CHANGELOG HACKERS TODO
+
+ doman symon/symon.8
+ dosbin symon/symon
+ fi
+
+ if use perl; then
+ dobin client/getsymonitem.pl
+
+ perl_set_version
+ insinto ${VENDOR_LIB}
+ doins client/SymuxClient.pm
+ fi
+
+ if use symux; then
+ insinto /etc
+ doins "${FILESDIR}"/symux.conf
+
+ newinitd "${FILESDIR}"/symux-init.d symux
+
+ doman symux/symux.8
+ dosbin symux/symux
+
+ insinto /usr/share/symon
+ doins symux/c_smrrds.sh
+ fperms a+x /usr/share/symon/c_smrrds.sh
+
+ dodir /var/lib/symon/rrds/localhost
+ keepdir /var/lib/symon/rrds/localhost
+ fi
+}
+
+pkg_postinst() {
+ if use symux; then
+ elog "The RRDs files can be obtained by running"
+ elog "/usr/share/symon/c_smrrds.sh all."
+ elog "For information about migrating RRDs from a previous"
+ elog "symux version read the LEGACY FORMATS section of symux(8)."
+ elog "To view the rrdtool pictures of the stored data, emerge"
+ elog "net-analyzer/syweb."
+ fi
+}
diff --git a/net-analyzer/synscan/Manifest b/net-analyzer/synscan/Manifest
new file mode 100644
index 000000000000..3f73f21271ad
--- /dev/null
+++ b/net-analyzer/synscan/Manifest
@@ -0,0 +1 @@
+DIST synscan-5.02.tar.gz 60651 BLAKE2B 0ad083d6751234b60ec0428cb3752ba1207a5be5e305a0d26950343c7a7f0572aa9ad5cb16831d862ac43c35a051514bd8fefce4abadbf4c120e4e9add7fa433 SHA512 40ec616e169d0d4150e2213fbdcb985e55dcceefef521b0bf85d8964f5b82892b8abeffcbe9c5e38314c22b86553dae56fb082d546e83efa65755a4d345ea7b0
diff --git a/net-analyzer/synscan/files/synscan-5.02-destdir.patch b/net-analyzer/synscan/files/synscan-5.02-destdir.patch
new file mode 100644
index 000000000000..920bf65c1ed6
--- /dev/null
+++ b/net-analyzer/synscan/files/synscan-5.02-destdir.patch
@@ -0,0 +1,15 @@
+--- a/Makefile.in 2011-02-21 23:05:20.000000000 +0200
++++ b/Makefile.in 2019-03-20 18:28:46.812472904 +0300
+@@ -65,10 +65,8 @@
+ ${CC} ${LDFLAGS} ${CFLAGS} $< ${OBJS} ${LIBS} -o sslog
+
+ install:
+- mkdir -p -m 755 ${bindir}
+- strip synscan
+- strip sslog
+- @INSTALL_PROGRAM@ synscan sslog ${bindir}
++ mkdir -p -m 755 $(DESTDIR)${bindir}
++ @INSTALL_PROGRAM@ synscan sslog $(DESTDIR)${bindir}
+
+ clean:
+ rm -f ${PROJ} ${OBJS} core *.core
diff --git a/net-analyzer/synscan/files/synscan-5.02-lld.patch b/net-analyzer/synscan/files/synscan-5.02-lld.patch
new file mode 100644
index 000000000000..612e91599984
--- /dev/null
+++ b/net-analyzer/synscan/files/synscan-5.02-lld.patch
@@ -0,0 +1,9 @@
+lld does not ignore erroneous libdirs (ideally should use pkg-config)
+https://bugs.gentoo.org/875017
+--- a/configure.in
++++ b/configure.in
+@@ -60,3 +60,3 @@
+ CFLAGS="$CFLAGS -I${prefix}/include"
+- LIBS="$LIBS -L${prefix}/lib -lpcap"
++ LIBS="$LIBS -lpcap"
+ elif test -f /usr/include/pcap/pcap.h; then
diff --git a/net-analyzer/synscan/metadata.xml b/net-analyzer/synscan/metadata.xml
new file mode 100644
index 000000000000..5f33304011d5
--- /dev/null
+++ b/net-analyzer/synscan/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/synscan/synscan-5.02.ebuild b/net-analyzer/synscan/synscan-5.02.ebuild
new file mode 100644
index 000000000000..5d38f8710526
--- /dev/null
+++ b/net-analyzer/synscan/synscan-5.02.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="Fast asynchronous half-open TCP portscanner"
+HOMEPAGE="http://www.digit-labs.org/files/tools/synscan/"
+SRC_URI="http://www.digit-labs.org/files/tools/synscan/releases/${P}.tar.gz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="amd64 x86 ~x64-macos"
+
+RDEPEND="net-libs/libpcap"
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-destdir.patch
+ "${FILESDIR}"/${P}-lld.patch
+)
+
+src_prepare() {
+ default
+
+ eautoreconf
+}
+
+src_compile() {
+ local _target
+
+ use kernel_linux && _target=linux
+ use kernel_SunOS && _target=solaris-sparc-gcc
+ use kernel_Darwin && _target=macos
+
+ emake ${_target}
+}
diff --git a/net-analyzer/syweb/Manifest b/net-analyzer/syweb/Manifest
new file mode 100644
index 000000000000..4e6da8cb6035
--- /dev/null
+++ b/net-analyzer/syweb/Manifest
@@ -0,0 +1,2 @@
+DIST syweb-0.65.tar.gz 37052 BLAKE2B 502bee5e78bdfd309780dd7414616eec99982b3c203039aff645842fc6538396180dabcc9953a70f4bc7c7326fb28c11dc5bd4fd17b8e5c409a8424203b61a88 SHA512 ca4a4ad6f48dc4ff32c11979d6f34ae6f87462fd295780cdef6609ca425d21698ff43e2c5ffbf43a1f1ecccef4718891992160d1fbc1325726c474d113f824b2
+DIST syweb-0.67.tar.gz 40380 BLAKE2B 2856d552799577f5e3e10821ef06f23d747c1f814e7a578371d62702fa6aeeaa6a04491a66c2a0ff6cf78672e62c65871a903416317f96239959b5a3faf9ff4e SHA512 a0b7c3e390e3c9849a85c08872e9baa9c75df8d0e00d4b7e3dadb0f4a38f244efdbb4b58eb2221c5296f25b9152ac8b54e615cc56e641600ce28600f6115e264
diff --git a/net-analyzer/syweb/files/postinstall-en.txt b/net-analyzer/syweb/files/postinstall-en.txt
new file mode 100644
index 000000000000..291d66d4e381
--- /dev/null
+++ b/net-analyzer/syweb/files/postinstall-en.txt
@@ -0,0 +1,8 @@
+Test your syweb installation by pointing your browser to the URL
+http://${VHOST_HOSTNAME}/${VHOST_APPDIR}/configtest.php
+
+If you don't want any user interaction, move index_noui.php to index.php.
+
+syweb expects a <host>/*.rrd style directory structure under
+/var/lib/symon/rrds. Customize ${MY_INSTALLDIR}/setup.inc
+if this is incorrect for your setup.
diff --git a/net-analyzer/syweb/files/reconfig b/net-analyzer/syweb/files/reconfig
new file mode 100644
index 000000000000..79324cc1c7d0
--- /dev/null
+++ b/net-analyzer/syweb/files/reconfig
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+die() {
+ echo "#####"
+ echo $1
+ echo "#####"
+ exit 1
+}
+
+sed_var() {
+ sed -i "/\\$symon['$1']/s|=.*|='$2';|" "${MY_INSTALLDIR}"/setup.inc \
+ || die "sed $1 failed"
+}
+
+[[ $1 == "clean" ]] && exit 0
+
+sed_var rrdtool_path /usr/bin/rrdtool
+sed_var cache_dir "${VHOST_ROOT}"/syweb/cache
+sed_var host_tree /var/lib/symon/rrds
+sed_var layout_dir "${VHOST_ROOT}"/syweb
diff --git a/net-analyzer/syweb/metadata.xml b/net-analyzer/syweb/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/syweb/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/syweb/syweb-0.65-r1.ebuild b/net-analyzer/syweb/syweb-0.65-r1.ebuild
new file mode 100644
index 000000000000..f3122287ff22
--- /dev/null
+++ b/net-analyzer/syweb/syweb-0.65-r1.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+WEBAPP_MANUAL_SLOT="yes"
+inherit webapp
+
+DESCRIPTION="Web frontend to symon"
+HOMEPAGE="https://www.xs4all.nl/~wpd/symon/"
+SRC_URI="https://www.xs4all.nl/~wpd/symon/philes/${P}.tar.gz"
+S="${WORKDIR}/${PN}"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~sparc ~x86"
+
+RDEPEND="
+ net-analyzer/rrdtool
+ virtual/httpd-php
+"
+
+need_httpd_cgi
+
+src_install() {
+ webapp_src_preinst
+
+ dodoc CHANGELOG README
+ docinto layouts
+ dodoc symon/*.layout
+
+ dodir "${MY_HOSTROOTDIR}"/syweb/cache
+ insinto "${MY_HOSTROOTDIR}"/syweb
+ doins symon/hifn_test.layout
+ webapp_serverowned "${MY_HOSTROOTDIR}"/syweb/cache
+ insinto "${MY_HTDOCSDIR}"
+ doins -r htdocs/syweb/*
+ webapp_configfile "${MY_HTDOCSDIR}"/setup.inc
+ webapp_postinst_txt en "${FILESDIR}"/postinstall-en.txt
+ webapp_hook_script "${FILESDIR}"/reconfig
+
+ webapp_src_install
+}
diff --git a/net-analyzer/syweb/syweb-0.67.ebuild b/net-analyzer/syweb/syweb-0.67.ebuild
new file mode 100644
index 000000000000..f3122287ff22
--- /dev/null
+++ b/net-analyzer/syweb/syweb-0.67.ebuild
@@ -0,0 +1,43 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+WEBAPP_MANUAL_SLOT="yes"
+inherit webapp
+
+DESCRIPTION="Web frontend to symon"
+HOMEPAGE="https://www.xs4all.nl/~wpd/symon/"
+SRC_URI="https://www.xs4all.nl/~wpd/symon/philes/${P}.tar.gz"
+S="${WORKDIR}/${PN}"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~sparc ~x86"
+
+RDEPEND="
+ net-analyzer/rrdtool
+ virtual/httpd-php
+"
+
+need_httpd_cgi
+
+src_install() {
+ webapp_src_preinst
+
+ dodoc CHANGELOG README
+ docinto layouts
+ dodoc symon/*.layout
+
+ dodir "${MY_HOSTROOTDIR}"/syweb/cache
+ insinto "${MY_HOSTROOTDIR}"/syweb
+ doins symon/hifn_test.layout
+ webapp_serverowned "${MY_HOSTROOTDIR}"/syweb/cache
+ insinto "${MY_HTDOCSDIR}"
+ doins -r htdocs/syweb/*
+ webapp_configfile "${MY_HTDOCSDIR}"/setup.inc
+ webapp_postinst_txt en "${FILESDIR}"/postinstall-en.txt
+ webapp_hook_script "${FILESDIR}"/reconfig
+
+ webapp_src_install
+}
diff --git a/net-analyzer/tcpdump/Manifest b/net-analyzer/tcpdump/Manifest
new file mode 100644
index 000000000000..df890bbb02b9
--- /dev/null
+++ b/net-analyzer/tcpdump/Manifest
@@ -0,0 +1,4 @@
+DIST tcpdump-4.99.5.tar.gz 2045086 BLAKE2B 754c25eafe84754465356042faa1369678655aa93d1b736c259ca9a6bd1e18c44784ae136dc6a3e64af9903c05c29e1379aafd7badc0e129c5a29ae908db13ff SHA512 69bc52ef7af7fd562370adf2e95cb592aad6193df9ab1708de52ac86a4c1cff72e8b256a739b435c324ee2df61051abde7d2659bc40f061d7c4fbcab1dcaa2e2
+DIST tcpdump-4.99.5.tar.gz.sig 442 BLAKE2B 8742616147e2965ea6879b471662669f1942cdb8892834ac3ebfd4a6f610bde1a091bb85dc8c0836b26d1db7036d072608d7242ee4ddfbf590a07beb584a67cc SHA512 e36d2023973335cb95e91cb13414f6c0e6386175ed88fdeb2c0afabf7c39ad43f138d13b18ff2e88b142aad5147d37ddc03c3111e9d4d22bf3697e0acc30905c
+DIST tcpdump-4.99.6.tar.gz 2053753 BLAKE2B cf820f98d271a6cd97d0c2c7b4f6a6a3091b264a2cdb0c80e4cc0d0301ca4a817498b5941e0806d838cc819d20539157fc50b4be5634153eb2eeb6e540bd0196 SHA512 1a3c1855de8769ded66c86f0a8a54f5fe0943aa6855ff43bc8262895e749f7afe6a729cec4280d705f3e82942d0cee4b914bc1aa50e6ea686ad8ff798ca8df96
+DIST tcpdump-4.99.6.tar.gz.sig 442 BLAKE2B d6c533c7a259cebb9cfa2384b969f5625d225d32526c97016ef7f604dee6dfc17bdc9795b76b680601586b8bf0e8cfd04db2a6b4cf191befcd178d9dda520cba SHA512 421dddc51f43e93e76c6fa27aa2482a8de99247b8c42984c58f8009c4330c57f111d6f93c028e5c6506029b60ee02cdc0cc258adc4aaf346b0e11472d770fd9b
diff --git a/net-analyzer/tcpdump/files/tcpdump-4.99.5-lfs.patch b/net-analyzer/tcpdump/files/tcpdump-4.99.5-lfs.patch
new file mode 100644
index 000000000000..0be1d7a75aaf
--- /dev/null
+++ b/net-analyzer/tcpdump/files/tcpdump-4.99.5-lfs.patch
@@ -0,0 +1,22 @@
+https://github.com/the-tcpdump-group/tcpdump/pull/1068
+
+From 54278acb038f0d16ed75cdddb35fd2813a7cdcef Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Thu, 27 Jul 2023 08:31:53 +0100
+Subject: [PATCH] configure.ac: use AC_SYS_LARGEFILE
+
+This enables 64-bit off_t where it's opt-in (e.g. glibc) on 32-bit platforms.
+
+Bug: https://bugs.gentoo.org/911176
+Signed-off-by: Sam James <sam@gentoo.org>
+--- a/configure.ac
++++ b/configure.ac
+@@ -31,6 +31,8 @@ fi
+ AC_LBL_C_INIT(V_CCOPT, V_INCLS)
+ AC_LBL_C_INLINE
+
++AC_SYS_LARGEFILE
++
+ AC_CHECK_HEADERS(rpc/rpc.h rpc/rpcent.h net/if.h)
+ #
+ # Get the size of a void *, to know whether this is a 32-bit or 64-bit build.
diff --git a/net-analyzer/tcpdump/files/tcpdump-4.99.5-libdir.patch b/net-analyzer/tcpdump/files/tcpdump-4.99.5-libdir.patch
new file mode 100644
index 000000000000..c7448fb311c1
--- /dev/null
+++ b/net-analyzer/tcpdump/files/tcpdump-4.99.5-libdir.patch
@@ -0,0 +1,29 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -427,7 +427,7 @@ fi
+
+ if test "$ipv6" = "yes" -a "$ipv6lib" != "none"; then
+ if test -d $ipv6libdir -a -f $ipv6libdir/lib$ipv6lib.a; then
+- LIBS="-L$ipv6libdir -l$ipv6lib $LIBS"
++ LIBS="-l$ipv6lib $LIBS"
+ echo "You have $ipv6lib library, using it"
+ else
+ if test "$ipv6trylibc" = "yes"; then
+@@ -1168,7 +1168,7 @@ return 0;
+ #
+ AC_LBL_SAVE_CHECK_STATE
+ CFLAGS="$CFLAGS -I$libcrypto_root/include"
+- LIBS="$LIBS -L$libcrypto_root/lib -lcrypto"
++ LIBS="$LIBS -lcrypto"
+ AC_MSG_CHECKING(whether we have a system OpenSSL/libressl that we can use)
+ AC_LINK_IFELSE([AC_LANG_PROGRAM(
+ [[
+@@ -1182,7 +1182,7 @@ return 0;
+ AC_MSG_RESULT(yes)
+ HAVE_LIBCRYPTO=yes
+ LIBCRYPTO_CFLAGS="-I$libcrypto_root/include"
+- LIBCRYPTO_LIBS="-L$libcrypto_root/lib -lcrypto"
++ LIBCRYPTO_LIBS="-lcrypto"
+ ],
+ AC_MSG_RESULT(no))
+ AC_LBL_RESTORE_CHECK_STATE
diff --git a/net-analyzer/tcpdump/metadata.xml b/net-analyzer/tcpdump/metadata.xml
new file mode 100644
index 000000000000..9659a6eddb43
--- /dev/null
+++ b/net-analyzer/tcpdump/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>sam@gentoo.org</email>
+ <name>Sam James</name>
+ </maintainer>
+ <use>
+ <flag name="smi">Build with <pkg>net-libs/libsmi</pkg> to load MIBs on the fly to decode SNMP packets</flag>
+ </use>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:tcpdump:tcpdump</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/tcpdump/tcpdump-4.99.5.ebuild b/net-analyzer/tcpdump/tcpdump-4.99.5.ebuild
new file mode 100644
index 000000000000..e24a465253cb
--- /dev/null
+++ b/net-analyzer/tcpdump/tcpdump-4.99.5.ebuild
@@ -0,0 +1,101 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="A tool for network monitoring and data acquisition"
+HOMEPAGE="https://www.tcpdump.org/ https://github.com/the-tcpdump-group/tcpdump"
+
+if [[ ${PV} == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/the-tcpdump-group/tcpdump"
+else
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/tcpdump.asc
+ inherit verify-sig
+
+ SRC_URI="https://www.tcpdump.org/release/${P}.tar.gz"
+ SRC_URI+=" verify-sig? ( https://www.tcpdump.org/release/${P}.tar.gz.sig )"
+
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+fi
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="+caps +smi +ssl +samba suid test"
+REQUIRED_USE="test? ( samba )"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ >=net-libs/libpcap-1.10.1
+ caps? (
+ acct-group/pcap
+ acct-user/pcap
+ sys-libs/libcap-ng
+ )
+ smi? ( net-libs/libsmi )
+ ssl? (
+ >=dev-libs/openssl-0.9.6m:=
+ )
+ suid? (
+ acct-group/pcap
+ acct-user/pcap
+ )
+"
+DEPEND="
+ ${RDEPEND}
+ test? (
+ dev-lang/perl
+ )
+"
+BDEPEND="caps? ( virtual/pkgconfig )"
+
+if [[ ${PV} != *9999* ]] ; then
+ BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-tcpdump-20240901 )"
+fi
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.99.5-libdir.patch
+ "${FILESDIR}"/${PN}-4.99.5-lfs.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ econf \
+ $(use_enable samba smb) \
+ $(use_with caps cap-ng) \
+ $(use_with smi) \
+ $(use_with ssl crypto "${ESYSROOT}/usr") \
+ $(usex caps "--with-user=pcap" "")
+}
+
+src_test() {
+ if [[ ${EUID} -ne 0 ]] || ! use caps ; then
+ emake check
+ else
+ ewarn "If you want to run the test suite, make sure you either"
+ ewarn "set FEATURES=userpriv or set USE=-caps"
+ fi
+}
+
+src_install() {
+ dosbin tcpdump
+ doman tcpdump.1
+ dodoc *.awk
+ dodoc CHANGES CREDITS README.md
+
+ if use suid ; then
+ fowners root:pcap /usr/sbin/tcpdump
+ fperms 4110 /usr/sbin/tcpdump
+ fi
+}
+
+pkg_postinst() {
+ use suid && elog "To let normal users run tcpdump, add them to the pcap group."
+}
diff --git a/net-analyzer/tcpdump/tcpdump-4.99.6.ebuild b/net-analyzer/tcpdump/tcpdump-4.99.6.ebuild
new file mode 100644
index 000000000000..c9011826b31b
--- /dev/null
+++ b/net-analyzer/tcpdump/tcpdump-4.99.6.ebuild
@@ -0,0 +1,106 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="Tool for network monitoring and data acquisition"
+HOMEPAGE="https://www.tcpdump.org/ https://github.com/the-tcpdump-group/tcpdump"
+
+if [[ ${PV} == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/the-tcpdump-group/tcpdump"
+else
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/tcpdump.asc
+ inherit verify-sig
+
+ SRC_URI="https://www.tcpdump.org/release/${P}.tar.gz"
+ SRC_URI+=" verify-sig? ( https://www.tcpdump.org/release/${P}.tar.gz.sig )"
+
+ KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+fi
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="+caps +smi +ssl +samba suid test"
+REQUIRED_USE="test? ( samba )"
+RESTRICT="!test? ( test )"
+
+# The minimum version of libpcap for tests to pass is often mentioned
+# at https://www.tcpdump.org/index.html#latest-releases
+RDEPEND="
+ >=net-libs/libpcap-1.10.5
+ caps? (
+ acct-group/pcap
+ acct-user/pcap
+ sys-libs/libcap-ng
+ )
+ smi? ( net-libs/libsmi )
+ ssl? (
+ >=dev-libs/openssl-0.9.6m:=
+ )
+ suid? (
+ acct-group/pcap
+ acct-user/pcap
+ )
+"
+DEPEND="
+ ${RDEPEND}
+ test? (
+ dev-lang/perl
+ )
+"
+BDEPEND="caps? ( virtual/pkgconfig )"
+
+if [[ ${PV} != *9999* ]] ; then
+ BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-tcpdump-20260104 )"
+fi
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.99.5-libdir.patch
+ "${FILESDIR}"/${PN}-4.99.5-lfs.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ local myeconfargs=(
+ $(use_enable samba smb)
+ $(use_with caps cap-ng)
+ $(use_with smi)
+ $(use_with ssl crypto "${ESYSROOT}/usr")
+ $(usex caps "--with-user=pcap" "")
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_test() {
+ if [[ ${EUID} -ne 0 ]] || ! use caps ; then
+ emake check
+ else
+ ewarn "If you want to run the test suite, make sure you either"
+ ewarn "set FEATURES=userpriv or set USE=-caps"
+ fi
+}
+
+src_install() {
+ dosbin tcpdump
+ doman tcpdump.1
+ dodoc *.awk
+ dodoc CHANGES CREDITS README.md
+
+ if use suid ; then
+ fowners root:pcap /usr/sbin/tcpdump
+ fperms 4110 /usr/sbin/tcpdump
+ fi
+}
+
+pkg_postinst() {
+ use suid && elog "To let normal users run tcpdump, add them to the pcap group."
+}
diff --git a/net-analyzer/tcpdump/tcpdump-9999.ebuild b/net-analyzer/tcpdump/tcpdump-9999.ebuild
new file mode 100644
index 000000000000..3c062623d1e6
--- /dev/null
+++ b/net-analyzer/tcpdump/tcpdump-9999.ebuild
@@ -0,0 +1,106 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="Tool for network monitoring and data acquisition"
+HOMEPAGE="https://www.tcpdump.org/ https://github.com/the-tcpdump-group/tcpdump"
+
+if [[ ${PV} == *9999* ]] ; then
+ inherit git-r3
+
+ EGIT_REPO_URI="https://github.com/the-tcpdump-group/tcpdump"
+else
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/tcpdump.asc
+ inherit verify-sig
+
+ SRC_URI="https://www.tcpdump.org/release/${P}.tar.gz"
+ SRC_URI+=" verify-sig? ( https://www.tcpdump.org/release/${P}.tar.gz.sig )"
+
+ KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+fi
+
+LICENSE="BSD"
+SLOT="0"
+IUSE="+caps +smi +ssl +samba suid test"
+REQUIRED_USE="test? ( samba )"
+RESTRICT="!test? ( test )"
+
+# The minimum version of libpcap for tests to pass is often mentioned
+# at https://www.tcpdump.org/index.html#latest-releases
+RDEPEND="
+ >=net-libs/libpcap-1.10.5
+ caps? (
+ acct-group/pcap
+ acct-user/pcap
+ sys-libs/libcap-ng
+ )
+ smi? ( net-libs/libsmi )
+ ssl? (
+ >=dev-libs/openssl-0.9.6m:=
+ )
+ suid? (
+ acct-group/pcap
+ acct-user/pcap
+ )
+"
+DEPEND="
+ ${RDEPEND}
+ test? (
+ dev-lang/perl
+ )
+"
+BDEPEND="caps? ( virtual/pkgconfig )"
+
+if [[ ${PV} != *9999* ]] ; then
+ BDEPEND+=" verify-sig? ( >=sec-keys/openpgp-keys-tcpdump-20260104 )"
+fi
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.99.5-libdir.patch
+ "${FILESDIR}"/${PN}-4.99.5-lfs.patch
+)
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_configure() {
+ local myeconfargs=(
+ $(use_enable samba smb)
+ $(use_with caps cap-ng)
+ $(use_with smi)
+ $(use_with ssl crypto "${ESYSROOT}/usr")
+ $(usex caps "--with-user=pcap" "")
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_test() {
+ if [[ ${EUID} -ne 0 ]] || ! use caps ; then
+ emake check
+ else
+ ewarn "If you want to run the test suite, make sure you either"
+ ewarn "set FEATURES=userpriv or set USE=-caps"
+ fi
+}
+
+src_install() {
+ dosbin tcpdump
+ doman tcpdump.1
+ dodoc *.awk
+ dodoc CHANGES CREDITS README.md
+
+ if use suid ; then
+ fowners root:pcap /usr/sbin/tcpdump
+ fperms 4110 /usr/sbin/tcpdump
+ fi
+}
+
+pkg_postinst() {
+ use suid && elog "To let normal users run tcpdump, add them to the pcap group."
+}
diff --git a/net-analyzer/tcpflow/Manifest b/net-analyzer/tcpflow/Manifest
new file mode 100644
index 000000000000..849f6a69a642
--- /dev/null
+++ b/net-analyzer/tcpflow/Manifest
@@ -0,0 +1,3 @@
+DIST be13_api-20170924.tar.gz 75724 BLAKE2B a5257346b9c0740d9758543fe7772c960e1941735abefe4d24d347631b35d1511fde8eb5a58dbb2824c54e78ee0d686a2549ceea2c1dc91e05ef92899c8b3c2d SHA512 5bf0d28f23df9436304245ccbdbf4af5b0f65e62b92e3039cfb9a70fe2056aa90dcce906db02f3df83fcf2a415c8a46f0f75468d48e13b15673d11c447a4c9c4
+DIST dfxml-20170921.tar.gz 163616 BLAKE2B 17214d15596a136efb2afc7246ee0f5696620b5aac7c2d78e37764f51487ff816de5a7c0f59e7484d358a8cd8eab34841716970cd859f0ce868ac29c8532754c SHA512 0885947aaf8efe639c13324413ef0cca49750027b48b434f226fb9fbfba494e84e245da879dc0d77b46bddc27798f7f5df12590fce47b096683034bbc61280e1
+DIST tcpflow-1.6.1-tag.tar.gz 915245 BLAKE2B 22a1540415d6321d4ba43035f386aaea177e9d3244ff1dcdedcb0c8a72f487a969372b76b85f6acec4f0f1430b51230ceb665466af388d2bfe123a57dcd4224b SHA512 9c0357ca816bf4316ce7a461e5d18c5043a6938828ce83a613a952d5804cc6b701028a666b352da922d69447ab7f5d4c9f66585872e7b116c0f1aebebc38682b
diff --git a/net-analyzer/tcpflow/files/tcpflow-1.5.0_alpha-libcapng.patch b/net-analyzer/tcpflow/files/tcpflow-1.5.0_alpha-libcapng.patch
new file mode 100644
index 000000000000..b56144324c09
--- /dev/null
+++ b/net-analyzer/tcpflow/files/tcpflow-1.5.0_alpha-libcapng.patch
@@ -0,0 +1,13 @@
+--- a/src/tcpflow.cpp
++++ b/src/tcpflow.cpp
+@@ -30,6 +30,10 @@
+ #include <grp.h>
+ #endif
+
++#ifdef HAVE_CAP_NG_H
++#include <cap-ng.h>
++#endif
++
+ /* bring in inet_ntop if it is not present */
+ #define ETH_ALEN 6
+ #ifndef HAVE_INET_NTOP
diff --git a/net-analyzer/tcpflow/files/tcpflow-1.5.2-gentoo.patch b/net-analyzer/tcpflow/files/tcpflow-1.5.2-gentoo.patch
new file mode 100644
index 000000000000..e6748c019688
--- /dev/null
+++ b/net-analyzer/tcpflow/files/tcpflow-1.5.2-gentoo.patch
@@ -0,0 +1,64 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -30,7 +30,6 @@
+ AC_PROG_INSTALL
+
+ m4_include([m4/slg_searchdirs.m4])
+-m4_include([m4/slg_gcc_all_warnings.m4])
+
+
+ # use C++11 mode if available; HAVE_CXX11 is defined in config.h if so. Don't
+@@ -402,7 +402,12 @@
+ AC_CHECK_HEADERS(cap-ng.h)
+ fi
+
+-
++################################################################
++# http-parser
++
++AC_CHECK_LIB(http_parser,http_parser_init,,
++ AC_MSG_ERROR([http-parser library not installed]))
++AC_CHECK_HEADERS(http_parser.h)
+
+ ################################################################
+ # Specify our other headers
+--- a/src/scan_http.cpp
++++ b/src/scan_http.cpp
+@@ -11,7 +11,11 @@
+ #include "tcpip.h"
+ #include "tcpdemux.h"
+
++#ifdef HAVE_HTTP_PARSER_H
++#include "http_parser.h"
++#else
+ #include "http-parser/http_parser.h"
++#endif
+
+ #include "mime_map.h"
+
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 793ec1a..ecac7a9 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -98,8 +98,6 @@ tcpflow_SOURCES = \
+ scan_netviz.cpp \
+ pcap_writer.h \
+ iptree.h \
+- http-parser/http_parser.c \
+- http-parser/http_parser.h \
+ mime_map.cpp \
+ mime_map.h
+
+@@ -110,12 +108,6 @@ tcpflow_SOURCES = \
+ EXTRA_DIST =\
+ inet_ntop.c \
+ inet_ntop.h \
+- http-parser/AUTHORS \
+- http-parser/CONTRIBUTIONS \
+- http-parser/LICENSE-MIT \
+- http-parser/Makefile \
+- http-parser/README.md \
+- http-parser/http_parser.gyp \
+ wifipcap/README.txt \
+ wifipcap/TimeVal.cpp \
+ wifipcap/TimeVal.h \
diff --git a/net-analyzer/tcpflow/files/tcpflow-1.6.1-gcc13.patch b/net-analyzer/tcpflow/files/tcpflow-1.6.1-gcc13.patch
new file mode 100644
index 000000000000..d3b6b63920f1
--- /dev/null
+++ b/net-analyzer/tcpflow/files/tcpflow-1.6.1-gcc13.patch
@@ -0,0 +1,22 @@
+https://github.com/simsong/tcpflow/pull/252
+
+From 51973125e3961569b83bd4fdde65272a3843a6a3 Mon Sep 17 00:00:00 2001
+From: Sam James <sam@gentoo.org>
+Date: Sat, 15 Apr 2023 09:54:14 +0100
+Subject: [PATCH] Fix build with GCC 13
+
+GCC 13 (as usual for new compiler releases) shuffles around some internal includes and so etc is no longer transitively included.
+
+See https://gnu.org/software/gcc/gcc-13/porting_to.html.
+Bug: https://bugs.gentoo.org/895282
+--- a/src/netviz/plot_view.h
++++ b/src/netviz/plot_view.h
+@@ -23,6 +23,7 @@
+ #include <cairo/cairo-pdf.h>
+ #endif
+
++#include <cstdint>
+ #include <vector>
+ #include <string>
+ #include <math.h>
+
diff --git a/net-analyzer/tcpflow/files/tcpflow-1.6.1-wformat-security.patch b/net-analyzer/tcpflow/files/tcpflow-1.6.1-wformat-security.patch
new file mode 100644
index 000000000000..092a08dd7664
--- /dev/null
+++ b/net-analyzer/tcpflow/files/tcpflow-1.6.1-wformat-security.patch
@@ -0,0 +1,24 @@
+https://github.com/simsong/tcpflow/issues/238
+https://github.com/simsong/tcpflow/commit/a0697509c4657e2fd94f941e43a2d4c86ddf9fe4
+
+From: "Simson L. Garfinkel" <simsong@acm.org>
+Date: Thu, 11 Mar 2021 19:30:54 -0500
+Subject: [PATCH] Update datalink.cpp (#239)
+
+per https://salsa.debian.org/debian/tcpflow/-/blob/master/debian/patches/fix-werror-format-security.patch
+Closes https://github.com/simsong/tcpflow/issues/238
+--- a/src/datalink.cpp
++++ b/src/datalink.cpp
+@@ -171,10 +171,7 @@ void dl_ethernet(u_char *user, const struct pcap_pkthdr *h, const u_char *p)
+ break;
+ }
+ } catch( std::logic_error e){
+- std::string s(std::string("warning: caught std::logic_error ")
+- + e.what()
+- + std::string(" in packet"));
+- DEBUG(6)(s.c_str());
++ DEBUG(6)("Warning: caught std::logic_error %s in packet",e.what());
+ }
+ }
+
+
diff --git a/net-analyzer/tcpflow/metadata.xml b/net-analyzer/tcpflow/metadata.xml
new file mode 100644
index 000000000000..8e327ffc714c
--- /dev/null
+++ b/net-analyzer/tcpflow/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:digitalcorpora:tcpflow</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/tcpflow/tcpflow-1.6.1-r1.ebuild b/net-analyzer/tcpflow/tcpflow-1.6.1-r1.ebuild
new file mode 100644
index 000000000000..97efcb64e901
--- /dev/null
+++ b/net-analyzer/tcpflow/tcpflow-1.6.1-r1.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic
+
+DESCRIPTION="A tool for monitoring, capturing and storing TCP connections flows"
+HOMEPAGE="https://github.com/simsong/tcpflow"
+SRC_URI="
+ https://api.github.com/repos/simsong/be13_api/tarball/c81521d768bb78499c069fcd7c47adc8eee0350c -> be13_api-20170924.tar.gz
+ https://api.github.com/repos/simsong/dfxml/tarball/7d11eaa7da8d31f588ce8aecb4b4f5e7e8169ba6 -> dfxml-20170921.tar.gz
+ https://github.com/simsong/tcpflow/archive/refs/tags/${P}.tar.gz -> ${P}-tag.tar.gz
+"
+S="${WORKDIR}"/${PN}-${P}
+
+LICENSE="GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~x86 ~x64-macos"
+IUSE="cairo test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="dev-db/sqlite
+ dev-libs/boost:=
+ dev-libs/openssl:=
+ net-libs/http-parser:=
+ net-libs/libpcap
+ sys-libs/libcap-ng
+ virtual/zlib:=
+ cairo? (
+ x11-libs/cairo
+ )"
+DEPEND="${RDEPEND}"
+BDEPEND="test? ( sys-apps/coreutils )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.5.0_alpha-libcapng.patch
+ "${FILESDIR}"/${PN}-1.5.2-gentoo.patch
+ "${FILESDIR}"/${PN}-1.6.1-wformat-security.patch
+ "${FILESDIR}"/${PN}-1.6.1-gcc13.patch
+)
+
+src_prepare() {
+ default
+
+ eautoreconf
+}
+
+src_configure() {
+ append-cxxflags -fpermissive
+
+ # Disable Python because it's Python 2.7 only, even as of 1.6.1!
+ export ac_cv_header_python2_7_Python_h=no
+ export ac_cv_lib_python2_7_Py_Initialize=no
+
+ CONFIG_SHELL="${BROOT}"/bin/bash econf $(usex cairo --enable-cairo=true --enable-cairo=false)
+}
diff --git a/net-analyzer/tcping/Manifest b/net-analyzer/tcping/Manifest
new file mode 100644
index 000000000000..4c63f8a7731d
--- /dev/null
+++ b/net-analyzer/tcping/Manifest
@@ -0,0 +1 @@
+DIST tcping-2.1.0.tar.gz 6532 BLAKE2B 8d154b36480180ae6fd2a644b98ee0ed569e1d7491a2fe5a5ced9a3ad2470d8a34cbbed499ba93661816075617cdb00f83c1469866f3bf63871fbbc6f67168ca SHA512 d39c30390a7ab7a345f3b8fc2731afa817b104460a65ad47f1e535d1a5242eed7eb5b8c416b898dd4eedc87cf16af7bbb0630c63731b12513fa4f95eb9dfaed0
diff --git a/net-analyzer/tcping/metadata.xml b/net-analyzer/tcping/metadata.xml
new file mode 100644
index 000000000000..011d298371ee
--- /dev/null
+++ b/net-analyzer/tcping/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/tcping/tcping-2.1.0.ebuild b/net-analyzer/tcping/tcping-2.1.0.ebuild
new file mode 100644
index 000000000000..5eec6370d88d
--- /dev/null
+++ b/net-analyzer/tcping/tcping-2.1.0.ebuild
@@ -0,0 +1,29 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Check if a desired port is reachable via TCP"
+HOMEPAGE="https://github.com/mkirchner/tcping"
+SRC_URI="https://github.com/mkirchner/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 ~x86"
+
+src_prepare() {
+ default
+ sed -e '/^CC=/s:=:?=:' \
+ -e '/^CCFLAGS/s:=:+=:' \
+ -e 's/$(CCFLAGS)/$(CCFLAGS) $(LDFLAGS)/' \
+ -i Makefile || die
+ tc-export CC
+ export CCFLAGS="${CFLAGS}"
+}
+
+src_install() {
+ dobin tcping
+ dodoc README
+}
diff --git a/net-analyzer/tcpreen/Manifest b/net-analyzer/tcpreen/Manifest
new file mode 100644
index 000000000000..d3ab49a82e1f
--- /dev/null
+++ b/net-analyzer/tcpreen/Manifest
@@ -0,0 +1 @@
+DIST tcpreen-1.4.4.tar.bz2 187979 BLAKE2B ef76c7757c5e630a8b0019ede74314bdf7b0e1e48af00091c8b1a28075499b1e0411b5a7ff8bd01bd54ebb347dfc2169b5efe54d36ef12e6ce31f54c4d278d70 SHA512 94496bbb21218b5acc9e76dd4377f92e35b17e03a2d10a7c42177ba5ccbb6aea1b0b54f49d52c5a97456f8cf77685e1c90c27773f4237c33e95f648d4258b786
diff --git a/net-analyzer/tcpreen/files/tcpreen-1.4.4-literal-suffix.patch b/net-analyzer/tcpreen/files/tcpreen-1.4.4-literal-suffix.patch
new file mode 100644
index 000000000000..1808a54f8875
--- /dev/null
+++ b/net-analyzer/tcpreen/files/tcpreen-1.4.4-literal-suffix.patch
@@ -0,0 +1,13 @@
+--- a/src/main.cpp
++++ b/src/main.cpp
+@@ -108,8 +108,8 @@
+ # define VERSION "unknown version"
+ #endif
+ puts (
+-"TCP re-engineering tool "VERSION" ("PACKAGE_HOST")\n"
+-" built "__DATE__" on "PACKAGE_BUILD_HOSTNAME" ("PACKAGE_BUILD")\n"
++"TCP re-engineering tool " VERSION " (" PACKAGE_HOST ")\n"
++" built " __DATE__ " on " PACKAGE_BUILD_HOSTNAME " (" PACKAGE_BUILD ")\n"
+ "Copyright (C) 2002-2004 Remi Denis-Courmont");
+ puts (_(
+ "This is free software; see the source for copying conditions.\n"
diff --git a/net-analyzer/tcpreen/metadata.xml b/net-analyzer/tcpreen/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/tcpreen/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/tcpreen/tcpreen-1.4.4-r1.ebuild b/net-analyzer/tcpreen/tcpreen-1.4.4-r1.ebuild
new file mode 100644
index 000000000000..3191689b7a26
--- /dev/null
+++ b/net-analyzer/tcpreen/tcpreen-1.4.4-r1.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="TCP network re-engineering tool"
+HOMEPAGE="https://www.remlab.net/tcpreen/"
+SRC_URI="https://www.remlab.net/files/${PN}/stable/${P}.tar.bz2"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86"
+IUSE="nls"
+
+BDEPEND="nls? ( sys-devel/gettext )"
+
+PATCHES=( "${FILESDIR}"/${P}-literal-suffix.patch )
+
+src_configure() {
+ econf $(use_enable nls)
+}
+
+src_compile() {
+ emake AR="$(tc-getAR)"
+}
diff --git a/net-analyzer/tcpreplay/Manifest b/net-analyzer/tcpreplay/Manifest
new file mode 100644
index 000000000000..ab021b8dfbab
--- /dev/null
+++ b/net-analyzer/tcpreplay/Manifest
@@ -0,0 +1 @@
+DIST tcpreplay-4.5.2.tar.xz 818824 BLAKE2B ccb5580e38700824cb2eab1121c27e2383388d72483fe41ed67d94756415fcf4269a1ae6d32b758f388cb7511033f805e906023161719015bbd376a2c529771d SHA512 77d822ff9c0f723765451f207e2f9d2c94e6cef8c21984882674ddcac782d877b91695d92be75f23745cb89961cc3f5db17500865822044239df353356d25a3e
diff --git a/net-analyzer/tcpreplay/files/tcpreplay-4.3.0-enable-pcap_findalldevs.patch b/net-analyzer/tcpreplay/files/tcpreplay-4.3.0-enable-pcap_findalldevs.patch
new file mode 100644
index 000000000000..6c4d2c02dc0a
--- /dev/null
+++ b/net-analyzer/tcpreplay/files/tcpreplay-4.3.0-enable-pcap_findalldevs.patch
@@ -0,0 +1,11 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -1499,6 +1499,8 @@
+ AC_MSG_WARN(Unable to do tests when cross-compiling)
+ fi
+
++disable_pcap_findalldevs=no
++
+ dnl Allows user to choose which nic to use for testing purposes
+ AC_ARG_WITH(testnic,
+ AC_HELP_STRING([--with-testnic=NIC], [Select which network card to use for testing]),
diff --git a/net-analyzer/tcpreplay/metadata.xml b/net-analyzer/tcpreplay/metadata.xml
new file mode 100644
index 000000000000..d52324c4363e
--- /dev/null
+++ b/net-analyzer/tcpreplay/metadata.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <longdescription>
+ Tcpreplay is a suite of utilities for UNIX systems for editing and replaying
+ network traffic which was previously captured by tools like tcpdump and
+ ethereal/wireshark. The goal of tcpreplay is to provide the means for
+ providing reliable and repeatible means for testing a variety of network
+ devices such as switches, router, firewalls, network intrusion detection and
+ prevention systems (IDS and IPS).
+ </longdescription>
+ <use>
+ <flag name="tcpdump">Use <pkg>net-analyzer/tcpdump</pkg> for packet decoding feature </flag>
+ </use>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:broadcom:tcpreplay</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/tcpreplay/tcpreplay-4.5.2.ebuild b/net-analyzer/tcpreplay/tcpreplay-4.5.2.ebuild
new file mode 100644
index 000000000000..86e8530c7cca
--- /dev/null
+++ b/net-analyzer/tcpreplay/tcpreplay-4.5.2.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic
+
+DESCRIPTION="Utilities for editing and replaying previously captured network traffic"
+HOMEPAGE="http://tcpreplay.appneta.com/ https://github.com/appneta/tcpreplay"
+if [[ ${PV} == *9999* ]] ; then
+ EGIT_REPO_URI="https://github.com/appneta/tcpreplay"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/appneta/${PN}/releases/download/v${PV}/${P}.tar.xz"
+ KEYWORDS="amd64 ~arm ~sparc x86"
+fi
+
+LICENSE="BSD GPL-3"
+SLOT="0"
+IUSE="debug +tcpdump"
+
+BDEPEND=">=sys-devel/autogen-5.18.4[libopts]"
+DEPEND="
+ dev-libs/libdnet
+ >=net-libs/libpcap-0.9
+ elibc_musl? ( sys-libs/fts-standalone )
+ tcpdump? ( net-analyzer/tcpdump )
+"
+RDEPEND="${DEPEND}"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ pathfind # sun/solaris only command, bug 900040
+)
+
+DOCS=( docs/{CHANGELOG,CREDIT,HACKING,TODO} )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.3.0-enable-pcap_findalldevs.patch
+)
+
+src_prepare() {
+ default
+
+ sed -i \
+ -e 's|#include <dnet.h>|#include <dnet/eth.h>|g' \
+ src/common/sendpacket.c || die
+ sed -i \
+ -e 's|@\([A-Z_]*\)@|$(\1)|g' \
+ -e '/tcpliveplay_CFLAGS/s|$| $(LDNETINC)|g' \
+ -e '/tcpliveplay_LDADD/s|$| $(LDNETLIB)|g' \
+ src/Makefile.am || die
+
+ eautoreconf
+}
+
+src_configure() {
+ use elibc_musl && append-flags "-lfts"
+ # By default it uses static linking. Avoid that, bug #252940
+ local myeconfargs=(
+ $(use_enable debug)
+ $(use_with tcpdump tcpdump "${ESYSROOT}"/usr/sbin/tcpdump)
+ --enable-dynamic-link
+ --enable-local-libopts
+ --enable-shared
+ --with-libdnet
+ --with-pcapnav-config=no
+ --with-testnic2=lo
+ --with-testnic=lo
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_test() {
+ if [[ ! ${EUID} -eq 0 ]] ; then
+ ewarn "Some tests were disabled due to FEATURES=userpriv"
+ ewarn "To run all tests issue the following command as root:"
+ ewarn " # make -C ${S}/test"
+ emake -j1 -C test tcpprep
+ else
+ emake -j1 test || {
+ ewarn "Note that some tests require eth0 iface to be up."
+ die "self test failed - see ${S}/test/test.log"
+ }
+ fi
+}
diff --git a/net-analyzer/tcpreplay/tcpreplay-9999.ebuild b/net-analyzer/tcpreplay/tcpreplay-9999.ebuild
new file mode 100644
index 000000000000..3b1265cca030
--- /dev/null
+++ b/net-analyzer/tcpreplay/tcpreplay-9999.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic
+
+DESCRIPTION="Utilities for editing and replaying previously captured network traffic"
+HOMEPAGE="http://tcpreplay.appneta.com/ https://github.com/appneta/tcpreplay"
+if [[ ${PV} == *9999* ]] ; then
+ EGIT_REPO_URI="https://github.com/appneta/tcpreplay"
+ inherit git-r3
+else
+ SRC_URI="https://github.com/appneta/${PN}/releases/download/v${PV}/${P}.tar.xz"
+ KEYWORDS="~amd64 ~arm ~sparc ~x86"
+fi
+
+S="${WORKDIR}"/${P/_/-}
+
+LICENSE="BSD GPL-3"
+SLOT="0"
+IUSE="debug +tcpdump"
+
+BDEPEND="
+ >=sys-devel/autogen-5.18.4[libopts]
+"
+DEPEND="
+ dev-libs/libdnet
+ >=net-libs/libpcap-0.9
+ elibc_musl? ( sys-libs/fts-standalone )
+ tcpdump? ( net-analyzer/tcpdump )
+"
+RDEPEND="${DEPEND}"
+
+QA_CONFIG_IMPL_DECL_SKIP=(
+ pathfind # sun/solaris only command, bug 900040
+)
+
+DOCS=( docs/{CHANGELOG,CREDIT,HACKING,TODO} )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.3.0-enable-pcap_findalldevs.patch
+)
+
+src_prepare() {
+ default
+
+ sed -i \
+ -e 's|#include <dnet.h>|#include <dnet/eth.h>|g' \
+ src/common/sendpacket.c || die
+ sed -i \
+ -e 's|@\([A-Z_]*\)@|$(\1)|g' \
+ -e '/tcpliveplay_CFLAGS/s|$| $(LDNETINC)|g' \
+ -e '/tcpliveplay_LDADD/s|$| $(LDNETLIB)|g' \
+ src/Makefile.am || die
+
+ eautoreconf
+}
+
+src_configure() {
+ use elibc_musl && append-flags "-lfts"
+ # By default it uses static linking. Avoid that, bug #252940
+ local myeconfargs=(
+ $(use_enable debug)
+ $(use_with tcpdump tcpdump "${ESYSROOT}"/usr/sbin/tcpdump)
+ --enable-dynamic-link
+ --enable-local-libopts
+ --enable-shared
+ --with-libdnet
+ --with-pcapnav-config=no
+ --with-testnic2=lo
+ --with-testnic=lo
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_test() {
+ if [[ ! ${EUID} -eq 0 ]] ; then
+ ewarn "Some tests were disabled due to FEATURES=userpriv"
+ ewarn "To run all tests issue the following command as root:"
+ ewarn " # make -C ${S}/test"
+ emake -j1 -C test tcpprep
+ else
+ emake -j1 test || {
+ ewarn "Note that some tests require eth0 iface to be up."
+ die "self test failed - see ${S}/test/test.log"
+ }
+ fi
+}
diff --git a/net-analyzer/tcpslice/Manifest b/net-analyzer/tcpslice/Manifest
new file mode 100644
index 000000000000..09601ebd70b9
--- /dev/null
+++ b/net-analyzer/tcpslice/Manifest
@@ -0,0 +1,2 @@
+DIST tcpslice-1.8.tar.xz 109956 BLAKE2B 684a74738d3b9b61dc019219fad04669963fef6785d8e112592c887f02045daacf9a19832520fe0f6338875f59b44c4336ea89827c849d2e2ce0bd53e3a8134f SHA512 94a2b312a97c4a1e38c176d6c8bb06fa64bdaa96915d0d2530b193013354704830f00a72f20077765262a3a59d6085ae581585b31856f5c37175571c99a23207
+DIST tcpslice-1.8.tar.xz.sig 442 BLAKE2B 351104c3409cb531203157013582d8920189f574d7a127a45ede0a1e3c162fed907aab1f67bdf1cc80a7b639ac76537915e79481883c037982be8fa9c88a5d81 SHA512 69e7a54444b5ad4f6dd8b108637baac3fbb132c0cc5c2a8308157b9bde199e9b43d6ea8a1ff0a7a641f98ec9cb464fe8d92635d686e254e6b5f504eca7bd8370
diff --git a/net-analyzer/tcpslice/metadata.xml b/net-analyzer/tcpslice/metadata.xml
new file mode 100644
index 000000000000..b6405c108426
--- /dev/null
+++ b/net-analyzer/tcpslice/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:tcpdump:tcpslice</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/tcpslice/tcpslice-1.8.ebuild b/net-analyzer/tcpslice/tcpslice-1.8.ebuild
new file mode 100644
index 000000000000..09a3a01b633f
--- /dev/null
+++ b/net-analyzer/tcpslice/tcpslice-1.8.ebuild
@@ -0,0 +1,22 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/tcpdump.asc"
+inherit verify-sig
+
+DESCRIPTION="Extract and concatenate portions of pcap files"
+HOMEPAGE="https://www.tcpdump.org/ https://github.com/the-tcpdump-group/tcpslice"
+SRC_URI="
+ https://www.tcpdump.org/release/${P}.tar.xz
+ verify-sig? ( https://www.tcpdump.org/release/${P}.tar.xz.sig )
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc x86"
+
+RDEPEND="net-libs/libpcap"
+DEPEND="${RDEPEND}"
+BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-tcpdump-20240308 )"
diff --git a/net-analyzer/tcptraceroute/Manifest b/net-analyzer/tcptraceroute/Manifest
new file mode 100644
index 000000000000..c35620493f05
--- /dev/null
+++ b/net-analyzer/tcptraceroute/Manifest
@@ -0,0 +1 @@
+DIST tcptraceroute-1.5_beta7.tar.gz 119059 BLAKE2B e2d627c7fa96439e77be7d2fb5d57e0b92451367c95022876895fcbebdc0adf8c78b262e41ecb8a2696e8377e9862b45f2139cb8ca9d92a696d9a0dc319d4a64 SHA512 ad5588e62a56f1b5fa851b68280a88e66a900777fe4fd67587262245cd9da17b536b7dc972abe540fc124a93ac76abcabbc55bc32f9f8ee872d5df57b08f7222
diff --git a/net-analyzer/tcptraceroute/files/tcptraceroute-1.5_beta7-cross-compile-checks.patch b/net-analyzer/tcptraceroute/files/tcptraceroute-1.5_beta7-cross-compile-checks.patch
new file mode 100644
index 000000000000..469f57d4add7
--- /dev/null
+++ b/net-analyzer/tcptraceroute/files/tcptraceroute-1.5_beta7-cross-compile-checks.patch
@@ -0,0 +1,62 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -148,11 +148,9 @@
+
+ # Is this Solaris?
+ AC_MSG_CHECKING(for Solaris)
+-AC_RUN_IFELSE([AC_LANG_PROGRAM( [], [
+-#if defined (__SVR4) && defined (__sun)
+- exit(0);
+-#else
+- exit(-1);
++AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [], [
++#if ! ( defined (__SVR4) && defined (__sun) )
++#error "Not Solaris"
+ #endif
+ ])
+ ],[
+@@ -165,11 +163,9 @@
+
+ # Is this BSDI?
+ AC_MSG_CHECKING(for BSDI)
+-AC_RUN_IFELSE([AC_LANG_PROGRAM( [], [
+-#if defined (__bsdi__)
+- exit(0);
+-#else
+- exit(-1);
++AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [], [
++#if ! defined (__bsdi__)
++#error "Not BSDI"
+ #endif
+ ])
+ ],[
+@@ -182,11 +178,9 @@
+
+ # Is this NetBSD?
+ AC_MSG_CHECKING(for NetBSD)
+-AC_RUN_IFELSE([AC_LANG_PROGRAM( [], [
+-#if defined (__NetBSD__)
+- exit(0);
+-#else
+- exit(-1);
++AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [], [
++#if ! defined (__NetBSD__)
++#error "Not NetBSD";
+ #endif
+ ])
+ ],[
+@@ -199,11 +193,9 @@
+
+ # Is this MacOS X?
+ AC_MSG_CHECKING(for MacOS X)
+-AC_RUN_IFELSE([AC_LANG_PROGRAM( [], [
+-#if defined (__APPLE__) && defined (__MACH__)
+- exit(0);
+-#else
+- exit(-1);
++AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [], [
++#if ! ( defined (__APPLE__) && defined (__MACH__) )
++#error "Not Mac OS X"
+ #endif
+ ])
+ ],[
diff --git a/net-analyzer/tcptraceroute/metadata.xml b/net-analyzer/tcptraceroute/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/tcptraceroute/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/tcptraceroute/tcptraceroute-1.5_beta7-r3.ebuild b/net-analyzer/tcptraceroute/tcptraceroute-1.5_beta7-r3.ebuild
new file mode 100644
index 000000000000..071e672a2c52
--- /dev/null
+++ b/net-analyzer/tcptraceroute/tcptraceroute-1.5_beta7-r3.ebuild
@@ -0,0 +1,39 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+inherit autotools
+
+DESCRIPTION="tcptraceroute is a traceroute implementation using TCP packets"
+HOMEPAGE="https://github.com/mct/tcptraceroute"
+SRC_URI="https://github.com/mct/${PN}/archive/${P/_}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha amd64 ~arm ~hppa ~loong ppc ppc64 ~riscv ~sparc x86"
+
+DEPEND="
+ net-libs/libnet:1.1
+ net-libs/libpcap
+"
+RDEPEND="${DEPEND}"
+RESTRICT="test"
+PATCHES=(
+ "${FILESDIR}"/${P}-cross-compile-checks.patch
+)
+S=${WORKDIR}/${PN}-${P/_}
+
+src_prepare() {
+ default
+ eautoreconf
+}
+
+src_install() {
+ dosbin tcptraceroute
+ fowners root:wheel /usr/sbin/tcptraceroute
+ fperms 4710 /usr/sbin/tcptraceroute
+ doman tcptraceroute.1
+ dodoc examples.txt README ChangeLog
+ docinto html
+ dodoc tcptraceroute.1.html
+}
diff --git a/net-analyzer/tcptrack/Manifest b/net-analyzer/tcptrack/Manifest
new file mode 100644
index 000000000000..d72887a93fe3
--- /dev/null
+++ b/net-analyzer/tcptrack/Manifest
@@ -0,0 +1 @@
+DIST tcptrack-1.4.2.tar.gz 120569 BLAKE2B f6693225de09a9e9b1bf8984c328b54833a39ff87551119c0eca5197cb1a28de182205499e11c6e04fb63f04ad17188d46b2fb2ca6ff0a73a8ba404e5826db47 SHA512 a15e22b2d7cc144b2f3c662b6e289fe28b538188d234b262d801d4212027446534c9981ef9f2a48125657fa87a367c748a9d98e86b5f38f865a47dd24d478f89
diff --git a/net-analyzer/tcptrack/files/tcptrack-1.4.2-tinfo.patch b/net-analyzer/tcptrack/files/tcptrack-1.4.2-tinfo.patch
new file mode 100644
index 000000000000..fe23b48221ec
--- /dev/null
+++ b/net-analyzer/tcptrack/files/tcptrack-1.4.2-tinfo.patch
@@ -0,0 +1,11 @@
+--- a/configure.in
++++ b/configure.in
+@@ -26,7 +26,7 @@
+ AC_CHECK_LIB(socket,gethostbyname)
+ AC_CHECK_LIB(nsl,gethostbyname)
+ AC_CHECK_LIB(nsl,inet_addr)
+-AC_CHECK_LIB(ncurses, initscr)
++PKG_CHECK_MODULES(ncurses,ncurses,LIBS="$LIBS $ncurses_LIBS",AC_MSG_ERROR([ncurses is required]))
+ AC_CHECK_LIB(pcap, pcap_open_live)
+ AC_CHECK_LIB(pthread, pthread_create)
+ AC_CHECK_LIB(rt, nanosleep)
diff --git a/net-analyzer/tcptrack/metadata.xml b/net-analyzer/tcptrack/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/tcptrack/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/tcptrack/tcptrack-1.4.2-r1.ebuild b/net-analyzer/tcptrack/tcptrack-1.4.2-r1.ebuild
new file mode 100644
index 000000000000..414c3e59f269
--- /dev/null
+++ b/net-analyzer/tcptrack/tcptrack-1.4.2-r1.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools
+
+DESCRIPTION="Passive per-connection tcp bandwidth monitor"
+HOMEPAGE="http://www.rhythm.cx/~steve/devel/tcptrack/"
+SRC_URI="http://www.rhythm.cx/~steve/devel/tcptrack/release/${PV}/source/${P}.tar.gz"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc x86"
+
+BDEPEND="virtual/pkgconfig"
+DEPEND="
+ net-libs/libpcap
+ sys-libs/ncurses:=
+"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-tinfo.patch
+)
+
+src_prepare() {
+ default
+
+ sed -i src/Makefile.am -e 's| -Werror||g' || die
+ sed -i src/TCPHeader.h -e '1i#include <sys/types.h>' || die # for musl
+
+ mv configure.{in,ac} || die
+
+ eautoreconf
+}
diff --git a/net-analyzer/telegraf/Manifest b/net-analyzer/telegraf/Manifest
new file mode 100644
index 000000000000..4b68177b4987
--- /dev/null
+++ b/net-analyzer/telegraf/Manifest
@@ -0,0 +1,2 @@
+DIST telegraf-1.26.3-deps.tar.xz 598542112 BLAKE2B 654e2543b79927409a7f51a3b13ca5d917ef35559351ee48a581b0699ec4fe1eece9f8a3278243b02c79e17b08557d6f3d23584050cdaf461077c61f3435743c SHA512 8afdec12df3105678fad3272d80ab86438546a7de5190b01cbb0bffc3443deb6f4fd9540432c3b6e06dbfbc0739167daf15934248dea73bd59b5b2376fe4b5d2
+DIST telegraf-1.26.3.tar.gz 3893039 BLAKE2B 4285416c2e2a6e63dfbb3261cb5ef90c5fc0d2752e78913a2d8cd59a45b990e9735d65e9c762188325cf5696ac6fb619ff1d88f0b0017445fe3039d56c488b27 SHA512 c153d7eb19319d669328a94eade041ecaa6a30cc180915ca2b51b67c2d1d2e98572573c8970b78f815e74dec814ea9c02f4170aff1021fcb9e97c8974a0d0d6e
diff --git a/net-analyzer/telegraf/files/telegraf.confd b/net-analyzer/telegraf/files/telegraf.confd
new file mode 100644
index 000000000000..a643f8f3fd9a
--- /dev/null
+++ b/net-analyzer/telegraf/files/telegraf.confd
@@ -0,0 +1,2 @@
+# Add any extra options to pass to telegraf to this setting.
+#telegraf_opts=""
diff --git a/net-analyzer/telegraf/files/telegraf.rc b/net-analyzer/telegraf/files/telegraf.rc
new file mode 100644
index 000000000000..96e8a482f035
--- /dev/null
+++ b/net-analyzer/telegraf/files/telegraf.rc
@@ -0,0 +1,18 @@
+#!/sbin/openrc-run
+
+configdir="/etc/telegraf/telegraf.d"
+configfile="/etc/telegraf/telegraf.conf"
+error_log="${logfile:-/var/log/telegraf/telegraf.log}"
+command=/usr/bin/telegraf
+command_args="-config ${configfile} -config-directory ${configdir}
+ ${telegraf_opts}"
+command_background=yes
+command_user=telegraf:telegraf
+make_pidfile=yes
+pidfile=/var/run/telegraf.pid
+
+reload() {
+ ebegin "Reloading ${RC_SVCNAME}"
+ start-stop-daemon --signal HUP --pidfile "${PIDFILE}"
+ eend $?
+}
diff --git a/net-analyzer/telegraf/metadata.xml b/net-analyzer/telegraf/metadata.xml
new file mode 100644
index 000000000000..17492b5107c4
--- /dev/null
+++ b/net-analyzer/telegraf/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>williamh@gentoo.org</email>
+ <name>William Hubbs</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/telegraf/telegraf-1.26.3-r1.ebuild b/net-analyzer/telegraf/telegraf-1.26.3-r1.ebuild
new file mode 100644
index 000000000000..7cef4e8b9482
--- /dev/null
+++ b/net-analyzer/telegraf/telegraf-1.26.3-r1.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+inherit go-module systemd
+MY_PV="${PV/_rc/-rc.}"
+COMMIT=90f4eb29
+BRANCH=HEAD
+VERSION=v${MY_PV}
+
+DESCRIPTION="The plugin-driven server agent for collecting & reporting metrics"
+HOMEPAGE="https://github.com/influxdata/telegraf"
+
+SRC_URI="https://github.com/influxdata/telegraf/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"
+SRC_URI+=" https://dev.gentoo.org/~williamh/dist/${P}-deps.tar.xz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+RESTRICT+=" test"
+
+DEPEND="acct-group/telegraf
+ acct-user/telegraf"
+ RDEPEND="${DEPEND}"
+
+src_compile() {
+ unset LDFLAGS
+ emake -j1 \
+ COMMIT=${COMMIT} \
+ BRANCH=${BRANCH} \
+ VERSION=v${MY_PV}
+}
+
+src_install() {
+ dobin telegraf
+ insinto /etc/logrotate.d
+ doins etc/logrotate.d/telegraf
+ keepdir /etc/telegraf
+ keepdir /etc/telegraf/telegraf.d
+ systemd_dounit scripts/telegraf.service
+ newconfd "${FILESDIR}"/telegraf.confd telegraf
+ newinitd "${FILESDIR}"/telegraf.rc telegraf
+ dodoc -r *.md docs
+ keepdir /var/log/telegraf
+ fowners telegraf:telegraf /var/log/telegraf
+}
diff --git a/net-analyzer/termshark/Manifest b/net-analyzer/termshark/Manifest
new file mode 100644
index 000000000000..759fadd45ab8
--- /dev/null
+++ b/net-analyzer/termshark/Manifest
@@ -0,0 +1,2 @@
+DIST termshark-2.4.0-deps.tar.xz 64667348 BLAKE2B 2406756070dfcb813a7e24ce4eb0790a17b4ecf865440c801bbaa07d0d5eb8c2eed1a37111bd59e8104f450464aa702d07fb483d4d7b2f51fb3cd272994bf6f6 SHA512 78d964d8fe317b4a70ba18bbd6bcf02cb1208c02b6d95018dfb49561996c3d3e0ba898d483cd4814b4ee0f28f1f757dc937829af5f6ffb4c36f98c480e8e324b
+DIST termshark-2.4.0.tar.gz 427503 BLAKE2B df232595477d62480ba8ba994e635f01bc5a5ffd09378da37c01847d899e4938a92c8304e26ea425b7a72cfd71f918686a4683e1a04883c3c92e26104b9f84be SHA512 378bb67ff50a8dfa80f614540371f326627e73bdf63bceb183ed73afbbf9dead4e0597fb969ba49c4ee3d3de00ac7bb91166421c19c788df47ff8d9fcbc5b9fc
diff --git a/net-analyzer/termshark/files/2.4.0-column-titles.patch b/net-analyzer/termshark/files/2.4.0-column-titles.patch
new file mode 100644
index 000000000000..cbd76a6926b1
--- /dev/null
+++ b/net-analyzer/termshark/files/2.4.0-column-titles.patch
@@ -0,0 +1,50 @@
+https://github.com/gcla/termshark/pull/170
+
+From: Gilbert Ramirez <gram@alumni.rice.edu>
+Date: Sun, 19 Oct 2025 10:55:04 -0500
+Subject: [PATCH] Issue 169: With Wireshark 4.6.0, the column-title glossary changed
+
+A third column is now possible, so the column-format initializer
+needs to handle it. Also, since the output is a simple
+tab-separated-value format, we don't need regular expressions to
+parse it. We only need to split on tab characters.
+--- a/pkg/shark/columnformat.go
++++ b/pkg/shark/columnformat.go
+@@ -8,7 +8,6 @@ import (
+ "bufio"
+ "fmt"
+ "os/exec"
+- "regexp"
+ "strconv"
+ "strings"
+ "sync"
+@@ -239,8 +238,6 @@ func (w *ColumnsFromTshark) InitFromCache() error {
+ }
+
+ func (w *ColumnsFromTshark) InitNoCache() error {
+- re := regexp.MustCompile("\\s+")
+-
+ cmd := exec.Command(termshark.TSharkBin(), []string{"-G", "column-formats"}...)
+
+ out, err := cmd.StdoutPipe()
+@@ -254,11 +251,17 @@ func (w *ColumnsFromTshark) InitNoCache() error {
+
+ scanner := bufio.NewScanner(out)
+ for scanner.Scan() {
+- fields := re.Split(scanner.Text(), 2)
+- if len(fields) == 2 && strings.HasPrefix(fields[0], "%") {
++ fields := strings.Split(scanner.Text(), "\t")
++
++ // Column 0: The format
++ // Column 1: The title of the column
++ // Column 2: The display filter field (optional)
++ if (len(fields) == 2 || len(fields) == 3) && strings.HasPrefix(fields[0], "%") {
++ // Remove trailing whitespace, if any
++ columnTitle := strings.TrimRight(fields[1], " ")
+ w.fields = append(w.fields, PsmlColumnSpec{
+ Field: PsmlField{Token: fields[0]},
+- Name: fields[1],
++ Name: columnTitle,
+ })
+ }
+ }
diff --git a/net-analyzer/termshark/files/2.4.0-use-sort.Strings.patch b/net-analyzer/termshark/files/2.4.0-use-sort.Strings.patch
new file mode 100644
index 000000000000..a184c99032c0
--- /dev/null
+++ b/net-analyzer/termshark/files/2.4.0-use-sort.Strings.patch
@@ -0,0 +1,18 @@
+https://github.com/gcla/termshark/pull/155
+
+From: guoguangwu <guoguangwu@magic-shield.com>
+Date: Wed, 5 Jul 2023 21:31:15 +0800
+Subject: [PATCH] chore: use sort.Strings(...) instead of sort.Sort(sort.StringSlice(...))
+
+Signed-off-by: guoguangwu <guoguangwu@magic-shield.com>
+--- a/utils.go
++++ b/utils.go
+@@ -693,7 +693,7 @@ func KeyValueErrorString(err gowid.KeyValueError) string {
+ for k := range err.KeyVals {
+ ks = append(ks, k)
+ }
+- sort.Sort(sort.StringSlice(ks))
++ sort.Strings(ks)
+ for _, k := range ks {
+ kvs = append(kvs, fmt.Sprintf("%v: %v", k, err.KeyVals[k]))
+ }
diff --git a/net-analyzer/termshark/metadata.xml b/net-analyzer/termshark/metadata.xml
new file mode 100644
index 000000000000..245e3a718967
--- /dev/null
+++ b/net-analyzer/termshark/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>mario.haustein@hrz.tu-chemnitz.de</email>
+ <name>Mario Haustein</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>sam@gentoo.org</email>
+ <name>Sam James</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/termshark/termshark-2.4.0.ebuild b/net-analyzer/termshark/termshark-2.4.0.ebuild
new file mode 100644
index 000000000000..3389b06f4f49
--- /dev/null
+++ b/net-analyzer/termshark/termshark-2.4.0.ebuild
@@ -0,0 +1,42 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit go-module
+
+DESCRIPTION="A terminal UI for tshark, inspired by Wireshark"
+HOMEPAGE="https://termshark.io/"
+SRC_URI="https://github.com/gcla/termshark/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+SRC_URI+=" https://dev.gentoo.org/~sam/distfiles/${CATEGORY}/${PN}/${P}-deps.tar.xz"
+
+LICENSE="Apache-2.0 BSD-2 BSD MIT MPL-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+# termshark doesn't link against wireshark. It reads data via IPC during
+# runtime.
+RDEPEND="
+ net-analyzer/wireshark[dumpcap,pcap,tshark]
+"
+
+PATCHES=(
+ "${FILESDIR}/2.4.0-column-titles.patch"
+ "${FILESDIR}/2.4.0-use-sort.Strings.patch"
+)
+
+src_compile() {
+ ego build ./...
+}
+
+src_test() {
+ ego test ./...
+}
+
+src_install() {
+ GOBIN="${S}/bin" ego install ./...
+
+ dobin bin/${PN}
+ dodoc README.md
+ dodoc docs/*
+}
diff --git a/net-analyzer/testssl/Manifest b/net-analyzer/testssl/Manifest
new file mode 100644
index 000000000000..5a26ce4b604d
--- /dev/null
+++ b/net-analyzer/testssl/Manifest
@@ -0,0 +1,5 @@
+DIST testssl-3.0.10.tar.gz 9478153 BLAKE2B 4e026aa25733e8e5a9ba7de7b5c28e8c9916a48582c7ca677b32a00ca21dc3f42825ee20efafd47d52d02dbf006d68c23b8272a4189e36f98e3e5664b07911c0 SHA512 900d8fac3b0b4c92e53805e9e137cdc143a5ec335ead38963cbce4aa538123e39ee5fd45d3ca3fc6316011f3c9fa9f39c0ceb2908f3ca0137663c05c4f42d040
+DIST testssl.sh-3.0.10.tar.gz 9478153 BLAKE2B 4e026aa25733e8e5a9ba7de7b5c28e8c9916a48582c7ca677b32a00ca21dc3f42825ee20efafd47d52d02dbf006d68c23b8272a4189e36f98e3e5664b07911c0 SHA512 900d8fac3b0b4c92e53805e9e137cdc143a5ec335ead38963cbce4aa538123e39ee5fd45d3ca3fc6316011f3c9fa9f39c0ceb2908f3ca0137663c05c4f42d040
+DIST testssl.sh-3.0.10.tar.gz.asc 833 BLAKE2B 75bfa10f0512c1c7839c168fb8ec24b707023d1be2b0f7a462c7f958f8fc52cee3f29df81ecf6c6aec3be94ed1deb6760a1ce1ef9e52f2633fade9408a85e9d0 SHA512 027d8329e6b3b9368b9d541a06a15ae89d4ed0cb5f925b4e7c57ca5ebabd5643d01ff5e184169f9132a4a913218ffed83999e4b37eccbe4d55b4574b28d068e4
+DIST testssl.sh-3.2.3.tar.gz 6996856 BLAKE2B ebf8d194c6220fe0273d9f6138fb1b2a3b2194a6eb3f47e548d4bb1cd7b3fe441f038748e8e6547c3b8e19dab1514fdde7f19441f6db4fb6bfe1ff9c8d815d34 SHA512 9b7889fbcf0a870333a5ff24e9fc10d159289f4b27ffcc427e924bc0354b8087e995c451a16e4eb1d0693a476075da433ffa3f9a1e3f1a5d603e506754db0898
+DIST testssl.sh-3.2.3.tar.gz.asc 508 BLAKE2B 61027fc7103186aa0a72ef50f8a7d467c87ad46345654ae45b3bebeea2eb7e9b1d1bb340b069a47a5c4d4f316695451c77b84dc80a4c941441700e3e9537550e SHA512 e3e02f1dea556a4c50fcdc65bafa3f7adb033cb9cbe934d9308532afd0fffd122de84eb41421dc48ae4e534c7ea5dead3e5d370a26adfc487702b6fdf5c07502
diff --git a/net-analyzer/testssl/metadata.xml b/net-analyzer/testssl/metadata.xml
new file mode 100644
index 000000000000..e80a54047fe7
--- /dev/null
+++ b/net-analyzer/testssl/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>cfuga@cfuga.mx</email>
+ <name>Cristian Othón Martínez Vera</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <use>
+ <flag name="bundled-openssl">Install precompiled versions of OpenSSL for greater testing coverage</flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/testssl/testssl-3.0.10-r1.ebuild b/net-analyzer/testssl/testssl-3.0.10-r1.ebuild
new file mode 100644
index 000000000000..f3ce39e7c7e9
--- /dev/null
+++ b/net-analyzer/testssl/testssl-3.0.10-r1.ebuild
@@ -0,0 +1,88 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/testssl.asc"
+inherit verify-sig
+
+MY_PN="${PN}.sh"
+MY_PV="${PV/_p/-}"
+
+DESCRIPTION="Tool to check TLS/SSL cipher support"
+HOMEPAGE="https://testssl.sh/"
+SRC_URI="
+ https://testssl.sh/${MY_PN}-${MY_PV}.tar.gz
+ verify-sig? ( https://testssl.sh/${MY_PN}-${MY_PV}.tar.gz.asc )
+"
+S=${WORKDIR}/${MY_PN}-${MY_PV}
+
+LICENSE="GPL-2 bundled-openssl? ( openssl )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~ppc64 ~x86"
+IUSE="bundled-openssl kerberos"
+
+RDEPEND="
+ app-alternatives/awk
+ >=app-shells/bash-3.2[net]
+ sys-apps/coreutils
+ sys-apps/grep
+ sys-apps/util-linux
+ sys-libs/ncurses
+ sys-process/procps
+ || (
+ net-dns/bind
+ net-libs/ldns
+ )
+ bundled-openssl? (
+ kerberos? (
+ virtual/zlib:=
+ virtual/krb5
+ )
+ )
+ !bundled-openssl? ( dev-libs/openssl:0 )
+"
+BDEPEND="
+ verify-sig? ( >=sec-keys/openpgp-keys-testssl-20260210 )
+"
+
+QA_PREBUILT="opt/${PN}/*"
+
+pkg_setup() {
+ if use amd64; then
+ if use kerberos; then
+ BUNDLED_OPENSSL="openssl.Linux.x86_64.krb"
+ else
+ BUNDLED_OPENSSL="openssl.Linux.x86_64"
+ fi
+ elif use x86; then
+ BUNDLED_OPENSSL="openssl.Linux.i686"
+ fi
+}
+
+src_prepare() {
+ default
+ sed -i ${PN}.sh \
+ -e 's|TESTSSL_INSTALL_DIR="${TESTSSL_INSTALL_DIR:-""}"|TESTSSL_INSTALL_DIR="/"|' \
+ -e 's|$TESTSSL_INSTALL_DIR/etc/|&testssl/|g' || die
+
+ if use bundled-openssl; then
+ sed -i ${PN}.sh \
+ -e "/find_openssl_binary()/a OPENSSL=\"/opt/${PN}/${BUNDLED_OPENSSL}\"" || die
+ fi
+}
+
+src_install() {
+ dodoc CHANGELOG.md CREDITS.md Readme.md
+ dodoc openssl-iana.mapping.html
+
+ dobin ${PN}.sh
+
+ insinto /etc/${PN}
+ doins etc/*
+
+ if use bundled-openssl; then
+ exeinto /opt/${PN}
+ use amd64 && doexe bin/${BUNDLED_OPENSSL}
+ fi
+}
diff --git a/net-analyzer/testssl/testssl-3.0.10.ebuild b/net-analyzer/testssl/testssl-3.0.10.ebuild
new file mode 100644
index 000000000000..853c00a67497
--- /dev/null
+++ b/net-analyzer/testssl/testssl-3.0.10.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MY_PN="${PN}.sh"
+MY_PV="${PV/_p/-}"
+
+DESCRIPTION="Tool to check TLS/SSL cipher support"
+HOMEPAGE="https://testssl.sh/"
+SRC_URI="https://github.com/${PN}/${MY_PN}/archive/v${MY_PV}.tar.gz -> ${P}.tar.gz"
+S=${WORKDIR}/${MY_PN}-${MY_PV}
+
+LICENSE="GPL-2 bundled-openssl? ( openssl )"
+SLOT="0"
+KEYWORDS="amd64 arm64 ppc64 x86"
+IUSE="bundled-openssl kerberos"
+
+RDEPEND="
+ app-alternatives/awk
+ >=app-shells/bash-3.2[net]
+ sys-apps/coreutils
+ sys-apps/grep
+ sys-apps/util-linux
+ sys-libs/ncurses
+ sys-process/procps
+ || (
+ net-dns/bind
+ net-libs/ldns
+ )
+ bundled-openssl? (
+ kerberos? (
+ virtual/zlib:=
+ virtual/krb5
+ )
+ )
+ !bundled-openssl? ( dev-libs/openssl:0 )
+"
+
+QA_PREBUILT="opt/${PN}/*"
+
+pkg_setup() {
+ if use amd64; then
+ if use kerberos; then
+ BUNDLED_OPENSSL="openssl.Linux.x86_64.krb"
+ else
+ BUNDLED_OPENSSL="openssl.Linux.x86_64"
+ fi
+ elif use x86; then
+ BUNDLED_OPENSSL="openssl.Linux.i686"
+ fi
+}
+
+src_prepare() {
+ default
+ sed -i ${PN}.sh \
+ -e 's|TESTSSL_INSTALL_DIR="${TESTSSL_INSTALL_DIR:-""}"|TESTSSL_INSTALL_DIR="/"|' \
+ -e 's|$TESTSSL_INSTALL_DIR/etc/|&testssl/|g' || die
+
+ if use bundled-openssl; then
+ sed -i ${PN}.sh \
+ -e "/find_openssl_binary()/a OPENSSL=\"/opt/${PN}/${BUNDLED_OPENSSL}\"" || die
+ fi
+}
+
+src_install() {
+ dodoc CHANGELOG.md CREDITS.md Readme.md
+ dodoc openssl-iana.mapping.html
+
+ dobin ${PN}.sh
+
+ insinto /etc/${PN}
+ doins etc/*
+
+ if use bundled-openssl; then
+ exeinto /opt/${PN}
+ use amd64 && doexe bin/${BUNDLED_OPENSSL}
+ fi
+}
diff --git a/net-analyzer/testssl/testssl-3.2.3.ebuild b/net-analyzer/testssl/testssl-3.2.3.ebuild
new file mode 100644
index 000000000000..9df35b2a0d59
--- /dev/null
+++ b/net-analyzer/testssl/testssl-3.2.3.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/testssl.asc"
+inherit optfeature verify-sig
+
+MY_PN="${PN}.sh"
+MY_PV="${PV/_p/-}"
+
+DESCRIPTION="Tool to check TLS/SSL cipher support"
+HOMEPAGE="https://testssl.sh/"
+SRC_URI="
+ https://testssl.sh/${MY_PN}-${MY_PV}.tar.gz
+ verify-sig? ( https://testssl.sh/${MY_PN}-${MY_PV}.tar.gz.asc )
+"
+S=${WORKDIR}/${MY_PN}-${MY_PV}
+
+LICENSE="GPL-2 bundled-openssl? ( openssl )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86"
+IUSE="bundled-openssl"
+
+RDEPEND="
+ app-alternatives/awk
+ >=app-shells/bash-3.2[net]
+ sys-apps/coreutils
+ sys-apps/grep
+ sys-apps/util-linux
+ sys-libs/ncurses
+ sys-process/procps
+ || (
+ net-dns/bind
+ net-libs/ldns
+ )
+ !bundled-openssl? ( >=dev-libs/openssl-1.1.1 )
+"
+BDEPEND="
+ verify-sig? ( >=sec-keys/openpgp-keys-testssl-20260210 )
+"
+
+QA_PREBUILT="opt/${PN}/*"
+
+pkg_setup() {
+ BUNDLED_OPENSSL="openssl.Linux.x86_64"
+}
+
+src_prepare() {
+ default
+ sed -i ${PN}.sh \
+ -e 's|TESTSSL_INSTALL_DIR="${TESTSSL_INSTALL_DIR:-""}"|TESTSSL_INSTALL_DIR="/"|' \
+ -e 's|$TESTSSL_INSTALL_DIR/etc/|&testssl/|g' || die
+
+ if use bundled-openssl; then
+ sed -i ${PN}.sh \
+ -e "/find_openssl_binary()/a OPENSSL=\"/opt/${PN}/${BUNDLED_OPENSSL}\"" || die
+ fi
+}
+
+src_install() {
+ dodoc CHANGELOG.md CREDITS.md Readme.md
+ dodoc openssl-iana.mapping.html
+
+ dobin ${PN}.sh
+
+ insinto /etc/${PN}
+ doins etc/*
+
+ if use bundled-openssl; then
+ exeinto /opt/${PN}
+ doexe bin/${BUNDLED_OPENSSL}
+ fi
+}
+
+pkg_postinst() {
+ optfeature "Check for STARTTLS injection issues" net-misc/socat
+ optfeature "Faster conversions from hexdump to binary" dev-util/xxd app-editors/vim-core
+}
diff --git a/net-analyzer/thc-ipv6/Manifest b/net-analyzer/thc-ipv6/Manifest
new file mode 100644
index 000000000000..113b3be56137
--- /dev/null
+++ b/net-analyzer/thc-ipv6/Manifest
@@ -0,0 +1,2 @@
+DIST thc-ipv6-3.8.tar.gz 705821 BLAKE2B a2b57e13a47aacf1205b87c6f30cbea2468f47aad7232b92190995bf7ffbb64904d4d0cd187657c12584cd41e66cb0e4db3b6d826d41287aa020398de8ca7f91 SHA512 e3d8c80e1383e4825a3db717192446754d01e8e3098deb3075df0d60f79f014cefbd62a16c04379539e42c74513aa0f8bb97fc59221e100563aa7c6398a8b893
+DIST thc-ipv6-3.8_p20250914.gh.tar.gz 706436 BLAKE2B ca30894aea43ae76f146169e51c0985bfec134fb747f2d79525688ebd0e77e64490ef7fd4190464bf6494ed2a884c0bca419ac144dcca2fb54fc884546d591cc SHA512 0420b69361dd8461d40e28a87a69deb21ba61ca53e9f9402efd3f4378ce7aa32919c5430ca6d4e3cacf6cc82b1648826cb4e022d9a362c662a73d9c0c8c86050
diff --git a/net-analyzer/thc-ipv6/files/thc-ipv6-3.8_p20250914-fix_parallel.patch b/net-analyzer/thc-ipv6/files/thc-ipv6-3.8_p20250914-fix_parallel.patch
new file mode 100644
index 000000000000..5fa21b0bb769
--- /dev/null
+++ b/net-analyzer/thc-ipv6/files/thc-ipv6-3.8_p20250914-fix_parallel.patch
@@ -0,0 +1,14 @@
+PR merged https://github.com/vanhauser-thc/thc-ipv6/pull/56.patch
+See https://bugs.gentoo.org/972896
+Apply generic rules to PROGRAMS only, ensuring the library is built first w/ implicit rules and avoiding duplicate rules for EXTRA.
+--- a/Makefile
++++ b/Makefile
+@@ -36,7 +36,7 @@ fragrouter6: fragrouter6.c $(LIBS)
+ connsplit6: connsplit6.c $(LIBS)
+ -$(CC) $(CFLAGS) $(CPPFLAGS) -o $@ $^ $(LDFLAGS) -lnetfilter_queue || /bin/echo -e "\nCompilation of connsplit6 failed, you have to install libnetfilter-queue-dev for this!\n"
+
+-%: %.c $(LIBS)
++$(PROGRAMS): %: %.c $(LIBS)
+ $(CC) $(CFLAGS) $(CPPFLAGS) $(STATIC) -o $@ $^ $(LDFLAGS)
+
+ strip: all
diff --git a/net-analyzer/thc-ipv6/metadata.xml b/net-analyzer/thc-ipv6/metadata.xml
new file mode 100644
index 000000000000..5f33304011d5
--- /dev/null
+++ b/net-analyzer/thc-ipv6/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/thc-ipv6/thc-ipv6-3.8.ebuild b/net-analyzer/thc-ipv6/thc-ipv6-3.8.ebuild
new file mode 100644
index 000000000000..53f532b0d072
--- /dev/null
+++ b/net-analyzer/thc-ipv6/thc-ipv6-3.8.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Complete tool set to attack the inherent protocol weaknesses of IPV6 and ICMP6"
+HOMEPAGE="https://github.com/vanhauser-thc/thc-ipv6"
+
+if [[ ${PV} == *9999 ]]; then
+ EGIT_REPO_URI="https://github.com/vanhauser-thc/thc-ipv6.git"
+ EGIT_BRANCH=master
+ inherit git-r3
+else
+ SRC_URI="https://github.com/vanhauser-thc/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="AGPL-3 openssl"
+SLOT="0"
+IUSE="ssl"
+
+DEPEND="
+ net-libs/libnetfilter_queue
+ net-libs/libpcap
+ ssl? ( dev-libs/openssl:0= )
+"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ sed -e '/^CFLAGS+=-g/s,CFLAGS+=,CFLAGS?=,' \
+ -i Makefile || die
+
+ if ! use ssl; then
+ sed -e '/^HAVE_SSL/s:^:#:' \
+ -i Makefile || die
+ fi
+
+ default
+}
+
+src_compile() {
+ emake CC="$(tc-getCC)"
+}
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="/usr" STRIP="true" install
+ dodoc CHANGES HOWTO-INJECT README
+}
diff --git a/net-analyzer/thc-ipv6/thc-ipv6-3.8_p20250914.ebuild b/net-analyzer/thc-ipv6/thc-ipv6-3.8_p20250914.ebuild
new file mode 100644
index 000000000000..bdf8ce8c98b2
--- /dev/null
+++ b/net-analyzer/thc-ipv6/thc-ipv6-3.8_p20250914.ebuild
@@ -0,0 +1,57 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Complete tool set to attack the inherent protocol weaknesses of IPV6 and ICMP6"
+HOMEPAGE="https://github.com/vanhauser-thc/thc-ipv6"
+
+if [[ ${PV} == *9999 ]]; then
+ EGIT_REPO_URI="https://github.com/vanhauser-thc/thc-ipv6.git"
+ EGIT_BRANCH=master
+ inherit git-r3
+else
+ HASH="7f3589fab681966d0b0c76ab9709ff9cafbd009a"
+ S="${WORKDIR}/${PN}-${HASH}"
+ SRC_URI="https://github.com/vanhauser-thc/thc-ipv6/archive/${HASH}.tar.gz -> ${P}.gh.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="AGPL-3 openssl"
+SLOT="0"
+IUSE="ssl"
+
+DEPEND="
+ net-libs/libnetfilter_queue
+ net-libs/libpcap
+ ssl? ( dev-libs/openssl:0= )
+"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ # merged
+ "${FILESDIR}"/${P}-fix_parallel.patch
+)
+
+src_prepare() {
+ sed -e '/^CFLAGS+=-g/s,CFLAGS+=,CFLAGS?=,' \
+ -i Makefile || die
+
+ if ! use ssl; then
+ sed -e '/^HAVE_SSL/s:^:#:' \
+ -i Makefile || die
+ fi
+
+ default
+}
+
+src_compile() {
+ emake CC="$(tc-getCC)"
+}
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="${EPREFIX}/usr" STRIP="true" install
+ dodoc CHANGES HOWTO-INJECT README.md
+}
diff --git a/net-analyzer/thc-ipv6/thc-ipv6-9999.ebuild b/net-analyzer/thc-ipv6/thc-ipv6-9999.ebuild
new file mode 100644
index 000000000000..d1e5d1c4b80d
--- /dev/null
+++ b/net-analyzer/thc-ipv6/thc-ipv6-9999.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Complete tool set to attack the inherent protocol weaknesses of IPV6 and ICMP6"
+HOMEPAGE="https://github.com/vanhauser-thc/thc-ipv6"
+
+if [[ ${PV} == *9999 ]]; then
+ EGIT_REPO_URI="https://github.com/vanhauser-thc/thc-ipv6.git"
+ EGIT_BRANCH=master
+ inherit git-r3
+else
+ SRC_URI="https://github.com/vanhauser-thc/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="AGPL-3 openssl"
+SLOT="0"
+IUSE="ssl"
+
+DEPEND="
+ net-libs/libnetfilter_queue
+ net-libs/libpcap
+ ssl? ( dev-libs/openssl:0= )
+"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+ sed -e '/^CFLAGS+=-g/s,CFLAGS+=,CFLAGS?=,' \
+ -i Makefile || die
+
+ if ! use ssl; then
+ sed -e '/^HAVE_SSL/s:^:#:' \
+ -i Makefile || die
+ fi
+
+ default
+}
+
+src_compile() {
+ emake CC="$(tc-getCC)"
+}
+
+src_install() {
+ emake DESTDIR="${D}" PREFIX="/usr" STRIP="true" install
+ dodoc CHANGES HOWTO-INJECT README.md
+}
diff --git a/net-analyzer/thrulay/Manifest b/net-analyzer/thrulay/Manifest
new file mode 100644
index 000000000000..39970ea4d158
--- /dev/null
+++ b/net-analyzer/thrulay/Manifest
@@ -0,0 +1 @@
+DIST thrulay-0.9.tar.gz 370312 BLAKE2B fdcbc0785ccc61bb85454d878f46bef97c346dd8c8a54591c993940615a8047b24fad00ffca5c3db6d7c1303b42c67f45b828e899564d7c920cc83924e3a18c2 SHA512 9655ef37f6ef3ba51a2fadacf08978fb1c284af6b571dbf76c44e5582bf705bec08170b3b2cc69512b8327485dfd3f758ed2addf510a075558aea70eb4779a6f
diff --git a/net-analyzer/thrulay/files/thrulayd-conf.d b/net-analyzer/thrulay/files/thrulayd-conf.d
new file mode 100644
index 000000000000..a1350488a714
--- /dev/null
+++ b/net-analyzer/thrulay/files/thrulayd-conf.d
@@ -0,0 +1,8 @@
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+# The default window size is 4194304 bytes
+#THRULAYD_WINDOW="4194304"
+
+# By default, thrulayd will listen on 5003/tcp
+#THRULAYD_PORT="5003"
diff --git a/net-analyzer/thrulay/files/thrulayd-init.d b/net-analyzer/thrulay/files/thrulayd-init.d
new file mode 100644
index 000000000000..8fa9f4bc6ba5
--- /dev/null
+++ b/net-analyzer/thrulay/files/thrulayd-init.d
@@ -0,0 +1,21 @@
+#!/sbin/openrc-run
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+ use net
+}
+
+start() {
+ [ -n "${THRULAYD_WINDOW}" ] && THRULAYD_OPTS="${THRULAYD_OPTS} -w${THRULAYD_WINDOW}"
+ [ -n "${THRULAYD_PORT}" ] && THRULAYD_OPTS="${THRULAYD_OPTS} -p${THRULAYD_PORT}"
+ ebegin "Starting thrulayd"
+ start-stop-daemon --start --quiet --exec /usr/sbin/thrulayd -- ${THRULAYD_OPTS}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping thrulayd"
+ start-stop-daemon --stop --quiet --exec /usr/sbin/thrulayd
+ eend $?
+}
diff --git a/net-analyzer/thrulay/metadata.xml b/net-analyzer/thrulay/metadata.xml
new file mode 100644
index 000000000000..5d08ae950a93
--- /dev/null
+++ b/net-analyzer/thrulay/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>robbat2@gentoo.org</email>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/thrulay/thrulay-0.9-r1.ebuild b/net-analyzer/thrulay/thrulay-0.9-r1.ebuild
new file mode 100644
index 000000000000..c5535ff76b1e
--- /dev/null
+++ b/net-analyzer/thrulay/thrulay-0.9-r1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit autotools
+
+DESCRIPTION="Measure the capacity of a network by sending a bulk TCP stream over it"
+HOMEPAGE="http://www.internet2.edu/~shalunov/thrulay/"
+SRC_URI="
+ http://www.internet2.edu/~shalunov/thrulay/${P}.tar.gz
+ https://downloads.sourceforge.net/${PN}/${P}.tar.gz"
+
+# init.d is GPL-2
+LICENSE="BSD GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc x86"
+
+src_prepare() {
+ default
+
+ echo 'thrulay thrulayd: libthrulay.la' >> src/Makefile.am || die
+ eautoreconf
+}
+
+src_configure() {
+ econf --disable-static
+}
+
+src_install() {
+ default
+
+ dodoc doc/thrulay-protocol.txt
+ doman doc/thrulay*.[1-8]
+
+ newinitd "${FILESDIR}"/thrulayd-init.d thrulayd
+ newconfd "${FILESDIR}"/thrulayd-conf.d thrulayd
+
+ # no static archives
+ find "${D}" -name '*.la' -delete || die
+}
diff --git a/net-analyzer/tleds/Manifest b/net-analyzer/tleds/Manifest
new file mode 100644
index 000000000000..875d0ad7c6d7
--- /dev/null
+++ b/net-analyzer/tleds/Manifest
@@ -0,0 +1,2 @@
+DIST tleds-1.05beta10.tgz 28640 BLAKE2B d51104cc4f6341e383582edbb65bd4e7057807fbca33fe9c6d6daca519f804c6e5170c547b6a42e629d000eb3243c0c64e6ab0517293f12b34744b7eca8b19b0 SHA512 661ac8749c85ce20ffc2851a62ee7691e6cddf3700f4a388465bbdf2faa117d8bd6e316541bc5e2fa81d18f74d47bdd78010b8490124f39b6a1c085c4d345d3a
+DIST tleds-1.05beta11.patch.bz2 5540 BLAKE2B 91da2fbcd339be7d313645f63b3daf9404a82a9678e1f562aae357ed16c6d3d47d8d38f021cf367b0038987e8a5d667cf650c4ca5e2184cdb1f4f1c1f67b1b45 SHA512 8c6e5b28e055fd546af97244230560cb22d7def65a8c16e0257d9f41b789394f744a056a95bf7d9f6fb9dcf8ab0bcacfc8fce7c91d0e8be798ae2af4817ce1a4
diff --git a/net-analyzer/tleds/files/tleds-1.05_beta11-gentoo.patch b/net-analyzer/tleds/files/tleds-1.05_beta11-gentoo.patch
new file mode 100644
index 000000000000..96e6e3d21d45
--- /dev/null
+++ b/net-analyzer/tleds/files/tleds-1.05_beta11-gentoo.patch
@@ -0,0 +1,53 @@
+--- a/Changes
++++ b/Changes
+@@ -1,4 +1,7 @@
+ VERSION DATE WHAT WAS FIXED OR WHAT WAS/IS NEW
++
++ 2 Jul 2002 2.4/2.5 patch
++
+ 1.05b11 7 Mar 2002 Support for multiple interfaces
+
+ 1.05b7 2 Apr 1998 Keeps LEDs deattached also after VT is reset if run
+--- a/tleds.c
++++ b/tleds.c
+@@ -43,16 +43,6 @@
+ #define VERSION "1.05beta11"
+ #define MYNAME "tleds"
+
+-/* Supported kernel version */
+-/* If you want to compile for Linux 2.1.x add -DKERNEL2_1 to gcc options. */
+-/* Currently kernel v2.1.97 is "tested", older v2.1.x kernels may not work */
+-#ifdef KERNEL2_1
+-#undef KERNEL2_1
+-#define KERNEL2_0 0
+-#else
+-#define KERNEL2_0 1
+-#endif
+-
+ /* If you don't want X stuff. */
+ #ifdef NO_X_SUPPORT
+ #define REMOVE_X_CODE 1
+--- a/Makefile
++++ b/Makefile
+@@ -9,18 +9,18 @@
+
+ # For 2.1.x kernels, you have to include -DKERNEL2_1 option for gcc
+
+-GCCOPTS = -D_GNU_SOURCE -O3 -Wall
++GCCOPTS = -D_GNU_SOURCE $(CFLAGS) $(LDFLAGS) -Wall
+
+ # The first one is if you want to include X code
+ xtleds: tleds.c Makefile
+ # Making xtleds
+- gcc $(GCCOPTS) -o xtleds tleds.c -I /usr/X11R6/include/ -L /usr/X11R6/lib/ -lX11
++ $(CC) $(GCCOPTS) -o xtleds tleds.c -I /usr/include/ -L /usr/lib/ -lX11
+
+ # This second one works only when started in VT. Check the REMOVE_X_CODE
+ # in the source code.
+ tleds: tleds.c Makefile
+ # Making tleds
+- gcc -DNO_X_SUPPORT $(GCCOPTS) -o tleds tleds.c
++ $(CC) -DNO_X_SUPPORT $(GCCOPTS) -o tleds tleds.c
+
+ help:
+ # make help - this.
diff --git a/net-analyzer/tleds/files/tleds.conf.d b/net-analyzer/tleds/files/tleds.conf.d
new file mode 100644
index 000000000000..cfca606342c9
--- /dev/null
+++ b/net-analyzer/tleds/files/tleds.conf.d
@@ -0,0 +1,6 @@
+# Copyright 2003-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+IFACE="eth0"
+DELAY=50
+EXTRA_OPTS=""
diff --git a/net-analyzer/tleds/files/tleds.init.d b/net-analyzer/tleds/files/tleds.init.d
new file mode 100644
index 000000000000..9815c3b8a621
--- /dev/null
+++ b/net-analyzer/tleds/files/tleds.init.d
@@ -0,0 +1,21 @@
+#!/sbin/openrc-run
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+
+depend() {
+ need net
+}
+
+start() {
+ ebegin "Starting tleds"
+ /usr/sbin/tleds -d ${DELAY} ${IFACE} ${EXTRA_OPTS} > /dev/null
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping tleds"
+ /usr/sbin/tleds -k > /dev/null
+ eend $?
+}
+
diff --git a/net-analyzer/tleds/metadata.xml b/net-analyzer/tleds/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/tleds/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/tleds/tleds-1.05_beta11-r2.ebuild b/net-analyzer/tleds/tleds-1.05_beta11-r2.ebuild
new file mode 100644
index 000000000000..50d2d48db744
--- /dev/null
+++ b/net-analyzer/tleds/tleds-1.05_beta11-r2.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+MY_P="${P/_/}"
+DESCRIPTION="Blinks keyboard LEDs indicating outgoing and incoming network packets"
+HOMEPAGE="http://www.hut.fi/~jlohikos/tleds_orig.html"
+SRC_URI="
+ http://www.hut.fi/~jlohikos/tleds/public/${MY_P/11/10}.tgz
+ http://www.hut.fi/~jlohikos/tleds/public/${MY_P}.patch.bz2
+"
+S="${WORKDIR}/${MY_P/eta11/}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ~ppc x86"
+IUSE="X"
+
+DEPEND="X? ( x11-libs/libX11 )"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${WORKDIR}"/${MY_P}.patch
+ "${FILESDIR}"/${P}-gentoo.patch
+)
+
+src_compile() {
+ emake \
+ CC="$(tc-getCC)" \
+ $(usex X all tleds)
+}
+
+src_install() {
+ dosbin tleds
+ use X && dosbin xtleds
+
+ doman tleds.1
+ dodoc README Changes
+
+ newinitd "${FILESDIR}"/tleds.init.d tleds
+ newconfd "${FILESDIR}"/tleds.conf.d tleds
+}
diff --git a/net-analyzer/tptest/Manifest b/net-analyzer/tptest/Manifest
new file mode 100644
index 000000000000..612d7fb052a5
--- /dev/null
+++ b/net-analyzer/tptest/Manifest
@@ -0,0 +1 @@
+DIST tptest-3.1.7.tar.gz 313801 BLAKE2B cf4cc6e1e76dbaee8925d9432335ec0a28fcf790dba5c85568ea538fe442c55c8a3ad7ac4fbf4cb1c4ed967cc18dab50212ab26915232bd7fc284dc4e6f0278b SHA512 c78fdbc561adbe109be9fc45a2dbd5c452235525ac4d5f24e39fd8824825fd02c35853411c3f4ae1870f98b576df37f3f1f1266de7c40edcb8f35c69b9063c59
diff --git a/net-analyzer/tptest/files/tptest-3.1.7-clang16-build-fix.patch b/net-analyzer/tptest/files/tptest-3.1.7-clang16-build-fix.patch
new file mode 100644
index 000000000000..69b27d97ad05
--- /dev/null
+++ b/net-analyzer/tptest/files/tptest-3.1.7-clang16-build-fix.patch
@@ -0,0 +1,11 @@
+Bug: https://bugs.gentoo.org/897832
+--- a/apps/unix/server/server.c
++++ b/apps/unix/server/server.c
+@@ -50,6 +50,7 @@
+ #include <sys/file.h>
+ #include <sys/stat.h>
+ #include <sys/wait.h>
++#include <fcntl.h>
+
+ // #include <net/if.h>
+ // #include <netinet/in.h>
diff --git a/net-analyzer/tptest/files/tptest-3.1.7-getstatsfromlinevuln.patch b/net-analyzer/tptest/files/tptest-3.1.7-getstatsfromlinevuln.patch
new file mode 100644
index 000000000000..4b7fd209f9e4
--- /dev/null
+++ b/net-analyzer/tptest/files/tptest-3.1.7-getstatsfromlinevuln.patch
@@ -0,0 +1,150 @@
+--- a/engine/tpcommon.c
++++ b/engine/tpcommon.c
+@@ -37,6 +37,8 @@
+ #include <stdio.h>
+ #include <string.h>
+ #include <stdarg.h>
++#include <stdlib.h>
++#include <stddef.h>
+
+ #ifdef UNIX
+ #include <sys/time.h>
+@@ -194,68 +196,76 @@ done:
+
+
+ // Fill a tpStats structure with the contents from a STATS line
+-int GetStatsFromLine(char *line, TPStats *s)
++int GetStatsFromLine(const char *line, TPStats *s)
+ {
+ char valBuf[30];
++ char * stats_ptr = NULL;
+
+ if (strncmp(line, "STATS ", 6) != 0)
+ return -1;
+- memset(valBuf, 0, 30);
++ memset(valBuf, 0, sizeof(valBuf));
++ stats_ptr = ((char *)line)+6;
+
+- if (CopyTagField(valBuf, 29, line+6, "majorv"))
+- s->MajorVersion = atoi(valBuf);
+- if (CopyTagField(valBuf, 29, line+6, "minorv"))
+- s->MinorVersion = atoi(valBuf);
+- if (CopyTagField(valBuf, 29, line+6, "pktssent"))
+- s->PktsSent = atoi(valBuf);
+- if (CopyTagField(valBuf, 29, line+6, "pktsunsent"))
+- s->PktsUnSent = atoi(valBuf);
+- if (CopyTagField(valBuf, 29, line+6, "pktsrcvd"))
+- s->PktsRecvd = atoi(valBuf);
+- if (CopyTagField(valBuf, 29, line+6, "bytessent"))
++ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "majorv"))
++ s->MajorVersion = (USHORT) strtoul(valBuf,NULL,10);
++ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "minorv"))
++ s->MinorVersion = (USHORT) strtoul(valBuf,NULL,10);
++ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "pktssent"))
++ s->PktsSent = (UINT32) strtoul(valBuf,NULL,10);
++ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "pktsunsent"))
++ s->PktsUnSent = (UINT32) strtoul(valBuf,NULL,10);
++ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "pktsrcvd"))
++ s->PktsRecvd = (UINT32) strtoul(valBuf,NULL,10);
++ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "bytessent"))
+ sscanf(valBuf, "%" LONG_LONG_PREFIX "d", &(s->BytesSent));
+- if (CopyTagField(valBuf, 29, line+6, "bytesrcvd"))
++ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "bytesrcvd"))
+ sscanf(valBuf, "%" LONG_LONG_PREFIX "d", &(s->BytesRecvd));
+- if (CopyTagField(valBuf, 29, line+6, "maxrtt"))
+- s->MaxRoundtrip = atoi(valBuf);
+- if (CopyTagField(valBuf, 29, line+6, "minrtt"))
+- s->MinRoundtrip = atoi(valBuf);
+- if (CopyTagField(valBuf, 29, line+6, "oocount"))
+- s->ooCount = atoi(valBuf);
+-
+- if (CopyTagField(valBuf, 29, line+6, "txstart_s"))
+- s->StartSend.tv_sec = atoi(valBuf);
+- if (CopyTagField(valBuf, 29, line+6, "txstart_us"))
+- s->StartSend.tv_usec = atoi(valBuf);
+-
+- if (CopyTagField(valBuf, 29, line+6, "txstop_s"))
+- s->StopSend.tv_sec = atoi(valBuf);
+- if (CopyTagField(valBuf, 29, line+6, "txstop_us"))
+- s->StopSend.tv_usec = atoi(valBuf);
+-
+- if (CopyTagField(valBuf, 29, line+6, "rxstart_s"))
+- s->StartRecv.tv_sec = atoi(valBuf);
+- if (CopyTagField(valBuf, 29, line+6, "rxstart_us"))
+- s->StartRecv.tv_usec = atoi(valBuf);
+-
+- if (CopyTagField(valBuf, 29, line+6, "rxstop_s"))
+- s->StopRecv.tv_sec = atoi(valBuf);
+- if (CopyTagField(valBuf, 29, line+6, "rxstop_us"))
+- s->StopRecv.tv_usec = atoi(valBuf);
+-
+- if (CopyTagField(valBuf, 29, line+6, "totrtt"))
+- s->TotalRoundtrip = atoi(valBuf);
+- if (CopyTagField(valBuf, 29, line+6, "nortt"))
+- s->nRoundtrips = atoi(valBuf);
+-
+- if (CopyTagField(valBuf, 101, line + 6, "email"))
+- strcpy(s->email, valBuf);
++ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "maxrtt"))
++ s->MaxRoundtrip = (UINT32) strtoul(valBuf,NULL,10);
++ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "minrtt"))
++ s->MinRoundtrip = (UINT32) strtoul(valBuf,NULL,10);
++ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "oocount"))
++ s->ooCount = (UINT32) strtoul(valBuf,NULL,10);
++
++ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "txstart_s"))
++ s->StartSend.tv_sec = strtol(valBuf,NULL,10);
++ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "txstart_us"))
++ s->StartSend.tv_usec = strtol(valBuf,NULL,10);
++
++ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "txstop_s"))
++ s->StopSend.tv_sec = strtol(valBuf,NULL,10);
++ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "txstop_us"))
++ s->StopSend.tv_usec = strtol(valBuf,NULL,10);
++
++ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "rxstart_s"))
++ s->StartRecv.tv_sec = strtol(valBuf,NULL,10);
++ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "rxstart_us"))
++ s->StartRecv.tv_usec = strtol(valBuf,NULL,10);
++
++ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "rxstop_s"))
++ s->StopRecv.tv_sec = strtol(valBuf,NULL,10);
++ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "rxstop_us"))
++ s->StopRecv.tv_usec = strtol(valBuf,NULL,10);
++
++ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "totrtt"))
++ s->TotalRoundtrip = (UINT32) strtoul(valBuf,NULL,10);
++ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "nortt"))
++ s->nRoundtrips = (UINT32) strtoul(valBuf,NULL,10);
++
++ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "email"))
++ {
++ strncpy(s->email, valBuf, sizeof(s->email));
++ s->email[sizeof(s->email)-1] = '\0';
++ }
+
+- if (CopyTagField(valBuf, 101, line + 6, "pwd"))
+- strcpy(s->pwd, valBuf);
++ if (CopyTagField(valBuf, sizeof(valBuf)-1, stats_ptr, "pwd"))
++ {
++ strncpy(s->pwd, valBuf, sizeof(s->pwd));
++ s->pwd[sizeof(s->pwd)-1] = '\0';
++ }
+
++ stats_ptr = NULL;
+ return 0;
+-
+ }
+
+
+--- a/engine/tpcommon.h
++++ b/engine/tpcommon.h
+@@ -43,7 +43,7 @@ int SameTag(char *s1, char *s2);
+ int CopyTagField(char *destp, int destSize, char *srcp, char *pname);
+ int GetSessionFromLine(char *, TPEngine *);
+ char * CreateSessionLine(TPEngine *, char *);
+-int GetStatsFromLine(char *, TPStats *);
++int GetStatsFromLine(const char *, TPStats *);
+ char * CreateLineFromStats(TPStats *, char *);
+ int ReplyCode(char *);
+ void TVAddUSec(struct timeval *, int);
diff --git a/net-analyzer/tptest/metadata.xml b/net-analyzer/tptest/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/tptest/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/tptest/tptest-3.1.7-r3.ebuild b/net-analyzer/tptest/tptest-3.1.7-r3.ebuild
new file mode 100644
index 000000000000..7bb8951e6b5d
--- /dev/null
+++ b/net-analyzer/tptest/tptest-3.1.7-r3.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+MY_PV="${PV/./_}"
+
+DESCRIPTION="Internet bandwidth tester"
+HOMEPAGE="https://tptest.sourceforge.net/"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc ~sparc x86"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-3.1.7-getstatsfromlinevuln.patch
+ "${FILESDIR}"/${PN}-3.1.7-clang16-build-fix.patch
+)
+
+src_prepare() {
+ default
+
+ sed -i apps/unix/{client,server}/Makefile \
+ -e "s:^CFLAGS[[:space:]]*=:CFLAGS+=:" \
+ || die
+
+ cp -f os-dep/unix/* . || die
+ cp -f engine/* . || die
+}
+
+src_compile() {
+ emake -C apps/unix/client \
+ CC="$(tc-getCC)" \
+ LDFLAGS="${LDFLAGS}"
+
+ emake -C apps/unix/server \
+ CC="$(tc-getCC)" \
+ LDFLAGS="${LDFLAGS}"
+}
+
+src_install() {
+ dobin apps/unix/client/tptestclient
+ dosbin apps/unix/server/tptestserver
+
+ insinto /etc
+ doins apps/unix/server/tptest.conf
+}
diff --git a/net-analyzer/tracebox/Manifest b/net-analyzer/tracebox/Manifest
new file mode 100644
index 000000000000..2633bec43216
--- /dev/null
+++ b/net-analyzer/tracebox/Manifest
@@ -0,0 +1 @@
+DIST tracebox-0.4.4.tar.gz 76828 BLAKE2B 0c3fbe9ea3fd5a967c85cf7b175900d899885f6c43ca8ffa32ba98256490b5bc23e8f80618208df6ec05f0484e5ce27599528aa5d84e331ac71eca960b6b1fd0 SHA512 2113d6ed4543b0c3a9b44bc92c4eb8ab2a860b4409a5eba374b9960ddb4ba299a33c0dea49595c94bc725eda36633d8bb698236d662ea9cc1027070b597c52f6
diff --git a/net-analyzer/tracebox/files/tracebox-0.4.4-autotools.patch b/net-analyzer/tracebox/files/tracebox-0.4.4-autotools.patch
new file mode 100644
index 000000000000..612132d157f4
--- /dev/null
+++ b/net-analyzer/tracebox/files/tracebox-0.4.4-autotools.patch
@@ -0,0 +1,214 @@
+- do not link to bundled
+ * dev-libs/json-c
+ * net-libs/libcrafter
+- allow different lua versions
+
+--- a/configure.ac
++++ b/configure.ac
+@@ -14,6 +14,8 @@
+ AC_HEADER_STDC
+ AC_HEADER_ASSERT
+
++PKG_PROG_PKG_CONFIG
++
+ AX_CXX_COMPILE_STDCXX_11
+
+ # Checks for header files.
+@@ -32,40 +34,14 @@
+ AC_FUNC_FORK
+ AC_CHECK_FUNCS([gettimeofday memset select socket strtol])
+
+-AC_ARG_WITH(lua,
+-[ --with-lua=DIR use lua in DIR],
+-[ case "$withval" in
+- yes|no)
+- AC_MSG_RESULT(no)
+- ;;
+- *)
+- AC_MSG_RESULT($withval)
+- if test -f $withval/lua.h -a -f $withval/liblua.a; then
+- owd=`pwd`
+- if cd $withval; then withval=`pwd`; cd $owd; fi
+- LUA_INCLUDE="-I$withval"
+- LUA_LIB="-L$withval -llua"
+- LIBS="$LIBS -lm"
+- elif test -f $withval/include/lua.h -a -f $withval/lib/liblua.a; then
+- owd=`pwd`
+- if cd $withval; then withval=`pwd`; cd $owd; fi
+- LUA_INCLUDE="-I$withval/include"
+- LUA_LIB="-L$withval/lib -llua"
+- LIBS="$LIBS -lm"
+- else
+- AC_ERROR("lua.h or liblua.a not found in $withval")
+- fi
+- ;;
+- esac ],
+- [
+- AX_PROG_LUA
+- AX_LUA_HEADERS
+- AX_LUA_LIBS
+- if test x"$LUA_LIB" = x; then
+- AC_MSG_ERROR([Lua library not found. You may try option --with-lua-suffix.])
+- fi
+- ]
+-)
++PKG_CHECK_MODULES([LUA53], [lua-5.3], [LUA_FOUND=5.3; LUA_INCLUDE="${LUA53_CFLAGS}"; LUA_LIB="${LUA53_LIBS}"],AC_MSG_WARN([lua 5.3 not found]))
++PKG_CHECK_MODULES([LUA52], [lua-5.2], [LUA_FOUND=5.2; LUA_INCLUDE="${LUA52_CFLAGS}"; LUA_LIB="${LUA52_LIBS}"],AC_MSG_WARN([lua 5.2 not found]))
++PKG_CHECK_MODULES([LUA51], [lua5.1], [LUA_FOUND=5.1; LUA_INCLUDE="${LUA51_CFLAGS}"; LUA_LIB="${LUA51_LIBS}"],AC_MSG_WARN([lua 5.1 not found]))
++PKG_CHECK_MODULES([LUA], [lua], [LUA_FOUND=5.1-noSLOT; LUA_INCLUDE="${LUA_CFLAGS}"; LUA_LIB="${LUA_LIBS}"],AC_MSG_WARN([lua 5.1 not found]))
++
++if test -z "$LUA_FOUND"; then
++ AC_MSG_ERROR([lua 5.3, 5.2 or 5.1 is required])
++fi
+ AC_SUBST(LUA_INCLUDE)
+ AC_SUBST(LUA_LIB)
+
+@@ -121,24 +97,12 @@
+ AC_ARG_WITH(json,
+ [ --with-json=DIR use json-c in DIR],
+ [ case "$withval" in
+- yes|no)
++ no)
+ AC_MSG_RESULT(no)
+ ;;
+ *)
+ AC_MSG_RESULT($withval)
+- if test -f $withval/json.h -a -f $withval/libjson-c.a; then
+- owd=`pwd`
+- if cd $withval; then withval=`pwd`; cd $owd; fi
+- JSON_INCLUDE="-I$withval"
+- JSON_LIB="-L$withval -ljson-c"
+- elif test -f $withval/include/json-c/json.h -a -f $withval/lib/libjson-c.a; then
+- owd=`pwd`
+- if cd $withval; then withval=`pwd`; cd $owd; fi
+- JSON_INCLUDE="-I$withval/include"
+- JSON_LIB="-L$withval/lib -ljson-c"
+- else
+- AC_ERROR("json.h or libjson-c.a not found in $withval")
+- fi
++ PKG_CHECK_MODULES([JSON], [json-c], [JSON_INCLUDE="${JSON_CFLAGS}"; JSON_LIB="${JSON_LIBS}"],AC_MSG_ERROR([json-c was requested but not found]))
+ AC_SUBST(JSON_INCLUDE)
+ AC_SUBST(JSON_LIB)
+ AC_DEFINE([HAVE_JSONC], [1], [Using json-c])
+@@ -153,41 +117,7 @@
+ ]
+ )
+
+-AC_MSG_CHECKING(for libpcap)
+-AC_ARG_WITH(libpcap,
+-[ --with-libpcap=DIR use libpcap in DIR],
+-[ case "$withval" in
+- yes|no)
+- AC_MSG_RESULT(no)
+- ;;
+- *)
+- AC_MSG_RESULT($withval)
+- if test -f $withval/pcap.h -a \
+- -f $withval/libpcap.a -a \
+- -d $withval/pcap; then
+- owd=`pwd`
+- if cd $withval; then withval=`pwd`; cd $owd; fi
+- PCAPINC="-I$withval -I$withval/bpf"
+- PCAPLIB="-L$withval -lpcap"
+- else
+- AC_ERROR(pcap.h, net/bpf.h, or libpcap.a not found in $withval)
+- fi
+- ;;
+- esac ],
+-[ if test -f ${prefix}/include/pcap.h; then
+- PCAPINC="-I${prefix}/include"
+- PCAPLIB="-L${prefix}/lib -lpcap"
+- elif test -f /usr/include/pcap/pcap.h; then
+- PCAPINC="-I/usr/include/pcap"
+- PCAPLIB="-lpcap"
+- elif test -f /usr/include/pcap.h; then
+- PCAPLIB="-lpcap"
+- else
+- AC_MSG_RESULT(no)
+- AC_ERROR(libpcap not found)
+- fi
+- AC_MSG_RESULT(yes) ]
+-)
++PKG_CHECK_MODULES([PCAP], [libpcap], [PCAPINC="${PCAP_CFLAGS}"; PCAPLIB="${PCAP_LIBS}"],AC_MSG_ERROR([libpcap is required]))
+ AC_SUBST(PCAPINC)
+ AC_SUBST(PCAPLIB)
+
+@@ -234,17 +164,7 @@
+ AC_CHECK_LIB([pthread], [pthread_create])
+ ])
+
+-# Make sure libcrafter build a static library by adding the --disable-shared
+-# argument to the configure script.
+-ac_configure_args_pre="$ac_configure_args"
+-ac_configure_args_post="$ac_configure_args --disable-shared"
+-ac_configure_args="$ac_configure_args_post"
+-
+-AC_CONFIG_COMMANDS_PRE([ac_configure_args="$ac_configure_args_pre"])
+-AC_CONFIG_COMMANDS_POST([ac_configure_args="$ac_configure_args_post"])
+-AC_CONFIG_SUBDIRS(noinst/libcrafter/libcrafter)
+-
+-ac_configure_args="$ac_configure_args_pre"
++PKG_CHECK_MODULES([crafter], [crafter], [LIBS="$LIBS $crafter_LIBS"],AC_MSG_ERROR([libcrafter is required]))
+
+ # Enable click submodule
+ AS_IF([test "x$enable_tests" = "xyes"], [
+@@ -254,7 +174,6 @@
+
+ AC_CONFIG_COMMANDS_PRE([ac_configure_args="$ac_configure_args_pre"])
+ AC_CONFIG_COMMANDS_POST([ac_configure_args="$ac_configure_args_post"])
+- AC_CONFIG_SUBDIRS(tests/tools/click)
+
+ ac_configure_args="$ac_configure_args_pre"
+ ])
+@@ -271,7 +190,6 @@
+
+ AC_CONFIG_FILES([
+ Makefile
+- noinst/Makefile
+ src/Makefile
+ src/tracebox/Makefile
+ tests/Makefile
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -8,8 +8,8 @@
+ MAYBE_DOC = doc
+ endif
+
+-SUBDIRS = noinst src $(MAYBE_OPT) $(MAYBE_DOC)
+-DIST_SUBDIRS = noinst src tests doc
++SUBDIRS = src $(MAYBE_OPT) $(MAYBE_DOC)
++DIST_SUBDIRS = src tests doc
+
+ debian-package:
+ dpkg-buildpackage -rfakeroot -tc -us -uc
+--- a/noinst/Makefile.am
++++ b/noinst/Makefile.am
+@@ -1,4 +1,3 @@
+-DIST_SUBDIRS = libcrafter/libcrafter
+
+ all-local:
+ cd libcrafter/libcrafter && $(MAKE) $(AM_MAKEFLAGS) all
+--- a/src/tracebox/Makefile.am
++++ b/src/tracebox/Makefile.am
+@@ -4,7 +4,6 @@
+
+ dist_man_MANS = tracebox.1
+
+-dist_bin_SCRIPTS = luatracebox
+
+ SUBDIRS = examples
+
+@@ -78,13 +77,11 @@
+
+ tracebox_LDADD = \
+ $(EXTRALIBS) \
+- $(abs_top_builddir)/noinst/libcrafter/libcrafter/libcrafter.la \
+ $(LUA_LIB) \
+ $(PCAPLIB) \
+ $(JSON_LIB)
+
+ tracebox_CPPFLAGS = \
+- -I$(top_srcdir)/noinst/libcrafter/libcrafter \
+ $(LUA_INCLUDE) \
+ $(PCAPINC) \
+ $(JSON_INCLUDE) \
diff --git a/net-analyzer/tracebox/files/tracebox-0.4.4-include-crafter.patch b/net-analyzer/tracebox/files/tracebox-0.4.4-include-crafter.patch
new file mode 100644
index 000000000000..bedd0208303a
--- /dev/null
+++ b/net-analyzer/tracebox/files/tracebox-0.4.4-include-crafter.patch
@@ -0,0 +1,44 @@
+--- a/src/tracebox/PacketModification.h
++++ b/src/tracebox/PacketModification.h
+@@ -8,7 +8,7 @@
+ #ifndef __PACKETMODIFICATION_H__
+ #define __PACKETMODIFICATION_H__
+
+-#include "crafter.h"
++#include <crafter.h>
+ #ifdef HAVE_LIBJSON
+ #include <json/json.h>
+ #endif
+--- a/src/tracebox/PartialHeader.h
++++ b/src/tracebox/PartialHeader.h
+@@ -8,7 +8,7 @@
+ #ifndef __PARTIALHEADER_H__
+ #define __PARTIALHEADER_H__
+
+-#include "crafter.h"
++#include <crafter.h>
+
+ /* ICMP message can contains partial header information */
+
+--- a/src/tracebox/script.h
++++ b/src/tracebox/script.h
+@@ -9,7 +9,7 @@
+ #ifndef __TRACEBOX_SCRIPT_H__
+ #define __TRACEBOX_SCRIPT_H__
+
+-#include "crafter.h"
++#include <crafter.h>
+
+ Crafter::Packet *script_packet(std::string& cmd);
+ int script_exec(const char*, int, char**);
+--- a/src/tracebox/tracebox.h
++++ b/src/tracebox/tracebox.h
+@@ -11,7 +11,7 @@
+
+ #include <memory>
+
+-#include "crafter.h"
++#include <crafter.h>
+ #include "config.h"
+ #include "PacketModification.h"
+
diff --git a/net-analyzer/tracebox/metadata.xml b/net-analyzer/tracebox/metadata.xml
new file mode 100644
index 000000000000..62c1cd151bb9
--- /dev/null
+++ b/net-analyzer/tracebox/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <use>
+ <flag name="curl">Build the curl component for uploading capture files using <pkg>net-misc/curl</pkg>
+ </flag>
+ <flag name="sniffer">Build the sniffer component using <pkg>net-libs/libnetfilter_queue</pkg>
+ </flag>
+ </use>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/tracebox/tracebox-0.4.4-r100.ebuild b/net-analyzer/tracebox/tracebox-0.4.4-r100.ebuild
new file mode 100644
index 000000000000..cf4ddf0f2acb
--- /dev/null
+++ b/net-analyzer/tracebox/tracebox-0.4.4-r100.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-{1,3,4} luajit )
+
+inherit autotools flag-o-matic lua-single
+
+DESCRIPTION="A Middlebox Detection Tool"
+HOMEPAGE="http://www.tracebox.org/"
+SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="curl sniffer"
+REQUIRED_USE="${LUA_REQUIRED_USE}"
+RESTRICT="test"
+
+RDEPEND="${LUA_DEPS}
+ >=net-libs/libcrafter-0.3_p20171019
+ dev-libs/json-c
+ net-libs/libpcap
+ curl? ( net-misc/curl )
+ sniffer? ( net-libs/libnetfilter_queue )"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-autotools.patch
+ "${FILESDIR}"/${P}-include-crafter.patch
+)
+
+src_prepare() {
+ default
+ # remove bundled
+ # - dev-libs/json-c
+ # - net-libs/libcrafter
+ rm -r noinst || die
+ eautoreconf
+}
+
+src_configure() {
+ # https://bugs.gentoo.org/786687
+ # std::byte clashes with crafter/Types.h typedef
+ append-cxxflags -std=c++14
+
+ econf \
+ $(use_enable curl) \
+ $(use_enable sniffer)
+}
diff --git a/net-analyzer/traceroute/Manifest b/net-analyzer/traceroute/Manifest
new file mode 100644
index 000000000000..7b1555628fde
--- /dev/null
+++ b/net-analyzer/traceroute/Manifest
@@ -0,0 +1,2 @@
+DIST traceroute-2.1.3.tar.gz 73171 BLAKE2B a723bdc8ed5f12f6b53552cf7d330eb028deb55ae85c785451d282be1946cdc57ff428a755cc2bbd71495b49cbc89c1707d2686a553029220f8a089fed1c1fc2 SHA512 db96214e6957fffe17c013044fdc20be6cf94fe5249c9adac77e62e20327c4d582b2ddf4b511f93f30be0cba9f67b0f3f61490745f35ff5a32c63ed66cb0c444
+DIST traceroute-2.1.5.tar.gz 75453 BLAKE2B b2e99398b23d064f96319c9ca677589175f4bde64bce1f1d3236fc94f0ae3aa00499a2ef4a5c66c3a5815e09e16c534d049c36745119850c90c8af879ef66c6b SHA512 4557e6091cd34edd9761ffa5c75e13d63e7ae17c9d060f18306487cd5c1e7eece8a7ef3ddc6bf40f78d1014ed38ce2411c14d839251412978b2da0915180be93
diff --git a/net-analyzer/traceroute/metadata.xml b/net-analyzer/traceroute/metadata.xml
new file mode 100644
index 000000000000..1df6ce61fe78
--- /dev/null
+++ b/net-analyzer/traceroute/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:buc:traceroute</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/traceroute/traceroute-2.1.3.ebuild b/net-analyzer/traceroute/traceroute-2.1.3.ebuild
new file mode 100644
index 000000000000..939853208759
--- /dev/null
+++ b/net-analyzer/traceroute/traceroute-2.1.3.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic toolchain-funcs
+
+DESCRIPTION="Utility to trace the route of IP packets"
+HOMEPAGE="https://traceroute.sourceforge.net/"
+SRC_URI="https://downloads.sourceforge.net/traceroute/${P}.tar.gz"
+
+LICENSE="GPL-2 LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+IUSE="static"
+
+RDEPEND="!net-misc/iputils[traceroute6(-)]"
+
+src_compile() {
+ use static && append-ldflags -static
+ # bug #432116
+ append-ldflags -L../libsupp
+ tc-export AR CC RANLIB
+
+ emake env=yes
+}
+
+src_install() {
+ emake DESTDIR="${D}" prefix="${EPREFIX}/usr" install
+ dodoc ChangeLog CREDITS README TODO
+ dosym traceroute /usr/bin/traceroute6
+ dosym traceroute.8 /usr/share/man/man8/traceroute6.8
+}
diff --git a/net-analyzer/traceroute/traceroute-2.1.5.ebuild b/net-analyzer/traceroute/traceroute-2.1.5.ebuild
new file mode 100644
index 000000000000..939853208759
--- /dev/null
+++ b/net-analyzer/traceroute/traceroute-2.1.5.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit flag-o-matic toolchain-funcs
+
+DESCRIPTION="Utility to trace the route of IP packets"
+HOMEPAGE="https://traceroute.sourceforge.net/"
+SRC_URI="https://downloads.sourceforge.net/traceroute/${P}.tar.gz"
+
+LICENSE="GPL-2 LGPL-2.1"
+SLOT="0"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86"
+IUSE="static"
+
+RDEPEND="!net-misc/iputils[traceroute6(-)]"
+
+src_compile() {
+ use static && append-ldflags -static
+ # bug #432116
+ append-ldflags -L../libsupp
+ tc-export AR CC RANLIB
+
+ emake env=yes
+}
+
+src_install() {
+ emake DESTDIR="${D}" prefix="${EPREFIX}/usr" install
+ dodoc ChangeLog CREDITS README TODO
+ dosym traceroute /usr/bin/traceroute6
+ dosym traceroute.8 /usr/share/man/man8/traceroute6.8
+}
diff --git a/net-analyzer/trippy/Manifest b/net-analyzer/trippy/Manifest
new file mode 100644
index 000000000000..559af6ca726a
--- /dev/null
+++ b/net-analyzer/trippy/Manifest
@@ -0,0 +1,428 @@
+DIST addr2line-0.24.2.crate 39015 BLAKE2B 57186d6b957542cd71a0aa19f1355dfaabe6efa19b853c42f306494728b03d1e3183efdb2d2c7734a3e2347cd83a985d004f50c097e06b7520bd152310532e9b SHA512 39cbec3c920ffc0f37584afb55e1cfe4f182e4415319a4e9bfe842360f102f7b9315f6171c0cf71ba0337123903e604096cd573fe98698a26c8eebc2376d965b
+DIST adler2-2.0.0.crate 13529 BLAKE2B ec575b0bf12e321399ac3a1d59fce4ddbeabcc60cb3d7c2f362cce23eb29b4ea836451372d6d88552a4435ae29bb41d6230d55f625a4359eace680b9b771d0ad SHA512 12d12579ad617cf1a94cf95ab9d3f5db566c3b2de4bd5735eccd83c668fdad0eff134c996b73c46cbb9f932837682043878b8cc4764191625e9f93ccffcce423
+DIST aho-corasick-1.1.3.crate 183311 BLAKE2B 8dfcbba0b9d94e55eae739b16f5c6474baa43ee7854c5ca792f426a9f46fb0eece79cd493b804e51449181bcad338b96819fe977c02c9907654d713e26b9f830 SHA512 ba422a54688c4678fcf16e34fdf3ed06c333e6e3fc8b75af9272a215add494d43ebaef319021134b61327fd5d3572aec0dc655b714ffb3bc71ba3c265c9ebb69
+DIST allocator-api2-0.2.21.crate 63622 BLAKE2B 983897fc977118f220dc4af7e801ac08eba77bfde2a25d756bad3e77f849418e74e7c67eaed68e2d719ca7fc6e1e9ce151dd7dbe8707dc43d4a6400294c8fc8e SHA512 1bb5711ed6041b0d7eae2ec784b8aa9d215db0f49cf79c692946eeb0db545d358cbcaa8156ae34e51d05287c08574f1da251ee574f2392949e4ed26d04770d03
+DIST android-tzdata-0.1.1.crate 7674 BLAKE2B 4385a4875aadaacd5284a9ca7d1bf8a7bf14bf8925d1563d52fbabacc3af2c1ea08bfcf77106f3648f4fa052ac295158a21e7a0131d31eb9aecd99ea4ba20055 SHA512 4294024c21ddd0090c42c8eedf708d40d917f55ad5a4cb7aa3e64cfb6551b6df60f2e36bc08620c1d2fc8c7ba7207411518ee5c8635f60ed8ad9efdd458a2077
+DIST android_system_properties-0.1.5.crate 5243 BLAKE2B 86f68ec3bdabf8c6ec47881d794970f08a9eefc7417fc8a2bf4fe9faf9bdd2a2024a94adb0cbf96673409f5fbbd4d0111a1ac371339e7a90a277b6cd5003524e SHA512 b09f51339f9772c0e2e4241b36cf51573c6b96b19ffc1fbbc94b1c1d1d2fdfe8eac3134af54174a675ab05d18ef4f6bcb2c7fcc20114bbeef6e17e3692202191
+DIST anstream-0.6.18.crate 29681 BLAKE2B b6f72cda084b38f1e1cfe60de2562e8d62ebbc352176bdf668a2d6be09349bec46d291cd475e8af814ce66def44d95cb98c325761150130752284a82d8a84f21 SHA512 5149977d6f7b5e9cf6350f1ef130caa3ff46c7e78976358452a185ce196cdd77fee48a3a9838f434ae6ea9c15b19f6bfbab156edf819f81179d6774318f08963
+DIST anstyle-1.0.10.crate 15725 BLAKE2B 36e656bd8f9c584f11fda5cfe0c2e24e8426b9e1b602aad34ed118ae6950a55440e292d2e0ff7615f5e4f466fd06f07536be198a59506a587d40cb0c4ede4f80 SHA512 621e7a89fad13db985f07375d316cf8efba57fd44ae18628a8049a65aefbaef27949f99317872e91e0922bb089a00234055199ea3167f80ae03d00ada4f75dea
+DIST anstyle-parse-0.2.6.crate 22343 BLAKE2B 85eba405dc5cf806283cf442984e86583dfe6c681f849eb7a347b7b67bd2b6f692e84fc9b5bd86486633cb2f05960ec16e8778300df114ae6676da43442db9bb SHA512 e28c9818afcda0e9b84c205d9c6697ce64cb06c21df2c3666869c07d66893105d9c5e96a27fcf2410a09f6af00735252e22b5c7d8c6cb3f68c4a8f376c49d396
+DIST anstyle-query-1.1.2.crate 9969 BLAKE2B 179b8dd6dd709c2ca67f4eb5c9a502b2867cb6744a39f824c4fdebedc67c6c3e07d107c7d817e2ffb589d13b7ed4900cf9653ddc0a43663217042ee92ce8c9da SHA512 26069d936c4b1fb09bc65cda0253fe9be8fa4e96c0821f980c772602b4e9230035ec8c9d092ef95e0a0354ac559f8d25f57a14c34086d4d241b5fba688951837
+DIST anstyle-wincon-3.0.6.crate 12271 BLAKE2B d9f4d9d46fa93a1168ca340562681718be852ffa94e30c9ea208af53af9d6697ca84921837a325ddc36681caab2b866b7f574901c80b5c0d862dcb765b81b68b SHA512 59ec6f5a53bd68b6344d82e923eb8c45ddac481dd0d270a7b452dc5b0540ee1656705697c1508942ecc131e7c075248c85d8f4159f27d97ea94f22469ce2eeb5
+DIST anstyle-wincon-3.0.7.crate 12400 BLAKE2B 2023529aa12ebe1b7073a88180ac7491fbba7e8556ba20061bec22b1db9d0f3da058faa5bd7f499d8e5da18422dec7e7648f3b4acd7b4a2d2064824f1b881259 SHA512 782440c1093235ad481f0b854f5a3d3acb7908d2e5ddbd4143139b8bfd0faaf2f9816c1034e760d9261a233e6d645098cd5a594064f190662908eaf79972c903
+DIST anyhow-1.0.94.crate 51731 BLAKE2B 2b8b7ed7506f31a434ff8af198256816bb196f3434925ad688820237893b54b14f3731d34a3968277f532a3b67c39e3c4aaffef43b42b13bb1c6d3cae50e9ae8 SHA512 61209bb1a81104ea86375bff12e6654047a596fd5282fdaa590301c4bcdafcdd8bc83201811063d565bbfab6be42544e43047ec88d2b0b41f7c5f2712f3a3b90
+DIST anyhow-1.0.98.crate 53334 BLAKE2B 469c6bb7f535c0c665daae37b61a001fb7da688db3bedcb8e7b76392af109e5b9335dadaa5775c80d365d599674ce3961240a07582d4fc9a45c6367a6e7bd7da SHA512 6affa8a4f148aefb5a20f193bbe93f694786bc1e707b298a3ccaae1a22d60898a46121532ad5ca5819fc180d4593a8ce2455d754315a9ab3b5c998a4cd20adc6
+DIST arrayvec-0.7.6.crate 31237 BLAKE2B b9d1df7e3ec47d434a2606fe9540e37e02351873b376a4e113b54461288e9ab20e02285eed5c4bc0f052ec4d6b3c804044413490ea706c31a852624b03bde7bb SHA512 b1f320746018a7f32340a833420089446ec5cefb7f299b4506eab7423d5db49f00b72d8aa8c6600f9159b9480d5eb3ce69407d93f5c9934147860c83e4d6eca8
+DIST async-channel-2.3.1.crate 14576 BLAKE2B 09ea03c9758805c90be9aba222e1d74f3166ab492e533597647d1b4f08bf1dda79d73b21de791b9802e19c225cb94b7cb25550bba61488c7b61fa87f88eb29dd SHA512 94c999912bdf681dcb686292645bc8c340c2687bc9544f317e0123e672752c6b31e9d784e488e7d0bab79b5f207da8904a7f1fe140397513b47c292a6508a7e5
+DIST async-task-4.7.1.crate 38077 BLAKE2B 200f3c2eff92afeffb34404bd9b02af39226024d309137c3835342ab6631c09f14f47abc5d25d77e73cbd133274e731fc88e7e94d8456f690b0f1056bae8dd95 SHA512 8495436d0739a2ce83b372ae13ff24ca1487c92e032948d5830af19c3ba411d7cd004634fa10bc2f748f8a82de27c12cbfacaac92cd0012e1fae024eca9e78ca
+DIST async-trait-0.1.83.crate 29054 BLAKE2B 4991f79abd8b9260b9541e754c30d3e0731ff786fcf65cc3f3eb75a5fcedcb37be147222778e1a0fa6c68d8fb872144b2b55b43cf6f8f4de371f24175cef405d SHA512 15969eafbdbe51e80433b53196962293daed2a70d3d9bac91c58e5e7359f60fc99ef519ceb1fd54e34d627c94f821329474a602f25f85179318d10c3147b5649
+DIST async-trait-0.1.88.crate 32084 BLAKE2B aeb1cbea6bf3191c19ff7daee41d5b70e3b4f05f7232f719b80dd38eada3747dfea951c9a2ac6b7c4839ec8fd5abdf1c61791516dd3d06deaff445979345793d SHA512 65ade824708497feadf6fdb788cfeb1b7f0aeaa56d860455dd016a5926d83d56b55c3a4b4ef9a319575d30f7a9a2a90d92180cc80f62d998e46a7caa53c4a648
+DIST atomic-waker-1.1.2.crate 12422 BLAKE2B fc6632f3c9d719b1d24a1c8e05947d94028909d1c629b80576e176e567636dd4cca699c7e91cae2df63541da574146b3ce766374e93f0ee429bb5bc89a4d3cae SHA512 e07e58db7955791259d0ec00fc4d53318aefb4506e062914819c4220c6dc75fa11a7af0289b4653aa1f9041eb975a025635190de68b4800a0e91e33cdb0ba11c
+DIST autocfg-1.4.0.crate 17712 BLAKE2B 7f7300439899be03d001dd32b7e797bc4b9a58103081b6f7353c4b5897813cedf870b3fb1fa25d320a75326b334b44d8287e8603de34fc560d0b567143915cc6 SHA512 3b5e7c30bc73e105e4bfcab584c24fc4016db41fac9c356c6649fd841051704bbe8848e09546eb50d7c1f18ea8ce1cb72fbc268a620d5c609b3472114b5be73c
+DIST backtrace-0.3.74.crate 88516 BLAKE2B 594b537f3860560bc790d04d72a91ea25bbf5f2494b9c43377129a8021c02d9c16471a223e518889775a816c45513b14bf097c453846b62302a58b59753a5fcb SHA512 00cb2be0626f0bf6ec8b8f525bb129d3ac74c386c5e46ee0f343edb78c863222521f8132876057a5a1facacf40792dea51f2f20e986b35f3a85bca3dcf5c1520
+DIST bitflags-2.6.0.crate 45357 BLAKE2B 3a368bd2eb58c095b7b4a46680cc2d90a28e24b2e37c854bbf8647c861c4b8fb37eca827599673c5c7df763048149dd82123d1ede1f8a0e58a6bc23c8250f7e6 SHA512 f9bb3c48931ed7e7e05ec6d13305af5da6b6c18861ff307d7dc17c658f63972c87b70b0527287b3625c8592befc207cfe15550654995faf3862bb12a6d95bacf
+DIST bitflags-2.9.0.crate 47654 BLAKE2B df924872ccb929f3e428976764d50e5468112cb83e563f663a5e51a21ef4363b4c639e617ed8afd42a39fed522ee468ce7186adf88bd41f5f4a2a6c833d9ff35 SHA512 f314d5391745e5a7eeeda0c014d739981d8639a8e23e1120d9c006ef1a6d5d5b9292ec85ed2fdc117121b6ed7a67df41345116ed311d8523344928a725763446
+DIST blocking-1.6.1.crate 17788 BLAKE2B d07246809d8b80f1fdbdc678b2877f349b748f2dd0f8543e91fde4aec7aea0b45e145a44f07cdbf26934d20269af01844e1cf7d9dd8b9588d129da7f929d9c95 SHA512 1879bf31c18d5cc4653f794dd4109769ae32071564d3a0d63896162fe160bb5ed3d7d8de59ab34363f8192871122099bb8564ffa93de5a5b75ffd93c0d424ed6
+DIST bumpalo-3.16.0.crate 85677 BLAKE2B 08da17b757931d2910e0299df53eb62731aa8c4ebd8915859b81d1982b331e7455dfac977c754e500a35ee07ba8eff00a61d2f62be99744e2ddbba06c1268f49 SHA512 a51b75c36f6794db444cab20eeb24f42a319080ecb486a56d254d6f873f3d188b5ccba11db30c068bd0c52c4322d4a3f5f5195c81c94b0bc04387030418835b1
+DIST bumpalo-3.17.0.crate 91975 BLAKE2B b0aca1d64373425384eddcdf8d60dc977058a3d1570451de944ce48aacdb984e73a29ab64fb5b23413582d57a8e32ad8155f6a1479eb00f804afe9d8a9d9e163 SHA512 b2acfb463aa705b9c6a9555858b84f565234110988c880cdb761ab8dc87892ee5d22e65fa935d2cfef9d58869fec0ab64d810b26bf122fdd89b454b6ce65ea1f
+DIST byteorder-1.5.0.crate 23288 BLAKE2B 7f85a7948406844070a2c8202e0bd52f73b3dfc7c666a97046128044eb9352195afb80e2bf894c0742ad109e4473339de1365d09591de70dfec6c8c02a8e1453 SHA512 96caf981177f6ded9f27f025922cb94eb0cd9de5303bd91680099912d922092e77b7361efa70011e84f1595e443193e4f1b354443b9980c123f6ae573b236f7f
+DIST bytes-1.10.1.crate 76779 BLAKE2B 96573ff7852cd2d4f37a68cb4d76bc43d2018dc25b7b7e2164df022de4e1974f22d4d3ea7cbfb280667650cdb5063d600f4f76cbdca43dae508f29ced449b0f7 SHA512 03429f01927b94ba6c958c46b2e5bf92a23b39ce9385689e21accd34a5d3be01fd0f665f4bbffb1f7c5bdf1edfb1bf11d5ccad00eff0f9388be39fe2f753d296
+DIST bytes-1.9.0.crate 67320 BLAKE2B d5a89fc1dced217bd78c6c50d0494308b69b0841506c4663b6df3755b91a9eedbd242ce1322a71b8a96847db7920b2b15744fb060aa2d69f5c8d9bcbf2745b9a SHA512 e6c0681c535db6035c1fb1c0481725bb8ab341b6324acde07ac4b60cc4f490ec6ff01478bc00fae00ade2bc5420f9d14cc44438e5d156bcce91cc0f06118296b
+DIST c2rust-bitfields-0.19.0.crate 5885 BLAKE2B 8405344e53e16bdd2c4925d1815e3dcf4611212d4c53a1511b89460efb99df9d45ac217db6c1bb93da48c03889aee089959b9a57138ce83fc4f94d0a9eb4beb7 SHA512 bcf55702c867f7c9ef6c256e5dcc085b0cbe7c0be103b553c71df3af3b242b57aef4d9335525fe93b44445375335a240b45712cdf1e25d3c8e8fb8b4bcf1fa1e
+DIST c2rust-bitfields-derive-0.19.0.crate 3620 BLAKE2B 28bd8d0ae75bb9d148d6bfee68b0ea118348cb2d761ea43e68ee32e8093c36ed28b5acaad20cd7dce9ec47d941dfb2486539e2a20d758a83c6607cf8ed7a2a84 SHA512 b9b14e2b834c47bc05eccdd15daf06d03f4b2d8a6b3d23970b04b9bc704fc7793efe62018838ae54009fbff2643ab5f149267160353086c8136f18df87a13907
+DIST caps-0.5.5.crate 17575 BLAKE2B 77d788f936eb36c2f4776ee719cdc138dac4b840ce632190f34ed26e705175209f9905c71d96d54f0c69f4c6d25f0a203a4d490f2034c330480bedd5ffab149e SHA512 866312aa0f3847dc2779570d1466aaae00945d78a2f5f3b05a833c67a2abd04c0380715f61dce79814845e4e57321adde67fea97f99dca56a970c6e6f80aa029
+DIST cassowary-0.3.0.crate 22876 BLAKE2B 7e74a08e02050548ade7dd1ebba7ce4e4360d258ea6acf126453889dbf16df433bed7b68789736881c957f4c09eead1f763a0c02f2474157b1650a1e77e6eca9 SHA512 0838c0b79ed31f0c514fe4ac82633976e34b0d6cb08616313cda0e00623514fc6498c6c308cfef54ea029f1fdbaafe2991ca8ac3c38437a113ac62e37f9397f8
+DIST castaway-0.2.3.crate 11509 BLAKE2B bbecba400bf98ef4158581f3b1673ca77dbec3ad754d3749f0e9342a47d1fa9f638c1388f0762413277b73251854ade26e08dd85b7d7133c73a5750d4dbf7d92 SHA512 2565a4e5709a25118462ac25b9f741e92456c81ddbf7c4e791d8c647f2ca5227b2f59ffac108f9d32c77cedc12219c517218c51a78b1d22a1baef1bf2c16e0a9
+DIST cc-1.2.21.crate 106117 BLAKE2B 088f0e17c3e1fbaed651e06029b1ee25391f928049237a02e43171f065033b599636209e9fd2b7bf8a92950cfec5e5efd02c19060bc757bddb92468d0cf193a8 SHA512 44d23d5f1c4c55ea1372b2c326400cafb45fa24ab0a3baea0726d5e33505383a29a44c64a6549f650c95b0c7da12d5dd1397ed0601aee144d8db6dec7594af46
+DIST cc-1.2.3.crate 99421 BLAKE2B b5702d1dcd0d90d1fe27f6ac8e7c04f30ea8edcccd1bad4bd31f12ce4d0b1de70cddb2d6e71ed3c3f984ab76b9af47059ba9639af26f84631eaaf1435d6d6fcb SHA512 b3f3e8bcb7daa2b09da4bc6c35279e020d8e1b506adf322ba37d2b0e875d22dfa9c662406223db6e465c70ac816956e5820f162bdcaeabcf38e54c84ed158efc
+DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b79b807cea836c89fc3926d693458893baca2882448d3d44e3f64e06141f6d916b748daa10b8cc1ae16d1b SHA512 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff
+DIST cfg_aliases-0.2.1.crate 6355 BLAKE2B a758d9c88527f0e6e7cfd6d4c83eda1bcb4d6e2438189fe08e8ecbcaa78d56afc5a4873f3b82bf7da96afd690b44cdf1e44466b6da0f37c358b340481017103e SHA512 74969d12d5d24002a29e08d52e30fbce014dd481a7c35ee0162e69333c5f2d7755f3b02439b31522e12444cf1ac8e65880ce33fe6778dac03757e362cbf8a72c
+DIST chrono-0.4.39.crate 222248 BLAKE2B eeff1694a98e8775524c261c5c46ebf09bf1ffc6222a945576960e8153af99e4549d8c988bd086507fa430f9cb15a3159be85300247ab3c6f5e77ab515f0988b SHA512 5b258f76bea58ab9baa0fe8fb32c41928b8b655c76bb2fbaae9300ef8380cbb881296cee6b9e9886dce62b0759c73e84f6409e374a86cf0c80e3383512f98571
+DIST chrono-0.4.41.crate 234621 BLAKE2B 82d2a03ace32f722834348097622ca4d80f00bc7c419dd43d85a2f740088b61adf6d0fd2fed861612b07afa7ef6d26c50386ca5a9b3452a3863be8a737efa02e SHA512 917d440059579f4861b91d95bd0d5bf6dc55baaeec50678a9562b9652bd872d5f6b5013f188a50f37a18dfaa775b6821eef2a1ba096abd488a285e55aa024d5e
+DIST chrono-tz-0.10.3.crate 380709 BLAKE2B ac326dc4b99d697186f4101280f3cbd5f2326697c43a41f790b122e48c0e06e87a65f5b96b4e8bfafa8c667f8b1a51f4e8124e07ce541717e547b5607bf01954 SHA512 bbe6a8a9b216895e36db0fb41af873630a8f65e511faaf6122b040731ea126aff36fcd12b7cd6492aa1c28b9abd5deb19c9a35ffa372ff067d49eb313c3ab611
+DIST chrono-tz-build-0.4.1.crate 11798 BLAKE2B cc756cf89f8316128978d3b70b6e63d24a643ec21a1cc619a726ebfecb45b957276f1734a24f03e18cdea88b2ee67e945149d48252a4435da675d781840fd336 SHA512 a8f010629f9e24aa23a074282f05f9b54eecdbf661221888af2bee828ae47240d49a0f22e4a622aa4abfc8b812a9501ab4a0a7439536eec26ad95038d9f95e40
+DIST clap-4.5.23.crate 56460 BLAKE2B 5c0ff6ecc072368022b8dc08703d87802160817e40228fccbf9cbdc15d86dfaf0eec141dec4e8f1327e5a6d1622df9b334e94797027372dbe8765a12b918961e SHA512 4a8ef8731c9768844debcd1ba83a79a607fd32d9fbfe7411abefb8939c5c442e8a206738bb54dddd136117d3992f519ffd1640694ad7796c4e0aae3f95502c7c
+DIST clap-4.5.37.crate 56962 BLAKE2B 2639e860fe71b9773ae3f1f7c276e592481fdba2740d0abb079f0be0076c50b448fea0e34d195ea5b37b15ecd651f0a2e2449f48e6aa33e217bfc7dd85742599 SHA512 b040f239a75b99ee8f4585036d4570e026eb1bef00b8110853c11604dee1db1c3180336b0894fcdbc5cce9278ae05d48595511b51d65bb5bb988a9eb9bf0c4b0
+DIST clap_builder-4.5.23.crate 164180 BLAKE2B 90948ac5e8ea620be3e1ec1334677b0ae9dc227a00354fcd3d78e2cf23a1c101e009e6cc96fc19c0a2395e1b9ac6272fd9615abc1acf1a5d60392e337cfc961b SHA512 0889876990f0a361cc6b6d41f2a8f4b1decd376987a02fe69888455c92f3e583d6ff70880c6f0ea154ba62f4be7d2e7b18cdc4e0e2f243e6b17f250c3e8d1c2a
+DIST clap_builder-4.5.37.crate 168761 BLAKE2B eae4efdc380820966d4633d1fd1128ff364897cb3d03aaf89b033708a968e9eb6536779b43ced1b55a2ec9c110b614cde6ec618d1a9ce30c81619f559068ac9b SHA512 c677c5ecbdd1363e14f5833ca2a8a479206d4fd8d5dcc430fba866632714b19707f36a2885671046f98a9df3673b96542e650fb4422b348306785262111bdb95
+DIST clap_complete-4.5.38.crate 47669 BLAKE2B 4cb85c4605460a657abfed6f47da0582bdc7d5f99bd2e801a4263390dd2816319a00d091597bb62699a6f351e693d96062130acd3d06c26695779acadbd11f4f SHA512 a0d40df8eaf56a0688557b517d84a676c86c5b080aae118375201d2196ad3230540f5f8f728f1e3dfbd0c5c95ecdc7b75188959bc6b44743859aee00f85abd77
+DIST clap_complete-4.5.48.crate 48036 BLAKE2B b3c689fbdf3b1fd492cbf7648fb3f96565777e7830e71eb365156007ffd6f2fe5f2c4ff4a544b91ff2cc44f045a1f08a69ffee85dfc843275c4f3c62696b7933 SHA512 d80f49489ed30f39e44ec9463d7c1d5ff43c58234b7c7ac55eaec347e9ff9988581bd19ede962e7be1fa7f54dfc547cf00678a603986b7023078a9529b9fbcac
+DIST clap_derive-4.5.18.crate 30131 BLAKE2B ff962e52d8d8afcc9639365e27753c6c6943fd809ef89d9e555e8be5b2f13efa650bf1f9ae451f4c127c1529a0af1d892c3b02153b46deb912029b45983e01cb SHA512 035bb918bc7e9badd59341560f23e3a8a2e7cf945b6d8183f74052c4edfcbecf07c9ea6fce0ceef0b84c89a99d62b11760af39398897e4ee7dad0170a96cfefa
+DIST clap_derive-4.5.32.crate 33441 BLAKE2B de532305380fd457c0fac504f845ba595f157661de7ae72b14598dde1f3d4ec1961196220354a2eac97943004ca8354f4623b29fc2b6557c6ef4a83ab6fd61d8 SHA512 ddac7bfd885efdc97ed07b23eb1a42827aff9cb0c6eabde0a0b247233316f99fb80acb8122d8faa054dc65b6fd7a76091ea2e533cb44e85e8dda125330cdbf86
+DIST clap_lex-0.7.4.crate 12858 BLAKE2B a5ecd50cc503157dd69746f3b6e9c288e0fe4f6d5d82271499f657134fd401fbe076255e2be6a23ed0b69daf3941c6429dad8b288223b0ad390a2c435575cdd1 SHA512 a2566868f4619679d3b74b70592ffa6a04b13e38e3196c56bb1dae8bea0c711bddbccd778d2aba3cc0ee074c9b1cc0335222818f0d47fb3cc8109cbc35bb992e
+DIST clap_mangen-0.2.24.crate 15380 BLAKE2B cac9cc8e337182692b48993b28b19bd282dce33852c283fed63f3409ef0d9c46fed45426cda5a66972e0f59d8dc43e6c8c7da2b6019cd6b03dfb28fd2fe842b8 SHA512 5b1f32f3e1e63e4a0cde4cd106cf2e077ab263ea04ba1bef222b4853621c03f52104602c1f186bb8cf2596da5270c000f011d695a83c3ecb1d8f28eb847fad35
+DIST clap_mangen-0.2.26.crate 15630 BLAKE2B 58af6b1b46c62cf86bc16720db67b195271adb6265f2d04a524bcdc2380e99162b09d1368d44cfe3ddc937f4682f7a910a8d04109a1d51f3371d743f083492b4 SHA512 1655a940575fb8df78595675a702f445ac72a68db1583988ce1e293c7c77c46e60a922ef93a1e545bf314b534bb0e49fc483f44d5e6d0a4cbc4d6481a7a0ac40
+DIST colorchoice-1.0.3.crate 7923 BLAKE2B 7055fe61677143f0d4445ed5f6be2cbc284c155aa6ceac04df6f3fa2563a225e440ba708bf40e298ad09775ab7c7e1842b5f6dd78422b06dbd1250908e3227ee SHA512 fc26696189d3935d5510a1237504339c1f354d03ffd3b4e830b7080335aa778bc72787ac5fa9a67a731b9bde2788da778d497f2ef97ec68bdec5145fedf4cd14
+DIST comfy-table-7.1.3.crate 73951 BLAKE2B cb38f0c8893c728766f9b92949235d477e70e7a0b34cb674c068ca5d4ad9d2cb64785c7f412f1053216dd27dcdcce49ffc884062f8217bdcc9d627f31de0f361 SHA512 4d2a7337c11bdb35ce7f173a52e43c6749f0cd7233a69bf17fdad68de9825a4d5643682d4a97ba53ede5561972062b37ec237c923b6d16246e9ba9874b45c2c7
+DIST comfy-table-7.1.4.crate 77044 BLAKE2B 865f25ade7767b68917585c0055e1f6cd6485dd21267dd24c941ff0dcd2b5751b0f181eaf0e9099dafe194e79298f513b810baf90c11fb5217d8342e7ccaa8fa SHA512 7aac3d0456a997080deba644f4f117927de7886898f61eb6dd88c818c80d3d569476b42635f08ece5e5a45f9229279d49d47164db07358d1223fc9973e9a4d16
+DIST compact_str-0.8.0.crate 70994 BLAKE2B 27ab4163d71915f9cfc160fdfa4ed049c98b06d0060def8c4bdd29e8ca37716a1c53877f70d1eb38260d44003e833c538b20bb4960f0b28a7becca5c9b29984e SHA512 5a236c501222b577fef7d7190882e20e85cc6deacf9d1f6a1d710893654b53a91c7d47373f0d10e9bfe138dbb2f4e99802deb2a92001bae7e130f6558ed9d1fd
+DIST compact_str-0.8.1.crate 71371 BLAKE2B de7fd2b980a4b34b323010fe559a94e8b1aafa30456debc039aefcdaaefa48439353139a071e440b3bb136df166aabe096774bf3f6a7b91669cd5d80e4a24408 SHA512 146e2a6be6cf948981d51f9034f0aaa1a1563debef58ca7fd3110093b0f4333a9a6a3c5dc7cde25b936d8dfba72254bfacb7814f86167043431ded9c5797417a
+DIST concurrent-queue-2.5.0.crate 22654 BLAKE2B b490e76804e45d6a7af6bb4ec074fb370d9ec7cd67c7ecfb55d5ed53b9b437c174e678add915303559e902ac81c8751dccb2c5ef0543d5961713372fd2b08d3c SHA512 235704f9161dfac60d2a6d2cf96425e39c097dcde2f005187c1f044704eec66d8303d59352cd414a81a3ed0eed60421054b0070a9b8f69065a79a2519e913e5a
+DIST console-0.15.11.crate 37822 BLAKE2B 3233ded5b40254fe62d04f2672bf0a8239cd506511a6fa9dcc3ea44b0eca2aa4f586f346b83da3cb354a0fc66484bd1934ab07b8c591834d9dbccd17d149b642 SHA512 ec294c8ba995d0b4769f2e71f3d1918d4c0ef884ee4118ab88f2567a2f0382be46e24eeb47d2bd7947a14c2a54e22760f3f2bac586a372236f25ddca7568c7e4
+DIST console-0.15.8.crate 36364 BLAKE2B 467de2c2fbfe31688cea20b338558ae9671e50ba1fd07983d21f32d7eacb73e565ebdd6ec5e78b2ae04446f09615c70983c0ee534e25ca5a28fd1b408acfdf34 SHA512 b05e49ed145785e29631d481885788f0cc5574d4d7c4d90280dfedaee7f8c1515072c9c4cfe6bd2e017230cd228157222af7e7d41a9fce697cd1888095df4de9
+DIST core-foundation-sys-0.8.7.crate 37712 BLAKE2B 0e1dd99a5bbb0fe92f55181a37426f6e86445cb20e355f553b3162c88ccc075644461731a0cdcd93dcca65b6cef1de62b409afbd73ba3070a199ab8e7422dcfa SHA512 17492d5314db03abdb3b1998bf0c396ec8ed0f83bc978ae22d6026afdc86c50b58cbac073b3a0d97b92da7e98be11302faf1249d24313494bc058add4f4cb63a
+DIST crossbeam-0.8.4.crate 10500 BLAKE2B 03212d9789a66c1eee7d1f4c7883eec1267089ab9d652ba5d7d59a22e04ab878e5defeccf8cff4587a34d976488ffa689bffde596588057d814b633ab3d67d1d SHA512 63650fe2d46ff2e593342b398c153facd3cb7cd72dac9b057ee0aac5ef5e9dd9df0e71536d66879676c0edaa89787d1f365eea35c82604ca46090e527749f994
+DIST crossbeam-channel-0.5.13.crate 91174 BLAKE2B 7a9aed6f4922c1d10e4ae12508a03dc7daca773adad6a317c4ea38e544d7c28c56a06623d958aec540fcaa86fa9051a1aaa2c859dadff72873f18f2f3a951449 SHA512 0f31223a7099f84e39e6b76b19cf26736e0c3907fffc2ed3eb0012c7984b1993570bf6d155eba5bfb82897ef0e4fc93b89096071410bbac256ca6be9a9568ff8
+DIST crossbeam-channel-0.5.15.crate 92716 BLAKE2B 089f85b11078942328f89f74faf39597e08b221c142a7f06859a65ca4f3c73f13d077e49d8d709a7a5cc0cc205e3f614a457bb6bdb2b48151f66edc9a4699ede SHA512 b5174329fbdb2a742992b3450a6b11e4330e1d542132acd22d0aebaf49332aad8ceb6eb4e52ccaf8617eb02f191f881b011e5521098082919672f06ac70a4e5b
+DIST crossbeam-deque-0.8.5.crate 21726 BLAKE2B d97b35e8e8858deaa7fa9a836e836d02914aad29e5c34ab121f52ed65e95213cb2574df82273277365889ea771f04eb40bb2439347c259979f1dd6d5e9853bcf SHA512 0f0c9745763ab156136227cf1415de514952a3f8282ffe413cc249f9f4b345b029940e6a6c87b3be8331a7c783655a35b89c7a2547360ea5ae10aa64ba7ae864
+DIST crossbeam-deque-0.8.6.crate 22471 BLAKE2B 02b854df171b0430ca8a40349674ff251698d0c322c317055da8678da6661730c945d86737fa4947c3bd824ffe402271ee2f77fd6a505d2d46b4a41454c510c8 SHA512 9368c0c224c4b84356f1d422d8869a5ab4bfb36b0ff69244a9e7a7304ed51f034001cd9b2bc35849df874d36ed34285c66574943573522ea32bbdc5a05df6989
+DIST crossbeam-epoch-0.9.18.crate 46875 BLAKE2B 200c256cad6011a3a14c4664bea6b150fce72d561c4fffc387fa561b08c0480e8756bf51c14874c5fb19f427424547f72d2cd7dd6f56fb8b6666a85f8d52bfd1 SHA512 0a8a199b9d77f4e28e91fe0a0cbff7e0dec58cac283631fd972477fa912d2f6ddfddaed2c695e4978b01cb5440b702822af6333e7c3dfbcb9a2c2086999516b2
+DIST crossbeam-queue-0.3.11.crate 15581 BLAKE2B 91b9797f985af06c854c38b8124cb67864bdb47979d2e253928678118515fbc1257108c7102bad66e1f65fd6f324a93749dde86b4ea28f3bb5a16491f3f56ed2 SHA512 c6007307ef9d219889e6244805ae759998396e1d0548e3664ce9ab366ea78917dee75251c4265b0e3ef4ab15b5c6d42d6a5e9b286d17ad42ec169e7fcddb8ffe
+DIST crossbeam-queue-0.3.12.crate 16270 BLAKE2B 75be9d53340ab72e5e52c940bf6ba5dc417d3245fe18c456ca68b460c7747f7d99340517fa1387c7153faa8a0beac002fe3eabedc8638d044e0c05f4c5b98d56 SHA512 a117977e55c0c2eca2a6141e3292dbc75ae5d80c087f0667cd767b9e9ee0f9c87084ceab34937b66b28a586b071e518a483684bb041e6410b2c3ab5924bef769
+DIST crossbeam-utils-0.8.20.crate 42487 BLAKE2B b50da06721cfbfff07825574feada8a28d3814edb218434288683eec31bddabe2ffbf7e5ef1281ee14a8a77c56db3b66f3c5ceabaea9c72317c1bd2cecda0c26 SHA512 7175eadf9fa7c526fa11ff87e40ff203f0e7a4bcec15cb972f924f3c7ff7cc20b6e2e8dbbc1ede142a0207cd2baa4f446deb25d825d28a54cbd25c263701bfaa
+DIST crossbeam-utils-0.8.21.crate 42691 BLAKE2B cd9015c41f532eb3c90101603f32d383f01e6880718b727d6d1fe46872ae276cda685e1b548cf77dd22bb1a05f0d4c4982332c2bde90e1743dbd7f51919022a7 SHA512 6f4aa7ca10c20da291c4714b56ceb1fab1c06b03b2f4e28e474e9aeb95ab6615a25462dc7819713652c3b5f6a06fa0f24ebc92c533fcf35dfcf2655857d975f8
+DIST crossterm-0.28.1.crate 132275 BLAKE2B 30a5bf5b48a4bddbfb53726b675adfdf6d64cc387e027a69d6ab721f5ebe574abed3a862504f0db723a733662fbf0ed13163730a7ab49ac9c7fc05681a3545dd SHA512 0d53e328eb606cabc3e309cc6193b34a14c8746081a7b2c9645c1c03d66dbcda99656d629c0dcfcd43bada7a863df3e83fded6b642b2474035165ed7b16f7931
+DIST crossterm_winapi-0.9.1.crate 16027 BLAKE2B ea63abf751aeab203f326e77260cfbd1de286be26acf714a083ae1262b0cc2a35b5cb6d0bd54f45b33c1942eb22f916141c5870aab34149fdb30faccf4d4642e SHA512 48eee242f477f43b69c00e3a5d4d255de2ce1774f6e73d869c5472b35d85af0b63f3a607097da8ace437b1e52a524ded4106767b83d4ec53c30c2e37ac4b46a7
+DIST csv-1.3.1.crate 888542 BLAKE2B cbb2a64cbde9c315bfdf2ddc3c14b2cf650595dda8fe233d8b84ceacf4756e72dd9b5a932e4c27b496c70ea5cb8fa1d29abea3d833b8169b6f271bc3834ed2aa SHA512 6b0be5e017b2b2cb926d11d7a36cdae1bf0ddb56165127f25f6fd55956f95a572ed7e054f863610e91c9c2329f5af0eee9678f9020644800587d6daa5a94755b
+DIST csv-core-0.1.11.crate 25852 BLAKE2B 9f56cea786b5b35f6fd5c4f41fc3cc06d777f6d643d939ca7d57b1f1a24d4ee16ae3a4de629e484b0e4cf87009abf4911dc4d1bc199968ef5c7f4100cd238d1a SHA512 0445c8a4d4d0f90f03e5d6507c26454aaeac0b355fb39d19e1676a7cb27b4372db3541367ce838d38151862b7bfbf19750cb550e24e74ab5e07ae9bb4edeedee
+DIST csv-core-0.1.12.crate 26298 BLAKE2B 6ad0052ff32aa788a784540a4c34f441eba0cf0ea026b2bffafc9bde2d1c253f758b6fc013c8f3378078d7f5da413044318da229255e1c2b34d77d8a7237a635 SHA512 f3b02c2d95db7c9af2636b0bf496dc721d0b880d490cd63d29c0b1a25f98624b4e072e6824788cbcce25d855eaecbfe33b0cb72cd013a6af600208ea660d99e4
+DIST darling-0.20.10.crate 32031 BLAKE2B 038c2a4d919a8e9ff6eff5f83911b40cf4e918ac27c90f313b6b9131c41770f83cc3901973fea1c6fea2886a8360f3c5cf73b807d14e579b8b8e87f15e3bc6dc SHA512 7a14eebc20e48fd39ddf7b8376dc937a04f561d723aba864432cabd5ab46eb189706b43e5121a7f4fb0d68dbfd044353875bb479d4bd5cd96b76e3571733ce55
+DIST darling-0.20.11.crate 37614 BLAKE2B 9bec875e60dd2971ad97a3098ec6060d16ddae7b4f85c0daa1326ab2411516c2da2eff283fcdfd091087402643d1a8db5db151c7792b97f75ef9722ef8219eff SHA512 62532fb9ff5f63592ac61d55a3f899ab90bddd380212637f380ae49e4037c3a3058055f88a5b5fe9c707c2884dc1333756364ba7acff74b0184050d9a063d596
+DIST darling_core-0.20.10.crate 65015 BLAKE2B a94adcc6092a7a69728725ec4bf4cb7c163bc3fe0890f272bba9963c256697bbe1ad964d58a975c80742019c59d4e1b3e56e624f938576996e216d2f99e21f2d SHA512 2b971156b8c1433dd0ddb2213ee522e2fe9968a62889285d1457b5e733daa70a09c21bca9b8573d9c742026b4c06f4dd2025a6a196ec0b08b25a78d8737dff6d
+DIST darling_core-0.20.11.crate 68006 BLAKE2B 7a112380a91d9e8bb5ab84ac50ee1e21e25aaee4757cd976e82fca912eb17941799f3367250af10ea36182c26ab4289d51bd003f6aa7fe686587c696f4e87910 SHA512 aa2a8ca52bf3513711ed97fda6825d9139e0bcc818d4bac7023455a96c035e7cd676d6e3ed9bf594a6725353923de7c2e8474de3081f6d35f0c5dd507b2ca1d2
+DIST darling_macro-0.20.10.crate 1874 BLAKE2B 29cbdc6bd63e4eb0731c8f8f0a50cfcae9a88f116f8cfc0068e5d3cddc20b42b7f0f20f128ffa0f7bcb8d72f0188b04b3838b8327fa6f3ab45de4cf5c3bbf317 SHA512 565b8d535248d9d88b49a58e2a210ecc70f1cd39bfaf029ac6576a9b2eac70a6b18b4930aeca746d76d53b745c6aa82172bb341c4844b3757fc7978732fc2f52
+DIST darling_macro-0.20.11.crate 2532 BLAKE2B 18b7a038f1a3aa245f1089f5608d859982eb82f76c9085e96f21f42ba83a65a076d5810842a4fd952dd4ee65392fd5d4e478f067de31ffcbffa34db2ce933d64 SHA512 4884d05a87ba1638b7cdc0a3ee2718c38aa255aa19547388aa834abe95159a72128817494f4184dfd1aa811f1eda385ed4d4f3e65fc8735effa01769fbbacccd
+DIST data-encoding-2.6.0.crate 20769 BLAKE2B 9d5713e63f6f6a4d6e5324fb0be9308a231ccefa20d69cda9e19609a2250e2cd72030ec28309068f71c932327a3ef680b749125658e27d35273354c3465f9931 SHA512 a685c7bbd251a5738b27ac3ac8121a0db049221510c99e0ada6f245ed7499d04ec29d725ad01c688ad283e3d2d5aae0751685c804f6d95cae84e63a160d04c9c
+DIST data-encoding-2.9.0.crate 21564 BLAKE2B 2abe5ad8772030140a67c015cb1ef5c0f1fadfb0398d0e73bdd8f93ae229955ef9ae430b28cf622ea3cff4ea8108159c05aa4d501eb6feb5b7a34b4a6c86fe03 SHA512 ec4edf4b7e9cf3f0f963de117e15cf4e7723587782b4520b01101e91880b074eca1473dc6c9d4e484bc2193caa975a7fc11ef3efb114354c491f13c86b149104
+DIST derive_more-1.0.0.crate 64854 BLAKE2B 4df45d1cbab6a46d72f72319b346f2f9f2d8006a404959d5811038a2c7719099a055763d3744704538cb32fbc79534cee2320dac321d6b9c5fded090b6936e0c SHA512 94f95fc1df70b57e40ba47bd3ebbbe75d475555fb1dd7e5bca460efc4edbbfd8e2403cdc109be90f04454d379c5c4c3d6b6b1dd9d9276049d32bc72e7bb1f954
+DIST derive_more-2.0.1.crate 70127 BLAKE2B cf20f53528e07ea53a8ad4e0cd9698eb44dd95a711ae5a969322518e5b545d4355d1ef396584bac07e73805cb44443a737a3f21e279654faab79b29e6d19093f SHA512 eb80e75fa43bda291b1437dc4df48d39570c3d9f94c758be5560bddc29170ceac6d9a2b51bf414729b8b7331d60998caf930b905951156aee0d07a5b62eb8028
+DIST derive_more-impl-1.0.0.crate 76182 BLAKE2B 8c7da3ff4737d21808d66c355d967a764e589f48c24cf7b08f82e771bda4cbcfaa37fcfe74d5a771cb0307a5b818909efc5b71e6cdc283e84611df88b7f66489 SHA512 12ffa53bfb07d24c601b0727c2a59284ded615e9bd83779c5877943c766b661aef13fcd463224cec7d3bea95e5ce3275df58e7d2562b4f40c72fc9b13de82caa
+DIST derive_more-impl-2.0.1.crate 78233 BLAKE2B 84d195fb78479ecde38abfb5311fb220835f4150a301ed01c0aae6058ac00f04ef5a9daf122ddeb180b18bd0eb714fd24a5ba72cf9100896a7bcc1787532ed01 SHA512 e776a931e98b1cd37a8410f6376831c7e3c5704deb57b8c21aa6ff6546b9764c32e705f9055b14cff6b0c802f19ddc7254c14b60082acc176f33ec33f781fdc4
+DIST diff-0.1.13.crate 46216 BLAKE2B 27ceeafb7afd45eabbbe22d1f05667f513a6062762e6b77122e267282a8f2a0bf96384989508bf10c9e13af4856bc9f58f09b10055d6fc2c32681e288ffa9f9e SHA512 45e259c9fe7c23bd9e9454891b42d4aef6d681d35ee039d21fdb05ae9ed5856161a40f29889e7880ac2a2daf85f1b7d752d213b4a99a1a74ed2682c18a3ae7fb
+DIST displaydoc-0.2.5.crate 24219 BLAKE2B ba3396c93d27a99a92ff4a0f01a8d192b419bad25e48d9427b76260ebf2f9982291d77f2eb24d239c0b1fbb097e866a20bc46dc1879fdfc6637ea49928444a92 SHA512 5ca35fa59f263162389c1180331e9df607d9374bcb056cb04bc46c98e4d87277162ddb2335ffa8a8c5f69218abc3eabccdcaa71c21b8dd9081cc4146f266b948
+DIST dns-lookup-2.0.4.crate 13733 BLAKE2B c28840a97de70192d337d078d0e04db5da0b0c01781bc245036dbd2931092c3e381a3792086fc0e84c6a1a0f92d0adf0366f41d4f48479a331a6de1e69af267c SHA512 4b2be29b927a8bc83e983b7caf24f3391dd1046b1d6b255e11edcc69338cec9d04fe5935bd01bed30fe2b551ed7f93585e92fac066e67479fe597acc6bdd87eb
+DIST downcast-0.11.0.crate 5976 BLAKE2B 4ca0e66dbd8dbc86920d4184de8b37ab41954cb1560c7727334c990b97ad9544b098f7ce50759d10cac8b9cb955893805aed3bac5849c8b44a965e24d2ac7653 SHA512 11b037a09829e3e93eabff69f02b608725e6e348a191b1b6c8bb044b8d820a6ebf46eaea2f8bf5eb1c156f20d3e97be9b581e1b5fccebbfe76d94157d6bccd53
+DIST either-1.13.0.crate 19169 BLAKE2B d6223c76421babf163a694aa513fe07adcf4cea329872c02f5af5956e89b2c353a899f5708e5a2924e5a92d871ba748490350ba30c17dcd78dd4379e229f6e11 SHA512 72e803079bae621d282136ab1e423ba71415bf12038b6f386f294cae68a67ad9ff16e4fdf4344eb3fee4418e853f9cac344c248f6befa3006d1c954668b36322
+DIST either-1.15.0.crate 20114 BLAKE2B 2f87cb6408b1e1a15ea19d930cfca3948d867d268c8ff18cbaf39dcb7f7fdc628811575ec87a7728940dfb2c26775995a3165ab9c17dd42880d56569b22c6f88 SHA512 d70c34d903e8e5088fd065a6da6673eadb569a20af183fa9bd6418940b37c8c2a777c44dbdab1b9960890cba5cb7464b805667ac42f4e05499ddcd4277d24e3f
+DIST encode_unicode-0.3.6.crate 45741 BLAKE2B e1e3792bc2bf9db7df33a516d0d755eef5eff1249aa9b2fd7f0dfcb155786c566fb619c9b2d73425a8625c8593988b117e9676c341f65e8795ddc838bf9881c4 SHA512 64193d6ac75f66d58ed864169b5d6228ede36dcf100614395e086bc8e847a3ddd287734d88e8ed50f38c679a99c80ec68449175a67d8ee03b02ec1cfa9d55e77
+DIST encode_unicode-1.0.0.crate 56986 BLAKE2B 76e8915408c26bdc909e9ff2d59a1655344dcb4ca0e6accaf038434b7518f1b86554954fda8c7874285924c7d16cc81f62e68afcb8b0efc639407b558df1470b SHA512 c9a21d48ba9d50750789cb6fbe32afd903c583c9ef05a9741007dcdf64b1344735f71dd882ad71ab9e5f96f8839578ca53bca14d13d57b9e27b8cce2cd507359
+DIST encoding_rs-0.8.35.crate 1381050 BLAKE2B 2db6797e4f226b3836c18496ed77f3fb113fbc075864fd264f23c4fec8396eb3a01c439985ba0586a4464ac4043ddd3acac80e0ecf897cb59569e5065ce2137c SHA512 4b55b53553c5cb6fe05ae81d1c6f3b0bab73ecd3d426b15c58b9de9ea8dd61617bf0bb2e6d3ae2514c7cb6e73019b1a083173d1423b3ece2d190770c597114c4
+DIST encoding_rs_io-0.1.7.crate 16969 BLAKE2B 8d51835dc0882d0e0512f0a177f10da3a1c384f38cb4eb163f957cc134ef5b7aee65d951cf65c99cc80b087e0e92ca4dae431e3a8987fe6b86bbf0dd1bfa8ef8 SHA512 0c7d33616e96fcdf225599dbf469232d150fa4bef5809346c4003ff7fa0362a1cded8f3392fb5945f4950e2b2cd71b60c93025d73ecfdd2ba4fda5e03a16902c
+DIST enum-as-inner-0.6.1.crate 12190 BLAKE2B c2162a838bb717ea7859d5c11ea820aa6bc79210bd6a9e06e4f05bcd17a3c92bdb7d98453d58911f96dac79bdf553730b58d4949d268321aeae324187602ae09 SHA512 e6f80a4a47f5901301debff47f1e88291ee6d29dda2805373ebee62f77c149a2c7f8d1188f8a365f2e11f5497025036aae4a4c3a7f570928961d1d25d6caabd1
+DIST equivalent-1.0.1.crate 6615 BLAKE2B 302d78069d9df05e78b53f0488a9e4eb98fa2bc1e21893dc8a0acf2234347ba7c4df4b9d6b380ae77d8ffb1074b9c790460fe2dae47318aa1c4fe4208244540a SHA512 b2bc60e804c1b02c461dcefcfd60fc37145af710d183ebe65f9a4d63f2b2072d23193f98dc550a9213c7fdc6a2a837af23b04a89294ebbb681a4aaf5d5031140
+DIST equivalent-1.0.2.crate 7419 BLAKE2B 7ce4fb7b911961cd4ccfb48323eea4952110a069789c6bd177a63391c270df861afadd00c07db7b22768f0864f320e429e0200c433284f528336e2f81d071eff SHA512 8e0e2dc070794a85b276e93f9e4a65d3bbb8587b33fda211c34479a0b88504c913d8bef9e84d7996254aeabe1efe4ff1ef6259ff4fe3f9ccb90dd90070b3e4d4
+DIST errno-0.3.10.crate 11824 BLAKE2B f9976b538868daba3cd2d47ff2fdcda16b4a436ca767f865f23d1139e7f232aba263dd4aa38d573442c762999c8a8beab8a4a8c10649d21b49090fa65ced1ec7 SHA512 fa4b9a368f254cd90c6f69f6883af4c579829a6da6f31481a1b527ac9602c8ffcb5e9518cdc32c39b5589c151a20e75a7300c8a907d178346185ecc6e8749f3f
+DIST errno-0.3.11.crate 12048 BLAKE2B 6d370edb0712b4b527645460eb663f6434784abe8749356674dddfe7a655fa888a9894d870c44d514186d1ce226d0d4f44955b926a10b14cd3b54d07c40cce50 SHA512 95f64e6e71c9100c36e52f2aa720d244c1a4d1182b18708773bfb4fc69ad55ed78e4918b69a96eb7ce9a2bf6d39fcc23236bb38473d3046f4ab332c260005299
+DIST etcetera-0.8.0.crate 13295 BLAKE2B 33069c496eb846bc3e602812cd2ed182c660ae06b8a33ecea294a5ec9e37a1fc15391cadc9fde23f3e885e506031cbfb6b7d036b94cc4f94d42b8dfa8ad0ec7b SHA512 857151a9af143c7149feff2aecee8fceec45a7a2ff64a8c1a482aef89ce2f91de05123afd7d22d67cd664d9ec3800652c7800affdde4ec317437f5d925883b3a
+DIST event-listener-5.3.1.crate 42576 BLAKE2B dfd8020527c06adae338e9bcf19076e70ae745facd7b49e8d6604e8508436b70b48fb1f4479214998f288055447186d4ef4969630af90e301103bc5faf6492e5 SHA512 98b7219a3959d6225ee5fb68e8b9d284ab03334d895f52a71f673e59cabab1d06a0abb9eab905e8d38d5f9589725c7c598355ae3c909044a23bc5830b761f5c0
+DIST event-listener-5.4.0.crate 43452 BLAKE2B 75a535bf9e0b6e5b07b0faa31a73ef803a367a104985f0cfd02a201c45cd3cfa1e51a14e6316ac2a96b1e99e00260a27c5e96f54f073b3b9027ae62c886cdc24 SHA512 5e35b5b467d024b6b05dfe6481cc69ebf4e942b9a52a478196885cc6d578f388c25387292c94f9da65fe53fb870ac328eb9a81179c93b496c1d39d27b11a36fc
+DIST event-listener-strategy-0.5.3.crate 10920 BLAKE2B ecfa6387d9f09ab8fc6d7bcaaa655fa69f7d732bf40c16549b12074ffd25b1d9e6ce19f7600d1be615ec72f5fbda85d0c9e0a19bb5c0cdd9020c4b9515d9f778 SHA512 f1a14f69afb9765a317b3d7bda505a28f050a7594d6b07e5263d635b806d494ab41c456dcf38ca924ecc0595be0f77e32ffe239107fce1cc5b71ee7249419f5a
+DIST event-listener-strategy-0.5.4.crate 16179 BLAKE2B b516f4b14bace1dcc9e7e6ad3c7b8ed1855530d0aecd1ed480b4392bc5e414a92634ca91b73e521e0344e264da2d7bb92ba6dc260cb38d532ac5b782569f7ea6 SHA512 bd5259083e87d6fe04fd0c3ff2b5a5ac3e6550ea05bf623b3c535465a2c1f2766bb66ee73444a80075efaa59a73b064def1f034e91e64c66aff4921eefc54caf
+DIST fastrand-2.3.0.crate 15076 BLAKE2B 15c9a1c4f64d94c4bfd38ae139c6fe19b6b621a495c1b57209edd6d76d978eaf018ba77f356b5086c3f462a6de044fb5e3b172fc288309569911a17ec39951bc SHA512 267fecbb7459c8840f03425733d278dd6c4e7637b85b99552877117ed5e8015e094d86aa95841f77064136b7f382276c3cb2c2bef7b2881d272f4aa57c5cf947
+DIST fixedbitset-0.4.2.crate 15954 BLAKE2B 91270883db5ad0e999ebbca1123d8729d3040eb936034ab8da3cda72a830e45fcb977b3fe3c2b94e870c1fbc366ee8602357bb77e8b9a40cc41a04afad1b266b SHA512 57c5d756b0a202b2506270f0d5e890f7617a1e0c015b6059ea23fab49cf7af47fd06927eb56feb03b37cb2b6c467e326b3f0da1e32cfcb6339cf11a130a3ccab
+DIST fixedbitset-0.5.7.crate 26537 BLAKE2B 48b7e02d7fa3fb33f05fb2de50a829e2f25d19ac680d59c754faef754ca4678d1671fcdc66d06c39b51b4f937bca44a89b87da195e43a4a905a0d29fa95996f9 SHA512 320b1b47a9f93590f24d5c111c171c401f15a50dc29617c8715b6c9d0b3f26e17f966a87d8628661dfc62ff8dee98524f3b6f4f4391725b1b77db714eb6eef60
+DIST fnv-1.0.7.crate 11266 BLAKE2B 81da85889c91b6567e0f555e37dd915f1bd919719d1ca10c31a6861d7aec29a49ae9c1e8bc500791bf9d6b8dbb318c096d04872c5872a4b1f7d45fbd8e12842d SHA512 2195a4b34a78e2dd9838caf0ee556bf87cbb4a8ef5505aac663b614eb59dcfc0c40f432463ede41ecca57bfe7711f72673d39a85fe03d426f1324097d5628334
+DIST foldhash-0.1.3.crate 13712 BLAKE2B e5913d3aa493d0176af9650354d98870b7e97523ca743a7d9605da3f559463654f391e42438d96fc797397ced449f13ce499c20ed5db7aec772aae97c5f29175 SHA512 844d5b699db632254dfc378d46e34909637118647250e2382cbb88855f6739fb9b5f1b840bb8e250dc8fbd2a97c9155e5d8fd0c5c760b8e02dd0aecd96818a5b
+DIST foldhash-0.1.5.crate 21901 BLAKE2B 22c3a266becac17995ac996f5c9caa8dea77e36786c50464e4e7750d8f3f13321a0a1abd3a9abcfd6ff441ddea257066b2dfb7fc6fcf7468f537dbd1b0db737d SHA512 3a634fdec410d87ffced8aa1bf8dacd9316a04c51424563d60b4dd611617041f09085edfd0ec96e6bb0e0db74a0e950b0616d1fb94a31667af35af1637604c22
+DIST form_urlencoded-1.2.1.crate 8969 BLAKE2B 383d3a197b73fba199220b7708e16d770591ac16725faf4efc1a8c230c569c381870d4a11b8fba623e761e68f9d318630b22101d461e67dd26c67e13a73358a1 SHA512 c65104e2dc08fad572bb31f981700fd43dd29fcff42b01c7ccdbd3d4c23dec12360aed3f1b5fc4766fee386d418a65349b2941b8735f788cb0d35d631a6a8dd1
+DIST fragile-2.0.0.crate 14668 BLAKE2B 2e589b312d7409a1a550a676303b9b2adf2e28b0d4cd02c7fb22b48a88d1f88a04e55c4405078e2c43b13ccada890a33bcacfe179abd12236c23f219d275c4df SHA512 a48fee7c13ad800142a9ef1f355b2200b904ad9bf97b3601e310bad2b6ad90ea235b9704964c54be1d9c415c9c95fbc5f49e8ba5d7c6ee3488573f3404912608
+DIST fragile-2.0.1.crate 14648 BLAKE2B c717d80a6ccc1af7ebfd76d91d2dc3e081cbeff258efb33b4b6ab6d462c7dc41ecf0d74d8a40c88434b429b6e0f458d3deb430e425713c70066edbb3db1a8d4a SHA512 2c1eeda0fe1ddc7128b313c66eb853b539c1e4c40379f5c16200935ccd6c29b63986ca152e2848c255220dac08b38fe3a62414ae11f7b8a9a675bfb2e7bc913d
+DIST futures-0.3.31.crate 54953 BLAKE2B 4b91470d3c85b9260c734dc6be8c985f78491b599d2a6ec0d1e824b82f684cd030be6f64179f7aa7c1d1fbc7cf0c5a1bc5bd045123b73461f490d7c2b9011f9a SHA512 a08d23cdac9e162d0e6ae72bd792201ff4e13d7ade6b498cc597149b3df2062b06814804c0750d941d8b5be5d2ab4cfebbe2d08a98d875d2092bf25e6e71a51d
+DIST futures-channel-0.3.31.crate 31971 BLAKE2B 2a59ebb73f998ec307bef01e997bf2922556d6dea10e2e6e8da9e1b4cd05a8bcfeef01bc1cc57d79c39bbd98b8a0d26871dca5c7641a9d4e9c2bacbb3feb4eeb SHA512 87e49e661cb12c1e03a07d3c94ca9bf5954344a51fa11639a118f5a49877c883387343af54639ad80e7196062a77fa7c9b9aff9804fb1e6ea3d0eb09efc53c69
+DIST futures-core-0.3.31.crate 14318 BLAKE2B 613d16e4f18547e45ed0dd56a7b908306393e479c379ff64f358844eacb1f8d37008ffbbfe6b1a4ed184e501ee9214db149d9cca31651b7d353ab4a99c8f5ee1 SHA512 d2f4c2476c4f480f724a880ee16566fcdd545579d3cacd2f16745812eed9ac4a7a88d59d4a38b163ef466c6f6b612b9cb06308a09d52256506a8a90e358db935
+DIST futures-executor-0.3.31.crate 17965 BLAKE2B e111467391cc99d1b6a1f5fd3aafdb86922a2d2d9e360112402d68489577527aa35f4f65e6c0dc8f48372927e6d7a6a4a97c7b9525c369cb14e34ca2dafbe64c SHA512 337e70bd3a3bd3075b51e2afe8f157902ebe486696587cc2706b6a5770478ee2ee4216aa9e155e9821ed1d02ba437cdd3abd0c05aa960378ea192e2ed39af564
+DIST futures-io-0.3.31.crate 9047 BLAKE2B 667e62b50be304b68b8437d93b734a0e2433d88a3b410010ed0b04eb2bbfbc9984454c3f0a591f720c9983582c6421d7f870f0733c31337c4c518112f52aea54 SHA512 16d21388f7ca083d2c618ec140cb2c0807ca621b8c338698c367d862b99133ec9edda828f051f3f666472c929e7bf7a5cb334fcf167109c7c392c5cc60b54fdf
+DIST futures-lite-2.5.0.crate 41117 BLAKE2B a1d5492e373abc8bf237812e2d9e30fcce583f3fdcac05d68aabc829f8b92beb38e47853836aeb4f660d4df3bf298a8988e65ec027a22f2c1ccfb97652411861 SHA512 6030323680faaac01cb46793b86be294f1e7d4ab062330f9f250c9862913b6a85a4038462e753ed05951c8067d8611791546c79bcb8e32ac3146b4c511be346c
+DIST futures-lite-2.6.0.crate 45157 BLAKE2B 987475a28fae8e04dac435867352f8f225e72041b6f73e97609d9c3179d89c35519d34e4dc7a08978337303c904f339549dd69c10f5eca0b0106deee5246a840 SHA512 2e896e15e7251d29f20fc39869432f3b7649fa567a59ca378bd76b67c62d5258651315972b6fcc292e99bc44e8c569a8b2cc8d3882af9ece3624437c0bf31f55
+DIST futures-macro-0.3.31.crate 11341 BLAKE2B d91ace97b854cbfeba1df90468fabf6313721ef72bb408ca6bee1c110b0162fe91da18d371b628513644f9d3956540d93c3e13bc9917550338f797967acc3967 SHA512 26c45dd8c037831ce3c41a326ddfd581784c2e7aa2805ca4d93b91e439f4d8c078293cd328bcd66d0283cbd5a14724bc624ec607c343d15193b00bd644b86166
+DIST futures-sink-0.3.31.crate 7958 BLAKE2B 7d42180cfe19ae42e2ff486d83ed46f3aaa4b333256d4c30c5a2ce0e0d0b05ae93516b029e6d07105b4296bf23ba29e6fcce19f0e38ecf59b53c6ec9cfe2e188 SHA512 79a57dbee5cfe98f2c003bd463d252648743f70d13e2054af072978b758c7cb8e5fb652fd2f36c760df358ad23d2893cef24ca6ae3df44def28f1d39bcf348a9
+DIST futures-task-0.3.31.crate 11217 BLAKE2B 8c0e0aa0aa14bfc28e668af00a3fcc2532950ca865a9f3935717a4a3770cb60477cd8f4cd080675379315b649fbdc5fee9dce49502f0f24f44db481a24c884bf SHA512 4872fd2f24b07c626efc6fd76c01b44d56efecb9697f972d0877307b38d3ccb06277ff029df38981470ba1f8ac5f93086123ab3af44d3c49bd9c10b6c9158a81
+DIST futures-util-0.3.31.crate 162124 BLAKE2B 69ca647a261fe24f90a4221d8629169a8dc7eff9dd1c4e07cc700a52a8609ce9b8aa3974b9b09e1ee64d0121d7bcb3efeee6fc15983347aaa0b0b23b068afc34 SHA512 429b1de584546b931b17d475aacbdb0c14824a57d960c44e615aa808e8c0f9c126473e313a7150b3de87ea91b7eebebb1041509f61b3493fee8a9cd2c75c4df3
+DIST getrandom-0.2.15.crate 37163 BLAKE2B 7d534e799a4711d01c6553b8c9422dbf01e384a850fb0f7cd76e444628f2b96d28d0f5e8dae042f8081a2bf9340f57c558be50a6f22ed5fa6b0301a15898fb35 SHA512 04789a53d3f4a84862e1e8b2113641af67e471b468de1222470d5e6cef0015232463a2cf3c3518dc2a533b3983b175a7c8922da00665bcf71c1e4e279b67e6fb
+DIST getrandom-0.2.16.crate 40163 BLAKE2B cf95b380a610313eaf068fa210bdb4a9e0b9211321d708f9877cd9e1901df0f6b7f57462a4937da3419c7547ef300291deb5367f4dce4ff776e7f0d9d36dcd8d SHA512 6391d5322f8ce2ea7d14062d378ae2ffad66622afd58b9f1732e5314b27d3a554c8a008f6d0d133640f11d769ac51ea4acd24e40259e14e2ffce93d5c3c1eb1e
+DIST getrandom-0.3.2.crate 49140 BLAKE2B abe823a8e91fdb83461007909ed447c64adceffb33dce63b18c6561e7c14263c66119370fecc9c564583bff6206800d5253704ca29be1824e210096abb3452fc SHA512 8c5ce6a6180554749a7eac237caaa852aafdcc92f052aa9b3eef24e10c4ec3794a0a1a1f35580d99dd864d464eb79121fbd19ab8f8780021b60378bc967e16a2
+DIST gimli-0.31.1.crate 279515 BLAKE2B c8924ce351af5b8f96ef757a189f7a9be14533c024d496c62037cd4eda790b3f6282cd3013ba82ecc83082acab1b60ea80b83e0fd5f8eeb381fd7f9df88ce0ee SHA512 b9c8c11547dc7420fe936b9f32a4f5ccf3bb68d1d9f39dedffd40d631360f6e032e719d858668826f1099b8a262e8096aa7ae1f6d7d3d7aaf47934d832715949
+DIST hashbrown-0.15.2.crate 138478 BLAKE2B 453888ce68b10cd6e93d787986603fceb29b83fe2dc417e7e57316b9e0060d0bba51ec7fb71d46a038662c99f60deac8237a8f349297208d1d223bcc13f0d0ea SHA512 d6fc0613623f9313533dfcab1240e97f652f78f05baa21419f7edb2eff030c4a2c5f426d3eaae747923cffdd8aa9cc2648340e5fc229395b5eacc6fae087c8cd
+DIST hashbrown-0.15.3.crate 140413 BLAKE2B c67ca4d608e82126b7411349135409d4bc6e4ddb561d04060b5e27f08c350ef3eae0eba12974e9ebfd894fdf90e1481f51e90f5a58f987b88d32e061235f7df9 SHA512 dd82780d0668d6e6eda00b0e2960ab8ad6ab7ca9cb8c87c9c276ad571522676075a675e757416094e382f2607629b80a419b00bb30b5612c1dcf71aa6a97c691
+DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76
+DIST hex-literal-0.4.1.crate 8559 BLAKE2B ca88420383532a2f2c09e188bc0950cedf74e8335c1e5b3f640dc80607d57bab0aa6967a536a458d149a074f8bc1025a3de99a9081787e7ac80dd8308fa0e5e6 SHA512 8894e48485be7e1d7a16d2e061086c524b039a1be24a4c20126d3f175e12aa87d6d65ae295da6dea88f19708f3f3a051c3c3e334196c094ace68a249ad57fbb6
+DIST hickory-proto-0.24.2.crate 372860 BLAKE2B 81e36f8e86f3a9884e4e22bab989d9183e9efc53c57bbc611cf99549c2dd083fef5f4f8f982e72147dc4c64c313be5d6fa3c56c8309f8384518ebb3df3c1a4ed SHA512 f3ab93d60f28ebe85225c55b27abf43613e73db645699c8b8291ce8cdf76dc66bb0160ad0f1dd4b3f7e01e23d05bcf0fd702f2753d72ac0de62c5b5f2256f275
+DIST hickory-proto-0.24.4.crate 383461 BLAKE2B ef8becb4c199a3f05e2a105d3ab432d37e66b381b72cdafa6bef8d4171bc0c5af973ed0e6f875b42af3bf0b38040a7a07280a3acc20f0a3376c9c82663477749 SHA512 fa1e5a55a4d5e449f13dc6179c76d859b8bcba70d3a434b0915b3f99644e7e3737fef70f9c9ee38fa005de6e08ff588220cb6872372936b1367b0043496fc678
+DIST hickory-resolver-0.24.2.crate 90292 BLAKE2B 7b09d1a954d3aaa89d2b44b180ef922da3068505432361b1f4e522bf386d381dd788830313b3257c169d74fb0d3363de46e518db9710ba83c61e34bff007fede SHA512 8a6febc9036a163a5c5dfe83468ede61121270763ea8d672bd5e32277becf84789d32e62074dedb49fc88a51eb19589bb0b489620eb77a3d3b6e61df21e9171d
+DIST hickory-resolver-0.24.4.crate 89596 BLAKE2B 14d653c393e9f3d6725509a9c20440c8ed1e8bd04dadd2ccc0f2151bd3b6cfe81981cbb0971cf82c05e479e5ff750effe49412d1a6f2e3ad40d615321a40e702 SHA512 780972e99822518937e97ed24898a788e70ef4ea8cc60724c956f905f281312f877a086ad44aca87563de828e42c1c33b94ae98b34c7a5de95711403c978c7c5
+DIST home-0.5.9.crate 8760 BLAKE2B 02277a6d0e54a88e62a50ceb5b50b08cd5dc1ca5ddc17a799db0f49a17fee8560df53f616ae22cd16020ae2a89ce7c6ec22e5e2c0d513405bc2859a6e3ec61f9 SHA512 3f1f7b619f1a47694cda92321a11d66ebbb2dc0b0c33446a7a4b886f547ee88231b61c038de04bb82acd50e617f19b5085893b8401206d32cd54502033e04bf1
+DIST hostname-0.3.1.crate 9272 BLAKE2B cafcae4bbfadd51d058e3daba3e63d897bc3418723d8e843fd941d9663dbc89dba131c77d14ce7a5da552650ea3c40c4e418c88d465f1bab2fa20c178596852d SHA512 a90407996353c9bcf5b76be03713e3a0455ac80a50892e77a508744cf436a938ddb87ef97d8cc91ec7dc4353cfb7bca0fd28c90a72f8a9ecd4f29220d174edf2
+DIST humantime-2.1.0.crate 16749 BLAKE2B e2ae8325b037fb175b9200cc5c1944ce579056c6662cce307beb6701894552362a25e371aad65f8fb9384945b48815ca74bb8b544a32e0a5845b7edd30b918c9 SHA512 3bf29ddd1391d82897c22baa0ff3ed58ef6d6959859f1f8ed54d324caba5b6fb4422e56790511ce82f902cd11467f93c8ab7fc7b0e0bdb719308a4d0a446ae0c
+DIST humantime-2.2.0.crate 20646 BLAKE2B e59244e3df7b69c6f8390c62a616d16363f87cbb56f6878d56e362dce5044718601626cae0f8719955217634c182315578cbd598b83cacc4db8ad45bda0d674b SHA512 caddecb807356aebe8efdb7681caa70b26f751a4dd6e67424405f04b63106ea1b55c647e999b2cba93a428aeb131dfb78a2f1322e5924550869c8efbe4c2439e
+DIST iana-time-zone-0.1.61.crate 27685 BLAKE2B 2091f0bdbfae3f63ff846e27136d9779a2d65f85cef899ea3ab0ff7c987329e6a584cf49c57de566f08e0277bd4981ac3db30ea0cec6a6757ed50d96e2c6583f SHA512 d16c67f435606334042c3a286350db46ff3409f142c0782509b136150b4069aafff0dc5c2ecfb7519dd8d105b9a2e6649df2a7bec33ee3966dc94034c9d5a1c4
+DIST iana-time-zone-0.1.63.crate 32919 BLAKE2B 252417d7689156bfef5386f3cddb06703f033324ec7c3223e6db44cdd62c74ff57028c8a4b93f79d079cd69449f97b35823dd6cae712f820dc04a4f0a7d408ac SHA512 9e595c10884bccdbcb171b547ec0add02ccc2c126e6c0372f658bb418c4b4972c031c5fa547f0b11ec8c99a52ca8f5e97e9f1d2a8a6a0f4fef30b5ad15d179de
+DIST iana-time-zone-haiku-0.1.2.crate 7185 BLAKE2B 37fa14b589ff092377b9271c414d4e584c5a531f13f70ac48df26df3cc03353db635b4630ba192fc65b800cce11823e91b91f03dfad85e4bed55aa18398156cb SHA512 448224ecafa935472ff6f0aab7cb71f9dabdbe71569c4b94fcc65baea925ef48841577687c9a31106a1826c2105e8dd73c748e9d27fd002648e5b0ce838af6b2
+DIST icu_collections-1.5.0.crate 82762 BLAKE2B ab89336790ceafe62dd72f0aaef16a6eb47fa5e41424ed990e6c059ad431cdb3dcea943436aed0bf9c6eabd7aba12d255a2233fbbcf9cf5f666ef1dfd5b79a16 SHA512 127f1c91101ba69405b10a2590579606df766166fcf1fe6aa9a74c4900296425cba5c47a391a53a01b02026af5581f068fce4a7a400179809f7ed9922b94c0db
+DIST icu_locid-1.5.0.crate 55131 BLAKE2B cde2b988f0af200b8e7851a66b8ae08881670ad6ff79c5caf5135a04c200e5ecd0acf27d8856fb0fce46d502527d506095f469c28f325b9b9d21d2a3657149be SHA512 4b85f0e7cc73166a542b2e502b3ffae1f30d2a9609ab83acf98e90b0edb37fa8ae4592f61ecf48a0ae0779fdd376abeff59e1d5cb97475012eda99ce2a97da57
+DIST icu_locid_transform-1.5.0.crate 29094 BLAKE2B c7bb5c5ed273a6a97279d4599f612dccdd796f3ae717411aa5b21949721989986d8b766041b9c7e49a91cdd42a48fc965effb8d7fb6d33554926d203a6535953 SHA512 1779078e2ef9859bee2bfd5414ad7e4b0f0a40e6813f4ccf8de2bbe8c764fac7f99ef001cce22332a8b3840af22e9c7fb7cc0341cf8ba61303794ebe87071e63
+DIST icu_locid_transform_data-1.5.0.crate 44727 BLAKE2B 7fc5408510886bd7b7d796850a542f2c1d759d2c67492b695245d46b34930e3918513cae2699963f603d2bd02484960b05afd58cefb6c3152ec201880366d44a SHA512 1c00fb962eb4b8c759b1120313bb890f4388d579890d7450b798d6266a7d6adcbbebc8a8dad2f267668ca6f1c059d0bd2209eafbe2a72f4558c85258eba57405
+DIST icu_locid_transform_data-1.5.1.crate 42937 BLAKE2B d9d1d66a556ba5383abe07c23cb96765312fe9637aeea50d030488faa9431cdeccfe42a5367d84c8fddb7a3fd2550fef106876798a1f020821ebc1cb6d32cbbc SHA512 fe5b5563248ea0c78f63b8f5fa19b7298776e0d6dca062af108e388565c932d098b98f1e7eba1469c705184684a369e9d142b3123b24451bf5084bc7b83245db
+DIST icu_normalizer-1.5.0.crate 53113 BLAKE2B ccd58f24469da1f237ed9a349f0b3bdbb49b8f5b1995d6254c6e3eab53a71208ff4a0b09bdc68082cdbd288df66499efb19555f41d12a19205d724af22fb504c SHA512 22612b86a24e3ea222469392763ae9d40dcbb37191dd8b9fa1c64332463a4299a53275a1cd3deb7e0f057d137f4312d990762f9925d0ceafbc8839d67c425a13
+DIST icu_normalizer_data-1.5.0.crate 50561 BLAKE2B c7b8c5751c6d6df03b23d63855335ef67b34a0b13b15f1f8a8986943b5131874f5205155889e12253692b39918256fe2cfed70dfe2087011683ab9165a5fd786 SHA512 222fbb819791fb4ec7889e45ed3032ac8d4753e2e9cdce9d0b3f79128baca5ce64157a8a58ecdf39cfddb6c2395001e3cc8828ed51803e85cae133c247cb338f
+DIST icu_normalizer_data-1.5.1.crate 50737 BLAKE2B 3beba44344a525220cb64bed28c1d869d2df0cd7091c92841ed08b1a82b958e61d388653ffce6dbc49781a8a157d427f7ff89f0b5a3bf874d1dd3f4461a1f00f SHA512 372ea6d0ed10bbba7392cb563997dca1601b3799c5c9ae585602629cd064461d096bbb0c624f14e43ccbeb6186d28d2d75e7f2ae98bc3a5ccbc0893b15dce7f2
+DIST icu_properties-1.5.1.crate 64479 BLAKE2B be7d3a1663664095f4af654723ebc74f385a6423fbd3acad325ba0d6188dce9d9321eb323c1b1d8e6d75fc9aaef3d873b609d7049525d2402456c6331bcbf486 SHA512 7e347c0a02a41a3add950290bee90a339091a713546d4369c2995022e64f127f54204b0d46cbb88f396b3bccbd4cf12720a93d8551b73926f78fd5ec01829cac
+DIST icu_properties_data-1.5.0.crate 227993 BLAKE2B 3b3141507077dfdeb4f89316e63e1a651fc5570cda58c6c2d566130858ff67f900c3b151113e6303962fedf1d6b6d617601b21a08c4c0c98e6bf135aace6f299 SHA512 c651d0a50c229acafa648ce234a73bc1d0a85a8bf2369fdadaa62badc741c35e8a7d5392fb1bdb7b720fe2e0f883d1309c78de4ba913691969e5367a4e8bafac
+DIST icu_properties_data-1.5.1.crate 229231 BLAKE2B 9bf61185e1e99f213fda4e28e0fe196e9884de0bf00783357607ee9d055d43c4303e611248b174e7cce0df3978f028d15188503160ae2b08ef9696f9dc835d35 SHA512 f37bb469d33f6a0d5126a37469783bdbd268dee081cdcaa8d18461c8bcbf91b08a75ecabe6df8c47e532838c95816778ae7aa36a22571fbba452d84fa6d63228
+DIST icu_provider-1.5.0.crate 52722 BLAKE2B b1e53ac677e2db5870df0a91de405ebbc635c3f7931960f3bd744b57350c7536116f3861d4177faed2145b79c1c957d79815fadc2dc85faa656a1f0bb338a16d SHA512 6c11d89c7d2b788a44757f02b0e298b558ebe174fe917664401d91109cdc7bd1aba5526b3cdcee1f066018de1b775bc9dfc294bdfb40476c53d552bd6f29d6a1
+DIST icu_provider_macros-1.5.0.crate 6436 BLAKE2B 7405924dca41db72ce422437434a4affece69f888e5c18d2a92f761a8d83b180f40c8de9a34ec15d0e107b63b2fe0502cebd0a0ae6f98d9d6ee37d197e754703 SHA512 a0dd58d731556a010428fe4aebbc9dbcd626b46d380cf28ba5236ec8824045a20f6f2ec986e0c1e791bc8bc2b692a10306f448279f079b4c37237e4a3c3cef63
+DIST ident_case-1.0.1.crate 3492 BLAKE2B bc79ebeefbb7e3ed1139e3f41d8d20fb175786bb123bdb9c1a92ea70effb4a0e5e798f24b068cd66a1bf20d53eea4bf24de495b5568c2d649ea804389a1327ab SHA512 81003a43f18da5997d644319274502e2066af9f9fd1400afda7cf2986b3ae0b7355b932302723cd3bda2d46b264340434d9279dea58425bad13785698d5808a9
+DIST idna-1.0.3.crate 142515 BLAKE2B 6835a64772e5d301c2456a94f8f5f40ebe6828aaeb1d48e3fbe015917dc3ef95ac7cfd0e1f1763e23950482f4b46ef7987928c8dfddebab63947d5a29fb490ac SHA512 e75ab18297878df11d82bf3623b005a3dbf7a6fa38c8f78830c219adc7d6f4ac07dce24a5f1186de69035ec316421319e487396cfacb053674137342d72a4126
+DIST idna_adapter-1.2.0.crate 8206 BLAKE2B 5e8d7dbfea699584542cde53039df9d8c3dd408efa2534f11fce7086f679872c45d9905d6b2cfe523148eda3bb0cd4820a7b14317f91725f3d9cdb475aafbd57 SHA512 1d8b54c19878645749a1bae768dacf353b07d266f2cb3bfa1071a7afb56ca68f534dc1d54cae277b777bc97e5986f297cbe2051a82e14f553ea73cd723d9da7e
+DIST indexmap-2.7.0.crate 85335 BLAKE2B c7430ef510738ac5fc4658f3e4d927ca5cde780774a07848791ea87503be09fb4677c52803f6cdaaed73eee600f47e0595ac3db74a498947d0e180cbd10fb7aa SHA512 efac370b9f365a49489aa2c5406eb503044a4df7d6ceb772e0191b02244b6c2c1bf6c43ad4c8924160c1a2bd76d46c630b500a1c4252fc52366295d1cb04b48d
+DIST indexmap-2.9.0.crate 91214 BLAKE2B c1ff1f45814b84daa854a692e22d385598bf30121e39cdc3de800282b187a39588797a4b187cfe8075eec77ae64bb5ce6a80939cc2cbbdbe6e17e42459ca71cd SHA512 ac474dea5da1dc14a61a28f5b4c850073875030ffad3aa871211a8b075a3e9a64cc748310b4554657f45a70d526010febaf3d3992a80502db389c2347aeeb2c6
+DIST indoc-2.0.5.crate 14396 BLAKE2B fe838c6a855d6ff7396675a3fe9b2e0b06a93cfd4013b0b843d24d2fb81f6566528bfd1753c649646f06cb7e59262bd6ec3ed79d4e6f01d740cf0682355f2e5a SHA512 095fb56a3d87946c42a63065a8b276c2d4b9b835800014b400bb987593bf56701bad9f55d947f090740fdb7641a4f3c87fe8bfa5724709e95254d1e8e2e3616f
+DIST indoc-2.0.6.crate 17164 BLAKE2B 1a6cff95bc12ea885ef36b935bf4f1c7870d65be0ff31ffc67dcab904fa80215c1254c1803c5d0c5686252addfad3512e9e1ec79d3edcba026a879f4706926d1 SHA512 e2ea2e5c8226c802bbe0631c1a99d2edd088cbafbf978b2a7b71c7c7f47754c6d4653f466e286441b61cc46def1c7f7a02d4785caab93a61dd785211dba7d1a9
+DIST insta-1.41.1.crate 93609 BLAKE2B 876dce069d97d69417af63d00a2c41954ce5945c936831d1ea273c23739971ce246010e54f2405a2e913a93f17b8da695f8bc25ff8f921cb98c0e97119b91c9c SHA512 6526c9f14c7f86b1592464e5e260722a53b13c367917c36ee55fba1d237cd51fab9d39ba1ea7b76497e08896c2c175cf7d18756891ba9bda0a2233232e7fe178
+DIST insta-1.43.1.crate 101047 BLAKE2B a664955917289c3e22324106803520d858e22e48248aedec2e11077257f97223133ec0191b70950d72f1383977480a3be6b0f62f766613c0df205ea39ab4fed3 SHA512 0b633f1516757cadf771e0737d2e07c7e3638467b6c311c5f170457f95adbd2395ed6a2195c32f9907fcece1bae5145b29e31de0f19f6668ca5aac8b9dd9b720
+DIST instability-0.3.3.crate 11591 BLAKE2B 19a0565dc6c6ee9e71020280daf71f985ddfcc0381edea4c47d67663bbddcc9593c9eca94b98df493914f6789268cfb4fe09e79213c9f5b9d09caa0f12b970a6 SHA512 73198bb259d88d812cbdea2799e850fd212d2538f284d8141d43c6644195c3ef3009f10000880c83acbec3554d7a4a3a5d0f3afd4c802ea16e49a5363511d9c1
+DIST instability-0.3.7.crate 13682 BLAKE2B de3301ca10c8dbac2cb4915e6b40450c8bfde1e9c2842d0f11372ed7cfd0ba3309c1fa9070d97cc8847af1a3ce2be59baaabe93d0c1bd1640c8fd6ff681c8875 SHA512 74d8c2f06b6a421aa661aa90f3fcbb442c716a6309619faba32d7d781a9bcc409b139129af3a1af88c72477a1f9e1bc66d6ebd49da97915a02660edb23a368e0
+DIST ipconfig-0.3.2.crate 24468 BLAKE2B dbaedc8f4ec23fbbe48a8c79f16fa1575b8374f055237447d12eb009694067a82bd54b503f73f9520e9b731dbf2b7797ee2d6fe2c07ad3946146b32cdc68ad0e SHA512 6029a7d453db77bcf397580fd44c5c777ce6c288c251376cb591174e9fe0aa66b49925764050cc9bcb2d656a8f6c4af0cbcd6685b2ea4616c2d2cf8de9bd67bf
+DIST ipnet-2.10.1.crate 28407 BLAKE2B 50c27384d58bf57ad2c3dd0ffe44f1ceb1ae302dd40e451b0c0d69f227050fae17c368c417666c1ec9d087caf775132db7387d5a6c919a0863c78a151912ea64 SHA512 7f55f23b2b0936e3a7dafa2db0447dcf1b63a092df4af8f6fd88a02ecc8f0a290b0d21b18fe777eb573201bf82f56ae475a447650ed0803af676b1e0c0970cb4
+DIST ipnet-2.11.0.crate 29718 BLAKE2B 5cfd0876d2c45de886a069fa564d5bd0d4bc53a62ba445692b35c12ad4e3197d9d42b51b14e31bf79e7b8ece129e4612dbf47c90ace5e2e5a9f0e478bd6a5b1c SHA512 9d3c42b5bd93a792ac09975b9ced105e6e8b1eb83bfe012aeabcaa3fc388ee2c5a0541d5cd6dae48dfb97cf82aa970316962d231b65298873136335ac3e5ddca
+DIST ipnetwork-0.20.0.crate 16556 BLAKE2B f6da9b2283241101279ba510c641a287107b2c27ebfc425af183ca342e4c049915aae2a2107bcd7e8349a47e07ca1dae118194acb71b7b756a36f498a6c67f8b SHA512 a8746f25abb73820cdbaf758f537c726bc9f48afa82417361d54c41bf3b86077e5901135ac5e305e2f669f093690ca518c811c89793d107b3deb139861462978
+DIST ipnetwork-0.21.1.crate 19565 BLAKE2B 095458b01e82d4e18f059c31e8661a86ad1f956c6ad8a8fad18632a4900ebfe810c035f1bd83a45143b373ceff15a37b66bf7e042495b88b3a184b4f5fab3646 SHA512 97ff3dc753c20068bc5aa0498d70412d2fa2a06cfe0ff923465e12ae3d3377b81726e49d25de1e8b3bf870f512307569227b5aa7a9f7362c03ffd9137f92f720
+DIST is_terminal_polyfill-1.70.1.crate 7492 BLAKE2B fa663f858ab8e5fd56202d731b572bfdd4ab0e8262100424e27360a9ffd2820182bc57d6718a305ef82d04c3798111841c0d9f9dcfe219765c0f63edb560dc1e SHA512 4730fa09401cb4e69c92b38b2b43afd74699c61f5bd7b37605efbc0c08ca7a1318d43e4a844e46e0f84f83f42432f01e33771be2b18eb5977702ab9f894837e1
+DIST itertools-0.13.0.crate 146261 BLAKE2B b23d59a87f80d24925bc868c0ac7abb6b9d05aad5ca08833634ef760ce228a1b753062ec4bd22237d0e74727edecd7ba3df9789cee896345b69780d7de66866c SHA512 c6cb8f93a93b6ac1a2cbb3033e66fc81a39f83be773b734bea3311332b96bc71bbb518aae3e6b40cb537590c23de1ca4964361c336795c3985bde63232d410c4
+DIST itertools-0.14.0.crate 152715 BLAKE2B 3c075b735a6ae4b66980b1f7ca0ccf4237286b140268ea179e4ac01b1349105da227f03ea9ea721d3e762c3cf8b736cc48b6902148eae73addd864b9c79aa219 SHA512 bb168e21281ef3e43f9c93a079fc1938d79b6db2366fe17e26a90f7ce6fa55df73e54a06334cdb2a7b208b0a64473b5af9de76827a9ecb49378a5f9073d2e645
+DIST itoa-1.0.14.crate 11210 BLAKE2B b2d33dc384757963eab3ae7d80bb672d828a549967986e3af8c70fe71a0ad46c4a278da2db4dfccef99e804e6cd4934067e97c0697a33ac3302cafbc46eeb416 SHA512 ea2d38df373652ddacccd11e610dfdad4e3ae7f0d476514e6ac58092733c817bd834e8cd88c3bc4178dd5a646ba628ae626195e0aa407e8534ae3c2a7b049987
+DIST itoa-1.0.15.crate 11231 BLAKE2B 17c261baf95bff2f6cf0dbc33ab78ebbab0cf5dc56aeb7f8977377af868deb5957918f1763c2fe8c080e931489ea89ebcc16b3ebd976eeeb7663ff74989a1071 SHA512 158ca5dd4b04cb12d9292a4df63c72443adaf5aab1bd9aacdb964dc58878d847a64251f84897cb25c34648d4c973b44fef5b4c175d7c04cabc2c13b4631c2e42
+DIST js-sys-0.3.76.crate 54420 BLAKE2B 8d211aee6d8af87c339250e06e321bf02d2ff313b80505f696f66c43298e2aee8286076f2b291aa853730f8e1b9940f09c56535d3534fc7990aeb16653844250 SHA512 54e9a6be3f5a19021351d22d655a3aa55579c80f1453a99aba5989fafc7429078dea57ffebada4240b9185d3260d02f30da250fa539ac12c4bdda975adfe0dad
+DIST js-sys-0.3.77.crate 55538 BLAKE2B 8a4c04a8e93bf5dab63784a24320a314cc5cb629df788e116c452857b8c049c6bf357f3bf8f35086eaa81bc2d7f0954001addfd0577d845844871ee138e81bc6 SHA512 d9370ed6ea892bd51ea181630ca661c348f82d575381aa4c8b529113dfcab6687f4d19bceecad7e1b28ebaca74d405862150a5b5ee2d5d55efdaf98eed1ab255
+DIST lazy_static-1.5.0.crate 14025 BLAKE2B df29e0e3d1c061815bdd608b41074436024dc407d454f32517705ab04b2fe06075e310086c5e4961df0b4885e91021589d0bca2c1cbe6f0aeffa3ff1b3fd4637 SHA512 6d2f9887cd7f34f019644e42f02f2bf0111accd73aeaa60973ba0b039b6774670debece1ea9a6978e923208ef5d3ab7326473ee3560c078817f0f7ab8ed0f65f
+DIST libc-0.2.168.crate 757025 BLAKE2B 2597fdf5a77345754b8c9168d9f07f83ebaa0413262b94ebb19f976f49cc2c47893e788ee2abb3d00a995bc8f99b6ebcf24abbdb320e18037e779e1241599b44 SHA512 499f7273ab5eac0961fd927d5204ff4d5b3b290c20d00ac99054ee596b6d3ec4d6712772c52b09c84554f0514a8f66b41995ceb5b0ec38a7295a4fccf0e94349
+DIST libc-0.2.172.crate 791646 BLAKE2B 3a6eb0eba1e31cf89ac792a8e667c0f68b2a0e62502710ffe77c2b06321103a30ffdc4516c0a91fd3ff44508d5304dfb04ab919bd3e723e34c66b560a20e7f86 SHA512 7bfe400ee65c1b7e540fd19a9b7eb1429a66863d5e94ee7caa83a227d19a4143316d3b401013fb7f88c8e4cdb1a40cfbd58826597c8e23799e02e29553b67e34
+DIST libloading-0.8.6.crate 28922 BLAKE2B cd9d7c2652bc4b0220e1c29cbfbca41f44d12d76c4dab3d025c21e5d317407ab656a88add0db95f1086934a424f55b4b413f33cb2a52cdcadde7641f9c5b3fc3 SHA512 f49ab79244d4b54c2f181bd9d7506fe5df9824a09446924dc429636e08ed7bcd6f5d2afaf8a0c862982e2c2c5832370b118266d36f36bc7b7522668bd598fc81
+DIST linked-hash-map-0.5.6.crate 15049 BLAKE2B 0f30e388633c60433dcbee353507f1c6857bd210f0b61a4d166a9b95067bdadaebe49d5fca4fa6ce13072e26037c6f75d46cc30cf8dc3c9cfcb3f33b33630093 SHA512 031a87645381c96beff33572e4bac1a9877e52fd2f99d39918fbede17d72291b35e2eb69e07edec20c3058554c35cc38fe85b8f175c2a3c69366136fcc71f707
+DIST linux-raw-sys-0.4.14.crate 1826665 BLAKE2B 804af73daf396bb20da14f831f26ce06325181de14f0c277350bd22d21789f2bdd663a964cc0e7c5cbd2e084285d02a401a6bfbb3e8a8f079c120f9488b56f99 SHA512 28149660bd975ede05624af3582d5c78f498239f5d89713c2c32f5372fc16f4ca024dec35f81ea973a2cf986098890395dbda06ac6cf4ee29df3f9a0e11eaea7
+DIST linux-raw-sys-0.4.15.crate 2150898 BLAKE2B d1936eb74377d9bfddccef3830b56eb716c38ea3cb7e13b73325dfd00f9fc0df74bae49e4214dd7f27c257403b8b12cd1ef332d53336279d13f7e9497caf4135 SHA512 b5c39181fb6b901abddd8b2e7b449142e2e5691cddadb8e6b74ddc3b53076b1d410522cfa45af68dd18befd24ff12313c2494cf2cb0cf142e2228bfe42014309
+DIST linux-raw-sys-0.9.4.crate 2311088 BLAKE2B 261854a127942e528a09c79db0407974c22eac1144c9ecc9ea1a6f48f87a240e610932f5d911563d0e6c05c64b0cb302f86136659f8aca0d59f03946b2910baf SHA512 e98accb9b3e6f47d5753b1a370c61562d4c176fe1096188c6ec0d3be9e7e03d0ef2c08acb3ff4636cc4f90412b908d17f84fbdd99c5dbc130ed89b40b5145f92
+DIST litemap-0.7.4.crate 28257 BLAKE2B 52989ad353a782e9592357530dca3504e3ef5475bd2f1b2c795b60825d971ee6d3e6da51fbb6bbc26cb3c3303f6a751a3e15d1caa78c0cb888288a965666279c SHA512 5009c486a87b2f52237e15e2e772365424e4780c146776656d8e1551e52bc8e06e5c1cee8db1c59ef20d0463962fc07ba5221a46020a82df17a2f623a175f58f
+DIST lock_api-0.4.12.crate 27591 BLAKE2B 4504d146a114d8f8e1fe9ae70b993c713cbfe884dd69c61c54dec978733b95a853c3e5af26f237e48ebb4ee9dbebfce0f6c06067f74a3d122e92f5ace40e22d7 SHA512 525d971f495449bbd02eb70fcd84d4aab05ca582142144a5f314f9aa67ad4c5b4c98dc919a416d0ed2e555063eab037a441d671d56b633f2cb75dfab5d99bcf7
+DIST log-0.4.22.crate 44027 BLAKE2B 831dc5092db05123bf2e909eafa708339983edece9bc8cb802f0ab418d47ddc5045a72c1b58bc7c46ffa68080eebd0fd55d6e4f5b3d5ad3b0bc6b2ea0dcaace1 SHA512 bd7baa9c8a5523fd0864a53bcde955d484cacd782412b5b02c890b89dbf62137624da3a27337a310dd8f62bcc6606925a42bbd4ca161a3b7936ea4ff96bc0d71
+DIST log-0.4.27.crate 48120 BLAKE2B 09a2159032baaff7eede480062da30ffec1c1d4c77e76288467941dc13722ab1566742c1821326ca5f8c2f9f7597099e235213ecbf883fd93daf5ae9ad5ee981 SHA512 8d57219b76c8a25bae193e4d16d4d03bf0b8523e1ed3bdc80a692cabe00fc0359ae9bc3be989f04476ecda7187f27e4ad23fe260a96fcefc819af00fe12a1151
+DIST lru-0.12.5.crate 16047 BLAKE2B b5d7d77b4b29973fde0854f55c395edb6ea6e3a309fd33f0c43a6680955bdeb60fab624f02135b637d95e5a0e9da79890a71290c19d797f758c73d16c3d44a27 SHA512 a77230403b1ccb5aa3ed1ed89e7e6af53b3b34d4373e663c1a9789dada12c252e2b5d8b7ac78717c4c4909203c7ea2ce5743ee6cb414aa268c329b889d66a982
+DIST lru-cache-0.1.2.crate 9307 BLAKE2B 606072bc5390a13cf24b4c64c77ba7f84c4c2b1a73c4abe8ead4e1d19067b063888d5cbe478dc9108d193f0a66aa5fb2ddc073f3edfac466de34f85a52a15ef2 SHA512 ecc67b4b2ed8d3596816c47e9c6aa242c7bdd1ee8087646e90c27a60d59175f661ec3ef82058c196bef2abdd302d429b7ea4279169689254a9f322dfd5697bf1
+DIST match_cfg-0.1.0.crate 7153 BLAKE2B d3f40e5b16761fed337ed18dfa9db9e46aa2ad84ca8cfdc7cf7c72bea7cff8d084d95214ce013b3515bbe5b1ad4b8527bfce692569551e4588fe6f396a8a96ee SHA512 fd36f2b128d70a0f278e708bcb3274d90380229f754aed7ce9b808138b0189d5e1a07e0ba732216f788a530cecddcdd980559b3f71efa371d8805a213ff8f2d6
+DIST matchers-0.1.0.crate 6948 BLAKE2B ec3a5d01d2fedbb4dbf5bb185afbb9401410463a61f51674e0df6a571db352b2bbabfb99cdbdcfb4e511ae783165bf0258f5163f240a229b9087f9edbd0df41a SHA512 84214c1a84952d85631aa1ab5115df7cda223ac64e2acf055b6129ba1aa26ddc87615a8b51ca890ce3fee0419053fa7fe1599ae128f1d211b58c07b0c4af3b19
+DIST maxminddb-0.24.0.crate 20232 BLAKE2B d2f688399c81b047fdab1c0b87bbc2448f46f5a7c53ad365c8f8e1af3dbd5dd931c78661e6585feacd99ca9cc87646f1f95805c1dfeebbc5d185a7f632d837ba SHA512 bde9daab1e103c4c2990d103e65a05be68572c49e6b994a4326ab46e7d11de77a0f5291258fabd0daa6893964e9079d403ed3557c4c1cec3b1ad4b730f9ba358
+DIST maxminddb-0.25.0.crate 22241 BLAKE2B b3cd39b462be84355a02b79d94f964c7f039a47d1168c4634a3c932d2bfd9a2354c1307dee264863ee010f831004682b41c2c631aa78edb3a147231c946e5954 SHA512 d8a68b104c34826082d42a943cb47dd00f9ff9366c320dcd8c8f1b4ebbac34547b626b47d3eacfc256dd277ce005f5c058daf804312b7a8be525da2f76b1c955
+DIST memchr-2.7.4.crate 96670 BLAKE2B da38114beca670467c3e1fbf4e415af6f22d52e3223715d52e181babb89b872b46511563985bcc16d7ff4e82f812c6e83ad904b0fe2501b14445119dfa8240e6 SHA512 8d0e8b9c30208897d4b1b920f1bdcccd0c2b75d92a06abe4a1b2407938768abb6487d63de56c6a80419798fe69517210643dfaf11f5f5540185f0eccf220adb2
+DIST memoffset-0.9.1.crate 9032 BLAKE2B 0aab55fe084134bb599c52d77c96400db40949b1013e7037747ada4fcec8dc4a124b6f3755f04b36e057eb2fb4a6bd6f07d6eebcf166f8a71405ef434d802fbf SHA512 3a236c0f481e36973b9f805e454c2efe4dd375e6b4ee406b57145136c70d5fbf4e1183d563ebf3b5fbde7363bbf5f08f0d88e507aae5bda4cc75664ecd0e33aa
+DIST miniz_oxide-0.8.0.crate 56343 BLAKE2B e4abcacab4c8698d0489faca8556faa7bff53d272ea0c80e2e7843dc0f6f9229b7d5b0a17ae210344722a379853e7f14212505ee05da4e60549081cf77717c1b SHA512 044b641ce6d98d1968c1ee0906f91963f9f524d6f3fdf3059708177a759e1d498c63e595d3a3f0f9f3210c45c828b9b70274134ba078b899d7fefc2bbddbeee6
+DIST miniz_oxide-0.8.8.crate 67065 BLAKE2B 8cffe475d689a07246c00f979db6ea37d7e2ec3f8f2e6b5ac548f1182ec97e2ef1374e26ef275edb6f67814f33e32f130f77dc6731fc33f2e786bd9eb3ff22a5 SHA512 3537bb17c9d67c71b601e48008d44c51ba087ef4c827c5fc04b08ab09df92e87392c56b03ff52c66323f5923130580a81f4641d549ebb3f5f7e36bfab90bad04
+DIST mio-1.0.3.crate 103703 BLAKE2B 0d2360e4ef45f37104208a31e9aa467d6db041dfeb97403a010a36e1e1427f51d97f8408948c75c0084e6c118f058267bfe87d36e7911cb37366f2b1ac6eb693 SHA512 2142edc7e9378fc3437110c85ba2cee9c9683e87034cd44275d2c389645979db53fbbc29fec304f1d8c8f0464ae17d2a5db1aa9215d696fa0282f5069700b1e2
+DIST mockall-0.13.1.crate 22825 BLAKE2B 8365cc35cfd590b6fb86f4d14d52652975d855c6d06750a58794f3e1d0818bb79e815d6b1966bbff1fa13e512d960f48f660fe591333a04df413d81a8e1b390e SHA512 8ed8c2d5adf26eda8bfa9fc3cdff43d1ec95a5696258c33fcc5241c9846a73975cd0394707491440f4b827e0d8bc3d14df5c825fc6c7cf9f79312316c01aa834
+DIST mockall_derive-0.13.1.crate 47822 BLAKE2B 17d9ae282e165550168eb568df0ccc5512d7479e18fbfe02829803efd81b53dee1f660ed00b88a213575c65ba5d24944c44a530776708e63c57834c2c728c59d SHA512 3e1eab7f9dd2e0b40d41cef0311f0c360f42236988182c28db2199044c1d3b712ec4ead7cc5e6a89fc33df286e34eebc00a4bae6a02b4e8fedfac2158fccc993
+DIST nix-0.29.0.crate 318248 BLAKE2B 3a13a88375a359cf77b28d7f77f47f178bd31ef74b7627b6701bc6fc601024706be4e9ac1a076c7cba26b64d3bac4de17aab45fe3c045aa7a36e2d9232e872ca SHA512 86c05084aa0e6238f8d48df0f5ce6e6d7661b589f4f3fbdad43387c59c0d6afafea4badf25d31db1611615de19a0b9ef18ce614846b79a47cad4e2c9367dbe7f
+DIST nu-ansi-term-0.46.0.crate 24311 BLAKE2B d2e678e0eab5ad48534e686b1a4af344996d1b07a0fa40839072df3061bd7e5bc9341363403ea3ef8d19c7725ba3b7a8ed540c63e2209123b1b93f69418288b6 SHA512 b4f37786dc85e0596e2b7b261a5a9fe0265bf1651c39efb358dd649b926b12c3093f307b98bf0c4df3899f0a7cb1854f2596bd5c3e22fbbef42f912ab2eb5043
+DIST num-traits-0.2.19.crate 51631 BLAKE2B 78637360cbf32d172510a62bd9442708af9730c0296a2bb4ebd200c08facd49bc31bf8ddd58967e0df7273a938832b620265d9f8f4d26ad16049bf6dac1cb4e5 SHA512 180018a5eceb45085e4e8d103ff21bb4d5079cea874c42a0ad4c76c99d275d434bbc1cc289f0cdec172866daa89dbfe0871410b2cc3407233fe1129786905956
+DIST object-0.36.5.crate 327435 BLAKE2B 1ffbb8ba57024a7273217edb1db76eff03e0689f81ba27b0aef0a622972e7f6acdbdc480384b50d603dee6c38c960fd25125a313264187aa0e429aa839198dd4 SHA512 b85375ab3660a8a0c57833c28c4dc665dc0664857e1eb3cd472a61b9ec8c16c470b16475545c2c311fc23cb3c43755967f93feac12c7bfad013cfed5f879e355
+DIST object-0.36.7.crate 329938 BLAKE2B 0b02cf2f44e99002909b38125edada1a259feae59fd0e5ef52001755b6878cac710c87c60fbafdbe405281e039f68572ea3d8093d16128899090fd70df7f2fa8 SHA512 dd69172349ecf51fd2351d32cc4453760ca1d15e854a1cf5ed99112032901a54b4645b24163b946deed11f81d3e3035e1a5afd8bff20f335dbd05eceab073478
+DIST once_cell-1.20.2.crate 33394 BLAKE2B 79dd394fcf1637adfef28b4159ec653c8b71d2bda0e0e36a940c04e3d87698f039dc30c97f26648ecf0d9742962f1f0a117568f7c705a8a3fc167085b0ca3e80 SHA512 bc6005bdab7a154c01e2203fb553a68695727475a9a882cf906d49c054ce886ad92cb491d380b6b9fe71a81b2fd690ce91c9a6cf8dfa8508470ac9acfc8a31c8
+DIST once_cell-1.21.3.crate 34534 BLAKE2B 3578aaef305cad2fdffdc40c392775a3540bfab3f3aeafd22466d9507bf8346b9fcc200929d48525b051070c0aaa423ecbcaa12868b34dca007991effb224166 SHA512 32a87506c6f4598f3ca2c88556014ef2093d5db9a08602335e847caa537a866492fa74c894e7e1da2e4289a1d3dbffcb90a9e37a4a1453203832f434b8206990
+DIST overload-0.1.1.crate 24439 BLAKE2B acb2dfa6c6c22ea95cf58079f6ec56a2bb5e297a055ce717d40633b789b0d005be2bfd6616448cac61bd032e74aa6eed212f1677461907cea2f7f7cf536c157f SHA512 f79bc3321f45df5e3d0e5fa9c4e60524e4e28dd3729a09956766738adcf99ca42c187a01d48701ebe23d39aee00a19d4a07da798edc781b942e866b339613532
+DIST parking-2.2.1.crate 10685 BLAKE2B 3af8020bc27ea921d6023c14f20545f70a5a5a5a216d5f97458d76d3bfc8d9de937f3c92668d31a79de85ce08ed0236d440c64ca1e4fe0a7748f412b941c052b SHA512 2e49137b59000f0467aa9ee0648d53e06cd2b8319d6ea28bf04c621b873469739a34186840b02f08d770d109cca26e161b3de3e4341dd729701885307a6a8177
+DIST parking_lot-0.12.3.crate 41860 BLAKE2B d1899a1132035aaea3a784290cf4951ea3b36b2018d407e27d333b2a2ce3820e040d635009c44cb6e58ad07cec6565c0347af6f6fb02954eac2d4c348bb036f0 SHA512 368c17203fb5b9e4ecfd4857e3b1ab96b86da3770b8f21be392818c845952f72dde1072a10265760a62aa8a1dd65332bfd585667444e5fbb9dbe3280b5862703
+DIST parking_lot_core-0.9.10.crate 32406 BLAKE2B 25339d028579eb45a957ae5fdbac00288b1472d784c0aa7fa2953fcf9279c750d243ce69744993ee8cbe6899633e71e0a54ffc11e39247755685107f2f8dea54 SHA512 4f30fb60ded274d3154ffb00f6f50ac284b6fb97daebc1a2ac897ce97fa8e2ec6ff30cbdadf3b7419617a410fa7525f30ef5e580334e07d4420f4c0200a57389
+DIST parse-zoneinfo-0.3.1.crate 97290 BLAKE2B ef2d8128be452c96d9c13e8ac3cfdbfd86753a0578a9a782d0059467f9212cd02ab97893f0f9f73fbcb3393d6049dfedd0a437ffeada1c7672564ce63f4a1bbf SHA512 88f581dadc306585addac8a16fd3bf56f13f6b933689dc6bea36a07d9b283f9c77ed68f4175d676574062b911e3b1220bc82a79fe59ea551a7dcfee91ac74ecf
+DIST paste-1.0.15.crate 18374 BLAKE2B 69ee7def55e658a9aa72405bad62325e8d6021a4989fbf11c88d1bf05fbac520f7b04d467bc3c6eb45043a41119f65aceecc4a6a1418a9192d73f33134545062 SHA512 5026d3ec7141ec4e2517a0b1283912d0801e9356f77b703d954b379439b8d85e3886d42fb28f7835edaeeac465582da14233564fb010c71425a59c9e1cbd46b4
+DIST percent-encoding-2.3.1.crate 10235 BLAKE2B cf8e2fd7b359a05b7bdaf731f9ae84c7fe6f468a53482eb2db7f93dfdaab64ac812b3664899db260055a93449462e6d219c695942fc5b030517b197b4df9b95f SHA512 5951ea8315e52cf3acfbaa023cb9e13a136b114c54a7da0bd44619ae24cd2159d4a96469d7572a2fdabd94e19513a033387117d7ca81d0eb409fb383e4acda44
+DIST petgraph-0.6.5.crate 710970 BLAKE2B 7f590e93fb44f1bfb8920e512402edc1cb087ff9d5dac7bc4be965f64ffacf9c1c503eab4156cd2005f41099f6b34f51e49b21dfa217271fcc0d4ee16ae85366 SHA512 454e9805731374abf1085f1a8a72aaed85e83cd30ab9601bcfe0e46882ba6656242284bdf32b6e75c2f5ebdd1325d5f8873d5f720aabf297822ca97311afb677
+DIST petgraph-0.7.1.crate 736025 BLAKE2B c5c54cbb0ee2a388c11ae29d20d76ab9b9cf4bef996532aa5ec0d08dcf548218915832748bfd759972edb72b917e88a1f935f8e24192befcfbf37c89df28dcff SHA512 3b93ef0b9b92618b7d5fda4fa35322815ff102065d6eb08dd71706473cbe679994014536ffe2b3aad72a82f1e04b78e5878aecf4893fa6bed0ee17f2ad2db873
+DIST phf-0.11.3.crate 23231 BLAKE2B 588ff9dfc05a3d2cbe223d97c36c8a596d89cd421b568a0526992a089958e4b4ae8f7d33b3f15cf935d20bffea8f60d39ef2d2e1904101f285ca9b8b8155ecb0 SHA512 20a834481bc43ac8c560b00e337294d3c14d1fe359e7f78ed08166b096305e40277f4cd3c179a740911b5c241aeb4e263afa1a50d37f383ef63da113bd6270a9
+DIST phf_codegen-0.11.3.crate 13741 BLAKE2B 88b6f0c206a95945c115401a30ba1bbf6a74e3acd4458f892fcd1eae5312765ed4e17272a814b6242240b97cc0d4eaedbf8c1c37a090d9aeda6ab23bd2280e78 SHA512 e86c3b73de198aa0ac67beb6eeebb88865f77d075b9d7f290eb9b73bfdd6728d9479f796d56e4f3358226ee88b877d848017cd951a14804534e4cb656eed209e
+DIST phf_generator-0.11.3.crate 15431 BLAKE2B 0c8fa88e391141d36d6f128fdc3708a87e34ebd56e201ad56d62de8c05e9bff62258dd7f3a03b432ddcbd83c4f61fb9a57d93574a9f9a68e931720733ecfe1c6 SHA512 52998e20648b6ecd1eaafa407f7da4667fa829d48fe0c9f8f718377cc86a232a6261fc2f831ffc7051b62dbdb880654b1207ac314e57b23d2b70f634d07c2115
+DIST phf_shared-0.11.3.crate 15199 BLAKE2B 82441a3f6db12e9021552b51ef4ad8b564532833dce782938d7d721e9f2d8b7015eee7483724552b8fcfeeed365259cdfd5044e9d2a999f42baf476df8141db4 SHA512 34bc3c0dff5568f0276777614d92d87882ca6be9e3d405c1e7de90ac16ec52a12acc30ea9ab2033074d0e988fa514247f37de1a21a3727de0ef43f42f477e27e
+DIST pin-project-lite-0.2.15.crate 29683 BLAKE2B da9dd581eca047f089c2a069a355caf66a631b3ff81fc07220a3c378dc77ea2c399b165ff8a1d2f6556595ec52dc1bbdcbbdea5ad9e5e317281650c9158b3669 SHA512 ba3c22c70f98ee0d0e78fb8a25bdc3100b26c3f03f3e4c6c0c238fde75774c5634d6014660c39406a828d1c28f17f44f20fe19dacd331c4da2f4961a7f7c124c
+DIST pin-project-lite-0.2.16.crate 30504 BLAKE2B efd0b426fcc6ea8852bce499fac61f9755a11c6a2999cbec514f093ba7b3f94b1f2d437ee9abb243e31f3838ac1c74491a212851d7798eb249e209b35e015332 SHA512 971adfe54cfed304647fd944c1c915e78b37eaf0de3a582fb984a5e91f1b7d4db2cf0f53a9a64b64427062d4b41c0a36baddef782411a76ae3be0f8ca45f0718
+DIST pin-utils-0.1.0.crate 7580 BLAKE2B 457e1287202f16d1873b24bf4f1de1828300128c4ba3131758e64f9784d36d47365f22d85493c3a85d854f0d8dbb4c6cef3a0f5b064014dc03943e58b7ba9178 SHA512 828422b8440cc82ac6b0743e0112fa7540d437aed457564999092b1462cd7672cd6b1f0201b67075431aeedd3d9c5127468a3dd028744109944f7f023c82fd70
+DIST piper-0.2.4.crate 15950 BLAKE2B 265ee8a57029e6ffa6532dda8e4da94a288504b658fceca9426d2c13086255cfe5a1013b58dd02e029ac658b6bfc8ff59b88458fa620a41e0203413b78b7ce1b SHA512 88c6fd8d1118b37b77217fae004e47c01db8f95b9b925f1302c0577971a8a9f239b4ac07ccbec924d8912cc47ccfd88eb2045cc607b5fef3fbaf496d24ef7df4
+DIST ppv-lite86-0.2.20.crate 22478 BLAKE2B 9d68dc36d8148047d571c0147ed29f586f3c6ac9394b56bd955c8ae5bb18f5a8da5369809f7b8c3199074e23660325158c32c62e1bf69a16cb1f5da2a01f5df0 SHA512 6d171f63b42296f7765732fce3af7ea05d0d81f1541ffb3ad86e81210715ef4afe5bc9e58926e97e757aea6ff96a8012c8411eac78be0fd080898318ed21d7d1
+DIST ppv-lite86-0.2.21.crate 22522 BLAKE2B 150b2ae019f296dc0a15090bcabcf4981bc58159d592b07da729565ef8976e3d1b4416381c6ecaac77874d8e259995254255c8831861ac20922b810753128cd4 SHA512 94710d5b25b67539cfa828476367849e1ecaca744f2e0429b48c05b47ec48cd57f950fb9845a361fbfd96f361ac00fd2d47cc27c584b79ce3d9d8fc133f5b7bc
+DIST predicates-3.1.2.crate 23986 BLAKE2B db4209b491f82a1ef6147158fdf86c0bd8a059e61c4a1922dccba257e461be36e31d4a03440c2b80b3c7c49d612dec81fb76f648bd5837c481d93cc9ac5ede65 SHA512 50896189f39842ef424aebc12c2633112fda83eba1bdeaa3e6f398db1e28dca0cc7838948f25e67f6fceede1a91a1b0ede5d4dc4edac6da752e48c7a07bbe3ae
+DIST predicates-3.1.3.crate 24063 BLAKE2B f57d4d19128107107b436bcce2be5efcb2a17cb18952221bbcb63691f5bb0fa3932a50e721dcfbd959d27b34084a6a9931378bc55c3c23a6668fa6a552e72abf SHA512 0da703faeb708e3f9eb9bb8803dd8cf6a493b02d38b9b617fd1eed7ccb870ae96c5be6cfe63b7ea8855cb2a019a7ea59799faf2bd78fb490d62e640d1a7de1e2
+DIST predicates-core-1.0.8.crate 8552 BLAKE2B 774ed04fea09335ae9b4e87a237871f954b85e54df369c5be60977381e8cb50f11aa869e5ee41e57e4f3283003a9da67bdbe3460420ac8620f18fd81e33f0597 SHA512 8cfd010b70aa694620d6c573bd8ddc50ea16ba08f6c737902ba6697307af4510b9298ffcc3068b45bdc6430103db6fb4499783c64044d87d023bea46d45d0f7c
+DIST predicates-core-1.0.9.crate 8618 BLAKE2B e5ff73c0756f4cd91ff5d2fdd7dfd33e300dae34731933c11798d7ad2e07d9500dbb7828e7473a055c55b5ffa8a761f02a9d04ef313e544e477e4cb94159576b SHA512 618db56d417f44f5575159265f245fbb62399951824730546df735dd9bc9dba2200f58c0a7c7830040bf27954bb48e01fddb5fe0f4d4890d5e172cb1c586735b
+DIST predicates-tree-1.0.11.crate 8393 BLAKE2B a8ed762ab18f3cd72ed749cb3db3d756dfd2d3875b0f1c68a99e39ed4ac5c7000086606c21a834ea0a81db961ceab659a4648435d9eaf1bf3d7f29d92410efb6 SHA512 e1b08010f9cab65c75d82cc44cfdf64d92127acf6a72ee0ce1533e5d7d8027ccab912e1c499b7b78508b5e3cb20dc03df94de3dd520ae13736906a5f374b10cd
+DIST predicates-tree-1.0.12.crate 8392 BLAKE2B 4b124a7b718d2942f5624d410fb8c59c06e90ec5b576fdfe20542dd00da64fe6a5fbacadcde3c3a6f19b8ef99efd862b08be08e08691e858a4b3d7bd72a4cf71 SHA512 f5f6d7d0cba4ca7176a26d9adea5ded46f1a3361f9b6ceaa7dcf468ce616912cf3b764b8250f39a42a24eac71fb94e0d4d822c89361aae02472cf761ba55dfaa
+DIST pretty_assertions-1.4.1.crate 78952 BLAKE2B 016df9fb2f24304b68a6bf4fc8e144387f07a5a15fc8d92757cffad11b4a00e74559abf597d4ac8619a3dfea705c82df1b8c8620c5f32c61ea8f212fd9cbf9f5 SHA512 474f77c61cc17bbe9914c56b98a80e5918450205827cd059d693c2d603ff61a0897cad25dde645cb495200e61ddc14333d15eb8bf2de090a2eb68deeb9aec8b0
+DIST proc-macro2-1.0.92.crate 52353 BLAKE2B 9aa29fa6f1c56c0392a94a81b4c61953f4d185012cdca37e356817845535da79d7094bf43472ce63109ce479a2fd0cbef4d802afd61daf92c4db303bcac60e7e SHA512 e614f08acc0a7e97ef580479cf5b682378df1ca16f09bfb2296ebb3490a435229dea9d682c621c54ce57e8e1d3b7803eb8ff83c88bd02e07228dba6d02f14aee
+DIST proc-macro2-1.0.95.crate 51820 BLAKE2B 93229d80556ec03bce4031607d13c7902cacc2d7e2586a692ffe8543d52e3f3ba253c9c311ddedf6d9348ce8758ae8ff64577675cda2dac557f936a328de47e3 SHA512 f78e4d47ecd29c1b2315554705e445507bbfb9449afd0bf1b74df28f266ac6382ca8c3ce135ddc55c989eaee64d1794a0933a941c8ff55f543fa21c400016547
+DIST quick-error-1.2.3.crate 15066 BLAKE2B 1c61525d383f3588c1c5017f016f60b484bbf2035e7f63c553bd9a49b638ab0c6106ac3676a41072b24da4e13dde78706e0f99fd1ec9ee329d5be81d45a85866 SHA512 f8aaf9024d20ccd42b706c756eed8320aee339f8776392b47a41cc82ca06b03df1a5b1f00854cea96689c5af261b4d8c5d2b1a242d10f2755e7e33dc41be35b9
+DIST quote-1.0.37.crate 28558 BLAKE2B a7d007a69e619f853af94333e1066bb767013312bd99f147b1b153611242bcfa9c76768b1ba47278589db309a9acd61a772c8ec3b567e48439bb9d831f9326d4 SHA512 c4ed21428c1f89cf22b85d80720a7869831a9c129d694617b0ce8c258278114ab98846f3f653abf736d1c86bc9224bbd695e9a7b06aa3adf292d02e1ef14cc05
+DIST quote-1.0.40.crate 31063 BLAKE2B 09036ff3e5ebbd775c466bb936de91d4c070481eb4b98c62a4cddcda57cd7b67d63f979b321f6ec64aabee3f5da6c28e7a3efb83f4647768ba578f1bd0bd0bdb SHA512 45a76e22a2b0bec47e4ba73c3b73cc41d821dfcce9876134c5d8eed514da214aee4ce7612e372c8709f888c0d8b9b7e5442f27adb7a59f3571f0339ed7e2ac99
+DIST r-efi-5.2.0.crate 64764 BLAKE2B ee17fae983b2c39137cb75698062a3bf8edb4bc680b04900797730618b54298e2f1d13ceab6b660f7a1799f6fc4113ca15d4320b1b95fc42913e0930f3aa16f8 SHA512 80f89d467b482297ec2c13cb0dc8e310442495483e25c33bb523f1cb66d6ce01fee4a57b36880a4f51c0e9f20eb3f993a5bc0a13224d52693dbc81b97c630158
+DIST rand-0.8.5.crate 87113 BLAKE2B 516f26bb2a969d0d79e957818133f35d2c0b4d9f1b401098ea23c5b80d27599e842b9298c0c5e46e2a6cb6953857bf8a9fb71ec9366c5ce6708cf17df14f179c SHA512 8b33a8988906ba5e2057a9a84bdd11f867a5536c22f5056eec59ed4ec4e3a6da2fd773da4c0510d343762e5a4ea0f007db4c4a7cef87a47f90e36c1a84d86fb2
+DIST rand-0.9.1.crate 97986 BLAKE2B 98e230dcc51093e9dd842ecfd7fc5727ecbfee1384be2eea49c66dbd529d3c41e4383f876d21569cf57f757589fd89b60550a1932ee9ca359e908b914b2dfbc5 SHA512 0740e083fdad176ae332cbd759c020b0a477fbf22ed71df602adaf7448d76fe2e8f7c770c84cdb492e493275a23171e56a1afe35440572d2a7de56dd78a9a242
+DIST rand_chacha-0.3.1.crate 15251 BLAKE2B 645771b2c3e274f085e0837a20306b1d59f6e9032fba8eb38a6d1b30180d15e2f89ffa2a162bf6358da41e030098242d81e71dab4321980d0a4f6ddfc2974ce3 SHA512 8198c580b1b9b0429758ffa49cd8138fa3ce724f0dcf73c767ea7e55611d6a2e4c7cad9950896510def500ce4062b594386c947ac3d89425b4e5c9b04d0b8075
+DIST rand_chacha-0.9.0.crate 18258 BLAKE2B aa0efd158877a116b2587177f2da84832ba8153b629aaf8181ca7622bc8ea624b5a5d205d1b745caafaad78d5a55aa08a4f35822b8925acdf7d1212baf62abeb SHA512 f62a7bb067ff984049c96cddccc841cd9931daeb5b25bb69f056bfe577f62b1b35c08f2bb5028590eefa04a9369beead4e6b03607eec97256e0383b20542af96
+DIST rand_core-0.6.4.crate 22666 BLAKE2B 8b6b66d50aade877f2779c006f8038db450f808c66d73d79efa66c4178dc03db06f12201bf0e7930181c4b0f4030c49b20cce6eb7839763cf2217cad9710789a SHA512 36c67eb845aa2ccca49d6d680f28d418229bbc5a050729e487fe6b9f9f384fdd7b8d67fc6508b90b79ffb3c26688e72feceb3ecae57d3d7f59338aeb62296f79
+DIST rand_core-0.9.3.crate 24543 BLAKE2B d611130e240dffaff33f8384f13a008af93254b1530bbbd2369057ca33f295c7037178010efe76e4d7bf18e36003f843409fabec060c8c78077cba00772e66f9 SHA512 6e8e4067dbf5853c55b0ed38293b6bc6bdecbdd31bb9d624609b0222f706f5b29281ffd5fffd5c316367ba5b22c29e5282c61de3738344798ce0f9cf9cf2ce19
+DIST ratatui-0.29.0.crate 543514 BLAKE2B d5e7de30e0c7f077ea5a4d13ce5417ab5221e0afa7d819c5706b711a843eced0d7bcef9f2d64bee5e74892ac9f6431d8ebf1f6b326e467e08e948ed0b86ded2f SHA512 0825af0b840e83e6a4aef9e631ae8840e8f7fe4ecc80dfe24b093488a95e1710d11c9a99f92690b0028f106b3d2351949a2b64016369a1fdf822eb4a2381eeb6
+DIST redox_syscall-0.5.12.crate 29544 BLAKE2B f2a07983008e0d44af2ddcaa9bee19c95312373e8d6ab8859edbee95da7b640c7a0e0f56e6906ebc639abe92209d5bdf8d0d8f5d94e4b831b0bf60ecc24bcf6c SHA512 124c8b8435e8579e5e98848be506c4374c979848100aa7bde119a55d3ea8e056d80ec254f438b04d557a385d03c609a448edf00d7202a52b5d282b302b4fd702
+DIST redox_syscall-0.5.7.crate 26249 BLAKE2B 97f848b130403686404dc193415e5060c32585aa3638b825b4775e54d9a058695b86457ae9e3cc0240bcac27ab4c05dd6b488bdc1c797faecd236c6e477fbc3f SHA512 e9f2d254279a4063089436b699ecca766a997a72718d132a9b35f7c8c8fc82c4b5e25fd8f3e6cbd17920fec484140db520c262376ed1c74f847929b7f43fb97e
+DIST regex-1.11.1.crate 254170 BLAKE2B 5cf41012fc2ba8a006c0eb4a922cbbf1614bf300be361c9e2d98956a9a5e9b140e37bea09132fab7bfb633d4439158723624bcf45e8c619c4061b399253c1b82 SHA512 d065f6dc405771518260425f39a5eaaf8cab62e78c91ceed3b3994a9a121674d2484cadaaf816bdad89c87a40550d57b66a3d9de6618a7119a658301ce7e67d8
+DIST regex-automata-0.1.10.crate 114533 BLAKE2B 0e357229f6825f14339b1d7c40730b83e62bba12115d01ed20313320766e769a653a2fcd2c9d19af51a82c38e9e42c1a31d005e1f44f5b6fbb3ead7c9c74027f SHA512 56d64da361afce82c6cb49e70b99ce1fca3e1969c54bba5f9971db135f8544c65f49feb8827789947b3d1dcefc9c49a7a434a7ffe0d09c5900345a1733723c5f
+DIST regex-automata-0.4.9.crate 618525 BLAKE2B ee3fc41c8c445be4c1aa3e5b19a3e61efd641b1a24e7a1ed55f837c1fba9c816272cb4645c13232b66b170bc7c413802928beb22e3891500141ad4ede65b60b0 SHA512 40bde0ec91cc27bc0c3fa237a37ecee5a1f023dbe006a999c5888f8f578ee2c4c64d9edfe1827546cea8e92ca3c10f8b4d494d81f3d0422b40d90bca9cf598d2
+DIST regex-syntax-0.6.29.crate 299752 BLAKE2B 2408ebfe5f0dd6578c33f18e8ea9a0a7a84388420c5b67adcaedde477f3f67fb3e39ba9fab1f6892c7ae7fff754c4aca51314601529cabc6a8fc43af38a11f88 SHA512 28a58950d15df1f0ac4ff4185c05b535e8f5bf0b75f79fad24e40e17a02570d1c9bd9cfc919eed8756a1069bc489c5fdccfd04f6b8266c83e3412b7b4bdc262e
+DIST regex-syntax-0.8.5.crate 357541 BLAKE2B fc6d125f7a8574c37d81c75cbfd447cbcff736f2d9991b19814ffc1a414ebc5b76e84fb8fd36c983b38e8e391d165cdd9047832b0d9100f0e1ba7085484b7db5 SHA512 549d8d130fea9ec0d5806126f57f31d433f50e9328c5532ad417c44bb5488ec0d20acb0983dbe54dabaa0b453cbea4533cf7baac7144df119e8f78dfe55c5ab8
+DIST resolv-conf-0.7.0.crate 17352 BLAKE2B 32b565a11d5d752e2cce2ac7b44e483b8a682220c99a9ca34d0a440d87cb5a874c407d474e47757f128bc5d78ea57940452eb099ea6fa433d8f6d1fe881f4302 SHA512 538b97f88fee8b82f15845f9a596e09757e3c2869c4e8708ddff97e19348e9f88d4bcf75e810d2aee47113fa64d550a9fe2deac6fc38d95242ebc20228e9b5f4
+DIST resolv-conf-0.7.3.crate 16929 BLAKE2B 66f42135c5acf192b2c1f0ee30a2bc49f78365833a033fb93803a534b4638621c2904af407c373cd8d422702d6b8f0ebfb949bc35a0958000869412b5940a6a3 SHA512 39216a846a403ae04ca983cab94a4c1168cc3c2118327eccfea9bb87233abcda605ed1c2c0bdb208f856c40e61f0a66a3bdb61ce7896846ed24b38958a69d443
+DIST roff-0.2.2.crate 11648 BLAKE2B 38431e1dbfe394274c09e32a9f4c99f7e208130efd1765e9df0c08cf313a0ca81d13198158af6342ec658648cfcfe2e3cae5a5306f8e27e18af7b8163359e896 SHA512 0098d4cc921435cd48fd924d96e8dd27f6443a9b6cba847388ec4be7c2222bffa7a1507862b8c120314d32d08e0cc04e52d44973e25d85536a3a2560fa2a06aa
+DIST rustc-demangle-0.1.24.crate 29047 BLAKE2B 8248b014eedb26cdc0b748544ba91b9aae9c992a6f93b4d3ac256b78f691d572f8885a3575492ea556698a241d2759743968293079ca02bb6a5f318b0ed66dd4 SHA512 eb897c35300b87766e6105917a907fca1c5b1f7691fc03c6c1aaf38075ac883a73d1eb54a245d13ba59c7b0f0333d6543e23fc1b1c542fbbd5c750a84660b9e8
+DIST rustix-0.38.42.crate 378683 BLAKE2B 4071e1118ab8111bab9efef39c6e35f8a3030cb230cb3643df7ae09ffc750b18becf1f069c2714b0b6d13e334c12446433057fd015c9dec04d7a1372a354ae05 SHA512 438bf1e4663cacbc7c0af23b10ecc11c8b01c53e18c2e82a740c46b4a61f06cdd25d926aff27a9c39084c39d9c950c222a1a3a6d5878dd240554fa593fa762a5
+DIST rustix-0.38.44.crate 379347 BLAKE2B 780efaa7c9e7fb78782c552345ead692e4dc87a6e68fe9c972097ed4ef9066b54633c565d4f1b4752e08a1ceceef15ed5d8c11286c7cf17d971648ac5f9d399f SHA512 b7e66a27c9188eff307aa9912852706f686864852a97af0696ac5fc5dccdf2e4d22a69266fa74ac71aa123e2831f24b898b7ee9121850d65cfb56e12bd647d8f
+DIST rustix-1.0.7.crate 414500 BLAKE2B 493473a0d4c669260efa7017981f2e095acd5edff597a0f9808c3501336954cc63b54a682e35740a3518286e8675242790130f6690b42e10738cf2ce95d1c954 SHA512 b8fbdf01af89ebc59d4ed6b5889e5d483b449857a119bea8746cb30091d707beb0c36da5235d85913092e0314b3a702ed8159bf59eac6655f2ff2da9c98abd8b
+DIST rustversion-1.0.18.crate 17794 BLAKE2B fa35445404b836214bdbaa3de8e43312b6d8f50eea32540f808a6255908d756bb1a5dcf49ca6268a1d214c535c2ee770e295c0e7d6430268142a190b31032421 SHA512 263d2cef02b6df4d38b35af7a9ee3a6a044f160f3cf7c6771528f23dea342232087f73f89e419ef7869db771e73c273c05b3dccfe9e29f707586b2059e820645
+DIST rustversion-1.0.20.crate 20666 BLAKE2B 49fabcf276fe3f59b4a1c2e8a07364ba59c5ba4e0a33fe4150ce2eb93c6da42d32ad4d4a197baf6616c1cd703d34fcf5a90186c5467c1656388d55e7962d01a3 SHA512 250be168a4ee64f4b85d78658706659122d5fbbc748f321fe2b9baf48c547de4f0004c87882642645994b7798077c514a44e06b73784a800d04e4cc673aa8906
+DIST ryu-1.0.18.crate 47713 BLAKE2B 409cdf4b4e77685394018371e91ad6fdb175ac57e1df9f902871f13208515e5a2ab1daa226fc1e7291278e64448332845be4cc9409bce3b2f3daed409259e104 SHA512 a9b2beac778ec47e6be303148d7512ee681bd2361f6e4ac6db32c8b4baf86a8c5eb5b0d02eacd6131ae88c7b5105c57018c3050676e0b3dd1ed9c4d2fd650e84
+DIST ryu-1.0.20.crate 48738 BLAKE2B b126085448cb58639a7b5867fe313dcaabaf19df478f67fcb6cf15b8e881a21e641878345e0bf1fea7d24b56b921e667fd26a39cb81fca7ea02585332068263f SHA512 329c581429d9b8baa7d9edd9cf20e23fb8002f339d9fb3d50ed4c7eb68fb19c1ba966d52a9c9602265ca5f59f2bd4393ddcb3a7ac20c64aee3096e137eb2a384
+DIST scopeguard-1.2.0.crate 11619 BLAKE2B 8b7e9ed6cefef9ee55407fb9690d57a2a98bb93e5105aeebdb475a52485e9e185255249e1dce8f83cd80534e7402d485aac3efa7e8493b13135de27550cd4bc4 SHA512 6247719a15fe1e4e2d179127b9a934bd2f99367724f41175ed9522f58824b6bc69b35002eae66b35880375ff61d77ac43ddaa78cbde7160a35183a1da32d3fbb
+DIST serde-1.0.216.crate 79000 BLAKE2B 98c0f5cee2f9212c6b7620d2068665379471ceb7557d1454cab9b1c2120b526ef597fbb642f65440e70f92a4764cad33613b478bacf99138dd5bd51fdbdbee6b SHA512 baabf4c7aac4a540c9ed18b336662087258b71c9cb0e547c8d83a2734818ab2cbbe62f910d812eb61d3d46e653c41a3eebc99b1d679bfc51f95710c71a8ecc20
+DIST serde-1.0.219.crate 78983 BLAKE2B 7e9542a04c7f1aeff95b821245034368ff1721d98d7138bb1e0a99cdd6436dc37d69606308834fd33daaea3a1792409b3b2305b802433fa1d155816c55ca2a7d SHA512 0d3fe9a47af027d0d79499e60d940661dba6e29e8f0ce47d0db2ab722030d255aff637248af6f893a9c4224239733db09ffcdc6e1923a7177bfae55c98ebe769
+DIST serde_derive-1.0.216.crate 57674 BLAKE2B 12a9228679c16288c08c8b256707e276aec79f84ac7af0c4cfd1f109500dfea80438df17d798acdd30a9743c753e70093b22bd324217529bac483f257682a3e2 SHA512 80fcb552279ac7562297df878f2f5e9ac09241701f5cf1088fcbf473b638f58cd3092a7930d8937ca0df9a47b9ae1a42d490cd46a275259cd8089fe8f5426469
+DIST serde_derive-1.0.219.crate 57798 BLAKE2B 071f02019f829a2753769ce915d11df8f0d202ca67314fe83b42e1f1f3d07bc91b7e7c38fe498a0513714f80d3a3dbf2b447b1f85762de06dd021119801afa89 SHA512 1676bbf09e11273705a35c540d52d35d1bba7cdf1f347d40a364d7ae9269167f9f0f62ff4fa384aaa613c83e432a8eb3c016587ea643bb11434c00664a5c116b
+DIST serde_json-1.0.133.crate 150739 BLAKE2B 7891eb5b8edcc7fd09ab1e15d3881ffdcb629aa39f2bd758c0505700a5f2dfabd85b1b66c3b094268bc1627b346e204c792f4ca61efa76c54ab9cd5744fb0ee2 SHA512 20e65ec87bff319897a141960d13deb5cadcf821209c1ee8799f1dc7f458ce432bc62c16df5bdada1c8d3cc01ff23b8125e8fa0a03545d4614f32efd687dc69f
+DIST serde_json-1.0.140.crate 154852 BLAKE2B 733aecfb88fc37de37b60fdd33a45fecc2bf0ac2165b81bdb12665de7e26633836160e927be5d538eb2056a799e85ca4a1008cbd30af23b72a594643c6015f22 SHA512 bafa26fd43ba30cbf73572b8203292b1f275995636e9dfc3d47954939453fe4ecf0c60f25d2af1ec16c7cb0e7ce3b96cc07507d1b53b7db566fe7cb2624f0e12
+DIST serde_spanned-0.6.8.crate 9330 BLAKE2B 630bb2cabd74e8d9736e315ac57c4d2c5c4f72264aab35ecc8e0040cb4186885722051a9f7b8a9006fd121fe58428cbb151e5cf541e7de30b6528c84e968f7ac SHA512 2343a2fda35ff57ed8ff7d8eeadd651821fce7e22f91c2d5797c6af7db9e009b7d637382f6f390c17911912865a5aea1ce87a86fbe36f4b6aeccb065a4c8942d
+DIST serde_with-3.12.0.crate 148666 BLAKE2B 244377aa9de46c77d12f0348a2656848ab44bda4bbac2f14a607ccfb532cbc33597e0b3336b9fff5242e8b907f59cbe093eac7e1aa9cc82e320bce011f5d177a SHA512 243b4aacf9f0aa9c3915274650c2b70ebb389ef0b1e607afba35f0144199073b573703f8b66bcaa875aeb434301ec2ad209c3d54160f6fe25dc2e4a9fe48a53d
+DIST serde_with_macros-3.12.0.crate 32089 BLAKE2B 667db574c1a7850917a6738ba55447285085e87826b04da22b6be92ecf32ade3f0e99f63c738262f822820674b09be742778223f28507daf75324f4c62195e98 SHA512 feb186b9c51325a19643217ca2bfafc6f7e5433e2e059683ac2f271d11641a7feab728c5e7e37a99310ef259faf862b6a42ec41e77ff9b3349cb04333e008907
+DIST sharded-slab-0.1.7.crate 58227 BLAKE2B 9b4c4e4849ed324cf48c2b905f21139d1d65aa5ab13e7fb11817cac9a32ad09f8dbb1e50a93d40cafa0aba872792bc92f7bd2e219f62f80695409e949c07978b SHA512 3be7438d4a75debb14463477f34de6db1ac38abe958ada5d5dae7ae8d5993e245da69fcb989d91aaaffda5f2b085d4bcc88d10e07ec567b7f40a21437de6d4cb
+DIST shlex-1.3.0.crate 18713 BLAKE2B 18800c364d3a628f1a3125097ea82fe6286550c2997235df0bf8483a3906aacabc81308cb239887d46ba2f457cc6f8acd5aca78316707eea5098cd5666aea67d SHA512 5c8cedbe666a14b8a0874defb9208146ce64579cde52ed483e4a794cac5dde6a24bf8d684404edff582f842e1fd4fa3fbeddbe074f191e4ec4aa517aa456fe8a
+DIST signal-hook-0.3.17.crate 50296 BLAKE2B 5469a11485362b4a76f99c06071c69f6cc083bf4cceea93fce0b43385163ac3621b7a3c98d18ea1fb9e1439460ea37f470a29bfde9dea199e60a12b248be5d25 SHA512 045ac6268e504c5561d3884610a48c930dfd936086f793839f42602e92e4a8cef289955776e8eba8a5ca1a91b5f27ccb3724f49b32091f8f06c8bde984d82298
+DIST signal-hook-mio-0.2.4.crate 9314 BLAKE2B 018d406ae25802cb376c1f02241ae8e7018f2f7837127a9db40fd17df1cb3e13299c2c372257b0e82aeac1a77b75c732c7344e50e969180e696bf3f8e4836f62 SHA512 1ce372f4550c046f1420b8f4a29cc4c8e904c08fd089cf973f26aa25b39cc6199db56d2ee3bb34684732b79237648e904389eebbc32b5e108f7d6a2d22b1cf3f
+DIST signal-hook-registry-1.4.2.crate 18064 BLAKE2B 7274d4c115678eae2640a709bf9d682ce867c1f6295a0c5f49e492f95dd1c457f20b56207a74221df1fd9d744b24c6260e28f705777e3c7d47b7bdd36f1d57fb SHA512 16362d232b1d301007c069198d7716848aa73d898ef92e050422b36c09001b4334390dc95a6650e5315377fd8960d4336e5ae869b0a305e8525e977b8327c508
+DIST signal-hook-registry-1.4.5.crate 19004 BLAKE2B 6537f8523aa03e3941bdd115b35716c62ea523a67f99662e28a2d384a5917c43c68a3a26ee9af82ca44f07494ddf39a5ddf2cbff22b0e0a9fc917cf72bf57b5f SHA512 8e7c41c4b57bc5ecd6cc16e6ea8206af0005ba1e7640e2eaabe84c81312c400c74efc229b563f4627fb7d167cd7bb43e0d2d75ae5b8c545ec9ef43f967ba838a
+DIST similar-2.6.0.crate 51659 BLAKE2B cfd3fd530a1bb99d63a071f34b7db55210edc3a4568b45a39ad67a0f9c1ba7fe7619a5c78f452732f698cc2f4df8e2e90d174c469e103338a70af016c030499d SHA512 cad3a5fafe3ab0c8eb08d87f982d7d93b9e65a714e3a313db92eb4e3b2c539657bdb7df4bb71597300b690248f45013401ab83f949fa8410606648e2ccb87e0e
+DIST similar-2.7.0.crate 53928 BLAKE2B 41d6aec64403069dcf81a9a00b9db041967b89d09cf9f2371444928f32bbc2a8c6066adb93eaf25c72a257fab87e24c160265d687c4e33848728a4ddd374012a SHA512 4a2559d2e47e7747eb2bde0f02a0e652ff0e116d1d3c3756dd86fd48f114e2b42157b860165e5cc29c2123cf19c64ebd17f023aaa05950de03ab5752562206b3
+DIST siphasher-1.0.1.crate 10351 BLAKE2B 6653898cf0eb071fe83b7c317f93ffb73bd26ed601961173875b26ec8851632599891ec178b7e14318abb9eb98d522db8022deb852af9ad9f6bf38a5a5708e82 SHA512 d230991add51a555af95b30ef104c0e5ed7011fafb92d6ac9ba0f238c8bf4d2fbd39f4b04dbbe960453f8fdd16d3768ba39f39e4877ad453562e689ec8f24a28
+DIST slab-0.4.9.crate 17108 BLAKE2B 8e5288c4d00efa915e7be27b55f2204850968624f0d8101c091a357131106bceeea7a63c98007420c12f67893dd2228b15d3f23508108c3a0ceaa605474bc7a9 SHA512 b6b5423ae026472920f7c9a4abe0962314140a36dc562c0a9e3fa60725b2b8b7a8b343110d9d4c0e18fb318b0103e14c0ccbc9ae350d5563a5ac80c35f228c40
+DIST smallvec-1.13.2.crate 35216 BLAKE2B 31a268aad595c06cdb078577a97b089dbea156a0df307a3e6aaaf4861bd9a680c5b11921da9dbdb1bcfe17d58c0cbede1ffe6bba3aef59b384fb1b9703c62d27 SHA512 a97c758b668e40ad9eb572e65feeae4954e09200a04ab92e26a13b48894381cd3a3d2571070c4b7a5e181182e1ede9688f990650342ec69ecfe1a264d234c679
+DIST smallvec-1.15.0.crate 38113 BLAKE2B c8507c870d84d528c9e17faeb342e4d91356c86af563a8cac7b3a29cb5aa760d4a9f54e5f267d0452cb7301f8acf4da1ac0f48296216417b327441c18971a06d SHA512 c1fbd7865a629d368776544c2faeccc711df3d27d97db5fb2a169933f3cdf66abbdbf476dc8af88f30d5cd6cbb3d601acef8abb74e7dc9a36dfc538dbdeaa988
+DIST socket2-0.5.8.crate 56309 BLAKE2B 309e5a0e46d0b9debbbd6049a138e56b82df4fc0e9d1115745ed935eb40c81b004ad748844f641934e13b5b88773db5cc4a57fc9e61dc82b5322fa0232110864 SHA512 b7d03608a3d4cf3e2d1539b5a375412effcc96279e8f57668fa8cf67b3f0a3a6b611ea5e2e72f282460582954acbb5364320611f7798a11ec9e4833e53830b60
+DIST socket2-0.5.9.crate 57432 BLAKE2B 07876ec6fbe32656bb7d8dc7dd03c3b09bebbc77ff11b9581345473b3d420298432f3ec4271b6e0d2b4ffc113b1237937b2a6fa204856255f8027cc47d9ff2e1 SHA512 a73a30999b30694dab5c1c129244a46dc1773a95d30b82d58ece646c401553719d9830d62c793a7616c7f2e77280d3121ef1b0287936b19b97368ccf040f0918
+DIST stable_deref_trait-1.2.0.crate 8054 BLAKE2B 287a65c3e5b47213544a43e57c60a54add60b4c2e3c8d042407d860cc950ba7ca01a2e67ce56aed6744992b61ec1f9aed3321e3d88482e33129548b7d51df205 SHA512 a13cfb22723f1f2cf089b2d07d657846f50c37bc0438d1a76096bea30214cad226b7a422c21f9e191ce87071da8a141d61882aedf9e0203a5fffdfda86a5fb03
+DIST static_assertions-1.1.0.crate 18480 BLAKE2B 358dd5ac413d06f62da0388e2016c5fcb8ec68fd7dceb0dbbcb97665c032b7509b7e083c20701648b6a9174485f117c02682ae4bde7ef037e80a85cdf6a0c86e SHA512 46d0e35f77941dee6f60f574c130472248063dc38494c1c4f84f7c048244cc2a58a86fe17c0990e3f0f01406b75ed385a13d00058612b27cf0e867c8d31c92ee
+DIST strsim-0.11.1.crate 14266 BLAKE2B 252a9ede4241b165525486aa8855dece37af77f5b28e0e1858c4a5d2047db9fa958328db10989234aad69463ab51b2303785ec056c63ea8c95bf95e111ddabf2 SHA512 0cebe0155a92640e56db9a599ae62078cbb32e1d2da8bfa67ed0e8f410a7558dfcf7b3c2720ff5913282e291ecf076aed9fe9bf84c8d44e814a642b1bed3335c
+DIST strum-0.26.3.crate 7237 BLAKE2B bdc348c718c39609c00b9fa7d47b7090b1467022b7a8a28cc7c8a72a0aef20569c6ab22a8a8d26c2d9272f18d000e4ce94858a6647194f0a7b86d812d52b05a9 SHA512 62f116d5bbc6167a6ac68b049f8045bc660901f1ce1252f8bdcd91cb28bef821aad8098905369db6c2fe74c134a5d549e55ddd28e383d7d78f7175258924b268
+DIST strum-0.27.1.crate 7467 BLAKE2B b577a85f5d4151fc73148a72697fc004a7f8a964866c9773d62a2f92356c1ca205ee323a1e9353e4bf2c2e4dd71983026e311cdd4a5fc0a918aef57fc76705c8 SHA512 0ba8eafe76c0cb659500c73a7e402ec677bd07264ca6f6179d66b90e5f9193ef420957faa4aa70cdd7fcf69565dfb4f7940731e555cad6cadbe2e4c7d3016465
+DIST strum_macros-0.26.4.crate 27531 BLAKE2B 7f7d57c957a1591054288fcae6590a5e669fba1b47d8f1a52371ce60fd84f91fdb430e48cc7edbb5fc72914be5ce12af29758b653680da3f4177339b31206750 SHA512 77a17ce47d5e8fe8a89cb6aa6c3ca5d5c2625aea0f93456f05a9994238cd3b08b3f7c6a45e9b3db21bca8fb5759f505f15cc111ac84acbbb34d59cdae8307b0b
+DIST strum_macros-0.27.1.crate 29670 BLAKE2B 121560118a194029b32584467305902470b83d768d33f166cf67994f33a9780cf1bff25f2199c2aa50a79362501a6cb40ca45c01cdd6c335fab1ebfadd666b4e SHA512 b071fee5d7530bf1ecd31b635a61858921c04dc10906bf57caa38a162a0e2ed726c2f72262081ceadb80c03c38adf235dbdda604dfcf3d439c5fe5a73a08d0f0
+DIST syn-1.0.109.crate 237611 BLAKE2B e827445d00c79a8eeb91eacde472f1987addd6ce9e1df95d7abf6446a77ff4173a8006845f3ae71c1da47193cfb72e0ead9a6d6bad2573be12c17e90735d9ad9 SHA512 12816b9e8cf984024b2fbce9f0ae14cf94d4d2c06f08cc54fb793ce78770bb4cc1288eb7df0ba5e8e937756e1e8e295c53fe07a0c5dde1ea8ddba03b6203b37d
+DIST syn-2.0.101.crate 299250 BLAKE2B 7018cdede66dca82e7d7a7e07e52a178687957fcfd69f1a2862094497d2fb9d78ada14b94761679bbc5f6c76c808a63e948ed071e4f65c2f9580a40bf58c9426 SHA512 05e4233a51f4d229dd4c9bd23c5224c42ec5554d02fd316dad10dfdb876aa1d379c7ea30b1ace979537da91ee746ca4fdcef7690885f83fd41ec8c9dc5984101
+DIST syn-2.0.90.crate 290584 BLAKE2B 9f469001c1439ffe57c578119653d3021c2709767e8e881441459a190402679f4fb78aa65e7822ff20913801c3be00d9b8f115189ea8e63ed94ed359b40fc9e1 SHA512 44606124f113c259c19edcb2adc1378d8292b422d800604c0e0d1ba89bd2d13d518cf4a6afa58daded54da9cb285464aadb113815406a0f09c5e18f865789ae0
+DIST synstructure-0.13.1.crate 18327 BLAKE2B b29ee88c559a2d58fa46b7af155b448f001649ea79a1898f0ac87e69108b87c65cbd287d8f9001f360df7fef06ff39c937b48d33e487a30c8eec6a46c639c0c2 SHA512 09024193b44fc9a8901bda845b9f86c57dad65d0f53e309b2e7e968538fab6f67db1c86e5e52a2eb8fd116dc073e3ad10983bd60764662ec6ba94fee22a958aa
+DIST synstructure-0.13.2.crate 18950 BLAKE2B c475f370d901a371262f466dd98e3914dd6f36aa473a33362866c0f781d27b1813233f96b02208f3463a825e8012cab0f8872eed848d9aa0eac88b581a0d261e SHA512 2698f4e80b93f7cf1d8ae97c4c42a7f61e7b7081f7f1bbb94d7f48ab7ae813a666d73c49ba3812cda9155e0138b55cc246fb96e5858e411a8d32bafb3e2b2afb
+DIST sys-locale-0.3.2.crate 15072 BLAKE2B d79acea3a652a46e04836735b1719a717fc904665f5c3fab0f71d53b09a0edaba6be2229c8439ec2e8f06c8fdc3de35f404c57e5467d02346b6dfc84ef495379 SHA512 9f05bf61cea92dde582f05f483fdcb9930612548c1bb790328dbbd38ffe798a89300ade79e56f7454c655b64e027fe08452c1e1c2831cd8e065e3662e8d253f5
+DIST terminal_size-0.4.1.crate 10037 BLAKE2B 1d99577917b88498902d85718b4ba71ddcd7a1daca4f1b38f4b5ea4c34533eab9cda2cc344cdec5a31ffe0152fbcc5d499ccb40dc73f985f083a3ea21b0b1226 SHA512 e07bdbdf695bf9a607ea7c7c4c5b22a8637b0871877114aa305717a04d31a6b7670e2a79435810aefefe25db8c9a655e4c4ba6075d4ec76322a30cdf71ff03be
+DIST terminal_size-0.4.2.crate 9976 BLAKE2B d6af7059b06fadd5f0e75b1a9512231ba0cd3971d6357d32f63db9f96cf384102939349bb579e176ff4ce2176329a22fb8e257b096129031519b2a02eea4ab00 SHA512 a0c285ad1b1a73c9ecc725e20fd9256d98f89a5530263ef6726786d73ef123486bbf17ee3166c22bdbb7aa4fa989fe73c995a4642e3e09718dc1a76a1734c84f
+DIST termtree-0.4.1.crate 4557 BLAKE2B d4300b0e6e908c519a0a76f5e08167f4467f428b2926e7739614cef5d3e294dfac15ae8576f7011a852745713c16da93346660ff96520a2bb90a4dd4c23d889c SHA512 ddbe0d3ddd79b182732359f47958ca32aa351d10b1e7d5f6456700b851aa2b5314ce005e1fd120a248b676f219fbd68039cefc071d92c5b5477d053bb6e29062
+DIST termtree-0.5.1.crate 8498 BLAKE2B ebe1face80741908e28d3fbf828bd0a7a70bb317f4532fe38ac9b6adae898a7032f751718a39300ecca8c7bf0ea6cca028c02c93c7ce7a645d67656318e90172 SHA512 43d92132cef6d352c6c0190ce4a688d7cffb61ee86dbc6b49ba1f4c404661f9b329331198063d913ae52b2d4c69e6a2d9f5cd62886894c468093abd8604f0125
+DIST test-case-3.3.1.crate 8797 BLAKE2B bad61b52f7865882cf6f1ad9448335a8c2eb725629858d62675ed5c10e3a160f5b2cf28cea1179a0c1fea1b33668a70f294b8a2252db460490f3c0bdb705e7d9 SHA512 9d6836759dcd71a61ab4e395db7c1a75a14ac3102a36c39b09868ba96d28a2265d8ded385942e55cf95dafc7f4b53fc498b30b6473cedc9b558977878e831b3c
+DIST test-case-core-3.3.1.crate 14327 BLAKE2B cdca628ed77b8d7bbdf50c775268f733e125fdcdb4425d228691d9650558c3797876f5d8e900a7afc330f61c2be588452ced646248bd676fe4da1a4f8000decd SHA512 2c58aa3c9051b99c269168d5d321c73314188501fd33170a8a5d44e860354f5a399545abbdf50478a43d13e15ee9ed53d4a9c800b263a5e42b97416f96e2c0e3
+DIST test-case-macros-3.3.1.crate 4961 BLAKE2B c3cab2832fbcf3deab12b13bfbb32bbe73528df4d98e84de589a39cd9f3540e308e307148eeedfef4822e3f6820e1b1ba93b102851c7792c5abda25f735b9abb SHA512 3383ad7fa23f09b3289e2beefb2a2ea6bb7f7f48d71339b4c1e613c4807e83e4ab816b1c36369524d65aec7929064d2951c758d9c88164e7792a0a46fbf2d933
+DIST thiserror-1.0.69.crate 22198 BLAKE2B fdd8ca8c8ca78702377d0bf7b253440519018275b105db980d63229d0d44aa5c39a703e14aa6fe453c779b3c864d8044009dfef893d2a5294950f067656d7a80 SHA512 ef50d2867d965da1dfb29d26faf6de273b5fadf78f95313f6caf44d68bfc610b9bd4b7544200b05bb0861231cfc84e961007f8db83c7905244c492037fd31899
+DIST thiserror-2.0.12.crate 28693 BLAKE2B 1145357098af4342f8d5f5cbe329acee408cf35b86ea97a0cbdca1cecd18a67f4798518266bce21f154a8b3baa0291b7bfd8edfbe29879364cc86e76e7c714d7 SHA512 aeb6de221b28443adba6a03337e7c70c54f99fe9500e39f904c3a8e612d895bc65025fb72c861890c7c011595d2b36832f4b642781847513edce1416b30f309c
+DIST thiserror-2.0.6.crate 28433 BLAKE2B 11f70af76b17ff3b48f27b47031f2f976b9939372a145bb9261236acf316a7230ab1bcf51e85b66bbca3a12a4a9eef404f1fb24e8588979b8cb707f374514140 SHA512 95c436442e3a6e3c841583669e5504c009522d23e124a9d5b7ac4a91346040baa294ca810ac035155189283f7d82c54ea2ed9392619821f6d2e3cdc439d48772
+DIST thiserror-impl-1.0.69.crate 18365 BLAKE2B 51663251ea6ec99c59aec35fe73c5f9760809d6b6b7eaa8ecbc8f6939acdc4d0ebc11f9034d9204dde7bd689d5e8303ae0be86e298745e9ef96825bf73453a08 SHA512 579eb796c8885feb01d27638862823acd96c79440655bb444c3445ac00121852603396ce7439aed617c0a0ac69f62102167fde5845411c906997574a46d6d9e3
+DIST thiserror-impl-2.0.12.crate 21141 BLAKE2B 091cfa822bdf6cbe0730ac0ddc19c6102f6aa341fe68b18f335588f1166d9a0d34278c73e440c657b5890689f2c73c3c94f4d07abcf7bc77ac2139ce6c0bb555 SHA512 01bb00310cd8e80386250469ee7be2cb8db7ff4883869f8ce2ce0de1742292ed4e6d7fb1d7520f1e2555e72044309015bca84dcf058bea99b8d3db970cf0bffb
+DIST thiserror-impl-2.0.6.crate 20946 BLAKE2B 44d9530c7477e26628cc668ec5d74dbe3e27e9f69ee2d2a5c9694875570abd5dbb73f4b6c45bad311254c3fa21d3a7511006b8d8db4ce15355f1ab1d68f51316 SHA512 73c5e180d087c6cecf3421d3c56a8d13b4a908fa9dec02a028f30adeaebbfc6ad7748837f08c5286007f09b7430df8677eadc50527d6f17e2341341441ed6059
+DIST thread_local-1.1.8.crate 13962 BLAKE2B fce2feddaaebde42bdb83d814929868f06387a4fa25d5becc73ff0b983395aabe076268569c6a89e2d90ce6e68d2ebca7c3e0ba1c9159c61b32631ce39289a9f SHA512 6d7e3941f43c43ac091db5d1cf2a8a3892b54b0634d9200426eadeb82015566532f04b6040085dbdcb10580ac724b6ded8416931d764d795a5f923aced66c492
+DIST tinystr-0.7.6.crate 16971 BLAKE2B 33a248261c4cded41a81f0d6e6c8df55437f042b37f235c39787986ec562f0dbff50b282ad0f1483daaf49c4b33e6618e139a6677d1238c21f4e12082562b4ae SHA512 a33051848de248cac0a2d151760a78cb3aa62c787d84ff7aac38b11c0660e9188e4d43d43a77fb8676e49ac6102015e9c3db057848d809e71981851875d0fb25
+DIST tinyvec-1.8.0.crate 46796 BLAKE2B 720d0e6d881855a36779e12f5ffa708d3a8b96e6d0de9056cb33c9b8ce0d408f99b22f5b2bb9d64bee72a011fef846dbebbea2ccd238d7b951eb5ef0c4866e05 SHA512 b7b32e38229645965900f80f298685f13e6d13e58cfd6945409a6643ca9c9adc2621456956d5998ab9dd91c2db4ae79638b156ca0d9c7c5505023fd9b28414df
+DIST tinyvec-1.9.0.crate 54137 BLAKE2B 68a96ec0ffa392586c3bdadf2323b2a3b416ecb81db5d18ae0e05187b097c7882da6678bc881e70f935554862fab5cf41ae590b27e0fab7c1c73995449b84f5f SHA512 5f42811be51c58c72b80fe9a7199250fb6176f5766dc774b39ff656ae5ebead0d9c91ed7db1046288b8e05e20edba36455e4cc6fc0766c60898187f30c232aab
+DIST tinyvec_macros-0.1.1.crate 5865 BLAKE2B 2bf4f68ca11dc19c72232951605a4c809b34ff38ee365ee4f592a3c41360e23c9330cfba961e2692a0ad568fef4aaaac51c40808d491178cf7a0c4b5a1c5d484 SHA512 10008c7b3a3d50c94b9c370015b76ee082f5dfb6dcacf014dc2f2dbe92f903618d10d0202b21f48fcf98a94ae76fb712db55a5e8ad353645d378cf0e6ec74f7e
+DIST tokio-1.42.0.crate 806998 BLAKE2B 9d33a892eb8de63a65218da70f29f21b75b5b9635cbde0ae0667f6de117a4c6660cb2bbc1316b76e9e796960b7dc6c2b31c146f016cc147a2f11333b26391a5d SHA512 3cdc72f3209057cd0f954913f3d26d275246e0a2d63171f84449257de55d1a416c65b340d38a0d0c7fa33bde36bb612f550cbd43a49df22781c84f8ab2bdad9f
+DIST tokio-1.44.2.crate 841618 BLAKE2B be4c5f7aed9ea72ca70eda0b51f2c410cf03ee2caf783e48498eb7374bd3ad4085206f05948b7c30e1154f6a52b36dc3035e5e399d05f0b648c7d9f412feb671 SHA512 26cf5dc0439429c3f8d38c4cbd8a5e3a1db8c5188e0509ebfdaa45c7b71d586db89e8441bd65eb8269b095bf3d42f7bdb2baf6b788168ea19f953e638f4af6e1
+DIST tokio-macros-2.4.0.crate 12501 BLAKE2B 9b358adb86e828faeb956d24a1ebf68b51a69bce519ad9760ec3d3b8eb1cf4435afd4edc5ddbf634fe152bc77b8675182dda3f076f1011c5b5b97850c1fa1689 SHA512 f4a445f6c2cc7c1cfb5825919cd3dea3af52720c7793c20601d05870e7efbcfe0c6231fba7ada49b5ce46757f0e1475b3667914ff33c2fcb25e9a40151bd2501
+DIST tokio-macros-2.5.0.crate 12617 BLAKE2B c30d0011173d246dc82a5c24ba97b0ed6b66bd8f19b0977e0305b03843b3611528fc5911b632d2c46bd22b8fd2e8488956bde0037c322a3ff8b7306e72cb9bdb SHA512 c1d24cbb8b3f500357e39f93cf139790e4bd3ad1657dd5d695f5e4f9a2a460cd63e8c1c32a36b64d3cadd7b6467e59ee34cd5b1548a99449d8e46c2db83e9ec4
+DIST tokio-util-0.7.13.crate 115191 BLAKE2B f4acc65d0fd14a88d46545bec2313cb1f25e1cb76014d09c34f8a8be62c6901ab09b18d7b32fdab58f6594fb861bfcb8bfdc8825871347d7eabe2bd8117768bf SHA512 2a1e8fbdd094f81e00ee87eb5ebc4c62825945048105970e52d6d0a872769d268a41ddf91c60158c02a303ecbaa1b19795948b5416f9bbfcb079c5b27d39d51f
+DIST tokio-util-0.7.15.crate 124255 BLAKE2B f24525a3ec474921cc5d8d1dc12355f8ea5e7747be5299eeff00664ec0f6f6edbc33bb1613f64dc47ee6117c0d32cb6f770bec72f3b0bd549aff392969097622 SHA512 032158c36673c589ba09c52fe37bd0c700956fc4f89a7991f3cf93b04c8a12d51d1e05b8c6f493c7ebae7985e653bc3fb8bad590cefe329a1b1fa94182649520
+DIST toml-0.8.19.crate 50974 BLAKE2B f68987353837b74421256fd9a76134bfbfe93887cfb25145b65b7e6b31ad2c3a3384829a06f50c771a2a0be0c5467c856cc631af69f586ea056c4f15af9e3b7c SHA512 16fdc58d14516e81badbe8c9a4506db75b559b377c9c4fecee79e76007b31a4abfc8c8868bf9159f79c6f7c0218f93bdcfb92b669b0917db7da42b51ec155751
+DIST toml-0.8.22.crate 76224 BLAKE2B f5a6ea77cbf14ed91becb919a2ef6a585200d16c0cf3357692eedf9db18b812ea0567eb8dcfcfe16b348558a810cc5202b816389fda22622a7205423952b636c SHA512 9c5efeaf6d35c409cd4dffac672e9af7d09128715b66f277a673aa424be66dcce398bb123f19ca6cdf34c04ecc796606e3fd909f60cca4e7e46623ed7eae2e0a
+DIST toml_datetime-0.6.8.crate 12028 BLAKE2B 62113366771f22b437b2ed0d3bb2489ae9078cb589cfad2ad2e92c81ddbda48f689e5a573366eea4f54c2b3cbc6b37eaa8b442b6d935b631a992de4917268757 SHA512 d38b98db3b2d4eebd3001d88e2135b6fdbae63b200f7e900c6bb9c121dd3f170e557332bd26f237312c1cbef61666716b0cf550c2d730f86fa7cd9eb5f64a16f
+DIST toml_datetime-0.6.9.crate 12622 BLAKE2B 0362fbee2359fb7388bd679ccf114e554234294437dd3aa26b0e969aadd0e0fb76ad89eb33e0c4a2b50883764f64708fad2e265562feba13688fdd07623e18af SHA512 8409a902d7f6c22a8837cb71fd0e4fbb40b34c1608c3e858f4f5268c34948b94e9f9dae9e6f3ba73c78e3db14754fcec0b22081160acb228ae366aeafaaead9c
+DIST toml_edit-0.22.22.crate 106387 BLAKE2B c658eef2dc8420266a6928d7ef46340372af2593e4db0d3a67ec88aaf8f601d37d1e9b5bac231a799be8a2ee68a7d98b5f651e9c109d23d8b19b60cf75debddb SHA512 0f98b371f7e27ae7f435a207c0915f942af145cc5dfabfe6d57f2b797efa3e706025401e501fccc6df70c001ce27051381556b8e7824447edd23ea25d047da4d
+DIST toml_edit-0.22.26.crate 121714 BLAKE2B c1e39ec75d3d34e038d7a7e3af4d74b1a53010ed2d837a3643f08e459231ec7f15c149910dbc5294187601e342b0ba03fa8129dbc879b326841a32513ed7fdd2 SHA512 8cad3472f790e3423dadb34da76f77fd122721daa1c855a749699ac0af8e39c2453ed47369b14e8603204acb896a966ea98857118003a5d75cc48ca5e28ecff7
+DIST tracing-0.1.41.crate 82448 BLAKE2B c056d938e001654e03efaec7a11eb8ecfbdfe9af2099271fcefa43f4f4683b40c59f7111fdf7f27df4da38bcbe94f1b2ac0abb6ec3d6e6a0d165b9fbb14da3a3 SHA512 dffb8d3a1375f1b9d5418550a46cb7b1d92b2cc8ffbccb430a38f7731547960775bb42798074186711847d256eee30fb3e74078b69cb36f28c07d9f231dbf96c
+DIST tracing-attributes-0.1.28.crate 33280 BLAKE2B 4f4bfab16ad8a296c9399125edfd4314d55ef58977d8a1f3e867618617feed898cd14766527c9b788d5fe3d3f8ee5bcca0e26dae79a2e6cf05366991ac23dc10 SHA512 4a3d5fd76efc414c86af0721aab9e9aa70fcd6b08eed4acee8c2af5af56fd665197aea612187c7f6022d1acf5567d5b9e72a7dcdcf25cc401135d875d95a99ed
+DIST tracing-chrome-0.7.2.crate 14030 BLAKE2B 6ffe58c4b60244d10e41addd7fe1532849a0ae56747bfebb18565e362c727b7199592ffd524c39b4d478da7dfea2dc03b1be47a1908f91abff7d5edef67ca410 SHA512 0ea9fe590f648a193714890da388183305d4084696926f5694eebd3c1da8cae922df335500cafdd60ba16ee5ce59a59e4fa292b97ccf739a19c2fe7fe145b0b3
+DIST tracing-core-0.1.33.crate 63434 BLAKE2B bc36332ffe5f4c95ae2d12df43944bcf589746cdb923a39098e5f4007fd1f19d7c3bb115011ddc40c13e3ae0e5cfc9a59c49861824e99fed7430fd29479abacf SHA512 1c6f0cf3b7bd6c8f6316ed9ea0b315a619308de6cbf7e50e665a193cf8c3399b5227d4f145d83b10c7e01a2f9fbc83d16e108cf09b7fd6cef413aa5c1acf89ef
+DIST tracing-log-0.2.0.crate 17561 BLAKE2B 701bdadd40f1343f3c4901bd8dd188f1dbc0afcdf50807bd0f6df7539635e239b5095696872103125a4d4cfec24af6336fce6f3931363dd5be4f53a09fa584f2 SHA512 0c1f060e8ffb9ff24cee7b85cc2d7d42c69b2f7623a7faecd7422b23b11ae8d5c7691e4635bae76861d444c369d9701ccb147904668023642b223e442e3c8285
+DIST tracing-serde-0.2.0.crate 7755 BLAKE2B b2c50889ef3d65e843133c5c518f907829c14997155ff56da129b32d74b5b99aaf0082ed9963a7e1f9b20072ca28fc5b9744270c26456490c54a248277b3eb23 SHA512 d5914943ca8a80959287117d5d5f3fee0f01baa49cef02002bbd00507743e06c3c5df31a346dce54b9d5d20358fd512d4ae54a0956f1dd334b9bf0c7e7594823
+DIST tracing-subscriber-0.3.19.crate 198345 BLAKE2B c7083168e62619c856b872570b85b44475edd687fb6d5c3334246622900fcbf4e4a8484c23362fbfb358d6d9f8088f7dbad2e2ed30954aebf76d1b57324b712b SHA512 840e35103f1152e94ef9138d0f03f157b296def538bab6c7464fa7d363aef7734feed196091782dd3aa9bf06c7dc181a2c37149a23f5be036f00c00b5200686c
+DIST trippy-0.12.2.tar.gz 20922811 BLAKE2B e78ebdceabf4cbeab886742fa2085e05a01744cb46cc236eca81fd105dd74288a12ddf34b2231fdc238efffe1ac23a442b0ed90f1b6e6b5eebfc2e570574d0ca SHA512 703db726d28f555061dae415ca684e15ea342a733ca3318410b424ab4e45e9b411ca0956449050e8026b0db3ffa09d5ae9a7e724db7ccfeff054511ee4705586
+DIST trippy-0.13.0.tar.gz 21102128 BLAKE2B cab7d88b0c1c83139a80ed8b8f6ebfff3f0ee686740e0176d4607bb488ff94e67d8e5fee4a2e3079044d3401cc54be194054e8e603f3fc76dd279ddd8268995b SHA512 3863fadfd0d9cc39a8ef06193a866405774634e871f45280bac906ea11b618d631a401facb7774c4ad0ffa6a4f1c9a64bc80cbb1f50701ad646b460698881922
+DIST tun2-4.0.0.crate 34496 BLAKE2B f87c9bace127f7bd616d3af68075d800c853e0140c2578d9b11134f1e79371c6cb75c5db6570c1394b8fffd365c446ca672d33dec8b12a14ee220bd0fc2216a8 SHA512 77fd0e9ddaec79c71a9081f223d3e03a20dd669329a190a22fe1df2c96e691e1455cb96fb25650276896bef5116926df43b6c359f6f76c68698242e1db98f0bc
+DIST unicode-ident-1.0.14.crate 47547 BLAKE2B 30e0b6d7f3a967aaf5b9d91237008a60c3a8ded53bda901696e23cea3931dd71b01ddab866dca9e31e17c395d5f5a68f2a938655b693e894962568c2cff5ca15 SHA512 7c6dcd1724e8cfedc37546d1abd49088b633dad228097acc73d7b6cab255b223e830c541144e05a00388fd8ca8066f27c18792419cfa58ee9da4460a38d0bc0a
+DIST unicode-ident-1.0.18.crate 47743 BLAKE2B 517ab42a847020515b2b871844d0571ea672340f89a762631a791eac18935ac122122fa5566e58b99ab47de179eadb5298e8ff1d05b123c4e93b7fa989c8e31f SHA512 d11f89fb696f9e2953c96a40b5478832651b268c83b9c7a700b07e768e795d6e8dc346597d1226df21219d36866768d1f640bd8edb68db8bd3d5d437b2bfd324
+DIST unicode-segmentation-1.12.0.crate 106323 BLAKE2B 268b60aff6694434f05afb7e2b8187eeccdceb77460f8ce2ac0f84d470f8a4e03182ce3f7906177cd2f00f989273a7e69061a763006245f0876bf21b15076804 SHA512 55eebfe5e9972b39d7c0011d80eb5f517d636de37870999119a3d8f064f21f67b66a5ba9761d562738b05f220e21d56b5be7bbd9cc51662994e40dd67c38f946
+DIST unicode-truncate-1.1.0.crate 12529 BLAKE2B 908c794c44d4928bcb73e3cb7f89a5f57ec39bb0a2931db282849d547fee1e228f0ae01d50421b86a5d08c4860c4960d96909f1444e00179ee7309e25e1a7fd6 SHA512 090050af06ec187902102b07b2caa4f5c4d1a046d013aa1fabef9d18fd3679a6dc4dde6b55b9f606dfb057349fb5c10e2c229d3577116c9fcff07f1099fdf4f2
+DIST unicode-width-0.1.14.crate 271615 BLAKE2B dd2e1504caedecb5d37c397ba05446d3d762b8b6833a8032ebbc213e324d53d89db5e96ed2f7223096e5754d800b39a54105906effc88d9437d7acb9e7beb81e SHA512 3c58a18776aa82cc13c761789a47901616cd98a30356f93d7eb05ae457314209d0a66213e2bbfa5eb8b59be6beacf62438234ce8daafa31b128dbf7d5d6fcadb
+DIST unicode-width-0.2.0.crate 271509 BLAKE2B 53015f24c57ba65d7ffc6e15e947f5ab96fa272996fe5a4d2f9203051972238ea7591c99f1d8ae5d2610c7b83c215b6912eff7aaae034237aec8d79620bfb843 SHA512 38149ad512a44fc79b2c991c6b5667da2e8f8b442ab6bb7e4f404e7fbb034f7540c7e0e8b9e72a1ff6117b899d6034862239f43b6423fa89d55dcf489caff37d
+DIST url-2.5.4.crate 81097 BLAKE2B 74943c63809ca41a526a146bedae66f91f390fbd2ccbd90f9397d8074ee7ec26535f0f67170eb1d7232e139d8d795fde99be37f53f1bc32c6a6a4d46aad1369f SHA512 8f1d62bfdd45f52fa12ad657a521a3478d0ab54d187346a29dd59cc66a0f140ca96d850948e09f6316f08b44b3fc68526c58bd620fed5d065b7e8528df3cd46d
+DIST utf16_iter-1.0.5.crate 9736 BLAKE2B edcd9776113d4d2b267a9cbd58cab11c5497ff1a8252c4e695de619fc8e5eee1595343c857651774b3670d13392144e9d7df579f2e226842aa7e4e023a76fb65 SHA512 44dcbc5a7db149392fdaa31862be240f78fc5d7616f54be32cfc8f3adbee310e8681ae1bbe6edaad8a7fe6e7759dbac8ae4f69d0dbdbe5350c21dccdbbe975fa
+DIST utf8_iter-1.0.4.crate 10437 BLAKE2B 1e7a8b9241ebbb62cb497542b970473780f735010a0af900771a43abceae4e7f362d21d4f79f7c00630e4549400875ea17574b2cbe4f5ea19e8ed428e3b5577d SHA512 a72671995b3eb295581c60dc632e4a25ba257227fb5d58a8bec322428b6d69529bba79a6f02b8e7ee6698b7779d9d6695f5badad73e07c254b00c9d6256c9090
+DIST utf8parse-0.2.2.crate 13499 BLAKE2B 095b5d219ab8ff04c06fd6303e03d913ae36a57845f0b2ca3217a40e31a54cb0fb5ecedbde165d28f5f60f1553d8252986d7098fa83befc84a7cb20bf3b76144 SHA512 f3dbf78fe924f1dc3cf9498b6e43fb10174699463f31091a7a8136d8f31ec84fc00e80e3d8551b7e86257e8b3573cfddb56fc0de797fdb2cde0e962a8f239266
+DIST valuable-0.1.0.crate 27718 BLAKE2B ef5ded994c9a6dd302bed27f0d757447b0c86dfefa499c1ef0d25c3a6745ce61cfa2c926826534c9f605f9b89b4a19f91f06f94ae7c03f1ddc4c58fab3ae58bb SHA512 a97f65db1f1c5049a276dbb0e45e25c6fc6ce9d27ac1fcd77c945324cd8216ef60344065c79799ca04e338455e4f7422c44078eea32d5fc359dd0211ee7eb387
+DIST valuable-0.1.1.crate 28679 BLAKE2B 33a68f81cb0448fa737fd7416f2dc1f0e4f171851692e5f759bc375ca8ffbe6eb53912823a59da44228029d379729b669e8213f00928c9b1a182c5d26c0de8bb SHA512 d8a4bffdc8a166d1ee11b87dd91cd68e5c898916b14db7039ad2faaad34f4bfef76f3fc3d17d6e7bf05e495778f7c9d5223fbf45331bd114f93fb6ec950eadbf
+DIST wasi-0.11.0+wasi-snapshot-preview1.crate 28131 BLAKE2B fe501889f25d65e2d032f885cc50c4f8bf7dd70fd5cbc438de349838370d8699e9627b0a4fc76030ea9fe6d508f41d0c9928a875fdbc47e73bfb17241cf7b155 SHA512 043500ab28cd9cb779475255da5d109ebab7fccca72b64873dc28d77bc5a157ba8d96b9e8f05223b5b36c7089bb7b4ba87657fc69bac16b78972f897294a865f
+DIST wasi-0.14.2+wasi-0.2.4.crate 140921 BLAKE2B 6b3ce7cb8ed888ad65053352b02b827bced3b59118d546ba593ffa9de48305bef62419751036e22b0f95c22fe34ea1d7bdf7fee0f6981181026d1eedfacf73d9 SHA512 57e47ba27fb2b66b34f017c85743b99687eb8bcdc1312fb36e30d0c501e670f00dc7d6113730d819364abef5e8ec04d95f0d1150ec2b6049e605fa8bbdaa2cb3
+DIST wasm-bindgen-0.2.100.crate 48288 BLAKE2B 8fc4f71c7d6cef15f131a9bdbb50e3eaf9f3894a5b6c1d73876824efb731b46e8c3449947893103f23bc15cad228a1b8bcccd45ada20df53b3f3dde6e419c184 SHA512 2a8ea7ec669efe10f5701dc3b2bf496e33afa70c31dbc65fda5191c9c28ddde54fa38bb168a41b0319a4ff0bb5ccd897ce51ccd7e523e647b3544fb390f8a4e3
+DIST wasm-bindgen-0.2.99.crate 46136 BLAKE2B 04e69294da3dc4feff9001185bcc5b864d1f14a1ead6b9a31c830b2043dde191f9f7c65755d607365a3b8885bd340bbd266e26cfa74c48464933c8d7a1164f94 SHA512 184aec11998b99a730ea5b63d6141260cd0b7cdc29b02696f533b3e75ec79f7c17c6aac892e7a7b24036c6e73592d01df638ca31b54bda11d3bdbf857b1489c2
+DIST wasm-bindgen-backend-0.2.100.crate 32111 BLAKE2B 6bbbef709753e22230176121388a95fdb8f4dd32e0755dce5bf6c1127c54a236af292f319d14b5cd97bdb310fee65288e8f404921b83693e287164cf9d589a2e SHA512 a2ee30c1185644f989af6be34e93149a791c05125de24c0ff91c320f683f6f5d939fe42b8ca09d629096388a39256469f8b96a6e35722ccfdbe8d978c9a51770
+DIST wasm-bindgen-backend-0.2.99.crate 30928 BLAKE2B ecfa94a461df79a33fd2bb9807374a2a0c7ac370b443e5a1103ba73a29c9d337ed3feb427c80571ccc15599f81135987742e698199528a9c1bb570baef3e9d09 SHA512 8369a5e618223f09fff7cdc35662a930b3eb11024af51bf5fb9e70c45dfa22452a518d723f3d912c0c970fc4bf748ef2d83d48756483174993f7d04c92d9621f
+DIST wasm-bindgen-macro-0.2.100.crate 9663 BLAKE2B b8a3fc6b3571f8caf106a9e9f3d9cc48b86096d714c5d0208f03d44d47003b3b26441b5cd68bcd49a8c05758bc1b984e460fb62ab439ff2d68c72766ce20358f SHA512 a1942f838eff5fd54406b573d81fe18f262df48a19535245b1a46cb31db2a022746e861d72e5286c632969d15d416655460d3865309c4947cd3d7965dead5c42
+DIST wasm-bindgen-macro-0.2.99.crate 7011 BLAKE2B 07182a9fb98f519d1e5c934e609d7a42cf2409319f59dd901e2a5bec77972b4d16fc6f67cf40ade58af874b05faa981c894443d3950616e2aad117ac7355ac6f SHA512 344bf5192e43582246efad257c600003c41b589234c1900f6ed201f96b6f7665eb55226da15d612060042f89c6214e452489cf3aabc61645843be9c27f9cca0b
+DIST wasm-bindgen-macro-support-0.2.100.crate 26243 BLAKE2B c18e35978b62dd2822ba8a4f6955cd5154b2a0d81b8e8032c2f8bda42c1c25f74a13f3e1c3a7bf47a823de2517a237e6a1aef18b189bf1f2b934123c58d1eb34 SHA512 0d03eaeda37c9c6ae06c0fa96e872b54780c4cf545b621c730dcc113dd59a8cb6333c5e3818f51365f71913b9669d8a870a06e70729722d03c07a49cff8a4fdf
+DIST wasm-bindgen-macro-support-0.2.99.crate 22800 BLAKE2B 9772cc94a64f768eecae12072e6d700bf95fded306297b84e235f3450f7c5630cb1985def3eaef05aee193c693f92c6fa61d7a6ca18e84a2b73aa38f070d47e7 SHA512 936ab8211a13fbe8b8f21a870a78c03e24219d0872731561353cfcae245e9f632246f179b67f2b13e106c799e68c5c39f9e388370a8ad3f93f299c4804f5907e
+DIST wasm-bindgen-shared-0.2.100.crate 8570 BLAKE2B 886fa72cae891d4c2311e12e28f0a7bde9bcaca893603afa3428a402726b3b2bcdb6cb7dca6fdf983bd8fac5f049f0543537f2161318769b43c7eebfc906df27 SHA512 3fca8ddd1c6b2f66f70f6608c9b341822603f1c0dd71d47d27c6be8fe3f2c88598619946627720734b48cf999cafd0c63a08af5db28ea78a1538d2165a5fba61
+DIST wasm-bindgen-shared-0.2.99.crate 7773 BLAKE2B 73489af59d16f4d0a1ea51b535cd02d2759b5b7b07873d8a71fa6bd6b6ce1cfc6e8139e6a79346abec13665ed9aeadd0b5b6aed28ae008f9dcb3d5da9fce665a SHA512 8da0f107be99b6666cf1859d68ac0a7295fc03e7b494fce1df9dbe57d21807de8e2bc95f5b974562303923ca4646f38c5297588ad7c97bd59ef236218b2a64f9
+DIST widestring-1.1.0.crate 85046 BLAKE2B 591f8ba6c3c45721d342fd4668805c19915d500b2b46b8e1e75a485ebc772db187acec791205415e5cbf288ee70299a5813a3185d933443d426eb61d7fc6003f SHA512 a4feb959e19d5238e89b0973f040b26849f896e7e9fd567d0e74fbb4972958a4dd76e74de5ea8d407b74cff28f20f9c80446488da6abdbee38aa87a94d683435
+DIST widestring-1.2.0.crate 89105 BLAKE2B e95a53d53ffb3980f808ce041c686526ea8bcfd1f2efc53651d31b93eb7efc80330663ac5c42b219ef6b88c39f57bf3c5c96bb68553193f85213ce0bb2b538db SHA512 004cf0367fb49802fd6c1eba2ff7bcb61f49409fc984e0bbb0c833a7721729b09a2e2e5c67fc0a4b1c36869679799b14fc2be4fecaff3c9d0c1d6a7ae7c5f148
+DIST winapi-0.3.9.crate 1200382 BLAKE2B cb5799749ccd935ea2d7068d953cecf19f543d9db7dc16ad4584bb7005373ada34937a3ced7225544d8bc765da599911c7a3190efefb3a25b7c1bb7123b4f673 SHA512 ff8b7b78065f3d8999ec03c725a0460ebc059771bf071c7a3df3f0ecd733edf3b0a2450024d4e24e1aedddaecd9038ce1376c0d8bbf45132068cf45cf4a53a97
+DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2
+DIST winapi-x86_64-pc-windows-gnu-0.4.0.crate 2947998 BLAKE2B 2ad1ea8b5fa07d544e910ccba043ae925269b76b26c9da356305b34b86741dd8b9aff0b9ffe3d562db4fcd7d7c46a11ce9e3168b782b1d89ae6881742b7ede82 SHA512 4a654af6a5d649dc87e00497245096b35a2894ae66f155cb62389902c3b93ddcc5cf7d0d8b9dd97b291d2d80bc686af2298e80abef6ac69883f4a54e79712513
+DIST windows-core-0.52.0.crate 42154 BLAKE2B 9670bf02261b4ab2a24eff97dad11e305deac823cacfae286965b62b11bc035f19a55ca710eaa4359c8a4905433a94fe62a836b77ddd68f244ad6ac2c9657f58 SHA512 0c8f1c7e63c11bdcf1361150ecc83abbfba8da2c6d28523799bd286bf8aa1df61ffed19175e8cb3ef516a9afb6248b640c2101a2e0c09a99bfd7a18c6741bd36
+DIST windows-core-0.61.0.crate 36707 BLAKE2B 4575282e8f633066e3d3b62ee1cf83cfb2f6755436ace7368f9788c4f87e3bc3e4bcc334f89fee5aa8e364df38cfe5a9d01c44dbeb08e503cc4ddc4cf680a1fc SHA512 56960fbcb37276bc0a23b44bdda7b9cf577710f8c83ae3092b57dfcd5eba0ad7279314aada9a3ca9074a87e2dad4de68e3e3acfa1f318080e37417e9c743fafb
+DIST windows-implement-0.60.0.crate 15073 BLAKE2B ee01abf1393df94e57860440c2b768ffe0469628af014df24799947c923a7fadcce652622c29e6820857607f8ea4024c784021473ea2532e2d51c60d7037600b SHA512 e0e423629b17edd8e7a202170759dc07e51eac3184111ffcf58e2bf8c94cea5c9c50015789873cad526b5a0cd3a12890461a91cdb6a04b0ad14926534e0a6d76
+DIST windows-interface-0.59.1.crate 11735 BLAKE2B ecb776c43d0c1c8e635975a141ea5c3e04639c10058d7bd55e8408fc460def54feca0984bf03504b004f2403b7b62a1df14f31ac2f2dc128b9b7f1e4c373fc87 SHA512 2aab8271746f67998a893f97aebcbb333b5c83d0ba28931b4cbd356c3897899cdab0b58c4fc82abddc1eedf758fadc6880e8bf35340929827e572d5b2653f9a2
+DIST windows-link-0.1.1.crate 6154 BLAKE2B d8f59d91147725361731f1ac6cff6dab321f8abc3f48905bcf931cfbe549d7531bf078f7aa2c5575bd76f467d89d10d08c42f8a3f60ef8e22e82d3643cf3f415 SHA512 bdc166363e08dacd4c320984b239a8976467e59a0e6431a0174cbf603f547bf2d38b6008bf8e135cc3610b71811c77121e6bd61c27622a7be1d143eaa9325fa4
+DIST windows-result-0.3.2.crate 13399 BLAKE2B 89f42f3e4a849d8bb1f6f490a42dc2b29b9486228de4dffd66d6be5072e594f5417e0de840094c5559cae57d21998c131d28f1368c5cd055cd6451265f37318a SHA512 4a1126f92c6bf2f52fc3fdc3e9fedbce83f082c2f929cbff593e825c56423bb449ae47374d4403ae6222d80bcaaf4f8a532b5ab6a67b734e545a606ecf8fbad9
+DIST windows-strings-0.4.0.crate 13939 BLAKE2B c2b1e1d75497dcc0001a755d1cd53ed7879c13998a7825797de35fad89e34c1760f59958594954d25aaa8c1b991ca8a76cffb30afef6f10beb4bb490c28cdf64 SHA512 934bf16d7cee8b34dfa838f40361e0c0cdb0b4480230d19fd09a51fa7f28af4bc2602586088264d4807abf27a23a0e06c0aa7a2e4ce1ca061367c5be58e8ebd0
+DIST windows-sys-0.48.0.crate 2628884 BLAKE2B 551e900de4f67187ef034b60df9fd0e0d8f82a3100ef28e1eabd543ac129d882dc86ffcc1714071aba09e4cb2ae2d2f07ace1a32b99fd989ce525cf05991edab SHA512 bdf534bcf3face31e9ebe11427a911a53f89f4ff5eaea8cccd094e139bfe14b2aec602b1cab1df774794d999477439d9adc6b627a8e33c20334fc348ba2c47ed
+DIST windows-sys-0.52.0.crate 2576877 BLAKE2B 69d6b560ccfc8f679e2678663ba606060d71fa28efa82c8aef8cceaa2c63b06f2052764d60163964f939649a26bbec6361ee4b094555e941fae92070db566980 SHA512 24ee0df246c2b456a4987a9124786a28acd358768cc7d1305bccd81bc5bb8822b81a03fb18d35174a520b911c6d9b685f81a34ab319fee13da3b985273584f03
+DIST windows-sys-0.59.0.crate 2387323 BLAKE2B 3110c8cd2bc005f8c95cd038a8d574af648dc19788fe4485f977376f92e36b911b1a542d669a07ae9cd4ea72a884ab01ec78b8a2b5587456eb202452d1d8fa0d SHA512 d35e009e979633a1f3c8468cd038bd5c8c0381405165ce03497decd7d9edaaac485d704487e4a61d9aaf4e4d011b4248408912df6a0044d50e8457259867e061
+DIST windows-targets-0.48.5.crate 6904 BLAKE2B 7396bb210f37bd51da86f39fca3425c8f6610721d5c4e94f9fafa0a8a8046303b3fcc6979146bcfaa32f4406d242a0455f6cbb220f84c6ff84650e755acf5223 SHA512 e079eeef255a046be7f8e6a31c14f7b230254ebcf05eed2944827bb3d2a0dc30940d87593cf544d5e7ef35f6312b99430efcfb01421d91b02bb9c4bef7d98709
+DIST windows-targets-0.52.6.crate 6403 BLAKE2B eb98d0a8daeed5fe76e7fa8edb2743e2a3e77dfb9c4ea68605a6ab10532cb7cfc43bc1cea0180869445bd940be762a40136500e26b84ca88b5e0c502004c7a4c SHA512 d6d2dbd96096c6c396dba141a9817e377c35877f3b2fe58b2553280c7cfcb1ed6ee75bd4d62c9b882662de67ddaf0c1049b91530d29c94dd709c230e08eb895f
+DIST windows_aarch64_gnullvm-0.48.5.crate 418492 BLAKE2B 5c6f7d73ad05740f0bac304ed1ef9b2ea63b0d6ca8f875552ae299a0b73b1557e8fe996f1c2b69be9f2df350c9288690f49ee62239a2896991364331d6c55462 SHA512 20158d31454488f6053d3ad7b97d7fc6eae6cf37e4ba0e50c28bd29b368505eed64199ae31104d5f97b66846be54e5ed25c0ad31ea850819205c573a31ac0996
+DIST windows_aarch64_gnullvm-0.52.6.crate 435718 BLAKE2B 8b12ae02892cb69401329034bbca671d13bd268a112120b56b90504707cef89decfbd2560492844a9f0588fab62dc1476ab7e931126b939015d25a8cc91ca334 SHA512 f62b2d942bdb3a9353465b07d47b93de179bb706511aa497e4addd74cff95e689a9b633e7801ce786e73b5ae5f30b506b6faa199c5ab86eefdc1d94652df79c5
+DIST windows_aarch64_msvc-0.48.5.crate 798483 BLAKE2B 60c466d6536426425a34b5ca20da97c8127ebeb4fb9b1363911165bada484f8913fcd50e90410b5661e0c27dbfe8f4eeaa62fb17d1f3566bfc82b6255e11619b SHA512 223f016c6f1a44dbc5c8a8428b39438f75380ea06951b7c26ed0877b19d79410c6fde5e4c7f2c839b6e76159131f39a1230e0e3a208dfc425ba9117e3665c4ff
+DIST windows_aarch64_msvc-0.52.6.crate 832615 BLAKE2B adc8ff61b6dc96d39c92c7d4221ae6aa0575edfc016cfcd046067ca5d8fcfd56d10e8e227be1c038ce34684be22c7ccaf5f18cd5a7638d28fbff4ba15b48b90b SHA512 a3e21305ad0e6de38f5b5ed5d37ee5825b7521064163bcdf31d63341cd87983f54377865d2daf3bb480d2d0aa66d6f598fa09540ec1d71baea74569c86bd213b
+DIST windows_i686_gnu-0.48.5.crate 844891 BLAKE2B fdc37cd74a4982056bf22fdb7b84e1c55dc838f3cb19ff3648730a77e673ef4ecc0380b3e4277bb8df2fcfa25f57b69014713d9e3ed27c28e19b25b3ea2ab774 SHA512 931ba5c1e4eb8ae73248e00d9611298d1c4b4b0dae719fdeb9243930cd420a103a7bc2738e0a4887c42c8f25728d6c5d64ad141dc092bc3f1d0f35dbe37d303a
+DIST windows_i686_gnu-0.52.6.crate 880402 BLAKE2B 5aab8ee07132eccb7695807eb44811beeb0657aadfb672c54e99b6ae39c067ba9b93e38fc69bb5b9b14a9759f263ccd5e301597d2727d83b31b49a409b6bd405 SHA512 a1f6b5dd23d17ec3567bc9d11a4be6f35e196eee21ca342e9b88dbaa6a5f7c46e439c834b77e724f32ac22c0d81573746b3b513a6c944a221b92b2c76fe98822
+DIST windows_i686_gnullvm-0.52.6.crate 475940 BLAKE2B fec4fda8bb2bf319a501a22372fa642ae682e4dee3235b258a028190ee73220bfc55b3142f06249bb4579b17e5fde662bb2b121aefe18544653350d7d0fe7d8e SHA512 95f13af855d530acc0b856214478d4b11b8dbab3f8f79dd223d0b009790c0e46d096fc1773e0277997deb2d5b96c704f17f23c7df11411524629f75415dec99f
+DIST windows_i686_msvc-0.48.5.crate 864300 BLAKE2B 3d3ea8be55e2d6ced0eeda18abe1dffb925a1a78f456d683e4450d9f2fd287ad2e8494d65b2b770c677a12b3a60d10f0435e16c61880e3867c3657fd44892442 SHA512 70e2fb4fdb006a4cbd43ab2c7e940b277a15fb1790dfa2d1fc1f1fd18bead4886f6dc046e44326603e4894d988578917b8932aba5d9a6a4cc8424911cad9dc7e
+DIST windows_i686_msvc-0.52.6.crate 901163 BLAKE2B 99ed34e052db5ba77bab240ed5d38ce450be347a794d63ec39b719304c32722c9999b540ab40abe0216318900b7412970df99dfb36d1516a9517cae0c77d1bdc SHA512 ca97913ce202d73266cf55947b868bea7e964a4516b6a096a81aeab6a60ee73867171032ced35e3afccff741ddfb2def7468343b6eceb95253e4d4f349efbf96
+DIST windows_x86_64_gnu-0.48.5.crate 801619 BLAKE2B aa7e7e6a6ff9f9553ada3a0a39a9aa798e9d995a8eef36e0b6fdb2a0db93ddecee5548970575271fe43aec74797a420d0ee231d503b5bad1bd999059261e0e33 SHA512 1d6056fae430b3d042bdff3c6217c76be4b8b9f5dada9bad06beaac2db7d7ab9b0a82e44f498ec88e61afa73e99f56d84d445dc3847732b9ce5d947e08485f74
+DIST windows_x86_64_gnu-0.52.6.crate 836363 BLAKE2B e2335829155cdbd4a55cc9f9babc237e14e32aab97f6f91afabcdf80d2aee37d6fb4b8669aaf433ff532c85dba59b3d366c7d41b61a2f29b96f960169c900687 SHA512 c4086bb0280042f2bef9b556283b67f8a5cacddd209e1c5fabec63decec6d4fd2d6a7071407973981b98ae0c0cf7034fc612f9e70dc6d3eed9acdec771ae31cb
+DIST windows_x86_64_gnullvm-0.48.5.crate 418486 BLAKE2B 12a2199d434617c1df1a839e9f435620ad64b40c579f6d0c3677553ad7a48e5765d12c266b04946402e15c92cff2e4ac4979ce2130750ef426e2672119680284 SHA512 c016d5b5e73832b61ff67929d92fa8c16e154656294357266ad29ce1f44db4ca2d2935dba31a6b571187dc838b1d22f1e3b41fefffd1d719a338439adf1646aa
+DIST windows_x86_64_gnullvm-0.52.6.crate 435707 BLAKE2B ab77dccd06328cdb00175f41cdbc120594050a9678b7f9820444391fb50aada3911a91ea00f3a6db2b4fa1820fd23bc9a007dfbe65ad41417c26ee1137ef9b96 SHA512 67681f5859e249c56b0183181811f6212cc7008d6471dad78aecc7ebe3d027686b19210b8aa9014c554410f69f913d21ce2aca928eea905eab779bea26464cbd
+DIST windows_x86_64_msvc-0.48.5.crate 798412 BLAKE2B 8abc0721e2fb337fe17c91d278947d36122d9045b839ba0cf3e690202d242265b676f23cc301da5f9d98c56ca4ecb76f7d6f072ee71bf986a1deca87020b90e5 SHA512 fa1c5cd14ca2ff0082e2504cf59d317dc4dc6f7138d35c12f95d4476a9c13d8b7f5537d0ee251eee7c99411ad31b22263171b7fbd391daa5d3ea3488ceaa61a0
+DIST windows_x86_64_msvc-0.52.6.crate 832564 BLAKE2B 8e9a3044654c6de99a9153e7cacd575474e7a8a3d883c67b02132af5d3fc99d03cd5f7a4dd666a3947451d11218e6acc6eb5e2526f012481106cc13453839719 SHA512 21944cd8e3a481b514509e73ae3f62722fe7ed380d37ea0c25f8fbdeba79174dd52ff65d898838da5df4197894b74e00f45d47489418e978753b4e55c7e623e7
+DIST winnow-0.6.20.crate 163617 BLAKE2B b47ba6cd94ec80a72b51ad09c5cb9de350d2243295d3997732d5d3d9f8d08bd83e3129150fb24992243949120da1bd6091d580db5ff10258fd745afaa944c791 SHA512 3347fdfb5b15ec73a40614ecd0cce60f41d3f2d083f49aaafceeaf5db52d5c677dc3eb39fcc2595999fc9f864d1fde81e180e09dc86a6f6124878e16e86e8bc8
+DIST winnow-0.7.9.crate 174763 BLAKE2B 1514a9f8bb07351dbbc642b6cdc2b1f2ab2eda022f2aacd8f4cf859944e87dcc972f79a4b37de91cfce3abcbb209993283e44e0fdc136906281e69e9ab47ccb2 SHA512 b8d6acb8032841723db0ea86161a84d0c770c3babc76041089026e7fe9487301b45ea0c3f74c8f8d15019031a20a02b49a6cbbc98584b66c9f43fac18d1a3018
+DIST winreg-0.50.0.crate 29703 BLAKE2B db9a968ef96cc07bc1088831affc4627e09c7ab8170a54fdf70a599c2d6180a8a9ac46b6304b61fdd2fac96e01bb004ebd8051940300c7b52c5b7b7975732d11 SHA512 2f52a9e3ab794665263499c88dfdf06009c6477d180a90ebbe86e786ae7f5003c9dc8b3c26224024e79450f3b94688000458f2ea8b1ae1c3691453c3d4df4787
+DIST winreg-0.52.0.crate 30148 BLAKE2B 7b458d356ed1385b23ace88d8a7e2a4e2e3211ba4bd22e6488b60fe508ab2b5f6d93c7547e45e0564f512391a8fbc2af1bbd3e3e3a773865d87adff67b5b2fb5 SHA512 50659afe4fa9671696bb5c6a50d62e493ef5359a324a71f7877e2ff0b522560ad65196ac6d2f7f4117edb2e47e84adce7d1de5ed2ce273f132cb2d5006472e25
+DIST wintun-bindings-0.7.20.crate 793222 BLAKE2B 2eb8eab34e9620e3c9fa788f04422a9bfbb9c5caae30c3cbb01f5a85fd546fe43f8f60e8f1c5bcdfe74ed1c676b991816a4dfd8791661f3d8f86b71e1b902d9e SHA512 2bc97f605b842939128ecec7d4e21d886c8cad4d9d8d5b634b5495e284ca505ed5ce9b1754bb1d977e95694b01ae37dbf71c9f2972b10da2d6b056b840e3cbb4
+DIST wintun-bindings-0.7.31.crate 794078 BLAKE2B d02fa6b067dd856df58fedfc85ce98b29f200dd96d421c92fb7e87476961df37b312c26f4334d29018cc3d1177c7c97619926418ee46d1d71d33cd29618d5b18 SHA512 9701a7fc2d1593a2b93757df0a704b1b0c1c92db14f42726c6a90bfe53db006f81dd1a69c80b37362e039d564e7e09786f0258ecf1612ac84fb37ca3fa1afb3b
+DIST wit-bindgen-rt-0.39.0.crate 12241 BLAKE2B c8cda3c7a513dca58e2ad52b03692714750870801af37a235bfe1f217afe880f36df56d8e54b52ee1cb9f4e30f5580b8a28519b44084d2191146977f237e406f SHA512 24b559688991083057b7fc0b6fa9f84445ae11cf53fca20887f55da93c24d97c9a3ed6488b3a845fe88243530b46442d3c2de70da4dc1c64f3ac632a440ea2c7
+DIST write16-1.0.0.crate 7218 BLAKE2B 548796314339463e4b71f8af3d344e45dc89480e103180b6d56c90fcb816ad1a37ab2ba20766c4b9754f2cc686752eb1f3a5a12ec1ed4369a9cef749ad4f3e97 SHA512 655a207b8082bb88e462f992ecb4833cef9d590da06d6356b41d109df2862b49ee5705189c78a607b549e7343035119d158020d58fcad49608e51659357a83c1
+DIST writeable-0.5.5.crate 22354 BLAKE2B e4ff9862c070b413568ce0c75d1eccafcf1db8578eee4795ea9046dadd643f8a77258b437be288b93af247199d63455298ac2cff909226bc432f91c0aa863921 SHA512 818b2546c8ec25816aeaf5e31a1ded927d197bf7256e7c5073738c2709bc58a95d382a0256eb38a99235ae83729b578701261866d42ea3357a26024906e196c1
+DIST yansi-1.0.1.crate 75497 BLAKE2B c0d396c93a733ed6ec12aca3385d816f39b1f1fbed75da460f491f0cbfc30ba462842ebd1627fa8e5d2b7c0f37913a23747e5f5e23df1cb7c85d965e6c37159b SHA512 182c8c6c60a30a727d8f8b90bbf0527d91fa8ae9d8eb20e5414614b43ee6dc532f4b19241adbfb9299cb0004b39fe627036269b60b0c3860d9e1ea4413aca541
+DIST yoke-0.7.5.crate 29673 BLAKE2B cd2e42103140e080a29bf579fe5176b36a192f9b1309c1f2fd7557fe93b2f6eadbf6fca4a6a3b1a7b6288403d2f643841dfc7a5b6a4476776943950abe5c1613 SHA512 6bbd99671d1a5a5217890eaa267113d193b3636b265393afb6e72a313f01704d462fe017264f061405e8e84c188b590094c29e3fcf19a63c375ae165d1a0bbef
+DIST yoke-derive-0.7.5.crate 7525 BLAKE2B 9b6b97eaf3c50f0f5ce8cebf685a1a17d4c21eb9b26d38eac99e0a4c0f9d592e95a7843b7a0b897945a14c4eb78ffdf2c0972b448d31d7bc7b077f27aad81d9a SHA512 e30b06b020aa283080905004295fb643c539b130d0d53bda51927b95e79ba562336aad30d8a6202d9a0c62d5b64559a01218c6f02f3faada6003d4b03c205cd6
+DIST zerocopy-0.7.35.crate 152645 BLAKE2B 8f13123c9d9257ac5a5c6954d38c3510fa658624442f7e03cdcc6db5a0977d9f26bb4e277be172b7872ec365cf6e58ac742e5578636f7698f9f37093e9249d9a SHA512 17fcb31c029ae89c01e5bae5fb2bb46bd434120199a3dc2c7fe0012dbbcfe2a0bb38934c4a7d3a4920e3fe47c097403beee554fefa54b66cb390f8b1de638d3c
+DIST zerocopy-0.8.25.crate 252714 BLAKE2B 161dc6e80765faa6b52a84e3a08d4958ee1446b1bbd63609c111c55c06a3fed409aaa7cfe0e7bd0815c8e35a3dfc896c0e5eabab72acb11ff717d81fa36bc040 SHA512 cb496ecf8a52ffebfe80059381c1d79e5e42abedcc112d0d5b9284b33e53549c1d5ee13e293a77a67a1082381d7600890a42adc27f2b118d6260252f99344fe2
+DIST zerocopy-derive-0.7.35.crate 37829 BLAKE2B badeb7fa5e0bfe93a6788d93fd297604ed31de526b121549300ead3c49d450f49265f499e2e7ce606dcce2b59dd01f7fa817b8fbb3f237475185c5b42f5299c4 SHA512 dbe23573b62a6267d7bc8c744320b75b2fbda03b908c1d175211f7394374fe182bce58021e25485c10671d726b2007f250565dfe53134d51c89293bb607e9feb
+DIST zerocopy-derive-0.8.25.crate 87671 BLAKE2B 147f8e7de236cf260c089bd14ca44eeaf9f94d233fcedcd72a220abc0731f373d78d03c7f035babf00ee98e59ffb17ae0eff2b695bcf82fdbdb7bc1d07aa477e SHA512 c4e1086155e2b6e53ad6af11e8f1d66f09a6496476bca069b39bf5f6f51cccf83485c1043dd652e9cf63c72fc0da55b80871f725b34878ca534d1ee22c24cbb9
+DIST zerofrom-0.1.5.crate 5091 BLAKE2B a2b938197957755c4a8ccfb258f60f90931a0a342d9d4bd098c7a25e1c9069148a51ddfffd2b72a6a9856d8c6e66fe1482ab2081a5f3478b4b318062caffff42 SHA512 11f16a1003967b3f30d7b32ffc8541ec05fb335690b08cf4f7554c624ad4312ee0961c83390a997e2a73aee06d8bb09a0ff4e6a5e489f8fb925141e732006544
+DIST zerofrom-derive-0.1.5.crate 8285 BLAKE2B d19bf1b74be89f4d27eda36ba6407d598358d3d69bed64f02903ab7dc509faa006cde9c13e19f5f3cde09cf9049120575263996c922b20da366a11e18baa42dc SHA512 75098e0f1c690bd8476f819f4ea2a7645b88237042a8876259bf4e025b070a4b105caf16ca7a824c5dd6c4690b693fcc74bed9ac0b5e6fdab05a5bed1b5cb298
+DIST zerofrom-derive-0.1.6.crate 8305 BLAKE2B 9ab7425b450bf8c47538be7ff32901045393bdd91b9687b8a32ac194b7272dbd4f5310629647c6710f97a50cea45c722c018a77006f24da2b44a4c475daa54cb SHA512 ef4226df3c9ca9c0146639b19d9aa611f2ea3148c10ea875f43ca1960ee8ed438a553b078a9b449a58862f44cb7d4434fa35bbd6db6f0a773618f63d2575c985
+DIST zerovec-0.10.4.crate 126398 BLAKE2B b078784d6f178bbb9de1c3c1b6c7ef996f00bdd7dfd2924bda921e62f3e09e953fbf50f8d0da99ac6ff6d134f146253846f5663549dcf8df08eaf34b9d4016b3 SHA512 db12bba1d7476ddead92e6dfcdcc30e2e0defff4f263a740244eabee265a2cab265473a663d3dc3210f48e113b66d951da496dfab7965ce1bc792e5f2db422a0
+DIST zerovec-derive-0.10.3.crate 19438 BLAKE2B 9f7df8a4e4a0b62ab25aed967b26509db4bcc5d5b10b3bd73305099a4c49a60be8921484ced1a34d9b7ae30ffa5abe789686f432416a8f1cfc07de1db1dff594 SHA512 caefbffeb35265db9f74933bf07109d57f0da48156cafd4f330af78a5c7eb9ab0831a80789ad4fb119875ebc6cfd7e3de68c9984b77dca5151f9be41f1ae6e09
diff --git a/net-analyzer/trippy/metadata.xml b/net-analyzer/trippy/metadata.xml
new file mode 100644
index 000000000000..5a54444ca974
--- /dev/null
+++ b/net-analyzer/trippy/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <name>Florian Schmaus</name>
+ <email>flow@gentoo.org</email>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/trippy/trippy-0.12.2.ebuild b/net-analyzer/trippy/trippy-0.12.2.ebuild
new file mode 100644
index 000000000000..3ce3ed552737
--- /dev/null
+++ b/net-analyzer/trippy/trippy-0.12.2.ebuild
@@ -0,0 +1,330 @@
+# Copyright 2023-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ addr2line@0.24.2
+ adler2@2.0.0
+ aho-corasick@1.1.3
+ allocator-api2@0.2.21
+ android-tzdata@0.1.1
+ android_system_properties@0.1.5
+ anstream@0.6.18
+ anstyle-parse@0.2.6
+ anstyle-query@1.1.2
+ anstyle-wincon@3.0.6
+ anstyle@1.0.10
+ anyhow@1.0.94
+ arrayvec@0.7.6
+ async-channel@2.3.1
+ async-task@4.7.1
+ async-trait@0.1.83
+ atomic-waker@1.1.2
+ autocfg@1.4.0
+ backtrace@0.3.74
+ bitflags@2.6.0
+ blocking@1.6.1
+ bumpalo@3.16.0
+ byteorder@1.5.0
+ bytes@1.9.0
+ c2rust-bitfields-derive@0.19.0
+ c2rust-bitfields@0.19.0
+ caps@0.5.5
+ cassowary@0.3.0
+ castaway@0.2.3
+ cc@1.2.3
+ cfg-if@1.0.0
+ cfg_aliases@0.2.1
+ chrono@0.4.39
+ clap@4.5.23
+ clap_builder@4.5.23
+ clap_complete@4.5.38
+ clap_derive@4.5.18
+ clap_lex@0.7.4
+ clap_mangen@0.2.24
+ colorchoice@1.0.3
+ comfy-table@7.1.3
+ compact_str@0.8.0
+ concurrent-queue@2.5.0
+ console@0.15.8
+ core-foundation-sys@0.8.7
+ crossbeam-channel@0.5.13
+ crossbeam-deque@0.8.5
+ crossbeam-epoch@0.9.18
+ crossbeam-queue@0.3.11
+ crossbeam-utils@0.8.20
+ crossbeam@0.8.4
+ crossterm@0.28.1
+ crossterm_winapi@0.9.1
+ csv-core@0.1.11
+ csv@1.3.1
+ darling@0.20.10
+ darling_core@0.20.10
+ darling_macro@0.20.10
+ data-encoding@2.6.0
+ derive_more-impl@1.0.0
+ derive_more@1.0.0
+ diff@0.1.13
+ displaydoc@0.2.5
+ dns-lookup@2.0.4
+ downcast@0.11.0
+ either@1.13.0
+ encode_unicode@0.3.6
+ encoding_rs@0.8.35
+ encoding_rs_io@0.1.7
+ enum-as-inner@0.6.1
+ equivalent@1.0.1
+ errno@0.3.10
+ etcetera@0.8.0
+ event-listener-strategy@0.5.3
+ event-listener@5.3.1
+ fastrand@2.3.0
+ fixedbitset@0.4.2
+ fnv@1.0.7
+ foldhash@0.1.3
+ form_urlencoded@1.2.1
+ fragile@2.0.0
+ futures-channel@0.3.31
+ futures-core@0.3.31
+ futures-executor@0.3.31
+ futures-io@0.3.31
+ futures-lite@2.5.0
+ futures-macro@0.3.31
+ futures-sink@0.3.31
+ futures-task@0.3.31
+ futures-util@0.3.31
+ futures@0.3.31
+ getrandom@0.2.15
+ gimli@0.31.1
+ hashbrown@0.15.2
+ heck@0.5.0
+ hex-literal@0.4.1
+ hickory-proto@0.24.2
+ hickory-resolver@0.24.2
+ home@0.5.9
+ hostname@0.3.1
+ humantime@2.1.0
+ iana-time-zone-haiku@0.1.2
+ iana-time-zone@0.1.61
+ icu_collections@1.5.0
+ icu_locid@1.5.0
+ icu_locid_transform@1.5.0
+ icu_locid_transform_data@1.5.0
+ icu_normalizer@1.5.0
+ icu_normalizer_data@1.5.0
+ icu_properties@1.5.1
+ icu_properties_data@1.5.0
+ icu_provider@1.5.0
+ icu_provider_macros@1.5.0
+ ident_case@1.0.1
+ idna@1.0.3
+ idna_adapter@1.2.0
+ indexmap@2.7.0
+ indoc@2.0.5
+ insta@1.41.1
+ instability@0.3.3
+ ipconfig@0.3.2
+ ipnet@2.10.1
+ ipnetwork@0.20.0
+ is_terminal_polyfill@1.70.1
+ itertools@0.13.0
+ itoa@1.0.14
+ js-sys@0.3.76
+ lazy_static@1.5.0
+ libc@0.2.168
+ libloading@0.8.6
+ linked-hash-map@0.5.6
+ linux-raw-sys@0.4.14
+ litemap@0.7.4
+ lock_api@0.4.12
+ log@0.4.22
+ lru-cache@0.1.2
+ lru@0.12.5
+ match_cfg@0.1.0
+ matchers@0.1.0
+ maxminddb@0.24.0
+ memchr@2.7.4
+ memoffset@0.9.1
+ miniz_oxide@0.8.0
+ mio@1.0.3
+ mockall@0.13.1
+ mockall_derive@0.13.1
+ nix@0.29.0
+ nu-ansi-term@0.46.0
+ num-traits@0.2.19
+ object@0.36.5
+ once_cell@1.20.2
+ overload@0.1.1
+ parking@2.2.1
+ parking_lot@0.12.3
+ parking_lot_core@0.9.10
+ paste@1.0.15
+ percent-encoding@2.3.1
+ petgraph@0.6.5
+ pin-project-lite@0.2.15
+ pin-utils@0.1.0
+ piper@0.2.4
+ ppv-lite86@0.2.20
+ predicates-core@1.0.8
+ predicates-tree@1.0.11
+ predicates@3.1.2
+ pretty_assertions@1.4.1
+ proc-macro2@1.0.92
+ quick-error@1.2.3
+ quote@1.0.37
+ rand@0.8.5
+ rand_chacha@0.3.1
+ rand_core@0.6.4
+ ratatui@0.29.0
+ redox_syscall@0.5.7
+ regex-automata@0.1.10
+ regex-automata@0.4.9
+ regex-syntax@0.6.29
+ regex-syntax@0.8.5
+ regex@1.11.1
+ resolv-conf@0.7.0
+ roff@0.2.2
+ rustc-demangle@0.1.24
+ rustix@0.38.42
+ rustversion@1.0.18
+ ryu@1.0.18
+ scopeguard@1.2.0
+ serde@1.0.216
+ serde_derive@1.0.216
+ serde_json@1.0.133
+ serde_spanned@0.6.8
+ serde_with@3.12.0
+ serde_with_macros@3.12.0
+ sharded-slab@0.1.7
+ shlex@1.3.0
+ signal-hook-mio@0.2.4
+ signal-hook-registry@1.4.2
+ signal-hook@0.3.17
+ similar@2.6.0
+ slab@0.4.9
+ smallvec@1.13.2
+ socket2@0.5.8
+ stable_deref_trait@1.2.0
+ static_assertions@1.1.0
+ strsim@0.11.1
+ strum@0.26.3
+ strum_macros@0.26.4
+ syn@1.0.109
+ syn@2.0.90
+ synstructure@0.13.1
+ sys-locale@0.3.2
+ terminal_size@0.4.1
+ termtree@0.4.1
+ test-case-core@3.3.1
+ test-case-macros@3.3.1
+ test-case@3.3.1
+ thiserror-impl@1.0.69
+ thiserror-impl@2.0.6
+ thiserror@1.0.69
+ thiserror@2.0.6
+ thread_local@1.1.8
+ tinystr@0.7.6
+ tinyvec@1.8.0
+ tinyvec_macros@0.1.1
+ tokio-macros@2.4.0
+ tokio-util@0.7.13
+ tokio@1.42.0
+ toml@0.8.19
+ toml_datetime@0.6.8
+ toml_edit@0.22.22
+ tracing-attributes@0.1.28
+ tracing-chrome@0.7.2
+ tracing-core@0.1.33
+ tracing-log@0.2.0
+ tracing-serde@0.2.0
+ tracing-subscriber@0.3.19
+ tracing@0.1.41
+ tun2@4.0.0
+ unicode-ident@1.0.14
+ unicode-segmentation@1.12.0
+ unicode-truncate@1.1.0
+ unicode-width@0.1.14
+ unicode-width@0.2.0
+ url@2.5.4
+ utf16_iter@1.0.5
+ utf8_iter@1.0.4
+ utf8parse@0.2.2
+ valuable@0.1.0
+ wasi@0.11.0+wasi-snapshot-preview1
+ wasm-bindgen-backend@0.2.99
+ wasm-bindgen-macro-support@0.2.99
+ wasm-bindgen-macro@0.2.99
+ wasm-bindgen-shared@0.2.99
+ wasm-bindgen@0.2.99
+ widestring@1.1.0
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ winapi@0.3.9
+ windows-core@0.52.0
+ windows-sys@0.48.0
+ windows-sys@0.52.0
+ windows-sys@0.59.0
+ windows-targets@0.48.5
+ windows-targets@0.52.6
+ windows_aarch64_gnullvm@0.48.5
+ windows_aarch64_gnullvm@0.52.6
+ windows_aarch64_msvc@0.48.5
+ windows_aarch64_msvc@0.52.6
+ windows_i686_gnu@0.48.5
+ windows_i686_gnu@0.52.6
+ windows_i686_gnullvm@0.52.6
+ windows_i686_msvc@0.48.5
+ windows_i686_msvc@0.52.6
+ windows_x86_64_gnu@0.48.5
+ windows_x86_64_gnu@0.52.6
+ windows_x86_64_gnullvm@0.48.5
+ windows_x86_64_gnullvm@0.52.6
+ windows_x86_64_msvc@0.48.5
+ windows_x86_64_msvc@0.52.6
+ winnow@0.6.20
+ winreg@0.50.0
+ winreg@0.52.0
+ wintun-bindings@0.7.20
+ write16@1.0.0
+ writeable@0.5.5
+ yansi@1.0.1
+ yoke-derive@0.7.5
+ yoke@0.7.5
+ zerocopy-derive@0.7.35
+ zerocopy@0.7.35
+ zerofrom-derive@0.1.5
+ zerofrom@0.1.5
+ zerovec-derive@0.10.3
+ zerovec@0.10.4
+"
+
+inherit cargo fcaps
+
+DESCRIPTION="A network diagnostic tool"
+HOMEPAGE="https://trippy.cli.rs/ https://github.com/fujiapple852/trippy"
+SRC_URI="
+ https://github.com/fujiapple852/trippy/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+
+LICENSE="Apache-2.0"
+# Dependent crate licenses
+LICENSE+=" Apache-2.0 BSD ISC MIT Unicode-3.0 WTFPL-2 ZLIB"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="suid"
+
+FILECAPS=( cap_net_raw+p usr/bin/trip )
+
+QA_FLAGS_IGNORED="usr/bin/trip"
+
+src_install() {
+ cargo_src_install --path crates/trippy
+
+ dodoc README.md CHANGELOG.md
+
+ if use suid; then
+ fperms u+s usr/bin/trip
+ fi
+}
diff --git a/net-analyzer/trippy/trippy-0.13.0.ebuild b/net-analyzer/trippy/trippy-0.13.0.ebuild
new file mode 100644
index 000000000000..414d1041deec
--- /dev/null
+++ b/net-analyzer/trippy/trippy-0.13.0.ebuild
@@ -0,0 +1,352 @@
+# Copyright 2023-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+ addr2line@0.24.2
+ adler2@2.0.0
+ aho-corasick@1.1.3
+ allocator-api2@0.2.21
+ android-tzdata@0.1.1
+ android_system_properties@0.1.5
+ anstream@0.6.18
+ anstyle-parse@0.2.6
+ anstyle-query@1.1.2
+ anstyle-wincon@3.0.7
+ anstyle@1.0.10
+ anyhow@1.0.98
+ arrayvec@0.7.6
+ async-channel@2.3.1
+ async-task@4.7.1
+ async-trait@0.1.88
+ atomic-waker@1.1.2
+ autocfg@1.4.0
+ backtrace@0.3.74
+ bitflags@2.9.0
+ blocking@1.6.1
+ bumpalo@3.17.0
+ bytes@1.10.1
+ c2rust-bitfields-derive@0.19.0
+ c2rust-bitfields@0.19.0
+ caps@0.5.5
+ cassowary@0.3.0
+ castaway@0.2.3
+ cc@1.2.21
+ cfg-if@1.0.0
+ cfg_aliases@0.2.1
+ chrono-tz-build@0.4.1
+ chrono-tz@0.10.3
+ chrono@0.4.41
+ clap@4.5.37
+ clap_builder@4.5.37
+ clap_complete@4.5.48
+ clap_derive@4.5.32
+ clap_lex@0.7.4
+ clap_mangen@0.2.26
+ colorchoice@1.0.3
+ comfy-table@7.1.4
+ compact_str@0.8.1
+ concurrent-queue@2.5.0
+ console@0.15.11
+ core-foundation-sys@0.8.7
+ crossbeam-channel@0.5.15
+ crossbeam-deque@0.8.6
+ crossbeam-epoch@0.9.18
+ crossbeam-queue@0.3.12
+ crossbeam-utils@0.8.21
+ crossbeam@0.8.4
+ crossterm@0.28.1
+ crossterm_winapi@0.9.1
+ csv-core@0.1.12
+ csv@1.3.1
+ darling@0.20.11
+ darling_core@0.20.11
+ darling_macro@0.20.11
+ data-encoding@2.9.0
+ derive_more-impl@2.0.1
+ derive_more@2.0.1
+ diff@0.1.13
+ displaydoc@0.2.5
+ dns-lookup@2.0.4
+ downcast@0.11.0
+ either@1.15.0
+ encode_unicode@1.0.0
+ encoding_rs@0.8.35
+ encoding_rs_io@0.1.7
+ enum-as-inner@0.6.1
+ equivalent@1.0.2
+ errno@0.3.11
+ etcetera@0.8.0
+ event-listener-strategy@0.5.4
+ event-listener@5.4.0
+ fastrand@2.3.0
+ fixedbitset@0.5.7
+ fnv@1.0.7
+ foldhash@0.1.5
+ form_urlencoded@1.2.1
+ fragile@2.0.1
+ futures-channel@0.3.31
+ futures-core@0.3.31
+ futures-executor@0.3.31
+ futures-io@0.3.31
+ futures-lite@2.6.0
+ futures-macro@0.3.31
+ futures-sink@0.3.31
+ futures-task@0.3.31
+ futures-util@0.3.31
+ futures@0.3.31
+ getrandom@0.2.16
+ getrandom@0.3.2
+ gimli@0.31.1
+ hashbrown@0.15.3
+ heck@0.5.0
+ hex-literal@0.4.1
+ hickory-proto@0.24.4
+ hickory-resolver@0.24.4
+ home@0.5.9
+ humantime@2.2.0
+ iana-time-zone-haiku@0.1.2
+ iana-time-zone@0.1.63
+ icu_collections@1.5.0
+ icu_locid@1.5.0
+ icu_locid_transform@1.5.0
+ icu_locid_transform_data@1.5.1
+ icu_normalizer@1.5.0
+ icu_normalizer_data@1.5.1
+ icu_properties@1.5.1
+ icu_properties_data@1.5.1
+ icu_provider@1.5.0
+ icu_provider_macros@1.5.0
+ ident_case@1.0.1
+ idna@1.0.3
+ idna_adapter@1.2.0
+ indexmap@2.9.0
+ indoc@2.0.6
+ insta@1.43.1
+ instability@0.3.7
+ ipconfig@0.3.2
+ ipnet@2.11.0
+ ipnetwork@0.21.1
+ is_terminal_polyfill@1.70.1
+ itertools@0.13.0
+ itertools@0.14.0
+ itoa@1.0.15
+ js-sys@0.3.77
+ lazy_static@1.5.0
+ libc@0.2.172
+ libloading@0.8.6
+ linked-hash-map@0.5.6
+ linux-raw-sys@0.4.15
+ linux-raw-sys@0.9.4
+ litemap@0.7.4
+ lock_api@0.4.12
+ log@0.4.27
+ lru-cache@0.1.2
+ lru@0.12.5
+ matchers@0.1.0
+ maxminddb@0.25.0
+ memchr@2.7.4
+ memoffset@0.9.1
+ miniz_oxide@0.8.8
+ mio@1.0.3
+ mockall@0.13.1
+ mockall_derive@0.13.1
+ nix@0.29.0
+ nu-ansi-term@0.46.0
+ num-traits@0.2.19
+ object@0.36.7
+ once_cell@1.21.3
+ overload@0.1.1
+ parking@2.2.1
+ parking_lot@0.12.3
+ parking_lot_core@0.9.10
+ parse-zoneinfo@0.3.1
+ paste@1.0.15
+ percent-encoding@2.3.1
+ petgraph@0.7.1
+ phf@0.11.3
+ phf_codegen@0.11.3
+ phf_generator@0.11.3
+ phf_shared@0.11.3
+ pin-project-lite@0.2.16
+ pin-utils@0.1.0
+ piper@0.2.4
+ ppv-lite86@0.2.21
+ predicates-core@1.0.9
+ predicates-tree@1.0.12
+ predicates@3.1.3
+ pretty_assertions@1.4.1
+ proc-macro2@1.0.95
+ quote@1.0.40
+ r-efi@5.2.0
+ rand@0.8.5
+ rand@0.9.1
+ rand_chacha@0.3.1
+ rand_chacha@0.9.0
+ rand_core@0.6.4
+ rand_core@0.9.3
+ ratatui@0.29.0
+ redox_syscall@0.5.12
+ regex-automata@0.1.10
+ regex-automata@0.4.9
+ regex-syntax@0.6.29
+ regex-syntax@0.8.5
+ regex@1.11.1
+ resolv-conf@0.7.3
+ roff@0.2.2
+ rustc-demangle@0.1.24
+ rustix@0.38.44
+ rustix@1.0.7
+ rustversion@1.0.20
+ ryu@1.0.20
+ scopeguard@1.2.0
+ serde@1.0.219
+ serde_derive@1.0.219
+ serde_json@1.0.140
+ serde_spanned@0.6.8
+ serde_with@3.12.0
+ serde_with_macros@3.12.0
+ sharded-slab@0.1.7
+ shlex@1.3.0
+ signal-hook-mio@0.2.4
+ signal-hook-registry@1.4.5
+ signal-hook@0.3.17
+ similar@2.7.0
+ siphasher@1.0.1
+ slab@0.4.9
+ smallvec@1.15.0
+ socket2@0.5.9
+ stable_deref_trait@1.2.0
+ static_assertions@1.1.0
+ strsim@0.11.1
+ strum@0.26.3
+ strum@0.27.1
+ strum_macros@0.26.4
+ strum_macros@0.27.1
+ syn@1.0.109
+ syn@2.0.101
+ synstructure@0.13.2
+ sys-locale@0.3.2
+ terminal_size@0.4.2
+ termtree@0.5.1
+ test-case-core@3.3.1
+ test-case-macros@3.3.1
+ test-case@3.3.1
+ thiserror-impl@1.0.69
+ thiserror-impl@2.0.12
+ thiserror@1.0.69
+ thiserror@2.0.12
+ thread_local@1.1.8
+ tinystr@0.7.6
+ tinyvec@1.9.0
+ tinyvec_macros@0.1.1
+ tokio-macros@2.5.0
+ tokio-util@0.7.15
+ tokio@1.44.2
+ toml@0.8.22
+ toml_datetime@0.6.9
+ toml_edit@0.22.26
+ tracing-attributes@0.1.28
+ tracing-chrome@0.7.2
+ tracing-core@0.1.33
+ tracing-log@0.2.0
+ tracing-serde@0.2.0
+ tracing-subscriber@0.3.19
+ tracing@0.1.41
+ tun2@4.0.0
+ unicode-ident@1.0.18
+ unicode-segmentation@1.12.0
+ unicode-truncate@1.1.0
+ unicode-width@0.1.14
+ unicode-width@0.2.0
+ url@2.5.4
+ utf16_iter@1.0.5
+ utf8_iter@1.0.4
+ utf8parse@0.2.2
+ valuable@0.1.1
+ wasi@0.11.0+wasi-snapshot-preview1
+ wasi@0.14.2+wasi-0.2.4
+ wasm-bindgen-backend@0.2.100
+ wasm-bindgen-macro-support@0.2.100
+ wasm-bindgen-macro@0.2.100
+ wasm-bindgen-shared@0.2.100
+ wasm-bindgen@0.2.100
+ widestring@1.2.0
+ winapi-i686-pc-windows-gnu@0.4.0
+ winapi-x86_64-pc-windows-gnu@0.4.0
+ winapi@0.3.9
+ windows-core@0.61.0
+ windows-implement@0.60.0
+ windows-interface@0.59.1
+ windows-link@0.1.1
+ windows-result@0.3.2
+ windows-strings@0.4.0
+ windows-sys@0.48.0
+ windows-sys@0.52.0
+ windows-sys@0.59.0
+ windows-targets@0.48.5
+ windows-targets@0.52.6
+ windows_aarch64_gnullvm@0.48.5
+ windows_aarch64_gnullvm@0.52.6
+ windows_aarch64_msvc@0.48.5
+ windows_aarch64_msvc@0.52.6
+ windows_i686_gnu@0.48.5
+ windows_i686_gnu@0.52.6
+ windows_i686_gnullvm@0.52.6
+ windows_i686_msvc@0.48.5
+ windows_i686_msvc@0.52.6
+ windows_x86_64_gnu@0.48.5
+ windows_x86_64_gnu@0.52.6
+ windows_x86_64_gnullvm@0.48.5
+ windows_x86_64_gnullvm@0.52.6
+ windows_x86_64_msvc@0.48.5
+ windows_x86_64_msvc@0.52.6
+ winnow@0.7.9
+ winreg@0.50.0
+ wintun-bindings@0.7.31
+ wit-bindgen-rt@0.39.0
+ write16@1.0.0
+ writeable@0.5.5
+ yansi@1.0.1
+ yoke-derive@0.7.5
+ yoke@0.7.5
+ zerocopy-derive@0.8.25
+ zerocopy@0.8.25
+ zerofrom-derive@0.1.6
+ zerofrom@0.1.5
+ zerovec-derive@0.10.3
+ zerovec@0.10.4
+"
+
+RUST_MIN_VER="1.78"
+
+inherit cargo fcaps
+
+DESCRIPTION="A network diagnostic tool"
+HOMEPAGE="https://trippy.cli.rs/ https://github.com/fujiapple852/trippy"
+SRC_URI="
+ https://github.com/fujiapple852/trippy/archive/refs/tags/${PV}.tar.gz -> ${P}.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+
+LICENSE="Apache-2.0"
+# Dependent crate licenses
+LICENSE+=" Apache-2.0 BSD ISC MIT Unicode-3.0 WTFPL-2 ZLIB"
+SLOT="0"
+KEYWORDS="amd64"
+IUSE="suid"
+
+FILECAPS=( cap_net_raw+p usr/bin/trip )
+
+QA_FLAGS_IGNORED="usr/bin/trip"
+
+src_install() {
+ cargo_src_install --path crates/trippy
+
+ dodoc README.md CHANGELOG.md
+
+ if use suid; then
+ fperms u+s usr/bin/trip
+ fi
+}
diff --git a/net-analyzer/tsung/Manifest b/net-analyzer/tsung/Manifest
new file mode 100644
index 000000000000..7b130044521f
--- /dev/null
+++ b/net-analyzer/tsung/Manifest
@@ -0,0 +1 @@
+DIST tsung-1.8.0.tar.gz 1662056 BLAKE2B 7d61fbba7981214b91c16d07cdf69e54e6bf5d39f7c4856b58ff87fc9ee4e5e850d8e075aa6cd0c2d725d92c42eb3ea619139c1754abd20b446f0bdb05d8cb39 SHA512 e025b59674c05eee8069982888eddd1cdb92f3984e1b0694aa06b22041f8072b2e8cf5358154cd9b80a83412d0e767f7ae9c47e09ba43db15b319537553e9ded
diff --git a/net-analyzer/tsung/metadata.xml b/net-analyzer/tsung/metadata.xml
new file mode 100644
index 000000000000..6295db35d2b3
--- /dev/null
+++ b/net-analyzer/tsung/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>patrick@gentoo.org</email>
+ <name>Patrick Lauer</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/tsung/tsung-1.8.0.ebuild b/net-analyzer/tsung/tsung-1.8.0.ebuild
new file mode 100644
index 000000000000..fbee6e966333
--- /dev/null
+++ b/net-analyzer/tsung/tsung-1.8.0.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="8"
+
+# Seems to be misconfigured
+RESTRICT="test"
+
+DESCRIPTION="Erlang's multi-protocol distributed load testing tool"
+HOMEPAGE="http://tsung.erlang-projects.org/"
+SRC_URI="http://tsung.erlang-projects.org/dist/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="gnuplot"
+
+DEPEND="dev-lang/erlang"
+RDEPEND="
+ gnuplot? (
+ sci-visualization/gnuplot
+ dev-perl/Template-Toolkit
+ )
+ ${DEPEND}
+"
+src_configure() {
+ ./configure --prefix="/usr" || die "econf failed"
+}
+
+src_compile() {
+ emake
+}
+
+src_install() {
+ emake -j1 DESTDIR="${D}" install
+}
diff --git a/net-analyzer/ttcp/Manifest b/net-analyzer/ttcp/Manifest
new file mode 100644
index 000000000000..58725aa7cb8a
--- /dev/null
+++ b/net-analyzer/ttcp/Manifest
@@ -0,0 +1,2 @@
+DIST ttcp-1.12.c 23690 BLAKE2B 972869da1e2e945702e6852648166eefae224b39715ef8495526ec7cd33cdb1e69fa10bb356a96e701f8b597c547b3090956320f947a02f1fad0b12d027b7e32 SHA512 8fc800b05fcf3590d15a87983ac7abc3646c6d4a89f7cc6b91e495066a90a6ce21f7bd7b6ab21e09f07bfa20c39bdc7bcec479449d7cd2b88639dc6cca4a432e
+DIST ttcp-1.12.tar.bz2 8086 BLAKE2B 42ec3d82d56ef28527c096be7b6ea568997f0028ebf51811974fec8c444a39785996b0a51eedff6cec6c53f215e4300a3dee91e45f54dbe979d1d1c42e792ab1 SHA512 2218f801a04964dcc684bac2957f892569e4458eb7770e26d4ac5a9a5beebb16b9191cacd8e60cceee306b8fe53000248b52457cb679a3d12ad4308bb0066dbb
diff --git a/net-analyzer/ttcp/files/ttcp-1.12-c23.patch b/net-analyzer/ttcp/files/ttcp-1.12-c23.patch
new file mode 100644
index 000000000000..a5c458b9765e
--- /dev/null
+++ b/net-analyzer/ttcp/files/ttcp-1.12-c23.patch
@@ -0,0 +1,77 @@
+Fix GCC 15.x issues.
+
+--- a/ttcp.c
++++ b/ttcp.c
+@@ -157,16 +157,16 @@
+ unsigned long numCalls; /* # of I/O system calls */
+ double cput, realt; /* user, real time (seconds) */
+
+-void err();
+-void mes();
+-void pattern();
++void err(const char *);
++void mes(const char *);
++void pattern(register char *, register int);
+ void prep_timer();
+-double read_timer();
+-int Nread();
+-int Nwrite();
+-void delay();
+-int mread();
+-char *outfmt();
++double read_timer(char *, int);
++int Nread(int, void *, int);
++int Nwrite(int, void *, int);
++void delay(int);
++int mread(int, register char *, unsigned int);
++char *outfmt(const double);
+
+ int
+ main(int argc, char **argv)
+@@ -560,7 +560,7 @@
+ }
+
+ void
+-err(char *s)
++err(const char *s)
+ {
+ fprintf(stderr, "ttcp%s: ", trans ? "-t" : "-r");
+ perror(s);
+@@ -569,7 +569,7 @@
+ }
+
+ void
+-mes(char *s)
++mes(const char *s)
+ {
+ fprintf(stderr, "ttcp%s: %s\n", trans ? "-t" : "-r", s);
+ }
+@@ -586,7 +586,7 @@
+ }
+
+ char *
+-outfmt(double b)
++outfmt(const double b)
+ {
+ static char obuf[50];
+ switch (fmt) {
+@@ -616,10 +616,15 @@
+ static struct timeval time0; /* Time at which timing started */
+ static struct rusage ru0; /* Resource utilization at the start */
+
+-static void prusage();
+-static void tvadd();
+-static void tvsub();
+-static void psecs();
++static void prusage(
++ register struct rusage *,
++ register struct rusage *,
++ struct timeval *,
++ struct timeval *,
++ char *);
++static void tvadd(struct timeval *, struct timeval *, struct timeval *);
++static void tvsub(struct timeval *, struct timeval *, struct timeval *);
++static void psecs(long, register char *);
+
+ /*
+ * P R E P _ T I M E R
diff --git a/net-analyzer/ttcp/metadata.xml b/net-analyzer/ttcp/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/ttcp/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/ttcp/ttcp-1.12-r3.ebuild b/net-analyzer/ttcp/ttcp-1.12-r3.ebuild
new file mode 100644
index 000000000000..1f7b7059b640
--- /dev/null
+++ b/net-analyzer/ttcp/ttcp-1.12-r3.ebuild
@@ -0,0 +1,38 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+DESCRIPTION="Tool to test TCP and UDP throughput"
+HOMEPAGE="
+ http://ftp.arl.mil/~mike/ttcp.html
+ http://www.netcore.fi/pekkas/linux/ipv6/"
+SRC_URI="
+ mirror://gentoo/${P}.tar.bz2
+ https://dev.gentoo.org/~jsmolic/distfiles/${P}.c"
+
+LICENSE="public-domain"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~mips ~ppc ~sparc ~x86"
+
+PATCHES=( "${FILESDIR}"/${P}-c23.patch )
+
+src_prepare() {
+ cp "${DISTDIR}"/${P}.c ${PN}.c || die
+ default
+}
+
+src_configure() {
+ tc-export CC
+}
+
+src_compile() {
+ emake ttcp
+}
+
+src_install() {
+ dobin ttcp
+ newman sgi-ttcp.1 ttcp.1
+}
diff --git a/net-analyzer/ttl/Manifest b/net-analyzer/ttl/Manifest
new file mode 100644
index 000000000000..a73163c19a16
--- /dev/null
+++ b/net-analyzer/ttl/Manifest
@@ -0,0 +1,12 @@
+DIST ttl-0.13.3-crates.tar.xz 31881568 BLAKE2B ddf4a963ed741ec957440a4605537550f0d6abffc0a28ac1c16c88c23049a1676a0619e98e24ee2d5b8c02a2ed023e8af007edcf6fd18335e257dbc73bce4130 SHA512 74a998e7d7588c7273a06e1c5809d3724d62980e93b35bd5f78422283551a1e46aef85bece137a56bf82bc55f2ca8a09e42b05c2c491c54aa3aea67e98ae787f
+DIST ttl-0.13.3.tar.gz 826986 BLAKE2B d418e652d2a1b7f88067285d95e05e18cf8fa0221d05f484cfa176f1d03d1ad03126773fd0b05da8aba9750089c8837d0c1bd1ecd730b034963f7df46cb78ab4 SHA512 a46bcfd2609f33772136fabec883aee86ccdbf70f18491d91e9ff6a1cd654ffacc5fdf7780bf97a6278beb5744734f6f1c88f350244e6e80b32a0d78ea0bac6e
+DIST ttl-0.15.3-crates.tar.xz 32921928 BLAKE2B 25eaea5add2ae9eff0fb929b429cb95f6c7a77f0bd1ca3112268e7fd86d585faa4043c35dc7020175fcd97cac562aff5c497e7932b1561a926f7945a3d7efb05 SHA512 5aaa09fb81367e191ad5b6fca097a9b6bcae369c1f3c4ea0f324986b07cf1d411c9e3ad1deacd841c13de72a03a9d8f5bb2412ec52a3f316e4a2323f470c2abd
+DIST ttl-0.15.3.tar.gz 837543 BLAKE2B 3e737e359591262f6994e310e28affc455f406f3a204202ee906ad2c33cf6760302375c77165a541b7fa41fe1f9a3cfbc9b1cd400d4dfd3ab6ea0974b764caae SHA512 19a00bc1f12cf17515208d5e08875001c3812fdb8d887418ba526c23b03bcc98e09ea6609039b73b15ae55e70edb20d369eab48ac1d469063035341dca7a522c
+DIST ttl-0.16.1-crates.tar.xz 32934648 BLAKE2B 30b1581331bebfe85c27157b26e35b2f01b5125dd5462e5208c21f0dffaf13a17cb66dec3dbec5ad432aa697ae34fe83974036fa2b47ad7c1c7ea67e0aad13d1 SHA512 b3a0a8080e04d42d6968512fe2b671fd68d30463e9ff25480ed5cd9f12f5984f4ea9c071be485eaf9cc02ace027cf140c51008ac9664afb2f1bedf9b67ebfd11
+DIST ttl-0.16.1.tar.gz 842564 BLAKE2B 07ea447b98677cc32efb7c7db2e412cbea8d4a6ae04d5a076938370bd3605270396224b72bd2f1473c87b2c7d37e0af6d398a7eafeb4d82fc4b8f3eb577ecf3d SHA512 d60d23f70cbd3d39ef4875c74518486cc0d3aea8297dd579730f0741b27fee9ad536b568d1ca7cba35b242a792ccbb74c28c954408f06ba6d0c278782e9b6922
+DIST ttl-0.17.0-crates.tar.xz 33647596 BLAKE2B 3118a60213d9f2bcfc48528b52682c48d8219e806f845eb49b10ce4555ff1a142a1cfef96ccf5d82070bcd8ff78cb96ac755686da2ccd18fa97baee56b91722e SHA512 20ac577adba6ad9f50ac5da717cf9fe61cd0eb609ade35bd8cbd4413545cb5a298129ecf4a1857f8f8d88e9c04ffae4860d952cb5c6ef32a95e3c552136ad508
+DIST ttl-0.17.0.tar.gz 846187 BLAKE2B 70d0b1ace94e3711f2eb80f40b6f546884e9ea0ac620189b182b2e2b53d63e3c9387a847a0e91c369525331aa44ad6ecc7a3f3a33a029331f57f1ddc91701f9f SHA512 5a41f98bea4083d33c7f2ac62b9c5a24fcc7af292aa2def95b1529ea9c4c8fbc88ee9a672027629c9a4ff0725ed7ad4b0c3895f2ee16d3c433e5771235a3fbf7
+DIST ttl-0.18.0-crates.tar.xz 33647596 BLAKE2B 3118a60213d9f2bcfc48528b52682c48d8219e806f845eb49b10ce4555ff1a142a1cfef96ccf5d82070bcd8ff78cb96ac755686da2ccd18fa97baee56b91722e SHA512 20ac577adba6ad9f50ac5da717cf9fe61cd0eb609ade35bd8cbd4413545cb5a298129ecf4a1857f8f8d88e9c04ffae4860d952cb5c6ef32a95e3c552136ad508
+DIST ttl-0.18.0.tar.gz 853402 BLAKE2B 93376516116c21bcdbb5aa8b840ec34b5bb3c3aeff5460636d90d5eb517a74f0a532e48474d11e9bb46ea3957714f88afc3d3a3589a5d420c694f351bc14455a SHA512 cc94ded3f8fcf3342d47db60bbb8c2a48a45cffb20117c3322d39845c4d9510e09a2bf9d7512f93fda75dd4193d21c6451650812adeded60afda239b070882ed
+DIST ttl-0.19.0-crates.tar.xz 33730860 BLAKE2B 39904a1a8177e52a2ed3829cc504ccb18edccfe6cc024fd22ab12ebae29079feb8ad7b9b0ff6583e0c78475ed923789b854e610b0dbb3dc0c07b57d3089e16a9 SHA512 6987744c7415fc0cb26440d61649cde437655297ae0b7134daaf1ee60383a4d0ed2adf41ba82ec6dd6137b55c07ac65c18d90de9b379bcad36fc29da5f37f1b2
+DIST ttl-0.19.0.tar.gz 862875 BLAKE2B ce5c24a51567e9be45c78263457957b97c0466ca07c92f0c2e4cbc0a05e1b734567e5a9ffaa237ba42cc420db8dde5ad7c93bc6dd7d3d86da0ccc878517084c7 SHA512 ae8930902db7d1076d57ef8261bb0156e1644666ddba8f07e95457144ee7c84cdc72989e2d1de01ec941bbccf0c73961e704fcafdbe53893af42f4c375bf8b31
diff --git a/net-analyzer/ttl/metadata.xml b/net-analyzer/ttl/metadata.xml
new file mode 100644
index 000000000000..56e379f48d61
--- /dev/null
+++ b/net-analyzer/ttl/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>chutzpah@gentoo.org</email>
+ <name>Patrick McLean</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/ttl/ttl-0.13.3.ebuild b/net-analyzer/ttl/ttl-0.13.3.ebuild
new file mode 100644
index 000000000000..f0cb95769d4e
--- /dev/null
+++ b/net-analyzer/ttl/ttl-0.13.3.ebuild
@@ -0,0 +1,47 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Autogenerated by pycargoebuild 0.15.1
+
+EAPI=8
+
+CRATES="
+"
+
+RUST_MIN_VER="1.88.0"
+
+inherit desktop cargo
+
+DESCRIPTION="Modern traceroute/mtr-style TUI with hop stats and optional ASN/geo enrichment"
+HOMEPAGE="https://github.com/lance0/ttl"
+SRC_URI="
+ https://github.com/lance0/ttl/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+if [[ ${PKGBUMPING} != ${PVR} ]]; then
+ SRC_URI+="
+ mirror://gentoo/ttl-${PV}-crates.tar.xz
+ "
+fi
+
+LICENSE="|| ( Apache-2.0 MIT )"
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0 BSD CDLA-Permissive-2.0 ISC MIT MPL-2.0 openssl
+ Unicode-3.0 Unicode-DFS-2016 WTFPL-2 ZLIB
+"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DOCS=(
+ CHANGELOG.md
+ README.md
+ SECURITY.md
+)
+
+src_install() {
+ cargo_src_install
+
+ doicon ttl.png ttlss.png
+ make_desktop_entry /usr/bin/ttl ttl ttl Network
+}
diff --git a/net-analyzer/ttl/ttl-0.15.3.ebuild b/net-analyzer/ttl/ttl-0.15.3.ebuild
new file mode 100644
index 000000000000..f0cb95769d4e
--- /dev/null
+++ b/net-analyzer/ttl/ttl-0.15.3.ebuild
@@ -0,0 +1,47 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Autogenerated by pycargoebuild 0.15.1
+
+EAPI=8
+
+CRATES="
+"
+
+RUST_MIN_VER="1.88.0"
+
+inherit desktop cargo
+
+DESCRIPTION="Modern traceroute/mtr-style TUI with hop stats and optional ASN/geo enrichment"
+HOMEPAGE="https://github.com/lance0/ttl"
+SRC_URI="
+ https://github.com/lance0/ttl/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+if [[ ${PKGBUMPING} != ${PVR} ]]; then
+ SRC_URI+="
+ mirror://gentoo/ttl-${PV}-crates.tar.xz
+ "
+fi
+
+LICENSE="|| ( Apache-2.0 MIT )"
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0 BSD CDLA-Permissive-2.0 ISC MIT MPL-2.0 openssl
+ Unicode-3.0 Unicode-DFS-2016 WTFPL-2 ZLIB
+"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DOCS=(
+ CHANGELOG.md
+ README.md
+ SECURITY.md
+)
+
+src_install() {
+ cargo_src_install
+
+ doicon ttl.png ttlss.png
+ make_desktop_entry /usr/bin/ttl ttl ttl Network
+}
diff --git a/net-analyzer/ttl/ttl-0.16.1.ebuild b/net-analyzer/ttl/ttl-0.16.1.ebuild
new file mode 100644
index 000000000000..f0cb95769d4e
--- /dev/null
+++ b/net-analyzer/ttl/ttl-0.16.1.ebuild
@@ -0,0 +1,47 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Autogenerated by pycargoebuild 0.15.1
+
+EAPI=8
+
+CRATES="
+"
+
+RUST_MIN_VER="1.88.0"
+
+inherit desktop cargo
+
+DESCRIPTION="Modern traceroute/mtr-style TUI with hop stats and optional ASN/geo enrichment"
+HOMEPAGE="https://github.com/lance0/ttl"
+SRC_URI="
+ https://github.com/lance0/ttl/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+if [[ ${PKGBUMPING} != ${PVR} ]]; then
+ SRC_URI+="
+ mirror://gentoo/ttl-${PV}-crates.tar.xz
+ "
+fi
+
+LICENSE="|| ( Apache-2.0 MIT )"
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0 BSD CDLA-Permissive-2.0 ISC MIT MPL-2.0 openssl
+ Unicode-3.0 Unicode-DFS-2016 WTFPL-2 ZLIB
+"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DOCS=(
+ CHANGELOG.md
+ README.md
+ SECURITY.md
+)
+
+src_install() {
+ cargo_src_install
+
+ doicon ttl.png ttlss.png
+ make_desktop_entry /usr/bin/ttl ttl ttl Network
+}
diff --git a/net-analyzer/ttl/ttl-0.17.0.ebuild b/net-analyzer/ttl/ttl-0.17.0.ebuild
new file mode 100644
index 000000000000..0202c8a4eb20
--- /dev/null
+++ b/net-analyzer/ttl/ttl-0.17.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Autogenerated by pycargoebuild 0.15.1
+
+EAPI=8
+
+CRATES="
+"
+
+RUST_MIN_VER="1.88.0"
+
+inherit fcaps desktop cargo
+
+DESCRIPTION="Modern traceroute/mtr-style TUI with hop stats and optional ASN/geo enrichment"
+HOMEPAGE="https://github.com/lance0/ttl"
+SRC_URI="
+ https://github.com/lance0/ttl/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+if [[ ${PKGBUMPING} != ${PVR} ]]; then
+ SRC_URI+="
+ mirror://gentoo/ttl-${PV}-crates.tar.xz
+ "
+fi
+
+LICENSE="|| ( Apache-2.0 MIT )"
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0 BSD CDLA-Permissive-2.0 ISC MIT MPL-2.0 openssl
+ Unicode-3.0 Unicode-DFS-2016 WTFPL-2 ZLIB
+"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DOCS=(
+ CHANGELOG.md
+ README.md
+ SECURITY.md
+)
+
+FILECAPS=(
+ cap_net_raw usr/bin/ttl
+)
+
+src_install() {
+ cargo_src_install
+
+ doicon ttl.png ttlss.png
+ make_desktop_entry /usr/bin/ttl ttl ttl Network
+}
diff --git a/net-analyzer/ttl/ttl-0.18.0.ebuild b/net-analyzer/ttl/ttl-0.18.0.ebuild
new file mode 100644
index 000000000000..0202c8a4eb20
--- /dev/null
+++ b/net-analyzer/ttl/ttl-0.18.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Autogenerated by pycargoebuild 0.15.1
+
+EAPI=8
+
+CRATES="
+"
+
+RUST_MIN_VER="1.88.0"
+
+inherit fcaps desktop cargo
+
+DESCRIPTION="Modern traceroute/mtr-style TUI with hop stats and optional ASN/geo enrichment"
+HOMEPAGE="https://github.com/lance0/ttl"
+SRC_URI="
+ https://github.com/lance0/ttl/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+if [[ ${PKGBUMPING} != ${PVR} ]]; then
+ SRC_URI+="
+ mirror://gentoo/ttl-${PV}-crates.tar.xz
+ "
+fi
+
+LICENSE="|| ( Apache-2.0 MIT )"
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0 BSD CDLA-Permissive-2.0 ISC MIT MPL-2.0 openssl
+ Unicode-3.0 Unicode-DFS-2016 WTFPL-2 ZLIB
+"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DOCS=(
+ CHANGELOG.md
+ README.md
+ SECURITY.md
+)
+
+FILECAPS=(
+ cap_net_raw usr/bin/ttl
+)
+
+src_install() {
+ cargo_src_install
+
+ doicon ttl.png ttlss.png
+ make_desktop_entry /usr/bin/ttl ttl ttl Network
+}
diff --git a/net-analyzer/ttl/ttl-0.19.0.ebuild b/net-analyzer/ttl/ttl-0.19.0.ebuild
new file mode 100644
index 000000000000..0202c8a4eb20
--- /dev/null
+++ b/net-analyzer/ttl/ttl-0.19.0.ebuild
@@ -0,0 +1,51 @@
+# Copyright 2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Autogenerated by pycargoebuild 0.15.1
+
+EAPI=8
+
+CRATES="
+"
+
+RUST_MIN_VER="1.88.0"
+
+inherit fcaps desktop cargo
+
+DESCRIPTION="Modern traceroute/mtr-style TUI with hop stats and optional ASN/geo enrichment"
+HOMEPAGE="https://github.com/lance0/ttl"
+SRC_URI="
+ https://github.com/lance0/ttl/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+if [[ ${PKGBUMPING} != ${PVR} ]]; then
+ SRC_URI+="
+ mirror://gentoo/ttl-${PV}-crates.tar.xz
+ "
+fi
+
+LICENSE="|| ( Apache-2.0 MIT )"
+# Dependent crate licenses
+LICENSE+="
+ Apache-2.0 BSD CDLA-Permissive-2.0 ISC MIT MPL-2.0 openssl
+ Unicode-3.0 Unicode-DFS-2016 WTFPL-2 ZLIB
+"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DOCS=(
+ CHANGELOG.md
+ README.md
+ SECURITY.md
+)
+
+FILECAPS=(
+ cap_net_raw usr/bin/ttl
+)
+
+src_install() {
+ cargo_src_install
+
+ doicon ttl.png ttlss.png
+ make_desktop_entry /usr/bin/ttl ttl ttl Network
+}
diff --git a/net-analyzer/vnstat/Manifest b/net-analyzer/vnstat/Manifest
new file mode 100644
index 000000000000..e56a7039f1d5
--- /dev/null
+++ b/net-analyzer/vnstat/Manifest
@@ -0,0 +1,2 @@
+DIST vnstat-2.13.tar.gz 336647 BLAKE2B 2eef806403bca82a9f5f45c5dad75aac7c23dc7d1c7f010a0d2b82934ffea138fb29355e6c6a0a107fb83572dfb498c1b233feb77845e96ea36a9664f9fdfc5e SHA512 9b5d7b5085ab2ae39fd6b0d59afe56eb927b6e4ca1ca30ee7710afe2a412c4a1a8d756e095e9c3c81d182e3d6bb2efcd9a2a266e0048cac249477a09c1368969
+DIST vnstat-2.13.tar.gz.asc 833 BLAKE2B 14fb3edfd0a87cb92f00ba974484409c474e17c92cc80fed1840eb58101af5b726b0f53f9c479ed780dae4d5f242e2b817a36b3a4cc49aec40b4bb9b8d73ffb5 SHA512 36503ce73f3ed57e576cc83528df9815549e39aec6790c3e566fd41c885a940cc9e64f195090ed4ed314bca0eb25d05bfc9e7451cc7a6ebc11dbe01a3051a833
diff --git a/net-analyzer/vnstat/files/vnstat-2.9-conf.patch b/net-analyzer/vnstat/files/vnstat-2.9-conf.patch
new file mode 100644
index 000000000000..d2cfa3977cfb
--- /dev/null
+++ b/net-analyzer/vnstat/files/vnstat-2.9-conf.patch
@@ -0,0 +1,39 @@
+diff --git a/cfg/vnstat.conf b/cfg/vnstat.conf
+index f404de5..d2bd928 100644
+--- a/cfg/vnstat.conf
++++ b/cfg/vnstat.conf
+@@ -80,10 +80,10 @@
+ ##
+
+ # switch to given user when started as root (leave empty to disable)
+-;DaemonUser ""
++;DaemonUser "vnstat"
+
+ # switch to given group when started as root (leave empty to disable)
+-;DaemonGroup ""
++;DaemonGroup "vnstat"
+
+ # try to detect interface maximum bandwidth, 0 = disable feature
+ # MaxBandwidth will be used as fallback value when enabled
+@@ -161,7 +161,7 @@
+ ;LogFile "/var/log/vnstat/vnstat.log"
+
+ # file used as daemon pid / lock file
+-;PidFile "/var/run/vnstat/vnstat.pid"
++;PidFile "/run/vnstat/vnstat.pid"
+
+ # 1 = 64-bit, 0 = 32-bit, -1 = old style logic, -2 = automatic detection
+ ;64bitInterfaceCounters -2
+diff --git a/src/common.h b/src/common.h
+index bb2fb56..f148004 100644
+--- a/src/common.h
++++ b/src/common.h
+@@ -241,7 +241,7 @@ and most can be changed later from the config file.
+ #define CREATEDIRS 1
+ #define UPDATEFILEOWNER 1
+ #define LOGFILE "/var/log/vnstat/vnstat.log"
+-#define PIDFILE "/var/run/vnstat/vnstat.pid"
++#define PIDFILE "/run/vnstat/vnstat.pid"
+ #define IS64BIT -2
+ #define WALDB 0
+ #define WALDBCHECKPOINTINTERVALMINS 240
diff --git a/net-analyzer/vnstat/files/vnstat.cron-r1 b/net-analyzer/vnstat/files/vnstat.cron-r1
new file mode 100644
index 000000000000..178133675c6f
--- /dev/null
+++ b/net-analyzer/vnstat/files/vnstat.cron-r1
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+# run vnstat if installed and at least one database exists
+
+if [ -x /usr/bin/vnstat ] && [ `ls /var/lib/vnstat/ | wc -l` -ge 1 ] ; then
+ exec /usr/bin/vnstat -u
+fi
diff --git a/net-analyzer/vnstat/files/vnstat.cron-r2 b/net-analyzer/vnstat/files/vnstat.cron-r2
new file mode 100644
index 000000000000..98ed9734fcc7
--- /dev/null
+++ b/net-analyzer/vnstat/files/vnstat.cron-r2
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+# run vnstat if installed and at least one database exists
+
+if [ -x /usr/sbin/vnstat ] && [ `ls /var/lib/vnstat/ | wc -l` -ge 1 ] ; then
+ exec /usr/sbin/vnstat -u
+fi
diff --git a/net-analyzer/vnstat/files/vnstatd.confd-r1 b/net-analyzer/vnstat/files/vnstatd.confd-r1
new file mode 100644
index 000000000000..33edf3560ee8
--- /dev/null
+++ b/net-analyzer/vnstat/files/vnstatd.confd-r1
@@ -0,0 +1,18 @@
+# /etc/conf.d/vnstatd: config file for /etc/init.d/vnstatd
+
+# Configuration file
+VNSTATD_CONFIGFILE="/etc/vnstat.conf"
+
+# PID file
+VNSTATD_PIDFILE="/run/vnstat/vnstatd.pid"
+
+# Options to vnstatd
+# See vnstatd(8) for more details
+# Notes:
+# * Do not specify another PIDFILE but use the variable above to change the location
+# * Do not specify another CONFIGFILE but use the variable above to change the location
+VNSTATD_OPTS=""
+
+# Wait x milliseconds after starting and check that daemon is still running.
+# See start-stop-daemon(8) for more details
+SSD_STARTWAIT=500
diff --git a/net-analyzer/vnstat/files/vnstatd.initd-r2 b/net-analyzer/vnstat/files/vnstatd.initd-r2
new file mode 100644
index 000000000000..2b4a9336c2a5
--- /dev/null
+++ b/net-analyzer/vnstat/files/vnstatd.initd-r2
@@ -0,0 +1,29 @@
+#!/sbin/openrc-run
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+extra_started_commands="reload"
+
+VNSTATD_CONFIGFILE=${VNSTATD_CONFIGFILE:-"/etc/vnstat.conf"}
+VNSTATD_PIDFILE=${VNSTATD_PIDFILE:-"/run/vnstat/vnstatd.pid"}
+
+pidfile="${VNSTATD_PIDFILE}"
+command="/usr/bin/vnstatd"
+command_args="${VNSTATD_OPTS} --daemon --config \"${VNSTATD_CONFIGFILE}\" --pidfile \"${pidfile}\""
+start_stop_daemon_args="--wait ${SSD_STARTWAIT:-500}"
+name="vnStat daemon"
+
+description="vnstatd updates vnStat databases."
+description_reload="Reload ${name}'s configuration"
+
+required_files="${VNSTATD_CONFIGFILE}"
+
+start_pre() {
+ checkpath --directory --mode 0775 --owner vnstat:vnstat $(dirname "${pidfile}")
+}
+
+reload() {
+ ebegin "Reloading ${name} configuration"
+ start-stop-daemon --signal HUP --pidfile "${pidfile}"
+ eend $?
+}
diff --git a/net-analyzer/vnstat/files/vnstatd.initd-r3 b/net-analyzer/vnstat/files/vnstatd.initd-r3
new file mode 100644
index 000000000000..31f49d2a8af3
--- /dev/null
+++ b/net-analyzer/vnstat/files/vnstatd.initd-r3
@@ -0,0 +1,29 @@
+#!/sbin/openrc-run
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+extra_started_commands="reload"
+
+VNSTATD_CONFIGFILE=${VNSTATD_CONFIGFILE:-"/etc/vnstat.conf"}
+VNSTATD_PIDFILE=${VNSTATD_PIDFILE:-"/run/vnstat/vnstatd.pid"}
+
+pidfile="${VNSTATD_PIDFILE}"
+command="/usr/sbin/vnstatd"
+command_args="${VNSTATD_OPTS} --daemon --config \"${VNSTATD_CONFIGFILE}\" --pidfile \"${pidfile}\""
+start_stop_daemon_args="--wait ${SSD_STARTWAIT:-500}"
+name="vnStat daemon"
+
+description="vnstatd updates vnStat databases."
+description_reload="Reload ${name}'s configuration"
+
+required_files="${VNSTATD_CONFIGFILE}"
+
+start_pre() {
+ checkpath --directory --mode 0775 --owner vnstat:vnstat $(dirname "${pidfile}")
+}
+
+reload() {
+ ebegin "Reloading ${name} configuration"
+ start-stop-daemon --signal HUP --pidfile "${pidfile}"
+ eend $?
+}
diff --git a/net-analyzer/vnstat/files/vnstatd.systemd b/net-analyzer/vnstat/files/vnstatd.systemd
new file mode 100644
index 000000000000..51b079c5a9fb
--- /dev/null
+++ b/net-analyzer/vnstat/files/vnstatd.systemd
@@ -0,0 +1,11 @@
+[Unit]
+Description=vnStat network traffic monitor
+Documentation=man:vnstatd(1) man:vnstat(1) man:vnstat.conf(5)
+After=network-online.target
+
+[Service]
+ExecStart=/usr/bin/vnstatd --nodaemon
+ExecReload=/bin/kill -HUP $MAINPID
+
+[Install]
+WantedBy=multi-user.target
diff --git a/net-analyzer/vnstat/files/vnstatd.systemd-r1 b/net-analyzer/vnstat/files/vnstatd.systemd-r1
new file mode 100644
index 000000000000..7136a0c6053c
--- /dev/null
+++ b/net-analyzer/vnstat/files/vnstatd.systemd-r1
@@ -0,0 +1,11 @@
+[Unit]
+Description=vnStat network traffic monitor
+Documentation=man:vnstatd(1) man:vnstat(1) man:vnstat.conf(5)
+After=network-online.target
+
+[Service]
+ExecStart=/usr/sbin/vnstatd --nodaemon
+ExecReload=/bin/kill -HUP $MAINPID
+
+[Install]
+WantedBy=multi-user.target
diff --git a/net-analyzer/vnstat/files/vnstatd.tmpfile b/net-analyzer/vnstat/files/vnstatd.tmpfile
new file mode 100644
index 000000000000..36ecf2259495
--- /dev/null
+++ b/net-analyzer/vnstat/files/vnstatd.tmpfile
@@ -0,0 +1 @@
+d /run/vnstat 0775 vnstat vnstat -
diff --git a/net-analyzer/vnstat/metadata.xml b/net-analyzer/vnstat/metadata.xml
new file mode 100644
index 000000000000..97e429fe6b00
--- /dev/null
+++ b/net-analyzer/vnstat/metadata.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>sam@gentoo.org</email>
+ <name>Sam James</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <longdescription>
+ vnStat is a network traffic monitor for Linux that keeps a log of daily
+ network traffic for the selected interface(s). vnStat isn't a packet sniffer.
+ The traffic information is analyzed from the /proc filesystem. That way vnStat
+ can be used even without root permissions.
+ </longdescription>
+ <upstream>
+ <changelog>https://humdi.net/vnstat/CHANGES</changelog>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/vnstat/vnstat-2.13-r2.ebuild b/net-analyzer/vnstat/vnstat-2.13-r2.ebuild
new file mode 100644
index 000000000000..8c0f033c327b
--- /dev/null
+++ b/net-analyzer/vnstat/vnstat-2.13-r2.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit systemd tmpfiles
+
+DESCRIPTION="Console-based network traffic monitor that keeps statistics of network usage"
+HOMEPAGE="https://humdi.net/vnstat/"
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/vergoh/vnstat"
+ inherit git-r3
+else
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/teemutoivola.asc
+ inherit verify-sig
+
+ SRC_URI="
+ https://humdi.net/vnstat/${P}.tar.gz
+ https://github.com/vergoh/vnstat/releases/download/v${PV}/${P}.tar.gz
+ verify-sig? (
+ https://humdi.net/vnstat/${P}.tar.gz.asc
+ https://github.com/vergoh/vnstat/releases/download/v${PV}/${P}.tar.gz.asc
+ )
+ "
+
+ KEYWORDS="amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~sparc x86"
+
+ BDEPEND="verify-sig? ( sec-keys/openpgp-keys-teemutoivola )"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="gd selinux test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ acct-group/vnstat
+ acct-user/vnstat
+ dev-db/sqlite
+ gd? ( media-libs/gd[png] )
+"
+DEPEND="
+ ${RDEPEND}
+ test? ( dev-libs/check )
+"
+RDEPEND+=" selinux? ( sec-policy/selinux-vnstatd )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.9-conf.patch
+)
+
+src_configure() {
+ local myeconfargs=(
+ $(use_enable gd image-output)
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+
+ exeinto /usr/share/${PN}
+ newexe "${FILESDIR}"/vnstat.cron-r2 vnstat.cron
+
+ newconfd "${FILESDIR}"/vnstatd.confd-r1 vnstatd
+ newinitd "${FILESDIR}"/vnstatd.initd-r3 vnstatd
+
+ systemd_newunit "${FILESDIR}"/vnstatd.systemd-r1 vnstatd.service
+ newtmpfiles "${FILESDIR}"/vnstatd.tmpfile vnstatd.conf
+
+ newdoc INSTALL README.setup
+ dodoc CHANGES README UPGRADE FAQ examples/vnstat.cgi
+}
+
+pkg_postinst() {
+ tmpfiles_process vnstatd.conf
+}
diff --git a/net-analyzer/vnstat/vnstat-2.13.ebuild b/net-analyzer/vnstat/vnstat-2.13.ebuild
new file mode 100644
index 000000000000..b16076ca2552
--- /dev/null
+++ b/net-analyzer/vnstat/vnstat-2.13.ebuild
@@ -0,0 +1,90 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit systemd tmpfiles
+
+DESCRIPTION="Console-based network traffic monitor that keeps statistics of network usage"
+HOMEPAGE="https://humdi.net/vnstat/"
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/vergoh/vnstat"
+ inherit git-r3
+else
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/teemutoivola.asc
+ inherit verify-sig
+
+ SRC_URI="
+ https://humdi.net/vnstat/${P}.tar.gz
+ https://github.com/vergoh/vnstat/releases/download/v${PV}/${P}.tar.gz
+ verify-sig? (
+ https://humdi.net/vnstat/${P}.tar.gz.asc
+ https://github.com/vergoh/vnstat/releases/download/v${PV}/${P}.tar.gz.asc
+ )
+ "
+
+ KEYWORDS="amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~sparc x86"
+
+ BDEPEND="verify-sig? ( sec-keys/openpgp-keys-teemutoivola )"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="gd selinux test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ acct-group/vnstat
+ acct-user/vnstat
+ dev-db/sqlite
+ gd? ( media-libs/gd[png] )
+"
+DEPEND="
+ ${RDEPEND}
+ test? ( dev-libs/check )
+"
+RDEPEND+=" selinux? ( sec-policy/selinux-vnstatd )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.9-conf.patch
+)
+
+src_compile() {
+ emake \
+ ${PN} \
+ ${PN}d \
+ $(usev gd ${PN}i)
+}
+
+src_install() {
+ use gd && dobin vnstati
+ dobin vnstat vnstatd
+
+ exeinto /usr/share/${PN}
+ newexe "${FILESDIR}"/vnstat.cron-r1 vnstat.cron
+
+ insinto /etc
+ doins cfg/vnstat.conf
+ fowners root:vnstat /etc/vnstat.conf
+
+ keepdir /var/lib/vnstat
+ fowners vnstat:vnstat /var/lib/vnstat
+
+ newconfd "${FILESDIR}"/vnstatd.confd-r1 vnstatd
+ newinitd "${FILESDIR}"/vnstatd.initd-r2 vnstatd
+
+ systemd_newunit "${FILESDIR}"/vnstatd.systemd vnstatd.service
+ newtmpfiles "${FILESDIR}"/vnstatd.tmpfile vnstatd.conf
+
+ use gd && doman man/vnstati.1
+
+ doman man/vnstat.1 man/vnstatd.8
+
+ newdoc INSTALL README.setup
+ dodoc CHANGES README UPGRADE FAQ examples/vnstat.cgi
+}
+
+pkg_postinst() {
+ tmpfiles_process vnstatd.conf
+}
diff --git a/net-analyzer/vnstat/vnstat-9999.ebuild b/net-analyzer/vnstat/vnstat-9999.ebuild
new file mode 100644
index 000000000000..cbd84ff3a5d6
--- /dev/null
+++ b/net-analyzer/vnstat/vnstat-9999.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit systemd tmpfiles
+
+DESCRIPTION="Console-based network traffic monitor that keeps statistics of network usage"
+HOMEPAGE="https://humdi.net/vnstat/"
+
+if [[ ${PV} == *9999 ]] ; then
+ EGIT_REPO_URI="https://github.com/vergoh/vnstat"
+ inherit git-r3
+else
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/teemutoivola.asc
+ inherit verify-sig
+
+ SRC_URI="
+ https://humdi.net/vnstat/${P}.tar.gz
+ https://github.com/vergoh/vnstat/releases/download/v${PV}/${P}.tar.gz
+ verify-sig? (
+ https://humdi.net/vnstat/${P}.tar.gz.asc
+ https://github.com/vergoh/vnstat/releases/download/v${PV}/${P}.tar.gz.asc
+ )
+ "
+
+ KEYWORDS="~amd64 arm arm64 ~hppa ~mips ppc ~ppc64 ~riscv ~sparc ~x86"
+
+ BDEPEND="verify-sig? ( sec-keys/openpgp-keys-teemutoivola )"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="gd selinux test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ acct-group/vnstat
+ acct-user/vnstat
+ dev-db/sqlite
+ gd? ( media-libs/gd[png] )
+"
+DEPEND="
+ ${RDEPEND}
+ test? ( dev-libs/check )
+"
+RDEPEND+=" selinux? ( sec-policy/selinux-vnstatd )"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-2.9-conf.patch
+)
+
+src_configure() {
+ local myeconfargs=(
+ $(use_enable gd image-output)
+ )
+
+ econf "${myeconfargs[@]}"
+}
+
+src_install() {
+ default
+
+ exeinto /usr/share/${PN}
+ newexe "${FILESDIR}"/vnstat.cron-r2 vnstat.cron
+
+ newconfd "${FILESDIR}"/vnstatd.confd-r1 vnstatd
+ newinitd "${FILESDIR}"/vnstatd.initd-r3 vnstatd
+
+ systemd_newunit "${FILESDIR}"/vnstatd.systemd-r1 vnstatd.service
+ newtmpfiles "${FILESDIR}"/vnstatd.tmpfile vnstatd.conf
+
+ newdoc INSTALL README.setup
+ dodoc CHANGES README UPGRADE FAQ examples/vnstat.cgi
+}
+
+pkg_postinst() {
+ tmpfiles_process vnstatd.conf
+}
diff --git a/net-analyzer/wireshark/Manifest b/net-analyzer/wireshark/Manifest
new file mode 100644
index 000000000000..7b666e31a133
--- /dev/null
+++ b/net-analyzer/wireshark/Manifest
@@ -0,0 +1,4 @@
+DIST wireshark-4.6.5-signatures.txt 2508 BLAKE2B 00b48881a84e2cca8edebbc1e69333fbbf2eeaea7f331bbd57902f6685ce2de192e6cdc54c7d0275170995aa4594cee31ae9d76427b8c3aaac7318f1ccdae167 SHA512 b94c4cba6c181aeb0badffaa4490110c1173851cd89364edb856c4d01a7d37af8737f411320915ffc9c8c6087dd044c881d798a977d8ebc46ef1c933e336c9ec
+DIST wireshark-4.6.5.tar.xz 58257076 BLAKE2B bcb40a93ad72b775b703c9fbab0d33a5ec94372625380c54b4247de3ceb9a807ffdca0fbb4035366cd1a557dd5ddc8a775ab1ab1038467814eaa62efdf448865 SHA512 f5f52eed915184a553b32c559bdb9b5478e33a877768265b8b40b711cb44ffcd98b3a6e8a469f65b870df16ac7f9f7d391727156d11e669e5ab4bcd52bab8981
+DIST wireshark-4.6.6-signatures.txt 2508 BLAKE2B e7cb3cc6c3f49b2c2c83d7c0ba063c40e2d6b9693c09a792c64b1ec01d2f14d64a67c00976cc7b94f2884ade1c8e0fca797012f0bd845ff110a4b0955c9e2fc7 SHA512 51cfa6344f78ff485ab4613ba25d81363b456117bf5b7328e9c43ae868368e223cf2f10835b4774c255938e4d9edb293bcf210206decd8e87a8377fd51f49d87
+DIST wireshark-4.6.6.tar.xz 56334204 BLAKE2B 3ba090394930adbd8649df0b93b65ad68f58964fe2a5b8632450f3f3b7d2f26bbc20f95a825d08082b1c2d25ebb420500b3b58b8cb1f6b88b8326c093f56c83f SHA512 fdeca4647ed3bb7dca5a2f5f747afaa877220ec1153c1d0c5f2688d164fa2feb4d2f45175061415fe6602d3328bf8ec028a4ade73eca6ebd8f6b67d2fcb54d5a
diff --git a/net-analyzer/wireshark/files/4.4.6-lto.patch b/net-analyzer/wireshark/files/4.4.6-lto.patch
new file mode 100644
index 000000000000..f1b0581d7546
--- /dev/null
+++ b/net-analyzer/wireshark/files/4.4.6-lto.patch
@@ -0,0 +1,164 @@
+From d674e9a17f215d8c0fb3ae9e8c44e9a77952c3d1 Mon Sep 17 00:00:00 2001
+Message-ID: <d674e9a17f215d8c0fb3ae9e8c44e9a77952c3d1.1744950020.git.sam@gentoo.org>
+From: Sam James <sam@gentoo.org>
+Date: Thu, 17 Apr 2025 19:57:46 +0100
+Subject: [PATCH] CMake: don't build with -fPIE
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Qt's qcompilerdetection.h currently checks for whether -fPIE is being used
+along with QT_USE_PROTECTED_VISIBILITY ("reduce relocations", which Qt
+automatically uses if supported). It bails out if -fPIE is used, as -fPIC
+is required instead.
+
+If LTO is used, when one does something like:
+(1) g++ -c -flto -fPIC qtlto.cc
+(2) g++ -pie -fPIE qtlto.o -o qtlto
+
+At point (1), the Qt check in the headers fires, and everything is fine,
+because we're indeed using -fPIC, and GCC doesn't automatically add -fPIE
+when built with --enable-default-pie if -fPIC is present on the command line.
+
+GCC may apply optimisations at this point given Qt is using -mno-direct-extern-access
+and it was built with -fPIC not -fPIE.
+
+Later, at point (2), -fPIE is passed. This happens in Wireshark because
+`CMAKE_POSITION_INDEPENDENT_CODE` gets set in CMakeLists.txt. With LTO,
+there's no opportunity for the Qt sanity check in headers to fire again,
+as everything is already long-preprocessed and GCC will have applied some
+optimisations already assuming the -fPIC code model in (1). But as slyfox
+says at https://bugs.gentoo.org/754021#c12, GCC merges -fPIC -fPIE to -fPIE
+at LTO-time (-fPIC coming from the earlier LTO object in (1), and -fPIE
+was just-passed on the command line).
+
+qtlto (or Wireshark) then crashes. For Wireshark, this looks like:
+```
+ #0 0x00007ff40e529cf0 in QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> >::get (this=<optimized out>)
+ at /usr/src/debug/dev-qt/qtbase-6.8.3/qtbase-everywhere-src-6.8.3/src/corelib/tools/qscopedpointer.h:112
+ #1 qGetPtrHelper<QScopedPointer<QObjectData, QScopedPointerDeleter<QObjectData> > > (ptr=<optimized out>)
+ at /usr/src/debug/dev-qt/qtbase-6.8.3/qtbase-everywhere-src-6.8.3/src/corelib/global/qtclasshelpermacros.h:128
+ #2 QObject::d_func (this=<optimized out>) at /usr/src/debug/dev-qt/qtbase-6.8.3/qtbase-everywhere-src-6.8.3/src/corelib/kernel/qobject.h:108
+ #3 QObjectPrivate::get (o=<optimized out>) at /usr/src/debug/dev-qt/qtbase-6.8.3/qtbase-everywhere-src-6.8.3/src/corelib/kernel/qobject_p.h:150
+ #4 doActivate<false> (sender=0x0, signal_index=9, argv=argv@entry=0x7ffe59a73c30) at /usr/src/debug/dev-qt/qtbase-6.8.3/qtbase-everywhere-src-6.8.3/src/corelib/kernel/qobject.cpp:4003
+ #5 0x00007ff40e4d2809 in QMetaObject::activate
+ (sender=<optimized out>, m=m@entry=0x7ff40f44f6c0 <QGuiApplication::staticMetaObject>, local_signal_index=local_signal_index@entry=1, argv=argv@entry=0x7ffe59a73c30)
+ at /usr/src/debug/dev-qt/qtbase-6.8.3/qtbase-everywhere-src-6.8.3/src/corelib/kernel/qobject.cpp:4183
+ #6 0x00007ff40ead5676 in QGuiApplication::screenAdded (this=<optimized out>, _t1=<optimized out>)
+[...]
+```
+
+We need to drop -fPIE somehow at link-time accordingly. There's a few
+ways of doing this but I've gone for not calling `check_pie_supported()`
+(see (7) below).
+
+(Analysis on fixing this in other packages may depend on whether any static
+libraries *installed* by CMake where -fPIC was no longer passed for those,
+we would have a problem. I'd tried to use POSITION_INDEPENDENT_CODE at first
+but then -fPIC gets dropped as well everywhere, and setting the target
+property to false for just the Wireshark executable also doesn't work
+because it'll pass -no-pie which isn't what we want.)
+
+There are some questions:
+(3) Why doesn't this happen with Clang, given that Clang has -fno-direct-access-external-data
+ (equivalent to GCC's -mno-direct-extern-access), even when Qt is built
+ with bfd (not lld)?
+
+ The answer seems to be that Clang doesn't implement the optimisation
+ yet to avoid copy-relocations where possible. GCC implemented that in
+ 5.x in r5-5573-g77ad54d911dd7c.
+
+(4) Why doesn't this (seem to) happen in other distributions?
+
+ nextcloud-client suffers from the same issue analysed here, see
+ https://bugs.gentoo.org/933110. The upstream bug at https://github.com/nextcloud/desktop/issues/2790
+ was reported by a Debian developer (cgzones), so it's a reasonable assumption
+ that it can happen on Debian.
+
+ Debian is one of few distributions (we're another) to use --enable-default-pie
+ in GCC rather than just passing it to all package builds in the package manager:
+ it's possible that some distros are just disabling -fPIE or adding a workaround
+ like we did for https://bugs.gentoo.org/552440. Not many distros build
+ with LTO either.
+
+ Debian also stopped building Wireshark with LTO because of a bug in Wireshark
+ itself (https://bugs.gentoo.org/941890), so I guess they disabled LTO
+ and didn't notice this crash.
+
+ (This is enough for me to be more confident in my analysis, anyway.)
+
+(5) Could Qt communicate this somehow automatically?
+
+ I think it might be able to if statically linking Qt and Qt was built
+ with LTO.
+
+ Otherwise, I think the only option would be an ELF .note. pkg-config
+ could maybe work but you can't assume all Qt consumers use that...
+
+ See the discussion around <https://bugreports.qt.io/browse/QTBUG-45755?focusedId=282483&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-282483>:
+ > Thiago Macieira added a comment - 22 May '15 17:11
+ > There aren't that many autoconf-based Qt5 builds and we've never exported the flag anyway.
+
+ (It might be worth bringing this .note idea up to Thiago and/or H.J. but
+ I'm not sure yet if it'll work.)
+
+ On the Qt side, -fPIC gets passed in to various places before because
+ Qt's CMake config files have INTERFACE_COMPILE_OPTIONS w/ -fPIC. Maybe
+ the answer is for Qt packages to never use CMAKE_POSITION_INDEPENDENT_CODE
+ instead. This came up in https://gitlab.kitware.com/cmake/cmake/-/issues/15570.
+
+(6) Could we just disable "reduce relocations" in Qt itself, given that
+ the workaround here will need to be applied in various Qt consumers?
+
+ This would significantly impact startup times of applications using Qt
+ and there don't seem to be too many applications doing this (only 2
+ known so far in Gentoo: Wireshark and nextcloud-client).
+
+(7) Is the mechanism used to fix this brittle?
+
+ Yes, we're relying on a CMake bug/feature for now at https://gitlab.kitware.com/cmake/cmake/-/issues/25588
+ so it doesn't try to enable *or* disable PIE at link-time and we can
+ just rely on our toolchain defaults.
+
+Thanks to Arusekk for producing a minimal example and reporting it upstream
+to Wireshark, thanks to slyfox for analysing the interaction with LTO, thanks
+to Holger and Eli for the discussion around it, reviewing the commit message,
+and generally talking it all through and giving ideas.
+
+Bug: https://bugs.gentoo.org/552440
+Bug: https://bugs.gentoo.org/754021
+Bug: https://bugs.gentoo.org/933110
+Bug: https://bugs.gentoo.org/941890
+Bug: https://gitlab.kitware.com/cmake/cmake/-/issues/15570
+Bug: https://gitlab.kitware.com/cmake/cmake/-/issues/25588
+Bug: https://gitlab.kitware.com/cmake/cmake/-/issues/23980
+Bug: https://gitlab.com/wireshark/wireshark/-/issues/17040
+Bug: https://bugreports.qt.io/browse/QTBUG-45755
+Bug: https://bugreports.qt.io/browse/QTBUG-47942
+Bug: https://gcc.gnu.org/PR65248
+Bug: https://gcc.gnu.org/PR65886
+Thanks-to: Arusekk <arek_koz@o2.pl>
+Thanks-to: Sergei Trofimovich <slyfox@gentoo.org>
+Thanks-to: Holger Hoffstätte <holger@applied-asynchrony.com>
+Thanks-to: Eli Schwartz <eschwartz@gentoo.org>
+---
+ CMakeLists.txt | 1 -
+ 1 file changed, 1 deletion(-)
+
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index d82a718bf6..c177e46571 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1254,7 +1254,6 @@ if(NOT CMAKE_C_COMPILER_ID MATCHES "MSVC" AND NOT OSS_FUZZ)
+ endif()
+ else()
+ include(CheckPIESupported)
+- check_pie_supported()
+ endif()
+ endif()
+
+
+base-commit: 85ff46c76b2a6a4b94094e4f20dfa66b43086182
+--
+2.49.0
+
diff --git a/net-analyzer/wireshark/files/4.6.2-gnutls-pkcs11.patch b/net-analyzer/wireshark/files/4.6.2-gnutls-pkcs11.patch
new file mode 100644
index 000000000000..262907e42e48
--- /dev/null
+++ b/net-analyzer/wireshark/files/4.6.2-gnutls-pkcs11.patch
@@ -0,0 +1,45 @@
+Bug: https://bugs.gentoo.org/967060
+
+diff -rup wireshark-4.6.2/CMakeLists.txt wireshark-4.6.2-pkcs11/CMakeLists.txt
+--- wireshark-4.6.2/CMakeLists.txt 2025-12-04 13:48:57.732168127 +0100
++++ wireshark-4.6.2-pkcs11/CMakeLists.txt 2025-12-04 13:48:29.067453231 +0100
+@@ -1587,16 +1587,18 @@ if(GNUTLS_FOUND)
+ # Calculating public keys from PKCS #11 private keys requires GnuTLS
+ # 3.4.0 or greater.
+ #
+- # Check that the support is present in case GnuTLS was compiled
+- # --without-p11-kit as macos-setup.sh did until December 2020.
+- cmake_push_check_state()
+- if(WIN32 AND NOT MINGW)
+- set(CMAKE_REQUIRED_DEFINITIONS -Dssize_t=int)
+- endif()
+- set(CMAKE_REQUIRED_INCLUDES ${GNUTLS_INCLUDE_DIRS})
+- set(CMAKE_REQUIRED_LIBRARIES ${GNUTLS_LIBRARIES})
+- check_symbol_exists(gnutls_pkcs11_obj_list_import_url4 gnutls/pkcs11.h HAVE_GNUTLS_PKCS11)
+- cmake_pop_check_state()
++ if (ENABLE_PKCS11)
++ # Check that the support is present in case GnuTLS was compiled
++ # --without-p11-kit as macos-setup.sh did until December 2020.
++ cmake_push_check_state()
++ if(WIN32 AND NOT MINGW)
++ set(CMAKE_REQUIRED_DEFINITIONS -Dssize_t=int)
++ endif()
++ set(CMAKE_REQUIRED_INCLUDES ${GNUTLS_INCLUDE_DIRS})
++ set(CMAKE_REQUIRED_LIBRARIES ${GNUTLS_LIBRARIES})
++ check_symbol_exists(gnutls_pkcs11_obj_list_import_url4 gnutls/pkcs11.h HAVE_GNUTLS_PKCS11)
++ cmake_pop_check_state()
++ endif (ENABLE_PKCS11)
+ endif()
+
+ if (QT_FOUND)
+diff -rup wireshark-4.6.2/CMakeOptions.txt wireshark-4.6.2-pkcs11/CMakeOptions.txt
+--- wireshark-4.6.2/CMakeOptions.txt 2025-12-03 18:45:32.000000000 +0100
++++ wireshark-4.6.2-pkcs11/CMakeOptions.txt 2025-12-04 13:44:49.553654179 +0100
+@@ -106,6 +106,7 @@ option(ENABLE_NGHTTP3 "Build with HTT
+ option(ENABLE_LUA "Build with Lua dissector support" ON)
+ option(ENABLE_SMI "Build with libsmi snmp support" ON)
+ option(ENABLE_GNUTLS "Build with RSA decryption support" ON)
++option(ENABLE_PKCS11 "Build with PKCS11 support" ON)
+ if(WIN32 AND USE_REPOSITORY)
+ option(ENABLE_WINSPARKLE "Enable automatic updates using WinSparkle" ON)
+ endif()
diff --git a/net-analyzer/wireshark/files/4.6.5-disable-sidebar.patch b/net-analyzer/wireshark/files/4.6.5-disable-sidebar.patch
new file mode 100644
index 000000000000..f06ed1067263
--- /dev/null
+++ b/net-analyzer/wireshark/files/4.6.5-disable-sidebar.patch
@@ -0,0 +1,21 @@
+https://bugs.gentoo.org/973610
+
+--- wireshark-4.6.5/ui/recent.c
++++ wireshark-4.6.5/ui/recent.c
+@@ -1974,11 +1974,11 @@ recent_init(void)
+ {
+ memset(&recent, 0, sizeof(recent_settings_t));
+
+- recent.gui_welcome_page_sidebar_learn_visible = true;
+- recent.gui_welcome_page_sidebar_tips_visible = true;
+- recent.gui_welcome_page_sidebar_tips_events = true;
+- recent.gui_welcome_page_sidebar_tips_sponsorship = true;
+- recent.gui_welcome_page_sidebar_tips_tips = true;
++ recent.gui_welcome_page_sidebar_learn_visible = false;
++ recent.gui_welcome_page_sidebar_tips_visible = false;
++ recent.gui_welcome_page_sidebar_tips_events = false;
++ recent.gui_welcome_page_sidebar_tips_sponsorship = false;
++ recent.gui_welcome_page_sidebar_tips_tips = false;
+ recent.gui_welcome_page_sidebar_tips_interval = 8;
+ }
+
diff --git a/net-analyzer/wireshark/files/4.6.5-remove-unused-variable.patch b/net-analyzer/wireshark/files/4.6.5-remove-unused-variable.patch
new file mode 100644
index 000000000000..c433017f58e9
--- /dev/null
+++ b/net-analyzer/wireshark/files/4.6.5-remove-unused-variable.patch
@@ -0,0 +1,36 @@
+https://gitlab.com/wireshark/wireshark/-/work_items/20727
+
+From: =?UTF-8?q?Holger=20Hoffst=C3=A4tte?= <holger@applied-asynchrony.com>
+Date: Tue, 30 Sep 2025 14:12:11 +0200
+Subject: [PATCH] Remove unused variable 'newly_displayed_packets'
+
+Its use was removed in f210edea but the variable itself was never removed.
+
+Ping #20727
+---
+ file.c | 5 +----
+ 1 file changed, 1 insertion(+), 4 deletions(-)
+
+diff --git a/file.c b/file.c
+index 854b894cb88..b287e424ced 100644
+--- a/file.c
++++ b/file.c
+@@ -798,7 +798,6 @@ cf_continue_tail(capture_file *cf, volatile int to_read, wtap_rec *rec,
+ int *err, fifo_string_cache_t *frame_dup_cache, GChecksum *frame_cksum)
+ {
+ char *err_info;
+- volatile int newly_displayed_packets = 0;
+ epan_dissect_t edt;
+ bool create_proto_tree;
+ unsigned tap_flags;
+@@ -878,9 +877,7 @@ cf_continue_tail(capture_file *cf, volatile int to_read, wtap_rec *rec,
+ aren't any packets left to read) exit. */
+ break;
+ }
+- if (read_record(cf, rec, cf->dfcode, &edt, cinfo, data_offset, frame_dup_cache, frame_cksum)) {
+- newly_displayed_packets++;
+- }
++ read_record(cf, rec, cf->dfcode, &edt, cinfo, data_offset, frame_dup_cache, frame_cksum);
+ to_read--;
+ }
+ wtap_rec_reset(rec);
diff --git a/net-analyzer/wireshark/files/release-notes.html b/net-analyzer/wireshark/files/release-notes.html
new file mode 100644
index 000000000000..fae4810cc97c
--- /dev/null
+++ b/net-analyzer/wireshark/files/release-notes.html
@@ -0,0 +1,6 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="refresh" content="0; url='https://www.wireshark.org/docs/relnotes/#VERSION#'" />
+ </head>
+</html>
diff --git a/net-analyzer/wireshark/metadata.xml b/net-analyzer/wireshark/metadata.xml
new file mode 100644
index 000000000000..959e3ba85dae
--- /dev/null
+++ b/net-analyzer/wireshark/metadata.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>holger@applied-asynchrony.com</email>
+ <name>Holger Hoffstätte</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>sam@gentoo.org</email>
+ <name>Sam James</name>
+ </maintainer>
+ <longdescription>
+ Wireshark is the world's foremost network protocol analyzer, and is the de
+ facto (and often de jure) standard across many industries and educational
+ institutions. Wireshark has a rich feature set which includes 1) deep
+ inspection of hundreds of protocols, with more being added all the time, 2)
+ live capture and offline analysis, 3) standard three-pane packet browser, 4)
+ captured network data can be browsed via a GUI, or via the TTY-mode TShark
+ utility, 5) the most powerful display filters in the industry, 6) rich VoIP
+ analysis, 7) read/write many different capture file formats: tcpdump (libpcap),
+ Catapult DCT2000, Cisco Secure IDS iplog, Microsoft Network Monitor, Network
+ General Sniffer® (compressed and uncompressed), Sniffer® Pro, and NetXray®,
+ Network Instruments Observer, Novell LANalyzer, RADCOM WAN/LAN Analyzer,
+ Shomiti/Finisar Surveyor, Tektronix K12xx, Visual Networks Visual UpTime,
+ WildPackets EtherPeek/TokenPeek/AiroPeek, and many others, 8) capture files
+ compressed with gzip can be decompressed on the fly, 9) live data can be read
+ from Ethernet, IEEE 802.11, PPP/HDLC, ATM, Bluetooth, USB, Token Ring, Frame
+ Relay, FDDI, and others, 10) decryption support for many protocols, including
+ IPsec, ISAKMP, Kerberos, SNMPv3, SSL/TLS, WEP, and WPA/WPA2, 11) coloring rules
+ can be applied to the packet list for quick, intuitive analysis, 12) output can
+ be exported to XML, PostScript®, CSV, or plain text.
+ </longdescription>
+ <use>
+ <flag name="androiddump">Install androiddump, an extcap interface to capture from Android devices</flag>
+ <flag name="bcg729">Use <pkg>media-libs/bcg729</pkg> for G.729 codec support in RTP Player</flag>
+ <flag name="capinfos">Install capinfos, to print information about capture files</flag>
+ <flag name="captype">Install captype, to print the file types of capture files</flag>
+ <flag name="ciscodump">Install ciscodump, extcap interface to capture from a remote Cisco router</flag>
+ <flag name="dftest">Install dftest, to display filter byte-code, for debugging dfilter routines</flag>
+ <flag name="dpauxmon">Install dpauxmon, an external capture interface (extcap) that captures DisplayPort AUX channel data from linux kernel drivers</flag>
+ <flag name="dumpcap">Install dumpcap, to dump network traffic from inside wireshark</flag>
+ <flag name="editcap">Install editcap, to edit and/or translate the format of capture files</flag>
+ <flag name="http3">Install <pkg>net-libs/nghttp3</pkg> for enhanced HTTP3 analysis</flag>
+ <flag name="ilbc">Build with iLBC support in RTP Player using <pkg>media-libs/libilbc</pkg>
+ </flag>
+ <flag name="maxminddb">Use <pkg>dev-libs/libmaxminddb</pkg> for IP address geolocation</flag>
+ <flag name="mergecap">Install mergecap, to merge two or more capture files into one</flag>
+ <flag name="minizip">Build with zip file compression support</flag>
+ <flag name="netlink">Use <pkg>dev-libs/libnl</pkg>
+ </flag>
+ <flag name="pcap">Use <pkg>net-libs/libpcap</pkg> for network packet capturing (build dumpcap, rawshark)</flag>
+ <flag name="pkcs11">Add support for PKCS in <pkg>net-libs/gnutls</pkg>
+ </flag>
+ <flag name="plugins">Install plugins</flag>
+ <flag name="randpkt">Install randpkt, a utility for creating pcap trace files full of random packets</flag>
+ <flag name="randpktdump">Install randpktdump, an extcap interface to provide access to the random packet generator (randpkt)</flag>
+ <flag name="reordercap">Install reordercap, to reorder input file by timestamp into output file</flag>
+ <flag name="sbc">Use <pkg>media-libs/sbc</pkg> for playing back SBC encoded packets</flag>
+ <flag name="sdjournal">Install sdjournal, an extcap that captures systemd journal entries</flag>
+ <flag name="sharkd">Install sharkd, the daemon variant of wireshark</flag>
+ <flag name="smi">Use <pkg>net-libs/libsmi</pkg> to resolve numeric OIDs into human readable format</flag>
+ <flag name="spandsp">Use <pkg>media-libs/spandsp</pkg> for for G.722 and G.726 codec support in the RTP Player</flag>
+ <flag name="sshdump">Install sshdump, an extcap interface to capture from a remote host through SSH</flag>
+ <flag name="text2pcap">Install text2pcap, to generate a capture file from an ASCII hexdump of packets</flag>
+ <flag name="tshark">Install tshark, to dump and analyzer network traffic from the command line</flag>
+ <flag name="udpdump">Install udpdump, to get packets exported from a source (like a network device or a GSMTAP producer) that are dumped to a pcap file</flag>
+ <flag name="wifi">Install wifidump, to dump and analyse 802.11 traffic</flag>
+ <flag name="xxhash">Enable <pkg>dev-libs/xxhash</pkg> support for hashing</flag>
+ </use>
+ <upstream>
+ <changelog>https://www.wireshark.org/news/</changelog>
+ <remote-id type="cpe">cpe:/a:wireshark:wireshark</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/wireshark/wireshark-4.6.5-r1.ebuild b/net-analyzer/wireshark/wireshark-4.6.5-r1.ebuild
new file mode 100644
index 000000000000..88b82ad5764b
--- /dev/null
+++ b/net-analyzer/wireshark/wireshark-4.6.5-r1.ebuild
@@ -0,0 +1,352 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-{1,3,4} luajit )
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit fcaps lua-single python-any-r1 qmake-utils toolchain-funcs xdg cmake
+
+DESCRIPTION="Network protocol analyzer (sniffer)"
+HOMEPAGE="https://www.wireshark.org/"
+
+if [[ ${PV} == *9999* ]] ; then
+ EGIT_REPO_URI="https://gitlab.com/wireshark/wireshark"
+ inherit git-r3
+else
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/wireshark.asc
+ inherit verify-sig
+
+ SRC_URI="https://www.wireshark.org/download/src/all-versions/${P/_/}.tar.xz"
+ SRC_URI+=" verify-sig? ( https://www.wireshark.org/download/SIGNATURES-${PV/_/}.txt -> ${P}-signatures.txt )"
+ S="${WORKDIR}/${P/_/}"
+
+ if [[ ${PV} != *_rc* ]] ; then
+ KEYWORDS="amd64 arm arm64 ~hppa ~loong ppc64 ~riscv x86"
+ fi
+fi
+
+LICENSE="GPL-2"
+SLOT="0/${PV}"
+IUSE="androiddump bcg729 brotli +capinfos +captype ciscodump +dftest doc dpauxmon"
+IUSE+=" +dumpcap +editcap +gui http2 http3 ilbc kerberos lua lz4 maxminddb"
+IUSE+=" +mergecap +minizip +netlink opus pkcs11 +plugins +pcap +randpkt"
+IUSE+=" +randpktdump +reordercap sbc selinux +sharkd smi snappy spandsp sshdump ssl"
+IUSE+=" sdjournal test +text2pcap +tshark +udpdump wifi xxhash zlib +zstd"
+
+REQUIRED_USE="
+ lua? ( ${LUA_REQUIRED_USE} )
+"
+
+RESTRICT="!test? ( test )"
+
+# bug #753062 for speexdsp
+RDEPEND="
+ acct-group/pcap
+ >=dev-libs/glib-2.50.0:2
+ dev-libs/libpcre2:=
+ dev-libs/libxml2:=
+ >=net-dns/c-ares-1.13.0:=
+ >=dev-libs/libgcrypt-1.8.0:=
+ media-libs/speexdsp
+ bcg729? ( media-libs/bcg729 )
+ brotli? ( app-arch/brotli:= )
+ ciscodump? ( >=net-libs/libssh-0.6:= )
+ filecaps? ( sys-libs/libcap )
+ http2? ( >=net-libs/nghttp2-1.11.0:= )
+ http3? ( net-libs/nghttp3 )
+ ilbc? ( media-libs/libilbc:= )
+ kerberos? ( virtual/krb5 )
+ lua? ( ${LUA_DEPS} )
+ lz4? ( app-arch/lz4:= )
+ maxminddb? ( dev-libs/libmaxminddb:= )
+ minizip? ( virtual/minizip:= )
+ netlink? ( dev-libs/libnl:3 )
+ opus? ( media-libs/opus )
+ pcap? ( net-libs/libpcap )
+ gui? (
+ dev-qt/qtbase:6[concurrent,gui,widgets]
+ dev-qt/qt5compat:6
+ dev-qt/qtmultimedia:6
+ x11-misc/xdg-utils
+ )
+ sbc? ( media-libs/sbc )
+ sdjournal? ( sys-apps/systemd:= )
+ smi? ( net-libs/libsmi )
+ snappy? ( app-arch/snappy:= )
+ spandsp? ( media-libs/spandsp:= )
+ sshdump? ( >=net-libs/libssh-0.6:= )
+ ssl? ( >=net-libs/gnutls-3.5.8:=[pkcs11?] )
+ wifi? ( >=net-libs/libssh-0.6:= )
+ xxhash? ( dev-libs/xxhash )
+ zlib? ( virtual/zlib:= )
+ zstd? ( app-arch/zstd:= )
+"
+DEPEND="
+ ${RDEPEND}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ dev-lang/perl
+ app-alternatives/lex
+ sys-devel/gettext
+ virtual/pkgconfig
+ doc? (
+ app-text/doxygen
+ dev-ruby/asciidoctor
+ dev-libs/libxslt
+ )
+ gui? (
+ dev-qt/qttools:6[linguist]
+ )
+ test? (
+ $(python_gen_any_dep '
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ ')
+ )
+"
+RDEPEND="
+ ${RDEPEND}
+ gui? ( virtual/freedesktop-icon-theme )
+ selinux? ( sec-policy/selinux-wireshark )
+"
+
+if [[ ${PV} != *9999* ]] ; then
+ BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-wireshark )"
+fi
+
+PATCHES=(
+ "${FILESDIR}/4.4.6-lto.patch"
+ "${FILESDIR}/4.6.2-gnutls-pkcs11.patch"
+ "${FILESDIR}/4.6.5-disable-sidebar.patch"
+ "${FILESDIR}/4.6.5-remove-unused-variable.patch"
+)
+
+python_check_deps() {
+ use test || return 0
+
+ python_has_version -b "dev-python/pytest[${PYTHON_USEDEP}]" &&
+ python_has_version -b "dev-python/pytest-xdist[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ use lua && lua-single_pkg_setup
+
+ python-any-r1_pkg_setup
+}
+
+src_unpack() {
+ if [[ ${PV} == *9999* ]] ; then
+ git-r3_src_unpack
+ else
+ if use verify-sig ; then
+ cd "${DISTDIR}" || die
+ verify-sig_verify_signed_checksums \
+ ${P}-signatures.txt \
+ openssl-dgst \
+ ${P}.tar.xz
+ cd "${WORKDIR}" || die
+ fi
+
+ default
+ fi
+}
+
+src_prepare() {
+ # since 4.6.5 the Lua version is found "automatically" and can no longer
+ # be passed in via LUA_FIND_VERSIONS, so we override the search list.
+ if use lua; then
+ sed -i "s/set(LUA_VERSIONS5 5.5 5.4 5.3 5.2 5.1 5.0)/set(LUA_VERSIONS5 ${ELUA#lua})/g" \
+ cmake/modules/FindLua.cmake || die
+ fi
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs
+
+ python_setup
+
+ mycmakeargs+=(
+ -DPython3_EXECUTABLE="${PYTHON}"
+ -DCMAKE_DISABLE_FIND_PACKAGE_{Asciidoctor,DOXYGEN}=$(usex !doc)
+
+ # Force bundled lemon (bug 933119)
+ -DLEMON_EXECUTABLE=
+
+ -DRPMBUILD_EXECUTABLE=
+ -DGIT_EXECUTABLE=
+ -DENABLE_CCACHE=OFF
+
+ $(use androiddump && use pcap && echo -DEXTCAP_ANDROIDDUMP_LIBPCAP=yes)
+ $(usex gui LRELEASE=$(qt6_get_bindir)/lrelease '')
+ $(usex gui MOC=$(qt6_get_bindir)/moc '')
+ $(usex gui RCC=$(qt6_get_bindir)/rcc '')
+ $(usex gui UIC=$(qt6_get_bindir)/uic '')
+
+ -DBUILD_androiddump=$(usex androiddump)
+ -DBUILD_capinfos=$(usex capinfos)
+ -DBUILD_captype=$(usex captype)
+ -DBUILD_ciscodump=$(usex ciscodump)
+ -DBUILD_dftest=$(usex dftest)
+ -DBUILD_dpauxmon=$(usex dpauxmon)
+ -DBUILD_dumpcap=$(usex dumpcap)
+ -DBUILD_editcap=$(usex editcap)
+ -DBUILD_mergecap=$(usex mergecap)
+ -DBUILD_mmdbresolve=$(usex maxminddb)
+ -DBUILD_randpkt=$(usex randpkt)
+ -DBUILD_randpktdump=$(usex randpktdump)
+ -DBUILD_reordercap=$(usex reordercap)
+ -DBUILD_sdjournal=$(usex sdjournal)
+ -DBUILD_sharkd=$(usex sharkd)
+ -DBUILD_sshdump=$(usex sshdump)
+ -DBUILD_text2pcap=$(usex text2pcap)
+ -DBUILD_tfshark=OFF
+ -DBUILD_tshark=$(usex tshark)
+ -DBUILD_udpdump=$(usex udpdump)
+
+ -DBUILD_wireshark=$(usex gui)
+ -DUSE_qt6=$(usex gui)
+
+ -DENABLE_WERROR=OFF
+ -DENABLE_BCG729=$(usex bcg729)
+ -DENABLE_BROTLI=$(usex brotli)
+ -DENABLE_CAP=$(usex filecaps caps)
+ -DENABLE_GNUTLS=$(usex ssl)
+ -DENABLE_PKCS11=$(usex pkcs11)
+ -DENABLE_ILBC=$(usex ilbc)
+ -DENABLE_KERBEROS=$(usex kerberos)
+ -DENABLE_LUA=$(usex lua)
+ -DENABLE_LZ4=$(usex lz4)
+ -DENABLE_MINIZIP=$(usex minizip)
+ -DENABLE_MINIZIPNG=OFF
+ -DENABLE_NETLINK=$(usex netlink)
+ -DENABLE_NGHTTP2=$(usex http2)
+ -DENABLE_NGHTTP3=$(usex http3)
+ -DENABLE_OPUS=$(usex opus)
+ -DENABLE_PCAP=$(usex pcap)
+ -DENABLE_PLUGINS=$(usex plugins)
+ -DENABLE_PLUGIN_IFDEMO=OFF
+ -DENABLE_SBC=$(usex sbc)
+ -DENABLE_SMI=$(usex smi)
+ -DENABLE_SNAPPY=$(usex snappy)
+ -DENABLE_SPANDSP=$(usex spandsp)
+ -DBUILD_wifidump=$(usex wifi)
+ -DENABLE_XXHASH=$(usex xxhash)
+ -DENABLE_ZLIB=$(usex zlib)
+ -DENABLE_ZLIBNG=OFF
+ -DENABLE_ZSTD=$(usex zstd)
+ )
+
+ tc-is-lto && mycmakeargs+=( -DENABLE_LTO=ON )
+
+ cmake_src_configure
+}
+
+src_test() {
+ cmake_build test-programs
+
+ # https://www.wireshark.org/docs/wsdg_html_chunked/ChTestsRunPytest.html
+ epytest \
+ --disable-capture \
+ --skip-missing-programs=all \
+ --program-path "${BUILD_DIR}"/run
+}
+
+src_install() {
+ # bug #928577
+ # https://gitlab.com/wireshark/wireshark/-/commit/fe7bfdf6caac9204ab5f34eeba7b0f4a0314d3cd
+ cmake_src_install install-headers
+
+ if ! use doc; then
+ # prepare Relase Notes redirector (bug #939195)
+ local relnotes="doc/Wireshark Release Notes.html"
+
+ # by default create a link for our specific version
+ local relversion="wireshark-${PV}.html"
+
+ # for 9999 we link to the release notes index page
+ if [[ ${PV} == *_rc* ]] || [[ ${PV} == *9999* ]] ; then
+ relversion=""
+ fi
+
+ # patch version into redirector & install it
+ sed -e "s/#VERSION#/${relversion}/g" < "${FILESDIR}/release-notes.html" > "${relnotes}" || die
+ dodoc "${relnotes}"
+ fi
+
+ # FAQ is not required as is installed from help/faq.txt
+ dodoc AUTHORS ChangeLog README* doc/randpkt.txt doc/README*
+
+ # install headers
+ insinto /usr/include/wireshark
+ doins "${BUILD_DIR}"/config.h
+
+ # If trying to remove this, try build e.g. libvirt first!
+ # At last check, Fedora is still doing this too.
+ local dir dirs=(
+ epan
+ epan/crypt
+ epan/dfilter
+ epan/dissectors
+ epan/ftypes
+ wiretap
+ wsutil
+ wsutil/wmem
+ )
+
+ for dir in "${dirs[@]}" ; do
+ insinto /usr/include/wireshark/${dir}
+ doins ${dir}/*.h
+ done
+
+ if use gui ; then
+ local s
+
+ for s in 16 32 48 64 128 256 512 1024 ; do
+ insinto /usr/share/icons/hicolor/${s}x${s}/apps
+ newins resources/icons/wsicon${s}.png wireshark.png
+ done
+
+ for s in 16 24 32 48 64 128 256 ; do
+ insinto /usr/share/icons/hicolor/${s}x${s}/mimetypes
+ newins resources/icons//WiresharkDoc-${s}.png application-vnd.tcpdump.pcap.png
+ done
+ fi
+
+ if [[ -d "${ED}"/usr/share/appdata ]] ; then
+ rm -r "${ED}"/usr/share/appdata || die
+ fi
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ # Add group for users allowed to sniff.
+ chgrp pcap "${EROOT}"/usr/bin/dumpcap
+
+ if use dumpcap && use pcap ; then
+ fcaps -o 0 -g pcap -m 4710 -M 0710 \
+ cap_dac_read_search,cap_net_raw,cap_net_admin \
+ "${EROOT}"/usr/bin/dumpcap
+ fi
+
+ ewarn "NOTE: To capture traffic with wireshark as normal user you have to"
+ ewarn "add yourself to the pcap group. This security measure ensures"
+ ewarn "that only trusted users are allowed to sniff your traffic."
+
+ if use gui; then
+ einfo "Since version 4.6.5 Wireshark's Welcome page shows a sidebar"
+ einfo "with links to documentation, ads, sponsors and various other"
+ einfo "community resources. This feature was merged prematurely and"
+ einfo "cannot (yet) be disabled in Preferences, so we decided to disable"
+ einfo "it by default. If you already started 4.6.5 and see the sidebar,"
+ einfo "you can edit the gui.welcome_page.sidebar.* keys in the"
+ einfo "recent_common file located in ~/.wireshark (old location)"
+ einfo "or ~/.config/wireshark (new location)."
+ einfo "Make sure that Wireshark is not running when editing the file."
+ fi
+}
diff --git a/net-analyzer/wireshark/wireshark-4.6.6.ebuild b/net-analyzer/wireshark/wireshark-4.6.6.ebuild
new file mode 100644
index 000000000000..eeff9cbfa0d4
--- /dev/null
+++ b/net-analyzer/wireshark/wireshark-4.6.6.ebuild
@@ -0,0 +1,338 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-{1,3,4} luajit )
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit fcaps lua-single python-any-r1 qmake-utils toolchain-funcs xdg cmake
+
+DESCRIPTION="Network protocol analyzer (sniffer)"
+HOMEPAGE="https://www.wireshark.org/"
+
+if [[ ${PV} == *9999* ]] ; then
+ EGIT_REPO_URI="https://gitlab.com/wireshark/wireshark.git"
+ inherit git-r3
+else
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/wireshark.asc
+ inherit verify-sig
+
+ SRC_URI="https://www.wireshark.org/download/src/all-versions/${P/_/}.tar.xz"
+ SRC_URI+=" verify-sig? ( https://www.wireshark.org/download/SIGNATURES-${PV/_/}.txt -> ${P}-signatures.txt )"
+ S="${WORKDIR}/${P/_/}"
+
+ if [[ ${PV} != *_rc* ]] ; then
+ KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc64 ~riscv ~x86"
+ fi
+fi
+
+LICENSE="GPL-2"
+SLOT="0/${PV}"
+IUSE="androiddump bcg729 brotli +capinfos +captype ciscodump +dftest doc dpauxmon"
+IUSE+=" +dumpcap +editcap +gui http2 http3 ilbc kerberos lua lz4 maxminddb"
+IUSE+=" +mergecap +minizip +netlink opus pkcs11 +plugins +pcap +randpkt"
+IUSE+=" +randpktdump +reordercap sbc selinux +sharkd smi snappy spandsp sshdump ssl"
+IUSE+=" sdjournal test +text2pcap +tshark +udpdump wifi xxhash zlib +zstd"
+
+REQUIRED_USE="
+ lua? ( ${LUA_REQUIRED_USE} )
+"
+
+RESTRICT="!test? ( test )"
+
+# bug #753062 for speexdsp
+RDEPEND="
+ acct-group/pcap
+ >=dev-libs/glib-2.50.0:2
+ dev-libs/libpcre2:=
+ dev-libs/libxml2:=
+ >=net-dns/c-ares-1.13.0:=
+ >=dev-libs/libgcrypt-1.8.0:=
+ media-libs/speexdsp
+ bcg729? ( media-libs/bcg729 )
+ brotli? ( app-arch/brotli:= )
+ ciscodump? ( >=net-libs/libssh-0.6:= )
+ filecaps? ( sys-libs/libcap )
+ http2? ( >=net-libs/nghttp2-1.11.0:= )
+ http3? ( net-libs/nghttp3 )
+ ilbc? ( media-libs/libilbc:= )
+ kerberos? ( virtual/krb5 )
+ lua? ( ${LUA_DEPS} )
+ lz4? ( app-arch/lz4:= )
+ maxminddb? ( dev-libs/libmaxminddb:= )
+ minizip? ( virtual/minizip:= )
+ netlink? ( dev-libs/libnl:3 )
+ opus? ( media-libs/opus )
+ pcap? ( net-libs/libpcap )
+ gui? (
+ dev-qt/qtbase:6[concurrent,gui,widgets]
+ dev-qt/qt5compat:6
+ dev-qt/qtmultimedia:6
+ x11-misc/xdg-utils
+ )
+ sbc? ( media-libs/sbc )
+ sdjournal? ( sys-apps/systemd:= )
+ smi? ( net-libs/libsmi )
+ snappy? ( app-arch/snappy:= )
+ spandsp? ( media-libs/spandsp:= )
+ sshdump? ( >=net-libs/libssh-0.6:= )
+ ssl? ( >=net-libs/gnutls-3.5.8:=[pkcs11?] )
+ wifi? ( >=net-libs/libssh-0.6:= )
+ xxhash? ( dev-libs/xxhash )
+ zlib? ( virtual/zlib:= )
+ zstd? ( app-arch/zstd:= )
+"
+DEPEND="
+ ${RDEPEND}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ dev-lang/perl
+ app-alternatives/lex
+ sys-devel/gettext
+ virtual/pkgconfig
+ doc? (
+ app-text/doxygen
+ dev-ruby/asciidoctor
+ dev-libs/libxslt
+ )
+ gui? (
+ dev-qt/qttools:6[linguist]
+ )
+ test? (
+ $(python_gen_any_dep '
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ ')
+ )
+"
+RDEPEND="
+ ${RDEPEND}
+ gui? ( virtual/freedesktop-icon-theme )
+ selinux? ( sec-policy/selinux-wireshark )
+"
+
+if [[ ${PV} != *9999* ]] ; then
+ BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-wireshark )"
+fi
+
+PATCHES=(
+ "${FILESDIR}/4.4.6-lto.patch"
+ "${FILESDIR}/4.6.2-gnutls-pkcs11.patch"
+)
+
+python_check_deps() {
+ use test || return 0
+
+ python_has_version -b "dev-python/pytest[${PYTHON_USEDEP}]" &&
+ python_has_version -b "dev-python/pytest-xdist[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ use lua && lua-single_pkg_setup
+
+ python-any-r1_pkg_setup
+}
+
+src_unpack() {
+ if [[ ${PV} == *9999* ]] ; then
+ git-r3_src_unpack
+ else
+ if use verify-sig ; then
+ cd "${DISTDIR}" || die
+ verify-sig_verify_signed_checksums \
+ ${P}-signatures.txt \
+ openssl-dgst \
+ ${P}.tar.xz
+ cd "${WORKDIR}" || die
+ fi
+
+ default
+ fi
+}
+
+src_prepare() {
+ # since 4.6.5 the Lua version is found "automatically" and can no longer
+ # be passed in via LUA_FIND_VERSIONS, so we override the search list.
+ if use lua; then
+ sed -i "s/set(LUA_VERSIONS5 5.5 5.4 5.3 5.2 5.1 5.0)/set(LUA_VERSIONS5 ${ELUA#lua})/g" \
+ cmake/modules/FindLua.cmake || die
+ fi
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs
+
+ python_setup
+
+ mycmakeargs+=(
+ -DPython3_EXECUTABLE="${PYTHON}"
+ -DCMAKE_DISABLE_FIND_PACKAGE_{Asciidoctor,DOXYGEN}=$(usex !doc)
+
+ # Force bundled lemon (bug 933119)
+ -DLEMON_EXECUTABLE=
+
+ -DRPMBUILD_EXECUTABLE=
+ -DGIT_EXECUTABLE=
+ -DENABLE_CCACHE=OFF
+
+ $(use androiddump && use pcap && echo -DEXTCAP_ANDROIDDUMP_LIBPCAP=yes)
+ $(usex gui LRELEASE=$(qt6_get_bindir)/lrelease '')
+ $(usex gui MOC=$(qt6_get_bindir)/moc '')
+ $(usex gui RCC=$(qt6_get_bindir)/rcc '')
+ $(usex gui UIC=$(qt6_get_bindir)/uic '')
+
+ -DBUILD_androiddump=$(usex androiddump)
+ -DBUILD_capinfos=$(usex capinfos)
+ -DBUILD_captype=$(usex captype)
+ -DBUILD_ciscodump=$(usex ciscodump)
+ -DBUILD_dftest=$(usex dftest)
+ -DBUILD_dpauxmon=$(usex dpauxmon)
+ -DBUILD_dumpcap=$(usex dumpcap)
+ -DBUILD_editcap=$(usex editcap)
+ -DBUILD_mergecap=$(usex mergecap)
+ -DBUILD_mmdbresolve=$(usex maxminddb)
+ -DBUILD_randpkt=$(usex randpkt)
+ -DBUILD_randpktdump=$(usex randpktdump)
+ -DBUILD_reordercap=$(usex reordercap)
+ -DBUILD_sdjournal=$(usex sdjournal)
+ -DBUILD_sharkd=$(usex sharkd)
+ -DBUILD_sshdump=$(usex sshdump)
+ -DBUILD_text2pcap=$(usex text2pcap)
+ -DBUILD_tfshark=OFF
+ -DBUILD_tshark=$(usex tshark)
+ -DBUILD_udpdump=$(usex udpdump)
+
+ -DBUILD_wireshark=$(usex gui)
+ -DUSE_qt6=$(usex gui)
+
+ -DENABLE_WERROR=OFF
+ -DENABLE_BCG729=$(usex bcg729)
+ -DENABLE_BROTLI=$(usex brotli)
+ -DENABLE_CAP=$(usex filecaps caps)
+ -DENABLE_GNUTLS=$(usex ssl)
+ -DENABLE_PKCS11=$(usex pkcs11)
+ -DENABLE_ILBC=$(usex ilbc)
+ -DENABLE_KERBEROS=$(usex kerberos)
+ -DENABLE_LUA=$(usex lua)
+ -DENABLE_LZ4=$(usex lz4)
+ -DENABLE_MINIZIP=$(usex minizip)
+ -DENABLE_MINIZIPNG=OFF
+ -DENABLE_NETLINK=$(usex netlink)
+ -DENABLE_NGHTTP2=$(usex http2)
+ -DENABLE_NGHTTP3=$(usex http3)
+ -DENABLE_OPUS=$(usex opus)
+ -DENABLE_PCAP=$(usex pcap)
+ -DENABLE_PLUGINS=$(usex plugins)
+ -DENABLE_PLUGIN_IFDEMO=OFF
+ -DENABLE_SBC=$(usex sbc)
+ -DENABLE_SMI=$(usex smi)
+ -DENABLE_SNAPPY=$(usex snappy)
+ -DENABLE_SPANDSP=$(usex spandsp)
+ -DBUILD_wifidump=$(usex wifi)
+ -DENABLE_XXHASH=$(usex xxhash)
+ -DENABLE_ZLIB=$(usex zlib)
+ -DENABLE_ZLIBNG=OFF
+ -DENABLE_ZSTD=$(usex zstd)
+ )
+
+ tc-is-lto && mycmakeargs+=( -DENABLE_LTO=ON )
+
+ cmake_src_configure
+}
+
+src_test() {
+ cmake_build test-programs
+
+ # https://www.wireshark.org/docs/wsdg_html_chunked/ChTestsRunPytest.html
+ epytest \
+ --disable-capture \
+ --skip-missing-programs=all \
+ --program-path "${BUILD_DIR}"/run
+}
+
+src_install() {
+ # bug #928577
+ # https://gitlab.com/wireshark/wireshark/-/commit/fe7bfdf6caac9204ab5f34eeba7b0f4a0314d3cd
+ cmake_src_install install-headers
+
+ if ! use doc; then
+ # prepare Relase Notes redirector (bug #939195)
+ local relnotes="doc/Wireshark Release Notes.html"
+
+ # by default create a link for our specific version
+ local relversion="wireshark-${PV}.html"
+
+ # for 9999 we link to the release notes index page
+ if [[ ${PV} == *_rc* ]] || [[ ${PV} == *9999* ]] ; then
+ relversion=""
+ fi
+
+ # patch version into redirector & install it
+ sed -e "s/#VERSION#/${relversion}/g" < "${FILESDIR}/release-notes.html" > "${relnotes}" || die
+ dodoc "${relnotes}"
+ fi
+
+ # FAQ is not required as is installed from help/faq.txt
+ dodoc AUTHORS ChangeLog README* doc/randpkt.txt doc/README*
+
+ # install headers
+ insinto /usr/include/wireshark
+ doins "${BUILD_DIR}"/config.h
+
+ # If trying to remove this, try build e.g. libvirt first!
+ # At last check, Fedora is still doing this too.
+ local dir dirs=(
+ epan
+ epan/crypt
+ epan/dfilter
+ epan/dissectors
+ epan/ftypes
+ wiretap
+ wsutil
+ wsutil/wmem
+ )
+
+ for dir in "${dirs[@]}" ; do
+ insinto /usr/include/wireshark/${dir}
+ doins ${dir}/*.h
+ done
+
+ if use gui ; then
+ local s
+
+ for s in 16 32 48 64 128 256 512 1024 ; do
+ insinto /usr/share/icons/hicolor/${s}x${s}/apps
+ newins resources/icons/wsicon${s}.png wireshark.png
+ done
+
+ for s in 16 24 32 48 64 128 256 ; do
+ insinto /usr/share/icons/hicolor/${s}x${s}/mimetypes
+ newins resources/icons/WiresharkDoc-${s}.png application-vnd.tcpdump.pcap.png
+ done
+ fi
+
+ if [[ -d "${ED}"/usr/share/appdata ]] ; then
+ rm -r "${ED}"/usr/share/appdata || die
+ fi
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ # Add group for users allowed to sniff.
+ chgrp pcap "${EROOT}"/usr/bin/dumpcap
+
+ if use dumpcap && use pcap ; then
+ fcaps -o 0 -g pcap -m 4710 -M 0710 \
+ cap_dac_read_search,cap_net_raw,cap_net_admin \
+ "${EROOT}"/usr/bin/dumpcap
+ fi
+
+ ewarn "NOTE: To capture traffic with wireshark as normal user you have to"
+ ewarn "add yourself to the pcap group. This security measure ensures"
+ ewarn "that only trusted users are allowed to sniff your traffic."
+}
diff --git a/net-analyzer/wireshark/wireshark-9999.ebuild b/net-analyzer/wireshark/wireshark-9999.ebuild
new file mode 100644
index 000000000000..0ed52f98146d
--- /dev/null
+++ b/net-analyzer/wireshark/wireshark-9999.ebuild
@@ -0,0 +1,337 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-{1,3,4} luajit )
+PYTHON_COMPAT=( python3_{13..14} )
+
+inherit fcaps lua-single python-any-r1 qmake-utils toolchain-funcs xdg cmake
+
+DESCRIPTION="Network protocol analyzer (sniffer)"
+HOMEPAGE="https://www.wireshark.org/"
+
+if [[ ${PV} == *9999* ]] ; then
+ EGIT_REPO_URI="https://gitlab.com/wireshark/wireshark.git"
+ inherit git-r3
+else
+ VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/wireshark.asc
+ inherit verify-sig
+
+ SRC_URI="https://www.wireshark.org/download/src/all-versions/${P/_/}.tar.xz"
+ SRC_URI+=" verify-sig? ( https://www.wireshark.org/download/SIGNATURES-${PV/_/}.txt -> ${P}-signatures.txt )"
+ S="${WORKDIR}/${P/_/}"
+
+ if [[ ${PV} != *_rc* ]] ; then
+ KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc64 ~riscv ~x86"
+ fi
+fi
+
+LICENSE="GPL-2"
+SLOT="0/${PV}"
+IUSE="androiddump bcg729 brotli +capinfos +captype ciscodump +dftest doc dpauxmon"
+IUSE+=" +dumpcap +editcap +gui http2 http3 ilbc kerberos lua lz4 maxminddb"
+IUSE+=" +mergecap +minizip +netlink opus pkcs11 +plugins +pcap +randpkt"
+IUSE+=" +randpktdump +reordercap sbc selinux +sharkd smi snappy spandsp sshdump ssl"
+IUSE+=" sdjournal test +text2pcap +tshark +udpdump wifi xxhash zlib +zstd"
+
+REQUIRED_USE="
+ lua? ( ${LUA_REQUIRED_USE} )
+"
+
+RESTRICT="!test? ( test )"
+
+# bug #753062 for speexdsp
+RDEPEND="
+ acct-group/pcap
+ >=dev-libs/glib-2.50.0:2
+ dev-libs/libpcre2:=
+ dev-libs/libxml2:=
+ >=net-dns/c-ares-1.13.0:=
+ >=dev-libs/libgcrypt-1.8.0:=
+ media-libs/speexdsp
+ bcg729? ( media-libs/bcg729 )
+ brotli? ( app-arch/brotli:= )
+ ciscodump? ( >=net-libs/libssh-0.6:= )
+ filecaps? ( sys-libs/libcap )
+ http2? ( >=net-libs/nghttp2-1.11.0:= )
+ http3? ( net-libs/nghttp3 )
+ ilbc? ( media-libs/libilbc:= )
+ kerberos? ( virtual/krb5 )
+ lua? ( ${LUA_DEPS} )
+ lz4? ( app-arch/lz4:= )
+ maxminddb? ( dev-libs/libmaxminddb:= )
+ minizip? ( virtual/minizip:= )
+ netlink? ( dev-libs/libnl:3 )
+ opus? ( media-libs/opus )
+ pcap? ( net-libs/libpcap )
+ gui? (
+ dev-qt/qtbase:6[concurrent,gui,widgets]
+ dev-qt/qt5compat:6
+ dev-qt/qtmultimedia:6
+ x11-misc/xdg-utils
+ )
+ sbc? ( media-libs/sbc )
+ sdjournal? ( sys-apps/systemd:= )
+ smi? ( net-libs/libsmi )
+ snappy? ( app-arch/snappy:= )
+ spandsp? ( media-libs/spandsp:= )
+ sshdump? ( >=net-libs/libssh-0.6:= )
+ ssl? ( >=net-libs/gnutls-3.5.8:=[pkcs11?] )
+ wifi? ( >=net-libs/libssh-0.6:= )
+ xxhash? ( dev-libs/xxhash )
+ zlib? ( virtual/zlib:= )
+ zstd? ( app-arch/zstd:= )
+"
+DEPEND="
+ ${RDEPEND}
+"
+BDEPEND="
+ ${PYTHON_DEPS}
+ dev-lang/perl
+ app-alternatives/lex
+ sys-devel/gettext
+ virtual/pkgconfig
+ doc? (
+ app-text/doxygen
+ dev-ruby/asciidoctor
+ dev-libs/libxslt
+ )
+ gui? (
+ dev-qt/qttools:6[linguist]
+ )
+ test? (
+ $(python_gen_any_dep '
+ dev-python/pytest[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ ')
+ )
+"
+RDEPEND="
+ ${RDEPEND}
+ gui? ( virtual/freedesktop-icon-theme )
+ selinux? ( sec-policy/selinux-wireshark )
+"
+
+if [[ ${PV} != *9999* ]] ; then
+ BDEPEND+=" verify-sig? ( sec-keys/openpgp-keys-wireshark )"
+fi
+
+PATCHES=(
+ "${FILESDIR}/4.4.6-lto.patch"
+)
+
+python_check_deps() {
+ use test || return 0
+
+ python_has_version -b "dev-python/pytest[${PYTHON_USEDEP}]" &&
+ python_has_version -b "dev-python/pytest-xdist[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ use lua && lua-single_pkg_setup
+
+ python-any-r1_pkg_setup
+}
+
+src_unpack() {
+ if [[ ${PV} == *9999* ]] ; then
+ git-r3_src_unpack
+ else
+ if use verify-sig ; then
+ cd "${DISTDIR}" || die
+ verify-sig_verify_signed_checksums \
+ ${P}-signatures.txt \
+ openssl-dgst \
+ ${P}.tar.xz
+ cd "${WORKDIR}" || die
+ fi
+
+ default
+ fi
+}
+
+src_prepare() {
+ # since 4.6.5 the Lua version is found "automatically" and can no longer
+ # be passed in via LUA_FIND_VERSIONS, so we override the search list.
+ if use lua; then
+ sed -i "s/set(LUA_VERSIONS5 5.5 5.4 5.3 5.2 5.1 5.0)/set(LUA_VERSIONS5 ${ELUA#lua})/g" \
+ cmake/modules/FindLua.cmake || die
+ fi
+
+ cmake_src_prepare
+}
+
+src_configure() {
+ local mycmakeargs
+
+ python_setup
+
+ mycmakeargs+=(
+ -DPython3_EXECUTABLE="${PYTHON}"
+ -DCMAKE_DISABLE_FIND_PACKAGE_{Asciidoctor,DOXYGEN}=$(usex !doc)
+
+ # Force bundled lemon (bug 933119)
+ -DLEMON_EXECUTABLE=
+
+ -DRPMBUILD_EXECUTABLE=
+ -DGIT_EXECUTABLE=
+ -DENABLE_CCACHE=OFF
+
+ $(use androiddump && use pcap && echo -DEXTCAP_ANDROIDDUMP_LIBPCAP=yes)
+ $(usex gui LRELEASE=$(qt6_get_bindir)/lrelease '')
+ $(usex gui MOC=$(qt6_get_bindir)/moc '')
+ $(usex gui RCC=$(qt6_get_bindir)/rcc '')
+ $(usex gui UIC=$(qt6_get_bindir)/uic '')
+
+ -DBUILD_androiddump=$(usex androiddump)
+ -DBUILD_capinfos=$(usex capinfos)
+ -DBUILD_captype=$(usex captype)
+ -DBUILD_ciscodump=$(usex ciscodump)
+ -DBUILD_dftest=$(usex dftest)
+ -DBUILD_dpauxmon=$(usex dpauxmon)
+ -DBUILD_dumpcap=$(usex dumpcap)
+ -DBUILD_editcap=$(usex editcap)
+ -DBUILD_mergecap=$(usex mergecap)
+ -DBUILD_mmdbresolve=$(usex maxminddb)
+ -DBUILD_randpkt=$(usex randpkt)
+ -DBUILD_randpktdump=$(usex randpktdump)
+ -DBUILD_reordercap=$(usex reordercap)
+ -DBUILD_sdjournal=$(usex sdjournal)
+ -DBUILD_sharkd=$(usex sharkd)
+ -DBUILD_sshdump=$(usex sshdump)
+ -DBUILD_text2pcap=$(usex text2pcap)
+ -DBUILD_tfshark=OFF
+ -DBUILD_tshark=$(usex tshark)
+ -DBUILD_udpdump=$(usex udpdump)
+
+ -DBUILD_wireshark=$(usex gui)
+ -DUSE_qt6=$(usex gui)
+
+ -DENABLE_WERROR=OFF
+ -DENABLE_BCG729=$(usex bcg729)
+ -DENABLE_BROTLI=$(usex brotli)
+ -DENABLE_CAP=$(usex filecaps caps)
+ -DENABLE_GNUTLS=$(usex ssl)
+ -DENABLE_PKCS11=$(usex pkcs11)
+ -DENABLE_ILBC=$(usex ilbc)
+ -DENABLE_KERBEROS=$(usex kerberos)
+ -DENABLE_LUA=$(usex lua)
+ -DENABLE_LZ4=$(usex lz4)
+ -DENABLE_MINIZIP=$(usex minizip)
+ -DENABLE_MINIZIPNG=OFF
+ -DENABLE_NETLINK=$(usex netlink)
+ -DENABLE_NGHTTP2=$(usex http2)
+ -DENABLE_NGHTTP3=$(usex http3)
+ -DENABLE_OPUS=$(usex opus)
+ -DENABLE_PCAP=$(usex pcap)
+ -DENABLE_PLUGINS=$(usex plugins)
+ -DENABLE_PLUGIN_IFDEMO=OFF
+ -DENABLE_SBC=$(usex sbc)
+ -DENABLE_SMI=$(usex smi)
+ -DENABLE_SNAPPY=$(usex snappy)
+ -DENABLE_SPANDSP=$(usex spandsp)
+ -DBUILD_wifidump=$(usex wifi)
+ -DENABLE_XXHASH=$(usex xxhash)
+ -DENABLE_ZLIB=$(usex zlib)
+ -DENABLE_ZLIBNG=OFF
+ -DENABLE_ZSTD=$(usex zstd)
+ )
+
+ tc-is-lto && mycmakeargs+=( -DENABLE_LTO=ON )
+
+ cmake_src_configure
+}
+
+src_test() {
+ cmake_build test-programs
+
+ # https://www.wireshark.org/docs/wsdg_html_chunked/ChTestsRunPytest.html
+ epytest \
+ --disable-capture \
+ --skip-missing-programs=all \
+ --program-path "${BUILD_DIR}"/run
+}
+
+src_install() {
+ # bug #928577
+ # https://gitlab.com/wireshark/wireshark/-/commit/fe7bfdf6caac9204ab5f34eeba7b0f4a0314d3cd
+ cmake_src_install install-headers
+
+ if ! use doc; then
+ # prepare Relase Notes redirector (bug #939195)
+ local relnotes="doc/Wireshark Release Notes.html"
+
+ # by default create a link for our specific version
+ local relversion="wireshark-${PV}.html"
+
+ # for 9999 we link to the release notes index page
+ if [[ ${PV} == *_rc* ]] || [[ ${PV} == *9999* ]] ; then
+ relversion=""
+ fi
+
+ # patch version into redirector & install it
+ sed -e "s/#VERSION#/${relversion}/g" < "${FILESDIR}/release-notes.html" > "${relnotes}" || die
+ dodoc "${relnotes}"
+ fi
+
+ # FAQ is not required as is installed from help/faq.txt
+ dodoc AUTHORS ChangeLog README* doc/randpkt.txt doc/README*
+
+ # install headers
+ insinto /usr/include/wireshark
+ doins "${BUILD_DIR}"/config.h
+
+ # If trying to remove this, try build e.g. libvirt first!
+ # At last check, Fedora is still doing this too.
+ local dir dirs=(
+ epan
+ epan/crypt
+ epan/dfilter
+ epan/dissectors
+ epan/ftypes
+ wiretap
+ wsutil
+ wsutil/wmem
+ )
+
+ for dir in "${dirs[@]}" ; do
+ insinto /usr/include/wireshark/${dir}
+ doins ${dir}/*.h
+ done
+
+ if use gui ; then
+ local s
+
+ for s in 16 32 48 64 256 ; do
+ insinto /usr/share/icons/hicolor/${s}x${s}/apps
+ newins resources/icons/wsicon${s}.png wireshark.png
+ done
+
+ for s in 16 24 32 48 64 128 256 ; do
+ insinto /usr/share/icons/hicolor/${s}x${s}/mimetypes
+ newins resources/icons/WiresharkDoc-${s}.png application-vnd.tcpdump.pcap.png
+ done
+ fi
+
+ if [[ -d "${ED}"/usr/share/appdata ]] ; then
+ rm -r "${ED}"/usr/share/appdata || die
+ fi
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+
+ # Add group for users allowed to sniff.
+ chgrp pcap "${EROOT}"/usr/bin/dumpcap
+
+ if use dumpcap && use pcap ; then
+ fcaps -o 0 -g pcap -m 4710 -M 0710 \
+ cap_dac_read_search,cap_net_raw,cap_net_admin \
+ "${EROOT}"/usr/bin/dumpcap
+ fi
+
+ ewarn "NOTE: To capture traffic with wireshark as normal user you have to"
+ ewarn "add yourself to the pcap group. This security measure ensures"
+ ewarn "that only trusted users are allowed to sniff your traffic."
+}
diff --git a/net-analyzer/wtfis/Manifest b/net-analyzer/wtfis/Manifest
new file mode 100644
index 000000000000..af4487e57fa2
--- /dev/null
+++ b/net-analyzer/wtfis/Manifest
@@ -0,0 +1,2 @@
+DIST wtfis-0.14.0.gh.tar.gz 590717 BLAKE2B 66ae94d2002610883eba8a0b794200fe9a40b164f8cbd95c1b8eca762217b4f02fc3cd6c9f719dbb01af7bb19e236ed9098248f704cdee0c2fc54357ce79320a SHA512 db4a01d775a1beb61ccb1a5cb6307291802a0ac13ac5681d442426a003e162fcde37bc841c4e995ae60d9001c55d4f091de2454ebca3f1f705ddf32a9480989a
+DIST wtfis-0.15.0.gh.tar.gz 591190 BLAKE2B 099002606ae893a0f5c52e5bccc497c835e1111e3e56f8d667e564b4d2fcac524f178693c30f512f6abc9c6886b4f0d30d18e5698d92d1df2506ec83d01cbc67 SHA512 81495b3ed4f96d03b468ec57b7d37e26193df139d7a78ddaa11aa0d8c8898129f9be2769708265be74f884230e116b29b07d06d65e4889f881740e0fb1c28488
diff --git a/net-analyzer/wtfis/metadata.xml b/net-analyzer/wtfis/metadata.xml
new file mode 100644
index 000000000000..ecfa64b0a92c
--- /dev/null
+++ b/net-analyzer/wtfis/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person" proxied="yes">
+ <email>mario.haustein@hrz.tu-chemnitz.de</email>
+ <name>Mario Haustein</name>
+ </maintainer>
+ <maintainer type="project" proxied="proxy">
+ <email>proxy-maint@gentoo.org</email>
+ <name>Proxy Maintainers</name>
+ </maintainer>
+ <longdescription>
+ wtfis is a commandline tool that gathers information about a domain,
+ FQDN or IP address using various OSINT services. Unlike other tools of
+ its kind, it's built specifically for human consumption, providing
+ results that are pretty (YMMV) and easy to read and understand.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/wtfis/wtfis-0.14.0.ebuild b/net-analyzer/wtfis/wtfis-0.14.0.ebuild
new file mode 100644
index 000000000000..78c92d2d0d8f
--- /dev/null
+++ b/net-analyzer/wtfis/wtfis-0.14.0.ebuild
@@ -0,0 +1,37 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{13..14} )
+inherit distutils-r1
+
+DESCRIPTION="Passive hostname, domain and IP lookup tool for non-robots"
+HOMEPAGE="https://github.com/pirxthepilot/wtfis"
+
+if [[ ${PV} = "9999" ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/pirxthepilot/wtfis.git"
+else
+ SRC_URI="https://github.com/pirxthepilot/wtfis/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz"
+ KEYWORDS="amd64 ~loong x86"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND="
+ >=dev-python/pydantic-2.12.5[${PYTHON_USEDEP}]
+ >=dev-python/python-dotenv-1.1.0[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.32.3[${PYTHON_USEDEP}]
+ >=dev-python/rich-14.0.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/rich[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
diff --git a/net-analyzer/wtfis/wtfis-0.15.0.ebuild b/net-analyzer/wtfis/wtfis-0.15.0.ebuild
new file mode 100644
index 000000000000..5f3213d08026
--- /dev/null
+++ b/net-analyzer/wtfis/wtfis-0.15.0.ebuild
@@ -0,0 +1,37 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{13..14} )
+inherit distutils-r1
+
+DESCRIPTION="Passive hostname, domain and IP lookup tool for non-robots"
+HOMEPAGE="https://github.com/pirxthepilot/wtfis"
+
+if [[ ${PV} = "9999" ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/pirxthepilot/wtfis.git"
+else
+ SRC_URI="https://github.com/pirxthepilot/wtfis/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz"
+ KEYWORDS="~amd64 ~loong ~x86"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND="
+ >=dev-python/pydantic-2.12.5[${PYTHON_USEDEP}]
+ >=dev-python/python-dotenv-1.2.2[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.32.5[${PYTHON_USEDEP}]
+ >=dev-python/rich-14.3.3[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/rich[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
diff --git a/net-analyzer/wtfis/wtfis-9999.ebuild b/net-analyzer/wtfis/wtfis-9999.ebuild
new file mode 100644
index 000000000000..5f3213d08026
--- /dev/null
+++ b/net-analyzer/wtfis/wtfis-9999.ebuild
@@ -0,0 +1,37 @@
+# Copyright 2022-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{13..14} )
+inherit distutils-r1
+
+DESCRIPTION="Passive hostname, domain and IP lookup tool for non-robots"
+HOMEPAGE="https://github.com/pirxthepilot/wtfis"
+
+if [[ ${PV} = "9999" ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/pirxthepilot/wtfis.git"
+else
+ SRC_URI="https://github.com/pirxthepilot/wtfis/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz"
+ KEYWORDS="~amd64 ~loong ~x86"
+fi
+
+LICENSE="MIT"
+SLOT="0"
+
+RDEPEND="
+ >=dev-python/pydantic-2.12.5[${PYTHON_USEDEP}]
+ >=dev-python/python-dotenv-1.2.2[${PYTHON_USEDEP}]
+ >=dev-python/requests-2.32.5[${PYTHON_USEDEP}]
+ >=dev-python/rich-14.3.3[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/rich[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
diff --git a/net-analyzer/xnetload/Manifest b/net-analyzer/xnetload/Manifest
new file mode 100644
index 000000000000..015029559317
--- /dev/null
+++ b/net-analyzer/xnetload/Manifest
@@ -0,0 +1 @@
+DIST xnetload-1.11.3.tar.gz 24551 BLAKE2B f23ebc6609a2824f2b60aa045f505422df87ed21e622e4267f850f2d5954b312019d68a9738512e92f30e7f1745886743a82d3f08fcae1e1adff3acf4294ec6b SHA512 2008102c132ee96b12251b7c2475efcae7926bb16ba032f75d6be42650785fb707bed3696586369c04bb0e9434ee7854de585e7a015f1a15037a7f30c86036b7
diff --git a/net-analyzer/xnetload/files/xnetload-1.11.3-libdir.patch b/net-analyzer/xnetload/files/xnetload-1.11.3-libdir.patch
new file mode 100644
index 000000000000..3bfbd619c112
--- /dev/null
+++ b/net-analyzer/xnetload/files/xnetload-1.11.3-libdir.patch
@@ -0,0 +1,11 @@
+--- a/Makefile
++++ b/Makefile
+@@ -14,7 +14,7 @@ CC = gcc
+
+ # The next two lines are for building an optimized and stripped program.
+ CFLAGS += -Wall -DNDEBUG -I/usr/include
+-LFLAGS = $(LDFLAGS) -L/usr/lib
++LFLAGS = $(LDFLAGS)
+
+ # These three lines are for building Athlon optimized programs on my system.
+ #CC=gcc-3.1
diff --git a/net-analyzer/xnetload/metadata.xml b/net-analyzer/xnetload/metadata.xml
new file mode 100644
index 000000000000..def7802554eb
--- /dev/null
+++ b/net-analyzer/xnetload/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/xnetload/xnetload-1.11.3-r1.ebuild b/net-analyzer/xnetload/xnetload-1.11.3-r1.ebuild
new file mode 100644
index 000000000000..078059e31231
--- /dev/null
+++ b/net-analyzer/xnetload/xnetload-1.11.3-r1.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+DESCRIPTION="Displays a count and a graph of the traffic over a specified network connection"
+HOMEPAGE="https://www.xs4all.nl/~rsmith/software/"
+SRC_URI="https://www.xs4all.nl/~rsmith/software/${P}.tar.gz"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 ppc ppc64 ~sparc x86"
+
+DEPEND="
+ x11-libs/libX11
+ x11-libs/libXt
+ x11-libs/libXaw
+"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.11.3-libdir.patch"
+)
+
+src_prepare() {
+ sed -i \
+ -e 's;CFLAGS = -pipe -O2 -Wall;CFLAGS += -Wall;' \
+ -e 's;LFLAGS = -s -pipe;LFLAGS = $(LDFLAGS);' \
+ -e 's:gcc -MM:$(CC) -MM:' \
+ -e 's:/usr/X11R6:/usr:g' \
+ Makefile || die
+
+ default
+}
+
+src_compile() {
+ emake CC="$(tc-getCC)"
+}
+
+src_install() {
+ dobin xnetload
+ doman xnetload.1
+ dodoc ChangeLog README
+ insinto /usr/share/X11/app-defaults/
+ doins XNetload
+}
diff --git a/net-analyzer/xprobe/Manifest b/net-analyzer/xprobe/Manifest
new file mode 100644
index 000000000000..ac7fe80043b4
--- /dev/null
+++ b/net-analyzer/xprobe/Manifest
@@ -0,0 +1 @@
+DIST xprobe2-0.3.tar.gz 533636 BLAKE2B 1f106a3c08bfc6e205731a2e8c64f7e9f2e52caba38374ab7980fcae95113b6790297a59f5d4d6ad8e09d2145b68801403472b07690ff27b42dec8c6b7d97895 SHA512 fd499ada22be5df3e01630948cb72d1a9e648e0c7bfaf2a688386a61c67bb36a326a9e2f3f2b9960a6a49128343010aafe8a3f04ec05e89420a1384215e41f21
diff --git a/net-analyzer/xprobe/files/xprobe-0.3-clang.patch b/net-analyzer/xprobe/files/xprobe-0.3-clang.patch
new file mode 100644
index 000000000000..1ed7561a5380
--- /dev/null
+++ b/net-analyzer/xprobe/files/xprobe-0.3-clang.patch
@@ -0,0 +1,16 @@
+Clang: ISO C++17 does not allow register storage class specifier
+https://bugs.gentoo.org/897838
+--- a/libs-external/USI++/src/misc.cc
++++ b/libs-external/USI++/src/misc.cc
+@@ -18,9 +18,9 @@
+ in_cksum (unsigned short *ptr, int nbytes, bool may_pad)
+ {
+
+- register long sum; /* assumes long == 32 bits */
++ long sum; /* assumes long == 32 bits */
+ u_short oddbyte;
+- register u_short answer; /* assumes u_short == 16 bits */
++ u_short answer; /* assumes u_short == 16 bits */
+
+
+ /* For psuedo-headers: odd len's require
diff --git a/net-analyzer/xprobe/files/xprobe-0.3-cxx11.patch b/net-analyzer/xprobe/files/xprobe-0.3-cxx11.patch
new file mode 100644
index 000000000000..7ec38a9c2756
--- /dev/null
+++ b/net-analyzer/xprobe/files/xprobe-0.3-cxx11.patch
@@ -0,0 +1,11 @@
+--- a/src/defines.h.in
++++ b/src/defines.h.in
+@@ -24,7 +24,7 @@
+
+ #define VERSION "@VERSION@"
+ #define BANNER \
+-"\nXprobe2 v."VERSION\
++"\nXprobe2 v." VERSION \
+ " Copyright (c) 2002-2005 fyodor@o0o.nu, ofir@sys-security.com, meder@o0o.nu"\
+ "\n"
+
diff --git a/net-analyzer/xprobe/files/xprobe-0.3-demangle-output.patch b/net-analyzer/xprobe/files/xprobe-0.3-demangle-output.patch
new file mode 100644
index 000000000000..a63018a56bb1
--- /dev/null
+++ b/net-analyzer/xprobe/files/xprobe-0.3-demangle-output.patch
@@ -0,0 +1,156 @@
+https://github.com/dschwen/xprobe2/commit/1a8c68bc904bb1e971ec456aaff0879933a80e23
+https://bugs.gentoo.org/910424
+
+From 1a8c68bc904bb1e971ec456aaff0879933a80e23 Mon Sep 17 00:00:00 2001
+From: Daniel Schwen <daniel@schwen.de>
+Date: Mon, 22 Mar 2021 14:28:25 -0600
+Subject: [PATCH] Fix garbled output (#1)
+
+--- a/src/os_matrix.cc
++++ b/src/os_matrix.cc
+@@ -42,12 +42,12 @@ OS_Name::OS_Name(void) {
+ *******************
+ * returns FAIL is the OS already exist. os_id otherwise.
+ */
+-
++
+
+ int OS_Name::add_os(string &os_name) {
+
+ if (find_os(os_name) != FAIL) return FAIL; /* exist */
+-
++
+ osid_name.insert(pair<int, string>(id_count, os_name));
+ return (id_count++);
+ }
+@@ -58,7 +58,7 @@ int OS_Name::add_os(string &os_name) {
+ *******************
+ * returns FAIL is the OS does not exist. os_id otherwise.
+ */
+-
++
+
+ int OS_Name::find_os(string &os_name) {
+ map <int, string>::iterator osid_i;
+@@ -76,7 +76,7 @@ int OS_Name::find_os(string &os_name) {
+ *******************
+ * for debugging _ONLY_
+ */
+-
++
+
+ void OS_Name::list_oses(void) {
+ map <int, string>::iterator osid_i;
+@@ -94,18 +94,18 @@ void OS_Name::list_oses(void) {
+ *******************
+ * for debugging _ONLY_
+ */
+-
+
+
+-const string OS_Name::osid2str(int id) {
++
++const string & OS_Name::osid2str(int id) {
+ map <int, string>::iterator osid_i = osid_name.find(id);
+ if (osid_i != osid_name.end()) return ((*osid_i).second);
+ return ("BUG, PLEASE REPORT! :-)");
+ }
+-
++
+ /*
+ * OS_Vector stuff:
+- */
++ */
+ OS_Vector::OS_Vector(int new_os_id) {
+ os_id = new_os_id;
+ total = 0;
+@@ -148,18 +148,18 @@ int OS_Matrix::find_os_id(int os_id) {
+ if (os_id == osid_vec[i].get_os_id()) return i;
+ return -1;
+ }
+-
++
+ void OS_Matrix::add_result(int test_id, int os_id, int score, int times) {
+ int i;
+
+- xprobe_debug(XPROBE_DEBUG_OSMATRIX, "test_id: %i os_id: %i score: %i\n", test_id, os_id, score);
++ xprobe_debug(XPROBE_DEBUG_OSMATRIX, "test_id: %i os_id: %i score: %i\n", test_id, os_id, score);
+
+ if (find_os_id(os_id) == -1) /* if doesn't exist. we insert it
+ * first */
+ osid_vec.push_back(OS_Vector(os_id));
+
+ i = find_os_id(os_id);
+- while (times-- > 0) {
++ while (times-- > 0) {
+ osid_vec[i].add_result(test_id, score);
+ }
+ }
+@@ -173,7 +173,7 @@ int OS_Matrix::get_score(int os_id) {
+
+ int OS_Matrix::get_max_score(int os_id) {
+ int i = find_os_id(os_id);
+-
++
+ //return (xp_loaded_mods * XPROBE_MATCH_YES);
+ return (osid_vec[i].get_number_of_keywords() * XPROBE_MATCH_YES);
+
+@@ -181,12 +181,12 @@ int OS_Matrix::get_max_score(int os_id) {
+
+ int OS_Matrix::get_prcnt_score(int os_id) {
+
+- if (get_score(os_id) < 0) return 0;
++ if (get_score(os_id) < 0) return 0;
+ return get_score(os_id) * 100/get_max_score(os_id);
+
+ }
+
+-int OS_Matrix::get_top(int num) {
++int OS_Matrix::get_top(int num) {
+
+ sort(osid_vec.begin(), osid_vec.end(), os_vector_compare);
+
+@@ -194,5 +194,4 @@ int OS_Matrix::get_top(int num) {
+ return osid_vec[num].get_os_id();
+
+ return 0; /* out of range */
+-}
+-
++}
+--- a/src/os_matrix.h
++++ b/src/os_matrix.h
+@@ -44,9 +44,9 @@ class OS_Name {
+ int id_count;
+ public:
+ OS_Name(void);
+- const string osid2str(int);
++ const string & osid2str(int);
+ const char *osid2char(int id) {
+- string s = osid2str(id);
++ const string & s = osid2str(id);
+ return (s.c_str());
+ }
+ int add_os(string &os_name);
+@@ -54,7 +54,7 @@ class OS_Name {
+ void list_oses(void);
+ int get_osnum(void) { return id_count; }
+ };
+-
++
+
+ class OS_Vector {
+
+@@ -79,7 +79,7 @@ class OS_Matrix {
+ vector <OS_Vector> osid_vec;
+ int xp_loaded_mods;
+ int find_os_id(int);
+-
++
+ public:
+ OS_Matrix(int);
+ virtual ~OS_Matrix(void);
+@@ -96,4 +96,3 @@ class OS_Matrix {
+ };
+
+ #endif /* INTERFACE_H */
+-
diff --git a/net-analyzer/xprobe/files/xprobe-0.3-gcc-12.patch b/net-analyzer/xprobe/files/xprobe-0.3-gcc-12.patch
new file mode 100644
index 000000000000..534d17cb019b
--- /dev/null
+++ b/net-analyzer/xprobe/files/xprobe-0.3-gcc-12.patch
@@ -0,0 +1,21 @@
+https://bugs.gentoo.org/852119
+--- a/libs-external/USI++/src/datalink.cc
++++ b/libs-external/USI++/src/datalink.cc
+@@ -15,6 +15,7 @@
+ #include <string.h>
+ #include <unistd.h>
+ #include <errno.h>
++#include <ctime>
+ #include <sys/ioctl.h>
+
+ #ifdef IMMEDIATE
+--- a/libs-external/USI++/src/tcp.cc
++++ b/libs-external/USI++/src/tcp.cc
+@@ -16,6 +16,7 @@
+ #include <string.h>
+ #include <stdlib.h>
+ #include <errno.h>
++#include <ctime>
+
+ namespace usipp {
+
diff --git a/net-analyzer/xprobe/files/xprobe-0.3-gcc43.patch b/net-analyzer/xprobe/files/xprobe-0.3-gcc43.patch
new file mode 100644
index 000000000000..1175631b9a16
--- /dev/null
+++ b/net-analyzer/xprobe/files/xprobe-0.3-gcc43.patch
@@ -0,0 +1,29 @@
+--- a/libs-external/USI++/src/ip.cc
++++ b/libs-external/USI++/src/ip.cc
+@@ -13,6 +13,7 @@
+ #include "usi++/ip.h"
+
+ #include "config.h"
++#include <cstdlib>
+ #include <iostream>
+ #include <string.h>
+ #include <errno.h>
+--- a/libs-external/USI++/src/misc.cc
++++ b/libs-external/USI++/src/misc.cc
+@@ -1,5 +1,6 @@
+ #include "usi++/usi++"
+ #include "usi++/usi-structs.h"
++#include <cstdlib>
+ #include <string.h>
+ #include <unistd.h>
+ #include <sys/ioctl.h>
+--- a/libs-external/USI++/usi++/tcp.h
++++ b/libs-external/USI++/usi++/tcp.h
+@@ -15,6 +15,7 @@
+ #include "usi-structs.h"
+ #include "datalink.h"
+ #include "ip.h"
++#include <cstring>
+
+ namespace usipp {
+
diff --git a/net-analyzer/xprobe/files/xprobe-0.3-makefiles.patch b/net-analyzer/xprobe/files/xprobe-0.3-makefiles.patch
new file mode 100644
index 000000000000..ed49b8366e4c
--- /dev/null
+++ b/net-analyzer/xprobe/files/xprobe-0.3-makefiles.patch
@@ -0,0 +1,99 @@
+Add explicit dependency between program and library
+Fixes break with MAKEOPTS="-j1 --shuffle=3854825862" and other shuffle
+Also folds sed commands from ebuild and patches configure; running
+autoreconf breaks build
+https://bugs.gentoo.org/882675
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -47,7 +47,7 @@
+
+ all: lib xprobe2
+
+-xprobe2: $(OBJS) modules
++xprobe2: $(OBJS) modules lib
+ $(CXX) $(CFLAGS) $(OBJS) $(MODOBJS) -o $@ $(LDFLAGS) $(LIBS)
+ strip $@
+
+--- a/libs-external/USI++/src/Makefile.in
++++ b/libs-external/USI++/src/Makefile.in
+@@ -15,7 +15,7 @@
+ clear
+
+ usi++:icmp.o datalink.o ip.o misc.o udp.o tcp.o TX_IP.o Layer2.o arp.o
+- ar cr libusi++.a *.o
++ $(AR) cr libusi++.a *.o
+ # ld *.o -Bshareable -o libusi++.so
+ $(RANLIB) libusi++.a
+ rm -f *.o
+--- a/src/Makefile.in
++++ b/src/Makefile.in
+@@ -49,7 +49,7 @@
+
+ xprobe2: $(OBJS) modules lib
+ $(CXX) $(CFLAGS) $(OBJS) $(MODOBJS) -o $@ $(LDFLAGS) $(LIBS)
+- strip $@
++ true $@
+
+ modules:
+ cd xpmodules; ${MAKE}
+--- a/src/xplib/Makefile.in
++++ b/src/xplib/Makefile.in
+@@ -44,7 +44,7 @@
+ all: libxplib.a
+
+ libxplib.a: $(OBJS)
+- ar cr libxplib.a *.o
++ $(AR) cr libxplib.a *.o
+ $(RANLIB) libxplib.a
+
+ .c.o: $(INCLUDES)
+--- a/src/xpmodules/alive_probe/Makefile.in
++++ b/src/xpmodules/alive_probe/Makefile.in
+@@ -42,7 +42,7 @@
+ all: alive_probe.a
+
+ alive_probe.a: icmp_ping.o tcp_ping.o udp_ping.o ttl_module portscan_module
+- ar cr alive_probe.a *.o ttl_calc/*.o portscanner/*.o
++ $(AR) cr alive_probe.a *.o ttl_calc/*.o portscanner/*.o
+ $(RANLIB) alive_probe.a
+
+ icmp_ping.o: icmp_ping.cc
+--- a/src/xpmodules/os_probe/Makefile.in
++++ b/src/xpmodules/os_probe/Makefile.in
+@@ -43,7 +43,7 @@
+
+ os_probe.a: icmp_port_unreach_mod icmp_echo_id_mod icmp_timestamp_mod \
+ icmp_inforeq_mod icmp_addrmask_mod tcp_handshake_mod tcp_rst_mod smb_mod snmp_mod
+- ar cr os_probe.a icmp_port_unreach/*.o icmp_echo_id/*.o icmp_timestamp/*.o \
++ $(AR) cr os_probe.a icmp_port_unreach/*.o icmp_echo_id/*.o icmp_timestamp/*.o \
+ icmp_inforeq/*.o icmp_addrmask/*.o tcp_handshake/*.o tcp_rst/*.o smb/*.o snmp/*.o
+ $(RANLIB) os_probe.a
+
+--- b/configure
++++ a/configure
+@@ -2252,6 +2252,7 @@
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h. */
+ $ac_declaration
++#include <cstdlib>
+ int
+ main ()
+ {
+@@ -2613,6 +2614,7 @@
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h. */
+ $ac_declaration
++#include <cstdlib>
+ int
+ main ()
+ {
+--- a/libs-external/USI++/src/configure 2025-02-15 16:41:20.320574540 +0400
++++ b/libs-external/USI++/src/configure 2025-02-15 16:42:29.463212487 +0400
+@@ -3499,6 +3499,7 @@
+ cat >>conftest.$ac_ext <<_ACEOF
+ /* end confdefs.h. */
+ #include <ctype.h>
++#include <stdlibh>
+ #if ((' ' & 0x0FF) == 0x020)
+ # define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+ # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
diff --git a/net-analyzer/xprobe/metadata.xml b/net-analyzer/xprobe/metadata.xml
new file mode 100644
index 000000000000..6b7c70123e88
--- /dev/null
+++ b/net-analyzer/xprobe/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <longdescription>
+ Active OS fingerprinting tool. This is the new xprobe, called xprobe2, due to
+ xprobe1 being obsoleted. xprobe2 has a different approach to OS fingerprinting.
+ xprobe2 relies on fuzzy signature matching, probabilistic guesses, multiple
+ matches simultaneously, and a signature database.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/xprobe/xprobe-0.3-r1.ebuild b/net-analyzer/xprobe/xprobe-0.3-r1.ebuild
new file mode 100644
index 000000000000..8416f8e294ac
--- /dev/null
+++ b/net-analyzer/xprobe/xprobe-0.3-r1.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit toolchain-funcs
+
+MY_P=${PN}2-${PV}
+
+DESCRIPTION="Active OS fingerprinting tool - this is Xprobe2"
+HOMEPAGE="http://sys-security.com/blog/xprobe2"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${MY_P}.tar.gz"
+S="${WORKDIR}"/${MY_P}
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~sparc x86"
+
+DEPEND="net-libs/libpcap"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-gcc43.patch
+ "${FILESDIR}"/${P}-cxx11.patch
+ "${FILESDIR}"/${P}-gcc-12.patch
+)
+
+src_prepare() {
+ default
+
+ sed -i -e 's:strip:true:' src/Makefile.in || die
+ sed -i -e 's:ar cr:$(AR) cr:g' $(find -name '*Makefile*') || die
+
+ tc-export AR
+}
+
+src_install() {
+ default
+
+ dodoc AUTHORS CHANGELOG CREDITS README TODO docs/*.{txt,pdf}
+}
diff --git a/net-analyzer/xprobe/xprobe-0.3-r2.ebuild b/net-analyzer/xprobe/xprobe-0.3-r2.ebuild
new file mode 100644
index 000000000000..b4847c26f053
--- /dev/null
+++ b/net-analyzer/xprobe/xprobe-0.3-r2.ebuild
@@ -0,0 +1,41 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit toolchain-funcs
+
+MY_P=${PN}2-${PV}
+
+DESCRIPTION="Active OS fingerprinting tool - this is Xprobe2"
+HOMEPAGE="http://sys-security.com/blog/xprobe2"
+SRC_URI="https://downloads.sourceforge.net/${PN}/${MY_P}.tar.gz"
+S="${WORKDIR}"/${MY_P}
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~sparc x86"
+
+DEPEND="net-libs/libpcap"
+RDEPEND="${DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${P}-gcc43.patch
+ "${FILESDIR}"/${P}-cxx11.patch
+ "${FILESDIR}"/${P}-gcc-12.patch
+ "${FILESDIR}"/${P}-makefiles.patch
+ "${FILESDIR}"/${P}-demangle-output.patch
+ "${FILESDIR}"/${P}-clang.patch
+)
+
+src_prepare() {
+ default
+
+ tc-export AR
+}
+
+src_install() {
+ default
+
+ dodoc AUTHORS CHANGELOG CREDITS README TODO docs/*.{txt,pdf}
+}
diff --git a/net-analyzer/yersinia/Manifest b/net-analyzer/yersinia/Manifest
new file mode 100644
index 000000000000..a80add615abf
--- /dev/null
+++ b/net-analyzer/yersinia/Manifest
@@ -0,0 +1 @@
+DIST yersinia-0.8.2_p20221119.tar.gz 268158 BLAKE2B 2598d6809c7830c7824c9141ef58a617a8d472c0d7b3591b81e6209cecb915649a82d780108c45c488619775effca266eca4a9a0e60d1174211a5af05a05997d SHA512 e54025d782374d836148a813c0a8eb8d822c82f87d6e92c10b254831b95eef073d36ddb1ef94a7e7db2cd962fd52589d41fc6d21ca63422ca57c5ada2045de72
diff --git a/net-analyzer/yersinia/files/yersinia-0.7.1-no-ncurses.patch b/net-analyzer/yersinia/files/yersinia-0.7.1-no-ncurses.patch
new file mode 100644
index 000000000000..96036dd629e9
--- /dev/null
+++ b/net-analyzer/yersinia/files/yersinia-0.7.1-no-ncurses.patch
@@ -0,0 +1,13 @@
+--- a/src/terminal.c
++++ b/src/terminal.c
+@@ -190,7 +190,9 @@
+ #endif
+
+ pthread_mutex_destroy(&terms->admin_listen_th.finished);
++#ifdef HAS_CURSES
+ pthread_mutex_destroy(&terms->gui_th.finished);
++#endif
+ pthread_mutex_destroy(&terms->pcap_listen_th.finished);
+ pthread_mutex_destroy(&terms->uptime_th.finished);
+
+
diff --git a/net-analyzer/yersinia/files/yersinia-0.7.3-tinfo.patch b/net-analyzer/yersinia/files/yersinia-0.7.3-tinfo.patch
new file mode 100644
index 000000000000..b5bf566c107d
--- /dev/null
+++ b/net-analyzer/yersinia/files/yersinia-0.7.3-tinfo.patch
@@ -0,0 +1,27 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -467,6 +467,7 @@
+ AC_DEFINE(HAVE_REMOTE_ADMIN)
+ fi
+
++PKG_CHECK_MODULES(ncurses,ncurses)
+
+ dnl Curses detection: Munged from Midnight Commander's configure.in
+ dnl
+@@ -616,6 +617,16 @@
+ AC_DEFINE(USE_NCURSES)
+ AC_DEFINE(HAS_CURSES)
+ has_curses=true
++ else
++ if test "$ncurses_LIBS" ; then
++ CURSES_LIBS="$ncurses_LIBS"
++ CURSES_INCLUDEDIR="$ncurses_CFLAGS"
++ search_ncurses=false
++ screen_manager="ncurses"
++ AC_DEFINE(USE_NCURSES)
++ AC_DEFINE(HAS_CURSES)
++ has_curses=true
++ fi
+ fi
+ )
+
diff --git a/net-analyzer/yersinia/files/yersinia-0.8.2-C23.patch b/net-analyzer/yersinia/files/yersinia-0.8.2-C23.patch
new file mode 100644
index 000000000000..6cbfde50ed11
--- /dev/null
+++ b/net-analyzer/yersinia/files/yersinia-0.8.2-C23.patch
@@ -0,0 +1,12 @@
+diff -ru a/src/yersinia.c b/src/yersinia.c
+--- a/src/yersinia.c 2025-01-06 20:10:12.501482780 +0400
++++ b/src/yersinia.c 2025-01-06 20:11:08.635172681 +0400
+@@ -927,7 +927,7 @@
+ * POSIX functions for signals
+ */
+ int
+-posix_signal( int signo, void (*handler)() )
++posix_signal( int signo, void (*handler)(int) )
+ {
+ struct sigaction act;
+
diff --git a/net-analyzer/yersinia/metadata.xml b/net-analyzer/yersinia/metadata.xml
new file mode 100644
index 000000000000..9cc6067471b9
--- /dev/null
+++ b/net-analyzer/yersinia/metadata.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>netmon@gentoo.org</email>
+ <name>Gentoo network monitoring and analysis project</name>
+ </maintainer>
+ <longdescription>
+ Yersinia is a network tool designed to take advantage of some weakeness
+ in different network protocols. It intends to be a solid framework for
+ analyzing and testing the deployed networks and systems.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/yersinia/yersinia-0.8.2_p20221119.ebuild b/net-analyzer/yersinia/yersinia-0.8.2_p20221119.ebuild
new file mode 100644
index 000000000000..45575b519ea0
--- /dev/null
+++ b/net-analyzer/yersinia/yersinia-0.8.2_p20221119.ebuild
@@ -0,0 +1,65 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic
+
+DESCRIPTION="A framework for layer 2 attacks"
+HOMEPAGE="http://www.yersinia.net/"
+#SRC_URI="https://github.com/tomac/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+COMMIT="867b309eced9e02b63412855440cd4f5f7727431"
+SRC_URI="https://github.com/tomac/yersinia/archive/${COMMIT}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}/${PN}-${COMMIT}"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="amd64 x86"
+IUSE="gtk ncurses"
+
+RDEPEND="
+ >=net-libs/libnet-1.1.2:1.1
+ >=net-libs/libpcap-0.9.4
+ ncurses? ( >=sys-libs/ncurses-5.5:= )
+ gtk? (
+ dev-libs/glib:2
+ x11-libs/gdk-pixbuf:2
+ =x11-libs/gtk+-2*:2
+ x11-libs/pango
+ )
+"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+DOCS=( AUTHORS ChangeLog FAQ README THANKS TODO )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.7.1-no-ncurses.patch
+ "${FILESDIR}"/${PN}-0.7.3-tinfo.patch
+ "${FILESDIR}"/${PN}-0.8.2-C23.patch
+)
+
+src_prepare() {
+ default
+
+ if ! use gtk; then
+ # bug #514802
+ sed -i -e '/AM_GLIB_GNU_GETTEXT/d' configure.ac || die
+ fi
+
+ eautoreconf
+}
+
+src_configure() {
+ append-cflags -fcommon
+
+ econf \
+ --enable-admin \
+ --with-pcap-includes=/usr/include \
+ $(use_with ncurses) \
+ $(use_enable gtk)
+}
+
+src_compile() {
+ emake CFLAGS="${CFLAGS}"
+}
diff --git a/net-analyzer/zabbix/Manifest b/net-analyzer/zabbix/Manifest
new file mode 100644
index 000000000000..71fd90e45de6
--- /dev/null
+++ b/net-analyzer/zabbix/Manifest
@@ -0,0 +1,18 @@
+DIST zabbix-6.0.41-go-deps.tar.xz 31888876 BLAKE2B 013e5235412a291b038b8df682e00551a73ad4afb52a671fae45c106d26c31f1e4e56d1eb6cc2ddbe7e9d0b091da34ae21be2b15fc227d52af2fa00699e64886 SHA512 cf45e0c2b57b5a92a6a337a514f2fcb2dac0c3b5a9327fccf7907299711c3d52985da186c71d6b107d21d7345bb01cfaf10ce2bd7d09fe594d48761b1ef134a5
+DIST zabbix-6.0.41.tar.gz 41250295 BLAKE2B 8fc8b7982115d4b4a28935604179b0c2a1171a8cb27bcba2dbe39072dd56e6b4099e64ea634f97bbc67b17a82b5d89a3bf619e38d1c5c786e7bfaa68cdebe603 SHA512 15fd2810a893d77f27cdcfd2cfd14a56b3fce11e8053a6828ed6005bac705602ebcce57ad4ea82d12555980541726dbb28cecd6f4c9891d6fb75205ede1a85a5
+DIST zabbix-6.0.43-go-deps.tar.xz 31894264 BLAKE2B 644de0860f413a3be2021559c8736bb48b5abcdd98094b48cebeae019a005e5fb13c767bd1bce9b1b2683e5522fd8188589257b6a533e90e77fc4c6adb9be439 SHA512 89c23d3af3445a8a01a5829fdcbbf3b8001b15dc6fa22794f00e2142016727c898b19d40ed087c648e037c6f44db974ad2d588cd7e9c8336069002803522e594
+DIST zabbix-6.0.43.tar.gz 41411022 BLAKE2B dc25b61f983d8d35ca99c64425f41ae53dc07b1ffb99bb90c2b1b78975b710229d5e183a7e5fbfbe49f9d1dd31787cdb7caeed10f9cc1cf70b410e2314eb4851 SHA512 daa585622f6ce47019a072ceb0aea285d5af1bc397c72fb6ad8d9d7677a3d3274d2c617e8ab734cca0677981a0dc0d2eda665b35b89e21bd84d0d27c6ca26c33
+DIST zabbix-6.0.46-go-deps.tar.xz 32420472 BLAKE2B 71cdd86635191b1af9834a063a22745f54e57392962ac3ee454b8c473b6c86298c64da24a3a17894b1cc39a5501b4ac9d042350c077575a4cbfccacdf613df10 SHA512 448b8285dbc3538d9afd10f9ea5a76d291a04a8e8e7ae25454523ff31457e1ae2fa5aba6fac47195a0d731dfe8a463817e06d126bdac5154abe49b658407706b
+DIST zabbix-6.0.46.tar.gz 41430362 BLAKE2B b3859ee77e815ac05e9fbb8ab15e4aead764ff7bc67fb15ba09cd52f985a35e8b9c26e2ecacb34d9384a617a4d5ac5423c6c4fff0df99f63633fe395ce48e22c SHA512 bcc4ffa3727886d0a45b846a3b5071e1e6e51bbebaa3342356185bdfd8639409afafa85686d2d4a37a4c932618179929d8980fefda2b9ce1c149f065dec29bc8
+DIST zabbix-7.0.18-go-deps.tar.xz 36261808 BLAKE2B ef625c9a3a2eb13af088bec0466e18273314365bbf8231d453e48a66d6d20983afce6b162596a2785387f772035d09e593d6d44643e71a7ff9be5fb5f6136523 SHA512 a26f939c9d4e08fa1c39203201a46c869ebdb133c942aa76181eeb4b07104cb3deea6899f2b88d1f98a17586a59358b63ba468ff0ef10072aea24072b0f68568
+DIST zabbix-7.0.18.tar.gz 46113850 BLAKE2B 8a88e359a6aa411ca5eb010fe24352edc3fb9dfba64d86e4e609ac3537c46cb45d470ba2f8bc196e62359459fd695d94d8be5a18afa5d1fe933fcb6f7de80cf7 SHA512 cb3530ee122aac0df1d969192bff6721b00560acabbc97877f1323e717def04f8111a42109289d881ca059364b33bcf1b5a7e5549ee33b3375a9a8956d5b354d
+DIST zabbix-7.0.22-go-deps.tar.xz 36939532 BLAKE2B 065194bdad677854f91f42f7497d07078f75b847775b79afa646db7e55f4a1671737b5e2f72d70b58ec9170d9a2131fbf500379be5de8fec55335b7e9056933d SHA512 bb4879f42bc38412a71689ad9d3377956de5a2485d3de52300cbe23ced1160209c7981cd22f97aa8121b9a3d83c2f874d4f974b3f1248a5bc783a7e1425a1b57
+DIST zabbix-7.0.22.tar.gz 46755855 BLAKE2B c8e9edebd8af65f5fdbf93865909e0db10dc592d48edbe0e8abc4670141d16fc89088aa9d622af4891cda809bd260fa0d817283f3c159fead8bb2181de8cb865 SHA512 476016cfef14c960a688594033956d380e9effbfabd96b31f24d558c83c36c98af64f747af7711c832c13b203536824838242e6d7dbe0e2ba3bb7fbcf4e5ed11
+DIST zabbix-7.0.26-go-deps.tar.xz 36969604 BLAKE2B 53a7456092f2fb98c96218d65217d9e5e67f9b91ce7d30658a2485236cf2e1320db46e6e03a68d8460f053e1f818bde2e94a494987bca466cb880bf0c9c92b9f SHA512 61841a88db7387e787ee93ab09ac6aa423e11970d045c84eabce0e44292eb1130c4767545eabd10165b56a8788d576e9069fce1ae8aa1b636edae03f6752748c
+DIST zabbix-7.0.26.tar.gz 46875037 BLAKE2B c54bded1a8d3498d82cc4c45f47f0d2cc98b7baf0d429a653b2f5e667a3745037a27490d8c2787e7e27af1fbfc5333c9d20856154d9c5d9da8f3ad7d7651a727 SHA512 b615bc09eaeca0880579bdab8e002d8a0af7d0ef6cead056261d0326df6763fe1aea3619e8e94ea53243f9d33dc2665a0d0b55032bf2031556fff0813ccf0bb8
+DIST zabbix-7.4.10-go-deps.tar.xz 36870880 BLAKE2B 253e43cb9e199b9c2625276dad39a8688c37ac15f82a6e59b278830a0696a0a0a440bc200ad3ab64148d4c7ccd38c3a1bb5900a62b4e4edb3e98fb07e8c156f9 SHA512 da27b99a9657b84a8d3fc1121854c69945a58d6eacec735909b59e53fd432f1d83c34cf4bac04d08e7aed9dff85f944c3d4075e33b5e5fcd88b657ab28ea29a5
+DIST zabbix-7.4.10.tar.gz 43527563 BLAKE2B 740745d789da8fdf5ece6883c11cabb44b80dc4ed73507d0774e94cb213b1a20fe86714476420f29be8a2217b0347b1b4aa80703600833b063d42a6c4126aa6d SHA512 cdd78ebf0c5e83525b70cbf69c3bead4900770f0a78e065b48ebf4f531487ff5dc6b2451fb0b757e29fa0271e7a0afcad7cadcfdfac8ccd537bbfeaeb2a6f8a6
+DIST zabbix-7.4.2-go-deps.tar.xz 36822248 BLAKE2B f878acdd530f994f43cb792ed5b7551aead78fb46a10e91fe46baf1ca02f948a45363e368b414c38ba0bcb91d142302159a1a85d8b378b9a20a2cceb24d2d4c3 SHA512 4609c7ba55503e83ee9a9767d84bb9a22406b1fb1e9bce2b2a759a35aa379790d5bb4b6dee388b50a661288e6b048d6da960505289f4035c39a6f7e1d0410c48
+DIST zabbix-7.4.2.tar.gz 42772578 BLAKE2B 1fd758873db540dbf0c8da17a9baeddd3e4e772fbc2e80b430986ed3552bae54efaae6131f2be727b9332e9c3a2d254f24aeef90584b990abe341bbb7f8d5582 SHA512 3bf1f915c2cd5a59f1dd3afc10dd1a6e596840e576013839d6eae057cd327893f87cc5cec1d32b6a8ca8bd00735c0070327084aae01dc8d3399202f5a3e365c1
+DIST zabbix-7.4.6-go-deps.tar.xz 37149460 BLAKE2B ef22489c750a00247ac5920cef8e98a840809fa668ceda6bc4288c7ccbc34ef72569cf47ba076696f9c3d0a54b53a7a1102f9ee1d8a4cc6e0ef5479de2378fa9 SHA512 6b39c505e43e4020f9ffba9551902bae8c15eaab1392a77e13d5c01c3ac8e357678eed5915568008bdd6270dfb2e3a0449e49c12fcdd92e4fce0d411b9df67df
+DIST zabbix-7.4.6.tar.gz 43328893 BLAKE2B c3ab56bd45eb0f34d6c042c699068cdcfe4ed6098ebe0d981afc9a30f0f27aa5767ddf099fb00b886753bdb849abbf718ed362ccb11824666020742ea8874858 SHA512 2f593e210409c74974395bf163be127159136eac86216443122f5d2104cb85b5b652c6f445ed7408532b894f7ddbc3f1f060465f7797326f1198d3354f48e2e9
diff --git a/net-analyzer/zabbix/files/zabbix-3.0.30-security-disable-PidFile.patch b/net-analyzer/zabbix/files/zabbix-3.0.30-security-disable-PidFile.patch
new file mode 100644
index 000000000000..b2635ff7d8a1
--- /dev/null
+++ b/net-analyzer/zabbix/files/zabbix-3.0.30-security-disable-PidFile.patch
@@ -0,0 +1,41 @@
+--- a/conf/zabbix_agentd.conf
++++ b/conf/zabbix_agentd.conf
+@@ -5,6 +5,7 @@
+
+ ### Option: PidFile
+ # Name of PID file.
++# THIS PARAMETER IS IGNORED IN GENTOO FOR SECURITY REASONS (https://bugs.gentoo.org/629884)
+ #
+ # Mandatory: no
+ # Default:
+--- a/conf/zabbix_proxy.conf
++++ b/conf/zabbix_proxy.conf
+@@ -109,6 +109,7 @@ LogFile=/tmp/zabbix_proxy.log
+
+ ### Option: PidFile
+ # Name of PID file.
++# THIS PARAMETER IS IGNORED IN GENTOO FOR SECURITY REASONS (https://bugs.gentoo.org/629884)
+ #
+ # Mandatory: no
+ # Default:
+--- a/conf/zabbix_server.conf
++++ b/conf/zabbix_server.conf
+@@ -62,6 +62,7 @@ LogFile=/tmp/zabbix_server.log
+
+ ### Option: PidFile
+ # Name of PID file.
++# THIS PARAMETER IS IGNORED IN GENTOO FOR SECURITY REASONS (https://bugs.gentoo.org/629884)
+ #
+ # Mandatory: no
+ # Default:
+--- a/src/libs/zbxnix/pid.c
++++ b/src/libs/zbxnix/pid.c
+@@ -26,6 +26,8 @@ static int fdpid = -1;
+
+ int create_pid_file(const char *pidfile)
+ {
++ return SUCCEED;
++
+ int fd;
+ zbx_stat_t buf;
+ struct flock fl;
diff --git a/net-analyzer/zabbix/files/zabbix-4.0.18-modulepathfix.patch b/net-analyzer/zabbix/files/zabbix-4.0.18-modulepathfix.patch
new file mode 100644
index 000000000000..3e4ed297ebc0
--- /dev/null
+++ b/net-analyzer/zabbix/files/zabbix-4.0.18-modulepathfix.patch
@@ -0,0 +1,11 @@
+--- zabbix-4.0.1/configure
++++ zfx/configure
+@@ -12510,7 +12510,7 @@
+ CURL_SSL_CERT_LOCATION="${datadir}/zabbix/ssl/certs"
+ CURL_SSL_KEY_LOCATION="${datadir}/zabbix/ssl/keys"
+
+-LOAD_MODULE_PATH="${libdir}/modules"
++LOAD_MODULE_PATH="${libdir}/zabbix"
+
+
+
diff --git a/net-analyzer/zabbix/files/zabbix-6.0.3-system.sw.packages.patch b/net-analyzer/zabbix/files/zabbix-6.0.3-system.sw.packages.patch
new file mode 100644
index 000000000000..3cb4b74fb15d
--- /dev/null
+++ b/net-analyzer/zabbix/files/zabbix-6.0.3-system.sw.packages.patch
@@ -0,0 +1,26 @@
+From 1869f67549ea9491377269ef11a99ed5fc38e3cc Mon Sep 17 00:00:00 2001
+From: Alexey Shvetsov <alexxy@gentoo.org>
+Date: Mon, 21 Mar 2022 11:23:54 +0300
+Subject: [PATCH] Allow to use system.sw.packages on gentoo linux
+
+Signed-off-by: Alexey Shvetsov <alexxy@gentoo.org>
+--- a/src/go/plugins/system/sw/sw.go
++++ b/src/go/plugins/system/sw/sw.go
+@@ -165,6 +165,7 @@ func getManagers() []manager {
+ {"pkgtools", "[ -d /var/log/packages ] && echo true", "ls /var/log/packages", parseRegex},
+ {"rpm", "rpm --version 2> /dev/null", "rpm -qa", parseRegex},
+ {"pacman", "pacman --version 2> /dev/null", "pacman -Q", parseRegex},
++ {"portage", "emerge --version 2> /dev/null", "qlist -IRCv", parseRegex},
+ }
+ }
+
+--- a/src/libs/zbxsysinfo/linux/software.c
++++ b/src/libs/zbxsysinfo/linux/software.c
+@@ -177,6 +177,7 @@ static ZBX_PACKAGE_MANAGER package_managers[] =
+ {"pkgtools", "[ -d /var/log/packages ] && echo true", "ls /var/log/packages", NULL},
+ {"rpm", "rpm --version 2> /dev/null", "rpm -qa", NULL},
+ {"pacman", "pacman --version 2> /dev/null", "pacman -Q", NULL},
++ {"portage", "emerge --version 2> /dev/null", "qlist -IRCv", NULL},
+ {NULL}
+ };
+
diff --git a/net-analyzer/zabbix/files/zabbix-6.4.0-configure-sscanf.patch b/net-analyzer/zabbix/files/zabbix-6.4.0-configure-sscanf.patch
new file mode 100644
index 000000000000..0a95780c4505
--- /dev/null
+++ b/net-analyzer/zabbix/files/zabbix-6.4.0-configure-sscanf.patch
@@ -0,0 +1,12 @@
+--- a/configure.ac
++++ b/configure.ac
+@@ -952,8 +952,9 @@ dnl Check for %qu format (FreeBSD 4.x)
+ dnl FreeBSD 4.x does not support %llu
+ AC_MSG_CHECKING(for long long format)
+ AC_RUN_IFELSE([AC_LANG_SOURCE([[
++#include <stdio.h>
+ #include <sys/types.h>
+-int main()
++int main(void)
+ {
+ uint64_t i;
diff --git a/net-analyzer/zabbix/files/zabbix-agent2.init b/net-analyzer/zabbix/files/zabbix-agent2.init
new file mode 100644
index 000000000000..6a88e62b429a
--- /dev/null
+++ b/net-analyzer/zabbix/files/zabbix-agent2.init
@@ -0,0 +1,20 @@
+#!/sbin/openrc-run
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+command="/usr/sbin/zabbix_agent2"
+command_args="--foreground --config /etc/zabbix/zabbix_agent2.conf"
+command_background="true"
+command_user="zabbix:zabbix"
+pidfile="/run/${RC_SVCNAME}.pid"
+
+depend() {
+ need net
+ provide zabbix-agent
+ use zabbix-server
+}
+
+start_pre() {
+ checkpath -q -d -m 0750 -o root:zabbix /etc/zabbix
+ checkpath -q -f -m 0640 -o root:zabbix /etc/zabbix/*.conf
+}
diff --git a/net-analyzer/zabbix/files/zabbix-agent2.service b/net-analyzer/zabbix/files/zabbix-agent2.service
new file mode 100644
index 000000000000..b182482fde97
--- /dev/null
+++ b/net-analyzer/zabbix/files/zabbix-agent2.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Zabbix agent
+Documentation=https://zabbix.com/manuals
+After=network.target network-online.target
+
+[Service]
+User=zabbix
+Group=zabbix
+ExecStart=/usr/sbin/zabbix_agent2 --foreground --config /etc/zabbix/zabbix_agent2.conf
+
+[Install]
+WantedBy=multi-user.target
diff --git a/net-analyzer/zabbix/files/zabbix-agent2.tmpfiles b/net-analyzer/zabbix/files/zabbix-agent2.tmpfiles
new file mode 100644
index 000000000000..56471bb42c0a
--- /dev/null
+++ b/net-analyzer/zabbix/files/zabbix-agent2.tmpfiles
@@ -0,0 +1 @@
+d /run/zabbix 0755 zabbix zabbix -
diff --git a/net-analyzer/zabbix/files/zabbix-agentd.init b/net-analyzer/zabbix/files/zabbix-agentd.init
new file mode 100644
index 000000000000..e2433ff8f6e9
--- /dev/null
+++ b/net-analyzer/zabbix/files/zabbix-agentd.init
@@ -0,0 +1,20 @@
+#!/sbin/openrc-run
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+command="/usr/sbin/zabbix_agentd"
+command_args="--foreground --config /etc/zabbix/zabbix_agentd.conf"
+command_background="true"
+command_user="zabbix:zabbix"
+pidfile="/run/${RC_SVCNAME}.pid"
+
+depend() {
+ need net
+ provide zabbix-agent
+ use zabbix-server
+}
+
+start_pre() {
+ checkpath -q -d -m 0750 -o root:zabbix /etc/zabbix
+ checkpath -q -f -m 0640 -o root:zabbix /etc/zabbix/*.conf
+}
diff --git a/net-analyzer/zabbix/files/zabbix-agentd.service b/net-analyzer/zabbix/files/zabbix-agentd.service
new file mode 100644
index 000000000000..dc13089e0cf5
--- /dev/null
+++ b/net-analyzer/zabbix/files/zabbix-agentd.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Zabbix agent
+Documentation=https://zabbix.com/manuals
+After=network.target network-online.target
+
+[Service]
+User=zabbix
+Group=zabbix
+ExecStart=/usr/sbin/zabbix_agentd --foreground --config /etc/zabbix/zabbix_agentd.conf
+
+[Install]
+WantedBy=multi-user.target
diff --git a/net-analyzer/zabbix/files/zabbix-agentd.tmpfiles b/net-analyzer/zabbix/files/zabbix-agentd.tmpfiles
new file mode 100644
index 000000000000..56471bb42c0a
--- /dev/null
+++ b/net-analyzer/zabbix/files/zabbix-agentd.tmpfiles
@@ -0,0 +1 @@
+d /run/zabbix 0755 zabbix zabbix -
diff --git a/net-analyzer/zabbix/files/zabbix-jmx-proxy.conf b/net-analyzer/zabbix/files/zabbix-jmx-proxy.conf
new file mode 100644
index 000000000000..6aa3cf96f84d
--- /dev/null
+++ b/net-analyzer/zabbix/files/zabbix-jmx-proxy.conf
@@ -0,0 +1,12 @@
+# Configuration variables for the zabbix jmx proxy
+
+
+# LISTEN_IP="0.0.0.0"
+# LISTEN_PORT=10052
+# START_POLLERS=5
+# TIMEOUT=3
+
+# uncomment to enable remote monitoring of the standard JMX objects on the Zabbix Java Gateway itself
+# JAVA_OPTIONS="$JAVA_OPTIONS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=12345
+# -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
+
diff --git a/net-analyzer/zabbix/files/zabbix-jmx-proxy.init b/net-analyzer/zabbix/files/zabbix-jmx-proxy.init
new file mode 100644
index 000000000000..5722814173e8
--- /dev/null
+++ b/net-analyzer/zabbix/files/zabbix-jmx-proxy.init
@@ -0,0 +1,33 @@
+#!/sbin/openrc-run
+
+LISTEN_IP=${LISTEN_IP:-127.0.0.1}
+LISTEN_PORT=${LISTEN_PORT:-10052}
+START_POLLERS=${START_POLLERS:-5}
+TIMEOUT=${TIMEOUT:-3}
+
+PID_FILE="/run/zabbix-jmx-proxy"
+
+
+start() {
+ ZABBIX_OPTIONS="-Dzabbix.pidFile=$PID_FILE \
+ -Dzabbix.listenIP=$LISTEN_IP \
+ -Dzabbix.listenPort=$LISTEN_PORT \
+ -Dzabbix.startPollers=$START_POLLERS \
+ -Dzabbix.timeout=$TIMEOUT \
+ -Dsun.rmi.transport.tcp.responseTimeout=${TIMEOUT}000"
+
+ JAVA_OPTIONS="-server $JAVA_OPTIONS -Dlogback.configurationFile=logback-console.xml"
+
+ cd /opt/zabbix_java
+
+ CLASSPATH="lib"
+ for jar in lib/*.jar bin/*.jar; do
+ CLASSPATH="$CLASSPATH:$jar"
+ done
+
+ start-stop-daemon -m --background --pidfile $PID_FILE -- java $JAVA_OPTIONS -classpath $CLASSPATH $ZABBIX_OPTIONS com.zabbix.gateway.JavaGateway
+}
+
+stop() {
+ start-stop-daemon --stop --pidfile $PID_FILE
+}
diff --git a/net-analyzer/zabbix/files/zabbix-proxy.init b/net-analyzer/zabbix/files/zabbix-proxy.init
new file mode 100644
index 000000000000..8347b481fffb
--- /dev/null
+++ b/net-analyzer/zabbix/files/zabbix-proxy.init
@@ -0,0 +1,20 @@
+#!/sbin/openrc-run
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+command="/usr/sbin/zabbix_proxy"
+command_args="--foreground --config /etc/zabbix/zabbix_proxy.conf"
+command_background="true"
+command_user="zabbix:zabbix"
+pidfile="/run/${RC_SVCNAME}.pid"
+
+depend() {
+ need net
+ provide zabbix-proxy
+}
+
+start_pre() {
+ checkpath -q -d -m 0750 -o root:zabbix /etc/zabbix
+ checkpath -q -f -m 0640 -o root:zabbix /etc/zabbix/*.conf
+}
+
diff --git a/net-analyzer/zabbix/files/zabbix-proxy.service b/net-analyzer/zabbix/files/zabbix-proxy.service
new file mode 100644
index 000000000000..78b07be05062
--- /dev/null
+++ b/net-analyzer/zabbix/files/zabbix-proxy.service
@@ -0,0 +1,12 @@
+[Unit]
+Description=Zabbix proxy
+Documentation=https://zabbix.com/manuals
+After=network.target network-online.target
+
+[Service]
+User=zabbix
+Group=zabbix
+ExecStart=/usr/sbin/zabbix_proxy --foreground --config /etc/zabbix/zabbix_proxy.conf
+
+[Install]
+WantedBy=multi-user.target
diff --git a/net-analyzer/zabbix/files/zabbix-proxy.tmpfiles b/net-analyzer/zabbix/files/zabbix-proxy.tmpfiles
new file mode 100644
index 000000000000..56471bb42c0a
--- /dev/null
+++ b/net-analyzer/zabbix/files/zabbix-proxy.tmpfiles
@@ -0,0 +1 @@
+d /run/zabbix 0755 zabbix zabbix -
diff --git a/net-analyzer/zabbix/files/zabbix-server-r1.init b/net-analyzer/zabbix/files/zabbix-server-r1.init
new file mode 100644
index 000000000000..1652ba782fa8
--- /dev/null
+++ b/net-analyzer/zabbix/files/zabbix-server-r1.init
@@ -0,0 +1,25 @@
+#!/sbin/openrc-run
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+command="/usr/sbin/zabbix_server"
+command_args="--foreground --config /etc/zabbix/zabbix_server.conf"
+command_background="true"
+command_user="zabbix:zabbix"
+pidfile="/run/${RC_SVCNAME}.pid"
+
+depend() {
+ need net
+ use mysql postgresql
+}
+
+start_pre() {
+ checkpath -q -d -m 0750 -o root:zabbix /etc/zabbix
+ checkpath -q -f -m 0640 -o root:zabbix /etc/zabbix/*.conf
+}
+
+reload() {
+ /usr/sbin/zabbix_server \
+ -c /etc/zabbix/zabbix_server.conf \
+ -R config_cache_reload
+}
diff --git a/net-analyzer/zabbix/files/zabbix-server.service b/net-analyzer/zabbix/files/zabbix-server.service
new file mode 100644
index 000000000000..a7bdc0d1e06d
--- /dev/null
+++ b/net-analyzer/zabbix/files/zabbix-server.service
@@ -0,0 +1,15 @@
+[Unit]
+Description=Zabbix server
+Documentation=https://zabbix.com/manuals
+After=syslog.target syslog.service network.target network-online.target postgresql.service
+After=postgresql-9.6.service postgresql-10.service
+After=postgresql-11.service postgresql-12.service
+
+
+[Service]
+User=zabbix
+Group=zabbix
+ExecStart=/usr/sbin/zabbix_server --foreground --config /etc/zabbix/zabbix_server.conf
+
+[Install]
+WantedBy=multi-user.target
diff --git a/net-analyzer/zabbix/files/zabbix-server.tmpfiles b/net-analyzer/zabbix/files/zabbix-server.tmpfiles
new file mode 100644
index 000000000000..56471bb42c0a
--- /dev/null
+++ b/net-analyzer/zabbix/files/zabbix-server.tmpfiles
@@ -0,0 +1 @@
+d /run/zabbix 0755 zabbix zabbix -
diff --git a/net-analyzer/zabbix/metadata.xml b/net-analyzer/zabbix/metadata.xml
new file mode 100644
index 000000000000..3732807092bc
--- /dev/null
+++ b/net-analyzer/zabbix/metadata.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>fordfrog@gentoo.org</email>
+ <name>Miroslav Å ulc</name>
+ </maintainer>
+ <maintainer type="person">
+ <name>Florian Schmaus</name>
+ <email>flow@gentoo.org</email>
+ </maintainer>
+ <longdescription>
+ZABBIX is software for monitoring of your applications, network and servers.
+ZABBIX supports both polling and trapping techniques to collect data from
+monitored hosts. A flexible notification mechanism allows easy and quickly
+configure different types of notifications for pre-defined events.
+ </longdescription>
+ <use>
+ <flag name="agent">Enable zabbix agent (for to-be-monitored machines)</flag>
+ <flag name="agent2">Enable go-based zabbix agent 2 (for to-be-monitored machines)</flag>
+ <flag name="frontend">Enable zabbix web frontend</flag>
+ <flag name="ipv6">Turn on support of IPv6</flag>
+ <flag name="java">Enable Zabbix Java JMX Management Gateway</flag>
+ <flag name="libxml2">Use libxml2 client library</flag>
+ <flag name="odbc">Enable Database Monitor and use UnixODBC Library by default</flag>
+ <flag name="openipmi">Enable openipmi things</flag>
+ <flag name="openssl">Use <pkg>dev-libs/openssl</pkg> as TLS backend</flag>
+ <flag name="proxy">Enable proxy support</flag>
+ <flag name="server">Enable zabbix server</flag>
+ <flag name="ssh">SSH v2 based checks</flag>
+ <flag name="static">Build statically linked binaries</flag>
+ </use>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:zabbix:zabbix</remote-id>
+ </upstream>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/zabbix/zabbix-6.0.41.ebuild b/net-analyzer/zabbix/zabbix-6.0.41.ebuild
new file mode 100644
index 000000000000..1c0a35a05f3e
--- /dev/null
+++ b/net-analyzer/zabbix/zabbix-6.0.41.ebuild
@@ -0,0 +1,389 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# To create the go modules tarball:
+# cd src/go
+# GOMODCACHE="${PWD}"/go-mod go mod download -modcacherw
+# tar -acf $(pwd | grep -Eo 'zabbix-[0-9.]+')-go-deps.tar.xz go-mod
+
+EAPI=8
+
+GO_OPTIONAL="yes"
+# needed to make webapp-config dep optional
+WEBAPP_OPTIONAL="yes"
+inherit webapp java-pkg-opt-2 systemd tmpfiles toolchain-funcs go-module user-info
+
+DESCRIPTION="ZABBIX is software for monitoring of your applications, network and servers"
+HOMEPAGE="https://www.zabbix.com/"
+MY_P=${P/_/}
+MY_PV=${PV/_/}
+SRC_URI="https://cdn.zabbix.com/${PN}/sources/stable/$(ver_cut 1-2)/${P}.tar.gz
+ agent2? ( https://dev.gentoo.org/~fordfrog/distfiles/${P}-go-deps.tar.xz )
+"
+
+S=${WORKDIR}/${MY_P}
+
+LICENSE="GPL-2"
+SLOT="0/$(ver_cut 1-2)"
+WEBAPP_MANUAL_SLOT="yes"
+KEYWORDS="amd64 ~x86"
+IUSE="agent +agent2 curl frontend gnutls ipv6 java ldap libxml2 mysql odbc openipmi +openssl oracle +postgres proxy selinux server snmp sqlite ssh static"
+REQUIRED_USE="|| ( agent agent2 frontend proxy server )
+ ?? ( gnutls openssl )
+ agent2? ( !gnutls )
+ proxy? ( ^^ ( mysql oracle postgres sqlite ) )
+ server? ( ^^ ( mysql oracle postgres ) !sqlite )
+ static? ( !oracle !snmp )"
+
+COMMON_DEPEND="
+ curl? ( net-misc/curl )
+ gnutls? ( net-libs/gnutls:0= )
+ java? ( >=virtual/jdk-1.8:* )
+ ldap? (
+ =dev-libs/cyrus-sasl-2*
+ net-libs/gnutls:=
+ net-nds/openldap:=
+ )
+ libxml2? ( dev-libs/libxml2:= )
+ mysql? ( dev-db/mysql-connector-c:= )
+ odbc? ( dev-db/unixODBC )
+ openipmi? ( sys-libs/openipmi )
+ openssl? ( dev-libs/openssl:=[-bindist(-)] )
+ oracle? ( dev-db/oracle-instantclient[odbc,sdk] )
+ postgres? ( dev-db/postgresql:* )
+ proxy? (
+ dev-libs/libevent:=
+ virtual/zlib:=
+ )
+ server? (
+ dev-libs/libevent:=
+ virtual/zlib:=
+ )
+ snmp? ( net-analyzer/net-snmp:= )
+ sqlite? ( dev-db/sqlite )
+ ssh? ( net-libs/libssh2 )
+"
+
+RDEPEND="${COMMON_DEPEND}
+ acct-group/zabbix
+ acct-user/zabbix
+ java? ( >=virtual/jre-1.8:* )
+ mysql? ( virtual/mysql )
+ proxy? (
+ dev-libs/libpcre2:=
+ net-analyzer/fping[suid]
+ )
+ selinux? ( sec-policy/selinux-zabbix )
+ server? (
+ app-admin/webapp-config
+ dev-libs/libpcre2:=
+ net-analyzer/fping[suid]
+ )
+ frontend? (
+ app-admin/webapp-config
+ dev-lang/php:*[bcmath,ctype,gd,jpeg(+),nls,png(+),session,sockets,sysvipc,truetype,unicode,xml,xmlreader,xmlwriter]
+ media-libs/gd[png]
+ virtual/httpd-php:*
+ mysql? ( dev-lang/php[mysqli] )
+ odbc? ( dev-lang/php[odbc] )
+ postgres? ( dev-lang/php[postgres] )
+ sqlite? ( dev-lang/php[sqlite] )
+ )
+"
+DEPEND="${COMMON_DEPEND}
+ static? (
+ curl? ( net-misc/curl[static-libs] )
+ ldap? (
+ =dev-libs/cyrus-sasl-2*[static-libs]
+ net-libs/gnutls[static-libs]
+ net-nds/openldap[static-libs]
+ )
+ libxml2? ( dev-libs/libxml2[static-libs] )
+ mysql? ( dev-db/mysql-connector-c[static-libs] )
+ odbc? ( dev-db/unixODBC[static-libs] )
+ postgres? ( dev-db/postgresql:*[static-libs] )
+ sqlite? ( dev-db/sqlite[static-libs] )
+ ssh? ( net-libs/libssh2 )
+ )
+"
+BDEPEND="
+ virtual/pkgconfig
+ agent2? (
+ >=dev-lang/go-1.12
+ app-arch/unzip
+ )
+"
+
+# upstream tests fail for agent2
+RESTRICT="test"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-4.0.18-modulepathfix.patch"
+ "${FILESDIR}/${PN}-3.0.30-security-disable-PidFile.patch"
+ "${FILESDIR}/${PN}-6.0.3-system.sw.packages.patch"
+)
+
+ZABBIXJAVA_BASE="opt/zabbix_java"
+
+pkg_setup() {
+ if use oracle; then
+ if [ -z "${ORACLE_HOME}" ]; then
+ eerror
+ eerror "The environment variable ORACLE_HOME must be set"
+ eerror "and point to the correct location."
+ eerror "It looks like you don't have Oracle installed."
+ eerror
+ die "Environment variable ORACLE_HOME is not set"
+ fi
+ fi
+
+ if use frontend; then
+ webapp_pkg_setup
+ fi
+
+ java-pkg-opt-2_pkg_setup
+}
+
+src_prepare() {
+ default
+}
+
+src_configure() {
+ local econf_args=(
+ --with-libpcre2
+ "$(use_enable agent)"
+ "$(use_enable agent2)"
+ "$(use_enable ipv6)"
+ "$(use_enable java)"
+ "$(use_enable proxy)"
+ "$(use_enable server)"
+ "$(use_enable static)"
+ "$(use_with curl libcurl)"
+ "$(use_with gnutls)"
+ "$(use_with ldap)"
+ "$(use_with libxml2)"
+ "$(use_with mysql)"
+ "$(use_with odbc unixodbc)"
+ "$(use_with openipmi openipmi)"
+ "$(use_with openssl)"
+ "$(use_with oracle)"
+ "$(use_with postgres postgresql)"
+ "$(use_with snmp net-snmp)"
+ "$(use_with sqlite sqlite3)"
+ "$(use_with ssh ssh2)"
+ )
+
+ econf ${econf_args[@]}
+}
+
+src_compile() {
+ if [ -f Makefile ] || [ -f GNUmakefile ] || [ -f makefile ]; then
+ emake AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)"
+ fi
+}
+
+src_install() {
+ local dirs=(
+ /etc/zabbix
+ /var/lib/zabbix
+ /var/lib/zabbix/home
+ /var/lib/zabbix/scripts
+ /var/lib/zabbix/alertscripts
+ /var/lib/zabbix/externalscripts
+ /var/log/zabbix
+ )
+
+ for dir in "${dirs[@]}"; do
+ keepdir "${dir}"
+ done
+
+ if use server; then
+ insinto /etc/zabbix
+ doins "${S}"/conf/zabbix_server.conf
+ fperms 0640 /etc/zabbix/zabbix_server.conf
+ fowners root:zabbix /etc/zabbix/zabbix_server.conf
+
+ newinitd "${FILESDIR}"/zabbix-server-r1.init zabbix-server
+
+ dosbin src/zabbix_server/zabbix_server
+
+ insinto /usr/share/zabbix
+ doins -r "${S}"/database/
+
+ systemd_dounit "${FILESDIR}"/zabbix-server.service
+ newtmpfiles "${FILESDIR}"/zabbix-server.tmpfiles zabbix-server.conf
+ fi
+
+ if use proxy; then
+ insinto /etc/zabbix
+ doins "${S}"/conf/zabbix_proxy.conf
+ fperms 0640 /etc/zabbix/zabbix_proxy.conf
+ fowners root:zabbix /etc/zabbix/zabbix_proxy.conf
+
+ newinitd "${FILESDIR}"/zabbix-proxy.init zabbix-proxy
+
+ dosbin src/zabbix_proxy/zabbix_proxy
+
+ insinto /usr/share/zabbix
+ doins -r "${S}"/database/
+
+ systemd_dounit "${FILESDIR}"/zabbix-proxy.service
+ newtmpfiles "${FILESDIR}"/zabbix-proxy.tmpfiles zabbix-proxy.conf
+ fi
+
+ if use agent; then
+ insinto /etc/zabbix
+ doins "${S}"/conf/zabbix_agentd.conf
+ fperms 0640 /etc/zabbix/zabbix_agentd.conf
+ fowners root:zabbix /etc/zabbix/zabbix_agentd.conf
+
+ newinitd "${FILESDIR}"/zabbix-agentd.init zabbix-agentd
+
+ dosbin src/zabbix_agent/zabbix_agentd
+ dobin \
+ src/zabbix_sender/zabbix_sender \
+ src/zabbix_get/zabbix_get
+
+ systemd_dounit "${FILESDIR}"/zabbix-agentd.service
+ newtmpfiles "${FILESDIR}"/zabbix-agentd.tmpfiles zabbix-agentd.conf
+ fi
+ if use agent2; then
+ insinto /etc/zabbix
+ doins "${S}"/src/go/conf/zabbix_agent2.conf
+ fperms 0640 /etc/zabbix/zabbix_agent2.conf
+ fowners root:zabbix /etc/zabbix/zabbix_agent2.conf
+ keepdir /etc/zabbix/zabbix_agent2.d/plugins.d
+
+ newinitd "${FILESDIR}"/zabbix-agent2.init zabbix-agent2
+
+ dosbin src/go/bin/zabbix_agent2
+
+ systemd_dounit "${FILESDIR}"/zabbix-agent2.service
+ newtmpfiles "${FILESDIR}"/zabbix-agent2.tmpfiles zabbix-agent2.conf
+ fi
+
+ fowners root:zabbix /etc/zabbix
+ fowners zabbix:zabbix \
+ /var/lib/zabbix \
+ /var/lib/zabbix/home \
+ /var/lib/zabbix/scripts \
+ /var/lib/zabbix/alertscripts \
+ /var/lib/zabbix/externalscripts \
+ /var/log/zabbix
+ fperms 0750 \
+ /etc/zabbix \
+ /var/lib/zabbix \
+ /var/lib/zabbix/home \
+ /var/lib/zabbix/scripts \
+ /var/lib/zabbix/alertscripts \
+ /var/lib/zabbix/externalscripts \
+ /var/log/zabbix
+
+ dodoc README INSTALL NEWS ChangeLog \
+ conf/zabbix_agentd.conf \
+ conf/zabbix_proxy.conf \
+ conf/zabbix_agentd/userparameter_examples.conf \
+ conf/zabbix_agentd/userparameter_mysql.conf \
+ conf/zabbix_server.conf
+
+ if use frontend; then
+ webapp_src_preinst
+ cp -R ui/* "${D}/${MY_HTDOCSDIR}"
+ webapp_configfile \
+ "${MY_HTDOCSDIR}"/include/db.inc.php \
+ "${MY_HTDOCSDIR}"/include/config.inc.php
+ webapp_src_install
+ fi
+
+ if use java; then
+ dodir \
+ /${ZABBIXJAVA_BASE} \
+ /${ZABBIXJAVA_BASE}/bin \
+ /${ZABBIXJAVA_BASE}/lib
+ keepdir /${ZABBIXJAVA_BASE}
+ exeinto /${ZABBIXJAVA_BASE}/bin
+ doexe src/zabbix_java/bin/zabbix-java-gateway-"${MY_PV}".jar
+ exeinto /${ZABBIXJAVA_BASE}/lib
+ doexe \
+ src/zabbix_java/lib/logback-classic-1.5.16.jar \
+ src/zabbix_java/lib/logback-console.xml \
+ src/zabbix_java/lib/logback-core-1.5.16.jar \
+ src/zabbix_java/lib/logback.xml \
+ src/zabbix_java/lib/android-json-4.3_r3.1.jar \
+ src/zabbix_java/lib/slf4j-api-2.0.16.jar
+ newinitd "${FILESDIR}"/zabbix-jmx-proxy.init zabbix-jmx-proxy
+ newconfd "${FILESDIR}"/zabbix-jmx-proxy.conf zabbix-jmx-proxy
+ fi
+}
+
+pkg_postinst() {
+ if use server || use proxy ; then
+ elog
+ elog "You may need to configure your database for Zabbix"
+ elog "if you have not already done so."
+ elog
+
+ zabbix_homedir=$(egethome zabbix)
+ if [ -n "${zabbix_homedir}" ] && \
+ [ "${zabbix_homedir}" != "/var/lib/zabbix/home" ]; then
+ ewarn
+ ewarn "The user 'zabbix' should have his homedir changed"
+ ewarn "to /var/lib/zabbix/home if you want to use"
+ ewarn "custom alert scripts."
+ ewarn
+ ewarn "A real homedir might be needed for configfiles"
+ ewarn "for custom alert scripts."
+ ewarn
+ ewarn "To change the homedir use:"
+ ewarn " usermod -d /var/lib/zabbix/home zabbix"
+ ewarn
+ fi
+ fi
+
+ if use server; then
+ tmpfiles_process zabbix-server.conf
+
+ elog
+ elog "For distributed monitoring you have to run:"
+ elog
+ elog "zabbix_server -n <nodeid>"
+ elog
+ elog "This will convert database data for use with Node ID"
+ elog "and also adds a local node."
+ elog
+ fi
+
+ if use oracle; then
+ ewarn
+ ewarn "Support for Oracle database has been dropped from PHP"
+ ewarn "so to make the web frontend work, you need to install"
+ ewarn "PECL extension for Oracle database."
+ ewarn "For details see https://bugs.gentoo.org/928386"
+ fi
+
+ if use proxy; then
+ tmpfiles_process zabbix-proxy.conf
+ fi
+
+ if use agent; then
+ tmpfiles_process zabbix-agentd.conf
+ fi
+
+ if use agent2; then
+ tmpfiles_process zabbix-agent2.conf
+ fi
+
+ elog "--"
+ elog
+ elog "You may need to add these lines to /etc/services:"
+ elog
+ elog "zabbix-agent 10050/tcp Zabbix Agent"
+ elog "zabbix-agent 10050/udp Zabbix Agent"
+ elog "zabbix-trapper 10051/tcp Zabbix Trapper"
+ elog "zabbix-trapper 10051/udp Zabbix Trapper"
+ elog
+}
+
+pkg_prerm() {
+ (use frontend || use server) && webapp_pkg_prerm
+}
diff --git a/net-analyzer/zabbix/zabbix-6.0.43.ebuild b/net-analyzer/zabbix/zabbix-6.0.43.ebuild
new file mode 100644
index 000000000000..cc288b297500
--- /dev/null
+++ b/net-analyzer/zabbix/zabbix-6.0.43.ebuild
@@ -0,0 +1,389 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# To create the go modules tarball:
+# cd src/go
+# GOMODCACHE="${PWD}"/go-mod go mod download -modcacherw
+# tar -acf $(pwd | grep -Eo 'zabbix-[0-9.]+')-go-deps.tar.xz go-mod
+
+EAPI=8
+
+GO_OPTIONAL="yes"
+# needed to make webapp-config dep optional
+WEBAPP_OPTIONAL="yes"
+inherit webapp java-pkg-opt-2 systemd tmpfiles toolchain-funcs go-module user-info
+
+DESCRIPTION="ZABBIX is software for monitoring of your applications, network and servers"
+HOMEPAGE="https://www.zabbix.com/"
+MY_P=${P/_/}
+MY_PV=${PV/_/}
+SRC_URI="https://cdn.zabbix.com/${PN}/sources/stable/$(ver_cut 1-2)/${P}.tar.gz
+ agent2? ( https://dev.gentoo.org/~fordfrog/distfiles/${P}-go-deps.tar.xz )
+"
+
+S=${WORKDIR}/${MY_P}
+
+LICENSE="GPL-2"
+SLOT="0/$(ver_cut 1-2)"
+WEBAPP_MANUAL_SLOT="yes"
+KEYWORDS="~amd64 ~x86"
+IUSE="agent +agent2 curl frontend gnutls ipv6 java ldap libxml2 mysql odbc openipmi +openssl oracle +postgres proxy selinux server snmp sqlite ssh static"
+REQUIRED_USE="|| ( agent agent2 frontend proxy server )
+ ?? ( gnutls openssl )
+ agent2? ( !gnutls )
+ proxy? ( ^^ ( mysql oracle postgres sqlite ) )
+ server? ( ^^ ( mysql oracle postgres ) !sqlite )
+ static? ( !oracle !snmp )"
+
+COMMON_DEPEND="
+ curl? ( net-misc/curl )
+ gnutls? ( net-libs/gnutls:0= )
+ java? ( >=virtual/jdk-1.8:* )
+ ldap? (
+ =dev-libs/cyrus-sasl-2*
+ net-libs/gnutls:=
+ net-nds/openldap:=
+ )
+ libxml2? ( dev-libs/libxml2:= )
+ mysql? ( dev-db/mysql-connector-c:= )
+ odbc? ( dev-db/unixODBC )
+ openipmi? ( sys-libs/openipmi )
+ openssl? ( dev-libs/openssl:=[-bindist(-)] )
+ oracle? ( dev-db/oracle-instantclient[odbc,sdk] )
+ postgres? ( dev-db/postgresql:* )
+ proxy? (
+ dev-libs/libevent:=
+ virtual/zlib:=
+ )
+ server? (
+ dev-libs/libevent:=
+ virtual/zlib:=
+ )
+ snmp? ( net-analyzer/net-snmp:= )
+ sqlite? ( dev-db/sqlite )
+ ssh? ( net-libs/libssh2 )
+"
+
+RDEPEND="${COMMON_DEPEND}
+ acct-group/zabbix
+ acct-user/zabbix
+ java? ( >=virtual/jre-1.8:* )
+ mysql? ( virtual/mysql )
+ proxy? (
+ dev-libs/libpcre2:=
+ net-analyzer/fping[suid]
+ )
+ selinux? ( sec-policy/selinux-zabbix )
+ server? (
+ app-admin/webapp-config
+ dev-libs/libpcre2:=
+ net-analyzer/fping[suid]
+ )
+ frontend? (
+ app-admin/webapp-config
+ dev-lang/php:*[bcmath,ctype,gd,jpeg(+),nls,png(+),session,sockets,sysvipc,truetype,unicode,xml,xmlreader,xmlwriter]
+ media-libs/gd[png]
+ virtual/httpd-php:*
+ mysql? ( dev-lang/php[mysqli] )
+ odbc? ( dev-lang/php[odbc] )
+ postgres? ( dev-lang/php[postgres] )
+ sqlite? ( dev-lang/php[sqlite] )
+ )
+"
+DEPEND="${COMMON_DEPEND}
+ static? (
+ curl? ( net-misc/curl[static-libs] )
+ ldap? (
+ =dev-libs/cyrus-sasl-2*[static-libs]
+ net-libs/gnutls[static-libs]
+ net-nds/openldap[static-libs]
+ )
+ libxml2? ( dev-libs/libxml2[static-libs] )
+ mysql? ( dev-db/mysql-connector-c[static-libs] )
+ odbc? ( dev-db/unixODBC[static-libs] )
+ postgres? ( dev-db/postgresql:*[static-libs] )
+ sqlite? ( dev-db/sqlite[static-libs] )
+ ssh? ( net-libs/libssh2 )
+ )
+"
+BDEPEND="
+ virtual/pkgconfig
+ agent2? (
+ >=dev-lang/go-1.12
+ app-arch/unzip
+ )
+"
+
+# upstream tests fail for agent2
+RESTRICT="test"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-4.0.18-modulepathfix.patch"
+ "${FILESDIR}/${PN}-3.0.30-security-disable-PidFile.patch"
+ "${FILESDIR}/${PN}-6.0.3-system.sw.packages.patch"
+)
+
+ZABBIXJAVA_BASE="opt/zabbix_java"
+
+pkg_setup() {
+ if use oracle; then
+ if [ -z "${ORACLE_HOME}" ]; then
+ eerror
+ eerror "The environment variable ORACLE_HOME must be set"
+ eerror "and point to the correct location."
+ eerror "It looks like you don't have Oracle installed."
+ eerror
+ die "Environment variable ORACLE_HOME is not set"
+ fi
+ fi
+
+ if use frontend; then
+ webapp_pkg_setup
+ fi
+
+ java-pkg-opt-2_pkg_setup
+}
+
+src_prepare() {
+ default
+}
+
+src_configure() {
+ local econf_args=(
+ --with-libpcre2
+ "$(use_enable agent)"
+ "$(use_enable agent2)"
+ "$(use_enable ipv6)"
+ "$(use_enable java)"
+ "$(use_enable proxy)"
+ "$(use_enable server)"
+ "$(use_enable static)"
+ "$(use_with curl libcurl)"
+ "$(use_with gnutls)"
+ "$(use_with ldap)"
+ "$(use_with libxml2)"
+ "$(use_with mysql)"
+ "$(use_with odbc unixodbc)"
+ "$(use_with openipmi openipmi)"
+ "$(use_with openssl)"
+ "$(use_with oracle)"
+ "$(use_with postgres postgresql)"
+ "$(use_with snmp net-snmp)"
+ "$(use_with sqlite sqlite3)"
+ "$(use_with ssh ssh2)"
+ )
+
+ econf ${econf_args[@]}
+}
+
+src_compile() {
+ if [ -f Makefile ] || [ -f GNUmakefile ] || [ -f makefile ]; then
+ emake AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)"
+ fi
+}
+
+src_install() {
+ local dirs=(
+ /etc/zabbix
+ /var/lib/zabbix
+ /var/lib/zabbix/home
+ /var/lib/zabbix/scripts
+ /var/lib/zabbix/alertscripts
+ /var/lib/zabbix/externalscripts
+ /var/log/zabbix
+ )
+
+ for dir in "${dirs[@]}"; do
+ keepdir "${dir}"
+ done
+
+ if use server; then
+ insinto /etc/zabbix
+ doins "${S}"/conf/zabbix_server.conf
+ fperms 0640 /etc/zabbix/zabbix_server.conf
+ fowners root:zabbix /etc/zabbix/zabbix_server.conf
+
+ newinitd "${FILESDIR}"/zabbix-server-r1.init zabbix-server
+
+ dosbin src/zabbix_server/zabbix_server
+
+ insinto /usr/share/zabbix
+ doins -r "${S}"/database/
+
+ systemd_dounit "${FILESDIR}"/zabbix-server.service
+ newtmpfiles "${FILESDIR}"/zabbix-server.tmpfiles zabbix-server.conf
+ fi
+
+ if use proxy; then
+ insinto /etc/zabbix
+ doins "${S}"/conf/zabbix_proxy.conf
+ fperms 0640 /etc/zabbix/zabbix_proxy.conf
+ fowners root:zabbix /etc/zabbix/zabbix_proxy.conf
+
+ newinitd "${FILESDIR}"/zabbix-proxy.init zabbix-proxy
+
+ dosbin src/zabbix_proxy/zabbix_proxy
+
+ insinto /usr/share/zabbix
+ doins -r "${S}"/database/
+
+ systemd_dounit "${FILESDIR}"/zabbix-proxy.service
+ newtmpfiles "${FILESDIR}"/zabbix-proxy.tmpfiles zabbix-proxy.conf
+ fi
+
+ if use agent; then
+ insinto /etc/zabbix
+ doins "${S}"/conf/zabbix_agentd.conf
+ fperms 0640 /etc/zabbix/zabbix_agentd.conf
+ fowners root:zabbix /etc/zabbix/zabbix_agentd.conf
+
+ newinitd "${FILESDIR}"/zabbix-agentd.init zabbix-agentd
+
+ dosbin src/zabbix_agent/zabbix_agentd
+ dobin \
+ src/zabbix_sender/zabbix_sender \
+ src/zabbix_get/zabbix_get
+
+ systemd_dounit "${FILESDIR}"/zabbix-agentd.service
+ newtmpfiles "${FILESDIR}"/zabbix-agentd.tmpfiles zabbix-agentd.conf
+ fi
+ if use agent2; then
+ insinto /etc/zabbix
+ doins "${S}"/src/go/conf/zabbix_agent2.conf
+ fperms 0640 /etc/zabbix/zabbix_agent2.conf
+ fowners root:zabbix /etc/zabbix/zabbix_agent2.conf
+ keepdir /etc/zabbix/zabbix_agent2.d/plugins.d
+
+ newinitd "${FILESDIR}"/zabbix-agent2.init zabbix-agent2
+
+ dosbin src/go/bin/zabbix_agent2
+
+ systemd_dounit "${FILESDIR}"/zabbix-agent2.service
+ newtmpfiles "${FILESDIR}"/zabbix-agent2.tmpfiles zabbix-agent2.conf
+ fi
+
+ fowners root:zabbix /etc/zabbix
+ fowners zabbix:zabbix \
+ /var/lib/zabbix \
+ /var/lib/zabbix/home \
+ /var/lib/zabbix/scripts \
+ /var/lib/zabbix/alertscripts \
+ /var/lib/zabbix/externalscripts \
+ /var/log/zabbix
+ fperms 0750 \
+ /etc/zabbix \
+ /var/lib/zabbix \
+ /var/lib/zabbix/home \
+ /var/lib/zabbix/scripts \
+ /var/lib/zabbix/alertscripts \
+ /var/lib/zabbix/externalscripts \
+ /var/log/zabbix
+
+ dodoc README INSTALL NEWS ChangeLog \
+ conf/zabbix_agentd.conf \
+ conf/zabbix_proxy.conf \
+ conf/zabbix_agentd/userparameter_examples.conf \
+ conf/zabbix_agentd/userparameter_mysql.conf \
+ conf/zabbix_server.conf
+
+ if use frontend; then
+ webapp_src_preinst
+ cp -R ui/* "${D}/${MY_HTDOCSDIR}"
+ webapp_configfile \
+ "${MY_HTDOCSDIR}"/include/db.inc.php \
+ "${MY_HTDOCSDIR}"/include/config.inc.php
+ webapp_src_install
+ fi
+
+ if use java; then
+ dodir \
+ /${ZABBIXJAVA_BASE} \
+ /${ZABBIXJAVA_BASE}/bin \
+ /${ZABBIXJAVA_BASE}/lib
+ keepdir /${ZABBIXJAVA_BASE}
+ exeinto /${ZABBIXJAVA_BASE}/bin
+ doexe src/zabbix_java/bin/zabbix-java-gateway-"${MY_PV}".jar
+ exeinto /${ZABBIXJAVA_BASE}/lib
+ doexe \
+ src/zabbix_java/lib/logback-classic-1.5.16.jar \
+ src/zabbix_java/lib/logback-console.xml \
+ src/zabbix_java/lib/logback-core-1.5.16.jar \
+ src/zabbix_java/lib/logback.xml \
+ src/zabbix_java/lib/android-json-4.3_r3.1.jar \
+ src/zabbix_java/lib/slf4j-api-2.0.16.jar
+ newinitd "${FILESDIR}"/zabbix-jmx-proxy.init zabbix-jmx-proxy
+ newconfd "${FILESDIR}"/zabbix-jmx-proxy.conf zabbix-jmx-proxy
+ fi
+}
+
+pkg_postinst() {
+ if use server || use proxy ; then
+ elog
+ elog "You may need to configure your database for Zabbix"
+ elog "if you have not already done so."
+ elog
+
+ zabbix_homedir=$(egethome zabbix)
+ if [ -n "${zabbix_homedir}" ] && \
+ [ "${zabbix_homedir}" != "/var/lib/zabbix/home" ]; then
+ ewarn
+ ewarn "The user 'zabbix' should have his homedir changed"
+ ewarn "to /var/lib/zabbix/home if you want to use"
+ ewarn "custom alert scripts."
+ ewarn
+ ewarn "A real homedir might be needed for configfiles"
+ ewarn "for custom alert scripts."
+ ewarn
+ ewarn "To change the homedir use:"
+ ewarn " usermod -d /var/lib/zabbix/home zabbix"
+ ewarn
+ fi
+ fi
+
+ if use server; then
+ tmpfiles_process zabbix-server.conf
+
+ elog
+ elog "For distributed monitoring you have to run:"
+ elog
+ elog "zabbix_server -n <nodeid>"
+ elog
+ elog "This will convert database data for use with Node ID"
+ elog "and also adds a local node."
+ elog
+ fi
+
+ if use oracle; then
+ ewarn
+ ewarn "Support for Oracle database has been dropped from PHP"
+ ewarn "so to make the web frontend work, you need to install"
+ ewarn "PECL extension for Oracle database."
+ ewarn "For details see https://bugs.gentoo.org/928386"
+ fi
+
+ if use proxy; then
+ tmpfiles_process zabbix-proxy.conf
+ fi
+
+ if use agent; then
+ tmpfiles_process zabbix-agentd.conf
+ fi
+
+ if use agent2; then
+ tmpfiles_process zabbix-agent2.conf
+ fi
+
+ elog "--"
+ elog
+ elog "You may need to add these lines to /etc/services:"
+ elog
+ elog "zabbix-agent 10050/tcp Zabbix Agent"
+ elog "zabbix-agent 10050/udp Zabbix Agent"
+ elog "zabbix-trapper 10051/tcp Zabbix Trapper"
+ elog "zabbix-trapper 10051/udp Zabbix Trapper"
+ elog
+}
+
+pkg_prerm() {
+ (use frontend || use server) && webapp_pkg_prerm
+}
diff --git a/net-analyzer/zabbix/zabbix-6.0.46.ebuild b/net-analyzer/zabbix/zabbix-6.0.46.ebuild
new file mode 100644
index 000000000000..cc288b297500
--- /dev/null
+++ b/net-analyzer/zabbix/zabbix-6.0.46.ebuild
@@ -0,0 +1,389 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# To create the go modules tarball:
+# cd src/go
+# GOMODCACHE="${PWD}"/go-mod go mod download -modcacherw
+# tar -acf $(pwd | grep -Eo 'zabbix-[0-9.]+')-go-deps.tar.xz go-mod
+
+EAPI=8
+
+GO_OPTIONAL="yes"
+# needed to make webapp-config dep optional
+WEBAPP_OPTIONAL="yes"
+inherit webapp java-pkg-opt-2 systemd tmpfiles toolchain-funcs go-module user-info
+
+DESCRIPTION="ZABBIX is software for monitoring of your applications, network and servers"
+HOMEPAGE="https://www.zabbix.com/"
+MY_P=${P/_/}
+MY_PV=${PV/_/}
+SRC_URI="https://cdn.zabbix.com/${PN}/sources/stable/$(ver_cut 1-2)/${P}.tar.gz
+ agent2? ( https://dev.gentoo.org/~fordfrog/distfiles/${P}-go-deps.tar.xz )
+"
+
+S=${WORKDIR}/${MY_P}
+
+LICENSE="GPL-2"
+SLOT="0/$(ver_cut 1-2)"
+WEBAPP_MANUAL_SLOT="yes"
+KEYWORDS="~amd64 ~x86"
+IUSE="agent +agent2 curl frontend gnutls ipv6 java ldap libxml2 mysql odbc openipmi +openssl oracle +postgres proxy selinux server snmp sqlite ssh static"
+REQUIRED_USE="|| ( agent agent2 frontend proxy server )
+ ?? ( gnutls openssl )
+ agent2? ( !gnutls )
+ proxy? ( ^^ ( mysql oracle postgres sqlite ) )
+ server? ( ^^ ( mysql oracle postgres ) !sqlite )
+ static? ( !oracle !snmp )"
+
+COMMON_DEPEND="
+ curl? ( net-misc/curl )
+ gnutls? ( net-libs/gnutls:0= )
+ java? ( >=virtual/jdk-1.8:* )
+ ldap? (
+ =dev-libs/cyrus-sasl-2*
+ net-libs/gnutls:=
+ net-nds/openldap:=
+ )
+ libxml2? ( dev-libs/libxml2:= )
+ mysql? ( dev-db/mysql-connector-c:= )
+ odbc? ( dev-db/unixODBC )
+ openipmi? ( sys-libs/openipmi )
+ openssl? ( dev-libs/openssl:=[-bindist(-)] )
+ oracle? ( dev-db/oracle-instantclient[odbc,sdk] )
+ postgres? ( dev-db/postgresql:* )
+ proxy? (
+ dev-libs/libevent:=
+ virtual/zlib:=
+ )
+ server? (
+ dev-libs/libevent:=
+ virtual/zlib:=
+ )
+ snmp? ( net-analyzer/net-snmp:= )
+ sqlite? ( dev-db/sqlite )
+ ssh? ( net-libs/libssh2 )
+"
+
+RDEPEND="${COMMON_DEPEND}
+ acct-group/zabbix
+ acct-user/zabbix
+ java? ( >=virtual/jre-1.8:* )
+ mysql? ( virtual/mysql )
+ proxy? (
+ dev-libs/libpcre2:=
+ net-analyzer/fping[suid]
+ )
+ selinux? ( sec-policy/selinux-zabbix )
+ server? (
+ app-admin/webapp-config
+ dev-libs/libpcre2:=
+ net-analyzer/fping[suid]
+ )
+ frontend? (
+ app-admin/webapp-config
+ dev-lang/php:*[bcmath,ctype,gd,jpeg(+),nls,png(+),session,sockets,sysvipc,truetype,unicode,xml,xmlreader,xmlwriter]
+ media-libs/gd[png]
+ virtual/httpd-php:*
+ mysql? ( dev-lang/php[mysqli] )
+ odbc? ( dev-lang/php[odbc] )
+ postgres? ( dev-lang/php[postgres] )
+ sqlite? ( dev-lang/php[sqlite] )
+ )
+"
+DEPEND="${COMMON_DEPEND}
+ static? (
+ curl? ( net-misc/curl[static-libs] )
+ ldap? (
+ =dev-libs/cyrus-sasl-2*[static-libs]
+ net-libs/gnutls[static-libs]
+ net-nds/openldap[static-libs]
+ )
+ libxml2? ( dev-libs/libxml2[static-libs] )
+ mysql? ( dev-db/mysql-connector-c[static-libs] )
+ odbc? ( dev-db/unixODBC[static-libs] )
+ postgres? ( dev-db/postgresql:*[static-libs] )
+ sqlite? ( dev-db/sqlite[static-libs] )
+ ssh? ( net-libs/libssh2 )
+ )
+"
+BDEPEND="
+ virtual/pkgconfig
+ agent2? (
+ >=dev-lang/go-1.12
+ app-arch/unzip
+ )
+"
+
+# upstream tests fail for agent2
+RESTRICT="test"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-4.0.18-modulepathfix.patch"
+ "${FILESDIR}/${PN}-3.0.30-security-disable-PidFile.patch"
+ "${FILESDIR}/${PN}-6.0.3-system.sw.packages.patch"
+)
+
+ZABBIXJAVA_BASE="opt/zabbix_java"
+
+pkg_setup() {
+ if use oracle; then
+ if [ -z "${ORACLE_HOME}" ]; then
+ eerror
+ eerror "The environment variable ORACLE_HOME must be set"
+ eerror "and point to the correct location."
+ eerror "It looks like you don't have Oracle installed."
+ eerror
+ die "Environment variable ORACLE_HOME is not set"
+ fi
+ fi
+
+ if use frontend; then
+ webapp_pkg_setup
+ fi
+
+ java-pkg-opt-2_pkg_setup
+}
+
+src_prepare() {
+ default
+}
+
+src_configure() {
+ local econf_args=(
+ --with-libpcre2
+ "$(use_enable agent)"
+ "$(use_enable agent2)"
+ "$(use_enable ipv6)"
+ "$(use_enable java)"
+ "$(use_enable proxy)"
+ "$(use_enable server)"
+ "$(use_enable static)"
+ "$(use_with curl libcurl)"
+ "$(use_with gnutls)"
+ "$(use_with ldap)"
+ "$(use_with libxml2)"
+ "$(use_with mysql)"
+ "$(use_with odbc unixodbc)"
+ "$(use_with openipmi openipmi)"
+ "$(use_with openssl)"
+ "$(use_with oracle)"
+ "$(use_with postgres postgresql)"
+ "$(use_with snmp net-snmp)"
+ "$(use_with sqlite sqlite3)"
+ "$(use_with ssh ssh2)"
+ )
+
+ econf ${econf_args[@]}
+}
+
+src_compile() {
+ if [ -f Makefile ] || [ -f GNUmakefile ] || [ -f makefile ]; then
+ emake AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)"
+ fi
+}
+
+src_install() {
+ local dirs=(
+ /etc/zabbix
+ /var/lib/zabbix
+ /var/lib/zabbix/home
+ /var/lib/zabbix/scripts
+ /var/lib/zabbix/alertscripts
+ /var/lib/zabbix/externalscripts
+ /var/log/zabbix
+ )
+
+ for dir in "${dirs[@]}"; do
+ keepdir "${dir}"
+ done
+
+ if use server; then
+ insinto /etc/zabbix
+ doins "${S}"/conf/zabbix_server.conf
+ fperms 0640 /etc/zabbix/zabbix_server.conf
+ fowners root:zabbix /etc/zabbix/zabbix_server.conf
+
+ newinitd "${FILESDIR}"/zabbix-server-r1.init zabbix-server
+
+ dosbin src/zabbix_server/zabbix_server
+
+ insinto /usr/share/zabbix
+ doins -r "${S}"/database/
+
+ systemd_dounit "${FILESDIR}"/zabbix-server.service
+ newtmpfiles "${FILESDIR}"/zabbix-server.tmpfiles zabbix-server.conf
+ fi
+
+ if use proxy; then
+ insinto /etc/zabbix
+ doins "${S}"/conf/zabbix_proxy.conf
+ fperms 0640 /etc/zabbix/zabbix_proxy.conf
+ fowners root:zabbix /etc/zabbix/zabbix_proxy.conf
+
+ newinitd "${FILESDIR}"/zabbix-proxy.init zabbix-proxy
+
+ dosbin src/zabbix_proxy/zabbix_proxy
+
+ insinto /usr/share/zabbix
+ doins -r "${S}"/database/
+
+ systemd_dounit "${FILESDIR}"/zabbix-proxy.service
+ newtmpfiles "${FILESDIR}"/zabbix-proxy.tmpfiles zabbix-proxy.conf
+ fi
+
+ if use agent; then
+ insinto /etc/zabbix
+ doins "${S}"/conf/zabbix_agentd.conf
+ fperms 0640 /etc/zabbix/zabbix_agentd.conf
+ fowners root:zabbix /etc/zabbix/zabbix_agentd.conf
+
+ newinitd "${FILESDIR}"/zabbix-agentd.init zabbix-agentd
+
+ dosbin src/zabbix_agent/zabbix_agentd
+ dobin \
+ src/zabbix_sender/zabbix_sender \
+ src/zabbix_get/zabbix_get
+
+ systemd_dounit "${FILESDIR}"/zabbix-agentd.service
+ newtmpfiles "${FILESDIR}"/zabbix-agentd.tmpfiles zabbix-agentd.conf
+ fi
+ if use agent2; then
+ insinto /etc/zabbix
+ doins "${S}"/src/go/conf/zabbix_agent2.conf
+ fperms 0640 /etc/zabbix/zabbix_agent2.conf
+ fowners root:zabbix /etc/zabbix/zabbix_agent2.conf
+ keepdir /etc/zabbix/zabbix_agent2.d/plugins.d
+
+ newinitd "${FILESDIR}"/zabbix-agent2.init zabbix-agent2
+
+ dosbin src/go/bin/zabbix_agent2
+
+ systemd_dounit "${FILESDIR}"/zabbix-agent2.service
+ newtmpfiles "${FILESDIR}"/zabbix-agent2.tmpfiles zabbix-agent2.conf
+ fi
+
+ fowners root:zabbix /etc/zabbix
+ fowners zabbix:zabbix \
+ /var/lib/zabbix \
+ /var/lib/zabbix/home \
+ /var/lib/zabbix/scripts \
+ /var/lib/zabbix/alertscripts \
+ /var/lib/zabbix/externalscripts \
+ /var/log/zabbix
+ fperms 0750 \
+ /etc/zabbix \
+ /var/lib/zabbix \
+ /var/lib/zabbix/home \
+ /var/lib/zabbix/scripts \
+ /var/lib/zabbix/alertscripts \
+ /var/lib/zabbix/externalscripts \
+ /var/log/zabbix
+
+ dodoc README INSTALL NEWS ChangeLog \
+ conf/zabbix_agentd.conf \
+ conf/zabbix_proxy.conf \
+ conf/zabbix_agentd/userparameter_examples.conf \
+ conf/zabbix_agentd/userparameter_mysql.conf \
+ conf/zabbix_server.conf
+
+ if use frontend; then
+ webapp_src_preinst
+ cp -R ui/* "${D}/${MY_HTDOCSDIR}"
+ webapp_configfile \
+ "${MY_HTDOCSDIR}"/include/db.inc.php \
+ "${MY_HTDOCSDIR}"/include/config.inc.php
+ webapp_src_install
+ fi
+
+ if use java; then
+ dodir \
+ /${ZABBIXJAVA_BASE} \
+ /${ZABBIXJAVA_BASE}/bin \
+ /${ZABBIXJAVA_BASE}/lib
+ keepdir /${ZABBIXJAVA_BASE}
+ exeinto /${ZABBIXJAVA_BASE}/bin
+ doexe src/zabbix_java/bin/zabbix-java-gateway-"${MY_PV}".jar
+ exeinto /${ZABBIXJAVA_BASE}/lib
+ doexe \
+ src/zabbix_java/lib/logback-classic-1.5.16.jar \
+ src/zabbix_java/lib/logback-console.xml \
+ src/zabbix_java/lib/logback-core-1.5.16.jar \
+ src/zabbix_java/lib/logback.xml \
+ src/zabbix_java/lib/android-json-4.3_r3.1.jar \
+ src/zabbix_java/lib/slf4j-api-2.0.16.jar
+ newinitd "${FILESDIR}"/zabbix-jmx-proxy.init zabbix-jmx-proxy
+ newconfd "${FILESDIR}"/zabbix-jmx-proxy.conf zabbix-jmx-proxy
+ fi
+}
+
+pkg_postinst() {
+ if use server || use proxy ; then
+ elog
+ elog "You may need to configure your database for Zabbix"
+ elog "if you have not already done so."
+ elog
+
+ zabbix_homedir=$(egethome zabbix)
+ if [ -n "${zabbix_homedir}" ] && \
+ [ "${zabbix_homedir}" != "/var/lib/zabbix/home" ]; then
+ ewarn
+ ewarn "The user 'zabbix' should have his homedir changed"
+ ewarn "to /var/lib/zabbix/home if you want to use"
+ ewarn "custom alert scripts."
+ ewarn
+ ewarn "A real homedir might be needed for configfiles"
+ ewarn "for custom alert scripts."
+ ewarn
+ ewarn "To change the homedir use:"
+ ewarn " usermod -d /var/lib/zabbix/home zabbix"
+ ewarn
+ fi
+ fi
+
+ if use server; then
+ tmpfiles_process zabbix-server.conf
+
+ elog
+ elog "For distributed monitoring you have to run:"
+ elog
+ elog "zabbix_server -n <nodeid>"
+ elog
+ elog "This will convert database data for use with Node ID"
+ elog "and also adds a local node."
+ elog
+ fi
+
+ if use oracle; then
+ ewarn
+ ewarn "Support for Oracle database has been dropped from PHP"
+ ewarn "so to make the web frontend work, you need to install"
+ ewarn "PECL extension for Oracle database."
+ ewarn "For details see https://bugs.gentoo.org/928386"
+ fi
+
+ if use proxy; then
+ tmpfiles_process zabbix-proxy.conf
+ fi
+
+ if use agent; then
+ tmpfiles_process zabbix-agentd.conf
+ fi
+
+ if use agent2; then
+ tmpfiles_process zabbix-agent2.conf
+ fi
+
+ elog "--"
+ elog
+ elog "You may need to add these lines to /etc/services:"
+ elog
+ elog "zabbix-agent 10050/tcp Zabbix Agent"
+ elog "zabbix-agent 10050/udp Zabbix Agent"
+ elog "zabbix-trapper 10051/tcp Zabbix Trapper"
+ elog "zabbix-trapper 10051/udp Zabbix Trapper"
+ elog
+}
+
+pkg_prerm() {
+ (use frontend || use server) && webapp_pkg_prerm
+}
diff --git a/net-analyzer/zabbix/zabbix-7.0.18.ebuild b/net-analyzer/zabbix/zabbix-7.0.18.ebuild
new file mode 100644
index 000000000000..a3477712f6ce
--- /dev/null
+++ b/net-analyzer/zabbix/zabbix-7.0.18.ebuild
@@ -0,0 +1,371 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# To create the go modules tarball:
+# cd src/go
+# GOMODCACHE="${PWD}"/go-mod go mod download -modcacherw
+# tar -acf $(pwd | grep -Eo 'zabbix-[0-9.]+')-go-deps.tar.xz go-mod
+
+EAPI=8
+
+GO_OPTIONAL="yes"
+# needed to make webapp-config dep optional
+WEBAPP_OPTIONAL="yes"
+inherit autotools webapp java-pkg-opt-2 systemd tmpfiles toolchain-funcs go-module user-info
+
+DESCRIPTION="ZABBIX is software for monitoring of your applications, network and servers"
+HOMEPAGE="https://www.zabbix.com/"
+MY_P=${P/_/}
+MY_PV=${PV/_/}
+SRC_URI="https://cdn.zabbix.com/${PN}/sources/stable/$(ver_cut 1-2)/${P}.tar.gz
+ agent2? ( https://dev.gentoo.org/~fordfrog/distfiles/${P}-go-deps.tar.xz )
+"
+
+S=${WORKDIR}/${MY_P}
+
+LICENSE="AGPL-3"
+SLOT="0/$(ver_cut 1-2)"
+WEBAPP_MANUAL_SLOT="yes"
+KEYWORDS="amd64 arm64 ~x86"
+IUSE="agent +agent2 curl frontend gnutls ipv6 java ldap libxml2 mysql odbc openipmi +openssl +postgres proxy selinux server snmp sqlite ssh static"
+REQUIRED_USE="|| ( agent agent2 frontend proxy server )
+ ?? ( gnutls openssl )
+ agent2? ( !gnutls )
+ proxy? ( ^^ ( mysql postgres sqlite ) )
+ server? ( ^^ ( mysql postgres ) !sqlite )
+ static? ( !snmp )"
+
+COMMON_DEPEND="
+ curl? ( net-misc/curl )
+ gnutls? ( net-libs/gnutls:0= )
+ java? ( >=virtual/jdk-1.8:* )
+ ldap? (
+ =dev-libs/cyrus-sasl-2*
+ net-libs/gnutls:=
+ net-nds/openldap:=
+ )
+ libxml2? ( dev-libs/libxml2:= )
+ mysql? ( dev-db/mysql-connector-c:= )
+ odbc? ( dev-db/unixODBC )
+ openipmi? ( sys-libs/openipmi )
+ openssl? ( dev-libs/openssl:=[-bindist(-)] )
+ postgres? ( dev-db/postgresql:* )
+ proxy? (
+ dev-libs/libevent:=
+ virtual/zlib:=
+ )
+ server? (
+ dev-libs/libevent:=
+ virtual/zlib:=
+ )
+ snmp? ( net-analyzer/net-snmp:= )
+ sqlite? ( dev-db/sqlite )
+ ssh? ( net-libs/libssh2 )
+"
+
+RDEPEND="${COMMON_DEPEND}
+ acct-group/zabbix
+ acct-user/zabbix
+ java? ( >=virtual/jre-1.8:* )
+ mysql? ( virtual/mysql )
+ proxy? (
+ dev-libs/libpcre2:=
+ net-analyzer/fping[suid]
+ )
+ selinux? ( sec-policy/selinux-zabbix )
+ server? (
+ app-admin/webapp-config
+ dev-libs/libpcre2:=
+ net-analyzer/fping[suid]
+ )
+ frontend? (
+ app-admin/webapp-config
+ dev-lang/php:*[bcmath,ctype,gd,jpeg(+),nls,png(+),session,sockets,sysvipc,truetype,unicode,xml,xmlreader,xmlwriter]
+ media-libs/gd[png]
+ virtual/httpd-php:*
+ mysql? ( dev-lang/php[mysqli] )
+ odbc? ( dev-lang/php[odbc] )
+ postgres? ( dev-lang/php[postgres] )
+ sqlite? ( dev-lang/php[sqlite] )
+ )
+"
+DEPEND="${COMMON_DEPEND}
+ static? (
+ curl? ( net-misc/curl[static-libs] )
+ ldap? (
+ =dev-libs/cyrus-sasl-2*[static-libs]
+ net-libs/gnutls[static-libs]
+ net-nds/openldap[static-libs]
+ )
+ libxml2? ( dev-libs/libxml2[static-libs] )
+ mysql? ( dev-db/mysql-connector-c[static-libs] )
+ odbc? ( dev-db/unixODBC[static-libs] )
+ postgres? ( dev-db/postgresql:*[static-libs] )
+ sqlite? ( dev-db/sqlite[static-libs] )
+ ssh? ( net-libs/libssh2 )
+ )
+"
+BDEPEND="
+ virtual/pkgconfig
+ agent2? (
+ >=dev-lang/go-1.12
+ app-arch/unzip
+ )
+"
+
+# upstream tests fail for agent2
+RESTRICT="test"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-4.0.18-modulepathfix.patch"
+ "${FILESDIR}/${PN}-3.0.30-security-disable-PidFile.patch"
+ "${FILESDIR}/${PN}-6.4.0-configure-sscanf.patch"
+)
+
+ZABBIXJAVA_BASE="opt/zabbix_java"
+
+pkg_setup() {
+ if use frontend; then
+ webapp_pkg_setup
+ fi
+
+ java-pkg-opt-2_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # Since we patch configure.ac with e.g., ${PN}-6.4.0-configure-sscanf.patch".
+ eautoreconf
+}
+
+src_configure() {
+ local econf_args=(
+ --with-libpcre2
+ "$(use_enable agent)"
+ "$(use_enable agent2)"
+ "$(use_enable ipv6)"
+ "$(use_enable java)"
+ "$(use_enable proxy)"
+ "$(use_enable server)"
+ "$(use_enable static)"
+ "$(use_with curl libcurl)"
+ "$(use_with gnutls)"
+ "$(use_with ldap)"
+ "$(use_with libxml2)"
+ "$(use_with mysql)"
+ "$(use_with odbc unixodbc)"
+ "$(use_with openipmi openipmi)"
+ "$(use_with openssl)"
+ "$(use_with postgres postgresql)"
+ "$(use_with snmp net-snmp)"
+ "$(use_with sqlite sqlite3)"
+ "$(use_with ssh ssh2)"
+ )
+
+ econf ${econf_args[@]}
+}
+
+src_compile() {
+ if [ -f Makefile ] || [ -f GNUmakefile ] || [ -f makefile ]; then
+ emake AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)"
+ fi
+}
+
+src_install() {
+ local dirs=(
+ /etc/zabbix
+ /var/lib/zabbix
+ /var/lib/zabbix/home
+ /var/lib/zabbix/scripts
+ /var/lib/zabbix/alertscripts
+ /var/lib/zabbix/externalscripts
+ /var/log/zabbix
+ )
+
+ for dir in "${dirs[@]}"; do
+ keepdir "${dir}"
+ done
+
+ if use server; then
+ insinto /etc/zabbix
+ doins "${S}"/conf/zabbix_server.conf
+ fperms 0640 /etc/zabbix/zabbix_server.conf
+ fowners root:zabbix /etc/zabbix/zabbix_server.conf
+
+ newinitd "${FILESDIR}"/zabbix-server-r1.init zabbix-server
+
+ dosbin src/zabbix_server/zabbix_server
+
+ insinto /usr/share/zabbix
+ doins -r "${S}"/database/
+
+ systemd_dounit "${FILESDIR}"/zabbix-server.service
+ newtmpfiles "${FILESDIR}"/zabbix-server.tmpfiles zabbix-server.conf
+ fi
+
+ if use proxy; then
+ insinto /etc/zabbix
+ doins "${S}"/conf/zabbix_proxy.conf
+ fperms 0640 /etc/zabbix/zabbix_proxy.conf
+ fowners root:zabbix /etc/zabbix/zabbix_proxy.conf
+
+ newinitd "${FILESDIR}"/zabbix-proxy.init zabbix-proxy
+
+ dosbin src/zabbix_proxy/zabbix_proxy
+
+ insinto /usr/share/zabbix
+ doins -r "${S}"/database/
+
+ systemd_dounit "${FILESDIR}"/zabbix-proxy.service
+ newtmpfiles "${FILESDIR}"/zabbix-proxy.tmpfiles zabbix-proxy.conf
+ fi
+
+ if use agent; then
+ insinto /etc/zabbix
+ doins "${S}"/conf/zabbix_agentd.conf
+ fperms 0640 /etc/zabbix/zabbix_agentd.conf
+ fowners root:zabbix /etc/zabbix/zabbix_agentd.conf
+
+ newinitd "${FILESDIR}"/zabbix-agentd.init zabbix-agentd
+
+ dosbin src/zabbix_agent/zabbix_agentd
+ dobin \
+ src/zabbix_sender/zabbix_sender \
+ src/zabbix_get/zabbix_get
+
+ systemd_dounit "${FILESDIR}"/zabbix-agentd.service
+ newtmpfiles "${FILESDIR}"/zabbix-agentd.tmpfiles zabbix-agentd.conf
+ fi
+ if use agent2; then
+ insinto /etc/zabbix
+ doins "${S}"/src/go/conf/zabbix_agent2.conf
+ fperms 0640 /etc/zabbix/zabbix_agent2.conf
+ fowners root:zabbix /etc/zabbix/zabbix_agent2.conf
+ keepdir /etc/zabbix/zabbix_agent2.d/plugins.d
+
+ newinitd "${FILESDIR}"/zabbix-agent2.init zabbix-agent2
+
+ dosbin src/go/bin/zabbix_agent2
+
+ systemd_dounit "${FILESDIR}"/zabbix-agent2.service
+ newtmpfiles "${FILESDIR}"/zabbix-agent2.tmpfiles zabbix-agent2.conf
+ fi
+
+ fowners root:zabbix /etc/zabbix
+ fowners zabbix:zabbix \
+ /var/lib/zabbix \
+ /var/lib/zabbix/home \
+ /var/lib/zabbix/scripts \
+ /var/lib/zabbix/alertscripts \
+ /var/lib/zabbix/externalscripts \
+ /var/log/zabbix
+ fperms 0750 \
+ /etc/zabbix \
+ /var/lib/zabbix \
+ /var/lib/zabbix/home \
+ /var/lib/zabbix/scripts \
+ /var/lib/zabbix/alertscripts \
+ /var/lib/zabbix/externalscripts \
+ /var/log/zabbix
+
+ dodoc README INSTALL NEWS ChangeLog \
+ conf/zabbix_agentd.conf \
+ conf/zabbix_proxy.conf \
+ conf/zabbix_agentd/userparameter_examples.conf \
+ conf/zabbix_agentd/userparameter_mysql.conf \
+ conf/zabbix_server.conf
+
+ if use frontend; then
+ webapp_src_preinst
+ cp -R ui/* "${D}/${MY_HTDOCSDIR}"
+ webapp_configfile \
+ "${MY_HTDOCSDIR}"/include/db.inc.php \
+ "${MY_HTDOCSDIR}"/include/config.inc.php
+ webapp_src_install
+ fi
+
+ if use java; then
+ dodir \
+ /${ZABBIXJAVA_BASE} \
+ /${ZABBIXJAVA_BASE}/bin \
+ /${ZABBIXJAVA_BASE}/lib
+ keepdir /${ZABBIXJAVA_BASE}
+ exeinto /${ZABBIXJAVA_BASE}/bin
+ doexe src/zabbix_java/bin/zabbix-java-gateway-"${MY_PV}".jar
+ exeinto /${ZABBIXJAVA_BASE}/lib
+ doexe \
+ src/zabbix_java/lib/logback-classic-1.5.16.jar \
+ src/zabbix_java/lib/logback-console.xml \
+ src/zabbix_java/lib/logback-core-1.5.16.jar \
+ src/zabbix_java/lib/logback.xml \
+ src/zabbix_java/lib/android-json-4.3_r3.1.jar \
+ src/zabbix_java/lib/slf4j-api-2.0.16.jar
+ newinitd "${FILESDIR}"/zabbix-jmx-proxy.init zabbix-jmx-proxy
+ newconfd "${FILESDIR}"/zabbix-jmx-proxy.conf zabbix-jmx-proxy
+ fi
+}
+
+pkg_postinst() {
+ if use server || use proxy ; then
+ elog
+ elog "You may need to configure your database for Zabbix"
+ elog "if you have not already done so."
+ elog
+
+ zabbix_homedir=$(egethome zabbix)
+ if [ -n "${zabbix_homedir}" ] && \
+ [ "${zabbix_homedir}" != "/var/lib/zabbix/home" ]; then
+ ewarn
+ ewarn "The user 'zabbix' should have his homedir changed"
+ ewarn "to /var/lib/zabbix/home if you want to use"
+ ewarn "custom alert scripts."
+ ewarn
+ ewarn "A real homedir might be needed for configfiles"
+ ewarn "for custom alert scripts."
+ ewarn
+ ewarn "To change the homedir use:"
+ ewarn " usermod -d /var/lib/zabbix/home zabbix"
+ ewarn
+ fi
+ fi
+
+ if use server; then
+ tmpfiles_process zabbix-server.conf
+
+ elog
+ elog "For distributed monitoring you have to run:"
+ elog
+ elog "zabbix_server -n <nodeid>"
+ elog
+ elog "This will convert database data for use with Node ID"
+ elog "and also adds a local node."
+ elog
+ fi
+
+ if use proxy; then
+ tmpfiles_process zabbix-proxy.conf
+ fi
+
+ if use agent; then
+ tmpfiles_process zabbix-agentd.conf
+ fi
+
+ if use agent2; then
+ tmpfiles_process zabbix-agent2.conf
+ fi
+
+ elog "--"
+ elog
+ elog "You may need to add these lines to /etc/services:"
+ elog
+ elog "zabbix-agent 10050/tcp Zabbix Agent"
+ elog "zabbix-agent 10050/udp Zabbix Agent"
+ elog "zabbix-trapper 10051/tcp Zabbix Trapper"
+ elog "zabbix-trapper 10051/udp Zabbix Trapper"
+ elog
+}
+
+pkg_prerm() {
+ (use frontend || use server) && webapp_pkg_prerm
+}
diff --git a/net-analyzer/zabbix/zabbix-7.0.22.ebuild b/net-analyzer/zabbix/zabbix-7.0.22.ebuild
new file mode 100644
index 000000000000..f34a62c18282
--- /dev/null
+++ b/net-analyzer/zabbix/zabbix-7.0.22.ebuild
@@ -0,0 +1,371 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# To create the go modules tarball:
+# cd src/go
+# GOMODCACHE="${PWD}"/go-mod go mod download -modcacherw
+# tar -acf $(pwd | grep -Eo 'zabbix-[0-9.]+')-go-deps.tar.xz go-mod
+
+EAPI=8
+
+GO_OPTIONAL="yes"
+# needed to make webapp-config dep optional
+WEBAPP_OPTIONAL="yes"
+inherit autotools webapp java-pkg-opt-2 systemd tmpfiles toolchain-funcs go-module user-info
+
+DESCRIPTION="ZABBIX is software for monitoring of your applications, network and servers"
+HOMEPAGE="https://www.zabbix.com/"
+MY_P=${P/_/}
+MY_PV=${PV/_/}
+SRC_URI="https://cdn.zabbix.com/${PN}/sources/stable/$(ver_cut 1-2)/${P}.tar.gz
+ agent2? ( https://dev.gentoo.org/~fordfrog/distfiles/${P}-go-deps.tar.xz )
+"
+
+S=${WORKDIR}/${MY_P}
+
+LICENSE="AGPL-3"
+SLOT="0/$(ver_cut 1-2)"
+WEBAPP_MANUAL_SLOT="yes"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="agent +agent2 curl frontend gnutls ipv6 java ldap libxml2 mysql odbc openipmi +openssl +postgres proxy selinux server snmp sqlite ssh static"
+REQUIRED_USE="|| ( agent agent2 frontend proxy server )
+ ?? ( gnutls openssl )
+ agent2? ( !gnutls )
+ proxy? ( ^^ ( mysql postgres sqlite ) )
+ server? ( ^^ ( mysql postgres ) !sqlite )
+ static? ( !snmp )"
+
+COMMON_DEPEND="
+ curl? ( net-misc/curl )
+ gnutls? ( net-libs/gnutls:0= )
+ java? ( >=virtual/jdk-1.8:* )
+ ldap? (
+ =dev-libs/cyrus-sasl-2*
+ net-libs/gnutls:=
+ net-nds/openldap:=
+ )
+ libxml2? ( dev-libs/libxml2:= )
+ mysql? ( dev-db/mysql-connector-c:= )
+ odbc? ( dev-db/unixODBC )
+ openipmi? ( sys-libs/openipmi )
+ openssl? ( dev-libs/openssl:=[-bindist(-)] )
+ postgres? ( dev-db/postgresql:* )
+ proxy? (
+ dev-libs/libevent:=
+ virtual/zlib:=
+ )
+ server? (
+ dev-libs/libevent:=
+ virtual/zlib:=
+ )
+ snmp? ( net-analyzer/net-snmp:= )
+ sqlite? ( dev-db/sqlite )
+ ssh? ( net-libs/libssh2 )
+"
+
+RDEPEND="${COMMON_DEPEND}
+ acct-group/zabbix
+ acct-user/zabbix
+ java? ( >=virtual/jre-1.8:* )
+ mysql? ( virtual/mysql )
+ proxy? (
+ dev-libs/libpcre2:=
+ net-analyzer/fping[suid]
+ )
+ selinux? ( sec-policy/selinux-zabbix )
+ server? (
+ app-admin/webapp-config
+ dev-libs/libpcre2:=
+ net-analyzer/fping[suid]
+ )
+ frontend? (
+ app-admin/webapp-config
+ dev-lang/php:*[bcmath,ctype,gd,jpeg(+),nls,png(+),session,sockets,sysvipc,truetype,unicode,xml,xmlreader,xmlwriter]
+ media-libs/gd[png]
+ virtual/httpd-php:*
+ mysql? ( dev-lang/php[mysqli] )
+ odbc? ( dev-lang/php[odbc] )
+ postgres? ( dev-lang/php[postgres] )
+ sqlite? ( dev-lang/php[sqlite] )
+ )
+"
+DEPEND="${COMMON_DEPEND}
+ static? (
+ curl? ( net-misc/curl[static-libs] )
+ ldap? (
+ =dev-libs/cyrus-sasl-2*[static-libs]
+ net-libs/gnutls[static-libs]
+ net-nds/openldap[static-libs]
+ )
+ libxml2? ( dev-libs/libxml2[static-libs] )
+ mysql? ( dev-db/mysql-connector-c[static-libs] )
+ odbc? ( dev-db/unixODBC[static-libs] )
+ postgres? ( dev-db/postgresql:*[static-libs] )
+ sqlite? ( dev-db/sqlite[static-libs] )
+ ssh? ( net-libs/libssh2 )
+ )
+"
+BDEPEND="
+ virtual/pkgconfig
+ agent2? (
+ >=dev-lang/go-1.12
+ app-arch/unzip
+ )
+"
+
+# upstream tests fail for agent2
+RESTRICT="test"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-4.0.18-modulepathfix.patch"
+ "${FILESDIR}/${PN}-3.0.30-security-disable-PidFile.patch"
+ "${FILESDIR}/${PN}-6.4.0-configure-sscanf.patch"
+)
+
+ZABBIXJAVA_BASE="opt/zabbix_java"
+
+pkg_setup() {
+ if use frontend; then
+ webapp_pkg_setup
+ fi
+
+ java-pkg-opt-2_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # Since we patch configure.ac with e.g., ${PN}-6.4.0-configure-sscanf.patch".
+ eautoreconf
+}
+
+src_configure() {
+ local econf_args=(
+ --with-libpcre2
+ "$(use_enable agent)"
+ "$(use_enable agent2)"
+ "$(use_enable ipv6)"
+ "$(use_enable java)"
+ "$(use_enable proxy)"
+ "$(use_enable server)"
+ "$(use_enable static)"
+ "$(use_with curl libcurl)"
+ "$(use_with gnutls)"
+ "$(use_with ldap)"
+ "$(use_with libxml2)"
+ "$(use_with mysql)"
+ "$(use_with odbc unixodbc)"
+ "$(use_with openipmi openipmi)"
+ "$(use_with openssl)"
+ "$(use_with postgres postgresql)"
+ "$(use_with snmp net-snmp)"
+ "$(use_with sqlite sqlite3)"
+ "$(use_with ssh ssh2)"
+ )
+
+ econf ${econf_args[@]}
+}
+
+src_compile() {
+ if [ -f Makefile ] || [ -f GNUmakefile ] || [ -f makefile ]; then
+ emake AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)"
+ fi
+}
+
+src_install() {
+ local dirs=(
+ /etc/zabbix
+ /var/lib/zabbix
+ /var/lib/zabbix/home
+ /var/lib/zabbix/scripts
+ /var/lib/zabbix/alertscripts
+ /var/lib/zabbix/externalscripts
+ /var/log/zabbix
+ )
+
+ for dir in "${dirs[@]}"; do
+ keepdir "${dir}"
+ done
+
+ if use server; then
+ insinto /etc/zabbix
+ doins "${S}"/conf/zabbix_server.conf
+ fperms 0640 /etc/zabbix/zabbix_server.conf
+ fowners root:zabbix /etc/zabbix/zabbix_server.conf
+
+ newinitd "${FILESDIR}"/zabbix-server-r1.init zabbix-server
+
+ dosbin src/zabbix_server/zabbix_server
+
+ insinto /usr/share/zabbix
+ doins -r "${S}"/database/
+
+ systemd_dounit "${FILESDIR}"/zabbix-server.service
+ newtmpfiles "${FILESDIR}"/zabbix-server.tmpfiles zabbix-server.conf
+ fi
+
+ if use proxy; then
+ insinto /etc/zabbix
+ doins "${S}"/conf/zabbix_proxy.conf
+ fperms 0640 /etc/zabbix/zabbix_proxy.conf
+ fowners root:zabbix /etc/zabbix/zabbix_proxy.conf
+
+ newinitd "${FILESDIR}"/zabbix-proxy.init zabbix-proxy
+
+ dosbin src/zabbix_proxy/zabbix_proxy
+
+ insinto /usr/share/zabbix
+ doins -r "${S}"/database/
+
+ systemd_dounit "${FILESDIR}"/zabbix-proxy.service
+ newtmpfiles "${FILESDIR}"/zabbix-proxy.tmpfiles zabbix-proxy.conf
+ fi
+
+ if use agent; then
+ insinto /etc/zabbix
+ doins "${S}"/conf/zabbix_agentd.conf
+ fperms 0640 /etc/zabbix/zabbix_agentd.conf
+ fowners root:zabbix /etc/zabbix/zabbix_agentd.conf
+
+ newinitd "${FILESDIR}"/zabbix-agentd.init zabbix-agentd
+
+ dosbin src/zabbix_agent/zabbix_agentd
+ dobin \
+ src/zabbix_sender/zabbix_sender \
+ src/zabbix_get/zabbix_get
+
+ systemd_dounit "${FILESDIR}"/zabbix-agentd.service
+ newtmpfiles "${FILESDIR}"/zabbix-agentd.tmpfiles zabbix-agentd.conf
+ fi
+ if use agent2; then
+ insinto /etc/zabbix
+ doins "${S}"/src/go/conf/zabbix_agent2.conf
+ fperms 0640 /etc/zabbix/zabbix_agent2.conf
+ fowners root:zabbix /etc/zabbix/zabbix_agent2.conf
+ keepdir /etc/zabbix/zabbix_agent2.d/plugins.d
+
+ newinitd "${FILESDIR}"/zabbix-agent2.init zabbix-agent2
+
+ dosbin src/go/bin/zabbix_agent2
+
+ systemd_dounit "${FILESDIR}"/zabbix-agent2.service
+ newtmpfiles "${FILESDIR}"/zabbix-agent2.tmpfiles zabbix-agent2.conf
+ fi
+
+ fowners root:zabbix /etc/zabbix
+ fowners zabbix:zabbix \
+ /var/lib/zabbix \
+ /var/lib/zabbix/home \
+ /var/lib/zabbix/scripts \
+ /var/lib/zabbix/alertscripts \
+ /var/lib/zabbix/externalscripts \
+ /var/log/zabbix
+ fperms 0750 \
+ /etc/zabbix \
+ /var/lib/zabbix \
+ /var/lib/zabbix/home \
+ /var/lib/zabbix/scripts \
+ /var/lib/zabbix/alertscripts \
+ /var/lib/zabbix/externalscripts \
+ /var/log/zabbix
+
+ dodoc README INSTALL NEWS ChangeLog \
+ conf/zabbix_agentd.conf \
+ conf/zabbix_proxy.conf \
+ conf/zabbix_agentd/userparameter_examples.conf \
+ conf/zabbix_agentd/userparameter_mysql.conf \
+ conf/zabbix_server.conf
+
+ if use frontend; then
+ webapp_src_preinst
+ cp -R ui/* "${D}/${MY_HTDOCSDIR}"
+ webapp_configfile \
+ "${MY_HTDOCSDIR}"/include/db.inc.php \
+ "${MY_HTDOCSDIR}"/include/config.inc.php
+ webapp_src_install
+ fi
+
+ if use java; then
+ dodir \
+ /${ZABBIXJAVA_BASE} \
+ /${ZABBIXJAVA_BASE}/bin \
+ /${ZABBIXJAVA_BASE}/lib
+ keepdir /${ZABBIXJAVA_BASE}
+ exeinto /${ZABBIXJAVA_BASE}/bin
+ doexe src/zabbix_java/bin/zabbix-java-gateway-"${MY_PV}".jar
+ exeinto /${ZABBIXJAVA_BASE}/lib
+ doexe \
+ src/zabbix_java/lib/logback-classic-1.5.16.jar \
+ src/zabbix_java/lib/logback-console.xml \
+ src/zabbix_java/lib/logback-core-1.5.16.jar \
+ src/zabbix_java/lib/logback.xml \
+ src/zabbix_java/lib/android-json-4.3_r3.1.jar \
+ src/zabbix_java/lib/slf4j-api-2.0.16.jar
+ newinitd "${FILESDIR}"/zabbix-jmx-proxy.init zabbix-jmx-proxy
+ newconfd "${FILESDIR}"/zabbix-jmx-proxy.conf zabbix-jmx-proxy
+ fi
+}
+
+pkg_postinst() {
+ if use server || use proxy ; then
+ elog
+ elog "You may need to configure your database for Zabbix"
+ elog "if you have not already done so."
+ elog
+
+ zabbix_homedir=$(egethome zabbix)
+ if [ -n "${zabbix_homedir}" ] && \
+ [ "${zabbix_homedir}" != "/var/lib/zabbix/home" ]; then
+ ewarn
+ ewarn "The user 'zabbix' should have his homedir changed"
+ ewarn "to /var/lib/zabbix/home if you want to use"
+ ewarn "custom alert scripts."
+ ewarn
+ ewarn "A real homedir might be needed for configfiles"
+ ewarn "for custom alert scripts."
+ ewarn
+ ewarn "To change the homedir use:"
+ ewarn " usermod -d /var/lib/zabbix/home zabbix"
+ ewarn
+ fi
+ fi
+
+ if use server; then
+ tmpfiles_process zabbix-server.conf
+
+ elog
+ elog "For distributed monitoring you have to run:"
+ elog
+ elog "zabbix_server -n <nodeid>"
+ elog
+ elog "This will convert database data for use with Node ID"
+ elog "and also adds a local node."
+ elog
+ fi
+
+ if use proxy; then
+ tmpfiles_process zabbix-proxy.conf
+ fi
+
+ if use agent; then
+ tmpfiles_process zabbix-agentd.conf
+ fi
+
+ if use agent2; then
+ tmpfiles_process zabbix-agent2.conf
+ fi
+
+ elog "--"
+ elog
+ elog "You may need to add these lines to /etc/services:"
+ elog
+ elog "zabbix-agent 10050/tcp Zabbix Agent"
+ elog "zabbix-agent 10050/udp Zabbix Agent"
+ elog "zabbix-trapper 10051/tcp Zabbix Trapper"
+ elog "zabbix-trapper 10051/udp Zabbix Trapper"
+ elog
+}
+
+pkg_prerm() {
+ (use frontend || use server) && webapp_pkg_prerm
+}
diff --git a/net-analyzer/zabbix/zabbix-7.0.26.ebuild b/net-analyzer/zabbix/zabbix-7.0.26.ebuild
new file mode 100644
index 000000000000..f34a62c18282
--- /dev/null
+++ b/net-analyzer/zabbix/zabbix-7.0.26.ebuild
@@ -0,0 +1,371 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# To create the go modules tarball:
+# cd src/go
+# GOMODCACHE="${PWD}"/go-mod go mod download -modcacherw
+# tar -acf $(pwd | grep -Eo 'zabbix-[0-9.]+')-go-deps.tar.xz go-mod
+
+EAPI=8
+
+GO_OPTIONAL="yes"
+# needed to make webapp-config dep optional
+WEBAPP_OPTIONAL="yes"
+inherit autotools webapp java-pkg-opt-2 systemd tmpfiles toolchain-funcs go-module user-info
+
+DESCRIPTION="ZABBIX is software for monitoring of your applications, network and servers"
+HOMEPAGE="https://www.zabbix.com/"
+MY_P=${P/_/}
+MY_PV=${PV/_/}
+SRC_URI="https://cdn.zabbix.com/${PN}/sources/stable/$(ver_cut 1-2)/${P}.tar.gz
+ agent2? ( https://dev.gentoo.org/~fordfrog/distfiles/${P}-go-deps.tar.xz )
+"
+
+S=${WORKDIR}/${MY_P}
+
+LICENSE="AGPL-3"
+SLOT="0/$(ver_cut 1-2)"
+WEBAPP_MANUAL_SLOT="yes"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="agent +agent2 curl frontend gnutls ipv6 java ldap libxml2 mysql odbc openipmi +openssl +postgres proxy selinux server snmp sqlite ssh static"
+REQUIRED_USE="|| ( agent agent2 frontend proxy server )
+ ?? ( gnutls openssl )
+ agent2? ( !gnutls )
+ proxy? ( ^^ ( mysql postgres sqlite ) )
+ server? ( ^^ ( mysql postgres ) !sqlite )
+ static? ( !snmp )"
+
+COMMON_DEPEND="
+ curl? ( net-misc/curl )
+ gnutls? ( net-libs/gnutls:0= )
+ java? ( >=virtual/jdk-1.8:* )
+ ldap? (
+ =dev-libs/cyrus-sasl-2*
+ net-libs/gnutls:=
+ net-nds/openldap:=
+ )
+ libxml2? ( dev-libs/libxml2:= )
+ mysql? ( dev-db/mysql-connector-c:= )
+ odbc? ( dev-db/unixODBC )
+ openipmi? ( sys-libs/openipmi )
+ openssl? ( dev-libs/openssl:=[-bindist(-)] )
+ postgres? ( dev-db/postgresql:* )
+ proxy? (
+ dev-libs/libevent:=
+ virtual/zlib:=
+ )
+ server? (
+ dev-libs/libevent:=
+ virtual/zlib:=
+ )
+ snmp? ( net-analyzer/net-snmp:= )
+ sqlite? ( dev-db/sqlite )
+ ssh? ( net-libs/libssh2 )
+"
+
+RDEPEND="${COMMON_DEPEND}
+ acct-group/zabbix
+ acct-user/zabbix
+ java? ( >=virtual/jre-1.8:* )
+ mysql? ( virtual/mysql )
+ proxy? (
+ dev-libs/libpcre2:=
+ net-analyzer/fping[suid]
+ )
+ selinux? ( sec-policy/selinux-zabbix )
+ server? (
+ app-admin/webapp-config
+ dev-libs/libpcre2:=
+ net-analyzer/fping[suid]
+ )
+ frontend? (
+ app-admin/webapp-config
+ dev-lang/php:*[bcmath,ctype,gd,jpeg(+),nls,png(+),session,sockets,sysvipc,truetype,unicode,xml,xmlreader,xmlwriter]
+ media-libs/gd[png]
+ virtual/httpd-php:*
+ mysql? ( dev-lang/php[mysqli] )
+ odbc? ( dev-lang/php[odbc] )
+ postgres? ( dev-lang/php[postgres] )
+ sqlite? ( dev-lang/php[sqlite] )
+ )
+"
+DEPEND="${COMMON_DEPEND}
+ static? (
+ curl? ( net-misc/curl[static-libs] )
+ ldap? (
+ =dev-libs/cyrus-sasl-2*[static-libs]
+ net-libs/gnutls[static-libs]
+ net-nds/openldap[static-libs]
+ )
+ libxml2? ( dev-libs/libxml2[static-libs] )
+ mysql? ( dev-db/mysql-connector-c[static-libs] )
+ odbc? ( dev-db/unixODBC[static-libs] )
+ postgres? ( dev-db/postgresql:*[static-libs] )
+ sqlite? ( dev-db/sqlite[static-libs] )
+ ssh? ( net-libs/libssh2 )
+ )
+"
+BDEPEND="
+ virtual/pkgconfig
+ agent2? (
+ >=dev-lang/go-1.12
+ app-arch/unzip
+ )
+"
+
+# upstream tests fail for agent2
+RESTRICT="test"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-4.0.18-modulepathfix.patch"
+ "${FILESDIR}/${PN}-3.0.30-security-disable-PidFile.patch"
+ "${FILESDIR}/${PN}-6.4.0-configure-sscanf.patch"
+)
+
+ZABBIXJAVA_BASE="opt/zabbix_java"
+
+pkg_setup() {
+ if use frontend; then
+ webapp_pkg_setup
+ fi
+
+ java-pkg-opt-2_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # Since we patch configure.ac with e.g., ${PN}-6.4.0-configure-sscanf.patch".
+ eautoreconf
+}
+
+src_configure() {
+ local econf_args=(
+ --with-libpcre2
+ "$(use_enable agent)"
+ "$(use_enable agent2)"
+ "$(use_enable ipv6)"
+ "$(use_enable java)"
+ "$(use_enable proxy)"
+ "$(use_enable server)"
+ "$(use_enable static)"
+ "$(use_with curl libcurl)"
+ "$(use_with gnutls)"
+ "$(use_with ldap)"
+ "$(use_with libxml2)"
+ "$(use_with mysql)"
+ "$(use_with odbc unixodbc)"
+ "$(use_with openipmi openipmi)"
+ "$(use_with openssl)"
+ "$(use_with postgres postgresql)"
+ "$(use_with snmp net-snmp)"
+ "$(use_with sqlite sqlite3)"
+ "$(use_with ssh ssh2)"
+ )
+
+ econf ${econf_args[@]}
+}
+
+src_compile() {
+ if [ -f Makefile ] || [ -f GNUmakefile ] || [ -f makefile ]; then
+ emake AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)"
+ fi
+}
+
+src_install() {
+ local dirs=(
+ /etc/zabbix
+ /var/lib/zabbix
+ /var/lib/zabbix/home
+ /var/lib/zabbix/scripts
+ /var/lib/zabbix/alertscripts
+ /var/lib/zabbix/externalscripts
+ /var/log/zabbix
+ )
+
+ for dir in "${dirs[@]}"; do
+ keepdir "${dir}"
+ done
+
+ if use server; then
+ insinto /etc/zabbix
+ doins "${S}"/conf/zabbix_server.conf
+ fperms 0640 /etc/zabbix/zabbix_server.conf
+ fowners root:zabbix /etc/zabbix/zabbix_server.conf
+
+ newinitd "${FILESDIR}"/zabbix-server-r1.init zabbix-server
+
+ dosbin src/zabbix_server/zabbix_server
+
+ insinto /usr/share/zabbix
+ doins -r "${S}"/database/
+
+ systemd_dounit "${FILESDIR}"/zabbix-server.service
+ newtmpfiles "${FILESDIR}"/zabbix-server.tmpfiles zabbix-server.conf
+ fi
+
+ if use proxy; then
+ insinto /etc/zabbix
+ doins "${S}"/conf/zabbix_proxy.conf
+ fperms 0640 /etc/zabbix/zabbix_proxy.conf
+ fowners root:zabbix /etc/zabbix/zabbix_proxy.conf
+
+ newinitd "${FILESDIR}"/zabbix-proxy.init zabbix-proxy
+
+ dosbin src/zabbix_proxy/zabbix_proxy
+
+ insinto /usr/share/zabbix
+ doins -r "${S}"/database/
+
+ systemd_dounit "${FILESDIR}"/zabbix-proxy.service
+ newtmpfiles "${FILESDIR}"/zabbix-proxy.tmpfiles zabbix-proxy.conf
+ fi
+
+ if use agent; then
+ insinto /etc/zabbix
+ doins "${S}"/conf/zabbix_agentd.conf
+ fperms 0640 /etc/zabbix/zabbix_agentd.conf
+ fowners root:zabbix /etc/zabbix/zabbix_agentd.conf
+
+ newinitd "${FILESDIR}"/zabbix-agentd.init zabbix-agentd
+
+ dosbin src/zabbix_agent/zabbix_agentd
+ dobin \
+ src/zabbix_sender/zabbix_sender \
+ src/zabbix_get/zabbix_get
+
+ systemd_dounit "${FILESDIR}"/zabbix-agentd.service
+ newtmpfiles "${FILESDIR}"/zabbix-agentd.tmpfiles zabbix-agentd.conf
+ fi
+ if use agent2; then
+ insinto /etc/zabbix
+ doins "${S}"/src/go/conf/zabbix_agent2.conf
+ fperms 0640 /etc/zabbix/zabbix_agent2.conf
+ fowners root:zabbix /etc/zabbix/zabbix_agent2.conf
+ keepdir /etc/zabbix/zabbix_agent2.d/plugins.d
+
+ newinitd "${FILESDIR}"/zabbix-agent2.init zabbix-agent2
+
+ dosbin src/go/bin/zabbix_agent2
+
+ systemd_dounit "${FILESDIR}"/zabbix-agent2.service
+ newtmpfiles "${FILESDIR}"/zabbix-agent2.tmpfiles zabbix-agent2.conf
+ fi
+
+ fowners root:zabbix /etc/zabbix
+ fowners zabbix:zabbix \
+ /var/lib/zabbix \
+ /var/lib/zabbix/home \
+ /var/lib/zabbix/scripts \
+ /var/lib/zabbix/alertscripts \
+ /var/lib/zabbix/externalscripts \
+ /var/log/zabbix
+ fperms 0750 \
+ /etc/zabbix \
+ /var/lib/zabbix \
+ /var/lib/zabbix/home \
+ /var/lib/zabbix/scripts \
+ /var/lib/zabbix/alertscripts \
+ /var/lib/zabbix/externalscripts \
+ /var/log/zabbix
+
+ dodoc README INSTALL NEWS ChangeLog \
+ conf/zabbix_agentd.conf \
+ conf/zabbix_proxy.conf \
+ conf/zabbix_agentd/userparameter_examples.conf \
+ conf/zabbix_agentd/userparameter_mysql.conf \
+ conf/zabbix_server.conf
+
+ if use frontend; then
+ webapp_src_preinst
+ cp -R ui/* "${D}/${MY_HTDOCSDIR}"
+ webapp_configfile \
+ "${MY_HTDOCSDIR}"/include/db.inc.php \
+ "${MY_HTDOCSDIR}"/include/config.inc.php
+ webapp_src_install
+ fi
+
+ if use java; then
+ dodir \
+ /${ZABBIXJAVA_BASE} \
+ /${ZABBIXJAVA_BASE}/bin \
+ /${ZABBIXJAVA_BASE}/lib
+ keepdir /${ZABBIXJAVA_BASE}
+ exeinto /${ZABBIXJAVA_BASE}/bin
+ doexe src/zabbix_java/bin/zabbix-java-gateway-"${MY_PV}".jar
+ exeinto /${ZABBIXJAVA_BASE}/lib
+ doexe \
+ src/zabbix_java/lib/logback-classic-1.5.16.jar \
+ src/zabbix_java/lib/logback-console.xml \
+ src/zabbix_java/lib/logback-core-1.5.16.jar \
+ src/zabbix_java/lib/logback.xml \
+ src/zabbix_java/lib/android-json-4.3_r3.1.jar \
+ src/zabbix_java/lib/slf4j-api-2.0.16.jar
+ newinitd "${FILESDIR}"/zabbix-jmx-proxy.init zabbix-jmx-proxy
+ newconfd "${FILESDIR}"/zabbix-jmx-proxy.conf zabbix-jmx-proxy
+ fi
+}
+
+pkg_postinst() {
+ if use server || use proxy ; then
+ elog
+ elog "You may need to configure your database for Zabbix"
+ elog "if you have not already done so."
+ elog
+
+ zabbix_homedir=$(egethome zabbix)
+ if [ -n "${zabbix_homedir}" ] && \
+ [ "${zabbix_homedir}" != "/var/lib/zabbix/home" ]; then
+ ewarn
+ ewarn "The user 'zabbix' should have his homedir changed"
+ ewarn "to /var/lib/zabbix/home if you want to use"
+ ewarn "custom alert scripts."
+ ewarn
+ ewarn "A real homedir might be needed for configfiles"
+ ewarn "for custom alert scripts."
+ ewarn
+ ewarn "To change the homedir use:"
+ ewarn " usermod -d /var/lib/zabbix/home zabbix"
+ ewarn
+ fi
+ fi
+
+ if use server; then
+ tmpfiles_process zabbix-server.conf
+
+ elog
+ elog "For distributed monitoring you have to run:"
+ elog
+ elog "zabbix_server -n <nodeid>"
+ elog
+ elog "This will convert database data for use with Node ID"
+ elog "and also adds a local node."
+ elog
+ fi
+
+ if use proxy; then
+ tmpfiles_process zabbix-proxy.conf
+ fi
+
+ if use agent; then
+ tmpfiles_process zabbix-agentd.conf
+ fi
+
+ if use agent2; then
+ tmpfiles_process zabbix-agent2.conf
+ fi
+
+ elog "--"
+ elog
+ elog "You may need to add these lines to /etc/services:"
+ elog
+ elog "zabbix-agent 10050/tcp Zabbix Agent"
+ elog "zabbix-agent 10050/udp Zabbix Agent"
+ elog "zabbix-trapper 10051/tcp Zabbix Trapper"
+ elog "zabbix-trapper 10051/udp Zabbix Trapper"
+ elog
+}
+
+pkg_prerm() {
+ (use frontend || use server) && webapp_pkg_prerm
+}
diff --git a/net-analyzer/zabbix/zabbix-7.4.10.ebuild b/net-analyzer/zabbix/zabbix-7.4.10.ebuild
new file mode 100644
index 000000000000..b5dd49e9fe43
--- /dev/null
+++ b/net-analyzer/zabbix/zabbix-7.4.10.ebuild
@@ -0,0 +1,371 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# To create the go modules tarball:
+# cd src/go
+# GOMODCACHE="${PWD}"/go-mod go mod download -modcacherw
+# tar -acf $(pwd | grep -Eo 'zabbix-[0-9.]+')-go-deps.tar.xz go-mod
+
+EAPI=8
+
+GO_OPTIONAL="yes"
+# needed to make webapp-config dep optional
+WEBAPP_OPTIONAL="yes"
+inherit autotools webapp java-pkg-opt-2 systemd tmpfiles toolchain-funcs go-module user-info
+
+DESCRIPTION="ZABBIX is software for monitoring of your applications, network and servers"
+HOMEPAGE="https://www.zabbix.com/"
+MY_P=${P/_/}
+MY_PV=${PV/_/}
+SRC_URI="https://cdn.zabbix.com/${PN}/sources/stable/$(ver_cut 1-2)/${P}.tar.gz
+ agent2? ( https://dev.gentoo.org/~fordfrog/distfiles/${P}-go-deps.tar.xz )
+"
+
+S=${WORKDIR}/${MY_P}
+
+LICENSE="AGPL-3"
+SLOT="0/$(ver_cut 1-2)"
+WEBAPP_MANUAL_SLOT="yes"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="agent +agent2 curl frontend gnutls ipv6 java ldap libxml2 mysql odbc openipmi +openssl +postgres proxy selinux server snmp sqlite ssh static"
+REQUIRED_USE="|| ( agent agent2 frontend proxy server )
+ ?? ( gnutls openssl )
+ agent2? ( !gnutls )
+ proxy? ( ^^ ( mysql postgres sqlite ) )
+ server? ( ^^ ( mysql postgres ) !sqlite )
+ static? ( !snmp )"
+
+COMMON_DEPEND="
+ curl? ( net-misc/curl )
+ gnutls? ( net-libs/gnutls:0= )
+ java? ( >=virtual/jdk-1.8:* )
+ ldap? (
+ =dev-libs/cyrus-sasl-2*
+ net-libs/gnutls:=
+ net-nds/openldap:=
+ )
+ libxml2? ( dev-libs/libxml2:= )
+ mysql? ( dev-db/mysql-connector-c:= )
+ odbc? ( dev-db/unixODBC )
+ openipmi? ( sys-libs/openipmi )
+ openssl? ( dev-libs/openssl:=[-bindist(-)] )
+ postgres? ( dev-db/postgresql:* )
+ proxy? (
+ dev-libs/libevent:=
+ virtual/zlib:=
+ )
+ server? (
+ dev-libs/libevent:=
+ virtual/zlib:=
+ )
+ snmp? ( net-analyzer/net-snmp:= )
+ sqlite? ( dev-db/sqlite )
+ ssh? ( net-libs/libssh2 )
+"
+
+RDEPEND="${COMMON_DEPEND}
+ acct-group/zabbix
+ acct-user/zabbix
+ java? ( >=virtual/jre-1.8:* )
+ mysql? ( virtual/mysql )
+ proxy? (
+ dev-libs/libpcre2:=
+ net-analyzer/fping[suid]
+ )
+ selinux? ( sec-policy/selinux-zabbix )
+ server? (
+ app-admin/webapp-config
+ dev-libs/libpcre2:=
+ net-analyzer/fping[suid]
+ )
+ frontend? (
+ app-admin/webapp-config
+ dev-lang/php:*[bcmath,ctype,gd,jpeg(+),nls,png(+),session,sockets,sysvipc,truetype,unicode,xml,xmlreader,xmlwriter]
+ media-libs/gd[png]
+ virtual/httpd-php:*
+ mysql? ( dev-lang/php[mysqli] )
+ odbc? ( dev-lang/php[odbc] )
+ postgres? ( dev-lang/php[postgres] )
+ sqlite? ( dev-lang/php[sqlite] )
+ )
+"
+DEPEND="${COMMON_DEPEND}
+ static? (
+ curl? ( net-misc/curl[static-libs] )
+ ldap? (
+ =dev-libs/cyrus-sasl-2*[static-libs]
+ net-libs/gnutls[static-libs]
+ net-nds/openldap[static-libs]
+ )
+ libxml2? ( dev-libs/libxml2[static-libs] )
+ mysql? ( dev-db/mysql-connector-c[static-libs] )
+ odbc? ( dev-db/unixODBC[static-libs] )
+ postgres? ( dev-db/postgresql:*[static-libs] )
+ sqlite? ( dev-db/sqlite[static-libs] )
+ ssh? ( net-libs/libssh2 )
+ )
+"
+BDEPEND="
+ virtual/pkgconfig
+ agent2? (
+ >=dev-lang/go-1.24.10
+ app-arch/unzip
+ )
+"
+
+# upstream tests fail for agent2
+RESTRICT="test"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-4.0.18-modulepathfix.patch"
+ "${FILESDIR}/${PN}-3.0.30-security-disable-PidFile.patch"
+ "${FILESDIR}/${PN}-6.4.0-configure-sscanf.patch"
+)
+
+ZABBIXJAVA_BASE="opt/zabbix_java"
+
+pkg_setup() {
+ if use frontend; then
+ webapp_pkg_setup
+ fi
+
+ java-pkg-opt-2_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # Since we patch configure.ac with e.g., ${PN}-6.4.0-configure-sscanf.patch".
+ eautoreconf
+}
+
+src_configure() {
+ local econf_args=(
+ --with-libpcre2
+ "$(use_enable agent)"
+ "$(use_enable agent2)"
+ "$(use_enable ipv6)"
+ "$(use_enable java)"
+ "$(use_enable proxy)"
+ "$(use_enable server)"
+ "$(use_enable static)"
+ "$(use_with curl libcurl)"
+ "$(use_with gnutls)"
+ "$(use_with ldap)"
+ "$(use_with libxml2)"
+ "$(use_with mysql)"
+ "$(use_with odbc unixodbc)"
+ "$(use_with openipmi openipmi)"
+ "$(use_with openssl)"
+ "$(use_with postgres postgresql)"
+ "$(use_with snmp net-snmp)"
+ "$(use_with sqlite sqlite3)"
+ "$(use_with ssh ssh2)"
+ )
+
+ econf ${econf_args[@]}
+}
+
+src_compile() {
+ if [ -f Makefile ] || [ -f GNUmakefile ] || [ -f makefile ]; then
+ emake AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)"
+ fi
+}
+
+src_install() {
+ local dirs=(
+ /etc/zabbix
+ /var/lib/zabbix
+ /var/lib/zabbix/home
+ /var/lib/zabbix/scripts
+ /var/lib/zabbix/alertscripts
+ /var/lib/zabbix/externalscripts
+ /var/log/zabbix
+ )
+
+ for dir in "${dirs[@]}"; do
+ keepdir "${dir}"
+ done
+
+ if use server; then
+ insinto /etc/zabbix
+ doins "${S}"/conf/zabbix_server.conf
+ fperms 0640 /etc/zabbix/zabbix_server.conf
+ fowners root:zabbix /etc/zabbix/zabbix_server.conf
+
+ newinitd "${FILESDIR}"/zabbix-server-r1.init zabbix-server
+
+ dosbin src/zabbix_server/zabbix_server
+
+ insinto /usr/share/zabbix
+ doins -r "${S}"/database/
+
+ systemd_dounit "${FILESDIR}"/zabbix-server.service
+ newtmpfiles "${FILESDIR}"/zabbix-server.tmpfiles zabbix-server.conf
+ fi
+
+ if use proxy; then
+ insinto /etc/zabbix
+ doins "${S}"/conf/zabbix_proxy.conf
+ fperms 0640 /etc/zabbix/zabbix_proxy.conf
+ fowners root:zabbix /etc/zabbix/zabbix_proxy.conf
+
+ newinitd "${FILESDIR}"/zabbix-proxy.init zabbix-proxy
+
+ dosbin src/zabbix_proxy/zabbix_proxy
+
+ insinto /usr/share/zabbix
+ doins -r "${S}"/database/
+
+ systemd_dounit "${FILESDIR}"/zabbix-proxy.service
+ newtmpfiles "${FILESDIR}"/zabbix-proxy.tmpfiles zabbix-proxy.conf
+ fi
+
+ if use agent; then
+ insinto /etc/zabbix
+ doins "${S}"/conf/zabbix_agentd.conf
+ fperms 0640 /etc/zabbix/zabbix_agentd.conf
+ fowners root:zabbix /etc/zabbix/zabbix_agentd.conf
+
+ newinitd "${FILESDIR}"/zabbix-agentd.init zabbix-agentd
+
+ dosbin src/zabbix_agent/zabbix_agentd
+ dobin \
+ src/zabbix_sender/zabbix_sender \
+ src/zabbix_get/zabbix_get
+
+ systemd_dounit "${FILESDIR}"/zabbix-agentd.service
+ newtmpfiles "${FILESDIR}"/zabbix-agentd.tmpfiles zabbix-agentd.conf
+ fi
+ if use agent2; then
+ insinto /etc/zabbix
+ doins "${S}"/src/go/conf/zabbix_agent2.conf
+ fperms 0640 /etc/zabbix/zabbix_agent2.conf
+ fowners root:zabbix /etc/zabbix/zabbix_agent2.conf
+ keepdir /etc/zabbix/zabbix_agent2.d/plugins.d
+
+ newinitd "${FILESDIR}"/zabbix-agent2.init zabbix-agent2
+
+ dosbin src/go/bin/zabbix_agent2
+
+ systemd_dounit "${FILESDIR}"/zabbix-agent2.service
+ newtmpfiles "${FILESDIR}"/zabbix-agent2.tmpfiles zabbix-agent2.conf
+ fi
+
+ fowners root:zabbix /etc/zabbix
+ fowners zabbix:zabbix \
+ /var/lib/zabbix \
+ /var/lib/zabbix/home \
+ /var/lib/zabbix/scripts \
+ /var/lib/zabbix/alertscripts \
+ /var/lib/zabbix/externalscripts \
+ /var/log/zabbix
+ fperms 0750 \
+ /etc/zabbix \
+ /var/lib/zabbix \
+ /var/lib/zabbix/home \
+ /var/lib/zabbix/scripts \
+ /var/lib/zabbix/alertscripts \
+ /var/lib/zabbix/externalscripts \
+ /var/log/zabbix
+
+ dodoc README INSTALL NEWS ChangeLog \
+ conf/zabbix_agentd.conf \
+ conf/zabbix_proxy.conf \
+ conf/zabbix_agentd/userparameter_examples.conf \
+ conf/zabbix_agentd/userparameter_mysql.conf \
+ conf/zabbix_server.conf
+
+ if use frontend; then
+ webapp_src_preinst
+ cp -R ui/* "${D}/${MY_HTDOCSDIR}"
+ webapp_configfile \
+ "${MY_HTDOCSDIR}"/include/db.inc.php \
+ "${MY_HTDOCSDIR}"/include/config.inc.php
+ webapp_src_install
+ fi
+
+ if use java; then
+ dodir \
+ /${ZABBIXJAVA_BASE} \
+ /${ZABBIXJAVA_BASE}/bin \
+ /${ZABBIXJAVA_BASE}/lib
+ keepdir /${ZABBIXJAVA_BASE}
+ exeinto /${ZABBIXJAVA_BASE}/bin
+ doexe src/zabbix_java/bin/zabbix-java-gateway-"${MY_PV}".jar
+ exeinto /${ZABBIXJAVA_BASE}/lib
+ doexe \
+ src/zabbix_java/lib/logback-classic-1.5.16.jar \
+ src/zabbix_java/lib/logback-console.xml \
+ src/zabbix_java/lib/logback-core-1.5.16.jar \
+ src/zabbix_java/lib/logback.xml \
+ src/zabbix_java/lib/android-json-4.3_r3.1.jar \
+ src/zabbix_java/lib/slf4j-api-2.0.16.jar
+ newinitd "${FILESDIR}"/zabbix-jmx-proxy.init zabbix-jmx-proxy
+ newconfd "${FILESDIR}"/zabbix-jmx-proxy.conf zabbix-jmx-proxy
+ fi
+}
+
+pkg_postinst() {
+ if use server || use proxy ; then
+ elog
+ elog "You may need to configure your database for Zabbix"
+ elog "if you have not already done so."
+ elog
+
+ zabbix_homedir=$(egethome zabbix)
+ if [ -n "${zabbix_homedir}" ] && \
+ [ "${zabbix_homedir}" != "/var/lib/zabbix/home" ]; then
+ ewarn
+ ewarn "The user 'zabbix' should have his homedir changed"
+ ewarn "to /var/lib/zabbix/home if you want to use"
+ ewarn "custom alert scripts."
+ ewarn
+ ewarn "A real homedir might be needed for configfiles"
+ ewarn "for custom alert scripts."
+ ewarn
+ ewarn "To change the homedir use:"
+ ewarn " usermod -d /var/lib/zabbix/home zabbix"
+ ewarn
+ fi
+ fi
+
+ if use server; then
+ tmpfiles_process zabbix-server.conf
+
+ elog
+ elog "For distributed monitoring you have to run:"
+ elog
+ elog "zabbix_server -n <nodeid>"
+ elog
+ elog "This will convert database data for use with Node ID"
+ elog "and also adds a local node."
+ elog
+ fi
+
+ if use proxy; then
+ tmpfiles_process zabbix-proxy.conf
+ fi
+
+ if use agent; then
+ tmpfiles_process zabbix-agentd.conf
+ fi
+
+ if use agent2; then
+ tmpfiles_process zabbix-agent2.conf
+ fi
+
+ elog "--"
+ elog
+ elog "You may need to add these lines to /etc/services:"
+ elog
+ elog "zabbix-agent 10050/tcp Zabbix Agent"
+ elog "zabbix-agent 10050/udp Zabbix Agent"
+ elog "zabbix-trapper 10051/tcp Zabbix Trapper"
+ elog "zabbix-trapper 10051/udp Zabbix Trapper"
+ elog
+}
+
+pkg_prerm() {
+ (use frontend || use server) && webapp_pkg_prerm
+}
diff --git a/net-analyzer/zabbix/zabbix-7.4.2.ebuild b/net-analyzer/zabbix/zabbix-7.4.2.ebuild
new file mode 100644
index 000000000000..d4e538aa4bc3
--- /dev/null
+++ b/net-analyzer/zabbix/zabbix-7.4.2.ebuild
@@ -0,0 +1,371 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# To create the go modules tarball:
+# cd src/go
+# GOMODCACHE="${PWD}"/go-mod go mod download -modcacherw
+# tar -acf $(pwd | grep -Eo 'zabbix-[0-9.]+')-go-deps.tar.xz go-mod
+
+EAPI=8
+
+GO_OPTIONAL="yes"
+# needed to make webapp-config dep optional
+WEBAPP_OPTIONAL="yes"
+inherit autotools webapp java-pkg-opt-2 systemd tmpfiles toolchain-funcs go-module user-info
+
+DESCRIPTION="ZABBIX is software for monitoring of your applications, network and servers"
+HOMEPAGE="https://www.zabbix.com/"
+MY_P=${P/_/}
+MY_PV=${PV/_/}
+SRC_URI="https://cdn.zabbix.com/${PN}/sources/stable/$(ver_cut 1-2)/${P}.tar.gz
+ agent2? ( https://dev.gentoo.org/~fordfrog/distfiles/${P}-go-deps.tar.xz )
+"
+
+S=${WORKDIR}/${MY_P}
+
+LICENSE="AGPL-3"
+SLOT="0/$(ver_cut 1-2)"
+WEBAPP_MANUAL_SLOT="yes"
+KEYWORDS="amd64 arm64 ~x86"
+IUSE="agent +agent2 curl frontend gnutls ipv6 java ldap libxml2 mysql odbc openipmi +openssl +postgres proxy selinux server snmp sqlite ssh static"
+REQUIRED_USE="|| ( agent agent2 frontend proxy server )
+ ?? ( gnutls openssl )
+ agent2? ( !gnutls )
+ proxy? ( ^^ ( mysql postgres sqlite ) )
+ server? ( ^^ ( mysql postgres ) !sqlite )
+ static? ( !snmp )"
+
+COMMON_DEPEND="
+ curl? ( net-misc/curl )
+ gnutls? ( net-libs/gnutls:0= )
+ java? ( >=virtual/jdk-1.8:* )
+ ldap? (
+ =dev-libs/cyrus-sasl-2*
+ net-libs/gnutls:=
+ net-nds/openldap:=
+ )
+ libxml2? ( dev-libs/libxml2:= )
+ mysql? ( dev-db/mysql-connector-c:= )
+ odbc? ( dev-db/unixODBC )
+ openipmi? ( sys-libs/openipmi )
+ openssl? ( dev-libs/openssl:=[-bindist(-)] )
+ postgres? ( dev-db/postgresql:* )
+ proxy? (
+ dev-libs/libevent:=
+ virtual/zlib:=
+ )
+ server? (
+ dev-libs/libevent:=
+ virtual/zlib:=
+ )
+ snmp? ( net-analyzer/net-snmp:= )
+ sqlite? ( dev-db/sqlite )
+ ssh? ( net-libs/libssh2 )
+"
+
+RDEPEND="${COMMON_DEPEND}
+ acct-group/zabbix
+ acct-user/zabbix
+ java? ( >=virtual/jre-1.8:* )
+ mysql? ( virtual/mysql )
+ proxy? (
+ dev-libs/libpcre2:=
+ net-analyzer/fping[suid]
+ )
+ selinux? ( sec-policy/selinux-zabbix )
+ server? (
+ app-admin/webapp-config
+ dev-libs/libpcre2:=
+ net-analyzer/fping[suid]
+ )
+ frontend? (
+ app-admin/webapp-config
+ dev-lang/php:*[bcmath,ctype,gd,jpeg(+),nls,png(+),session,sockets,sysvipc,truetype,unicode,xml,xmlreader,xmlwriter]
+ media-libs/gd[png]
+ virtual/httpd-php:*
+ mysql? ( dev-lang/php[mysqli] )
+ odbc? ( dev-lang/php[odbc] )
+ postgres? ( dev-lang/php[postgres] )
+ sqlite? ( dev-lang/php[sqlite] )
+ )
+"
+DEPEND="${COMMON_DEPEND}
+ static? (
+ curl? ( net-misc/curl[static-libs] )
+ ldap? (
+ =dev-libs/cyrus-sasl-2*[static-libs]
+ net-libs/gnutls[static-libs]
+ net-nds/openldap[static-libs]
+ )
+ libxml2? ( dev-libs/libxml2[static-libs] )
+ mysql? ( dev-db/mysql-connector-c[static-libs] )
+ odbc? ( dev-db/unixODBC[static-libs] )
+ postgres? ( dev-db/postgresql:*[static-libs] )
+ sqlite? ( dev-db/sqlite[static-libs] )
+ ssh? ( net-libs/libssh2 )
+ )
+"
+BDEPEND="
+ virtual/pkgconfig
+ agent2? (
+ >=dev-lang/go-1.23
+ app-arch/unzip
+ )
+"
+
+# upstream tests fail for agent2
+RESTRICT="test"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-4.0.18-modulepathfix.patch"
+ "${FILESDIR}/${PN}-3.0.30-security-disable-PidFile.patch"
+ "${FILESDIR}/${PN}-6.4.0-configure-sscanf.patch"
+)
+
+ZABBIXJAVA_BASE="opt/zabbix_java"
+
+pkg_setup() {
+ if use frontend; then
+ webapp_pkg_setup
+ fi
+
+ java-pkg-opt-2_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # Since we patch configure.ac with e.g., ${PN}-6.4.0-configure-sscanf.patch".
+ eautoreconf
+}
+
+src_configure() {
+ local econf_args=(
+ --with-libpcre2
+ "$(use_enable agent)"
+ "$(use_enable agent2)"
+ "$(use_enable ipv6)"
+ "$(use_enable java)"
+ "$(use_enable proxy)"
+ "$(use_enable server)"
+ "$(use_enable static)"
+ "$(use_with curl libcurl)"
+ "$(use_with gnutls)"
+ "$(use_with ldap)"
+ "$(use_with libxml2)"
+ "$(use_with mysql)"
+ "$(use_with odbc unixodbc)"
+ "$(use_with openipmi openipmi)"
+ "$(use_with openssl)"
+ "$(use_with postgres postgresql)"
+ "$(use_with snmp net-snmp)"
+ "$(use_with sqlite sqlite3)"
+ "$(use_with ssh ssh2)"
+ )
+
+ econf ${econf_args[@]}
+}
+
+src_compile() {
+ if [ -f Makefile ] || [ -f GNUmakefile ] || [ -f makefile ]; then
+ emake AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)"
+ fi
+}
+
+src_install() {
+ local dirs=(
+ /etc/zabbix
+ /var/lib/zabbix
+ /var/lib/zabbix/home
+ /var/lib/zabbix/scripts
+ /var/lib/zabbix/alertscripts
+ /var/lib/zabbix/externalscripts
+ /var/log/zabbix
+ )
+
+ for dir in "${dirs[@]}"; do
+ keepdir "${dir}"
+ done
+
+ if use server; then
+ insinto /etc/zabbix
+ doins "${S}"/conf/zabbix_server.conf
+ fperms 0640 /etc/zabbix/zabbix_server.conf
+ fowners root:zabbix /etc/zabbix/zabbix_server.conf
+
+ newinitd "${FILESDIR}"/zabbix-server-r1.init zabbix-server
+
+ dosbin src/zabbix_server/zabbix_server
+
+ insinto /usr/share/zabbix
+ doins -r "${S}"/database/
+
+ systemd_dounit "${FILESDIR}"/zabbix-server.service
+ newtmpfiles "${FILESDIR}"/zabbix-server.tmpfiles zabbix-server.conf
+ fi
+
+ if use proxy; then
+ insinto /etc/zabbix
+ doins "${S}"/conf/zabbix_proxy.conf
+ fperms 0640 /etc/zabbix/zabbix_proxy.conf
+ fowners root:zabbix /etc/zabbix/zabbix_proxy.conf
+
+ newinitd "${FILESDIR}"/zabbix-proxy.init zabbix-proxy
+
+ dosbin src/zabbix_proxy/zabbix_proxy
+
+ insinto /usr/share/zabbix
+ doins -r "${S}"/database/
+
+ systemd_dounit "${FILESDIR}"/zabbix-proxy.service
+ newtmpfiles "${FILESDIR}"/zabbix-proxy.tmpfiles zabbix-proxy.conf
+ fi
+
+ if use agent; then
+ insinto /etc/zabbix
+ doins "${S}"/conf/zabbix_agentd.conf
+ fperms 0640 /etc/zabbix/zabbix_agentd.conf
+ fowners root:zabbix /etc/zabbix/zabbix_agentd.conf
+
+ newinitd "${FILESDIR}"/zabbix-agentd.init zabbix-agentd
+
+ dosbin src/zabbix_agent/zabbix_agentd
+ dobin \
+ src/zabbix_sender/zabbix_sender \
+ src/zabbix_get/zabbix_get
+
+ systemd_dounit "${FILESDIR}"/zabbix-agentd.service
+ newtmpfiles "${FILESDIR}"/zabbix-agentd.tmpfiles zabbix-agentd.conf
+ fi
+ if use agent2; then
+ insinto /etc/zabbix
+ doins "${S}"/src/go/conf/zabbix_agent2.conf
+ fperms 0640 /etc/zabbix/zabbix_agent2.conf
+ fowners root:zabbix /etc/zabbix/zabbix_agent2.conf
+ keepdir /etc/zabbix/zabbix_agent2.d/plugins.d
+
+ newinitd "${FILESDIR}"/zabbix-agent2.init zabbix-agent2
+
+ dosbin src/go/bin/zabbix_agent2
+
+ systemd_dounit "${FILESDIR}"/zabbix-agent2.service
+ newtmpfiles "${FILESDIR}"/zabbix-agent2.tmpfiles zabbix-agent2.conf
+ fi
+
+ fowners root:zabbix /etc/zabbix
+ fowners zabbix:zabbix \
+ /var/lib/zabbix \
+ /var/lib/zabbix/home \
+ /var/lib/zabbix/scripts \
+ /var/lib/zabbix/alertscripts \
+ /var/lib/zabbix/externalscripts \
+ /var/log/zabbix
+ fperms 0750 \
+ /etc/zabbix \
+ /var/lib/zabbix \
+ /var/lib/zabbix/home \
+ /var/lib/zabbix/scripts \
+ /var/lib/zabbix/alertscripts \
+ /var/lib/zabbix/externalscripts \
+ /var/log/zabbix
+
+ dodoc README INSTALL NEWS ChangeLog \
+ conf/zabbix_agentd.conf \
+ conf/zabbix_proxy.conf \
+ conf/zabbix_agentd/userparameter_examples.conf \
+ conf/zabbix_agentd/userparameter_mysql.conf \
+ conf/zabbix_server.conf
+
+ if use frontend; then
+ webapp_src_preinst
+ cp -R ui/* "${D}/${MY_HTDOCSDIR}"
+ webapp_configfile \
+ "${MY_HTDOCSDIR}"/include/db.inc.php \
+ "${MY_HTDOCSDIR}"/include/config.inc.php
+ webapp_src_install
+ fi
+
+ if use java; then
+ dodir \
+ /${ZABBIXJAVA_BASE} \
+ /${ZABBIXJAVA_BASE}/bin \
+ /${ZABBIXJAVA_BASE}/lib
+ keepdir /${ZABBIXJAVA_BASE}
+ exeinto /${ZABBIXJAVA_BASE}/bin
+ doexe src/zabbix_java/bin/zabbix-java-gateway-"${MY_PV}".jar
+ exeinto /${ZABBIXJAVA_BASE}/lib
+ doexe \
+ src/zabbix_java/lib/logback-classic-1.5.16.jar \
+ src/zabbix_java/lib/logback-console.xml \
+ src/zabbix_java/lib/logback-core-1.5.16.jar \
+ src/zabbix_java/lib/logback.xml \
+ src/zabbix_java/lib/android-json-4.3_r3.1.jar \
+ src/zabbix_java/lib/slf4j-api-2.0.16.jar
+ newinitd "${FILESDIR}"/zabbix-jmx-proxy.init zabbix-jmx-proxy
+ newconfd "${FILESDIR}"/zabbix-jmx-proxy.conf zabbix-jmx-proxy
+ fi
+}
+
+pkg_postinst() {
+ if use server || use proxy ; then
+ elog
+ elog "You may need to configure your database for Zabbix"
+ elog "if you have not already done so."
+ elog
+
+ zabbix_homedir=$(egethome zabbix)
+ if [ -n "${zabbix_homedir}" ] && \
+ [ "${zabbix_homedir}" != "/var/lib/zabbix/home" ]; then
+ ewarn
+ ewarn "The user 'zabbix' should have his homedir changed"
+ ewarn "to /var/lib/zabbix/home if you want to use"
+ ewarn "custom alert scripts."
+ ewarn
+ ewarn "A real homedir might be needed for configfiles"
+ ewarn "for custom alert scripts."
+ ewarn
+ ewarn "To change the homedir use:"
+ ewarn " usermod -d /var/lib/zabbix/home zabbix"
+ ewarn
+ fi
+ fi
+
+ if use server; then
+ tmpfiles_process zabbix-server.conf
+
+ elog
+ elog "For distributed monitoring you have to run:"
+ elog
+ elog "zabbix_server -n <nodeid>"
+ elog
+ elog "This will convert database data for use with Node ID"
+ elog "and also adds a local node."
+ elog
+ fi
+
+ if use proxy; then
+ tmpfiles_process zabbix-proxy.conf
+ fi
+
+ if use agent; then
+ tmpfiles_process zabbix-agentd.conf
+ fi
+
+ if use agent2; then
+ tmpfiles_process zabbix-agent2.conf
+ fi
+
+ elog "--"
+ elog
+ elog "You may need to add these lines to /etc/services:"
+ elog
+ elog "zabbix-agent 10050/tcp Zabbix Agent"
+ elog "zabbix-agent 10050/udp Zabbix Agent"
+ elog "zabbix-trapper 10051/tcp Zabbix Trapper"
+ elog "zabbix-trapper 10051/udp Zabbix Trapper"
+ elog
+}
+
+pkg_prerm() {
+ (use frontend || use server) && webapp_pkg_prerm
+}
diff --git a/net-analyzer/zabbix/zabbix-7.4.6.ebuild b/net-analyzer/zabbix/zabbix-7.4.6.ebuild
new file mode 100644
index 000000000000..f29ce6809886
--- /dev/null
+++ b/net-analyzer/zabbix/zabbix-7.4.6.ebuild
@@ -0,0 +1,371 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# To create the go modules tarball:
+# cd src/go
+# GOMODCACHE="${PWD}"/go-mod go mod download -modcacherw
+# tar -acf $(pwd | grep -Eo 'zabbix-[0-9.]+')-go-deps.tar.xz go-mod
+
+EAPI=8
+
+GO_OPTIONAL="yes"
+# needed to make webapp-config dep optional
+WEBAPP_OPTIONAL="yes"
+inherit autotools webapp java-pkg-opt-2 systemd tmpfiles toolchain-funcs go-module user-info
+
+DESCRIPTION="ZABBIX is software for monitoring of your applications, network and servers"
+HOMEPAGE="https://www.zabbix.com/"
+MY_P=${P/_/}
+MY_PV=${PV/_/}
+SRC_URI="https://cdn.zabbix.com/${PN}/sources/stable/$(ver_cut 1-2)/${P}.tar.gz
+ agent2? ( https://dev.gentoo.org/~fordfrog/distfiles/${P}-go-deps.tar.xz )
+"
+
+S=${WORKDIR}/${MY_P}
+
+LICENSE="AGPL-3"
+SLOT="0/$(ver_cut 1-2)"
+WEBAPP_MANUAL_SLOT="yes"
+KEYWORDS="~amd64 ~arm64 ~x86"
+IUSE="agent +agent2 curl frontend gnutls ipv6 java ldap libxml2 mysql odbc openipmi +openssl +postgres proxy selinux server snmp sqlite ssh static"
+REQUIRED_USE="|| ( agent agent2 frontend proxy server )
+ ?? ( gnutls openssl )
+ agent2? ( !gnutls )
+ proxy? ( ^^ ( mysql postgres sqlite ) )
+ server? ( ^^ ( mysql postgres ) !sqlite )
+ static? ( !snmp )"
+
+COMMON_DEPEND="
+ curl? ( net-misc/curl )
+ gnutls? ( net-libs/gnutls:0= )
+ java? ( >=virtual/jdk-1.8:* )
+ ldap? (
+ =dev-libs/cyrus-sasl-2*
+ net-libs/gnutls:=
+ net-nds/openldap:=
+ )
+ libxml2? ( dev-libs/libxml2:= )
+ mysql? ( dev-db/mysql-connector-c:= )
+ odbc? ( dev-db/unixODBC )
+ openipmi? ( sys-libs/openipmi )
+ openssl? ( dev-libs/openssl:=[-bindist(-)] )
+ postgres? ( dev-db/postgresql:* )
+ proxy? (
+ dev-libs/libevent:=
+ virtual/zlib:=
+ )
+ server? (
+ dev-libs/libevent:=
+ virtual/zlib:=
+ )
+ snmp? ( net-analyzer/net-snmp:= )
+ sqlite? ( dev-db/sqlite )
+ ssh? ( net-libs/libssh2 )
+"
+
+RDEPEND="${COMMON_DEPEND}
+ acct-group/zabbix
+ acct-user/zabbix
+ java? ( >=virtual/jre-1.8:* )
+ mysql? ( virtual/mysql )
+ proxy? (
+ dev-libs/libpcre2:=
+ net-analyzer/fping[suid]
+ )
+ selinux? ( sec-policy/selinux-zabbix )
+ server? (
+ app-admin/webapp-config
+ dev-libs/libpcre2:=
+ net-analyzer/fping[suid]
+ )
+ frontend? (
+ app-admin/webapp-config
+ dev-lang/php:*[bcmath,ctype,gd,jpeg(+),nls,png(+),session,sockets,sysvipc,truetype,unicode,xml,xmlreader,xmlwriter]
+ media-libs/gd[png]
+ virtual/httpd-php:*
+ mysql? ( dev-lang/php[mysqli] )
+ odbc? ( dev-lang/php[odbc] )
+ postgres? ( dev-lang/php[postgres] )
+ sqlite? ( dev-lang/php[sqlite] )
+ )
+"
+DEPEND="${COMMON_DEPEND}
+ static? (
+ curl? ( net-misc/curl[static-libs] )
+ ldap? (
+ =dev-libs/cyrus-sasl-2*[static-libs]
+ net-libs/gnutls[static-libs]
+ net-nds/openldap[static-libs]
+ )
+ libxml2? ( dev-libs/libxml2[static-libs] )
+ mysql? ( dev-db/mysql-connector-c[static-libs] )
+ odbc? ( dev-db/unixODBC[static-libs] )
+ postgres? ( dev-db/postgresql:*[static-libs] )
+ sqlite? ( dev-db/sqlite[static-libs] )
+ ssh? ( net-libs/libssh2 )
+ )
+"
+BDEPEND="
+ virtual/pkgconfig
+ agent2? (
+ >=dev-lang/go-1.23
+ app-arch/unzip
+ )
+"
+
+# upstream tests fail for agent2
+RESTRICT="test"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-4.0.18-modulepathfix.patch"
+ "${FILESDIR}/${PN}-3.0.30-security-disable-PidFile.patch"
+ "${FILESDIR}/${PN}-6.4.0-configure-sscanf.patch"
+)
+
+ZABBIXJAVA_BASE="opt/zabbix_java"
+
+pkg_setup() {
+ if use frontend; then
+ webapp_pkg_setup
+ fi
+
+ java-pkg-opt-2_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # Since we patch configure.ac with e.g., ${PN}-6.4.0-configure-sscanf.patch".
+ eautoreconf
+}
+
+src_configure() {
+ local econf_args=(
+ --with-libpcre2
+ "$(use_enable agent)"
+ "$(use_enable agent2)"
+ "$(use_enable ipv6)"
+ "$(use_enable java)"
+ "$(use_enable proxy)"
+ "$(use_enable server)"
+ "$(use_enable static)"
+ "$(use_with curl libcurl)"
+ "$(use_with gnutls)"
+ "$(use_with ldap)"
+ "$(use_with libxml2)"
+ "$(use_with mysql)"
+ "$(use_with odbc unixodbc)"
+ "$(use_with openipmi openipmi)"
+ "$(use_with openssl)"
+ "$(use_with postgres postgresql)"
+ "$(use_with snmp net-snmp)"
+ "$(use_with sqlite sqlite3)"
+ "$(use_with ssh ssh2)"
+ )
+
+ econf ${econf_args[@]}
+}
+
+src_compile() {
+ if [ -f Makefile ] || [ -f GNUmakefile ] || [ -f makefile ]; then
+ emake AR="$(tc-getAR)" RANLIB="$(tc-getRANLIB)"
+ fi
+}
+
+src_install() {
+ local dirs=(
+ /etc/zabbix
+ /var/lib/zabbix
+ /var/lib/zabbix/home
+ /var/lib/zabbix/scripts
+ /var/lib/zabbix/alertscripts
+ /var/lib/zabbix/externalscripts
+ /var/log/zabbix
+ )
+
+ for dir in "${dirs[@]}"; do
+ keepdir "${dir}"
+ done
+
+ if use server; then
+ insinto /etc/zabbix
+ doins "${S}"/conf/zabbix_server.conf
+ fperms 0640 /etc/zabbix/zabbix_server.conf
+ fowners root:zabbix /etc/zabbix/zabbix_server.conf
+
+ newinitd "${FILESDIR}"/zabbix-server-r1.init zabbix-server
+
+ dosbin src/zabbix_server/zabbix_server
+
+ insinto /usr/share/zabbix
+ doins -r "${S}"/database/
+
+ systemd_dounit "${FILESDIR}"/zabbix-server.service
+ newtmpfiles "${FILESDIR}"/zabbix-server.tmpfiles zabbix-server.conf
+ fi
+
+ if use proxy; then
+ insinto /etc/zabbix
+ doins "${S}"/conf/zabbix_proxy.conf
+ fperms 0640 /etc/zabbix/zabbix_proxy.conf
+ fowners root:zabbix /etc/zabbix/zabbix_proxy.conf
+
+ newinitd "${FILESDIR}"/zabbix-proxy.init zabbix-proxy
+
+ dosbin src/zabbix_proxy/zabbix_proxy
+
+ insinto /usr/share/zabbix
+ doins -r "${S}"/database/
+
+ systemd_dounit "${FILESDIR}"/zabbix-proxy.service
+ newtmpfiles "${FILESDIR}"/zabbix-proxy.tmpfiles zabbix-proxy.conf
+ fi
+
+ if use agent; then
+ insinto /etc/zabbix
+ doins "${S}"/conf/zabbix_agentd.conf
+ fperms 0640 /etc/zabbix/zabbix_agentd.conf
+ fowners root:zabbix /etc/zabbix/zabbix_agentd.conf
+
+ newinitd "${FILESDIR}"/zabbix-agentd.init zabbix-agentd
+
+ dosbin src/zabbix_agent/zabbix_agentd
+ dobin \
+ src/zabbix_sender/zabbix_sender \
+ src/zabbix_get/zabbix_get
+
+ systemd_dounit "${FILESDIR}"/zabbix-agentd.service
+ newtmpfiles "${FILESDIR}"/zabbix-agentd.tmpfiles zabbix-agentd.conf
+ fi
+ if use agent2; then
+ insinto /etc/zabbix
+ doins "${S}"/src/go/conf/zabbix_agent2.conf
+ fperms 0640 /etc/zabbix/zabbix_agent2.conf
+ fowners root:zabbix /etc/zabbix/zabbix_agent2.conf
+ keepdir /etc/zabbix/zabbix_agent2.d/plugins.d
+
+ newinitd "${FILESDIR}"/zabbix-agent2.init zabbix-agent2
+
+ dosbin src/go/bin/zabbix_agent2
+
+ systemd_dounit "${FILESDIR}"/zabbix-agent2.service
+ newtmpfiles "${FILESDIR}"/zabbix-agent2.tmpfiles zabbix-agent2.conf
+ fi
+
+ fowners root:zabbix /etc/zabbix
+ fowners zabbix:zabbix \
+ /var/lib/zabbix \
+ /var/lib/zabbix/home \
+ /var/lib/zabbix/scripts \
+ /var/lib/zabbix/alertscripts \
+ /var/lib/zabbix/externalscripts \
+ /var/log/zabbix
+ fperms 0750 \
+ /etc/zabbix \
+ /var/lib/zabbix \
+ /var/lib/zabbix/home \
+ /var/lib/zabbix/scripts \
+ /var/lib/zabbix/alertscripts \
+ /var/lib/zabbix/externalscripts \
+ /var/log/zabbix
+
+ dodoc README INSTALL NEWS ChangeLog \
+ conf/zabbix_agentd.conf \
+ conf/zabbix_proxy.conf \
+ conf/zabbix_agentd/userparameter_examples.conf \
+ conf/zabbix_agentd/userparameter_mysql.conf \
+ conf/zabbix_server.conf
+
+ if use frontend; then
+ webapp_src_preinst
+ cp -R ui/* "${D}/${MY_HTDOCSDIR}"
+ webapp_configfile \
+ "${MY_HTDOCSDIR}"/include/db.inc.php \
+ "${MY_HTDOCSDIR}"/include/config.inc.php
+ webapp_src_install
+ fi
+
+ if use java; then
+ dodir \
+ /${ZABBIXJAVA_BASE} \
+ /${ZABBIXJAVA_BASE}/bin \
+ /${ZABBIXJAVA_BASE}/lib
+ keepdir /${ZABBIXJAVA_BASE}
+ exeinto /${ZABBIXJAVA_BASE}/bin
+ doexe src/zabbix_java/bin/zabbix-java-gateway-"${MY_PV}".jar
+ exeinto /${ZABBIXJAVA_BASE}/lib
+ doexe \
+ src/zabbix_java/lib/logback-classic-1.5.16.jar \
+ src/zabbix_java/lib/logback-console.xml \
+ src/zabbix_java/lib/logback-core-1.5.16.jar \
+ src/zabbix_java/lib/logback.xml \
+ src/zabbix_java/lib/android-json-4.3_r3.1.jar \
+ src/zabbix_java/lib/slf4j-api-2.0.16.jar
+ newinitd "${FILESDIR}"/zabbix-jmx-proxy.init zabbix-jmx-proxy
+ newconfd "${FILESDIR}"/zabbix-jmx-proxy.conf zabbix-jmx-proxy
+ fi
+}
+
+pkg_postinst() {
+ if use server || use proxy ; then
+ elog
+ elog "You may need to configure your database for Zabbix"
+ elog "if you have not already done so."
+ elog
+
+ zabbix_homedir=$(egethome zabbix)
+ if [ -n "${zabbix_homedir}" ] && \
+ [ "${zabbix_homedir}" != "/var/lib/zabbix/home" ]; then
+ ewarn
+ ewarn "The user 'zabbix' should have his homedir changed"
+ ewarn "to /var/lib/zabbix/home if you want to use"
+ ewarn "custom alert scripts."
+ ewarn
+ ewarn "A real homedir might be needed for configfiles"
+ ewarn "for custom alert scripts."
+ ewarn
+ ewarn "To change the homedir use:"
+ ewarn " usermod -d /var/lib/zabbix/home zabbix"
+ ewarn
+ fi
+ fi
+
+ if use server; then
+ tmpfiles_process zabbix-server.conf
+
+ elog
+ elog "For distributed monitoring you have to run:"
+ elog
+ elog "zabbix_server -n <nodeid>"
+ elog
+ elog "This will convert database data for use with Node ID"
+ elog "and also adds a local node."
+ elog
+ fi
+
+ if use proxy; then
+ tmpfiles_process zabbix-proxy.conf
+ fi
+
+ if use agent; then
+ tmpfiles_process zabbix-agentd.conf
+ fi
+
+ if use agent2; then
+ tmpfiles_process zabbix-agent2.conf
+ fi
+
+ elog "--"
+ elog
+ elog "You may need to add these lines to /etc/services:"
+ elog
+ elog "zabbix-agent 10050/tcp Zabbix Agent"
+ elog "zabbix-agent 10050/udp Zabbix Agent"
+ elog "zabbix-trapper 10051/tcp Zabbix Trapper"
+ elog "zabbix-trapper 10051/udp Zabbix Trapper"
+ elog
+}
+
+pkg_prerm() {
+ (use frontend || use server) && webapp_pkg_prerm
+}
diff --git a/net-analyzer/zmap/Manifest b/net-analyzer/zmap/Manifest
new file mode 100644
index 000000000000..c0a3c0349505
--- /dev/null
+++ b/net-analyzer/zmap/Manifest
@@ -0,0 +1 @@
+DIST zmap-4.3.2.tar.gz 211361 BLAKE2B 5b08ba0d45f7ceb877bda874df77000e1d16d6ee2db4eb7427ed7ed12c768b77f88183bfcc445e99c42016b8e2d45c5f1480dd16a96e6bb521e3723bf3646f55 SHA512 38dffacca5a49059e9711bd47a5a660d357adffb9f847b605c9eedbc8d5e3e2bfb5eb13a0fc9f20b48349a3278651c85da301b48741efb3e2ee751bbd4877104
diff --git a/net-analyzer/zmap/files/zmap-4.3.2-cmake.patch b/net-analyzer/zmap/files/zmap-4.3.2-cmake.patch
new file mode 100644
index 000000000000..683a5eb4d3ea
--- /dev/null
+++ b/net-analyzer/zmap/files/zmap-4.3.2-cmake.patch
@@ -0,0 +1,12 @@
+Compat with cmake-4
+https://github.com/zmap/zmap/pull/933.patch
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index baa524a..60e3839 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -1,4 +1,4 @@
+-cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
++cmake_minimum_required(VERSION 3.5.0 FATAL_ERROR)
+ project(ZMAP C)
+ set(ZMAP_VERSION DEVELOPMENT) # Change DEVELOPMENT to version number for release
+
diff --git a/net-analyzer/zmap/files/zmap-4.3.2-pkgconfig.patch b/net-analyzer/zmap/files/zmap-4.3.2-pkgconfig.patch
new file mode 100644
index 000000000000..65388cc4d5c3
--- /dev/null
+++ b/net-analyzer/zmap/files/zmap-4.3.2-pkgconfig.patch
@@ -0,0 +1,18 @@
+use find_package to prevent failure without native-symlinks
+diff --git a/CMakeLists.txt b/CMakeLists.txt
+index baa524a..60e3839 100644
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -85,11 +85,7 @@ if (NOT FOUND_LIBUNISTRING)
+ message(FATAL_ERROR "Missing dependency: did not find libunistring, please install libunistring or equivalent. More details in INSTALL.md")
+ endif()
+
+-find_program(FOUND_PKGCONFIG HINTS /usr/include/ NAMES pkg-config dev-util/pkgconf)
+-if (NOT FOUND_PKGCONFIG)
+- message(FATAL_ERROR "Missing dependency: did not find pkg-config, please install pkg-config or equivalent. More details in INSTALL.md")
+-endif()
+-
++find_package(PkgConfig REQUIRED)
+
+ if(ENABLE_DEVELOPMENT)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -ggdb")
diff --git a/net-analyzer/zmap/metadata.xml b/net-analyzer/zmap/metadata.xml
new file mode 100644
index 000000000000..dc53bc79095b
--- /dev/null
+++ b/net-analyzer/zmap/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://docs.baldeagleos.com/dtd/metadata.dtd">
+<pkgmetadata>
+ <longdescription>
+ZMap is an open-source network scanner that enables researchers to easily
+perform Internet-wide network studies. With a single machine and a well
+provisioned network uplink, ZMap is capable of performing a complete scan of
+the IPv4 address space in under 45 minutes, approaching the theoretical limit
+of gigabit Ethernet.
+
+ZMap can be used to study protocol adoption over time, monitor service
+availability, and help us better understand large systems distributed
+across the Internet.
+ </longdescription>
+ <origin>baldeagleos-repo</origin>
+</pkgmetadata>
diff --git a/net-analyzer/zmap/zmap-4.3.2.ebuild b/net-analyzer/zmap/zmap-4.3.2.ebuild
new file mode 100644
index 000000000000..230b3ac9b3ea
--- /dev/null
+++ b/net-analyzer/zmap/zmap-4.3.2.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake fcaps
+
+DESCRIPTION="Fast network scanner designed for Internet-wide network surveys"
+HOMEPAGE="https://zmap.io/"
+SRC_URI="https://github.com/zmap/zmap/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="amd64 arm ~arm64 x86"
+IUSE="cpu_flags_x86_aes"
+
+RDEPEND="
+ dev-libs/gmp:=
+ dev-libs/json-c:=
+ dev-libs/judy
+ dev-libs/libunistring:=
+ net-libs/libpcap
+"
+DEPEND="${RDEPEND}"
+BDEPEND="
+ app-alternatives/lex
+ dev-util/byacc
+ dev-util/gengetopt
+ virtual/pkgconfig
+"
+
+FILECAPS=( cap_net_raw=ep usr/sbin/zmap )
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.3.2-pkgconfig.patch
+ # Merged. To be removed at next version.
+ "${FILESDIR}"/${PN}-4.3.2-cmake.patch
+)
+
+DOCS=( AUTHORS CHANGELOG.md README.md examples )
+
+src_configure() {
+ local mycmakeargs=(
+ -DENABLE_DEVELOPMENT=OFF
+ -DFORCE_CONF_INSTALL=ON
+ -DWITH_AES_HW=$(usex cpu_flags_x86_aes)
+ # no module in ::gentoo for now
+ -DWITH_NETMAP=OFF
+ -DWITH_WERROR=OFF
+ )
+
+ cmake_src_configure
+}