about summary refs log tree commit diff
path: root/nixpkgs/pkgs/tools/networking
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/tools/networking')
-rw-r--r--nixpkgs/pkgs/tools/networking/aardvark-dns/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/acme-client/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/ahcpd/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/ain/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/ali/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/altermime/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/amass/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/anevicon/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/arping/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/arpoison/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/atinout/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/axel/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/babeld/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/bacnet-stack/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/bandwhich/default.nix18
-rw-r--r--nixpkgs/pkgs/tools/networking/bgpdump/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/bgpq3/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/bgpq4/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/networking/biosdevname/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/bombardier/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/bore/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/boringtun/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/boundary/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/brook/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/bukubrow/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/bully/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/burpsuite/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/cadaver/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/cassowary/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/castnow/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/cdpr/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/cfspeedtest/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/chaos/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/checkip/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/cksfv/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/cnping/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/cntlm/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/cocom/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/connect/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/containerlab/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/corerad/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/corkscrew/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/crackle/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/croc/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/networking/curlie/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/darkstat/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/ddns-go/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/dhcpcd/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/dhcpdump/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/dhcping/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/dnscrypt-wrapper/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/dnsmon-go/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/dnsmonster/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/dnsproxy/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/dnstake/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/dnstop/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/dnstracer/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/driftnet/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/drill/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/ebpf-verifier/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/edgedb/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/email/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/fakeroute/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/fast-ssh/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/fastd/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/filegive/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/findomain/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/flannel/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/fping/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/gemget/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/ghostunnel/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/go-shadowsocks2/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/gobgp/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/godns/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/godspeed/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/gof5/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/goreplay/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/gost/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/gping/default.nix7
-rw-r--r--nixpkgs/pkgs/tools/networking/grpc_cli/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/networking/grpcui/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/grpcurl/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/hans/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/haproxy/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/hey/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/horst/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/hostapd-mana/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/hss/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/htpdate/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/httperf/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/httping/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/httplab/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/httprobe/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/hue-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/hysteria/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/i2p/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/i2pd/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/ifstat-legacy/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/iftop/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/igmpproxy/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/inadyn/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/ip2location/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/ip2unix/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/ipcalc/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/ivpn/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/jnettop/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/kail/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/kapp/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/keama/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/keepalived/default.nix24
-rw-r--r--nixpkgs/pkgs/tools/networking/labctl/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/libreswan/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/ligolo-ng/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/linux-router/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/lxi-tools/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/lychee/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/mailsend/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/maphosts/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/mbidled/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/mcrcon/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/mdk4/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/memtier-benchmark/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/minidlna/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/minio-client/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/minissdpd/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/mmsd-tng/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/mockoon/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/mole/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/motrix/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/mozwire/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/mqtt-benchmark/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/mqttui/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/mtr-exporter/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/mubeng/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/muffet/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/nat-traverse/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/netassert/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/netbird/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/netdiscover/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/nethogs/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/nethoscope/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/netifd/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/netmask/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/nettee/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/nexttrace/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/nfstrace/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/ngrep/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/ngrok/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/ngrok/versions.json36
-rw-r--r--nixpkgs/pkgs/tools/networking/noip/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/norouter/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/ntopng/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/ntttcp/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/nuttcp/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/nylon/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/nzbget/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/oapi-codegen/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/octodns/providers/bind/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/ofono/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/oha/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/onetun/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/openconnect/common.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/openfortivpn/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/opensnitch/daemon.nix95
-rw-r--r--nixpkgs/pkgs/tools/networking/opensnitch/go.mod33
-rw-r--r--nixpkgs/pkgs/tools/networking/opensnitch/go.sum197
-rw-r--r--nixpkgs/pkgs/tools/networking/opensnitch/ui.nix75
-rw-r--r--nixpkgs/pkgs/tools/networking/openvpn/default.nix5
-rw-r--r--nixpkgs/pkgs/tools/networking/oui/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/owl/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/pacparser/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/pathvector/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/pcapc/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/pcapfix/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/pgrok/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/phantomsocks/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/photon/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/piknik/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/pingtcp/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/pingu/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/pixiecore/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/pixiewps/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/privoxy/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/proxychains/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/pwnat/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/q/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/qrcp/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/quickserve/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/rathole/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/rcon/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/rconc/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/rdap/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/rdrview/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/redfang/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/redir/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/redli/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/redsocks/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/requestly/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/restish/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/rewrk/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/ripmime/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/routedns/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/rshijack/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/s3rs/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/s5cmd/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/saldl/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/shncpd/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/simpleproxy/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/sipcalc/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/sipexer/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/sipsak/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/sish/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/sitespeed-io/default.nix17
-rw-r--r--nixpkgs/pkgs/tools/networking/sleep-on-lan/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/slirp4netns/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/slowlorust/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/smartdns/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/snabb/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/snet/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/snmpcheck/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/snowflake/default.nix2
-rw-r--r--nixpkgs/pkgs/tools/networking/sockperf/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/speedtest-go/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/speedtest-rs/default.nix12
-rw-r--r--nixpkgs/pkgs/tools/networking/spoofer/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/srelay/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/ssh-agents/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/ssh-ident/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/ssh-key-confirmer/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/sshed/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/sshpass/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/sshping/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/ssldump/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/sslsplit/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/sstp/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/stun/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/stunnel/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/subfinder/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/suckit/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/swagger-cli/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/swagger-codegen/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/swagger-codegen3/default.nix4
-rw-r--r--nixpkgs/pkgs/tools/networking/tayga/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/tcp-cutter/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/tcpflow/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/tcptraceroute/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/telepresence2/default.nix6
-rw-r--r--nixpkgs/pkgs/tools/networking/tendermint/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/termscp/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/tinyfecvpn/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/tox-node/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/traceroute/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/tran/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/transmission-rss/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/trurl/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/tun2socks/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/tunwg/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/udpreplay/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/udptunnel/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/uqmi/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/vegeta/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/vlan/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/vopono/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/wakelan/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/wakeonlan/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/wavemon/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/wbox/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/wg-netmanager/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/wget2/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/whois/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/wireguard-go/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/wireguard-vanity-address/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/wireproxy/default.nix11
-rw-r--r--nixpkgs/pkgs/tools/networking/wormhole-william/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/wrk/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/wrk2/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/wsl-vpnkit/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/wuzz/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/xrootd/default.nix55
-rw-r--r--nixpkgs/pkgs/tools/networking/zap/default.nix1
-rw-r--r--nixpkgs/pkgs/tools/networking/zrok/default.nix8
-rw-r--r--nixpkgs/pkgs/tools/networking/zs-apc-spdu-ctl/default.nix1
283 files changed, 413 insertions, 496 deletions
diff --git a/nixpkgs/pkgs/tools/networking/aardvark-dns/default.nix b/nixpkgs/pkgs/tools/networking/aardvark-dns/default.nix
index df39d0a98e9e..f8770612b253 100644
--- a/nixpkgs/pkgs/tools/networking/aardvark-dns/default.nix
+++ b/nixpkgs/pkgs/tools/networking/aardvark-dns/default.nix
@@ -26,5 +26,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ ] ++ teams.podman.members;
     platforms = platforms.linux;
+    mainProgram = "aardvark-dns";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/acme-client/default.nix b/nixpkgs/pkgs/tools/networking/acme-client/default.nix
index 55f81b7f6b15..2a0baedde7ca 100644
--- a/nixpkgs/pkgs/tools/networking/acme-client/default.nix
+++ b/nixpkgs/pkgs/tools/networking/acme-client/default.nix
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = licenses.isc;
     maintainers = with maintainers; [ pmahoney ];
+    mainProgram = "acme-client";
   };
 }
 
diff --git a/nixpkgs/pkgs/tools/networking/ahcpd/default.nix b/nixpkgs/pkgs/tools/networking/ahcpd/default.nix
index 83647d17ae3c..f6f483602c1f 100644
--- a/nixpkgs/pkgs/tools/networking/ahcpd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ahcpd/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     description = "Autoconfiguration protocol for IPv6 and dual-stack IPv6/IPv4 networks";
     license = lib.licenses.mit;
     platforms = lib.platforms.linux;
+    mainProgram = "ahcpd";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/ain/default.nix b/nixpkgs/pkgs/tools/networking/ain/default.nix
index cd8d518c0605..878af2c68211 100644
--- a/nixpkgs/pkgs/tools/networking/ain/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ain/default.nix
@@ -28,5 +28,6 @@ buildGoModule rec {
     changelog = "https://github.com/jonaslu/ain/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "ain";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/ali/default.nix b/nixpkgs/pkgs/tools/networking/ali/default.nix
index 53403b636785..3b6fef73595c 100644
--- a/nixpkgs/pkgs/tools/networking/ali/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ali/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     license = licenses.mit;
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ farcaller ];
+    mainProgram = "ali";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/altermime/default.nix b/nixpkgs/pkgs/tools/networking/altermime/default.nix
index 290b37889977..812da5f8742e 100644
--- a/nixpkgs/pkgs/tools/networking/altermime/default.nix
+++ b/nixpkgs/pkgs/tools/networking/altermime/default.nix
@@ -28,5 +28,6 @@ gccStdenv.mkDerivation rec {
     platforms = platforms.all;
     license.fullName = "alterMIME LICENSE";
     downloadPage = "https://pldaniels.com/altermime/";
+    mainProgram = "altermime";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/amass/default.nix b/nixpkgs/pkgs/tools/networking/amass/default.nix
index d65a38637fe9..cbd651390505 100644
--- a/nixpkgs/pkgs/tools/networking/amass/default.nix
+++ b/nixpkgs/pkgs/tools/networking/amass/default.nix
@@ -47,5 +47,6 @@ buildGoModule rec {
     changelog = "https://github.com/OWASP/Amass/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ kalbasit fab ];
+    mainProgram = "amass";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/anevicon/default.nix b/nixpkgs/pkgs/tools/networking/anevicon/default.nix
index cff22fa71e6e..346c79dd6f31 100644
--- a/nixpkgs/pkgs/tools/networking/anevicon/default.nix
+++ b/nixpkgs/pkgs/tools/networking/anevicon/default.nix
@@ -39,5 +39,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/rozgo/anevicon";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "anevicon";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/arping/default.nix b/nixpkgs/pkgs/tools/networking/arping/default.nix
index 672ccc2bcdb1..3a08ec85083a 100644
--- a/nixpkgs/pkgs/tools/networking/arping/default.nix
+++ b/nixpkgs/pkgs/tools/networking/arping/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ gpl2Plus ];
     maintainers = with maintainers; [ michalrus ];
     platforms = platforms.unix;
+    mainProgram = "arping";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/arpoison/default.nix b/nixpkgs/pkgs/tools/networking/arpoison/default.nix
index 64b3229fad6b..912636a0e72a 100644
--- a/nixpkgs/pkgs/tools/networking/arpoison/default.nix
+++ b/nixpkgs/pkgs/tools/networking/arpoison/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ gpl2 ];
     maintainers = [ maintainers.michalrus ];
     platforms = platforms.unix;
+    mainProgram = "arpoison";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/atinout/default.nix b/nixpkgs/pkgs/tools/networking/atinout/default.nix
index 7ff1b06c3b80..64d13a7b14ea 100644
--- a/nixpkgs/pkgs/tools/networking/atinout/default.nix
+++ b/nixpkgs/pkgs/tools/networking/atinout/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.unix;
     license = licenses.gpl3;
     maintainers = with maintainers; [ bendlas ];
+    mainProgram = "atinout";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/axel/default.nix b/nixpkgs/pkgs/tools/networking/axel/default.nix
index e018f9789e38..0a5a11bd8eb7 100644
--- a/nixpkgs/pkgs/tools/networking/axel/default.nix
+++ b/nixpkgs/pkgs/tools/networking/axel/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ pSub ];
     platforms = with platforms; unix;
     license = licenses.gpl2;
+    mainProgram = "axel";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/babeld/default.nix b/nixpkgs/pkgs/tools/networking/babeld/default.nix
index 64f6cc4eca44..4fd86e16f446 100644
--- a/nixpkgs/pkgs/tools/networking/babeld/default.nix
+++ b/nixpkgs/pkgs/tools/networking/babeld/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ hexa ];
     platforms = platforms.linux;
+    mainProgram = "babeld";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/bacnet-stack/default.nix b/nixpkgs/pkgs/tools/networking/bacnet-stack/default.nix
index d5f126c19bbb..528dd8141761 100644
--- a/nixpkgs/pkgs/tools/networking/bacnet-stack/default.nix
+++ b/nixpkgs/pkgs/tools/networking/bacnet-stack/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bacnet-stack";
-  version = "1.3.2";
+  version = "1.3.3";
 
   src = fetchFromGitHub {
     owner = "bacnet-stack";
     repo = "bacnet-stack";
     rev = "bacnet-stack-${version}";
-    sha256 = "sha256-hgUntojq10gYoY/inO46MzwK6o2q8ELKTaJbAbCx8Vc=";
+    sha256 = "sha256-fFQIyZYHHNyszUO8jySIB9Y/Amzj/TTdxaex76ovBmw=";
   };
 
   hardeningDisable = [ "all" ];
diff --git a/nixpkgs/pkgs/tools/networking/bandwhich/default.nix b/nixpkgs/pkgs/tools/networking/bandwhich/default.nix
index 240fa3e86f8a..43da60ffb89d 100644
--- a/nixpkgs/pkgs/tools/networking/bandwhich/default.nix
+++ b/nixpkgs/pkgs/tools/networking/bandwhich/default.nix
@@ -1,4 +1,4 @@
-{ lib, stdenv, fetchFromGitHub, rustPlatform, Security }:
+{ lib, stdenv, fetchFromGitHub, rustPlatform, Security, installShellFiles }:
 
 rustPlatform.buildRustPackage rec {
   pname = "bandwhich";
@@ -23,11 +23,25 @@ rustPlatform.buildRustPackage rec {
     "--skip=tests::cases::ui::layout_under_50_width_under_50_height"
   ];
 
+  nativeBuildInputs = [ installShellFiles ];
+
   buildInputs = lib.optional stdenv.isDarwin Security;
 
   # 10 passed; 47 failed https://hydra.nixos.org/build/148943783/nixlog/1
   doCheck = !stdenv.isDarwin;
 
+  preConfigure = ''
+    export BANDWHICH_GEN_DIR=_shell-files
+    mkdir -p $BANDWHICH_GEN_DIR
+  '';
+
+  postInstall = ''
+    installManPage $BANDWHICH_GEN_DIR/bandwhich.1
+
+    installShellCompletion $BANDWHICH_GEN_DIR/bandwhich.{bash,fish} \
+      --zsh $BANDWHICH_GEN_DIR/_bandwhich
+  '';
+
   meta = with lib; {
     description = "A CLI utility for displaying current network utilization";
     longDescription = ''
@@ -38,8 +52,10 @@ rustPlatform.buildRustPackage rec {
       the background using reverse DNS on a best effort basis.
     '';
     homepage = "https://github.com/imsnif/bandwhich";
+    changelog = "https://github.com/imsnif/bandwhich/blob/${src.rev}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ Br1ght0ne figsoda ];
     platforms = platforms.unix;
+    mainProgram = "bandwhich";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/bgpdump/default.nix b/nixpkgs/pkgs/tools/networking/bgpdump/default.nix
index 5e98228da2e5..4ca75a53c254 100644
--- a/nixpkgs/pkgs/tools/networking/bgpdump/default.nix
+++ b/nixpkgs/pkgs/tools/networking/bgpdump/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.hpnd;
     maintainers = with lib.maintainers; [ lewo ];
     platforms = with lib.platforms; linux;
+    mainProgram = "bgpdump";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/bgpq3/default.nix b/nixpkgs/pkgs/tools/networking/bgpq3/default.nix
index 1fe2f83f8a18..7d92aa4ee995 100644
--- a/nixpkgs/pkgs/tools/networking/bgpq3/default.nix
+++ b/nixpkgs/pkgs/tools/networking/bgpq3/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ b4dm4n ];
     platforms = with platforms; unix;
+    mainProgram = "bgpq3";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/bgpq4/default.nix b/nixpkgs/pkgs/tools/networking/bgpq4/default.nix
index f26b22e7967c..22e17a205c20 100644
--- a/nixpkgs/pkgs/tools/networking/bgpq4/default.nix
+++ b/nixpkgs/pkgs/tools/networking/bgpq4/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "bgpq4";
-  version = "1.11";
+  version = "1.12";
 
   src = fetchFromGitHub {
     owner = "bgp";
     repo = pname;
     rev = version;
-    sha256 = "sha256-Mz26YWrVXiTOWywouehpTQ7PaakaXUsIHH+47m8vXDo=";
+    sha256 = "sha256-Irv91M5g21id0QfsnpDA7n5IhP8Qe9QHMh/KizD74qw=";
   };
 
   nativeBuildInputs = [
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ vincentbernat ];
     platforms = with platforms; unix;
+    mainProgram = "bgpq4";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/biosdevname/default.nix b/nixpkgs/pkgs/tools/networking/biosdevname/default.nix
index 0f7702acdcc8..fe9ccb3dd20a 100644
--- a/nixpkgs/pkgs/tools/networking/biosdevname/default.nix
+++ b/nixpkgs/pkgs/tools/networking/biosdevname/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = ["x86_64-linux" "i686-linux"];
     maintainers = with maintainers; [ ];
+    mainProgram = "biosdevname";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/bombardier/default.nix b/nixpkgs/pkgs/tools/networking/bombardier/default.nix
index 56f179b22ca7..89f20860836c 100644
--- a/nixpkgs/pkgs/tools/networking/bombardier/default.nix
+++ b/nixpkgs/pkgs/tools/networking/bombardier/default.nix
@@ -42,5 +42,6 @@ buildGoModule rec {
     changelog = "https://github.com/codesenberg/bombardier/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "bombardier";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/bore/default.nix b/nixpkgs/pkgs/tools/networking/bore/default.nix
index c3ae78466890..abbbcc414751 100644
--- a/nixpkgs/pkgs/tools/networking/bore/default.nix
+++ b/nixpkgs/pkgs/tools/networking/bore/default.nix
@@ -45,5 +45,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://crates.io/crates/bore";
     license = licenses.isc;
     maintainers = [ maintainers.delan ];
+    mainProgram = "bore";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/boringtun/default.nix b/nixpkgs/pkgs/tools/networking/boringtun/default.nix
index 8d3f17268bc1..b1defdcfb1c3 100644
--- a/nixpkgs/pkgs/tools/networking/boringtun/default.nix
+++ b/nixpkgs/pkgs/tools/networking/boringtun/default.nix
@@ -24,5 +24,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ xrelkd marsam ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "boringtun-cli";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/boundary/default.nix b/nixpkgs/pkgs/tools/networking/boundary/default.nix
index 4d8a30f2df07..66973b17ccba 100644
--- a/nixpkgs/pkgs/tools/networking/boundary/default.nix
+++ b/nixpkgs/pkgs/tools/networking/boundary/default.nix
@@ -66,5 +66,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsl11;
     maintainers = with maintainers; [ jk techknowlogick ];
     platforms = platforms.unix;
+    mainProgram = "boundary";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/brook/default.nix b/nixpkgs/pkgs/tools/networking/brook/default.nix
index bdc16874779b..432b49523e18 100644
--- a/nixpkgs/pkgs/tools/networking/brook/default.nix
+++ b/nixpkgs/pkgs/tools/networking/brook/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     description = "A cross-platform Proxy/VPN software";
     license = with licenses; [ gpl3Only ];
     maintainers = with maintainers; [ xrelkd ];
+    mainProgram = "brook";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/bukubrow/default.nix b/nixpkgs/pkgs/tools/networking/bukubrow/default.nix
index 84d2467e6ad8..8cd005a120aa 100644
--- a/nixpkgs/pkgs/tools/networking/bukubrow/default.nix
+++ b/nixpkgs/pkgs/tools/networking/bukubrow/default.nix
@@ -43,6 +43,7 @@ in rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/SamHH/bukubrow-host";
     license = licenses.gpl3;
     maintainers = with maintainers; [ infinisil ];
+    mainProgram = "bukubrow";
   };
 }
 
diff --git a/nixpkgs/pkgs/tools/networking/bully/default.nix b/nixpkgs/pkgs/tools/networking/bully/default.nix
index 55ff196154e3..3b2f62281ef1 100644
--- a/nixpkgs/pkgs/tools/networking/bully/default.nix
+++ b/nixpkgs/pkgs/tools/networking/bully/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ edwtjo ];
     platforms = platforms.linux;
+    mainProgram = "bully";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/burpsuite/default.nix b/nixpkgs/pkgs/tools/networking/burpsuite/default.nix
index 416d2877e201..02d0a4ab77c1 100644
--- a/nixpkgs/pkgs/tools/networking/burpsuite/default.nix
+++ b/nixpkgs/pkgs/tools/networking/burpsuite/default.nix
@@ -84,5 +84,6 @@ buildFHSEnv {
     platforms = jdk.meta.platforms;
     hydraPlatforms = [ ];
     maintainers = with maintainers; [ arcayr bennofs ];
+    mainProgram = "burpsuite";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/cadaver/default.nix b/nixpkgs/pkgs/tools/networking/cadaver/default.nix
index d94c89371b1b..e164e5bf433a 100644
--- a/nixpkgs/pkgs/tools/networking/cadaver/default.nix
+++ b/nixpkgs/pkgs/tools/networking/cadaver/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ ianwookim ];
     license = licenses.gpl2Plus;
     platforms = with platforms; linux ++ freebsd ++ openbsd;
+    mainProgram = "cadaver";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/cassowary/default.nix b/nixpkgs/pkgs/tools/networking/cassowary/default.nix
index e14c8e212717..2fa92e073076 100644
--- a/nixpkgs/pkgs/tools/networking/cassowary/default.nix
+++ b/nixpkgs/pkgs/tools/networking/cassowary/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     description = "Modern cross-platform HTTP load-testing tool written in Go";
     license = licenses.mit;
     maintainers = with maintainers; [ hugoreeves ];
+    mainProgram = "cassowary";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/castnow/default.nix b/nixpkgs/pkgs/tools/networking/castnow/default.nix
index 43a15a2c1c10..50bea652eef6 100644
--- a/nixpkgs/pkgs/tools/networking/castnow/default.nix
+++ b/nixpkgs/pkgs/tools/networking/castnow/default.nix
@@ -23,5 +23,6 @@ buildNpmPackage rec {
     homepage = "commandline chromecast player";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ ];
+    mainProgram = "castnow";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/cdpr/default.nix b/nixpkgs/pkgs/tools/networking/cdpr/default.nix
index 1f9e7b1888d1..5e86d58cfb31 100644
--- a/nixpkgs/pkgs/tools/networking/cdpr/default.nix
+++ b/nixpkgs/pkgs/tools/networking/cdpr/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.unix;
     maintainers = [ maintainers.sgo ];
+    mainProgram = "cdpr";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/cfspeedtest/default.nix b/nixpkgs/pkgs/tools/networking/cfspeedtest/default.nix
index 27889841a2e7..f6b3c59d5864 100644
--- a/nixpkgs/pkgs/tools/networking/cfspeedtest/default.nix
+++ b/nixpkgs/pkgs/tools/networking/cfspeedtest/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ mit ];
     broken = stdenv.isDarwin;
     maintainers = with maintainers; [ colemickens ];
