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.
wip/yesman
Milan Pässler 3 years ago
parent c47fc06de1
commit c4bd0719e3
No known key found for this signature in database
GPG Key ID: A6DC6A7CB0B97859
  1. 30
      pkgs/os-specific/linux/bpftool/default.nix
  2. 38
      pkgs/os-specific/linux/bpftools/default.nix
  3. 1
      pkgs/top-level/aliases.nix
  4. 2
      pkgs/top-level/all-packages.nix

@ -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 ];
};
}

@ -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 ];
};
}

@ -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

@ -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 { };

Loading…
Cancel
Save