guix-patches
[Top][All Lists]
Advanced

[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.
> 

Attachment: 0001-gnu-Add-bpftool-in-sync-with-the-Linux-kernel-versio.patch
Description: Text Data

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]