diff options
Diffstat (limited to 'nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix')
-rw-r--r-- | nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix | 50 |
1 files changed, 29 insertions, 21 deletions
diff --git a/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix b/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix index 28f7b540722e..ef025dfc6a7f 100644 --- a/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix +++ b/nixpkgs/pkgs/applications/networking/cluster/nerdctl/default.nix @@ -2,50 +2,58 @@ , buildGoModule , fetchFromGitHub , makeWrapper +, installShellFiles , buildkit , cni-plugins -, extraPackages ? [] +, extraPackages ? [ ] }: -let - binPath = lib.makeBinPath ([ - buildkit - ] ++ extraPackages); -in buildGoModule rec { pname = "nerdctl"; - version = "0.5.0"; + version = "0.7.3"; src = fetchFromGitHub { - owner = "AkihiroSuda"; + owner = "containerd"; repo = pname; rev = "v${version}"; - sha256 = "sha256-lSvYiTh67gK9kJls7VsayV8T3H6RzFEEKe49BOWnUBw="; + sha256 = "sha256-4NIyit2HnDXWnHALGzz5KWxe4PU8CwMRwCoIlN/WX78="; }; - vendorSha256 = "sha256-qywiaNoO3pI7sfyPbwWR8BLd86RvJ2xSWwCJUsm3RkM="; + vendorSha256 = "sha256-qwUAC8LURsn6C3zKzcsuFsOTurjPV9V8Z/1Y9G0eohk="; - nativeBuildInputs = [ makeWrapper ]; + nativeBuildInputs = [ makeWrapper installShellFiles ]; - buildFlagsArray = [ - "-ldflags=" - "-w" - "-s" - "-X github.com/AkihiroSuda/nerdctl/pkg/version.Version=v${version}" - "-X github.com/AkihiroSuda/nerdctl/pkg/version.Revision=<unknown>" - ]; + preBuild = let t = "github.com/containerd/nerdctl/pkg/version"; in + '' + buildFlagsArray+=("-ldflags" "-s -w -X ${t}.Version=v${version} -X ${t}.Revision=<unknown>") + ''; + + # Many checks require a containerd socket and running nerdctl after it's built + doCheck = false; postInstall = '' wrapProgram $out/bin/nerdctl \ - --prefix PATH : "${binPath}" \ + --prefix PATH : "${lib.makeBinPath ([ buildkit ] ++ extraPackages)}" \ --prefix CNI_PATH : "${cni-plugins}/bin" + + installShellCompletion --cmd nerdctl \ + --bash <($out/bin/nerdctl completion bash) + ''; + + doInstallCheck = true; + installCheckPhase = '' + runHook preInstallCheck + $out/bin/nerdctl --help + $out/bin/nerdctl --version | grep "nerdctl version ${version}" + runHook postInstallCheck ''; meta = with lib; { + homepage = "https://github.com/containerd/nerdctl/"; + changelog = "https://github.com/containerd/nerdctl/releases/tag/v${version}"; description = "A Docker-compatible CLI for containerd"; - homepage = src.meta.homepage; license = licenses.asl20; - platforms = platforms.linux; maintainers = with maintainers; [ jk ]; + platforms = platforms.linux; }; } |