Subject: Re: bug#39961: [PATCH] gnu: Add traceroute.

From: Maxim Cournoyer <[email-masked]>
Date: Tue, 13 Jul 2021 23:15:04 -0400

Hello,

Vincent Legoll <[email-masked]> writes:

> * gnu/packages/networking.scm (traceroute): New variable.
> ---
>  gnu/packages/networking.scm | 39 +++++++++++++++++++++++++++++++++++++
>  1 file changed, 39 insertions(+)
>
> diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
> index 83a99ded72..4c3faaa578 100644
> --- a/gnu/packages/networking.scm
> +++ b/gnu/packages/networking.scm
> @@ -3680,6 +3680,45 @@ simulation, and a number of other applications.")
>  network.  This must be enabled on the target host, usually in the BIOS.")
>      (license license:gpl2)))
>  
> +(define-public traceroute
> +  (package
> +    (name "traceroute")
> +    (version "2.1.0")
> +    (source
> +     (origin
> +       (method url-fetch)
> +       (uri (string-append "mirror://sourceforge/traceroute/traceroute/"
> +                           "traceroute-" version "/traceroute-" version ".tar.gz"))
> +       (sha256
> +        (base32 "1dh32vcfawkl1p9g4ral1p0camds4paqr8db1kaqxwyk6hmd4s9n"))))
> +    (build-system gnu-build-system)
> +    (arguments
> +     `(#:tests? #f                      ; No tests.
> +       #:make-flags
> +       (list (string-append "LIBRARY_PATH="
> +                            (assoc-ref %build-inputs "libc")           "/lib")
> +             (string-append "CFLAGS=-I"
> +                            (assoc-ref %build-inputs "kernel-headers") "/include")
> +             "LDFLAGS=-lm -L../libsupp"
> +             (string-append "prefix=" (assoc-ref %outputs "out")))
> +       #:phases
> +       (modify-phases %standard-phases
> +         (add-after 'unpack 'patch-make
> +           (lambda _
> +             (substitute* "default.rules"
> +               ((" \\$\\(LIBDEPS\\)") "$(filter-out -l%,$(LIBDEPS))"))
> +             #t))
> +         (delete 'bootstrap)           ; there is no configure.ac file
> +         (delete 'configure))))        ; there is no configure script
> +    (home-page "http://traceroute.sourceforge.net/")
> +    (synopsis "Tracks the route taken by packets over an IP network")
> +    (description "Traceroute tracks the route packets taken from an IP network
> +on their way to a given host.  It utilizes the IP protocol's time to live (TTL)
> +field and attempts to elicit an ICMP TIME_EXCEEDED response from each gateway
> +along the path to the host.")
> +    (license '(license:gpl2+
> +               license:lgpl2.1+)))) ; for the libsupp subdirectory
> +
>  (define-public vde2
>    (package
>      (name "vde2")

I edited it to expound the description someone and for cosmetic reasons
(fitting in the 80 chars limit for example), like so:

--8<---------------cut here---------------start------------->8---
1 file changed, 18 insertions(+), 14 deletions(-)
gnu/packages/networking.scm | 32 ++++++++++++++++++--------------

modified   gnu/packages/networking.scm
@@ -3796,17 +3796,19 @@ network.  This must be enabled on the target host, usually in the BIOS.")
      (origin
        (method url-fetch)
        (uri (string-append "mirror://sourceforge/traceroute/traceroute/"
-                           "traceroute-" version "/traceroute-" version ".tar.gz"))
+                           "traceroute-" version "/traceroute-"
+                           version ".tar.gz"))
        (sha256
         (base32 "1dh32vcfawkl1p9g4ral1p0camds4paqr8db1kaqxwyk6hmd4s9n"))))
     (build-system gnu-build-system)
     (arguments
-     `(#:tests? #f                      ; No tests.
+     `(#:tests? #f                      ;no test suite
        #:make-flags
        (list (string-append "LIBRARY_PATH="
-                            (assoc-ref %build-inputs "libc")           "/lib")
+                            (assoc-ref %build-inputs "libc") "/lib")
              (string-append "CFLAGS=-I"
-                            (assoc-ref %build-inputs "kernel-headers") "/include")
+                            (assoc-ref %build-inputs "kernel-headers")
+                            "/include")
              "LDFLAGS=-lm -L../libsupp"
              (string-append "prefix=" (assoc-ref %outputs "out")))
        #:phases
@@ -3814,18 +3816,20 @@ network.  This must be enabled on the target host, usually in the BIOS.")
          (add-after 'unpack 'patch-make
            (lambda _
              (substitute* "default.rules"
-               ((" \\$\\(LIBDEPS\\)") "$(filter-out -l%,$(LIBDEPS))"))
-             #t))
-         (delete 'bootstrap)           ; there is no configure.ac file
-         (delete 'configure))))        ; there is no configure script
+               ((" \\$\\(LIBDEPS\\)") "$(filter-out -l%,$(LIBDEPS))"))))
+         (delete 'bootstrap)            ;no configure.ac file
+         (delete 'configure))))         ;no configure script
     (home-page "http://traceroute.sourceforge.net/")
     (synopsis "Tracks the route taken by packets over an IP network")
-    (description "Traceroute tracks the route packets taken from an IP network
-on their way to a given host.  It utilizes the IP protocol's time to live (TTL)
-field and attempts to elicit an ICMP TIME_EXCEEDED response from each gateway
-along the path to the host.")
-    (license '(license:gpl2+
-               license:lgpl2.1+)))) ; for the libsupp subdirectory
+    (description "This package provides a modern, but Linux-specific
+implementation of the @command{traceroute} command that can be used to follow
+the route taken by packets on an IP network on their way to a given host.  It
+utilizes the IP protocol's time to live (TTL) field and attempts to elicit an
+ICMP TIME_EXCEEDED response from each gateway along the path to the host.
+Compared to other implementations, this @command{traceroute} command allows
+some traces for unprivileged users.")
+    (license (list license:gpl2+
+                   license:lgpl2.1+)))) ;for the libsupp subdirectory
 
 (define-public vde2
   (package
--8<---------------cut here---------------end--------------->8---

And pushed as 59e97a67ba.

Thank you!

Closing.

Maxim