101 lines
2.4 KiB
Nix
101 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;
|
||
};
|
||
}
|