sysdig: support builds without the kernel module, add pkgs.sysdig attr

This commit is contained in:
Vladimir Kirillov 2014-05-09 10:06:56 +03:00
parent e5f7e4ec3c
commit 96903d5e48
2 changed files with 14 additions and 8 deletions

View File

@ -1,5 +1,6 @@
{stdenv, fetchurl, cmake, luajit, kernel, zlib}: {stdenv, fetchurl, cmake, luajit, kernel, zlib}:
let let
inherit (stdenv.lib) optional optionalString;
s = rec { s = rec {
baseName="sysdig"; baseName="sysdig";
version="0.1.82"; version="0.1.82";
@ -8,8 +9,8 @@ let
sha256="0yjxsdjbkp5dihg5xhkyl3lg64dl40a0b5cvcai8gz74w2955mnk"; sha256="0yjxsdjbkp5dihg5xhkyl3lg64dl40a0b5cvcai8gz74w2955mnk";
}; };
buildInputs = [ buildInputs = [
cmake luajit kernel zlib cmake zlib luajit
]; ] ++ optional (kernel != null) kernel;
in in
stdenv.mkDerivation { stdenv.mkDerivation {
inherit (s) name version; inherit (s) name version;
@ -24,17 +25,18 @@ stdenv.mkDerivation {
]; ];
preConfigure = '' preConfigure = ''
export INSTALL_MOD_PATH="$out" export INSTALL_MOD_PATH="$out"
'' + optionalString (kernel != null) ''
export KERNELDIR="${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" export KERNELDIR="${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
''; '';
postInstall = '' postInstall = optionalString (kernel != null) ''
make install_driver make install_driver
''; '';
meta = { meta = with stdenv.lib; {
inherit (s) version; inherit (s) version;
description = ''A tracepoint-based system tracing tool for Linux''; description = ''A tracepoint-based system tracing tool for Linux (with clients for other OSes)'';
license = stdenv.lib.licenses.gpl2 ; license = licenses.gpl2;
maintainers = [stdenv.lib.maintainers.raskin]; maintainers = [maintainers.raskin];
platforms = stdenv.lib.platforms.linux; platforms = platforms.linux ++ platforms.darwin;
}; };
} }

View File

@ -7377,6 +7377,10 @@ let
statifier = builderDefsPackage (import ../os-specific/linux/statifier) { }; statifier = builderDefsPackage (import ../os-specific/linux/statifier) { };
sysdig = callPackage ../os-specific/linux/sysdig {
kernel = null;
}; # pkgs.sysdig is a client, for a driver look at linuxPackagesFor
sysfsutils = callPackage ../os-specific/linux/sysfsutils { }; sysfsutils = callPackage ../os-specific/linux/sysfsutils { };
sysprof = callPackage ../development/tools/profiling/sysprof { sysprof = callPackage ../development/tools/profiling/sysprof {