From 6da39cde64bdaa150c98a8a8d622e5b0d242bdb0 Mon Sep 17 00:00:00 2001 From: zimbatm Date: Wed, 2 Dec 2020 12:30:21 +0100 Subject: [PATCH] sysdig: fix bash-completion location In order to support auto-loading, the bash-completion scripts should live in $out/share/bash-completion. --- pkgs/os-specific/linux/sysdig/default.nix | 39 ++++++++++++++--------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/pkgs/os-specific/linux/sysdig/default.nix b/pkgs/os-specific/linux/sysdig/default.nix index 0433715a5fbc..0f8702eb6e01 100644 --- a/pkgs/os-specific/linux/sysdig/default.nix +++ b/pkgs/os-specific/linux/sysdig/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, cmake, kernel +{ stdenv, fetchFromGitHub, cmake, kernel, installShellFiles , luajit, zlib, ncurses, perl, jsoncpp, libb64, openssl, curl, jq, gcc, elfutils, tbb, c-ares, protobuf, grpc }: @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { sha256 = "sha256-lYjMvxMIReANNwMr62u881Nugrs9piOaN3EmrvGzRns="; }; - nativeBuildInputs = [ cmake perl ]; + nativeBuildInputs = [ cmake perl installShellFiles ]; buildInputs = [ zlib luajit ncurses jsoncpp libb64 openssl curl jq gcc elfutils tbb c-ares protobuf grpc ] ++ optionals (kernel != null) kernel.moduleBuildDependencies; @@ -38,19 +38,28 @@ stdenv.mkDerivation rec { export KERNELDIR="${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" ''; - postInstall = optionalString (kernel != null) '' - make install_driver - kernel_dev=${kernel.dev} - kernel_dev=''${kernel_dev#/nix/store/} - kernel_dev=''${kernel_dev%%-linux*dev*} - if test -f "$out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko"; then - sed -i "s#$kernel_dev#................................#g" $out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko - else - xz -d $out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko.xz - sed -i "s#$kernel_dev#................................#g" $out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko - xz $out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko - fi - ''; + postInstall = + '' + # Fix the bash completion location + installShellCompletion --bash $out/etc/bash_completion.d/sysdig + rm $out/etc/bash_completion.d/sysdig + rmdir $out/etc/bash_completion.d + rmdir $out/etc + '' + + optionalString (kernel != null) '' + make install_driver + kernel_dev=${kernel.dev} + kernel_dev=''${kernel_dev#/nix/store/} + kernel_dev=''${kernel_dev%%-linux*dev*} + if test -f "$out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko"; then + sed -i "s#$kernel_dev#................................#g" $out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko + else + xz -d $out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko.xz + sed -i "s#$kernel_dev#................................#g" $out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko + xz $out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko + fi + ''; + meta = { description = "A tracepoint-based system tracing tool for Linux (with clients for other OSes)";