diff mbox series

[bug#50757] gnu: Add babeltrace.

Message ID 20210923124113.3269-1-olivier.dion@polymtl.ca
State Accepted
Headers show
Series [bug#50757] gnu: Add babeltrace. | expand

Checks

Context Check Description
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue
cbaines/comparison success View comparision
cbaines/git branch success View Git branch
cbaines/applying patch success View Laminar job
cbaines/issue success View issue

Commit Message

Olivier Dion Sept. 23, 2021, 12:41 p.m. UTC
* gnu/packages/linux.scm (babeltrace): New variable.

Signed-off-by: Olivier Dion <olivier.dion@polymtl.ca>
---
 gnu/packages/linux.scm | 35 +++++++++++++++++++++++++++++++++++
 1 file changed, 35 insertions(+)

Comments

Sarah Morgensen Sept. 23, 2021, 7:30 p.m. UTC | #1
Hello,

Thank you for your patch.  This looks like an interesting tool!  I
test-compiled this, and I have a couple comments.

Olivier Dion <olivier.dion@polymtl.ca> writes:

> * gnu/packages/linux.scm (babeltrace): New variable.
>
> Signed-off-by: Olivier Dion <olivier.dion@polymtl.ca>

"We" don't used signed-off-by like this (signed-off-by is used by the
committer who is pushing your patch); you can leave it out.

> ---
>  gnu/packages/linux.scm | 35 +++++++++++++++++++++++++++++++++++
>  1 file changed, 35 insertions(+)
>
> diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
> index 9bb90e599e..dcfea9cc6c 100644
> --- a/gnu/packages/linux.scm
> +++ b/gnu/packages/linux.scm
> @@ -131,6 +131,7 @@
>    #:use-module (gnu packages sdl)
>    #:use-module (gnu packages serialization)
>    #:use-module (gnu packages slang)
> +  #:use-module (gnu packages sphinx)
>    #:use-module (gnu packages sqlite)
>    #:use-module (gnu packages texinfo)
>    #:use-module (gnu packages tls)
> @@ -8051,6 +8052,40 @@ enable and disable specific instrumentation points, and writes event records
>  to ring buffers shared with a consumer daemon.")
>      (license license:lgpl2.1+)))
>  
> +(define-public babeltrace
> +  (package
> +    (name "babeltrace")
> +    (version "2.0.3")

2.0.4 is available; is there a particular reason for using 2.0.3?

> +    (source (origin
> +              (method url-fetch)
> +              (uri (string-append "https://www.efficios.com/files/babeltrace/babeltrace2-"
> +                                  version ".tar.bz2"))
> +              (sha256
> +               (base32 "1804pyq7fz6rkcz4r1abkkn0pfnss13m6fd8if32s42l4lajadm5"))))
> +
> +    (build-system gnu-build-system)
> +
> +    (propagated-inputs
> +     `(("elfutils" ,elfutils)))

Is there a reason why this is propagated?  It seems like babeltrace uses
it for the libraries and headers only, so it should probably be in 'inputs'.

> +
> +    (native-inputs
> +     `(("asciidoc" ,asciidoc)
> +       ("bison" ,bison)
> +       ("flex" ,flex)
> +       ("glib" ,glib)

  guix gc --references /gnu/store/mm02i199mwwqgazk6fphz6rka8ga4fh6-babeltrace-2.0.3

says that babeltrace retains a reference to glib, so it should probably
be a regular input as well.

> +       ("pkg-config" ,pkg-config)
> +       ("python" ,python-3)
> +       ("python-sphinx" ,python-sphinx)
> +       ("xmltoman" ,xmltoman)))
> +
> +    (home-page "https://babeltrace.org/")
> +    (synopsis "Babeltrace /ˈbæbəltreɪs/ is an open-source trace manipulation toolkit.")
> +    (description "Babeltrace 2 is the reference parser implementation of the
> +Common Trace Format (CTF), a versatile trace format produced by various
> +tracers and tools such as LTTng and barectf. The Babeltrace 2 library and its
> +Python bindings can read and write CTF traces.")

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix lint babeltrace
/home/sarah/guix-apply/gnu/packages/linux.scm:8170:17: babeltrace@2.0.3: sentences in description should be followed by two spaces; possible infraction at 174
/home/sarah/guix-apply/gnu/packages/linux.scm:8169:14: babeltrace@2.0.3: no period allowed at the end of the synopsis
/home/sarah/guix-apply/gnu/packages/linux.scm:8169:14: babeltrace@2.0.3: synopsis should not start with the package name
--8<---------------cut here---------------end--------------->8---

Synopses should reduce to a noun; open-source is implied by its
inclusion in Guix; the pronunciation is more suited to the description,
but may not be necessary at all.

Consider: "Trace manipulation toolkit" or "Trace manipulation toolkit
with Python bindings" (depending on what the focus should be on)

In the description, it may be worth mentioning that it provides the
command-line tool "@command{babeltrace2}"; consider referencing the
manual page for wording.

You could even start with something like:

"Babeltrace 2 is a framework for viewing, converting, transforming, and
analyzing traces.  It is also the reference parser implementation of the
Common Trace Format (CTF), produced by tools such as LTTng and barectf.
This package provides a library with a C API, Python 3 bindings, and the
command-line tool @command{babeltrace2}."

That's just an example though!  It could definitly be improved.

Hope that helps,
--
Sarah
Olivier Dion Oct. 17, 2021, 3:19 p.m. UTC | #2
Hi!

Sorry for the late reply, I've never received the ML messages!  I had to
check the web interface to see your comments.

I will apply them soon and CC you on v2 of this patch :-)

Regards,
Olivier
diff mbox series

Patch

diff --git a/gnu/packages/linux.scm b/gnu/packages/linux.scm
index 9bb90e599e..dcfea9cc6c 100644
--- a/gnu/packages/linux.scm
+++ b/gnu/packages/linux.scm
@@ -131,6 +131,7 @@ 
   #:use-module (gnu packages sdl)
   #:use-module (gnu packages serialization)
   #:use-module (gnu packages slang)
+  #:use-module (gnu packages sphinx)
   #:use-module (gnu packages sqlite)
   #:use-module (gnu packages texinfo)
   #:use-module (gnu packages tls)
@@ -8051,6 +8052,40 @@  enable and disable specific instrumentation points, and writes event records
 to ring buffers shared with a consumer daemon.")
     (license license:lgpl2.1+)))
 
