From b851cbd5b28e9951e54f0301be62b8443648e075 Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Wed, 28 Dec 2022 15:44:35 +0800 Subject: [PATCH 1/2] sing-box: init at 1.1.1 --- pkgs/tools/networking/sing-box/default.nix | 42 ++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 2 files changed, 44 insertions(+) create mode 100644 pkgs/tools/networking/sing-box/default.nix diff --git a/pkgs/tools/networking/sing-box/default.nix b/pkgs/tools/networking/sing-box/default.nix new file mode 100644 index 000000000000..731b880af29d --- /dev/null +++ b/pkgs/tools/networking/sing-box/default.nix @@ -0,0 +1,42 @@ +{ lib +, buildGoModule +, fetchFromGitHub +}: + +buildGoModule rec { + pname = "sing-box"; + version = "1.1.1"; + + src = fetchFromGitHub { + owner = "SagerNet"; + repo = pname; + rev = "v${version}"; + hash = "sha256-CNy+C5E5iAZHZ7PsS0Hj43irCuCvy/bes3kovvH81/o="; + }; + + vendorHash = "sha256-fUHfvqzbu2P7N413dDuV41myhReNSYvgF+Cc6SgG6y4="; + + tags = [ + "with_quic" + "with_grpc" + "with_wireguard" + "with_shadowsocksr" + "with_ech" + "with_utls" + "with_acme" + "with_clash_api" + "with_v2ray_api" + "with_gvisor" + ]; + + subPackages = [ + "cmd/sing-box" + ]; + + meta = with lib;{ + homepage = "https://sing-box.sagernet.org"; + description = "The universal proxy platform"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ nickcao ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b81d61fd6f6b..bbcd5bcfb9da 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -11693,6 +11693,8 @@ with pkgs; skydns = callPackage ../servers/skydns { }; + sing-box = callPackage ../tools/networking/sing-box { }; + sipcalc = callPackage ../tools/networking/sipcalc { }; skribilo = callPackage ../tools/typesetting/skribilo { From 433a78bcdb650335dbc7cf926e07318a2cbea3b9 Mon Sep 17 00:00:00 2001 From: Nick Cao Date: Wed, 28 Dec 2022 17:39:42 +0800 Subject: [PATCH 2/2] sing-box: install shell completions --- pkgs/tools/networking/sing-box/default.nix | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pkgs/tools/networking/sing-box/default.nix b/pkgs/tools/networking/sing-box/default.nix index 731b880af29d..99d320f4f85c 100644 --- a/pkgs/tools/networking/sing-box/default.nix +++ b/pkgs/tools/networking/sing-box/default.nix @@ -1,6 +1,9 @@ { lib +, stdenv , buildGoModule , fetchFromGitHub +, installShellFiles +, buildPackages }: buildGoModule rec { @@ -33,6 +36,15 @@ buildGoModule rec { "cmd/sing-box" ]; + nativeBuildInputs = [ installShellFiles ]; + + postInstall = let emulator = stdenv.hostPlatform.emulator buildPackages; in '' + installShellCompletion --cmd sing-box \ + --bash <(${emulator} $out/bin/sing-box completion bash) \ + --fish <(${emulator} $out/bin/sing-box completion fish) \ + --zsh <(${emulator} $out/bin/sing-box completion zsh ) + ''; + meta = with lib;{ homepage = "https://sing-box.sagernet.org"; description = "The universal proxy platform";