diff --git a/pkgs/development/tools/uftrace/default.nix b/pkgs/development/tools/uftrace/default.nix index beb0a511aacf..8b8f9d80feb1 100644 --- a/pkgs/development/tools/uftrace/default.nix +++ b/pkgs/development/tools/uftrace/default.nix @@ -1,4 +1,17 @@ -{lib, stdenv, fetchFromGitHub}: +{ lib +, stdenv +, fetchFromGitHub +, pkg-config +, pandoc +, capstone +, elfutils +, libtraceevent +, ncurses +, withLuaJIT ? false +, luajit +, withPython ? false +, python3 +}: stdenv.mkDerivation rec { pname = "uftrace"; @@ -11,8 +24,23 @@ stdenv.mkDerivation rec { sha256 = "sha256-JuBwyE6JH3CpJH863LbnWELUIIEKVaAcz8h8beeABGQ="; }; + nativeBuildInputs = [ pkg-config pandoc ]; + buildInputs = + [ capstone elfutils libtraceevent ncurses ] + ++ lib.optional withLuaJIT luajit + ++ lib.optional withPython python3; + + # libmcount.so dlopens python and luajit, make sure they're in the RUNPATH + preBuild = + let + libs = lib.optional withLuaJIT "luajit" ++ lib.optional withPython "python3-embed"; + in + lib.optionalString (withLuaJIT || withPython) '' + makeFlagsArray+=(LDFLAGS_lib="$(pkg-config --libs ${lib.concatStringsSep " " libs})") + ''; + postUnpack = '' - patchShebangs . + patchShebangs . ''; meta = { @@ -21,6 +49,6 @@ stdenv.mkDerivation rec { homepage = "https://github.com/namhyung/uftrace"; license = lib.licenses.gpl2; platforms = lib.platforms.linux; - maintainers = [lib.maintainers.nthorne]; + maintainers = [ lib.maintainers.nthorne ]; }; } diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 6cfa6a4f74f3..7291546d0def 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13786,6 +13786,11 @@ with pkgs; uftrace = callPackage ../development/tools/uftrace { }; + uftraceFull = uftrace.override { + withLuaJIT = true; + withPython = true; + }; + uftpd = callPackage ../servers/ftp/uftpd {}; uget = callPackage ../tools/networking/uget { };