+    mainProgram = "cfspeedtest";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/chaos/default.nix b/nixpkgs/pkgs/tools/networking/chaos/default.nix
index 0cadddb9f404..3e66ddac7b6c 100644
--- a/nixpkgs/pkgs/tools/networking/chaos/default.nix
+++ b/nixpkgs/pkgs/tools/networking/chaos/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     changelog = "https://github.com/projectdiscovery/chaos-client/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "chaos";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/checkip/default.nix b/nixpkgs/pkgs/tools/networking/checkip/default.nix
index d66616cfd7a5..180c08702901 100644
--- a/nixpkgs/pkgs/tools/networking/checkip/default.nix
+++ b/nixpkgs/pkgs/tools/networking/checkip/default.nix
@@ -30,5 +30,6 @@ buildGoModule rec {
     changelog = "https://github.com/jreisinger/checkip/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "checkip";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/cksfv/default.nix b/nixpkgs/pkgs/tools/networking/cksfv/default.nix
index f9d9224e91b1..2d5a2b533a61 100644
--- a/nixpkgs/pkgs/tools/networking/cksfv/default.nix
+++ b/nixpkgs/pkgs/tools/networking/cksfv/default.nix
@@ -15,5 +15,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ ];
     platforms = platforms.all;
     license = licenses.gpl2;
+    mainProgram = "cksfv";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/cnping/default.nix b/nixpkgs/pkgs/tools/networking/cnping/default.nix
index 0a7aed4fcb5d..ec3a0e03c288 100644
--- a/nixpkgs/pkgs/tools/networking/cnping/default.nix
+++ b/nixpkgs/pkgs/tools/networking/cnping/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ mit bsd3 ]; # dual licensed, MIT-x11 & BSD-3-Clause
     maintainers = with maintainers; [ ckie ];
     platforms = platforms.linux;
+    mainProgram = "cnping";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/cntlm/default.nix b/nixpkgs/pkgs/tools/networking/cntlm/default.nix
index 238b93633197..45fc56f3ba2d 100644
--- a/nixpkgs/pkgs/tools/networking/cntlm/default.nix
+++ b/nixpkgs/pkgs/tools/networking/cntlm/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
         maintainers.carlosdagos
       ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "cntlm";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/cocom/default.nix b/nixpkgs/pkgs/tools/networking/cocom/default.nix
index f4a896af7d1e..6ae004de9b3e 100644
--- a/nixpkgs/pkgs/tools/networking/cocom/default.nix
+++ b/nixpkgs/pkgs/tools/networking/cocom/default.nix
@@ -28,5 +28,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/LamdaLamdaLamda/cocom";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "cocom";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/connect/default.nix b/nixpkgs/pkgs/tools/networking/connect/default.nix
index 8b8c0018c66f..408bbbf66708 100644
--- a/nixpkgs/pkgs/tools/networking/connect/default.nix
+++ b/nixpkgs/pkgs/tools/networking/connect/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.gnu ++ lib.platforms.linux ++ lib.platforms.darwin;
     maintainers = with lib.maintainers; [ jcumming ];
+    mainProgram = "connect";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/containerlab/default.nix b/nixpkgs/pkgs/tools/networking/containerlab/default.nix
index 43b938ac4a13..a2fb4d8b59d4 100644
--- a/nixpkgs/pkgs/tools/networking/containerlab/default.nix
+++ b/nixpkgs/pkgs/tools/networking/containerlab/default.nix
@@ -42,5 +42,6 @@ buildGoModule rec {
     license = licenses.bsd3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ aaronjheng ];
+    mainProgram = "containerlab";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/corerad/default.nix b/nixpkgs/pkgs/tools/networking/corerad/default.nix
index 8535b2e31083..1a3340fcdb14 100644
--- a/nixpkgs/pkgs/tools/networking/corerad/default.nix
+++ b/nixpkgs/pkgs/tools/networking/corerad/default.nix
@@ -35,5 +35,6 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ mdlayher ];
     platforms = platforms.linux;
+    mainProgram = "corerad";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/corkscrew/default.nix b/nixpkgs/pkgs/tools/networking/corkscrew/default.nix
index 757a07c91989..882b742ebc76 100644
--- a/nixpkgs/pkgs/tools/networking/corkscrew/default.nix
+++ b/nixpkgs/pkgs/tools/networking/corkscrew/default.nix
@@ -17,6 +17,7 @@ stdenv.mkDerivation rec {
     description = "A tool for tunneling SSH through HTTP proxies";
     license = lib.licenses.gpl2;
     platforms = platforms.unix;
+    mainProgram = "corkscrew";
   };
 }
 
diff --git a/nixpkgs/pkgs/tools/networking/crackle/default.nix b/nixpkgs/pkgs/tools/networking/crackle/default.nix
index ea42e7a0b320..f84d44ca0917 100644
--- a/nixpkgs/pkgs/tools/networking/crackle/default.nix
+++ b/nixpkgs/pkgs/tools/networking/crackle/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/mikeryan/crackle";
     maintainers = with maintainers; [ moni ];
     license = licenses.bsd2;
+    mainProgram = "crackle";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/croc/default.nix b/nixpkgs/pkgs/tools/networking/croc/default.nix
index c52ac5b9ed4b..5efbd8651836 100644
--- a/nixpkgs/pkgs/tools/networking/croc/default.nix
+++ b/nixpkgs/pkgs/tools/networking/croc/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "croc";
-  version = "9.6.9";
+  version = "9.6.10";
 
   src = fetchFromGitHub {
     owner = "schollz";
     repo = pname;
     rev = "v${version}";
-    sha256 = "sha256-5nYC94x4Be1cvOumhlzCFwn+3ZsAhq66Qs/2Pk6Ko+o=";
+    sha256 = "sha256-SRSFbqwcMvzXVwwCxjIGnk/TisL3zGP2lQzy14HQrlU=";
   };
 
   vendorHash = "sha256-mxEDatG1VIPhnk7RUuobGGbUUi7HmeJvyBJFEEx4NMg=";
