biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / tools / networking / wsl-vpnkit / default.nix
blobb9b25747a50f53a15ef2055cab4442fa6435770f
1 { lib
2 , resholve
3 , fetchFromGitHub
5   # Runtime dependencies
6 , coreutils
7 , dnsutils
8 , gawk
9 , gnugrep
10 , gvproxy
11 , iproute2
12 , iptables
13 , iputils
14 , wget
17 let
18   version = "0.4.1";
19   gvproxyWin = gvproxy.overrideAttrs (_: {
20     buildPhase = ''
21       GOARCH=amd64 GOOS=windows go build -ldflags '-s -w' -o bin/gvproxy-windows.exe ./cmd/gvproxy
22     '';
23   });
25 resholve.mkDerivation {
26   pname = "wsl-vpnkit";
27   inherit version;
29   src = fetchFromGitHub {
30     owner = "sakai135";
31     repo = "wsl-vpnkit";
32     rev = "v${version}";
33     hash = "sha256-Igbr3L2W32s4uBepllSz07bkbI3qwAKMZkBrXLqGrGA=";
34   };
36   postPatch = ''
37     substituteInPlace wsl-vpnkit \
38       --replace "/app/wsl-vm" "${gvproxy}/bin/gvforwarder" \
39       --replace "/app/wsl-gvproxy.exe" "${gvproxyWin}/bin/gvproxy-windows.exe"
40   '';
42   installPhase = ''
43     mkdir -p $out/bin
44     cp wsl-vpnkit $out/bin
45   '';
47   solutions.wsl-vpnkit = {
48     scripts = [ "bin/wsl-vpnkit" ];
49     interpreter = "none";
50     inputs = [
51       coreutils
52       dnsutils
53       gawk
54       gnugrep
55       iproute2
56       iptables
57       iputils
58       wget
59     ];
61     keep = {
62       "$VMEXEC_PATH" = true;
63       "$GVPROXY_PATH" = true;
64     };
66     execer = [
67       "cannot:${iproute2}/bin/ip"
68       "cannot:${wget}/bin/wget"
69     ];
71     fix = {
72       aliases = true;
73       ping = "${iputils}/bin/ping";
74     };
75   };
77   meta = with lib; {
78     description = "Provides network connectivity to Windows Subsystem for Linux (WSL) when blocked by VPN";
79     homepage = "https://github.com/sakai135/wsl-vpnkit";
80     changelog = "https://github.com/sakai135/wsl-vpnkit/releases/tag/v${version}";
81     license = licenses.mit;
82     maintainers = with maintainers; [ terlar ];
83     mainProgram = "wsl-vpnkit";
84   };