nixpkgs/pkgs/by-name/ba/babeltrace/package.nix

81 lines
2.1 KiB
Nix

{
lib,
stdenv,
fetchurl,
gitUpdater,
autoreconfHook,
pkg-config,
glib,
libuuid,
popt,
elfutils,
enablePython ? false,
pythonPackages ? null,
swig2,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "babeltrace";
version = "1.5.11";
src = fetchurl {
url = "https://www.efficios.com/files/babeltrace/babeltrace-${finalAttrs.version}.tar.bz2";
sha256 = "Z7Q6qu9clR+nrxpVfPcgGhH+iYdrfCK6CgPLwxbbWpw=";
};
nativeBuildInputs =
[
# The pre-generated ./configure script uses an old autoconf version which
# breaks cross-compilation (replaces references to malloc with rpl_malloc).
# Re-generate with nixpkgs's autoconf. This requires glib to be present in
# nativeBuildInputs for its m4 macros to be present.
autoreconfHook
glib
pkg-config
]
++ lib.optionals enablePython [
swig2
pythonPackages.setuptools
];
buildInputs = [
glib
libuuid
popt
elfutils
];
configureFlags =
[
# --enable-debug-info (default) requires the configure script to run host
# executables to determine the elfutils library version, which cannot be done
# while cross compiling.
(lib.enableFeature (stdenv.hostPlatform == stdenv.buildPlatform) "debug-info")
]
++ lib.optionals enablePython [
# Using (lib.enableFeature enablePython "python-bindings") makes the
# configure script look for python dependencies even when
# enablePython==false. Adding the configure flag conditionally seems to
# solve this.
"--enable-python-bindings"
];
#
passthru.updateScript = gitUpdater {
url = "https://git.efficios.com/babeltrace.git";
rev-prefix = "v";
# Versions 2.x are packaged independently as babeltrace2
allowedVersions = "^1\\.";
};
meta = {
description = "Command-line tool and library to read and convert LTTng tracefiles";
homepage = "https://www.efficios.com/babeltrace";
license = lib.licenses.mit;
platforms = lib.platforms.linux;
maintainers = with lib.maintainers; [
bjornfor
wentasah
];
};
})