[PATCH] gnu: bpftool: New package

  • Done
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Ryan Sundberg
Owner
unassigned
Submitted by
Ryan Sundberg
Severity
normal
R
R
Ryan Sundberg wrote on 29 Dec 2022 11:53
(address . guix-patches@gnu.org)(name . Ryan Sundberg)(address . ryan@arctype.co)
20221229105351.2318-1-ryan@arctype.co
Provides a package for `bpftool` from the Linux kernel source.

* gnu/packages/linux.scm (bpftool): New variable
---
gnu/packages/linux.scm | 53 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 53 insertions(+)

Toggle diff (73 lines)
diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 568c2b6b92..2f625267dc 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -61,6 +61,7 @@
;;; Copyright © 2021 Olivier Dion <olivier.dion@polymtl.ca>
;;; Copyright © 2021 Solene Rapenne <solene@perso.pw>
;;; Copyright © 2021, 2022 Petr Hodina <phodina@protonmail.com>
+;;; Copyright © 2021 Ryan Sundberg <ryan@arctype.co>
;;; Copyright © 2022 Artyom V. Poptsov <poptsov.artyom@gmail.com>
;;; Copyright © 2022 Rene Saavedra <nanuui@protonmail.com>
;;; Copyright © 2022 muradm <mail@muradm.net>
@@ -9361,6 +9362,58 @@ (define-public bcc
and above.")
(license license:asl2.0)))
+(define-public bpftool
+ (package
+ (name "bpftool")
+ (version (package-version linux-libre))
+ (source (package-source linux-libre))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:tests? #f ; This package has no tests.
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'build
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let* ((binutils* (assoc-ref inputs "binutils"))
+ (ldflags (string-append "-I" (string-append binutils* "/include"))))
+ (invoke "make"
+ "-C"
+ "tools/bpf/bpftool"
+ ,(string-append "CC=" (cc-for-target))
+ ; We need to explicitly set the RUNPATH for these libraries
+ (string-append "LDFLAGS=-Wl"
+ ",-rpath=" (assoc-ref inputs "elfutils") "/lib"
+ ",-rpath=" (assoc-ref inputs "libcap") "/lib"
+ ",-rpath=" (assoc-ref inputs "zlib") "/lib"))
+ #t)))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out")))
+ (mkdir-p (string-append out "/sbin"))
+ (mkdir-p (string-append out "/share/bash-completion/completions"))
+ (invoke "make"
+ (string-append "prefix=" out)
+ (string-append "bash_compdir=" out
+ "/share/bash-completion/completions")
+ "-C" "tools/bpf/bpftool"
+ "install")
+ #t))))))
+ (inputs
+ `(("elfutils", elfutils) ; Provides libelf
+ ("readline" ,readline)
+ ("libcap" ,libcap)
+ ("zlib" ,zlib)))
+ (native-inputs
+ `(("bison" ,bison)
+ ("python" ,python-3)))
+ ; This tool does not have a proper web page.
+ (home-page "https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/tree/tools/bpf/bpftool")
+ (synopsis "Tool for inspection and simple manipulation of eBPF programs and maps")
+ (description "bpftool allows for inspection and simple modification of BPF
+objects on the system.")
+ (license (package-license linux-libre))))
+
(define-public bpftrace
(package
(name "bpftrace")
--
2.37.2
L
L
Ludovic Courtès wrote on 7 Apr 2023 17:36
(name . Ryan Sundberg)(address . ryan@arctype.co)(address . 60401-done@debbugs.gnu.org)
874jprd7qr.fsf@gnu.org
Hi Ryan,

Ryan Sundberg <ryan@arctype.co> skribis:

Toggle quote (4 lines)
> Provides a package for `bpftool` from the Linux kernel source.
>
> * gnu/packages/linux.scm (bpftool): New variable

Sorry for the long delay! I simplified it quite a bit and applied it.

Thanks!

Ludo’.
Closed
?
Your comment

This issue is archived.

To comment on this conversation send an email to 60401@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 60401
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch