Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at release-19.03 66 lines 2.3 kB view raw
1{ stdenv, fetchFromGitHub, cmake, kernel 2, luajit, zlib, ncurses, perl, jsoncpp, libb64, openssl, curl, jq, gcc, elfutils, tbb, c-ares, protobuf, grpc 3}: 4 5with stdenv.lib; 6stdenv.mkDerivation rec { 7 name = "sysdig-${version}"; 8 version = "0.26.1"; 9 10 src = fetchFromGitHub { 11 owner = "draios"; 12 repo = "sysdig"; 13 rev = version; 14 sha256 = "0mvm14s5lyxddf6fcfwrv7vd8r8vfw9z4447jl5mcvji2rnyywqz"; 15 }; 16 17 nativeBuildInputs = [ cmake perl ]; 18 buildInputs = [ 19 zlib luajit ncurses jsoncpp libb64 openssl curl jq gcc elfutils tbb c-ares protobuf grpc 20 ] ++ optional (kernel != null) kernel.moduleBuildDependencies; 21 22 hardeningDisable = [ "pic" ]; 23 24 cmakeFlags = [ 25 "-DUSE_BUNDLED_DEPS=OFF" 26 "-DSYSDIG_VERSION=${version}" 27 ] ++ optional (kernel == null) "-DBUILD_DRIVER=OFF"; 28 29 # needed since luajit-2.1.0-beta3 30 NIX_CFLAGS_COMPILE = [ 31 "-DluaL_reg=luaL_Reg" 32 "-DluaL_getn(L,i)=((int)lua_objlen(L,i))" 33 ]; 34 35 preConfigure = '' 36 cmakeFlagsArray+=(-DCMAKE_EXE_LINKER_FLAGS="-ltbb -lcurl") 37 38 export INSTALL_MOD_PATH="$out" 39 '' + optionalString (kernel != null) '' 40 export KERNELDIR="${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" 41 ''; 42 43 postInstall = optionalString (kernel != null) '' 44 make install_driver 45 kernel_dev=${kernel.dev} 46 kernel_dev=''${kernel_dev#/nix/store/} 47 kernel_dev=''${kernel_dev%%-linux*dev*} 48 if test -f "$out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko"; then 49 sed -i "s#$kernel_dev#................................#g" $out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko 50 else 51 xz -d $out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko.xz 52 sed -i "s#$kernel_dev#................................#g" $out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko 53 xz $out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko 54 fi 55 ''; 56 57 meta = { 58 description = "A tracepoint-based system tracing tool for Linux (with clients for other OSes)"; 59 license = with licenses; [ asl20 gpl2 mit ]; 60 maintainers = [maintainers.raskin]; 61 platforms = ["x86_64-linux"] ++ platforms.darwin; 62 broken = kernel != null && versionOlder kernel.version "4.14"; 63 homepage = "https://sysdig.com/opensource/"; 64 downloadPage = "https://github.com/draios/sysdig/releases"; 65 }; 66}