Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at 20.09 64 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 pname = "sysdig"; 8 version = "0.27.0"; 9 10 src = fetchFromGitHub { 11 owner = "draios"; 12 repo = "sysdig"; 13 rev = version; 14 sha256 = "0lpp271g0749sx7qgpwl6myi0kgfpsxk1kc4yp3r9k1pynv8bq1b"; 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 ] ++ optionals (kernel != null) kernel.moduleBuildDependencies; 21 22 hardeningDisable = [ "pic" ]; 23 24 cmakeFlags = [ 25 "-DUSE_BUNDLED_DEPS=OFF" 26 "-DSYSDIG_VERSION=${version}" 27 "-DCREATE_TEST_TARGETS=OFF" 28 ] ++ optional (kernel == null) "-DBUILD_DRIVER=OFF"; 29 30 # needed since luajit-2.1.0-beta3 31 NIX_CFLAGS_COMPILE = "-DluaL_reg=luaL_Reg -DluaL_getn(L,i)=((int)lua_objlen(L,i))"; 32 33 preConfigure = '' 34 cmakeFlagsArray+=(-DCMAKE_EXE_LINKER_FLAGS="-ltbb -lcurl") 35 36 export INSTALL_MOD_PATH="$out" 37 '' + optionalString (kernel != null) '' 38 export KERNELDIR="${kernel.dev}/lib/modules/${kernel.modDirVersion}/build" 39 ''; 40 41 postInstall = optionalString (kernel != null) '' 42 make install_driver 43 kernel_dev=${kernel.dev} 44 kernel_dev=''${kernel_dev#/nix/store/} 45 kernel_dev=''${kernel_dev%%-linux*dev*} 46 if test -f "$out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko"; then 47 sed -i "s#$kernel_dev#................................#g" $out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko 48 else 49 xz -d $out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko.xz 50 sed -i "s#$kernel_dev#................................#g" $out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko 51 xz $out/lib/modules/${kernel.modDirVersion}/extra/sysdig-probe.ko 52 fi 53 ''; 54 55 meta = { 56 description = "A tracepoint-based system tracing tool for Linux (with clients for other OSes)"; 57 license = with licenses; [ asl20 gpl2 mit ]; 58 maintainers = [maintainers.raskin]; 59 platforms = ["x86_64-linux"] ++ platforms.darwin; 60 broken = kernel != null && versionOlder kernel.version "4.14"; 61 homepage = "https://sysdig.com/opensource/"; 62 downloadPage = "https://github.com/draios/sysdig/releases"; 63 }; 64}