at 16.09-beta 70 lines 2.5 kB view raw
1{stdenv, fetchurl, fetchFromGitHub, cmake, luajit, kernel, zlib, ncurses, perl, jsoncpp, libb64, openssl, curl}: 2let 3 inherit (stdenv.lib) optional optionalString; 4 baseName = "sysdig"; 5 version = "0.10.0"; 6 # sysdig-0.11.0 depends on some headers from jq which are not 7 # installed by default. 8 # Relevant sysdig issue: https://github.com/draios/sysdig/issues/626 9 jq-prefix = fetchurl { 10 url="https://github.com/stedolan/jq/releases/download/jq-1.5/jq-1.5.tar.gz"; 11 sha256="0g29kyz4ykasdcrb0zmbrp2jqs9kv1wz9swx849i2d1ncknbzln4"; 12 }; 13in 14stdenv.mkDerivation { 15 name = "${baseName}-${version}"; 16 17 src = fetchurl { 18 url = "https://github.com/draios/sysdig/archive/${version}.tar.gz"; 19 sha256 = "0hs0r9z9j7padqdcj69bwx52iw6gvdl0w322qwivpv12j3prcpsj"; 20 }; 21 22 buildInputs = [ 23 cmake zlib luajit ncurses perl jsoncpp libb64 openssl curl 24 ]; 25 26 hardeningDisable = [ "pic" ]; 27 28 postPatch = '' 29 sed '1i#include <cmath>' -i userspace/libsinsp/{cursesspectro,filterchecks}.cpp 30 ''; 31 32 cmakeFlags = [ 33 "-DUSE_BUNDLED_DEPS=OFF" 34 "-DUSE_BUNDLED_JQ=ON" 35 "-DSYSDIG_VERSION=${version}" 36 ] ++ optional (kernel == null) "-DBUILD_DRIVER=OFF"; 37 38 preConfigure = '' 39 export INSTALL_MOD_PATH="$out" 40 '' + optionalString (kernel != null) '' 41 export KERNELDIR="${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" 42 ''; 43 44 preBuild = '' 45 mkdir -p jq-prefix/src 46 cp ${jq-prefix} jq-prefix/src/jq-1.5.tar.gz 47 ''; 48 49 postInstall = optionalString (kernel != null) '' 50 make install_driver 51 kernel_dev=${kernel.dev} 52 kernel_dev=''${kernel_dev#/nix/store/} 53 kernel_dev=''${kernel_dev%%-linux*dev*} 54 if test -f "$out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko"; then 55 sed -i "s#$kernel_dev#................................#g" $out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko 56 else 57 xz -d $out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko.xz 58 sed -i "s#$kernel_dev#................................#g" $out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko 59 xz $out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko 60 fi 61 ''; 62 63 meta = with stdenv.lib; { 64 description = "A tracepoint-based system tracing tool for Linux (with clients for other OSes)"; 65 license = licenses.gpl2; 66 maintainers = [maintainers.raskin]; 67 platforms = platforms.linux ++ platforms.darwin; 68 downloadPage = "https://github.com/draios/sysdig/releases"; 69 }; 70}