(address . guix-patches@gnu.org)(name . Marius Bakke)(address . mbakke@fastmail.com)
* gnu/packages/networking.scm (hping): New public variable.
---
gnu/packages/networking.scm | 67 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 67 insertions(+)
Toggle diff (101 lines)
diff --git a/gnu/packages/networking.scm b/gnu/packages/networking.scm
index a6c104297..4c1771459 100644
--- a/gnu/packages/networking.scm
+++ b/gnu/packages/networking.scm
@@ -18,6 +18,7 @@
;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
;;; Copyright © 2017 Gábor Boskovits <boskovits@gmail.com>
;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
+;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -38,6 +39,7 @@
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix packages)
#:use-module (guix download)
+ #:use-module (guix git-download)
#:use-module (guix build-system cmake)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
@@ -75,6 +77,7 @@
#:use-module (gnu packages qt)
#:use-module (gnu packages readline)
#:use-module (gnu packages ssh)
+ #:use-module (gnu packages tcl)
#:use-module (gnu packages textutils)
#:use-module (gnu packages tls)
#:use-module (gnu packages valgrind)
@@ -563,6 +566,70 @@ send out a ping packet and move on to the next target in a round-robin
fashion.")
(license license:expat)))
+(define-public hping
+ (let ((commit "3547c7691742c6eaa31f8402e0ccbb81387c1b99")
+ (revision "0"))
+ (package
+ (name "hping")
+ (version (string-append "3.0.0-" revision "-" (string-take commit 7)))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/antirez/hping")
+ (commit commit)))
+ (file-name (string-append name "-" version "-checkout"))
+ (sha256
+ (base32
+ "0y0n1ybij3yg9lfgzcwfmjz1sjg913zcqrv391xx83dm0j80sdpb"))))
+ (build-system gnu-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'configure 'prepare-build
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((tcl (assoc-ref inputs "tcl")))
+ ;; Search for bpf.h in the right place.
+ (substitute* '("libpcap_stuff.c" "script.c")
+ (("<net/bpf\\.h>") "<pcap/bpf.h>"))
+ ;; Likewise for TCL.
+ (substitute* "configure"
+ (("/usr/include/tcl.h")
+ (string-append tcl "/include/tcl.h"))
+ (("ls -1 /usr/local/lib")
+ (string-append "ls -1 " tcl "/lib")))
+ ;; Required environment variables.
+ (setenv "CC" "gcc")
+ (setenv "TCLSH" (which "tclsh"))
+ #t)))
+ (add-before 'install 'pre-install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (sbin (string-append out "/sbin"))
+ (man (string-append out "/share/man")))
+ (mkdir-p sbin)
+ (mkdir-p (string-append man "/man8"))
+ (substitute* "Makefile"
+ (("/usr/sbin") sbin)
+ (("\\$\\{INSTALL_MANPATH\\}") man))
+ ;; Fix references to wrong executable name.
+ (substitute* "docs/hping3.8"
+ (("hping2") "hping3")
+ (("HPING2") "HPING3"))
+ #t))))
+ #:tests? #f)) ;no tests
+ (inputs
+ `(("libpcap" ,libpcap)
+ ("tcl" ,tcl)))
+ (home-page "http://www.hping.org/")
+ (synopsis "Network testing tool")
+ (description
+ "hping is a command-line oriented TCP/IP packet assembler/analyzer.
+The interface is inspired by the @command{ping(8)} command, but hping isn't
+only able to send ICMP echo requests. It supports TCP, UDP, ICMP and RAW-IP
+protocols, has a traceroute mode, the ability to send files between a covered
+channel, and many other features.")
+ (license license:gpl2)))) ;strlcpy.c is BSD-3
+
(define-public httping
(package
(name "httping")
--
2.14.3