102 lines
2.4 KiB
Nix
102 lines
2.4 KiB
Nix
|
{
|
|||
|
lib,
|
|||
|
stdenv,
|
|||
|
fetchFromGitHub,
|
|||
|
fetchpatch,
|
|||
|
autoreconfHook,
|
|||
|
pkg-config,
|
|||
|
glib,
|
|||
|
elfutils,
|
|||
|
bison,
|
|||
|
flex,
|
|||
|
asciidoc,
|
|||
|
xmlto,
|
|||
|
docbook_xml_dtd_45,
|
|||
|
docbook_xsl,
|
|||
|
enablePython ? false,
|
|||
|
python ? null,
|
|||
|
pythonPackages ? null,
|
|||
|
swig,
|
|||
|
ensureNewerSourcesForZipFilesHook,
|
|||
|
}:
|
|||
|
|
|||
|
stdenv.mkDerivation rec {
|
|||
|
pname = "babeltrace2";
|
|||
|
version = "2.0.6";
|
|||
|
|
|||
|
src = fetchFromGitHub {
|
|||
|
owner = "efficios";
|
|||
|
repo = "babeltrace";
|
|||
|
rev = "v${version}";
|
|||
|
hash = "sha256-L4YTqPxvWynUBnmAQnlJ2RNbEv9MhBxQOsqbWix8ZwU=";
|
|||
|
};
|
|||
|
|
|||
|
patches = [
|
|||
|
# Patches needed for Python 3.12
|
|||
|
(fetchpatch {
|
|||
|
# python: Use standalone 'sysconfig' module
|
|||
|
url = "https://github.com/efficios/babeltrace/commit/452480eb6820df9973d50431a479ca547815ae08.patch";
|
|||
|
hash = "sha256-YgUKHJzdliNUsTY29E0xxcUjqVWn4EvxyTs0B+O+jrI=";
|
|||
|
})
|
|||
|
(fetchpatch {
|
|||
|
# python: replace distutils with setuptools
|
|||
|
url = "https://github.com/efficios/babeltrace/commit/6ec97181a525a3cd64cedbcd0df905ed9e84ba03.patch";
|
|||
|
hash = "sha256-1hlEkPcRUpf2+iEXqHXcCDOaLTg+eaVcahqZlA8m5QY=";
|
|||
|
})
|
|||
|
(fetchpatch {
|
|||
|
# fix: python: monkey patch the proper sysconfig implementation
|
|||
|
url = "https://github.com/efficios/babeltrace/commit/927263e4ea62877af7240cfdb1514ae949dbfc2e.patch";
|
|||
|
hash = "sha256-HNRQ7uw26FUKCQ/my6//OL2xsHdOGlQUq5zIKtg9OGw=";
|
|||
|
})
|
|||
|
];
|
|||
|
|
|||
|
outputs = [
|
|||
|
"out"
|
|||
|
"man"
|
|||
|
"dev"
|
|||
|
];
|
|||
|
|
|||
|
nativeBuildInputs =
|
|||
|
[
|
|||
|
autoreconfHook
|
|||
|
pkg-config
|
|||
|
glib
|
|||
|
bison
|
|||
|
flex
|
|||
|
asciidoc
|
|||
|
xmlto
|
|||
|
docbook_xml_dtd_45
|
|||
|
docbook_xsl
|
|||
|
]
|
|||
|
++ lib.optionals enablePython [
|
|||
|
swig
|
|||
|
pythonPackages.setuptools
|
|||
|
ensureNewerSourcesForZipFilesHook
|
|||
|
];
|
|||
|
|
|||
|
buildInputs = [
|
|||
|
glib
|
|||
|
elfutils
|
|||
|
] ++ lib.optional enablePython python;
|
|||
|
|
|||
|
configureFlags = [
|
|||
|
(lib.enableFeature enablePython "python-bindings")
|
|||
|
(lib.enableFeature enablePython "python-plugins")
|
|||
|
(lib.enableFeature (stdenv.hostPlatform == stdenv.buildPlatform) "debug-info")
|
|||
|
];
|
|||
|
|
|||
|
# For cross-compilation of Python bindings
|
|||
|
makeFlags = [ "CFLAGS=-Wno-error=stringop-truncation -Wno-error=null-dereference" ];
|
|||
|
|
|||
|
enableParallelBuilding = true;
|
|||
|
|
|||
|
meta = {
|
|||
|
description = "Babeltrace /ˈbæbəltreɪs/ is an open-source trace manipulation toolkit";
|
|||
|
homepage = "https://babeltrace.org";
|
|||
|
license = lib.licenses.mit;
|
|||
|
maintainers = with lib.maintainers; [ wentasah ];
|
|||
|
mainProgram = "babeltrace2";
|
|||
|
platforms = lib.platforms.all;
|
|||
|
};
|
|||
|
}
|