From 48562415281958ca585bda0fe605dfc06c60e642 Mon Sep 17 00:00:00 2001 From: 8aed <140662578+8aed@users.noreply.github.com> Date: Wed, 26 Jul 2023 23:51:46 +0000 Subject: [PATCH] passt: init at 0.2023_11_10.5ec3634 Add passt, a userspace network stack that can be use to provide unprivileged network access for virtual machines (using 'passt') or containers (using 'pasta'). See https://passt.top/passt/about/ --- maintainers/maintainer-list.nix | 6 +++++ pkgs/by-name/pa/passt/package.nix | 41 +++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 pkgs/by-name/pa/passt/package.nix diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 876c7531a992..ef5306bccbce 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -189,6 +189,12 @@ githubId = 12578560; name = "Quinn Bohner"; }; + _8aed = { + email = "8aed@riseup.net"; + github = "8aed"; + githubId = 140662578; + name = "Huit Aed"; + }; _8-bit-fox = { email = "sebastian@markwaerter.de"; github = "8-bit-fox"; diff --git a/pkgs/by-name/pa/passt/package.nix b/pkgs/by-name/pa/passt/package.nix new file mode 100644 index 000000000000..e577b2152503 --- /dev/null +++ b/pkgs/by-name/pa/passt/package.nix @@ -0,0 +1,41 @@ +{ stdenv, lib, fetchgit }: + +stdenv.mkDerivation { + pname = "passt"; + version = "0.2023_11_10.5ec3634"; + src = fetchgit { + url = "git://passt.top/passt"; + rev = "5ec3634b07215337c2e69d88f9b1d74711897d7d"; + hash = "sha256-76CD9PYD/NcBkmRYFSZaYl381QJjuWo0VsNdh31d6/M="; + }; + nativeBuildInputs = [ ]; + buildInputs = []; + installPhase = '' + runHook preInstall + mkdir -p $out/bin $out/share/man/man1 + cp passt pasta qrap $out/bin/ + cp passt.1 pasta.1 qrap.1 $out/share/man/man1/ + '' + (lib.optionalString stdenv.hostPlatform.avx2Support '' + cp passt.avx2 pasta.avx2 $out/bin/ + runHook postInstall + ''); + meta = with lib; { + homepage = "https://passt.top/passt/about/"; + description = "Translation layer between a Layer-2 network interface and native Layer-4 sockets"; + longDescription = '' + passt implements a translation layer between a Layer-2 network interface + and native Layer-4 sockets (TCP, UDP, ICMP/ICMPv6 echo) on a host. + It doesn't require any capabilities or privileges, and it can be used as + a simple replacement for Slirp. + + pasta (same binary as passt, different command) offers equivalent + functionality, for network namespaces: traffic is forwarded using a tap + interface inside the namespace, without the need to create further + interfaces on the host, hence not requiring any capabilities or + privileges. + ''; + license = lib.licenses.gpl2Plus; + platforms = platforms.linux; + maintainers = with maintainers; [ _8aed ]; + }; +}