about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/applications/virtualization/cri-o/default.nix46
-rw-r--r--pkgs/tools/virtualization/cri-tools/default.nix22
2 files changed, 52 insertions, 16 deletions
diff --git a/pkgs/applications/virtualization/cri-o/default.nix b/pkgs/applications/virtualization/cri-o/default.nix
index 2fd3a0b39dd6..4c3d9ffc937c 100644
--- a/pkgs/applications/virtualization/cri-o/default.nix
+++ b/pkgs/applications/virtualization/cri-o/default.nix
@@ -3,25 +3,24 @@
 , btrfs-progs
 , buildGoPackage
 , fetchFromGitHub
-, git
 , glibc
 , gpgme
+, installShellFiles
 , libapparmor
 , libassuan
 , libgpgerror
 , libseccomp
 , libselinux
 , lvm2
-, pkgconfig
-, which
+, pkg-config
 }:
 
 buildGoPackage rec {
-  project = "cri-o";
+  pname = "cri-o";
   version = "1.18.0";
-  name = "${project}-${version}${flavor}";
+  name = "${pname}-${version}${flavor}";
 
-  goPackagePath = "github.com/${project}/${project}";
+  goPackagePath = "github.com/cri-o/cri-o";
 
   src = fetchFromGitHub {
     owner = "cri-o";
@@ -30,27 +29,48 @@ buildGoPackage rec {
     sha256 = "142flmv54pj48rjqkd26fbxrcbx2cv6pdmrc33jgyvn6r99zliah";
   };
 
-  nativeBuildInputs = [ git pkgconfig which ];
-  buildInputs = [ btrfs-progs gpgme libapparmor libassuan libgpgerror
-                 libseccomp libselinux lvm2 ]
-                ++ stdenv.lib.optionals (glibc != null) [ glibc glibc.static ];
+  outputs = [ "out" "man" ];
+
+  nativeBuildInputs = [ installShellFiles pkg-config ];
+
+  buildInputs = [
+    btrfs-progs
+    gpgme
+    libapparmor
+    libassuan
+    libgpgerror
+    libseccomp
+    libselinux
+    lvm2
+  ] ++ stdenv.lib.optionals (glibc != null) [ glibc glibc.static ];
 
   BUILDTAGS = "apparmor seccomp selinux containers_image_ostree_stub";
   buildPhase = ''
     pushd go/src/${goPackagePath}
 
-    make binaries BUILDTAGS="$BUILDTAGS"
+    sed -i '/version.buildDate/d' Makefile
+
+    make binaries docs BUILDTAGS="$BUILDTAGS"
   '';
+
   installPhase = ''
     install -Dm755 bin/crio $out/bin/crio${flavor}
     install -Dm755 bin/crio-status $out/bin/crio-status${flavor}
     install -Dm755 bin/pinns $out/bin/pinns${flavor}
+
+    for shell in bash fish zsh; do
+      installShellCompletion --$shell completions/$shell/*
+    done
+
+    installManPage docs/*.[1-9]
   '';
 
   meta = with stdenv.lib; {
     homepage = "https://cri-o.io";
-    description = ''Open Container Initiative-based implementation of the
-                    Kubernetes Container Runtime Interface'';
+    description = ''
+      Open Container Initiative-based implementation of the
+      Kubernetes Container Runtime Interface
+    '';
     license = licenses.asl20;
     maintainers = with maintainers; [ ] ++ teams.podman.members;
     platforms = platforms.linux;
diff --git a/pkgs/tools/virtualization/cri-tools/default.nix b/pkgs/tools/virtualization/cri-tools/default.nix
index 65a7f7d19809..7254b3d63d97 100644
--- a/pkgs/tools/virtualization/cri-tools/default.nix
+++ b/pkgs/tools/virtualization/cri-tools/default.nix
@@ -1,8 +1,13 @@
-{ buildGoPackage, fetchFromGitHub, lib }:
+{ lib
+, buildGoPackage
+, fetchFromGitHub
+, installShellFiles
+}:
 
 buildGoPackage rec {
   pname = "cri-tools";
   version = "1.18.0";
+
   src = fetchFromGitHub {
     owner = "kubernetes-sigs";
     repo = pname;
@@ -12,15 +17,26 @@ buildGoPackage rec {
 
   goPackagePath = "github.com/kubernetes-sigs/cri-tools";
 
+  nativeBuildInputs = [ installShellFiles ];
+
   buildPhase = ''
     pushd go/src/${goPackagePath}
-    make all install BINDIR=$out/bin
+    make binaries VERSION=${version}
+  '';
+
+  installPhase = ''
+    make install BINDIR=$out/bin
+
+    for shell in bash fish zsh; do
+      $out/bin/crictl completion $shell > crictl.$shell
+      installShellCompletion crictl.$shell
+    done
   '';
 
   meta = with lib; {
     description = "CLI and validation tools for Kubelet Container Runtime Interface (CRI)";
     homepage = "https://github.com/kubernetes-sigs/cri-tools";
-    license = lib.licenses.asl20;
+    license = licenses.asl20;
     maintainers = with maintainers; [ ] ++ teams.podman.members;
   };
 }