Background
Repology currently lists rustnet on (as of issue creation):
- Arch family:
arch/extra, aur (rustnet-git), manjaro_* (stable, testing, unstable), parabola
- NixOS:
nix_unstable (NixOS/nixpkgs#445289)
- Fedora-derived:
terra_rawhide
- Void Linux:
void_x86_64
- Russian distros:
altsisyphus, rosa_13
- Windows:
chocolatey
Plus, not tracked by repology but live in INSTALL.md: Ubuntu PPA (25.10 / 26.04), Fedora COPR (42+), .deb / .rpm tarballs from releases, Homebrew, FreeBSD (separate repo), Android (Termux).
There are still notable gaps we'd like community help with:
- openSUSE (Tumbleweed / Leap — likely via OBS)
- Alpine Linux (aports, musl-static build already exists)
- Gentoo (ebuild —
app-network/rustnet or similar)
- Slackware (SlackBuilds.org)
- Pop!_OS — Ubuntu-derived. The Ubuntu PPA might work as-is for Pop! users; if so, INSTALL.md just needs to say so. If not, document the workaround
- Linux Mint — same situation as Pop!_OS; verify whether the Ubuntu PPA covers it and document either way
- Other distros you know well — if you maintain or follow a distro that isn't on this list and rustnet would be useful there, propose it in a comment first so we can scope it
Known-broken: Snap and Flatpak
We don't want PRs for Snap or Flatpak. Both isolate packages in sandboxes that prevent the kernel-level packet capture and eBPF features rustnet needs (raw sockets, CAP_NET_RAW, CAP_BPF, CAP_PERFMON). Until the Snap/Flatpak interfaces grow real support for these capabilities, packaging there would ship a broken experience. If you have a workaround or new interface to propose, comment first — don't open a PR.
Scope (per sub-task)
Each distro is one separate PR. The contributor:
- Writes the package definition in the upstream distro's repo (OBS for openSUSE, aports for Alpine, ::gentoo for Gentoo, SlackBuilds for Slackware) — not in rustnet itself
- Opens a PR against rustnet that:
Capability setup (setcap cap_net_raw,cap_bpf,cap_perfmon+eip /usr/bin/rustnet, with a cap_sys_admin fallback for older kernels) must be in the package post-install, matching the pattern in debian/postinst and rpm/rustnet.spec (lines 60-70).
For the Ubuntu-derivative entries (Pop!_OS, Linux Mint), the PR is documentation-only: verify the PPA works on a fresh install and add the section to INSTALL.md.
Acceptance criteria (per PR)
The PR must include evidence of real-world end-to-end testing — install the new package on a clean target-distro VM/container, run rustnet, and demonstrate it captures traffic. Synthetic builds in CI alone are not sufficient.
References
Background
Repology currently lists rustnet on (as of issue creation):
arch/extra,aur(rustnet-git),manjaro_*(stable, testing, unstable),parabolanix_unstable(NixOS/nixpkgs#445289)terra_rawhidevoid_x86_64altsisyphus,rosa_13chocolateyPlus, not tracked by repology but live in INSTALL.md: Ubuntu PPA (25.10 / 26.04), Fedora COPR (42+), .deb / .rpm tarballs from releases, Homebrew, FreeBSD (separate repo), Android (Termux).
There are still notable gaps we'd like community help with:
app-network/rustnetor similar)Known-broken: Snap and Flatpak
We don't want PRs for Snap or Flatpak. Both isolate packages in sandboxes that prevent the kernel-level packet capture and eBPF features rustnet needs (raw sockets,
CAP_NET_RAW,CAP_BPF,CAP_PERFMON). Until the Snap/Flatpak interfaces grow real support for these capabilities, packaging there would ship a broken experience. If you have a workaround or new interface to propose, comment first — don't open a PR.Scope (per sub-task)
Each distro is one separate PR. The contributor:
Capability setup (
setcap cap_net_raw,cap_bpf,cap_perfmon+eip /usr/bin/rustnet, with acap_sys_adminfallback for older kernels) must be in the package post-install, matching the pattern indebian/postinstandrpm/rustnet.spec(lines 60-70).For the Ubuntu-derivative entries (Pop!_OS, Linux Mint), the PR is documentation-only: verify the PPA works on a fresh install and add the section to INSTALL.md.
Acceptance criteria (per PR)
The PR must include evidence of real-world end-to-end testing — install the new package on a clean target-distro VM/container, run rustnet, and demonstrate it captures traffic. Synthetic builds in CI alone are not sufficient.
getcap /usr/bin/rustnetshows the expected capabilities applied via post-installrustnet --versionruns without sudoReferences
debian/postinst(lines 14-16),rpm/rustnet.spec(lines 60-70)