[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#48889] [PATCH 4/4] bpftool: new package
From: |
Ryan Sundberg |
Subject: |
[bug#48889] [PATCH 4/4] bpftool: new package |
Date: |
Wed, 9 Jun 2021 00:06:04 -0700 |
Here is the revised bpftool patch. Responses below.
--
Sincerely,
Ryan Sundberg
On 6/7/21 2:50 AM, Maxime Devos wrote:
> Ryan Sundberg via Guix-patches via schreef op zo 06-06-2021 om 11:52 [-0700]:
>> Adds the bpftool package from the Linux kernel source tree.
>> ---
>> gnu/packages/linux.scm | 40 ++++++++++++++++++++++++++++++++++++++++
>> 1 file changed, 40 insertions(+)
>>
>> diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
>> index c8ec310665..06bb344475 100644
>> --- a/gnu/packages/linux.scm
>> +++ b/gnu/packages/linux.scm
>> @@ -54,6 +54,7 @@
>> ;;; Copyright © 2020 David Dashyan <mail@davie.li>
>> ;;; Copyright © 2020 pukkamustard <pukkamustard@posteo.net>
>> ;;; Copyright © 2021 B. Wilson <elaexuotee@wilsonb.com>
>> +;;; Copyright © 2021 Ryan Sundberg <ryan@arctype.co>
>> ;;;
>> ;;; This file is part of GNU Guix.
>> ;;;
>> @@ -8108,3 +8109,42 @@ Availability and Serviceability} reports from Linux
>> kernel trace events.
>> These trace events are logged in @file{/sys/kernel/debug/tracing} and
reported
>> through standard log mechanisms like syslog.")
>> (license license:gpl2)))
>> +
>> +(define-public bpftool
>> + (package
>> + (name "bpftool")
>> + (version (package-version linux-libre))
>> + (source (package-source linux-libre))
>> + (build-system gnu-build-system)
>> + (arguments
>> + `(#:tests? #f
>
> Why are tests disabled?
This program has no tests. I commented as such in the new patch.
>
>> + #:phases
>> + (modify-phases %standard-phases
>> + (add-before 'configure 'chdir
>> + (lambda _ (chdir "tools/bpf") #t))
>> + (delete 'configure)
>> + (replace 'build
>> + (lambda _ (invoke "make" "CC=gcc" "bpftool") #t))
>
> Use ,(string-append "CC=" (cc-for-target)), to make sure cross-compiling
> bpftools
> works.
>
>> + (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" "bpftool"
>> + "install")
>> + #t))))))
>> + (inputs
>> + `(("bison" ,bison)
>
> Bison looks like a native input to me.
>
>> + ("python" ,python-3)
>
> Could be input, could be native-input. I don't know what's appropriate for
> bpftools.
You are right, python should be a native-input.
>
> You can check with
> ./pre-inst-env guix build bpftools --target=aarch64-linux-gnu
Cross-compiling produced this linker error I'm not sure how to deal with
right now:
ld: staticobjs/libbpf.o: error adding symbols: file in wrong format
>
> If there is "command not found: python" or something like that,
> you'll need to move python to native-inputs.
>
>> + ("readline" ,readline)))
>> + (propagated-inputs
>> + `(("libcap" ,libcap)
>> + ("libelf" ,libelf)
>> + ("zlib" ,zlib)))
>
> bpftool is a tool, and not a library, right?
> Then these libraries should be in inputs, not propagated-inputs,
> to avoid polluting the profile.
>
> bpftool should still have access to these libraries by ELF's RPATH
> or something like that.
>
>> + (home-page (package-home-page linux-libre))
>
> I don't see anything about bpftools on
> <https://www.gnu.org/software/linux-libre/>.
> Maybe bpftools has a wiki somewhere?
I linked https://lwn.net/Articles/739357/ as the new home-page, which is
the closest this program gets to online documentation that I could find.
>
>> + (synopsis "bpftool is a 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. Note that format of the output of all
tools is not guaranteed to be stable and should not be depended upon.")
>
> Line is too long. Also, what's up with surrounding bpftools with *asterisks*?
Copy-paste error
>
> Greetings,
> Maxime.
>
0001-gnu-Add-bpftool-in-sync-with-the-Linux-kernel-versio.patch
Description: Text Data
OpenPGP_signature
Description: OpenPGP digital signature