about summary refs log tree commit diff
path: root/pkgs/by-name/ba/babeltrace2/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/ba/babeltrace2/package.nix')
-rw-r--r--pkgs/by-name/ba/babeltrace2/package.nix101
1 files changed, 101 insertions, 0 deletions
diff --git a/pkgs/by-name/ba/babeltrace2/package.nix b/pkgs/by-name/ba/babeltrace2/package.nix
new file mode 100644
index 0000000000000..ec9f15e679f8d
--- /dev/null
+++ b/pkgs/by-name/ba/babeltrace2/package.nix
@@ -0,0 +1,101 @@
+{
+  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;
+  };
+}