@@ -37,5 +37,6 @@ buildGoModule rec {
     homepage = "https://github.com/schollz/croc";
     license = licenses.mit;
     maintainers = with maintainers; [ hugoreeves equirosa SuperSandro2000 ];
+    mainProgram = "croc";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/curlie/default.nix b/nixpkgs/pkgs/tools/networking/curlie/default.nix
index 68088a03bc20..db70b9a51f0e 100644
--- a/nixpkgs/pkgs/tools/networking/curlie/default.nix
+++ b/nixpkgs/pkgs/tools/networking/curlie/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     homepage = "https://curlie.io/";
     maintainers = with maintainers; [ ma27 ];
     license = licenses.mit;
+    mainProgram = "curlie";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/darkstat/default.nix b/nixpkgs/pkgs/tools/networking/darkstat/default.nix
index 22fdbb3e6505..0dc03b0c0db6 100644
--- a/nixpkgs/pkgs/tools/networking/darkstat/default.nix
+++ b/nixpkgs/pkgs/tools/networking/darkstat/default.nix
@@ -53,5 +53,6 @@ stdenv.mkDerivation rec {
     changelog = "https://github.com/emikulic/darkstat/releases/tag/${version}";
     license = licenses.gpl2Only;
     platforms = with platforms; unix;
+    mainProgram = "darkstat";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/ddns-go/default.nix b/nixpkgs/pkgs/tools/networking/ddns-go/default.nix
index 0b4111a90e51..0c5882a1c392 100644
--- a/nixpkgs/pkgs/tools/networking/ddns-go/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ddns-go/default.nix
@@ -28,5 +28,6 @@ buildGoModule rec {
     description = "Simple and easy to use DDNS";
     license = licenses.mit;
     maintainers = with maintainers; [ oluceps ];
+    mainProgram = "ddns-go";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/dhcpcd/default.nix b/nixpkgs/pkgs/tools/networking/dhcpcd/default.nix
index 9d4dc1cd7c2c..158097d7c166 100644
--- a/nixpkgs/pkgs/tools/networking/dhcpcd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dhcpcd/default.nix
@@ -65,5 +65,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     license = licenses.bsd2;
     maintainers = with maintainers; [ eelco ];
+    mainProgram = "dhcpcd";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/dhcpdump/default.nix b/nixpkgs/pkgs/tools/networking/dhcpdump/default.nix
index 38c8bc76967c..e0e95f26d3d5 100644
--- a/nixpkgs/pkgs/tools/networking/dhcpdump/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dhcpdump/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = with maintainers; [ nickcao ];
     license = licenses.bsd2;
+    mainProgram = "dhcpdump";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/dhcping/default.nix b/nixpkgs/pkgs/tools/networking/dhcping/default.nix
index f1f8cd8b5e4b..87c84c5795af 100644
--- a/nixpkgs/pkgs/tools/networking/dhcping/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dhcping/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.mavetju.org/unix/general.php";
     license = licenses.bsd2;
     platforms = platforms.unix;
+    mainProgram = "dhcping";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/dnscrypt-wrapper/default.nix b/nixpkgs/pkgs/tools/networking/dnscrypt-wrapper/default.nix
index 944fd1b58977..49647153b666 100644
--- a/nixpkgs/pkgs/tools/networking/dnscrypt-wrapper/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dnscrypt-wrapper/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.isc;
     maintainers = with maintainers; [ joachifm ];
     platforms = platforms.linux;
+    mainProgram = "dnscrypt-wrapper";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/dnsmon-go/default.nix b/nixpkgs/pkgs/tools/networking/dnsmon-go/default.nix
index c8dbfdeddd43..2a0dea59c7f9 100644
--- a/nixpkgs/pkgs/tools/networking/dnsmon-go/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dnsmon-go/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     homepage = "https://github.com/jonpulsifer/dnsmon-go";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "dnsmon-go";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/dnsmonster/default.nix b/nixpkgs/pkgs/tools/networking/dnsmonster/default.nix
index f36fa1d2d98f..e4a5d097f04a 100644
--- a/nixpkgs/pkgs/tools/networking/dnsmonster/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dnsmonster/default.nix
@@ -35,5 +35,6 @@ buildGoModule rec {
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ fab ];
     broken = stdenv.isDarwin;
+    mainProgram = "dnsmonster";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/dnsproxy/default.nix b/nixpkgs/pkgs/tools/networking/dnsproxy/default.nix
index fd1d9606fcf2..7ebc14fc81e3 100644
--- a/nixpkgs/pkgs/tools/networking/dnsproxy/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dnsproxy/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     homepage = "https://github.com/AdguardTeam/dnsproxy";
     license = licenses.asl20;
     maintainers = with maintainers; [ contrun ];
+    mainProgram = "dnsproxy";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/dnstake/default.nix b/nixpkgs/pkgs/tools/networking/dnstake/default.nix
index ccb5d2e597df..37e5e0c38af7 100644
--- a/nixpkgs/pkgs/tools/networking/dnstake/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dnstake/default.nix
@@ -31,5 +31,6 @@ buildGoModule rec {
     homepage = "https://github.com/pwnesia/dnstake";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "dnstake";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/dnstop/default.nix b/nixpkgs/pkgs/tools/networking/dnstop/default.nix
index 7669f6eec8f9..05cd8f67d869 100644
--- a/nixpkgs/pkgs/tools/networking/dnstop/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dnstop/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     homepage = "http://dns.measurement-factory.com/tools/dnstop";
     license = lib.licenses.bsd3;
     platforms = lib.platforms.unix;
+    mainProgram = "dnstop";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/dnstracer/default.nix b/nixpkgs/pkgs/tools/networking/dnstracer/default.nix
index d52a6d4fc73c..c4e5fc18e6e6 100644
--- a/nixpkgs/pkgs/tools/networking/dnstracer/default.nix
+++ b/nixpkgs/pkgs/tools/networking/dnstracer/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd2;
     maintainers = with maintainers; [ ];
     platforms = platforms.all;
+    mainProgram = "dnstracer";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/driftnet/default.nix b/nixpkgs/pkgs/tools/networking/driftnet/default.nix
index ccf6da31be28..7957d90f05d3 100644
--- a/nixpkgs/pkgs/tools/networking/driftnet/default.nix
+++ b/nixpkgs/pkgs/tools/networking/driftnet/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ offline ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "driftnet";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/drill/default.nix b/nixpkgs/pkgs/tools/networking/drill/default.nix
index 032ce0be5e22..005d24ac323f 100644
--- a/nixpkgs/pkgs/tools/networking/drill/default.nix
+++ b/nixpkgs/pkgs/tools/networking/drill/default.nix
@@ -38,5 +38,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/fcsonline/drill";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ Br1ght0ne ];
+    mainProgram = "drill";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/ebpf-verifier/default.nix b/nixpkgs/pkgs/tools/networking/ebpf-verifier/default.nix
index 8605db55bba8..79a29cee8be3 100644
--- a/nixpkgs/pkgs/tools/networking/ebpf-verifier/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ebpf-verifier/default.nix
@@ -54,5 +54,6 @@ stdenv.mkDerivation {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ gaelreyrol ];
+    mainProgram = "ebpf-verifier";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/edgedb/default.nix b/nixpkgs/pkgs/tools/networking/edgedb/default.nix
index 1ace10486dea..c78548833754 100644
--- a/nixpkgs/pkgs/tools/networking/edgedb/default.nix
+++ b/nixpkgs/pkgs/tools/networking/edgedb/default.nix
@@ -69,5 +69,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://www.edgedb.com/docs/cli/index";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ ahirner kirillrdy ];
+    mainProgram = "edgedb";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/email/default.nix b/nixpkgs/pkgs/tools/networking/email/default.nix
index 8848068d0dea..c4ef390e6b81 100644
--- a/nixpkgs/pkgs/tools/networking/email/default.nix
+++ b/nixpkgs/pkgs/tools/networking/email/default.nix
@@ -47,5 +47,6 @@ stdenv.mkDerivation {
     license = with lib.licenses; [ gpl2 ];
     homepage = "https://deanproxy.com/code";
     platforms = lib.platforms.unix;
+    mainProgram = "email";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/fakeroute/default.nix b/nixpkgs/pkgs/tools/networking/fakeroute/default.nix
index fc07b1d9f66c..533f21e0f5f2 100644
--- a/nixpkgs/pkgs/tools/networking/fakeroute/default.nix
+++ b/nixpkgs/pkgs/tools/networking/fakeroute/default.nix
@@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
     homepage = "https://maxwell.ydns.eu/git/rnhmjoj/fakeroute";
     license = licenses.bsd3;
     platforms = platforms.linux;
+    mainProgram = "fakeroute";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/fast-ssh/default.nix b/nixpkgs/pkgs/tools/networking/fast-ssh/default.nix
index 5d899fa54184..3fb812a38ee7 100644
--- a/nixpkgs/pkgs/tools/networking/fast-ssh/default.nix
+++ b/nixpkgs/pkgs/tools/networking/fast-ssh/default.nix
@@ -35,5 +35,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/julien-r44/fast-ssh";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "fast-ssh";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/fastd/default.nix b/nixpkgs/pkgs/tools/networking/fastd/default.nix
index 47007e1646ee..20f8adf71cf8 100644
--- a/nixpkgs/pkgs/tools/networking/fastd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/fastd/default.nix
@@ -54,5 +54,6 @@ stdenv.mkDerivation rec {
     license = with licenses; [ bsd2 bsd3 ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ fpletz ];
+    mainProgram = "fastd";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/filegive/default.nix b/nixpkgs/pkgs/tools/networking/filegive/default.nix
index 2fafc90fcf01..9d85c168c5ce 100644
--- a/nixpkgs/pkgs/tools/networking/filegive/default.nix
+++ b/nixpkgs/pkgs/tools/networking/filegive/default.nix
@@ -19,5 +19,6 @@ buildGoModule rec {
     description = "Easy p2p file sending program";
     license = licenses.agpl3Plus;
     maintainers = with maintainers; [ viric ];
+    mainProgram = "filegive";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/findomain/default.nix b/nixpkgs/pkgs/tools/networking/findomain/default.nix
index 636dcc709462..deb9bb32fe0a 100644
--- a/nixpkgs/pkgs/tools/networking/findomain/default.nix
+++ b/nixpkgs/pkgs/tools/networking/findomain/default.nix
@@ -54,5 +54,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/Findomain/Findomain/releases/tag/${version}";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ Br1ght0ne figsoda ];
+    mainProgram = "findomain";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/flannel/default.nix b/nixpkgs/pkgs/tools/networking/flannel/default.nix
index 54b481fc3773..9bd20bb090f3 100644
--- a/nixpkgs/pkgs/tools/networking/flannel/default.nix
+++ b/nixpkgs/pkgs/tools/networking/flannel/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     homepage = "https://github.com/flannel-io/flannel";
     maintainers = with maintainers; [ johanot offline ];
     platforms = with platforms; linux;
+    mainProgram = "flannel";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/fping/default.nix b/nixpkgs/pkgs/tools/networking/fping/default.nix
index f04bae13ce09..df36d8092579 100644
--- a/nixpkgs/pkgs/tools/networking/fping/default.nix
+++ b/nixpkgs/pkgs/tools/networking/fping/default.nix
@@ -16,5 +16,6 @@ stdenv.mkDerivation rec {
     description = "Send ICMP echo probes to network hosts";
     license = licenses.bsd0;
     platforms = platforms.all;
+    mainProgram = "fping";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/gemget/default.nix b/nixpkgs/pkgs/tools/networking/gemget/default.nix
index 84f4894d51bc..b31d4491b599 100644
--- a/nixpkgs/pkgs/tools/networking/gemget/default.nix
+++ b/nixpkgs/pkgs/tools/networking/gemget/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/makeworld-the-better-one/gemget";
     license = licenses.mit;
     maintainers = with maintainers; [ amfl ];
+    mainProgram = "gemget";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/ghostunnel/default.nix b/nixpkgs/pkgs/tools/networking/ghostunnel/default.nix
index 444079f2f09a..85ffdefb7424 100644
--- a/nixpkgs/pkgs/tools/networking/ghostunnel/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ghostunnel/default.nix
@@ -39,5 +39,6 @@ buildGoModule rec {
     changelog = "https://github.com/ghostunnel/ghostunnel/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ roberth ];
+    mainProgram = "ghostunnel";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/go-shadowsocks2/default.nix b/nixpkgs/pkgs/tools/networking/go-shadowsocks2/default.nix
index 94763df92b27..ac6bbc1663aa 100644
--- a/nixpkgs/pkgs/tools/networking/go-shadowsocks2/default.nix
+++ b/nixpkgs/pkgs/tools/networking/go-shadowsocks2/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/shadowsocks/go-shadowsocks2/";
     license = licenses.asl20;
     maintainers = with maintainers; [ oxzi ];
+    mainProgram = "go-shadowsocks2";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/gobgp/default.nix b/nixpkgs/pkgs/tools/networking/gobgp/default.nix
index 8304f15ba960..ab2ae59950cb 100644
--- a/nixpkgs/pkgs/tools/networking/gobgp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/gobgp/default.nix
@@ -28,5 +28,6 @@ buildGoModule rec {
     homepage = "https://osrg.github.io/gobgp/";
     license = licenses.asl20;
     maintainers = with maintainers; [ higebu ];
+    mainProgram = "gobgp";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/godns/default.nix b/nixpkgs/pkgs/tools/networking/godns/default.nix
index c50fa68a068b..a41d1993270b 100644
--- a/nixpkgs/pkgs/tools/networking/godns/default.nix
+++ b/nixpkgs/pkgs/tools/networking/godns/default.nix
@@ -34,5 +34,6 @@ buildGoModule rec {
     changelog = "https://github.com/TimothyYe/godns/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ yinfeng ];
+    mainProgram = "godns";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/godspeed/default.nix b/nixpkgs/pkgs/tools/networking/godspeed/default.nix
index 2ffb1afed06a..64441c1674dd 100644
--- a/nixpkgs/pkgs/tools/networking/godspeed/default.nix
+++ b/nixpkgs/pkgs/tools/networking/godspeed/default.nix
@@ -32,5 +32,6 @@ buildGoModule rec {
     homepage = "https://github.com/redcode-labs/GodSpeed";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ] ++ teams.redcodelabs.members;
+    mainProgram = "godspeed";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/gof5/default.nix b/nixpkgs/pkgs/tools/networking/gof5/default.nix
index 4c9ab25cc788..ead38427816c 100644
--- a/nixpkgs/pkgs/tools/networking/gof5/default.nix
+++ b/nixpkgs/pkgs/tools/networking/gof5/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     homepage = "https://github.com/kayrus/gof5";
     license = licenses.asl20;
     maintainers = with maintainers; [ leixb ];
+    mainProgram = "gof5";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/goreplay/default.nix b/nixpkgs/pkgs/tools/networking/goreplay/default.nix
index 25e98b787c5a..71081713c70d 100644
--- a/nixpkgs/pkgs/tools/networking/goreplay/default.nix
+++ b/nixpkgs/pkgs/tools/networking/goreplay/default.nix
@@ -32,5 +32,6 @@ buildGoModule rec {
     license = lib.licenses.lgpl3Only;
     description = "Open-source tool for capturing and replaying live HTTP traffic";
     maintainers = with lib.maintainers; [ lovek323 ];
+    mainProgram = "goreplay";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/gost/default.nix b/nixpkgs/pkgs/tools/networking/gost/default.nix
index 6e7743fb990c..4c31ce88cbf5 100644
--- a/nixpkgs/pkgs/tools/networking/gost/default.nix
+++ b/nixpkgs/pkgs/tools/networking/gost/default.nix
@@ -56,5 +56,6 @@ buildGoModule rec {
     homepage = "https://github.com/ginuerzh/gost";
     license = licenses.mit;
     maintainers = with maintainers; [ pmy ];
+    mainProgram = "gost";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/gping/default.nix b/nixpkgs/pkgs/tools/networking/gping/default.nix
index 4a31bb1494b7..80e6898630d2 100644
--- a/nixpkgs/pkgs/tools/networking/gping/default.nix
+++ b/nixpkgs/pkgs/tools/networking/gping/default.nix
@@ -10,16 +10,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "gping";
-  version = "1.16.0";
+  version = "1.16.1";
 
   src = fetchFromGitHub {
     owner = "orf";
     repo = "gping";
     rev = "gping-v${version}";
-    hash = "sha256-t9USry3I6tc8EKsfkq28/hPJMbaf0BqqOdzCl3oXd60=";
+    hash = "sha256-hCqjbJt0dHuvFsWEF/WgLEPY2xws71wFGdhzThYOOvA=";
   };
 
-  cargoHash = "sha256-QERmZOyC4U6ZpCkL7ap5MRvPEE2vqK/tD+CrBLg07J0=";
+  cargoHash = "sha256-3jpQ8ANg9WYK1Q5Hph6fK442e5f9dsLQbTMBEwTaENc=";
 
   buildInputs = lib.optionals stdenv.isDarwin [ libiconv Security ];
 
@@ -42,5 +42,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/orf/gping/releases/tag/gping-v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ andrew-d ];
+    mainProgram = "gping";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/grpc_cli/default.nix b/nixpkgs/pkgs/tools/networking/grpc_cli/default.nix
index 844d315f5eb5..1f7f33d7f874 100644
--- a/nixpkgs/pkgs/tools/networking/grpc_cli/default.nix
+++ b/nixpkgs/pkgs/tools/networking/grpc_cli/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname = "grpc_cli";
-  version = "1.61.0";
+  version = "1.61.1";
   src = fetchFromGitHub {
     owner = "grpc";
     repo = "grpc";
     rev = "v${version}";
-    hash = "sha256-NLxcGFQ1F5RLoSFC0XYMjvGXkSWc/vLzgtk5qsOndEo=";
+    hash = "sha256-vrLkiNnsW6IpZNGhs6iZgEhdlV9Qpg8PLMDG2BKY2wo=";
     fetchSubmodules = true;
   };
   nativeBuildInputs = [ automake cmake autoconf ];
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ doriath ];
     platforms = platforms.linux;
+    mainProgram = "grpc_cli";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/grpcui/default.nix b/nixpkgs/pkgs/tools/networking/grpcui/default.nix
index eb7400b41890..f4bca5a29911 100644
--- a/nixpkgs/pkgs/tools/networking/grpcui/default.nix
+++ b/nixpkgs/pkgs/tools/networking/grpcui/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ pradyuman ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "grpcui";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/grpcurl/default.nix b/nixpkgs/pkgs/tools/networking/grpcurl/default.nix
index 02ad218cbf17..252a148f6fc7 100644
--- a/nixpkgs/pkgs/tools/networking/grpcurl/default.nix
+++ b/nixpkgs/pkgs/tools/networking/grpcurl/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     homepage = "https://github.com/fullstorydev/grpcurl";
     license = licenses.mit;
     maintainers = with maintainers; [ knl ];
+    mainProgram = "grpcurl";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/hans/default.nix b/nixpkgs/pkgs/tools/networking/hans/default.nix
index 86855cf6034f..ac591c200fe2 100644
--- a/nixpkgs/pkgs/tools/networking/hans/default.nix
+++ b/nixpkgs/pkgs/tools/networking/hans/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     homepage = "https://code.gerade.org/hans/";
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
+    mainProgram = "hans";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/haproxy/default.nix b/nixpkgs/pkgs/tools/networking/haproxy/default.nix
index ce275eca6783..675c7d19b65a 100644
--- a/nixpkgs/pkgs/tools/networking/haproxy/default.nix
+++ b/nixpkgs/pkgs/tools/networking/haproxy/default.nix
@@ -29,11 +29,11 @@ let
   sslPkg = sslPkgs.${sslLibrary};
 in stdenv.mkDerivation (finalAttrs: {
   pname = "haproxy";
-  version = "2.9.4";
+  version = "2.9.5";
 
   src = fetchurl {
     url = "https://www.haproxy.org/download/${lib.versions.majorMinor finalAttrs.version}/src/haproxy-${finalAttrs.version}.tar.gz";
-    hash = "sha256-nDiSzDwISsTwASXvIqFRzxgUFthKqKN69q9qoDmQlrw=";
+    hash = "sha256-MreFsSiDj0IYuNVGkMhsSHlNA/gXy7Yn+0h2n3nv1Zs=";
   };
 
   buildInputs = [ sslPkg zlib libxcrypt ]
diff --git a/nixpkgs/pkgs/tools/networking/hey/default.nix b/nixpkgs/pkgs/tools/networking/hey/default.nix
index fc086eeeafff..b5d565d84743 100644
--- a/nixpkgs/pkgs/tools/networking/hey/default.nix
+++ b/nixpkgs/pkgs/tools/networking/hey/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/rakyll/hey";
     license = licenses.asl20;
     maintainers = with maintainers; [ Br1ght0ne ];
+    mainProgram = "hey";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/horst/default.nix b/nixpkgs/pkgs/tools/networking/horst/default.nix
index 5e4568914d84..2e220a171cc2 100644
--- a/nixpkgs/pkgs/tools/networking/horst/default.nix
+++ b/nixpkgs/pkgs/tools/networking/horst/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.fpletz ];
     license = licenses.gpl2Plus;
     platforms = platforms.linux;
+    mainProgram = "horst";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/hostapd-mana/default.nix b/nixpkgs/pkgs/tools/networking/hostapd-mana/default.nix
index 56527fb15531..2ca826314c57 100644
--- a/nixpkgs/pkgs/tools/networking/hostapd-mana/default.nix
+++ b/nixpkgs/pkgs/tools/networking/hostapd-mana/default.nix
@@ -81,7 +81,7 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/sensepost/hostapd-mana";
     description = "A featureful rogue wifi access point tool";
     license = licenses.bsd3;
-    maintainers = with maintainers; [ lourkeur ];
+    maintainers = with maintainers; [ bbjubjub ];
     platforms = platforms.linux;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/hss/default.nix b/nixpkgs/pkgs/tools/networking/hss/default.nix
index 77f96113decf..e2535395971a 100644
--- a/nixpkgs/pkgs/tools/networking/hss/default.nix
+++ b/nixpkgs/pkgs/tools/networking/hss/default.nix
@@ -30,5 +30,6 @@ buildRubyGem rec {
     license     = licenses.mit;
     maintainers = with maintainers; [ nixy ];
     platforms   = platforms.unix;
+    mainProgram = "hss";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/htpdate/default.nix b/nixpkgs/pkgs/tools/networking/htpdate/default.nix
index 936e582a1a4f..60934216a2ef 100644
--- a/nixpkgs/pkgs/tools/networking/htpdate/default.nix
+++ b/nixpkgs/pkgs/tools/networking/htpdate/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ julienmalka ];
+    mainProgram = "htpdate";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/httperf/default.nix b/nixpkgs/pkgs/tools/networking/httperf/default.nix
index 975b050de7e3..dca67e7c39a1 100644
--- a/nixpkgs/pkgs/tools/networking/httperf/default.nix
+++ b/nixpkgs/pkgs/tools/networking/httperf/default.nix
@@ -32,6 +32,7 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ ];
     license = licenses.gpl2;
     platforms = platforms.all;
+    mainProgram = "httperf";
   };
 
 }
diff --git a/nixpkgs/pkgs/tools/networking/httping/default.nix b/nixpkgs/pkgs/tools/networking/httping/default.nix
index 5a3b8e76c271..1933dc41de0f 100644
--- a/nixpkgs/pkgs/tools/networking/httping/default.nix
+++ b/nixpkgs/pkgs/tools/networking/httping/default.nix
@@ -58,5 +58,6 @@ stdenv.mkDerivation rec {
     license = licenses.agpl3Only;
     maintainers = [];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "httping";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/httplab/default.nix b/nixpkgs/pkgs/tools/networking/httplab/default.nix
index 2fe0f15b3852..6e1be43ac5f5 100644
--- a/nixpkgs/pkgs/tools/networking/httplab/default.nix
+++ b/nixpkgs/pkgs/tools/networking/httplab/default.nix
@@ -28,5 +28,6 @@ buildGoModule rec {
     description = "Interactive WebServer";
     license = licenses.mit;
     maintainers = with maintainers; [ pradeepchhetri ];
+    mainProgram = "httplab";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/httprobe/default.nix b/nixpkgs/pkgs/tools/networking/httprobe/default.nix
index 8400a7d12d14..b1a03ed6b488 100644
--- a/nixpkgs/pkgs/tools/networking/httprobe/default.nix
+++ b/nixpkgs/pkgs/tools/networking/httprobe/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/tomnomnom/httprobe";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "httprobe";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/hue-cli/default.nix b/nixpkgs/pkgs/tools/networking/hue-cli/default.nix
index f2ea6b37c810..76f7dc8e25c7 100644
--- a/nixpkgs/pkgs/tools/networking/hue-cli/default.nix
+++ b/nixpkgs/pkgs/tools/networking/hue-cli/default.nix
@@ -13,5 +13,6 @@ bundlerApp {
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ manveru nicknovitski ];
+    mainProgram = "hue";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/hysteria/default.nix b/nixpkgs/pkgs/tools/networking/hysteria/default.nix
index 649a5b074a78..705d8025742b 100644
--- a/nixpkgs/pkgs/tools/networking/hysteria/default.nix
+++ b/nixpkgs/pkgs/tools/networking/hysteria/default.nix
@@ -38,5 +38,6 @@ buildGoModule rec {
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ oluceps ];
+    mainProgram = "hysteria";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/i2p/default.nix b/nixpkgs/pkgs/tools/networking/i2p/default.nix
index c160dfd2e7a9..6958a12cdf3d 100644
--- a/nixpkgs/pkgs/tools/networking/i2p/default.nix
+++ b/nixpkgs/pkgs/tools/networking/i2p/default.nix
@@ -81,5 +81,6 @@ stdenv.mkDerivation (finalAttrs: {
     ];
     platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" ];
     maintainers = with maintainers; [ joelmo ];
+    mainProgram = "i2prouter-plain";
   };
 })
diff --git a/nixpkgs/pkgs/tools/networking/i2pd/default.nix b/nixpkgs/pkgs/tools/networking/i2pd/default.nix
index ffcf397ea1a1..01c07c0436a5 100644
--- a/nixpkgs/pkgs/tools/networking/i2pd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/i2pd/default.nix
@@ -45,5 +45,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ edwtjo ];
     platforms = platforms.unix;
+    mainProgram = "i2pd";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/ifstat-legacy/default.nix b/nixpkgs/pkgs/tools/networking/ifstat-legacy/default.nix
index 014cce5ea4f1..ff36f83ef8dc 100644
--- a/nixpkgs/pkgs/tools/networking/ifstat-legacy/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ifstat-legacy/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ peterhoeg ];
     platforms   = platforms.unix;
     license     = licenses.gpl2;
+    mainProgram = "ifstat-legacy";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/iftop/default.nix b/nixpkgs/pkgs/tools/networking/iftop/default.nix
index 100164ff3db7..c40a8ee51238 100644
--- a/nixpkgs/pkgs/tools/networking/iftop/default.nix
+++ b/nixpkgs/pkgs/tools/networking/iftop/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation rec {
     homepage = "http://ex-parrot.com/pdw/iftop/";
     platforms = platforms.unix;
     maintainers = [ ];
+    mainProgram = "iftop";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/igmpproxy/default.nix b/nixpkgs/pkgs/tools/networking/igmpproxy/default.nix
index 73d47c14177f..252f9dd05609 100644
--- a/nixpkgs/pkgs/tools/networking/igmpproxy/default.nix
+++ b/nixpkgs/pkgs/tools/networking/igmpproxy/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     # The maintainer is using this on linux, but if you test it on other platforms
     # please add them here!
     platforms = platforms.linux;
+    mainProgram = "igmpproxy";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/inadyn/default.nix b/nixpkgs/pkgs/tools/networking/inadyn/default.nix
index c5a13f04cade..68e1483e7a92 100644
--- a/nixpkgs/pkgs/tools/networking/inadyn/default.nix
+++ b/nixpkgs/pkgs/tools/networking/inadyn/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ ];
     platforms = platforms.linux;
+    mainProgram = "inadyn";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/ip2location/default.nix b/nixpkgs/pkgs/tools/networking/ip2location/default.nix
index df5d26b4f5db..6fa9345b3f01 100644
--- a/nixpkgs/pkgs/tools/networking/ip2location/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ip2location/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     homepage = "https://www.ip2location.com/free/applications";
     license = with licenses; [ gpl3Plus lgpl3Plus ];
     platforms = platforms.linux;
+    mainProgram = "ip2location";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/ip2unix/default.nix b/nixpkgs/pkgs/tools/networking/ip2unix/default.nix
index a214d302e126..b37d5b1272c8 100644
--- a/nixpkgs/pkgs/tools/networking/ip2unix/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ip2unix/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     platforms = lib.platforms.linux;
     license = lib.licenses.lgpl3;
     maintainers = [ lib.maintainers.aszlig ];
+    mainProgram = "ip2unix";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/ipcalc/default.nix b/nixpkgs/pkgs/tools/networking/ipcalc/default.nix
index 454f595e8e64..e45a2162dd3a 100644
--- a/nixpkgs/pkgs/tools/networking/ipcalc/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ipcalc/default.nix
@@ -56,5 +56,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ peterhoeg ];
     platforms = platforms.unix;
+    mainProgram = "ipcalc";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/ivpn/default.nix b/nixpkgs/pkgs/tools/networking/ivpn/default.nix
index f5df7e6c3845..62ac14812aad 100644
--- a/nixpkgs/pkgs/tools/networking/ivpn/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ivpn/default.nix
@@ -41,6 +41,7 @@ builtins.mapAttrs (pname: attrs: buildGoModule (attrs // rec {
     changelog = "https://github.com/ivpn/desktop-app/releases/tag/v${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ urandom ataraxiasjel ];
+    mainProgram = "ivpn";
   };
 })) {
   ivpn = {
diff --git a/nixpkgs/pkgs/tools/networking/jnettop/default.nix b/nixpkgs/pkgs/tools/networking/jnettop/default.nix
index 2c002843eca1..0be765028635 100644
--- a/nixpkgs/pkgs/tools/networking/jnettop/default.nix
+++ b/nixpkgs/pkgs/tools/networking/jnettop/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     homepage = "https://sourceforge.net/projects/jnettop/";
     license = lib.licenses.gpl2Plus;
     platforms = lib.platforms.unix;
+    mainProgram = "jnettop";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/kail/default.nix b/nixpkgs/pkgs/tools/networking/kail/default.nix
index 55217ee33c3a..809aa6a757b5 100644
--- a/nixpkgs/pkgs/tools/networking/kail/default.nix
+++ b/nixpkgs/pkgs/tools/networking/kail/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     homepage = "https://github.com/boz/kail";
     license = licenses.mit;
     maintainers = with maintainers; [ offline vdemeester ];
+    mainProgram = "kail";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/kapp/default.nix b/nixpkgs/pkgs/tools/networking/kapp/default.nix
index c068c4ac1f42..c74a0a8cd47b 100644
--- a/nixpkgs/pkgs/tools/networking/kapp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/kapp/default.nix
@@ -39,5 +39,6 @@ buildGoModule rec {
     homepage = "https://carvel.dev/kapp/";
     license = licenses.asl20;
     maintainers = with maintainers; [ brodes ];
+    mainProgram = "kapp";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/keama/default.nix b/nixpkgs/pkgs/tools/networking/keama/default.nix
index 0b1e8c91aa15..c00f7d63f1f9 100644
--- a/nixpkgs/pkgs/tools/networking/keama/default.nix
+++ b/nixpkgs/pkgs/tools/networking/keama/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.mpl20;
     platforms = platforms.unix;
     maintainers = with maintainers; [ blitz ];
+    mainProgram = "keama";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/keepalived/default.nix b/nixpkgs/pkgs/tools/networking/keepalived/default.nix
index 02424d92de57..80059a664549 100644
--- a/nixpkgs/pkgs/tools/networking/keepalived/default.nix
+++ b/nixpkgs/pkgs/tools/networking/keepalived/default.nix
@@ -1,7 +1,17 @@
-{ lib, stdenv, fetchFromGitHub, nixosTests
-, file, libmnl, libnftnl, libnl
-, net-snmp, openssl, pkg-config
-, autoreconfHook }:
+{ lib
+, stdenv
+, fetchFromGitHub
+, nixosTests
+, file
+, libmnl
+, libnftnl
+, libnl
+, net-snmp
+, openssl
+, pkg-config
+, autoreconfHook
+, withNetSnmp ? stdenv.buildPlatform.canExecute stdenv.hostPlatform
+}:
 
 stdenv.mkDerivation rec {
   pname = "keepalived";
@@ -19,8 +29,9 @@ stdenv.mkDerivation rec {
     libmnl
     libnftnl
     libnl
-    net-snmp
     openssl
+  ] ++ lib.optionals withNetSnmp [
+    net-snmp
   ];
 
   enableParallelBuilding = true;
@@ -31,8 +42,9 @@ stdenv.mkDerivation rec {
 
   configureFlags = [
     "--enable-sha1"
+  ] ++ lib.optionals withNetSnmp [
     "--enable-snmp"
- ];
+  ];
 
   meta = with lib; {
     homepage = "https://keepalived.org";
diff --git a/nixpkgs/pkgs/tools/networking/labctl/default.nix b/nixpkgs/pkgs/tools/networking/labctl/default.nix
index b8139fe731cb..00cb63b31d1d 100644
--- a/nixpkgs/pkgs/tools/networking/labctl/default.nix
+++ b/nixpkgs/pkgs/tools/networking/labctl/default.nix
@@ -37,5 +37,6 @@ buildGoModule rec {
     homepage = "https://labctl.net";
     license = licenses.asl20;
     maintainers = with maintainers; [ janik ];
+    mainProgram = "labctl";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/libreswan/default.nix b/nixpkgs/pkgs/tools/networking/libreswan/default.nix
index 49e4df298bc7..12bd432c7329 100644
--- a/nixpkgs/pkgs/tools/networking/libreswan/default.nix
+++ b/nixpkgs/pkgs/tools/networking/libreswan/default.nix
@@ -157,5 +157,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux ++ platforms.freebsd;
     license = with licenses; [ gpl2Plus mpl20 ] ;
     maintainers = with maintainers; [ afranchuk rnhmjoj ];
+    mainProgram = "ipsec";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/ligolo-ng/default.nix b/nixpkgs/pkgs/tools/networking/ligolo-ng/default.nix
index 7cf4a6ffce00..7eee1ccb047d 100644
--- a/nixpkgs/pkgs/tools/networking/ligolo-ng/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ligolo-ng/default.nix
@@ -5,13 +5,13 @@
 
 buildGoModule rec {
   pname = "ligolo-ng";
-  version = "0.5.1";
+  version = "0.5.2";
 
   src = fetchFromGitHub {
     owner = "tnpitsecurity";
     repo = "ligolo-ng";
     rev = "refs/tags/v${version}";
-    hash = "sha256-tx/iwb7eaaJODPMJhg4EdLMaua2Bm1frZh4rsl1bFxc=";
+    hash = "sha256-pFk/9AFtnMBNi5hdVWDzfxCTFe9wSkFydHciTpMRxQw=";
   };
 
   vendorHash = "sha256-QEGF12yJ+CQjIHx6kOwsykVhelp5npnglk7mIbOeIpI=";
diff --git a/nixpkgs/pkgs/tools/networking/linux-router/default.nix b/nixpkgs/pkgs/tools/networking/linux-router/default.nix
index 997546403fd3..b5cc9ef6f5dd 100644
--- a/nixpkgs/pkgs/tools/networking/linux-router/default.nix
+++ b/nixpkgs/pkgs/tools/networking/linux-router/default.nix
@@ -94,5 +94,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl21Only;
     maintainers = with maintainers; [ x3ro ];
     platforms = platforms.linux;
+    mainProgram = "lnxrouter";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/lxi-tools/default.nix b/nixpkgs/pkgs/tools/networking/lxi-tools/default.nix
index 6f94988c2c58..5a5db2a97094 100644
--- a/nixpkgs/pkgs/tools/networking/lxi-tools/default.nix
+++ b/nixpkgs/pkgs/tools/networking/lxi-tools/default.nix
@@ -50,5 +50,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     platforms = platforms.unix;
     maintainers = [ maintainers.vq ];
+    mainProgram = "lxi";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/lychee/default.nix b/nixpkgs/pkgs/tools/networking/lychee/default.nix
index 1881a945735a..91620663e604 100644
--- a/nixpkgs/pkgs/tools/networking/lychee/default.nix
+++ b/nixpkgs/pkgs/tools/networking/lychee/default.nix
@@ -47,5 +47,6 @@ rustPlatform.buildRustPackage rec {
     downloadPage = "https://github.com/lycheeverse/lychee/releases/tag/v${version}";
     license = with licenses; [ asl20 mit ];
     maintainers = with maintainers; [ totoroot tuxinaut ];
+    mainProgram = "lychee";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/mailsend/default.nix b/nixpkgs/pkgs/tools/networking/mailsend/default.nix
index ab1717da651a..d009e09ac366 100644
--- a/nixpkgs/pkgs/tools/networking/mailsend/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mailsend/default.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     homepage = "https://github.com/muquit/mailsend";
     downloadPage = "https://github.com/muquit/mailsend/releases";
+    mainProgram = "mailsend";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/maphosts/default.nix b/nixpkgs/pkgs/tools/networking/maphosts/default.nix
index 6632485b7091..9b0aa5cb899b 100644
--- a/nixpkgs/pkgs/tools/networking/maphosts/default.nix
+++ b/nixpkgs/pkgs/tools/networking/maphosts/default.nix
@@ -25,5 +25,6 @@ in stdenv.mkDerivation {
     license     = licenses.mit;
     maintainers = with maintainers; [ mpscholten nicknovitski ];
     platforms   = platforms.all;
+    mainProgram = "maphosts";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/mbidled/default.nix b/nixpkgs/pkgs/tools/networking/mbidled/default.nix
index 1b5c1c3dc3d4..9e07d1afbe21 100644
--- a/nixpkgs/pkgs/tools/networking/mbidled/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mbidled/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation {
     license = licenses.unlicense;
     maintainers = with maintainers; [ laalsaas ];
     platforms = platforms.linux;
+    mainProgram = "mbidled";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/mcrcon/default.nix b/nixpkgs/pkgs/tools/networking/mcrcon/default.nix
index 713a3dbfd91b..c9f9f81a3ddf 100644
--- a/nixpkgs/pkgs/tools/networking/mcrcon/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mcrcon/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     '';
     maintainers = with lib.maintainers; [ dermetfan ];
     license = with lib.licenses; [ zlib libpng ];
+    mainProgram = "mcrcon";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/mdk4/default.nix b/nixpkgs/pkgs/tools/networking/mdk4/default.nix
index 979584db432d..53713f473a16 100644
--- a/nixpkgs/pkgs/tools/networking/mdk4/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mdk4/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/aircrack-ng/mdk4";
     maintainers = with maintainers; [ moni ];
     license = licenses.gpl2Plus;
+    mainProgram = "mdk4";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/memtier-benchmark/default.nix b/nixpkgs/pkgs/tools/networking/memtier-benchmark/default.nix
index f4ecbb986314..d77ef2d417d5 100644
--- a/nixpkgs/pkgs/tools/networking/memtier-benchmark/default.nix
+++ b/nixpkgs/pkgs/tools/networking/memtier-benchmark/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license     = lib.licenses.gpl2;
     platforms   = lib.platforms.linux;
     maintainers = with lib.maintainers; [ thoughtpolice ];
+    mainProgram = "memtier_benchmark";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/minidlna/default.nix b/nixpkgs/pkgs/tools/networking/minidlna/default.nix
index 2a1eeb0fa4b5..6bdea670c13b 100644
--- a/nixpkgs/pkgs/tools/networking/minidlna/default.nix
+++ b/nixpkgs/pkgs/tools/networking/minidlna/default.nix
@@ -38,5 +38,6 @@ stdenv.mkDerivation {
     homepage = "https://sourceforge.net/projects/minidlna/";
     license = licenses.gpl2;
     platforms = platforms.linux;
+    mainProgram = "minidlnad";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/minio-client/default.nix b/nixpkgs/pkgs/tools/networking/minio-client/default.nix
index 03e10d9b62fa..f05814f00f0f 100644
--- a/nixpkgs/pkgs/tools/networking/minio-client/default.nix
+++ b/nixpkgs/pkgs/tools/networking/minio-client/default.nix
@@ -2,13 +2,13 @@
 
 buildGoModule rec {
   pname = "minio-client";
-  version = "2024-02-09T22-18-24Z";
+  version = "2024-02-16T11-05-48Z";
 
   src = fetchFromGitHub {
     owner = "minio";
     repo = "mc";
     rev = "RELEASE.${version}";
-    sha256 = "sha256-Z4bqbU5ZDVlHLHyJWTNLSjBgE3Fybn/oUyqjod0bUCw=";
+    sha256 = "sha256-Kqv48krXiDi/8QtCEpn0uGvuLS2P6BYAtSnY5sNrCQ0=";
   };
 
   vendorHash = "sha256-wxFhj+oqj5WV/UkPZlmeJHF2WC4oLlZOql1qgSFs+zU=";
diff --git a/nixpkgs/pkgs/tools/networking/minissdpd/default.nix b/nixpkgs/pkgs/tools/networking/minissdpd/default.nix
index 088645705f62..b2a95972613b 100644
--- a/nixpkgs/pkgs/tools/networking/minissdpd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/minissdpd/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     downloadPage = "http://miniupnp.free.fr/files/";
     license = licenses.bsd3;
     platforms = platforms.linux;
+    mainProgram = "minissdpd";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/mmsd-tng/default.nix b/nixpkgs/pkgs/tools/networking/mmsd-tng/default.nix
index eaf122637519..8d8286774595 100644
--- a/nixpkgs/pkgs/tools/networking/mmsd-tng/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mmsd-tng/default.nix
@@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ julm ];
     platforms = platforms.linux;
+    mainProgram = "mmsdtng";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/mockoon/default.nix b/nixpkgs/pkgs/tools/networking/mockoon/default.nix
index f100239a61dd..0a2670009cce 100644
--- a/nixpkgs/pkgs/tools/networking/mockoon/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mockoon/default.nix
@@ -36,5 +36,6 @@ appimageTools.wrapType2 {
     homepage = "https://mockoon.com";
     license = licenses.mit;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "mockoon";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/mole/default.nix b/nixpkgs/pkgs/tools/networking/mole/default.nix
index 39d109118d95..e5585be469fc 100644
--- a/nixpkgs/pkgs/tools/networking/mole/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mole/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
     broken = stdenv.isDarwin; # build fails with go > 1.17
+    mainProgram = "mole";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/motrix/default.nix b/nixpkgs/pkgs/tools/networking/motrix/default.nix
index 828c236494b3..2270034ce5de 100644
--- a/nixpkgs/pkgs/tools/networking/motrix/default.nix
+++ b/nixpkgs/pkgs/tools/networking/motrix/default.nix
@@ -35,5 +35,6 @@ appimageTools.wrapType2 {
     platforms = [ "x86_64-linux" ];
     sourceProvenance = with sourceTypes; [ binaryNativeCode ];
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "motrix";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/mozwire/default.nix b/nixpkgs/pkgs/tools/networking/mozwire/default.nix
index d0e59e1fd838..40c6d3ec7827 100644
--- a/nixpkgs/pkgs/tools/networking/mozwire/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mozwire/default.nix
@@ -29,5 +29,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/NilsIrl/MozWire";
     license = licenses.gpl3;
     maintainers = with maintainers; [ siraben nilsirl ];
+    mainProgram = "mozwire";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/mqtt-benchmark/default.nix b/nixpkgs/pkgs/tools/networking/mqtt-benchmark/default.nix
index a2ab1b61520e..bc755247c40c 100644
--- a/nixpkgs/pkgs/tools/networking/mqtt-benchmark/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mqtt-benchmark/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     changelog = "https://github.com/krylovsk/mqtt-benchmark/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "mqtt-benchmark";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/mqttui/default.nix b/nixpkgs/pkgs/tools/networking/mqttui/default.nix
index b090b19ba8fa..e457fa7479b1 100644
--- a/nixpkgs/pkgs/tools/networking/mqttui/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mqttui/default.nix
@@ -26,5 +26,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/EdJoPaTo/mqttui/blob/v${version}/CHANGELOG.md";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "mqttui";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/mtr-exporter/default.nix b/nixpkgs/pkgs/tools/networking/mtr-exporter/default.nix
index 4dc276c023fc..9c7c9bec41ea 100644
--- a/nixpkgs/pkgs/tools/networking/mtr-exporter/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mtr-exporter/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     homepage = "https://github.com/mgumz/mtr-exporter";
     license = licenses.bsd3;
     maintainers = with maintainers; [ jakubgs ];
+    mainProgram = "mtr-exporter";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/mubeng/default.nix b/nixpkgs/pkgs/tools/networking/mubeng/default.nix
index 8e50188ec814..ea431c3eea98 100644
--- a/nixpkgs/pkgs/tools/networking/mubeng/default.nix
+++ b/nixpkgs/pkgs/tools/networking/mubeng/default.nix
@@ -28,5 +28,6 @@ buildGoModule rec {
     changelog = "https://github.com/kitabisa/mubeng/releases/tag/v${version}";
     license = with licenses; [ asl20 ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "mubeng";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/muffet/default.nix b/nixpkgs/pkgs/tools/networking/muffet/default.nix
index 133eaf3b27ba..c363df34e8f7 100644
--- a/nixpkgs/pkgs/tools/networking/muffet/default.nix
+++ b/nixpkgs/pkgs/tools/networking/muffet/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     changelog = "https://github.com/raviqqe/muffet/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "muffet";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/nat-traverse/default.nix b/nixpkgs/pkgs/tools/networking/nat-traverse/default.nix
index a1c1337a216b..39e74f215159 100644
--- a/nixpkgs/pkgs/tools/networking/nat-traverse/default.nix
+++ b/nixpkgs/pkgs/tools/networking/nat-traverse/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     platforms = platforms.all;
     maintainers = [ maintainers.iblech ];
+    mainProgram = "nat-traverse";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/netassert/default.nix b/nixpkgs/pkgs/tools/networking/netassert/default.nix
index 1351c255e943..d226b5345681 100644
--- a/nixpkgs/pkgs/tools/networking/netassert/default.nix
+++ b/nixpkgs/pkgs/tools/networking/netassert/default.nix
@@ -36,5 +36,6 @@ buildGoModule rec {
     '';
     license = licenses.asl20;
     maintainers = with maintainers; [ jk ];
+    mainProgram = "netassert";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/netbird/default.nix b/nixpkgs/pkgs/tools/networking/netbird/default.nix
index 2ad3922212a9..4e1aeb905cf1 100644
--- a/nixpkgs/pkgs/tools/networking/netbird/default.nix
+++ b/nixpkgs/pkgs/tools/networking/netbird/default.nix
@@ -31,16 +31,16 @@ let
 in
 buildGoModule rec {
   pname = "netbird";
-  version = "0.25.7";
+  version = "0.25.9";
 
   src = fetchFromGitHub {
     owner = "netbirdio";
     repo = pname;
     rev = "v${version}";
-    hash = "sha256-DclCqXNGXFTbJTD6zllCUfSR3twnnS4rfXMuRtWQpeQ=";
+    hash = "sha256-asY5/g/RztQqZA5sH2Zoucm6QNUe/8QYoAmMAslnswo=";
   };
 
-  vendorHash = "sha256-61i/QqUFuKXbOGBJVDRi5BdUxB/k18RM8dvgQwiHb/k=";
+  vendorHash = "sha256-CFLwb5cqsfxTxOwuLOB0IMYkRZUNPgB7grjQ4xm84BM=";
 
   nativeBuildInputs = [ installShellFiles ] ++ lib.optional ui pkg-config;
 
diff --git a/nixpkgs/pkgs/tools/networking/netdiscover/default.nix b/nixpkgs/pkgs/tools/networking/netdiscover/default.nix
index 471dd55c4e17..3aec143b3a56 100644
--- a/nixpkgs/pkgs/tools/networking/netdiscover/default.nix
+++ b/nixpkgs/pkgs/tools/networking/netdiscover/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ vdot0x23 ];
     platforms = platforms.unix;
+    mainProgram = "netdiscover";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/nethogs/default.nix b/nixpkgs/pkgs/tools/networking/nethogs/default.nix
index 2c7347defdd3..8c2d4ba84291 100644
--- a/nixpkgs/pkgs/tools/networking/nethogs/default.nix
+++ b/nixpkgs/pkgs/tools/networking/nethogs/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/raboof/nethogs#readme";
     platforms = platforms.linux;
     maintainers = [ maintainers.rycee ];
+    mainProgram = "nethogs";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/nethoscope/default.nix b/nixpkgs/pkgs/tools/networking/nethoscope/default.nix
index 478220210b3d..2b450cf7b8aa 100644
--- a/nixpkgs/pkgs/tools/networking/nethoscope/default.nix
+++ b/nixpkgs/pkgs/tools/networking/nethoscope/default.nix
@@ -53,6 +53,7 @@ rustPlatform.buildRustPackage rec {
     license = licenses.isc;
     maintainers = with maintainers; [ _0x4A6F ];
     platforms = platforms.linux;
+    mainProgram = "nethoscope";
   };
 
 }
diff --git a/nixpkgs/pkgs/tools/networking/netifd/default.nix b/nixpkgs/pkgs/tools/networking/netifd/default.nix
index 59b2e4732980..6fd90f6082c9 100644
--- a/nixpkgs/pkgs/tools/networking/netifd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/netifd/default.nix
@@ -54,5 +54,6 @@ stdenv.mkDerivation {
     license = licenses.lgpl21Only;
     platforms = platforms.linux;
     maintainers = with maintainers; [ mkg20001 ];
+    mainProgram = "netifd";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/netmask/default.nix b/nixpkgs/pkgs/tools/networking/netmask/default.nix
index c1613fcf9206..f564e09ba032 100644
--- a/nixpkgs/pkgs/tools/networking/netmask/default.nix
+++ b/nixpkgs/pkgs/tools/networking/netmask/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = [ maintainers.jensbin ];
+    mainProgram = "netmask";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/nettee/default.nix b/nixpkgs/pkgs/tools/networking/nettee/default.nix
index c5cbcb19a971..b281d6b29680 100644
--- a/nixpkgs/pkgs/tools/networking/nettee/default.nix
+++ b/nixpkgs/pkgs/tools/networking/nettee/default.nix
@@ -19,6 +19,7 @@ in stdenv.mkDerivation {
     license = lib.licenses.gpl2;
     maintainers = with lib.maintainers; [ Profpatsch ];
     platforms = lib.platforms.linux;
+    mainProgram = "nettee";
   };
 
   outputs = [ "bin" "man" "doc" "out" ];
diff --git a/nixpkgs/pkgs/tools/networking/nexttrace/default.nix b/nixpkgs/pkgs/tools/networking/nexttrace/default.nix
index 1bbd4e3685f0..2ad7764b1452 100644
--- a/nixpkgs/pkgs/tools/networking/nexttrace/default.nix
+++ b/nixpkgs/pkgs/tools/networking/nexttrace/default.nix
@@ -29,6 +29,7 @@ buildGoModule rec {
     homepage = "https://mtr.moe";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ sharzy ];
+    mainProgram = "nexttrace";
   };
 }
 
diff --git a/nixpkgs/pkgs/tools/networking/nfstrace/default.nix b/nixpkgs/pkgs/tools/networking/nfstrace/default.nix
index 297ada3cc2aa..1a0268f960d2 100644
--- a/nixpkgs/pkgs/tools/networking/nfstrace/default.nix
+++ b/nixpkgs/pkgs/tools/networking/nfstrace/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation rec {
     description = "NFS and CIFS tracing/monitoring/capturing/analyzing tool";
     license = licenses.gpl2;
     platforms = platforms.linux;
+    mainProgram = "nfstrace";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/ngrep/default.nix b/nixpkgs/pkgs/tools/networking/ngrep/default.nix
index c44f6e1eb832..31707ce00d5a 100644
--- a/nixpkgs/pkgs/tools/networking/ngrep/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ngrep/default.nix
@@ -52,5 +52,6 @@ stdenv.mkDerivation rec {
     };
     platforms = with platforms; linux ++ darwin;
     maintainers = [ maintainers.bjornfor ];
+    mainProgram = "ngrep";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/ngrok/default.nix b/nixpkgs/pkgs/tools/networking/ngrok/default.nix
index fb1574bfdc1e..ac5b19ab4c3f 100644
--- a/nixpkgs/pkgs/tools/networking/ngrok/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ngrok/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation {
     license = licenses.unfree;
     platforms = [ "i686-linux" "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
     maintainers = with maintainers; [ bobvanderlinden brodes ];
+    mainProgram = "ngrok";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/ngrok/versions.json b/nixpkgs/pkgs/tools/networking/ngrok/versions.json
index 3b52e8f92372..8d90ae6c00e2 100644
--- a/nixpkgs/pkgs/tools/networking/ngrok/versions.json
+++ b/nixpkgs/pkgs/tools/networking/ngrok/versions.json
@@ -1,38 +1,38 @@
 {
   "linux-386": {
     "sys": "linux-386",
-    "url": "https://bin.equinox.io/a/4gMs8FHXopG/ngrok-v3-3.5.0-linux-386",
-    "sha256": "2ab242193e01222d1c5cbfe85389200b97fc3af91374bd4b9c8d86812db7d589",
-    "version": "3.5.0"
+    "url": "https://bin.equinox.io/a/5FUi7gCzPvi/ngrok-v3-3.6.0-linux-386",
+    "sha256": "2036fc58594c7205aebaa09e9665d5c706391746122a417e57fa9a1bce62a727",
+    "version": "3.6.0"
   },
   "linux-amd64": {
     "sys": "linux-amd64",
-    "url": "https://bin.equinox.io/a/7qHLVJPrTcc/ngrok-v3-3.5.0-linux-amd64",
-    "sha256": "bd44f722df4435daf61c4bef4fe45d8abdbbf5ccd6c371b6ab405a07fb469c06",
-    "version": "3.5.0"
+    "url": "https://bin.equinox.io/a/e6rvYmQb6MC/ngrok-v3-3.6.0-linux-amd64",
+    "sha256": "14e6118f1021b5b8421945a13b15ec501bc88aef0089b1dbf31d1fb229115d9e",
+    "version": "3.6.0"
   },
   "linux-arm": {
     "sys": "linux-arm",
-    "url": "https://bin.equinox.io/a/ciuckTnS7RJ/ngrok-v3-3.5.0-linux-arm",
-    "sha256": "ba0ab1d956a0b05e35da6901691bd18166acc6a833c993e8f6b80f6d608e1d8c",
-    "version": "3.5.0"
+    "url": "https://bin.equinox.io/a/iTLH8EwDQN2/ngrok-v3-3.6.0-linux-arm",
+    "sha256": "0bbc395cc610c0017d12a812496856677f6a653f60a76203d0f031914e4cf7bc",
+    "version": "3.6.0"
   },
   "linux-arm64": {
     "sys": "linux-arm64",
-    "url": "https://bin.equinox.io/a/iutMKiLdVzF/ngrok-v3-3.5.0-linux-arm64",
-    "sha256": "85b5ecc96a56a1d19324acb3ca3a38e11a9075be8cb97ee466a1538f8711a69d",
-    "version": "3.5.0"
+    "url": "https://bin.equinox.io/a/ibBBjsbrZAm/ngrok-v3-3.6.0-linux-arm64",
+    "sha256": "39575a951352e571f6f96fd4409cbaa675dc4593786c9f198c2fb45360361f02",
+    "version": "3.6.0"
   },
   "darwin-amd64": {
     "sys": "darwin-amd64",
-    "url": "https://bin.equinox.io/a/hrb7DpXGSDS/ngrok-v3-3.5.0-darwin-amd64",
-    "sha256": "3380a2e742600fcef21e390291c4224e3e23fb31e832b695f922a24899125808",
-    "version": "3.5.0"
+    "url": "https://bin.equinox.io/a/61nYpJWvYHR/ngrok-v3-3.6.0-darwin-amd64",
+    "sha256": "05ecb8a6e79cfe57663a085d5fc7cfeddd5867b25fc185829c39de4d25e5857d",
+    "version": "3.6.0"
   },
   "darwin-arm64": {
     "sys": "darwin-arm64",
-    "url": "https://bin.equinox.io/a/aH6hGnhtNbT/ngrok-v3-3.5.0-darwin-arm64",
-    "sha256": "cbfd0bcd1d53aa1bc3b6afa54e0c8f01d77f6a369727f4f6eb1451b3a1eab3df",
-    "version": "3.5.0"
+    "url": "https://bin.equinox.io/a/9Zzu7daqPHA/ngrok-v3-3.6.0-darwin-arm64",
+    "sha256": "812829dac649b27f99eaf361306a014eb7ff28d005c3c9d087171342fce9472e",
+    "version": "3.6.0"
   }
 }
diff --git a/nixpkgs/pkgs/tools/networking/noip/default.nix b/nixpkgs/pkgs/tools/networking/noip/default.nix
index 4b57ef7731ed..85614001342f 100644
--- a/nixpkgs/pkgs/tools/networking/noip/default.nix
+++ b/nixpkgs/pkgs/tools/networking/noip/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation {
     license = lib.licenses.gpl2;
     maintainers = [ lib.maintainers.iand675 ];
     platforms = platforms.linux;
+    mainProgram = "noip2";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/norouter/default.nix b/nixpkgs/pkgs/tools/networking/norouter/default.nix
index e76cc4544e32..3513cb0cdfbc 100644
--- a/nixpkgs/pkgs/tools/networking/norouter/default.nix
+++ b/nixpkgs/pkgs/tools/networking/norouter/default.nix
@@ -31,5 +31,6 @@ buildGoModule rec {
     homepage = "https://github.com/norouter/norouter";
     license = licenses.asl20;
     maintainers = with maintainers; [ blaggacao ];
+    mainProgram = "norouter";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/ntopng/default.nix b/nixpkgs/pkgs/tools/networking/ntopng/default.nix
index cc9bc701d8f0..18cb68cba407 100644
--- a/nixpkgs/pkgs/tools/networking/ntopng/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ntopng/default.nix
@@ -89,5 +89,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.gpl3Plus;
     platforms = platforms.linux ++ platforms.darwin;
     maintainers = with maintainers; [ bjornfor ];
+    mainProgram = "ntopng";
   };
 })
diff --git a/nixpkgs/pkgs/tools/networking/ntttcp/default.nix b/nixpkgs/pkgs/tools/networking/ntttcp/default.nix
index 662e4d32fb72..cc816b737bdb 100644
--- a/nixpkgs/pkgs/tools/networking/ntttcp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ntttcp/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ delroth ];
     platforms = platforms.linux;
+    mainProgram = "ntttcp";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/nuttcp/default.nix b/nixpkgs/pkgs/tools/networking/nuttcp/default.nix
index 9483c3ce756d..467159e8c275 100644
--- a/nixpkgs/pkgs/tools/networking/nuttcp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/nuttcp/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     homepage = "http://nuttcp.net/";
     maintainers = with maintainers; [ ];
     platforms = platforms.unix;
+    mainProgram = "nuttcp";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/nylon/default.nix b/nixpkgs/pkgs/tools/networking/nylon/default.nix
index b519db4b55b9..37c6d14dfa27 100644
--- a/nixpkgs/pkgs/tools/networking/nylon/default.nix
+++ b/nixpkgs/pkgs/tools/networking/nylon/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsdOriginal;
     maintainers = with maintainers; [ edwtjo ];
     platforms = platforms.linux;
+    mainProgram = "nylon";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/nzbget/default.nix b/nixpkgs/pkgs/tools/networking/nzbget/default.nix
index 4e67e81a7de8..2c698ae6c831 100644
--- a/nixpkgs/pkgs/tools/networking/nzbget/default.nix
+++ b/nixpkgs/pkgs/tools/networking/nzbget/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation (finalAttrs: {
     description = "A command line tool for downloading files from news servers";
     maintainers = with maintainers; [ pSub ];
     platforms = with platforms; unix;
+    mainProgram = "nzbget";
   };
 })
diff --git a/nixpkgs/pkgs/tools/networking/oapi-codegen/default.nix b/nixpkgs/pkgs/tools/networking/oapi-codegen/default.nix
index e2d406b9691b..05098a828a11 100644
--- a/nixpkgs/pkgs/tools/networking/oapi-codegen/default.nix
+++ b/nixpkgs/pkgs/tools/networking/oapi-codegen/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     changelog = "https://github.com/deepmap/oapi-codegen/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ j4m3s ];
+    mainProgram = "oapi-codegen";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/octodns/providers/bind/default.nix b/nixpkgs/pkgs/tools/networking/octodns/providers/bind/default.nix
index f615c9a1eed3..d89576c75575 100644
--- a/nixpkgs/pkgs/tools/networking/octodns/providers/bind/default.nix
+++ b/nixpkgs/pkgs/tools/networking/octodns/providers/bind/default.nix
@@ -10,7 +10,7 @@
 
 buildPythonPackage rec {
   pname = "octodns-bind";
-  version = "0.0.5";
+  version = "0.0.6";
   pyproject = true;
 
   disabled = pythonOlder "3.8";
@@ -19,7 +19,7 @@ buildPythonPackage rec {
     owner = "octodns";
     repo = "octodns-bind";
     rev = "v${version}";
-    hash = "sha256-0ia/xYarrOiLZa8KU0s5wtCGtXIyxSl6OcwNkSJb/rA=";
+    hash = "sha256-IxZr7Wds8wLfJg6rqCtJ59Sg/mCIJ1g9jDJ8CTM7O8w=";
   };
 
   nativeBuildInputs = [
diff --git a/nixpkgs/pkgs/tools/networking/ofono/default.nix b/nixpkgs/pkgs/tools/networking/ofono/default.nix
index 33cb492b2149..e87f8a707361 100644
--- a/nixpkgs/pkgs/tools/networking/ofono/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ofono/default.nix
@@ -62,5 +62,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ ];
     platforms = platforms.linux;
+    mainProgram = "ofonod";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/oha/default.nix b/nixpkgs/pkgs/tools/networking/oha/default.nix
index 7a2f0fc3d25e..2ba7a62152db 100644
--- a/nixpkgs/pkgs/tools/networking/oha/default.nix
+++ b/nixpkgs/pkgs/tools/networking/oha/default.nix
@@ -39,5 +39,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/hatoo/oha/blob/v${version}/CHANGELOG.md";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "oha";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/onetun/default.nix b/nixpkgs/pkgs/tools/networking/onetun/default.nix
index 5200cff7076f..87a9b0bfc82f 100644
--- a/nixpkgs/pkgs/tools/networking/onetun/default.nix
+++ b/nixpkgs/pkgs/tools/networking/onetun/default.nix
@@ -27,5 +27,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/aramperes/onetun";
     license = licenses.mit;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "onetun";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/openconnect/common.nix b/nixpkgs/pkgs/tools/networking/openconnect/common.nix
index e35c8d71cce9..fa54eecb89e1 100644
--- a/nixpkgs/pkgs/tools/networking/openconnect/common.nix
+++ b/nixpkgs/pkgs/tools/networking/openconnect/common.nix
@@ -44,5 +44,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl21Only;
     maintainers = with maintainers; [ pradeepchhetri tricktron alyaeanyx ];
     platforms = lib.platforms.unix;
+    mainProgram = "openconnect";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/openfortivpn/default.nix b/nixpkgs/pkgs/tools/networking/openfortivpn/default.nix
index d69f591cab08..17c0d1390f31 100644
--- a/nixpkgs/pkgs/tools/networking/openfortivpn/default.nix
+++ b/nixpkgs/pkgs/tools/networking/openfortivpn/default.nix
@@ -49,5 +49,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ madjar ];
     platforms = with platforms; linux ++ darwin;
+    mainProgram = "openfortivpn";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/opensnitch/daemon.nix b/nixpkgs/pkgs/tools/networking/opensnitch/daemon.nix
deleted file mode 100644
index 9825d25bbc5a..000000000000
--- a/nixpkgs/pkgs/tools/networking/opensnitch/daemon.nix
+++ /dev/null
@@ -1,95 +0,0 @@
-{ buildGoModule
-, fetchFromGitHub
-, fetchpatch
-, protobuf
-, go-protobuf
-, pkg-config
-, libnetfilter_queue
-, libnfnetlink
-, lib
-, coreutils
-, iptables
-, makeWrapper
-, protoc-gen-go-grpc
-, testers
-, opensnitch
-, nixosTests
-}:
-
-buildGoModule rec {
-  pname = "opensnitch";
-  version = "1.6.4";
-
-  src = fetchFromGitHub {
-    owner = "evilsocket";
-    repo = "opensnitch";
-    rev = "v${version}";
-    hash = "sha256-fkRykhcjWZ4MDl2HZ1ZFaQmEeRYhiCBeUxG/Eu7D8NA=";
-  };
-
-  postPatch = ''
-    # Allow configuring Version at build time
-    substituteInPlace daemon/core/version.go --replace "const " "var "
-  '';
-
-  modRoot = "daemon";
-
-  buildInputs = [
-    libnetfilter_queue
-    libnfnetlink
-  ];
-
-  nativeBuildInputs = [
-    pkg-config
-    protobuf
-    go-protobuf
-    makeWrapper
-    protoc-gen-go-grpc
-  ];
-
-  vendorHash = "sha256-bUzGWpQxeXzvkzQ7G53ljQJq6wwqiXqbi6bgeFlNvvM=";
-
-  preBuild = ''
-    # Fix inconsistent vendoring build error
-    # https://github.com/evilsocket/opensnitch/issues/770
-    cp ${./go.mod} go.mod
-    cp ${./go.sum} go.sum
-
-    make -C ../proto ../daemon/ui/protocol/ui.pb.go
-  '';
-
-  postBuild = ''
-    mv $GOPATH/bin/daemon $GOPATH/bin/opensnitchd
-    mkdir -p $out/etc/opensnitchd $out/lib/systemd/system
-    cp system-fw.json $out/etc/opensnitchd/
-    substitute default-config.json $out/etc/opensnitchd/default-config.json \
-      --replace "/var/log/opensnitchd.log" "/dev/stdout"
-    substitute opensnitchd.service $out/lib/systemd/system/opensnitchd.service \
-      --replace "/usr/local/bin/opensnitchd" "$out/bin/opensnitchd" \
-      --replace "/etc/opensnitchd/rules" "/var/lib/opensnitch/rules" \
-      --replace "/bin/mkdir" "${coreutils}/bin/mkdir"
-  '';
-
-  ldflags = [ "-s" "-w" "-X github.com/evilsocket/opensnitch/daemon/core.Version=${version}" ];
-
-  postInstall = ''
-    wrapProgram $out/bin/opensnitchd \
-      --prefix PATH : ${lib.makeBinPath [ iptables ]}
-  '';
-
-  passthru.tests = {
-    inherit (nixosTests) opensnitch;
-    version = testers.testVersion {
-      package = opensnitch;
-      command = "opensnitchd -version";
-    };
-  };
-
-  meta = with lib; {
-    description = "An application firewall";
-    homepage = "https://github.com/evilsocket/opensnitch/wiki";
-    license = licenses.gpl3Only;
-    maintainers = with maintainers; [ onny ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/networking/opensnitch/go.mod b/nixpkgs/pkgs/tools/networking/opensnitch/go.mod
deleted file mode 100644
index f4a1c6c5fe9c..000000000000
--- a/nixpkgs/pkgs/tools/networking/opensnitch/go.mod
+++ /dev/null
@@ -1,33 +0,0 @@
-module github.com/evilsocket/opensnitch/daemon
-
-go 1.14
-
-require (
-	github.com/fsnotify/fsnotify v1.4.7
-	github.com/golang/protobuf v1.5.0
-	github.com/google/gopacket v1.1.14
-	github.com/google/nftables v0.1.0
-	github.com/google/uuid v1.3.0
-	github.com/iovisor/gobpf v0.2.0
-	github.com/varlink/go v0.4.0
-	github.com/vishvananda/netlink v0.0.0-20210811191823-e1a867c6b452
-	github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae
-	golang.org/x/net v0.0.0-20211209124913-491a49abca63
-	golang.org/x/sys v0.0.0-20211205182925-97ca703d548d
-	google.golang.org/grpc v1.32.0
-	google.golang.org/protobuf v1.26.0
-)
-
-require (
-	github.com/BurntSushi/toml v0.4.1 // indirect
-	github.com/google/go-cmp v0.5.6 // indirect
-	github.com/josharian/native v0.0.0-20200817173448-b6b71def0850 // indirect
-	github.com/mdlayher/netlink v1.4.2 // indirect
-	github.com/mdlayher/socket v0.0.0-20211102153432-57e3fa563ecb // indirect
-	golang.org/x/mod v0.5.1 // indirect
-	golang.org/x/text v0.3.7 // indirect
-	golang.org/x/tools v0.1.8 // indirect
-	golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
-	google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55 // indirect
-	honnef.co/go/tools v0.2.2 // indirect
-)
diff --git a/nixpkgs/pkgs/tools/networking/opensnitch/go.sum b/nixpkgs/pkgs/tools/networking/opensnitch/go.sum
deleted file mode 100644
index 9b14c3bfb5b2..000000000000
--- a/nixpkgs/pkgs/tools/networking/opensnitch/go.sum
+++ /dev/null
@@ -1,197 +0,0 @@
-cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
-github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
-github.com/BurntSushi/toml v0.4.1 h1:GaI7EiDXDRfa8VshkTj7Fym7ha+y8/XxIgD2okUIjLw=
-github.com/BurntSushi/toml v0.4.1/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
-github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU=
-github.com/cilium/ebpf v0.5.0/go.mod h1:4tRaxcgiL706VnOzHOdBlY8IEAIdxINsQBcU4xJJXRs=
-github.com/cilium/ebpf v0.7.0/go.mod h1:/oI2+1shJiTGAMgl6/RgJr36Eo1jzrRcAWbcXO2usCA=
-github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
-github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc=
-github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4=
-github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98=
-github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c=
-github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k=
-github.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=
-github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
-github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
-github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
-github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
-github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw=
-github.com/golang/protobuf v1.5.0 h1:LUVKkCeviFUMKqHa4tXIIij/lbhnMbP7Fn5wKdKkRh4=
-github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
-github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
-github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
-github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ=
-github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
-github.com/google/gopacket v1.1.14 h1:1+TEhSu8Mh154ZBVjyd1Nt2Bb7cnyOeE3GQyb1WGLqI=
-github.com/google/gopacket v1.1.14/go.mod h1:UCLx9mCmAwsVbn6qQl1WIEt2SO7Nd2fD0th1TBAsqBw=
-github.com/google/nftables v0.1.0 h1:T6lS4qudrMufcNIZ8wSRrL+iuwhsKxpN+zFLxhUWOqk=
-github.com/google/nftables v0.1.0/go.mod h1:b97ulCCFipUC+kSin+zygkvUVpx0vyIAwxXFdY3PlNc=
-github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
-github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/iovisor/gobpf v0.2.0 h1:34xkQxft+35GagXBk3n23eqhm0v7q0ejeVirb8sqEOQ=
-github.com/iovisor/gobpf v0.2.0/go.mod h1:WSY9Jj5RhdgC3ci1QaacvbFdQ8cbrEjrpiZbLHLt2s4=
-github.com/josharian/native v0.0.0-20200817173448-b6b71def0850 h1:uhL5Gw7BINiiPAo24A2sxkcDI0Jt/sqp1v5xQCniEFA=
-github.com/josharian/native v0.0.0-20200817173448-b6b71def0850/go.mod h1:7X/raswPFr05uY3HiLlYeyQntB6OO7E/d2Cu7qoaN2w=
-github.com/jsimonetti/rtnetlink v0.0.0-20190606172950-9527aa82566a/go.mod h1:Oz+70psSo5OFh8DBl0Zv2ACw7Esh6pPUphlvZG9x7uw=
-github.com/jsimonetti/rtnetlink v0.0.0-20200117123717-f846d4f6c1f4/go.mod h1:WGuG/smIU4J/54PblvSbh+xvCZmpJnFgr3ds6Z55XMQ=
-github.com/jsimonetti/rtnetlink v0.0.0-20201009170750-9c6f07d100c1/go.mod h1:hqoO/u39cqLeBLebZ8fWdE96O7FxrAsRYhnVOdgHxok=
-github.com/jsimonetti/rtnetlink v0.0.0-20201216134343-bde56ed16391/go.mod h1:cR77jAZG3Y3bsb8hF6fHJbFoyFukLFOkQ98S0pQz3xw=
-github.com/jsimonetti/rtnetlink v0.0.0-20201220180245-69540ac93943/go.mod h1:z4c53zj6Eex712ROyh8WI0ihysb5j2ROyV42iNogmAs=
-github.com/jsimonetti/rtnetlink v0.0.0-20210122163228-8d122574c736/go.mod h1:ZXpIyOK59ZnN7J0BV99cZUPmsqDRZ3eq5X+st7u/oSA=
-github.com/jsimonetti/rtnetlink v0.0.0-20210212075122-66c871082f2b/go.mod h1:8w9Rh8m+aHZIG69YPGGem1i5VzoyRC8nw2kA8B+ik5U=
-github.com/jsimonetti/rtnetlink v0.0.0-20210525051524-4cc836578190/go.mod h1:NmKSdU4VGSiv1bMsdqNALI4RSvvjtz65tTMCnD05qLo=
-github.com/jsimonetti/rtnetlink v0.0.0-20211022192332-93da33804786 h1:N527AHMa793TP5z5GNAn/VLPzlc0ewzWdeP/25gDfgQ=
-github.com/jsimonetti/rtnetlink v0.0.0-20211022192332-93da33804786/go.mod h1:v4hqbTdfQngbVSZJVWUhGE/lbTFf9jb+ygmNUDQMuOs=
-github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
-github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
-github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
-github.com/mdlayher/ethtool v0.0.0-20210210192532-2b88debcdd43/go.mod h1:+t7E0lkKfbBsebllff1xdTmyJt8lH37niI6kwFk9OTo=
-github.com/mdlayher/ethtool v0.0.0-20211028163843-288d040e9d60 h1:tHdB+hQRHU10CfcK0furo6rSNgZ38JT8uPh70c/pFD8=
-github.com/mdlayher/ethtool v0.0.0-20211028163843-288d040e9d60/go.mod h1:aYbhishWc4Ai3I2U4Gaa2n3kHWSwzme6EsG/46HRQbE=
-github.com/mdlayher/genetlink v1.0.0 h1:OoHN1OdyEIkScEmRgxLEe2M9U8ClMytqA5niynLtfj0=
-github.com/mdlayher/genetlink v1.0.0/go.mod h1:0rJ0h4itni50A86M2kHcgS85ttZazNt7a8H2a2cw0Gc=
-github.com/mdlayher/netlink v0.0.0-20190409211403-11939a169225/go.mod h1:eQB3mZE4aiYnlUsyGGCOpPETfdQq4Jhsgf1fk3cwQaA=
-github.com/mdlayher/netlink v1.0.0/go.mod h1:KxeJAFOFLG6AjpyDkQ/iIhxygIUKD+vcwqcnu43w/+M=
-github.com/mdlayher/netlink v1.1.0/go.mod h1:H4WCitaheIsdF9yOYu8CFmCgQthAPIWZmcKp9uZHgmY=
-github.com/mdlayher/netlink v1.1.1/go.mod h1:WTYpFb/WTvlRJAyKhZL5/uy69TDDpHHu2VZmb2XgV7o=
-github.com/mdlayher/netlink v1.2.0/go.mod h1:kwVW1io0AZy9A1E2YYgaD4Cj+C+GPkU6klXCMzIJ9p8=
-github.com/mdlayher/netlink v1.2.1/go.mod h1:bacnNlfhqHqqLo4WsYeXSqfyXkInQ9JneWI68v1KwSU=
-github.com/mdlayher/netlink v1.2.2-0.20210123213345-5cc92139ae3e/go.mod h1:bacnNlfhqHqqLo4WsYeXSqfyXkInQ9JneWI68v1KwSU=
-github.com/mdlayher/netlink v1.3.0/go.mod h1:xK/BssKuwcRXHrtN04UBkwQ6dY9VviGGuriDdoPSWys=
-github.com/mdlayher/netlink v1.4.0/go.mod h1:dRJi5IABcZpBD2A3D0Mv/AiX8I9uDEu5oGkAVrekmf8=
-github.com/mdlayher/netlink v1.4.1/go.mod h1:e4/KuJ+s8UhfUpO9z00/fDZZmhSrs+oxyqAS9cNgn6Q=
-github.com/mdlayher/netlink v1.4.2 h1:3sbnJWe/LETovA7yRZIX3f9McVOWV3OySH6iIBxiFfI=
-github.com/mdlayher/netlink v1.4.2/go.mod h1:13VaingaArGUTUxFLf/iEovKxXji32JAtF858jZYEug=
-github.com/mdlayher/socket v0.0.0-20210307095302-262dc9984e00/go.mod h1:GAFlyu4/XV68LkQKYzKhIo/WW7j3Zi0YRAz/BOoanUc=
-github.com/mdlayher/socket v0.0.0-20211007213009-516dcbdf0267/go.mod h1:nFZ1EtZYK8Gi/k6QNu7z7CgO20i/4ExeQswwWuPmG/g=
-github.com/mdlayher/socket v0.0.0-20211102153432-57e3fa563ecb h1:2dC7L10LmTqlyMVzFJ00qM25lqESg9Z4u3GuEXN5iHY=
-github.com/mdlayher/socket v0.0.0-20211102153432-57e3fa563ecb/go.mod h1:nFZ1EtZYK8Gi/k6QNu7z7CgO20i/4ExeQswwWuPmG/g=
-github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
-github.com/varlink/go v0.4.0 h1:+/BQoUO9eJK/+MTSHwFcJch7TMsb6N6Dqp6g0qaXXRo=
-github.com/varlink/go v0.4.0/go.mod h1:DKg9Y2ctoNkesREGAEak58l+jOC6JU2aqZvUYs5DynU=
-github.com/vishvananda/netlink v0.0.0-20210811191823-e1a867c6b452 h1:xe1bLd/sNkKVWdZuAb2+4JeMQMYyQ7Av38iRrE1lhm8=
-github.com/vishvananda/netlink v0.0.0-20210811191823-e1a867c6b452/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho=
-github.com/vishvananda/netns v0.0.0-20180720170159-13995c7128cc/go.mod h1:ZjcWmFBXmLKZu9Nxj3WKYEafiSqer2rnvPr0en9UNpI=
-github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae h1:4hwBBUfQCFe3Cym0ZtKyq7L16eZUtYKs+BaHDN6mAns=
-github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0=
-github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
-github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
-github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
-golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
-golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
-golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
-golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
-golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
-golang.org/x/mod v0.5.1 h1:OJxoQ/rynoF0dcCdI7cLPktw/hR2cueqYfjm43oqK38=
-golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro=
-golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
-golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20190827160401-ba9fcec4b297/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20191007182048-72f939374954/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/net v0.0.0-20201010224723-4f7140c49acb/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/net v0.0.0-20201216054612-986b41b23924/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
-golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
-golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
-golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
-golang.org/x/net v0.0.0-20210525063256-abc453219eb5/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20210805182204-aaa1db679c0d/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20210928044308-7d9f5e0b762b/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20211020060615-d418f374d309/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20211201190559-0a0e4e1bb54c/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20211209124913-491a49abca63 h1:iocB37TsdFuN6IBRZ+ry36wrkoV51/tl5vOWqkcPGvY=
-golang.org/x/net v0.0.0-20211209124913-491a49abca63/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
-golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190411185658-b44545bcd369/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20190826190057-c7b8b68b1456/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20201009025420-dfb3f7c4e634/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20201118182958-a01c418693c7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20201218084310-7d0127a74742/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210110051926-789bb1bd4061/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210123111255-9b0068b26619/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210124154548-22da62e12c0c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210216163648-f7da38b97c65/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20210525143221-35b2ab0089ea/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210809222454-d867a43fc93e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20210927094055-39ccf1dd6fa6/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20211124211545-fe61309f8881/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20211205182925-97ca703d548d h1:FjkYO/PPp4Wi0EAUOVLxePm7qVW4r4ctbWpURyuOD0E=
-golang.org/x/sys v0.0.0-20211205182925-97ca703d548d/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
-golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
-golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
-golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
-golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
-golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
-golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
-golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
-golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
-golang.org/x/tools v0.1.7/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo=
-golang.org/x/tools v0.1.8 h1:P1HhGGuLW4aAclzjtmJdf0mJOjVUZUzOTqkAkWL+l6w=
-golang.org/x/tools v0.1.8/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU=
-golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE=
-golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
-google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
-google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
-google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
-google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55 h1:gSJIx1SDwno+2ElGhA4+qG2zF97qiUzTM+rQ0klBOcE=
-google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
-google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
-google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg=
-google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY=
-google.golang.org/grpc v1.32.0 h1:zWTV+LMdc3kaiJMSTOFz2UgSBgx8RNQoTGiZu3fR9S0=
-google.golang.org/grpc v1.32.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak=
-google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
-google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk=
-google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
-honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
-honnef.co/go/tools v0.2.1/go.mod h1:lPVVZ2BS5TfnjLyizF7o7hv7j9/L+8cZY2hLyjP9cGY=
-honnef.co/go/tools v0.2.2 h1:MNh1AVMyVX23VUHE2O27jm6lNj3vjO5DexS4A1xvnzk=
-honnef.co/go/tools v0.2.2/go.mod h1:lPVVZ2BS5TfnjLyizF7o7hv7j9/L+8cZY2hLyjP9cGY=
diff --git a/nixpkgs/pkgs/tools/networking/opensnitch/ui.nix b/nixpkgs/pkgs/tools/networking/opensnitch/ui.nix
deleted file mode 100644
index 9e7903149070..000000000000
--- a/nixpkgs/pkgs/tools/networking/opensnitch/ui.nix
+++ /dev/null
@@ -1,75 +0,0 @@
-{ python3Packages
-, fetchFromGitHub
-, qtwayland
-, wrapQtAppsHook
-, lib
-}:
-
-python3Packages.buildPythonApplication rec {
-  pname = "opensnitch-ui";
-  version = "1.6.4";
-
-  src = fetchFromGitHub {
-    owner = "evilsocket";
-    repo = "opensnitch";
-    rev = "refs/tags/v${version}";
-    hash = "sha256-fkRykhcjWZ4MDl2HZ1ZFaQmEeRYhiCBeUxG/Eu7D8NA=";
-  };
-
-  postPatch = ''
-    substituteInPlace ui/opensnitch/utils/__init__.py \
-      --replace /usr/lib/python3/dist-packages/data ${python3Packages.pyasn}/${python3Packages.python.sitePackages}/pyasn/data
-  '';
-
-  nativeBuildInputs = [
-    python3Packages.pyqt5
-    wrapQtAppsHook
-  ];
-
-  buildInputs = [
-    qtwayland
-  ];
-
-  propagatedBuildInputs = with python3Packages; [
-    grpcio-tools
-    pyqt5
-    unidecode
-    unicode-slugify
-    pyinotify
-    notify2
-    pyasn
-  ];
-
-  preBuild = ''
-    make -C ../proto ../ui/opensnitch/ui_pb2.py
-    # sourced from ui/Makefile
-    pyrcc5 -o opensnitch/resources_rc.py opensnitch/res/resources.qrc
-    sed -i 's/^import ui_pb2/from . import ui_pb2/' opensnitch/ui_pb2*
-  '';
-
-  preConfigure = ''
-    cd ui
-  '';
-
-  preCheck = ''
-    export PYTHONPATH=opensnitch:$PYTHONPATH
-  '';
-
-  postInstall = ''
-    mv $out/${python3Packages.python.sitePackages}/usr/* $out/
-  '';
-
-  dontWrapQtApps = true;
-  makeWrapperArgs = [ "\${qtWrapperArgs[@]}" ];
-
-  # All tests are sandbox-incompatible and disabled for now
-  doCheck = false;
-
-  meta = with lib; {
-    description = "An application firewall";
-    homepage = "https://github.com/evilsocket/opensnitch/wiki";
-    license = licenses.gpl3Only;
-    maintainers = with maintainers; [ onny ];
-    platforms = platforms.linux;
-  };
-}
diff --git a/nixpkgs/pkgs/tools/networking/openvpn/default.nix b/nixpkgs/pkgs/tools/networking/openvpn/default.nix
index 46fa0be29c70..091bec29da08 100644
--- a/nixpkgs/pkgs/tools/networking/openvpn/default.nix
+++ b/nixpkgs/pkgs/tools/networking/openvpn/default.nix
@@ -21,11 +21,11 @@ let
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "openvpn";
-  version = "2.6.8";
+  version = "2.6.9";
 
   src = fetchurl {
     url = "https://swupdate.openvpn.net/community/releases/openvpn-${finalAttrs.version}.tar.gz";
-    hash = "sha256-Xt4VZcim2IAQD38jUxen7p7qg9UFLbVUfxOp52r3gF0=";
+    hash = "sha256-4I0UfhW0UI380dZhih8h8UlfmBeo2twe3fBTL6EW1+M=";
   };
 
   nativeBuildInputs = [ pkg-config ];
@@ -63,5 +63,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ viric peterhoeg ];
     platforms = platforms.unix;
+    mainProgram = "openvpn";
   };
 })
diff --git a/nixpkgs/pkgs/tools/networking/oui/default.nix b/nixpkgs/pkgs/tools/networking/oui/default.nix
index 517eb06507b4..9fd613a295e7 100644
--- a/nixpkgs/pkgs/tools/networking/oui/default.nix
+++ b/nixpkgs/pkgs/tools/networking/oui/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/thatmattlove/oui";
     license = with licenses; [ bsd3 ];
     maintainers = teams.wdz.members;
+    mainProgram = "oui";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/owl/default.nix b/nixpkgs/pkgs/tools/networking/owl/default.nix
index 5a726c25a027..568eeca0afff 100644
--- a/nixpkgs/pkgs/tools/networking/owl/default.nix
+++ b/nixpkgs/pkgs/tools/networking/owl/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ wolfangaukang ];
     platforms = [ "x86_64-linux" ];
+    mainProgram = "owl";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/pacparser/default.nix b/nixpkgs/pkgs/tools/networking/pacparser/default.nix
index d4b81928498c..dc45aaac58fa 100644
--- a/nixpkgs/pkgs/tools/networking/pacparser/default.nix
+++ b/nixpkgs/pkgs/tools/networking/pacparser/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.lgpl3;
     platforms = platforms.linux;
     maintainers = with maintainers; [ abbradar ];
+    mainProgram = "pactester";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/pathvector/default.nix b/nixpkgs/pkgs/tools/networking/pathvector/default.nix
index f8560793e9dc..e9ca6f90e5a5 100644
--- a/nixpkgs/pkgs/tools/networking/pathvector/default.nix
+++ b/nixpkgs/pkgs/tools/networking/pathvector/default.nix
@@ -24,5 +24,6 @@ buildGoModule rec {
     homepage = "https://pathvector.io";
     license = licenses.gpl3;
     maintainers = with maintainers; [ matthewpi ];
+    mainProgram = "pathvector";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/pcapc/default.nix b/nixpkgs/pkgs/tools/networking/pcapc/default.nix
index e0cef5402089..35b338a5f63a 100644
--- a/nixpkgs/pkgs/tools/networking/pcapc/default.nix
+++ b/nixpkgs/pkgs/tools/networking/pcapc/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     description = "Compile libpcap filter expressions into BPF opcodes";
     license = licenses.gpl3Only;
     platforms = platforms.linux;
+    mainProgram = "pcapc";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/pcapfix/default.nix b/nixpkgs/pkgs/tools/networking/pcapfix/default.nix
index 5a8f24355c26..3f7a5be86ce0 100644
--- a/nixpkgs/pkgs/tools/networking/pcapfix/default.nix
+++ b/nixpkgs/pkgs/tools/networking/pcapfix/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3;
     maintainers = [ maintainers.ehmry ];
     platforms = platforms.all;
+    mainProgram = "pcapfix";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/pgrok/default.nix b/nixpkgs/pkgs/tools/networking/pgrok/default.nix
index ab1c6d9f0a61..e5c9610521ce 100644
--- a/nixpkgs/pkgs/tools/networking/pgrok/default.nix
+++ b/nixpkgs/pkgs/tools/networking/pgrok/default.nix
@@ -51,5 +51,6 @@ buildGoModule rec {
     homepage = "https://github.com/pgrok/pgrok";
     license = lib.licenses.mit;
     maintainers = with lib.maintainers; [ marie ];
+    mainProgram = "pgrok";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/phantomsocks/default.nix b/nixpkgs/pkgs/tools/networking/phantomsocks/default.nix
index 6f3c3ad9a336..7bb053c680f7 100644
--- a/nixpkgs/pkgs/tools/networking/phantomsocks/default.nix
+++ b/nixpkgs/pkgs/tools/networking/phantomsocks/default.nix
@@ -37,5 +37,6 @@ buildGoModule rec {
     '';
     license = licenses.lgpl3Only;
     maintainers = with maintainers; [ oluceps ];
+    mainProgram = "phantomsocks";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/photon/default.nix b/nixpkgs/pkgs/tools/networking/photon/default.nix
index 543d9f1a5b96..8a69bd70c149 100644
--- a/nixpkgs/pkgs/tools/networking/photon/default.nix
+++ b/nixpkgs/pkgs/tools/networking/photon/default.nix
@@ -31,5 +31,6 @@ python3Packages.buildPythonApplication rec {
     homepage = "https://github.com/s0md3v/Photon";
     license = licenses.gpl3;
     maintainers = with maintainers; [ ];
+    mainProgram = "photon";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/piknik/default.nix b/nixpkgs/pkgs/tools/networking/piknik/default.nix
index 7b5b1a5e04c3..d3b2a8266b88 100644
--- a/nixpkgs/pkgs/tools/networking/piknik/default.nix
+++ b/nixpkgs/pkgs/tools/networking/piknik/default.nix
@@ -33,5 +33,6 @@ buildGoModule rec {
     changelog = "https://github.com/jedisct1/piknik/blob/${src.rev}/ChangeLog";
     license = licenses.bsd2;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "piknik";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/pingtcp/default.nix b/nixpkgs/pkgs/tools/networking/pingtcp/default.nix
index 5b4cbf10321f..88476ab85686 100644
--- a/nixpkgs/pkgs/tools/networking/pingtcp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/pingtcp/default.nix
@@ -25,5 +25,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/LanetNetwork/pingtcp";
     license = licenses.gpl3;
     platforms = platforms.linux;
+    mainProgram = "pingtcp";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/pingu/default.nix b/nixpkgs/pkgs/tools/networking/pingu/default.nix
index ca33e4862478..5fcaa0af5fef 100644
--- a/nixpkgs/pkgs/tools/networking/pingu/default.nix
+++ b/nixpkgs/pkgs/tools/networking/pingu/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/sheepla/pingu/";
     license = licenses.mit;
     maintainers = with maintainers; [ CactiChameleon9 ];
+    mainProgram = "pingu";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/pixiecore/default.nix b/nixpkgs/pkgs/tools/networking/pixiecore/default.nix
index f1249cfb8286..e73999d44689 100644
--- a/nixpkgs/pkgs/tools/networking/pixiecore/default.nix
+++ b/nixpkgs/pkgs/tools/networking/pixiecore/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/danderson/netboot/tree/master/pixiecore";
     license =  lib.licenses.asl20;
     maintainers = with lib.maintainers; [ bbigras danderson ];
+    mainProgram = "pixiecore";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/pixiewps/default.nix b/nixpkgs/pkgs/tools/networking/pixiewps/default.nix
index 82d420755d03..d3a7f0bc69d1 100644
--- a/nixpkgs/pkgs/tools/networking/pixiewps/default.nix
+++ b/nixpkgs/pkgs/tools/networking/pixiewps/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3;
     maintainers = [ lib.maintainers.nico202 ];
     platforms = lib.platforms.all;
+    mainProgram = "pixiewps";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/privoxy/default.nix b/nixpkgs/pkgs/tools/networking/privoxy/default.nix
index 048ee085a6f2..5f394db354c0 100644
--- a/nixpkgs/pkgs/tools/networking/privoxy/default.nix
+++ b/nixpkgs/pkgs/tools/networking/privoxy/default.nix
@@ -52,6 +52,7 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = [ ];
+    mainProgram = "privoxy";
   };
 
 }
diff --git a/nixpkgs/pkgs/tools/networking/proxychains/default.nix b/nixpkgs/pkgs/tools/networking/proxychains/default.nix
index 56778defe335..e78b1b0fcd6c 100644
--- a/nixpkgs/pkgs/tools/networking/proxychains/default.nix
+++ b/nixpkgs/pkgs/tools/networking/proxychains/default.nix
@@ -34,5 +34,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ fab ];
     platforms = platforms.linux;
+    mainProgram = "proxychains4";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/pwnat/default.nix b/nixpkgs/pkgs/tools/networking/pwnat/default.nix
index ab123973c0a1..c0ead5468b50 100644
--- a/nixpkgs/pkgs/tools/networking/pwnat/default.nix
+++ b/nixpkgs/pkgs/tools/networking/pwnat/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     license     = lib.licenses.gpl3Plus;
     maintainers = with maintainers; [viric];
     platforms   = with platforms; linux;
+    mainProgram = "pwnat";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/q/default.nix b/nixpkgs/pkgs/tools/networking/q/default.nix
index ed3a1a57fc36..fdeddef65460 100644
--- a/nixpkgs/pkgs/tools/networking/q/default.nix
+++ b/nixpkgs/pkgs/tools/networking/q/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://github.com/natesales/q";
     license = lib.licenses.gpl3Only;
     maintainers = [ lib.maintainers.das_j ];
+    mainProgram = "q";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/qrcp/default.nix b/nixpkgs/pkgs/tools/networking/qrcp/default.nix
index 0d8a344cbd6d..edd2a9b21633 100644
--- a/nixpkgs/pkgs/tools/networking/qrcp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/qrcp/default.nix
@@ -43,5 +43,6 @@ buildGoModule rec {
     license = licenses.mit;
     maintainers = with maintainers; [ fgaz ];
     broken = stdenv.isDarwin; # needs golang.org/x/sys bump
+    mainProgram = "qrcp";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/quickserve/default.nix b/nixpkgs/pkgs/tools/networking/quickserve/default.nix
index f23bbcd25371..ca175f5f2a91 100644
--- a/nixpkgs/pkgs/tools/networking/quickserve/default.nix
+++ b/nixpkgs/pkgs/tools/networking/quickserve/default.nix
@@ -31,5 +31,6 @@ in stdenv.mkDerivation {
     homepage = "https://xyne.archlinux.ca/projects/quickserve/";
     license = licenses.gpl2;
     maintainers = with maintainers; [ lassulus ];
+    mainProgram = "quickserve";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/rathole/default.nix b/nixpkgs/pkgs/tools/networking/rathole/default.nix
index b6338e262f63..1f12ed46b147 100644
--- a/nixpkgs/pkgs/tools/networking/rathole/default.nix
+++ b/nixpkgs/pkgs/tools/networking/rathole/default.nix
@@ -40,5 +40,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/rapiz1/rathole/releases/tag/v${version}";
     license = licenses.asl20;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "rathole";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/rcon/default.nix b/nixpkgs/pkgs/tools/networking/rcon/default.nix
index 03c2a1ae1a37..e51dc3fac371 100644
--- a/nixpkgs/pkgs/tools/networking/rcon/default.nix
+++ b/nixpkgs/pkgs/tools/networking/rcon/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ f4814n ];
     platforms = with platforms; linux ++ darwin;
     license = licenses.bsd2;
+    mainProgram = "rcon";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/rconc/default.nix b/nixpkgs/pkgs/tools/networking/rconc/default.nix
index 613c4a8a31b0..5934dd7e8893 100644
--- a/nixpkgs/pkgs/tools/networking/rconc/default.nix
+++ b/nixpkgs/pkgs/tools/networking/rconc/default.nix
@@ -17,5 +17,6 @@ rustPlatform.buildRustPackage rec {
     description = "Simple cross-platform RCON client written in rust";
     homepage = "https://github.com/klemens/rconc";
     license = licenses.gpl3Only;
+    mainProgram = "rconc";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/rdap/default.nix b/nixpkgs/pkgs/tools/networking/rdap/default.nix
index d6ecc8d59570..3ea80e07dabb 100644
--- a/nixpkgs/pkgs/tools/networking/rdap/default.nix
+++ b/nixpkgs/pkgs/tools/networking/rdap/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     description = "Command line client for the Registration Data Access Protocol (RDAP)";
     license = licenses.mit;
     maintainers = with maintainers; [ sebastianblunt ];
+    mainProgram = "rdap";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/rdrview/default.nix b/nixpkgs/pkgs/tools/networking/rdrview/default.nix
index 24ba1d35e9af..e4d56be3ffb9 100644
--- a/nixpkgs/pkgs/tools/networking/rdrview/default.nix
+++ b/nixpkgs/pkgs/tools/networking/rdrview/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation {
     homepage = "https://github.com/eafer/rdrview";
     license = licenses.asl20;
     maintainers = with maintainers; [ djanatyn ];
+    mainProgram = "rdrview";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/redfang/default.nix b/nixpkgs/pkgs/tools/networking/redfang/default.nix
index a4ba12b29489..a6447c19576c 100644
--- a/nixpkgs/pkgs/tools/networking/redfang/default.nix
+++ b/nixpkgs/pkgs/tools/networking/redfang/default.nix
@@ -31,5 +31,6 @@ stdenv.mkDerivation rec {
     homepage = "https://gitlab.com/kalilinux/packages/redfang";
     license = licenses.gpl2Only;
     maintainers = with maintainers; [ moni ];
+    mainProgram = "fang";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/redir/default.nix b/nixpkgs/pkgs/tools/networking/redir/default.nix
index 83d52fdf10d2..17975521de16 100644
--- a/nixpkgs/pkgs/tools/networking/redir/default.nix
+++ b/nixpkgs/pkgs/tools/networking/redir/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2;
     maintainers = with lib.maintainers; [ ];
     platforms = lib.platforms.unix;
+    mainProgram = "redir";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/redli/default.nix b/nixpkgs/pkgs/tools/networking/redli/default.nix
index a9d590e05697..41bc3d9265e6 100644
--- a/nixpkgs/pkgs/tools/networking/redli/default.nix
+++ b/nixpkgs/pkgs/tools/networking/redli/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/IBM-Cloud/redli";
     license = licenses.asl20;
     maintainers = with maintainers; [ tchekda ];
+    mainProgram = "redli";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/redsocks/default.nix b/nixpkgs/pkgs/tools/networking/redsocks/default.nix
index cebec2cb2b60..f97dd01e074d 100644
--- a/nixpkgs/pkgs/tools/networking/redsocks/default.nix
+++ b/nixpkgs/pkgs/tools/networking/redsocks/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.asl20;
     maintainers = [ lib.maintainers.ekleog ];
     platforms = lib.platforms.linux;
+    mainProgram = "redsocks";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/requestly/default.nix b/nixpkgs/pkgs/tools/networking/requestly/default.nix
index 671d084b8ecb..20e877563afa 100644
--- a/nixpkgs/pkgs/tools/networking/requestly/default.nix
+++ b/nixpkgs/pkgs/tools/networking/requestly/default.nix
@@ -30,5 +30,6 @@ appimageTools.wrapType2 {
     homepage = "https://requestly.io";
     license = licenses.agpl3Only;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "requestly";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/restish/default.nix b/nixpkgs/pkgs/tools/networking/restish/default.nix
index 807b8e4a9bdf..f8a1cfd466ea 100644
--- a/nixpkgs/pkgs/tools/networking/restish/default.nix
+++ b/nixpkgs/pkgs/tools/networking/restish/default.nix
@@ -52,5 +52,6 @@ buildGoModule rec {
     changelog = "https://github.com/danielgtaylor/restish/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "restish";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/rewrk/default.nix b/nixpkgs/pkgs/tools/networking/rewrk/default.nix
index 6b48ce95b423..58aa3f46185b 100644
--- a/nixpkgs/pkgs/tools/networking/rewrk/default.nix
+++ b/nixpkgs/pkgs/tools/networking/rewrk/default.nix
@@ -32,5 +32,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/lnx-search/rewrk/releases/tag/${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "rewrk";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/ripmime/default.nix b/nixpkgs/pkgs/tools/networking/ripmime/default.nix
index 7cfb31ff9858..70ff2cbe7305 100644
--- a/nixpkgs/pkgs/tools/networking/ripmime/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ripmime/default.nix
@@ -21,6 +21,7 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ raskin ];
     homepage = "https://pldaniels.com/ripmime/";
     platforms = platforms.all;
+    mainProgram = "ripmime";
   };
 
   passthru = {
diff --git a/nixpkgs/pkgs/tools/networking/routedns/default.nix b/nixpkgs/pkgs/tools/networking/routedns/default.nix
index 22a0a8266713..0b6f6822bb8d 100644
--- a/nixpkgs/pkgs/tools/networking/routedns/default.nix
+++ b/nixpkgs/pkgs/tools/networking/routedns/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     description = "DNS stub resolver, proxy and router";
     license = licenses.bsd3;
     maintainers = with maintainers; [ jsimonetti ];
+    mainProgram = "routedns";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/rshijack/default.nix b/nixpkgs/pkgs/tools/networking/rshijack/default.nix
index 41d716bf61c5..181abdf4b603 100644
--- a/nixpkgs/pkgs/tools/networking/rshijack/default.nix
+++ b/nixpkgs/pkgs/tools/networking/rshijack/default.nix
@@ -19,5 +19,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3;
     maintainers = with maintainers; [ xrelkd ];
     platforms = platforms.unix;
+    mainProgram = "rshijack";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/s3rs/default.nix b/nixpkgs/pkgs/tools/networking/s3rs/default.nix
index cb73eaf6b59d..2e72c7cb45bf 100644
--- a/nixpkgs/pkgs/tools/networking/s3rs/default.nix
+++ b/nixpkgs/pkgs/tools/networking/s3rs/default.nix
@@ -22,5 +22,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/yanganto/s3rs";
     license = licenses.mit;
     maintainers = with maintainers; [ yanganto ];
+    mainProgram = "s3rs";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/s5cmd/default.nix b/nixpkgs/pkgs/tools/networking/s5cmd/default.nix
index 8d3b97c0d316..292169d77f77 100644
--- a/nixpkgs/pkgs/tools/networking/s5cmd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/s5cmd/default.nix
@@ -21,5 +21,6 @@ buildGoModule rec {
     description = "Parallel S3 and local filesystem execution tool";
     license = licenses.mit;
     maintainers = with maintainers; [ tomberek ];
+    mainProgram = "s5cmd";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/saldl/default.nix b/nixpkgs/pkgs/tools/networking/saldl/default.nix
index fb373fb5029e..b7281d3a20a7 100644
--- a/nixpkgs/pkgs/tools/networking/saldl/default.nix
+++ b/nixpkgs/pkgs/tools/networking/saldl/default.nix
@@ -55,5 +55,6 @@ stdenv.mkDerivation rec {
     license = licenses.agpl3;
     maintainers = with maintainers; [ zowoq ];
     platforms = platforms.all;
+    mainProgram = "saldl";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix b/nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix
index d4e619f563f6..38fb6a60169b 100644
--- a/nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix
+++ b/nixpkgs/pkgs/tools/networking/shadowsocks-rust/default.nix
@@ -2,16 +2,16 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "shadowsocks-rust";
-  version = "1.18.0";
+  version = "1.18.1";
 
   src = fetchFromGitHub {
     rev = "v${version}";
     owner = "shadowsocks";
     repo = pname;
-    hash = "sha256-vW1Q3pqVXR3yn2wixhDZE1QsMmUfKswaGZ6JbJAZ5VM=";
+    hash = "sha256-q7XtYOBruEmjPC4gx+hBO5oRwbxL7wQJenBS8Pl6yRk=";
   };
 
-  cargoHash = "sha256-cjkt6Ivpn3MpjdiPM/tLm3B+v/+VCJyxiF7x1bob528=";
+  cargoHash = "sha256-av4xUjoUGt53UoEpWULv15JKVWZq1x0YXvF5XFf4meQ=";
 
   nativeBuildInputs = lib.optionals stdenv.isLinux [ pkg-config ];
 
diff --git a/nixpkgs/pkgs/tools/networking/shncpd/default.nix b/nixpkgs/pkgs/tools/networking/shncpd/default.nix
index 8cfd1f94252a..ed724c24cf79 100644
--- a/nixpkgs/pkgs/tools/networking/shncpd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/shncpd/default.nix
@@ -23,5 +23,6 @@ stdenv.mkDerivation {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = [ maintainers.fpletz ];
+    mainProgram = "shncpd";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/simpleproxy/default.nix b/nixpkgs/pkgs/tools/networking/simpleproxy/default.nix
index 6c110be05da3..7f9ccd1c9865 100644
--- a/nixpkgs/pkgs/tools/networking/simpleproxy/default.nix
+++ b/nixpkgs/pkgs/tools/networking/simpleproxy/default.nix
@@ -17,5 +17,6 @@ stdenv.mkDerivation rec {
     description = "A simple TCP proxy";
     license = licenses.gpl2;
     maintainers = [ maintainers.montag451 ];
+    mainProgram = "simpleproxy";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/sipcalc/default.nix b/nixpkgs/pkgs/tools/networking/sipcalc/default.nix
index c9470cd5b8b3..1ba4db5bc0d2 100644
--- a/nixpkgs/pkgs/tools/networking/sipcalc/default.nix
+++ b/nixpkgs/pkgs/tools/networking/sipcalc/default.nix
@@ -15,5 +15,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     platforms = platforms.all;
     maintainers = [ maintainers.globin ];
+    mainProgram = "sipcalc";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/sipexer/default.nix b/nixpkgs/pkgs/tools/networking/sipexer/default.nix
index d88faee09f0f..d1be5e9f7770 100644
--- a/nixpkgs/pkgs/tools/networking/sipexer/default.nix
+++ b/nixpkgs/pkgs/tools/networking/sipexer/default.nix
@@ -22,5 +22,6 @@ buildGoModule rec {
     changelog = "https://github.com/miconda/sipexer/releases/tag/v${version}";
     license = licenses.gpl3Only;
     maintainers = with maintainers; [ astro janik ];
+    mainProgram = "sipexer";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/sipsak/default.nix b/nixpkgs/pkgs/tools/networking/sipsak/default.nix
index c2aeaaa18e00..4d1cf08a11b8 100644
--- a/nixpkgs/pkgs/tools/networking/sipsak/default.nix
+++ b/nixpkgs/pkgs/tools/networking/sipsak/default.nix
@@ -29,6 +29,7 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2;
     maintainers = with maintainers; [ sheenobu ];
     platforms = with platforms; unix;
+    mainProgram = "sipsak";
   };
 
 }
diff --git a/nixpkgs/pkgs/tools/networking/sish/default.nix b/nixpkgs/pkgs/tools/networking/sish/default.nix
index d1913e5dff41..afac612d0604 100644
--- a/nixpkgs/pkgs/tools/networking/sish/default.nix
+++ b/nixpkgs/pkgs/tools/networking/sish/default.nix
@@ -38,5 +38,6 @@ buildGoModule rec {
     changelog = "https://github.com/antoniomika/sish/releases/tag/v${version}";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "sish";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/sitespeed-io/default.nix b/nixpkgs/pkgs/tools/networking/sitespeed-io/default.nix
index f7b71b2fb4ca..846e386ced3b 100644
--- a/nixpkgs/pkgs/tools/networking/sitespeed-io/default.nix
+++ b/nixpkgs/pkgs/tools/networking/sitespeed-io/default.nix
@@ -2,13 +2,14 @@
 , stdenv
 , fetchFromGitHub
 , buildNpmPackage
-, makeWrapper
+, nodejs_18
 , coreutils
 , ffmpeg-headless
 , imagemagick_light
 , procps
 , python3
 , xorg
+, nix-update-script
 
 # chromedriver is more efficient than geckodriver, but is available on less platforms.
 
@@ -23,15 +24,17 @@
 assert (!withFirefox && !withChromium) -> throw "Either `withFirefox` or `withChromium` must be enabled.";
 buildNpmPackage rec {
   pname = "sitespeed-io";
-  version = "27.3.1";
+  version = "33.0.0";
 
   src = fetchFromGitHub {
     owner = "sitespeedio";
     repo = "sitespeed.io";
     rev = "v${version}";
-    hash = "sha256-Z4U4ZIw5Du/VSHIsGKdgu7wRv/6XVh/nMFDs8aYwkOQ=";
+    hash = "sha256-UmviwcxL67fn8B4ruJH9yKdcYVqmxqKSImQszKhDHZ0=";
   };
 
+  nodejs = nodejs_18;
+
   postPatch = ''
     ln -s npm-shrinkwrap.json package-lock.json
   '';
@@ -41,11 +44,9 @@ buildNpmPackage rec {
   GECKODRIVER_SKIP_DOWNLOAD = true;
   EDGEDRIVER_SKIP_DOWNLOAD = true;
 
-  nativeBuildInputs = [ python3 makeWrapper ];
-
   dontNpmBuild = true;
   npmInstallFlags = [ "--omit=dev" ];
-  npmDepsHash = "sha256-RfZlXE8hnAJKiiWdOGFsAFGcxwgnLNvLrXeIinABFb0=";
+  npmDepsHash = "sha256-FggwOnuQ+azgdLxfc6EUAsbl0+il6/2+p1t7MCrTNgE=";
 
   postInstall = ''
     mv $out/bin/sitespeed{.,-}io
@@ -81,6 +82,10 @@ buildNpmPackage rec {
         ${lib.optionalString (withFirefox && !withChromium) "--add-flags '-b firefox'"}
     '';
 
+  passthru = {
+    updateScript = nix-update-script { };
+  };
+
   meta = with lib; {
     description = "An open source tool that helps you monitor, analyze and optimize your website speed and performance";
     homepage = "https://sitespeed.io";
diff --git a/nixpkgs/pkgs/tools/networking/sleep-on-lan/default.nix b/nixpkgs/pkgs/tools/networking/sleep-on-lan/default.nix
index de4831ddeadd..bd55711830bc 100644
--- a/nixpkgs/pkgs/tools/networking/sleep-on-lan/default.nix
+++ b/nixpkgs/pkgs/tools/networking/sleep-on-lan/default.nix
@@ -30,5 +30,6 @@ buildGoModule rec {
     license = licenses.asl20;
     platforms = platforms.linux;
     maintainers = with maintainers; [ devusb ];
+    mainProgram = "sleep-on-lan";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/slirp4netns/default.nix b/nixpkgs/pkgs/tools/networking/slirp4netns/default.nix
index 0daf91ae14d5..2b2091d85b27 100644
--- a/nixpkgs/pkgs/tools/networking/slirp4netns/default.nix
+++ b/nixpkgs/pkgs/tools/networking/slirp4netns/default.nix
@@ -36,5 +36,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ orivej ] ++ teams.podman.members;
     platforms = platforms.linux;
+    mainProgram = "slirp4netns";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/slowlorust/default.nix b/nixpkgs/pkgs/tools/networking/slowlorust/default.nix
index bcfdfc7769eb..c48257130b2d 100644
--- a/nixpkgs/pkgs/tools/networking/slowlorust/default.nix
+++ b/nixpkgs/pkgs/tools/networking/slowlorust/default.nix
@@ -27,5 +27,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/MJVL/slowlorust";
     license = licenses.mit;
     maintainers = with maintainers; [ fab ];
+    mainProgram = "slowlorust";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/smartdns/default.nix b/nixpkgs/pkgs/tools/networking/smartdns/default.nix
index 79b089e8e16a..e7355eb07a75 100644
--- a/nixpkgs/pkgs/tools/networking/smartdns/default.nix
+++ b/nixpkgs/pkgs/tools/networking/smartdns/default.nix
@@ -39,5 +39,6 @@ stdenv.mkDerivation rec {
     maintainers = [ maintainers.lexuge ];
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
+    mainProgram = "smartdns";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/snabb/default.nix b/nixpkgs/pkgs/tools/networking/snabb/default.nix
index 00bc41f69e77..16c6a40bb347 100644
--- a/nixpkgs/pkgs/tools/networking/snabb/default.nix
+++ b/nixpkgs/pkgs/tools/networking/snabb/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     platforms = [ "x86_64-linux" ];
     license = licenses.asl20;
     maintainers = [ maintainers.lukego ];
+    mainProgram = "snabb";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/snet/default.nix b/nixpkgs/pkgs/tools/networking/snet/default.nix
index 4775d789d7c1..47f70a21d33b 100644
--- a/nixpkgs/pkgs/tools/networking/snet/default.nix
+++ b/nixpkgs/pkgs/tools/networking/snet/default.nix
@@ -18,5 +18,6 @@ buildGoModule rec {
     homepage = "https://github.com/monsterxx03/snet";
     license = licenses.mit;
     maintainers = with maintainers; [ azuwis ];
+    mainProgram = "snet";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/snmpcheck/default.nix b/nixpkgs/pkgs/tools/networking/snmpcheck/default.nix
index e27ead59e971..b365ccc5f191 100644
--- a/nixpkgs/pkgs/tools/networking/snmpcheck/default.nix
+++ b/nixpkgs/pkgs/tools/networking/snmpcheck/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.nothink.org/codes/snmpcheck/";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ elohmeier ];
+    mainProgram = "snmp-check";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/snowflake/default.nix b/nixpkgs/pkgs/tools/networking/snowflake/default.nix
index 556a3101cb65..cac350ff597a 100644
--- a/nixpkgs/pkgs/tools/networking/snowflake/default.nix
+++ b/nixpkgs/pkgs/tools/networking/snowflake/default.nix
@@ -19,7 +19,7 @@ buildGoModule rec {
     description = "System to defeat internet censorship";
     homepage = "https://snowflake.torproject.org/";
     changelog = "https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake/-/raw/v${version}/ChangeLog";
-    maintainers = with maintainers; [ lourkeur yayayayaka ];
+    maintainers = with maintainers; [ bbjubjub yayayayaka ];
     license = licenses.bsd3;
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/sockperf/default.nix b/nixpkgs/pkgs/tools/networking/sockperf/default.nix
index 8f7bcc65d1ca..ed071322f2f8 100644
--- a/nixpkgs/pkgs/tools/networking/sockperf/default.nix
+++ b/nixpkgs/pkgs/tools/networking/sockperf/default.nix
@@ -28,5 +28,6 @@ stdenv.mkDerivation rec {
     license = licenses.bsd3;
     maintainers = with maintainers; [ emilytrau ];
     platforms = platforms.all;
+    mainProgram = "sockperf";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/speedtest-go/default.nix b/nixpkgs/pkgs/tools/networking/speedtest-go/default.nix
index 39c92fcb40d1..9570442345ec 100644
--- a/nixpkgs/pkgs/tools/networking/speedtest-go/default.nix
+++ b/nixpkgs/pkgs/tools/networking/speedtest-go/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     changelog = "https://github.com/showwin/speedtest-go/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ aleksana ];
+    mainProgram = "speedtest-go";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/speedtest-rs/default.nix b/nixpkgs/pkgs/tools/networking/speedtest-rs/default.nix
index 182f041d2977..22f4fba0c01a 100644
--- a/nixpkgs/pkgs/tools/networking/speedtest-rs/default.nix
+++ b/nixpkgs/pkgs/tools/networking/speedtest-rs/default.nix
@@ -9,21 +9,24 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "speedtest-rs";
-  version = "0.1.4";
+  version = "0.1.5";
 
   src = fetchFromGitHub {
     owner = "nelsonjchen";
     repo = pname;
     rev = "refs/tags/v${version}";
-    hash = "sha256-/d6A+Arlcc3SCKPSkYXwvqY2BRyAbA33Ah+GddHcc5M=";
+    hash = "sha256-JKthXrosqDZh6CWEqT08h3ySPZulitDol7lX3Eo7orM=";
   };
 
   buildInputs = [ openssl ] ++
-    lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.Security ];
+    lib.optionals stdenv.isDarwin [
+      darwin.apple_sdk.frameworks.Security
+      darwin.apple_sdk.frameworks.SystemConfiguration
+    ];
 
   nativeBuildInputs = [ pkg-config ];
 
-  cargoSha256 = "sha256-4TJEM+oMjx/aaZgY2Y679pYFTdEWWFpWDYrK/o2b5UM=";
+  cargoHash = "sha256-kUXHC/qXgukaUqaBykXB2ZWmfQEjzJuIyemr1ogVX1U=";
 
   meta = with lib; {
     description = "Command line internet speedtest tool written in rust";
@@ -31,5 +34,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/nelsonjchen/speedtest-rs/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit asl20 ];
     maintainers = with maintainers; [ GaetanLepage ];
+    mainProgram = "speedtest-rs";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/spoofer/default.nix b/nixpkgs/pkgs/tools/networking/spoofer/default.nix
index 905a28b1b3d0..bf969ae5d1f5 100644
--- a/nixpkgs/pkgs/tools/networking/spoofer/default.nix
+++ b/nixpkgs/pkgs/tools/networking/spoofer/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     license = licenses.gpl3Plus;
     maintainers = with lib.maintainers; [ leenaars];
+    mainProgram = "spoofer-prober";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/srelay/default.nix b/nixpkgs/pkgs/tools/networking/srelay/default.nix
index a609328220f3..784aca8fe431 100644
--- a/nixpkgs/pkgs/tools/networking/srelay/default.nix
+++ b/nixpkgs/pkgs/tools/networking/srelay/default.nix
@@ -22,5 +22,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.bsd3;
     # never built on aarch64-linux since first introduction in nixpkgs
     broken = stdenv.isLinux && stdenv.isAarch64;
+    mainProgram = "srelay";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/ssh-agents/default.nix b/nixpkgs/pkgs/tools/networking/ssh-agents/default.nix
index a4e930281a50..f9414d9835d3 100644
--- a/nixpkgs/pkgs/tools/networking/ssh-agents/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ssh-agents/default.nix
@@ -39,5 +39,6 @@ stdenvNoCC.mkDerivation rec {
     license = licenses.mit;
     maintainers = with maintainers; [ kalbasit ];
     platforms = platforms.unix;
+    mainProgram = "ssh-agents";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/ssh-ident/default.nix b/nixpkgs/pkgs/tools/networking/ssh-ident/default.nix
index 1822eda26278..3886828c5221 100644
--- a/nixpkgs/pkgs/tools/networking/ssh-ident/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ssh-ident/default.nix
@@ -27,5 +27,6 @@ stdenvNoCC.mkDerivation {
     license = licenses.bsd2;
     maintainers = with maintainers; [ telotortium ];
     platforms = with platforms; unix;
+    mainProgram = "ssh-ident";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/ssh-key-confirmer/default.nix b/nixpkgs/pkgs/tools/networking/ssh-key-confirmer/default.nix
index ed8b9cac734b..408719f74653 100644
--- a/nixpkgs/pkgs/tools/networking/ssh-key-confirmer/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ssh-key-confirmer/default.nix
@@ -20,5 +20,6 @@ buildGoModule rec {
     homepage = "https://github.com/benjojo/ssh-key-confirmer";
     license = licenses.mit;
     maintainers = with maintainers; [ oxzi ];
+    mainProgram = "ssh-key-confirmer";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/sshed/default.nix b/nixpkgs/pkgs/tools/networking/sshed/default.nix
index cedb7bf0bc68..ac221f49ed2b 100644
--- a/nixpkgs/pkgs/tools/networking/sshed/default.nix
+++ b/nixpkgs/pkgs/tools/networking/sshed/default.nix
@@ -25,5 +25,6 @@ buildGoModule rec {
     homepage = "https://github.com/trntv/sshed";
     license = licenses.asl20;
     maintainers = with maintainers; [ ocfox ];
+    mainProgram = "sshed";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/sshpass/default.nix b/nixpkgs/pkgs/tools/networking/sshpass/default.nix
index a3948aed08f4..6818fe33a94d 100644
--- a/nixpkgs/pkgs/tools/networking/sshpass/default.nix
+++ b/nixpkgs/pkgs/tools/networking/sshpass/default.nix
@@ -15,5 +15,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = [ maintainers.madjar ];
     platforms = platforms.unix;
+    mainProgram = "sshpass";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/sshping/default.nix b/nixpkgs/pkgs/tools/networking/sshping/default.nix
index 13abba539ac5..608c8125f0d2 100644
--- a/nixpkgs/pkgs/tools/networking/sshping/default.nix
+++ b/nixpkgs/pkgs/tools/networking/sshping/default.nix
@@ -27,5 +27,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.unix;
     maintainers = with maintainers; [ jqueiroz ];
+    mainProgram = "sshping";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/ssldump/default.nix b/nixpkgs/pkgs/tools/networking/ssldump/default.nix
index 478d2785ad3f..a855315a565c 100644
--- a/nixpkgs/pkgs/tools/networking/ssldump/default.nix
+++ b/nixpkgs/pkgs/tools/networking/ssldump/default.nix
@@ -48,5 +48,6 @@ stdenv.mkDerivation rec {
     license = "BSD-style";
     maintainers = with maintainers; [ aycanirican ];
     platforms = platforms.unix;
+    mainProgram = "ssldump";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/sslsplit/default.nix b/nixpkgs/pkgs/tools/networking/sslsplit/default.nix
index 6712d44569c4..ca8a96d3321f 100644
--- a/nixpkgs/pkgs/tools/networking/sslsplit/default.nix
+++ b/nixpkgs/pkgs/tools/networking/sslsplit/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.all;
     maintainers = with maintainers; [ contrun ];
     license = with licenses; [ bsd2 mit unlicense free ];
+    mainProgram = "sslsplit";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/sstp/default.nix b/nixpkgs/pkgs/tools/networking/sstp/default.nix
index b93d6cbd9cfb..72745114a26e 100644
--- a/nixpkgs/pkgs/tools/networking/sstp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/sstp/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
     license = licenses.gpl2Plus;
+    mainProgram = "sstpc";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/stun/default.nix b/nixpkgs/pkgs/tools/networking/stun/default.nix
index c74c73ec6a0e..de4787eca63a 100644
--- a/nixpkgs/pkgs/tools/networking/stun/default.nix
+++ b/nixpkgs/pkgs/tools/networking/stun/default.nix
@@ -37,5 +37,6 @@ stdenv.mkDerivation rec {
     license     = licenses.vsl10;
     maintainers = with maintainers; [ marcweber obadz ];
     platforms   = platforms.linux;
+    mainProgram = "stun";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/stunnel/default.nix b/nixpkgs/pkgs/tools/networking/stunnel/default.nix
index cf23252b2e96..219b72854616 100644
--- a/nixpkgs/pkgs/tools/networking/stunnel/default.nix
+++ b/nixpkgs/pkgs/tools/networking/stunnel/default.nix
@@ -56,5 +56,6 @@ stdenv.mkDerivation (finalAttrs: {
     license = lib.licenses.gpl2Plus;
     maintainers = [ lib.maintainers.thoughtpolice ];
     platforms = lib.platforms.unix;
+    mainProgram = "stunnel";
   };
 })
diff --git a/nixpkgs/pkgs/tools/networking/subfinder/default.nix b/nixpkgs/pkgs/tools/networking/subfinder/default.nix
index 73fe59095a0c..3cc7c51199de 100644
--- a/nixpkgs/pkgs/tools/networking/subfinder/default.nix
+++ b/nixpkgs/pkgs/tools/networking/subfinder/default.nix
@@ -32,5 +32,6 @@ buildGoModule rec {
     homepage = "https://github.com/projectdiscovery/subfinder";
     license = licenses.mit;
     maintainers = with maintainers; [ fpletz Br1ght0ne Misaka13514 ];
+    mainProgram = "subfinder";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/suckit/default.nix b/nixpkgs/pkgs/tools/networking/suckit/default.nix
index c6f18b26b8c4..3bd9f825469a 100644
--- a/nixpkgs/pkgs/tools/networking/suckit/default.nix
+++ b/nixpkgs/pkgs/tools/networking/suckit/default.nix
@@ -35,5 +35,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/skallwar/suckit";
     license = with licenses; [ asl20 /* or */ mit ];
     maintainers = with maintainers; [ figsoda ];
+    mainProgram = "suckit";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/swagger-cli/default.nix b/nixpkgs/pkgs/tools/networking/swagger-cli/default.nix
index 5a20ce93cc7c..8658ad45520a 100644
--- a/nixpkgs/pkgs/tools/networking/swagger-cli/default.nix
+++ b/nixpkgs/pkgs/tools/networking/swagger-cli/default.nix
@@ -25,5 +25,6 @@ buildNpmPackage rec {
     homepage = "https://apitools.dev/swagger-cli/";
     license = licenses.mit;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "swagger-cli";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/swagger-codegen/default.nix b/nixpkgs/pkgs/tools/networking/swagger-codegen/default.nix
index 27ea4ff2d517..15e125f64fb9 100644
--- a/nixpkgs/pkgs/tools/networking/swagger-codegen/default.nix
+++ b/nixpkgs/pkgs/tools/networking/swagger-codegen/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     sourceProvenance = with sourceTypes; [ binaryBytecode ];
     license = licenses.asl20;
     maintainers = [ maintainers.jraygauthier ];
+    mainProgram = "swagger-codegen";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/swagger-codegen3/default.nix b/nixpkgs/pkgs/tools/networking/swagger-codegen3/default.nix
index ef538cd68f63..da511769a8e0 100644
--- a/nixpkgs/pkgs/tools/networking/swagger-codegen3/default.nix
+++ b/nixpkgs/pkgs/tools/networking/swagger-codegen3/default.nix
@@ -1,7 +1,7 @@
 { lib, stdenv, fetchurl, jre, makeWrapper, testers, swagger-codegen3 }:
 
 stdenv.mkDerivation rec {
-  version = "3.0.52";
+  version = "3.0.53";
   pname = "swagger-codegen";
 
   jarfilename = "${pname}-cli-${version}.jar";
@@ -12,7 +12,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://maven/io/swagger/codegen/v3/${pname}-cli/${version}/${jarfilename}";
-    sha256 = "sha256-bBiETNzgySrOSFUB6356jiwDhwQ34QrOf2KdP5lv3Yg=";
+    sha256 = "sha256-o6z4yL0PadbVRx2YGEyPHAVpF82vandxPfQeKcQaLok=";
   };
 
   dontUnpack = true;
diff --git a/nixpkgs/pkgs/tools/networking/tayga/default.nix b/nixpkgs/pkgs/tools/networking/tayga/default.nix
index 382b010515e8..1fa1d8dd5610 100644
--- a/nixpkgs/pkgs/tools/networking/tayga/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tayga/default.nix
@@ -24,5 +24,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ _0x4A6F ];
     platforms = platforms.linux;
+    mainProgram = "tayga";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/tcp-cutter/default.nix b/nixpkgs/pkgs/tools/networking/tcp-cutter/default.nix
index ade825dbe103..71075cc5dd1c 100644
--- a/nixpkgs/pkgs/tools/networking/tcp-cutter/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tcp-cutter/default.nix
@@ -19,5 +19,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     platforms = platforms.linux;
     maintainers = [ maintainers.offline ];
+    mainProgram = "tcp-cutter";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/tcpflow/default.nix b/nixpkgs/pkgs/tools/networking/tcpflow/default.nix
index 46fda2295943..73de0acef4e6 100644
--- a/nixpkgs/pkgs/tools/networking/tcpflow/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tcpflow/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     license     = licenses.gpl3;
     maintainers = with maintainers; [ raskin obadz ];
     platforms   = platforms.unix;
+    mainProgram = "tcpflow";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/tcptraceroute/default.nix b/nixpkgs/pkgs/tools/networking/tcptraceroute/default.nix
index 379caedaaf1b..cc5594afd5a5 100644
--- a/nixpkgs/pkgs/tools/networking/tcptraceroute/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tcptraceroute/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     homepage = "https://github.com/mct/tcptraceroute";
     license = lib.licenses.gpl2;
     maintainers = [ ];
+    mainProgram = "tcptraceroute";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/telepresence2/default.nix b/nixpkgs/pkgs/tools/networking/telepresence2/default.nix
index 49f44f52bc5f..35629c261f1e 100644
--- a/nixpkgs/pkgs/tools/networking/telepresence2/default.nix
+++ b/nixpkgs/pkgs/tools/networking/telepresence2/default.nix
@@ -27,13 +27,13 @@ let
 in
 buildGoModule rec {
   pname = "telepresence2";
-  version = "2.17.0";
+  version = "2.18.0";
 
   src = fetchFromGitHub {
     owner = "telepresenceio";
     repo = "telepresence";
     rev = "v${version}";
-    hash = "sha256-wmoOBoMjPCNJGg86Cl2V4izZQDiZjNzwErvWMYY1MGk=";
+    hash = "sha256-zk6HyZfYeJecJgdMU3qnXIKDYuvnu5yjSZtVvKem4uI=";
   };
 
   propagatedBuildInputs = [
@@ -47,7 +47,7 @@ buildGoModule rec {
     export CGO_ENABLED=0
   '';
 
-  vendorHash = "sha256-rTlMd56iBSBLTRYJlKHWmYyyeBtNk2WQ3hrPJl9dMYI=";
+  vendorHash = "sha256-wvzrnwzkV4SXsiZfIrowMF0G7qFdjEVrF77vM81rxLs=";
 
   ldflags = [
     "-s" "-w" "-X=github.com/telepresenceio/telepresence/v2/pkg/version.Version=${src.rev}"
diff --git a/nixpkgs/pkgs/tools/networking/tendermint/default.nix b/nixpkgs/pkgs/tools/networking/tendermint/default.nix
index a861ab0b0ed9..858a306e95bb 100644
--- a/nixpkgs/pkgs/tools/networking/tendermint/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tendermint/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ alexfmpe ];
     platforms = platforms.linux ++ platforms.darwin;
+    mainProgram = "tendermint";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/termscp/default.nix b/nixpkgs/pkgs/tools/networking/termscp/default.nix
index e7fef14cec59..101a38e4f5dd 100644
--- a/nixpkgs/pkgs/tools/networking/termscp/default.nix
+++ b/nixpkgs/pkgs/tools/networking/termscp/default.nix
@@ -60,5 +60,6 @@ rustPlatform.buildRustPackage rec {
     changelog = "https://github.com/veeso/termscp/blob/v${version}/CHANGELOG.md";
     license = with licenses; [ mit ];
     maintainers = with maintainers; [ fab ];
+    mainProgram = "termscp";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/tinyfecvpn/default.nix b/nixpkgs/pkgs/tools/networking/tinyfecvpn/default.nix
index 71e5dea12be6..8e609a886b30 100644
--- a/nixpkgs/pkgs/tools/networking/tinyfecvpn/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tinyfecvpn/default.nix
@@ -33,5 +33,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     platforms = platforms.linux;
     maintainers = with maintainers; [ ];
+    mainProgram = "tinyvpn";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/tox-node/default.nix b/nixpkgs/pkgs/tools/networking/tox-node/default.nix
index 4056321c9345..10a823f28736 100644
--- a/nixpkgs/pkgs/tools/networking/tox-node/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tox-node/default.nix
@@ -23,5 +23,6 @@ rustPlatform.buildRustPackage rec {
     license = [ licenses.gpl3Plus ];
     platforms = platforms.linux;
     maintainers = with maintainers; [ suhr kurnevsky ];
+    mainProgram = "tox-node";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/traceroute/default.nix b/nixpkgs/pkgs/tools/networking/traceroute/default.nix
index 90e53b184a56..e0c7fd61a75a 100644
--- a/nixpkgs/pkgs/tools/networking/traceroute/default.nix
+++ b/nixpkgs/pkgs/tools/networking/traceroute/default.nix
@@ -29,5 +29,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2Plus;
     maintainers = with maintainers; [ koral ];
     platforms = platforms.linux;
+    mainProgram = "traceroute";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/tran/default.nix b/nixpkgs/pkgs/tools/networking/tran/default.nix
index 3a9a78a55e97..767211a7e532 100644
--- a/nixpkgs/pkgs/tools/networking/tran/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tran/default.nix
@@ -29,5 +29,6 @@ buildGoModule rec {
     homepage = "https://github.com/abdfnx/tran";
     license = licenses.mit;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "tran";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/transmission-rss/default.nix b/nixpkgs/pkgs/tools/networking/transmission-rss/default.nix
index 095ccfb91a5a..19df133e4028 100644
--- a/nixpkgs/pkgs/tools/networking/transmission-rss/default.nix
+++ b/nixpkgs/pkgs/tools/networking/transmission-rss/default.nix
@@ -25,5 +25,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/herlon214/transmission-rss";
     maintainers = with maintainers; [ icewind1991 ];
     license = licenses.mit;
+    mainProgram = "transmission-rss";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/trurl/default.nix b/nixpkgs/pkgs/tools/networking/trurl/default.nix
index 50b70e3f574b..b709c2a2b105 100644
--- a/nixpkgs/pkgs/tools/networking/trurl/default.nix
+++ b/nixpkgs/pkgs/tools/networking/trurl/default.nix
@@ -42,5 +42,6 @@ stdenv.mkDerivation rec {
     license = licenses.curl;
     maintainers = with maintainers; [ christoph-heiss ];
     platforms = platforms.all;
+    mainProgram = "trurl";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/tun2socks/default.nix b/nixpkgs/pkgs/tools/networking/tun2socks/default.nix
index 37019a38b348..dc7cdd243fec 100644
--- a/nixpkgs/pkgs/tools/networking/tun2socks/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tun2socks/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     description = "tun2socks - powered by gVisor TCP/IP stack";
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ nickcao ];
+    mainProgram = "tun2socks";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/tunwg/default.nix b/nixpkgs/pkgs/tools/networking/tunwg/default.nix
index dfcbbff907b7..1b36709baa48 100644
--- a/nixpkgs/pkgs/tools/networking/tunwg/default.nix
+++ b/nixpkgs/pkgs/tools/networking/tunwg/default.nix
@@ -23,5 +23,6 @@ buildGoModule rec {
     homepage = "https://github.com/ntnj/tunwg";
     license = licenses.mit;
     maintainers = with maintainers; [ dit7ya ];
+    mainProgram = "tunwg";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/udpreplay/default.nix b/nixpkgs/pkgs/tools/networking/udpreplay/default.nix
index 73bbe7933499..53147a9fe7a4 100644
--- a/nixpkgs/pkgs/tools/networking/udpreplay/default.nix
+++ b/nixpkgs/pkgs/tools/networking/udpreplay/default.nix
@@ -20,5 +20,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.considerate ];
     platforms = platforms.linux;
+    mainProgram = "udpreplay";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/udptunnel/default.nix b/nixpkgs/pkgs/tools/networking/udptunnel/default.nix
index 362f6fbbc2cf..396d105ca287 100644
--- a/nixpkgs/pkgs/tools/networking/udptunnel/default.nix
+++ b/nixpkgs/pkgs/tools/networking/udptunnel/default.nix
@@ -21,5 +21,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl3Plus;
     maintainers = with lib.maintainers; [viric];
     platforms = with lib.platforms; linux;
+    mainProgram = "udptunnel";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/uqmi/default.nix b/nixpkgs/pkgs/tools/networking/uqmi/default.nix
index 83500191b71e..6fd830435aa1 100644
--- a/nixpkgs/pkgs/tools/networking/uqmi/default.nix
+++ b/nixpkgs/pkgs/tools/networking/uqmi/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation {
     license = licenses.gpl2Plus;
     platforms = platforms.all;
     maintainers = with maintainers; [ fpletz mkg20001 ];
+    mainProgram = "uqmi";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/vegeta/default.nix b/nixpkgs/pkgs/tools/networking/vegeta/default.nix
index caa420cbfa7a..a7b71272e9a2 100644
--- a/nixpkgs/pkgs/tools/networking/vegeta/default.nix
+++ b/nixpkgs/pkgs/tools/networking/vegeta/default.nix
@@ -36,5 +36,6 @@ buildGoModule rec {
     changelog = "https://github.com/tsenart/vegeta/releases/tag/${src.rev}";
     license = licenses.mit;
     maintainers = with maintainers; [ mmahut ];
+    mainProgram = "vegeta";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/vlan/default.nix b/nixpkgs/pkgs/tools/networking/vlan/default.nix
index aff4ebd09f37..d93c61bda547 100644
--- a/nixpkgs/pkgs/tools/networking/vlan/default.nix
+++ b/nixpkgs/pkgs/tools/networking/vlan/default.nix
@@ -30,5 +30,6 @@ stdenv.mkDerivation rec {
     description = "User mode programs to enable VLANs on Ethernet devices";
     platforms = platforms.linux;
     license = licenses.gpl2Plus;
+    mainProgram = "vconfig";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/vopono/default.nix b/nixpkgs/pkgs/tools/networking/vopono/default.nix
index b8dbed5a02fa..f540d59d9a01 100644
--- a/nixpkgs/pkgs/tools/networking/vopono/default.nix
+++ b/nixpkgs/pkgs/tools/networking/vopono/default.nix
@@ -20,5 +20,6 @@ rustPlatform.buildRustPackage rec {
     license = licenses.gpl3Plus;
     platforms = platforms.linux;
     maintainers = [ maintainers.romildo ];
+    mainProgram = "vopono";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/wakelan/default.nix b/nixpkgs/pkgs/tools/networking/wakelan/default.nix
index 3416b33281d3..2b18d5fd60ae 100644
--- a/nixpkgs/pkgs/tools/networking/wakelan/default.nix
+++ b/nixpkgs/pkgs/tools/networking/wakelan/default.nix
@@ -26,5 +26,6 @@ stdenv.mkDerivation rec {
     license = lib.licenses.gpl2Plus;
     maintainers = [ lib.maintainers.viric ];
     platforms = lib.platforms.unix;
+    mainProgram = "wakelan";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/wakeonlan/default.nix b/nixpkgs/pkgs/tools/networking/wakeonlan/default.nix
index b15aadcb3ee3..4a9f0936f940 100644
--- a/nixpkgs/pkgs/tools/networking/wakeonlan/default.nix
+++ b/nixpkgs/pkgs/tools/networking/wakeonlan/default.nix
@@ -33,5 +33,6 @@ perlPackages.buildPerlPackage rec {
     homepage = "https://github.com/jpoliv/wakeonlan";
     license = licenses.artistic1;
     maintainers = with maintainers; [ SuperSandro2000 ];
+    mainProgram = "wakeonlan";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/wavemon/default.nix b/nixpkgs/pkgs/tools/networking/wavemon/default.nix
index 8db0ed674b4f..259996d93540 100644
--- a/nixpkgs/pkgs/tools/networking/wavemon/default.nix
+++ b/nixpkgs/pkgs/tools/networking/wavemon/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl3Plus;
     maintainers = with maintainers; [ raskin fpletz ];
     platforms = platforms.linux;
+    mainProgram = "wavemon";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/wbox/default.nix b/nixpkgs/pkgs/tools/networking/wbox/default.nix
index 3a5fce6808f8..16f0883cd1d9 100644
--- a/nixpkgs/pkgs/tools/networking/wbox/default.nix
+++ b/nixpkgs/pkgs/tools/networking/wbox/default.nix
@@ -18,5 +18,6 @@ stdenv.mkDerivation rec {
     homepage = "http://www.hping.org/wbox/";
     license = lib.licenses.bsd3;
     platforms = lib.platforms.unix;
+    mainProgram = "wbox";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/wg-netmanager/default.nix b/nixpkgs/pkgs/tools/networking/wg-netmanager/default.nix
index 2f74cd86e736..ed8681315365 100644
--- a/nixpkgs/pkgs/tools/networking/wg-netmanager/default.nix
+++ b/nixpkgs/pkgs/tools/networking/wg-netmanager/default.nix
@@ -31,5 +31,6 @@ rustPlatform.buildRustPackage rec {
     license = with licenses; [ mit asl20 bsd3 mpl20 ];
     maintainers = with maintainers; [ gin66 ];
     platforms = platforms.linux;
+    mainProgram = "wg_netmanager";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/wget2/default.nix b/nixpkgs/pkgs/tools/networking/wget2/default.nix
index 27d1a659029b..017e6303ab2c 100644
--- a/nixpkgs/pkgs/tools/networking/wget2/default.nix
+++ b/nixpkgs/pkgs/tools/networking/wget2/default.nix
@@ -102,5 +102,6 @@ stdenv.mkDerivation rec {
     # wget2 GPLv3+; libwget LGPLv3+
     license = with licenses; [ gpl3Plus lgpl3Plus ];
     maintainers = with maintainers; [ SuperSandro2000 ];
+    mainProgram = "wget2";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/whois/default.nix b/nixpkgs/pkgs/tools/networking/whois/default.nix
index 992303ec6072..1fd5cb97383e 100644
--- a/nixpkgs/pkgs/tools/networking/whois/default.nix
+++ b/nixpkgs/pkgs/tools/networking/whois/default.nix
@@ -46,5 +46,6 @@ stdenv.mkDerivation rec {
     license = licenses.gpl2;
     maintainers = with maintainers; [ fpletz ];
     platforms = platforms.unix;
+    mainProgram = "whois";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/wireguard-go/default.nix b/nixpkgs/pkgs/tools/networking/wireguard-go/default.nix
index 0812726ab0e8..867de41d4816 100644
--- a/nixpkgs/pkgs/tools/networking/wireguard-go/default.nix
+++ b/nixpkgs/pkgs/tools/networking/wireguard-go/default.nix
@@ -34,5 +34,6 @@ buildGoModule rec {
     homepage = "https://git.zx2c4.com/wireguard-go/about/";
     license = licenses.mit;
     maintainers = with maintainers; [ kirelagin yana zx2c4 ];
+    mainProgram = "wireguard-go";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/wireguard-vanity-address/default.nix b/nixpkgs/pkgs/tools/networking/wireguard-vanity-address/default.nix
index 74975e52b633..cc7ebc557faf 100644
--- a/nixpkgs/pkgs/tools/networking/wireguard-vanity-address/default.nix
+++ b/nixpkgs/pkgs/tools/networking/wireguard-vanity-address/default.nix
@@ -20,5 +20,6 @@ rustPlatform.buildRustPackage rec {
     homepage = "https://github.com/warner/wireguard-vanity-address";
     license = licenses.mit;
     maintainers = with maintainers; [ bcc32 ];
+    mainProgram = "wireguard-vanity-address";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/wireproxy/default.nix b/nixpkgs/pkgs/tools/networking/wireproxy/default.nix
index 7a12e477c050..1ce31211f5b5 100644
--- a/nixpkgs/pkgs/tools/networking/wireproxy/default.nix
+++ b/nixpkgs/pkgs/tools/networking/wireproxy/default.nix
@@ -1,19 +1,19 @@
 { lib
-, buildGo120Module
+, buildGoModule
 , fetchFromGitHub
 , testers
 , wireproxy
 }:
 
-buildGo120Module rec {
+buildGoModule rec {
   pname = "wireproxy";
-  version = "1.0.6";
+  version = "1.0.7";
 
   src = fetchFromGitHub {
     owner = "pufferffish";
     repo = "wireproxy";
     rev = "v${version}";
-    hash = "sha256-Sy8jApnU3dpsXi5vWyEY6D250xpG73aByNZ/pSg90l0=";
+    hash = "sha256-lMTlocKtOg82dH8XU+bIgPhico3mueLAuTspAY88GFI=";
   };
 
   ldflags = [
@@ -22,7 +22,7 @@ buildGo120Module rec {
     "-X main.version=v${version}"
   ];
 
-  vendorHash = "sha256-LBLEb2oVi5ILNtoOtmJZ7NC7hMvLZcexYAxwmb4iUBo=";
+  vendorHash = "sha256-V9W7Z8vgPdudNivfmGzJe1f6ebrZEqlG4AdIf2NNGrY=";
 
   passthru.tests.version = testers.testVersion {
     package = wireproxy;
@@ -35,5 +35,6 @@ buildGo120Module rec {
     homepage = "https://github.com/octeep/wireproxy";
     license = licenses.isc;
     maintainers = with maintainers; [ _3JlOy-PYCCKUi ];
+    mainProgram = "wireproxy";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/wormhole-william/default.nix b/nixpkgs/pkgs/tools/networking/wormhole-william/default.nix
index af439b741305..e08c0e51a58a 100644
--- a/nixpkgs/pkgs/tools/networking/wormhole-william/default.nix
+++ b/nixpkgs/pkgs/tools/networking/wormhole-william/default.nix
@@ -26,5 +26,6 @@ buildGoModule rec {
     changelog = "https://github.com/psanford/wormhole-william/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ psanford ];
+    mainProgram = "wormhole-william";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/wrk/default.nix b/nixpkgs/pkgs/tools/networking/wrk/default.nix
index 20efd6f0182a..082497ad7d28 100644
--- a/nixpkgs/pkgs/tools/networking/wrk/default.nix
+++ b/nixpkgs/pkgs/tools/networking/wrk/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
     maintainers = with maintainers; [ ragge ];
     platforms = platforms.unix;
+    mainProgram = "wrk";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/wrk2/default.nix b/nixpkgs/pkgs/tools/networking/wrk2/default.nix
index 62d4cd5dd678..6d2988705129 100644
--- a/nixpkgs/pkgs/tools/networking/wrk2/default.nix
+++ b/nixpkgs/pkgs/tools/networking/wrk2/default.nix
@@ -40,5 +40,6 @@ stdenv.mkDerivation rec {
     maintainers = with lib.maintainers; [ thoughtpolice ];
     # never built on aarch64-linux since first introduction in nixpkgs
     broken = stdenv.isLinux && stdenv.isAarch64;
+    mainProgram = "wrk2";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/wsl-vpnkit/default.nix b/nixpkgs/pkgs/tools/networking/wsl-vpnkit/default.nix
index 39152cbab205..b9b25747a50f 100644
--- a/nixpkgs/pkgs/tools/networking/wsl-vpnkit/default.nix
+++ b/nixpkgs/pkgs/tools/networking/wsl-vpnkit/default.nix
@@ -80,5 +80,6 @@ resholve.mkDerivation {
     changelog = "https://github.com/sakai135/wsl-vpnkit/releases/tag/v${version}";
     license = licenses.mit;
     maintainers = with maintainers; [ terlar ];
+    mainProgram = "wsl-vpnkit";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/wuzz/default.nix b/nixpkgs/pkgs/tools/networking/wuzz/default.nix
index 6f1a5eeccae7..0ee71eb1e651 100644
--- a/nixpkgs/pkgs/tools/networking/wuzz/default.nix
+++ b/nixpkgs/pkgs/tools/networking/wuzz/default.nix
@@ -27,5 +27,6 @@ buildGoModule rec {
     description = "Interactive cli tool for HTTP inspection";
     license = licenses.agpl3;
     maintainers = with maintainers; [ pradeepchhetri ];
+    mainProgram = "wuzz";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/xrootd/default.nix b/nixpkgs/pkgs/tools/networking/xrootd/default.nix
index e32139fdfceb..1ceb6380aaa1 100644
--- a/nixpkgs/pkgs/tools/networking/xrootd/default.nix
+++ b/nixpkgs/pkgs/tools/networking/xrootd/default.nix
@@ -2,8 +2,10 @@
 , stdenv
 , callPackage
 , fetchFromGitHub
+, davix
 , cmake
 , cppunit
+, gtest
 , makeWrapper
 , pkg-config
 , curl
@@ -14,6 +16,7 @@
 , libxml2
 , openssl
 , readline
+, scitokens-cpp
 , systemd
 , voms
 , zlib
@@ -22,21 +25,19 @@
   # If not null, the builder will
   # move "$out/etc" to "$out/etc.orig" and symlink "$out/etc" to externalEtc.
 , externalEtc ? "/etc"
+, removeReferencesTo
 }:
 
 stdenv.mkDerivation (finalAttrs: {
-
-  __structuredAttrs = true;
-
   pname = "xrootd";
-  version = "5.5.5";
+  version = "5.6.6";
 
   src = fetchFromGitHub {
     owner = "xrootd";
     repo = "xrootd";
     rev = "v${finalAttrs.version}";
     fetchSubmodules = true;
-    hash = "sha256-SLmxv8opN7z4V07S9kLGo8HG7Ql62iZQLtf3zGemwA8=";
+    hash = "sha256-vSZKTsDMY5bhfniFOQ11VA30gjfb4Y8tCC7JNjNw8Y0=";
   };
 
   outputs = [ "bin" "out" "dev" "man" ]
@@ -62,9 +63,11 @@ stdenv.mkDerivation (finalAttrs: {
     cmake
     makeWrapper
     pkg-config
+    removeReferencesTo
   ];
 
   buildInputs = [
+    davix
     curl
     libkrb5
     libuuid
@@ -72,7 +75,11 @@ stdenv.mkDerivation (finalAttrs: {
     libxml2
     openssl
     readline
+    scitokens-cpp
     zlib
+  ]
+  ++ lib.optionals (!stdenv.isDarwin) [
+    # https://github.com/xrootd/xrootd/blob/5b5a1f6957def2816b77ec773c7e1bfb3f1cfc5b/cmake/XRootDFindLibs.cmake#L58
     fuse
   ]
   ++ lib.optionals stdenv.isLinux [
@@ -80,11 +87,16 @@ stdenv.mkDerivation (finalAttrs: {
     voms
   ]
   ++ lib.optionals enableTestRunner [
+    gtest
     cppunit
   ];
 
   preConfigure = ''
     patchShebangs genversion.sh
+    substituteInPlace cmake/XRootDConfig.cmake.in \
+      --replace-fail "@PACKAGE_CMAKE_INSTALL_" "@CMAKE_INSTALL_FULL_"
+  '' + lib.optionalString stdenv.isDarwin ''
+    sed -i cmake/XRootDOSDefs.cmake -e '/set( MacOSX TRUE )/ainclude( GNUInstallDirs )'
   '';
 
   # https://github.com/xrootd/xrootd/blob/master/packaging/rhel/xrootd.spec.in#L665-L675=
@@ -98,31 +110,38 @@ stdenv.mkDerivation (finalAttrs: {
     install -m 644 -t "$out/etc/xrootd/client.plugins.d" ../packaging/common/client-plugin.conf.example
     mkdir -p "$out/etc/logrotate.d"
     install -m 644 -T ../packaging/common/xrootd.logrotate "$out/etc/logrotate.d/xrootd"
+  ''
+  # Leaving those in bin/ leads to a cyclic reference between $dev and $bin
+  # This happens since https://github.com/xrootd/xrootd/commit/fe268eb622e2192d54a4230cea54c41660bd5788
+  # So far, this xrootd-config script does not seem necessary in $bin
+  + ''
+    moveToOutput "bin/xrootd-config" "$dev"
+    moveToOutput "bin/.xrootd-config-wrapped" "$dev"
   '' + lib.optionalString stdenv.isLinux ''
     mkdir -p "$out/lib/systemd/system"
     install -m 644 -t "$out/lib/systemd/system" ../packaging/common/*.service ../packaging/common/*.socket
   '';
 
-  cmakeFlags = lib.optionals enableTestRunner [
+  cmakeFlags = [
+    "-DXRootD_VERSION_STRING=${finalAttrs.version}"
+  ] ++ lib.optionals enableTestRunner [
+    "-DFORCE_ENABLED=TRUE"
+    "-DENABLE_DAVIX=TRUE"
+    "-DENABLE_FUSE=${if (!stdenv.isDarwin) then "TRUE" else "FALSE"}" # not supported
+    "-DENABLE_MACAROONS=OFF"
+    "-DENABLE_PYTHON=FALSE" # built separately
+    "-DENABLE_SCITOKENS=TRUE"
     "-DENABLE_TESTS=TRUE"
+    "-DENABLE_VOMS=${if stdenv.isLinux then "TRUE" else "FALSE"}"
   ];
 
-  makeWrapperArgs = [
-    # Workaround the library-not-found issue
-    # happening to binaries compiled with xrootd libraries.
-    # See #169677
-    "--prefix" "${lib.optionalString stdenv.hostPlatform.isDarwin "DY"}LD_LIBRARY_PATH" ":" "${placeholder "out"}/lib"
-  ];
-
-  postFixup = ''
-    while IFS= read -r FILE; do
-      wrapProgram "$FILE" "''${makeWrapperArgs[@]}"
-    done < <(find "$bin/bin" -mindepth 1 -maxdepth 1 -type f,l -perm -a+x)
-  '' + lib.optionalString (externalEtc != null) ''
+  postFixup = lib.optionalString (externalEtc != null) ''
     moveToOutput etc "$etc"
     ln -s ${lib.escapeShellArg externalEtc} "$out/etc"
   '';
 
+  dontPatchELF = true; # shrinking rpath will cause runtime failures in dlopen
+
   meta = with lib; {
     description = "High performance, scalable fault tolerant data access";
     homepage = "https://xrootd.slac.stanford.edu";
diff --git a/nixpkgs/pkgs/tools/networking/zap/default.nix b/nixpkgs/pkgs/tools/networking/zap/default.nix
index f763c609aae8..9bb63cf37e7c 100644
--- a/nixpkgs/pkgs/tools/networking/zap/default.nix
+++ b/nixpkgs/pkgs/tools/networking/zap/default.nix
@@ -41,5 +41,6 @@ stdenv.mkDerivation rec {
     maintainers = with maintainers; [ mog rafael ];
     platforms = platforms.linux;
     license = licenses.asl20;
+    mainProgram = "zap";
   };
 }
diff --git a/nixpkgs/pkgs/tools/networking/zrok/default.nix b/nixpkgs/pkgs/tools/networking/zrok/default.nix
index 1515f357778e..68d4ad3ba125 100644
--- a/nixpkgs/pkgs/tools/networking/zrok/default.nix
+++ b/nixpkgs/pkgs/tools/networking/zrok/default.nix
@@ -14,14 +14,14 @@ let
   }.${system} or throwSystem;
 
   hash = {
-    x86_64-linux = "sha256-DrkX9Be8gw9JXyfyxcK2mhGur5jWFv4LjaYRSVh4dSE=";
-    aarch64-linux = "sha256-VVeTVBJyptbR/6JZwZ0V2v4lS3X/ixrcC++aMQBtg2Q=";
-    armv7l-linux = "sha256-m6tALmSCZKLQrSeIpygEQF5nuJBZ8MYmxdbeFH5ydt0=";
+    x86_64-linux = "sha256-17RtPUuFmIwxh+9mEsR9vwUHQHnXLIHEEhpV05Q9Ssw=";
+    aarch64-linux = "sha256-bJjhKf8dkOsVaaPikDrPLe+zF5CFvxvEALuzmiQuINY=";
+    armv7l-linux = "sha256-m/Ncr/+5kkC4p1/DhEfWermdsOAuekVECzR7SI1KpIQ=";
   }.${system} or throwSystem;
 in
 stdenv.mkDerivation (finalAttrs: {
   pname = "zrok";
-  version = "0.4.23";
+  version = "0.4.24";
 
   src = fetchzip {
     url = "https://github.com/openziti/zrok/releases/download/v${finalAttrs.version}/zrok_${finalAttrs.version}_${plat}.tar.gz";
diff --git a/nixpkgs/pkgs/tools/networking/zs-apc-spdu-ctl/default.nix b/nixpkgs/pkgs/tools/networking/zs-apc-spdu-ctl/default.nix
index 44dc0bdd3a09..d832a102f33b 100644
--- a/nixpkgs/pkgs/tools/networking/zs-apc-spdu-ctl/default.nix
+++ b/nixpkgs/pkgs/tools/networking/zs-apc-spdu-ctl/default.nix
@@ -32,5 +32,6 @@ stdenv.mkDerivation rec {
     license = licenses.mit;
     maintainers = [ maintainers.fogti ];
     platforms = platforms.linux;
+    mainProgram = "zs-apc-spdu-ctl";
   };
 }