Subject: [PATCH] gnu: Add traceroute.

From: Vincent Legoll <[email-masked]>
Date: Mon, 11 Jan 2021 17:32:40 +0100

* 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")
-- 
2.30.0