+(define-public babeltrace
+  (package
+    (name "babeltrace")
+    (version "2.0.3")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://www.efficios.com/files/babeltrace/babeltrace2-"
+                                  version ".tar.bz2"))
+              (sha256
+               (base32 "1804pyq7fz6rkcz4r1abkkn0pfnss13m6fd8if32s42l4lajadm5"))))
+
+    (build-system gnu-build-system)
+
+    (propagated-inputs
+     `(("elfutils" ,elfutils)))
+
+    (native-inputs
+     `(("asciidoc" ,asciidoc)
+       ("bison" ,bison)
+       ("flex" ,flex)
+       ("glib" ,glib)
+       ("pkg-config" ,pkg-config)
+       ("python" ,python-3)
+       ("python-sphinx" ,python-sphinx)
+       ("xmltoman" ,xmltoman)))
+
+    (home-page "https://babeltrace.org/")
+    (synopsis "Babeltrace /ˈbæbəltreɪs/ is an open-source trace manipulation toolkit.")
+    (description "Babeltrace 2 is the reference parser implementation of the
+Common Trace Format (CTF), a versatile trace format produced by various
+tracers and tools such as LTTng and barectf. The Babeltrace 2 library and its
+Python bindings can read and write CTF traces.")
+    (license license:expat)))
+
 (define-public kexec-tools
   (package
     (name "kexec-tools")