Skip to content

packaging: add rustnet to more Linux distributions #276

@domcyrus

Description

@domcyrus

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:

  1. 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
  2. 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.

  • Package builds and installs cleanly on the target distro's current stable release — paste the install command output in the PR
  • After install, getcap /usr/bin/rustnet shows the expected capabilities applied via post-install
  • rustnet --version runs without sudo
  • A 30-second capture session works on the test system — include a screenshot of the UI with real connections
  • INSTALL.md updated with copy-paste install commands
  • For packaged distros: Repology picks up the new package within ~1 week of merge — link the repology entry in a follow-up comment

References

Metadata

Metadata

Assignees

No one assigned

    Labels

    help wantedExtra attention is neededpackagingDistribution packaging (deb, rpm, AUR, etc.)

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions