From c4bd0719e31e4e8d07aeecf4fcc578bd666fcb59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Milan=20P=C3=A4ssler?= Date: Mon, 3 May 2021 00:55:49 +0200 Subject: [PATCH] bpftools: build bpf_asm, bpf_dbg I needed some other bpf-related tools located in the kernel source tree, so I hijacked the bpftool package, renamed it to bpftools and added those programs. --- pkgs/os-specific/linux/bpftool/default.nix | 30 ---------------- pkgs/os-specific/linux/bpftools/default.nix | 38 +++++++++++++++++++++ pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 2 +- 4 files changed, 40 insertions(+), 31 deletions(-) delete mode 100644 pkgs/os-specific/linux/bpftool/default.nix create mode 100644 pkgs/os-specific/linux/bpftools/default.nix diff --git a/pkgs/os-specific/linux/bpftool/default.nix b/pkgs/os-specific/linux/bpftool/default.nix deleted file mode 100644 index d8c64738d82..00000000000 --- a/pkgs/os-specific/linux/bpftool/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ lib, stdenv -, libopcodes, libbfd, libelf -, linuxPackages_latest, zlib -, python3 -}: - -stdenv.mkDerivation { - pname = "bpftool"; - inherit (linuxPackages_latest.kernel) version src; - - nativeBuildInputs = [ python3 ]; - buildInputs = [ libopcodes libbfd libelf zlib ]; - - preConfigure = '' - patchShebangs scripts/bpf_helpers_doc.py - - cd tools/bpf/bpftool - substituteInPlace ./Makefile \ - --replace '/usr/local' "$out" \ - --replace '/usr' "$out" \ - --replace '/sbin' '/bin' - ''; - - meta = with lib; { - description = "Debugging/program analysis tool for the eBPF subsystem"; - license = [ licenses.gpl2 licenses.bsd2 ]; - platforms = platforms.linux; - maintainers = with maintainers; [ thoughtpolice ]; - }; -} diff --git a/pkgs/os-specific/linux/bpftools/default.nix b/pkgs/os-specific/linux/bpftools/default.nix new file mode 100644 index 00000000000..3e20efa9f01 --- /dev/null +++ b/pkgs/os-specific/linux/bpftools/default.nix @@ -0,0 +1,38 @@ +{ lib, stdenv +, libopcodes, libbfd, libelf, readline +, linuxPackages_latest, zlib +, python3, bison, flex +}: + +stdenv.mkDerivation { + pname = "bpftools"; + inherit (linuxPackages_latest.kernel) version src; + + nativeBuildInputs = [ python3 bison flex ]; + buildInputs = [ libopcodes libbfd libelf zlib readline ]; + + preConfigure = '' + patchShebangs scripts/bpf_helpers_doc.py + + cd tools/bpf + substituteInPlace ./bpftool/Makefile \ + --replace '/usr/local' "$out" \ + --replace '/usr' "$out" \ + --replace '/sbin' '/bin' + ''; + + buildFlags = [ "bpftool" "bpf_asm" "bpf_dbg" ]; + + installPhase = '' + make -C bpftool install + install -Dm755 -t $out/bin bpf_asm + install -Dm755 -t $out/bin bpf_dbg + ''; + + meta = with lib; { + description = "Debugging/program analysis tools for the eBPF subsystem"; + license = [ licenses.gpl2 licenses.bsd2 ]; + platforms = platforms.linux; + maintainers = with maintainers; [ thoughtpolice ]; + }; +} diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index eadd95870ca..efe14dd45c9 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -70,6 +70,7 @@ mapAliases ({ bazaarTools = throw "bazaar has been deprecated by breezy."; # added 2020-04-19 beegfs = throw "beegfs has been removed."; # added 2019-11-24 bluezFull = bluez; # Added 2019-12-03 + bpftool = bpftools; # Added 2021-05-03 brackets = throw "brackets has been removed, it was unmaintained and had open vulnerabilities"; # added 2021-01-24 bridge_utils = bridge-utils; # added 2015-02-20 bro = zeek; # added 2019-09-29 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 51658440cad..927fd1a41fd 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -12536,7 +12536,7 @@ in libbpf = callPackage ../os-specific/linux/libbpf { }; - bpftool = callPackage ../os-specific/linux/bpftool { }; + bpftools = callPackage ../os-specific/linux/bpftools { }; bpm-tools = callPackage ../tools/audio/bpm-tools { };