gnu: wireshark: Update to 2.2.7.
[jackhill/guix/guix.git] / gnu / packages / networking.scm
CommitLineData
f6d9b3de 1;;; GNU Guix --- Functional package management for GNU
89e34644 2;;; Copyright © 2014, 2017 Ludovic Courtès <ludo@gnu.org>
42c939a8 3;;; Copyright © 2015, 2016, 2017 Ricardo Wurmus <rekado@elephly.net>
a2b2aebe 4;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
61253c4f 5;;; Copyright © 2015, 2016, 2017 Stefan Reichör <stefan@xsteve.at>
95146623 6;;; Copyright © 2016 Raimon Grau <raimonster@gmail.com>
e05647ad 7;;; Copyright © 2016 Tobias Geerinckx-Rice <me@tobias.gr>
42ff54d5 8;;; Copyright © 2016 John Darrington <jmd@gnu.org>
834a2fc1 9;;; Copyright © 2016 Nicolas Goaziou <mail@nicolasgoaziou.fr>
d85b398b 10;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
5ed96226 11;;; Copyright © 2016, 2017 ng0 <ng0@libertad.pw>
307347fe 12;;; Copyright © 2016 Arun Isaac <arunisaac@systemreboot.net>
b747718e 13;;; Copyright © 2016 Benz Schenk <benz.schenk@uzh.ch>
38510546 14;;; Copyright © 2016, 2017 Pjotr Prins <pjotr.guix@thebird.nl>
3cd501c8 15;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
cc24bf98 16;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
af5faef9 17;;; Copyright © 2017 Efraim Flashner <efraim@flashner.co.il>
f6d9b3de
LC
18;;;
19;;; This file is part of GNU Guix.
20;;;
21;;; GNU Guix is free software; you can redistribute it and/or modify it
22;;; under the terms of the GNU General Public License as published by
23;;; the Free Software Foundation; either version 3 of the License, or (at
24;;; your option) any later version.
25;;;
26;;; GNU Guix is distributed in the hope that it will be useful, but
27;;; WITHOUT ANY WARRANTY; without even the implied warranty of
28;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
29;;; GNU General Public License for more details.
30;;;
31;;; You should have received a copy of the GNU General Public License
32;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
33
8a413bca 34(define-module (gnu packages networking)
f6d9b3de
LC
35 #:use-module ((guix licenses) #:prefix license:)
36 #:use-module (guix packages)
37 #:use-module (guix download)
834a2fc1 38 #:use-module (guix build-system glib-or-gtk)
f6d9b3de 39 #:use-module (guix build-system gnu)
af5faef9 40 #:use-module (guix build-system perl)
9e6c7c42 41 #:use-module (guix build-system python)
8d60dd71 42 #:use-module (gnu packages)
834a2fc1
NG
43 #:use-module (gnu packages admin)
44 #:use-module (gnu packages adns)
82ee141b 45 #:use-module (gnu packages algebra)
834a2fc1
NG
46 #:use-module (gnu packages audio)
47 #:use-module (gnu packages bison)
998afc36 48 #:use-module (gnu packages check)
4fb5f830 49 #:use-module (gnu packages code)
834a2fc1 50 #:use-module (gnu packages compression)
9e6c7c42 51 #:use-module (gnu packages curl)
d85b398b 52 #:use-module (gnu packages databases)
834a2fc1 53 #:use-module (gnu packages flex)
82ee141b 54 #:use-module (gnu packages gettext)
834a2fc1
NG
55 #:use-module (gnu packages gnupg)
56 #:use-module (gnu packages gtk)
9c798f90 57 #:use-module (gnu packages libidn)
834a2fc1
NG
58 #:use-module (gnu packages linux)
59 #:use-module (gnu packages lua)
89e34644 60 #:use-module (gnu packages kerberos)
834a2fc1 61 #:use-module (gnu packages ncurses)
d85b398b 62 #:use-module (gnu packages pcre)
834a2fc1 63 #:use-module (gnu packages perl)
998afc36 64 #:use-module (gnu packages pkg-config)
834a2fc1 65 #:use-module (gnu packages python)
4fb5f830
TGR
66 #:use-module (gnu packages textutils)
67 #:use-module (gnu packages tls)
af5faef9
EF
68 #:use-module (gnu packages valgrind)
69 #:use-module (ice-9 match))
f6d9b3de 70
c791efde
JD
71(define-public macchanger
72 (package
73 (name "macchanger")
74 (version "1.6.0")
75 (source (origin
76 (method url-fetch)
77 (uri (string-append "mirror://gnu/"
78 name "/" name "-" version ".tar.gz"))
79 (sha256
80 (base32
81 "1xsiivjjyhqcs6dyjcshrnxlgypvyfzacjz7gcjgl88xiw9lylri"))))
82 (build-system gnu-build-system)
6fd52309 83 (home-page "https://www.gnu.org/software/macchanger/")
a3947cb1 84 (synopsis "Viewing and manipulating MAC addresses of network interfaces")
c791efde
JD
85 (description "GNU MAC Changer is a utility for viewing and changing MAC
86addresses of networking devices. New addresses may be set explicitly or
87randomly. They can include MAC addresses of the same or other hardware vendors
38510546 88or, more generally, MAC addresses of the same category of hardware.")
c791efde
JD
89 (license license:gpl2+)))
90
1e61e22f
TUBK
91(define-public miredo
92 (package
93 (name "miredo")
94 (version "1.2.6")
95 (source (origin
96 (method url-fetch)
97 (uri (string-append "http://www.remlab.net/files/miredo/miredo-"
98 version ".tar.xz"))
99 (sha256
100 (base32
101 "0j9ilig570snbmj48230hf7ms8kvcwi2wblycqrmhh85lksd49ps"))))
102 (build-system gnu-build-system)
103 (arguments
104 '(#:phases
105 (modify-phases %standard-phases
106 ;; The checkconf test in src/ requires network access.
107 (add-before
108 'check 'disable-checkconf-test
109 (lambda _
110 (substitute* "src/Makefile"
111 (("^TESTS = .*") "TESTS = \n")))))))
112 (home-page "http://www.remlab.net/miredo/")
113 (synopsis "Teredo IPv6 tunneling software")
114 (description
115 "Miredo is an implementation (client, relay, server) of the Teredo
116specification, which provides IPv6 Internet connectivity to IPv6 enabled hosts
117residing in IPv4-only networks, even when they are behind a NAT device.")
118 (license license:gpl2+)))
119
f6d9b3de
LC
120(define-public socat
121 (package
122 (name "socat")
4efc8eb2 123 (version "1.7.3.1")
f6d9b3de
LC
124 (source (origin
125 (method url-fetch)
126 (uri (string-append
127 "http://www.dest-unreach.org/socat/download/socat-"
128 version ".tar.bz2"))
129 (sha256
130 (base32
4efc8eb2 131 "1apvi7sahcl44arnq1ad2y6lbfqnmvx7nhz9i3rkk0f382anbnnj"))))
f6d9b3de
LC
132 (build-system gnu-build-system)
133 (arguments '(#:tests? #f)) ;no 'check' phase
134 (inputs `(("openssl" ,openssl)))
135 (home-page "http://www.dest-unreach.org/socat/")
136 (synopsis
137 "Open bidirectional communication channels from the command line")
138 (description
139 "socat is a relay for bidirectional data transfer between two independent
140data channels---files, pipes, devices, sockets, etc. It can create
141\"listening\" sockets, named pipes, and pseudo terminals.
142
143socat can be used, for instance, as TCP port forwarder, as a shell interface
144to UNIX sockets, IPv6 relay, for redirecting TCP oriented programs to a serial
145line, to logically connect serial lines on different computers, or to
146establish a relatively secure environment (su and chroot) for running client
e881752c 147or server shell scripts with network connections.")
f6d9b3de 148 (license license:gpl2)))
603090d8 149
c4947d0e
JD
150(define-public tcp-wrappers
151 (package
152 (name "tcp-wrappers")
153 (version "7.6")
154 (source (origin
155 (method url-fetch)
156 (uri (string-append
157 "ftp://ftp.porcupine.org/pub/security/tcp_wrappers_"
158 version ".tar.gz"))
159 (sha256
160 (base32
161 "0p9ilj4v96q32klavx0phw9va21fjp8vpk11nbh6v2ppxnnxfhwm"))))
162 (build-system gnu-build-system)
163 (arguments
164 `(#:phases
165 (modify-phases %standard-phases
166 (delete 'configure) ; there is no configure script
167 (delete 'check) ; there are no tests
168 (replace 'build
169 (lambda _
170 (chmod "." #o755)
171 ;; Upstream doesn't generate a shared library. So we have to do it.
172 (setenv "CC" "gcc -fno-builtin -fPIC")
173 (substitute* "Makefile"
174 (("^(all[^\n]*)" line) (string-append line " libwrap.so\n
175libwrap.so: $(LIB_OBJ)\n
176\tgcc -shared $^ -o $@\n")))
177 ;; Deal with some gcc breakage.
178 (substitute* "percent_m.c"
179 (("extern char .sys_errlist.*;") ""))
180 (substitute* "scaffold.c"
181 (("extern char .malloc.*;") ""))
182 ;; This, believe it or not, is the recommended way to build!
183 (zero? (system* "make" "REAL_DAEMON_DIR=/etc" "linux"))))
184 ;; There is no make install stage, so we have to do it ourselves.
185 (replace 'install
186 (lambda _
187 (let ((out (assoc-ref %outputs "out"))
188 (man-pages `("hosts_access.3"
189 "hosts_access.5"
190 "hosts_options.5"
191 "tcpd.8"
192 "tcpdchk.8"
193 "tcpdmatch.8"))
194 (libs `("libwrap.a"
195 "libwrap.so"))
196 (headers `("tcpd.h"))
197 (bins `("safe_finger"
198 "tcpd"
199 "tcpdchk"
200 "tcpdmatch"
201 "try-from")))
202 (for-each
203 (lambda (x)
204 (install-file x (string-append out "/include")))
205 headers)
206 (for-each
207 (lambda (x)
208 (install-file x (string-append out "/share/man/man"
209 (string-take-right x 1))))
210 man-pages)
211 (for-each
212 (lambda (x)
213 (install-file x (string-append out "/lib/")))
214 libs)
215 (for-each
216 (lambda (x)
217 (install-file x (string-append out "/bin/")))
218 bins)))))))
219 (home-page "http://www.porcupine.org")
220 (synopsis "Monitor and filter incoming requests for network services")
221 (description "With this package you can monitor and filter incoming requests for
222network services. It includes a library which may be used by daemons to
223transparently check connection attempts against an access control list.")
224 (license (license:non-copyleft "file://DISCLAIMER"
225 "See the file DISCLAIMER in the distribution."))))
226
227
603090d8
RW
228(define-public zeromq
229 (package
230 (name "zeromq")
d6c108a9 231 (version "4.0.7")
603090d8
RW
232 (source (origin
233 (method url-fetch)
234 (uri (string-append "http://download.zeromq.org/zeromq-"
235 version ".tar.gz"))
236 (sha256
237 (base32
d6c108a9 238 "00vvwhgcdr1lva2pavicvy92iad0hj8cf71n702hv6blw1kjj2z0"))))
603090d8
RW
239 (build-system gnu-build-system)
240 (home-page "http://zeromq.org")
241 (synopsis "Library for message-based applications")
242 (description
243 "The 0MQ lightweight messaging kernel is a library which extends the
244standard socket interfaces with features traditionally provided by specialized
245messaging middle-ware products. 0MQ sockets provide an abstraction of
246asynchronous message queues, multiple messaging patterns, message
247filtering (subscriptions), seamless access to multiple transport protocols and
248more.")
249 (license license:lgpl3+)))
a2b2aebe 250
2c1286f4
SB
251(define-public librdkafka
252 (package
253 (name "librdkafka")
254 (version "0.9.1")
255 (source (origin
256 (method url-fetch)
257 (uri (string-append
258 "https://github.com/edenhill/librdkafka/archive/"
259 version ".tar.gz"))
260 (file-name (string-append name "-" version ".tar.gz"))
261 (sha256
262 (base32
263 "10ldx7g7ymmg17snzx78vy4n8ma1rjx0agzi34g15j2fk867xmas"))))
264 (build-system gnu-build-system)
265 (arguments
266 '(#:phases
267 (modify-phases %standard-phases
268 (replace 'configure
269 ;; its custom configure script doesn't understand 'CONFIG_SHELL'.
270 (lambda* (#:key outputs #:allow-other-keys)
271 (let ((out (assoc-ref outputs "out")))
272 ;; librdkafka++.so lacks RUNPATH for librdkafka.so
273 (setenv "LDFLAGS"
274 (string-append "-Wl,-rpath=" out "/lib"))
275 (zero? (system* "./configure"
276 (string-append "--prefix=" out)))))))))
277 (native-inputs
278 `(("python" ,python-wrapper)))
279 (propagated-inputs
280 `(("zlib" ,zlib))) ; in the Libs.private field of rdkafka.pc
281 (home-page "https://github.com/edenhill/librdkafka")
282 (synopsis "Apache Kafka C/C++ client library")
283 (description
284 "librdkafka is a C library implementation of the Apache Kafka protocol,
285containing both Producer and Consumer support.")
286 (license license:bsd-2)))
287
a2b2aebe
MW
288(define-public libndp
289 (package
290 (name "libndp")
ad42be83 291 (version "1.6")
a2b2aebe
MW
292 (source (origin
293 (method url-fetch)
294 (uri (string-append "http://libndp.org/files/"
295 name "-" version ".tar.gz"))
296 (sha256
297 (base32
ad42be83 298 "03mczwrxqbp54msafxzzyhaazkvjdwm2kipjkrb5xg8kw22glz8c"))))
a2b2aebe
MW
299 (build-system gnu-build-system)
300 (home-page "http://libndp.org/")
301 (synopsis "Library for Neighbor Discovery Protocol")
302 (description
303 "libndp contains a library which provides a wrapper for IPv6 Neighbor
304Discovery Protocol. It also provides a tool named ndptool for sending and
305receiving NDP messages.")
306 (license license:lgpl2.1+)))
5df2316d
MW
307
308(define-public ethtool
309 (package
310 (name "ethtool")
22ffa153 311 (version "4.11")
5df2316d
MW
312 (source (origin
313 (method url-fetch)
314 (uri (string-append "mirror://kernel.org/software/network/"
315 name "/" name "-" version ".tar.xz"))
316 (sha256
317 (base32
22ffa153 318 "1cp132kk2xd2cwn1ysjv0cl8i9lnq3n4zi4wy676p5k4h2mfvn0j"))))
5df2316d
MW
319 (build-system gnu-build-system)
320 (home-page "https://www.kernel.org/pub/software/network/ethtool/")
321 (synopsis "Display or change Ethernet device settings")
322 (description
323 "ethtool can be used to query and change settings such as speed,
324auto-negotiation and checksum offload on many network devices, especially
325Ethernet devices.")
326 (license license:gpl2)))
24a848c8
SR
327
328(define-public ifstatus
329 (package
330 (name "ifstatus")
331 (version "1.1.0")
332 (source (origin
333 (method url-fetch)
de67e922
LF
334 (uri (string-append "mirror://sourceforge/ifstatus/ifstatus/"
335 "ifstatus%20v" version "/ifstatus-v"
24a848c8
SR
336 version ".tar.gz"))
337 (sha256
338 (base32
339 "045cbsq9ps32j24v8y5hpyqxnqn9mpaf3mgvirlhgpqyb9jsia0c"))
340 (modules '((guix build utils)))
341 (snippet
342 '(substitute* "Main.h"
343 (("#include <stdio.h>")
344 "#include <stdio.h>\n#include <stdlib.h>")))))
345 (build-system gnu-build-system)
346 (arguments
347 '(#:tests? #f ; no "check" target
348 #:phases
349 (modify-phases %standard-phases
350 (delete 'configure) ; no configure script
351 (replace 'install
352 (lambda* (#:key outputs #:allow-other-keys)
353 (let* ((out (assoc-ref outputs "out"))
354 (bin (string-append out "/bin")))
355 (mkdir-p bin)
356 (copy-file "ifstatus"
357 (string-append bin "/ifstatus"))))))))
358 (inputs `(("ncurses" ,ncurses)))
359 (home-page "http://ifstatus.sourceforge.net/graphic/index.html")
360 (synopsis "Text based network interface status monitor")
361 (description
362 "IFStatus is a simple, easy-to-use program for displaying commonly
8874f766 363needed/wanted real-time traffic statistics of multiple network
24a848c8
SR
364interfaces, with a simple and efficient view on the command line. It is
365intended as a substitute for the PPPStatus and EthStatus projects.")
8874f766 366 (license license:gpl2+)))
95146623
RG
367
368(define-public nload
369 (package
370 (name "nload")
371 (version "0.7.4")
372 (source (origin
373 (method url-fetch)
de67e922
LF
374 (uri (string-append "mirror://sourceforge/nload/nload/" version
375 "/nload-" version ".tar.gz"))
95146623
RG
376 (sha256
377 (base32
378 "1rb9skch2kgqzigf19x8bzk211jdfjfdkrcvaqyj89jy2pkm3h61"))))
379 (build-system gnu-build-system)
380 (inputs `(("ncurses" ,ncurses)))
381 (home-page "http://www.roland-riegel.de/nload/")
382 (synopsis "Realtime console network usage monitor")
383 (description
384 "Nload is a console application which monitors network traffic and
385bandwidth usage in real time. It visualizes the in- and outgoing traffic using
d1e4ad1b 386two graphs, and provides additional info like total amount of transferred data
95146623
RG
387and min/max network usage.")
388 (license license:gpl2+)))
998afc36
TGR
389
390(define-public iodine
391 (package
392 (name "iodine")
393 (version "0.7.0")
394 (source (origin
395 (method url-fetch)
396 (uri (string-append "http://code.kryo.se/" name "/"
397 name "-" version ".tar.gz"))
398 (sha256
399 (base32
400 "0gh17kcxxi37k65zm4gqsvbk3aw7yphcs3c02pn1c4s2y6n40axd"))))
401 (build-system gnu-build-system)
402 (arguments
403 '(#:phases
404 (modify-phases %standard-phases
405 (delete 'configure)
60880ac5
TGR
406 (add-before 'build 'fix-ifconfig-path
407 ;; This package works only with the net-tools version of ifconfig.
408 (lambda* (#:key inputs #:allow-other-keys)
409 (substitute* "src/tun.c"
410 (("PATH=[^ ]* ")
411 (string-append (assoc-ref inputs "net-tools") "/sbin/")))))
998afc36 412 (add-before 'check 'delete-failing-tests
60880ac5 413 ;; Avoid https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=802105.
998afc36
TGR
414 (lambda _
415 (substitute* "tests/common.c"
416 (("tcase_add_test\\(tc, \
417test_parse_format_ipv(4(|_listen_all|_mapped_ipv6)|6)\\);")
418 "")))))
419 #:make-flags (list "CC=gcc"
420 (string-append "prefix=" (assoc-ref %outputs "out")))
421 #:test-target "test"))
60880ac5
TGR
422 (inputs `(("net-tools" ,net-tools)
423 ("zlib" ,zlib)))
998afc36
TGR
424 (native-inputs `(("check" ,check)
425 ("pkg-config" ,pkg-config)))
426 (home-page "http://code.kryo.se/iodine/")
427 (synopsis "Tunnel IPv4 data through a DNS server")
428 (description "Iodine tunnels IPv4 data through a DNS server. This
429can be useful in different situations where internet access is firewalled, but
430DNS queries are allowed. The bandwidth is asymmetrical, with limited upstream
431and up to 1 Mbit/s downstream.")
432 ;; src/md5.[ch] is released under the zlib license
433 (license (list license:isc license:zlib))))
834a2fc1 434
9c798f90 435(define-public whois
436 (package
437 (name "whois")
22239ae2 438 (version "5.2.16")
9c798f90 439 (source
440 (origin
441 (method url-fetch)
442 (uri (string-append "mirror://debian/pool/main/w/whois/"
443 name "_" version ".tar.xz"))
444 (sha256
445 (base32
22239ae2 446 "0fpwac26ja0rdqsbxyjcsk8gxgixfpxk0baj3rhnpaff3jv0ilp9"))))
9c798f90 447 (build-system gnu-build-system)
448 ;; TODO: unbundle mkpasswd binary + its po files.
449 (arguments
450 `(#:tests? #f ; Does not exist
451 #:make-flags (list "CC=gcc"
452 (string-append "prefix=" (assoc-ref %outputs "out")))
453 #:phases
454 (modify-phases %standard-phases
455 (delete 'configure) ; No configure
456 (add-before 'build 'setenv
457 (lambda _
458 (setenv "HAVE_ICONV" "1")
268b3802
EF
459 (setenv "HAVE_LIBIDN" "1")
460 #t)))))
9c798f90 461 (inputs
462 `(("libidn" ,libidn)))
463 (native-inputs
7c90d0f4 464 `(("gettext" ,gettext-minimal)
9c798f90 465 ("perl" ,perl)))
466 (synopsis "Improved whois client")
467 (description "This whois client is intelligent and can
468automatically select the appropriate whois server for most queries.
469Because of historical reasons this also includes a tool called mkpasswd
470which can be used to encrypt a password with @code{crypt(3)}.")
471 (home-page "https://github.com/rfc1036/whois")
472 (license license:gpl2+)))
473
834a2fc1
NG
474(define-public wireshark
475 (package
476 (name "wireshark")
ec450c36 477 (version "2.2.7")
834a2fc1
NG
478 (synopsis "Network traffic analyzer")
479 (source
480 (origin
481 (method url-fetch)
482 (uri (string-append "https://www.wireshark.org/download/src/wireshark-"
483 version ".tar.bz2"))
484 (sha256
485 (base32
ec450c36 486 "1dfvhra5v6xhzbp097qsxi0zvirw0srbasl4v1wjf58v49idz7b8"))))
834a2fc1
NG
487 (build-system glib-or-gtk-build-system)
488 (inputs `(("bison" ,bison)
489 ("c-ares" ,c-ares)
490 ("flex" ,flex)
491 ("gnutls" ,gnutls)
492 ("gtk+" ,gtk+)
493 ("libcap" ,libcap)
494 ("libgcrypt" ,libgcrypt)
495 ("libnl" ,libnl)
496 ("libpcap" ,libpcap)
331ef882 497 ("lua" ,lua-5.2)
834a2fc1
NG
498 ("krb5" ,mit-krb5)
499 ("openssl" ,openssl)
500 ("portaudio" ,portaudio)
501 ("sbc" ,sbc)
502 ("zlib" ,zlib)))
503 (native-inputs `(("perl" ,perl)
504 ("pkg-config" ,pkg-config)
505 ("python" ,python-wrapper)))
506 (arguments
507 `(#:configure-flags
508 (list (string-append "--with-c-ares=" (assoc-ref %build-inputs "c-ares"))
509 (string-append "--with-krb5=" (assoc-ref %build-inputs "krb5"))
510 (string-append "--with-libcap=" (assoc-ref %build-inputs "libcap"))
511 (string-append "--with-lua=" (assoc-ref %build-inputs "lua"))
512 (string-append "--with-pcap=" (assoc-ref %build-inputs "libpcap"))
513 (string-append "--with-portaudio="
514 (assoc-ref %build-inputs "portaudio"))
515 (string-append "--with-sbc=" (assoc-ref %build-inputs "sbc"))
516 (string-append "--with-ssl=" (assoc-ref %build-inputs "openssl"))
517 (string-append "--with-zlib=" (assoc-ref %build-inputs "zlib"))
518 "--without-qt")))
519 (description "Wireshark is a network protocol analyzer, or @dfn{packet
520sniffer}, that lets you capture and interactively browse the contents of
521network frames.")
522 (license license:gpl2+)
523 (home-page "https://www.wireshark.org/")))
82ee141b 524
61253c4f
SR
525(define-public fping
526 (package
527 (name "fping")
528 (version "4.0")
529 (source
530 (origin
531 (method url-fetch)
532 (uri (string-append "https://fping.org/dist/fping-"
533 version ".tar.gz"))
534 (sha256
535 (base32
536 "1kp81wchi79l8z8rrj602fpjrd8bi84y3i7fsaclzlwap5943sv7"))))
537 (build-system gnu-build-system)
538 (home-page "http://fping.org/")
539 (synopsis "Send ICMP ECHO_REQUEST packets to network hosts")
540 (description
541 "fping is a ping like program which uses the Internet Control Message
542Protocol (ICMP) echo request to determine if a target host is responding.
543fping differs from ping in that you can specify any number of targets on the
544command line, or specify a file containing the lists of targets to ping.
545Instead of sending to one target until it times out or replies, fping will
546send out a ping packet and move on to the next target in a round-robin
547fashion.")
548 (license license:expat)))
549
82ee141b
TGR
550(define-public httping
551 (package
552 (name "httping")
2f968727 553 (version "2.5")
82ee141b
TGR
554 (source
555 (origin
556 (method url-fetch)
557 (uri (string-append "https://www.vanheusden.com/httping/httping-"
558 version ".tgz"))
559 (sha256
560 (base32
2f968727 561 "1y7sbgkhgadmd93x1zafqc4yp26ssiv16ni5bbi9vmvvdl55m29y"))))
82ee141b
TGR
562 (build-system gnu-build-system)
563 (native-inputs
b94a6ca0 564 `(("gettext" ,gettext-minimal)))
82ee141b
TGR
565 (inputs
566 `(("fftw" ,fftw)
567 ("ncurses" ,ncurses)
568 ("openssl" ,openssl)))
569 (arguments
570 `(#:make-flags (list "CC=gcc"
571 (string-append "DESTDIR=" (assoc-ref %outputs "out"))
572 "PREFIX=")
573 #:tests? #f)) ; no tests
574 (home-page "https://www.vanheusden.com/httping/")
575 (synopsis "Web server latency and throughput monitor")
576 (description
577 "httping measures how long it takes to connect to a web server, send an
578HTTP(S) request, and receive the reply headers. It is somewhat similar to
579@command{ping}, but can be used even in cases where ICMP traffic is blocked
580by firewalls or when you want to monitor the response time of the actual web
581application stack itself.")
582 (license license:gpl2))) ; with permission to link with OpenSSL
68b14f2e 583
9e6c7c42
SR
584(define-public httpstat
585 (package
586 (name "httpstat")
587 (version "1.2.1")
588 (source
589 (origin
590 (method url-fetch)
591 (uri (pypi-uri "httpstat" version))
592 (sha256
593 (base32
594 "1chw2nk56vaq87aba012a270k9na06hfx1pfbsrc3jfvlc2kb9hb"))))
595 (build-system python-build-system)
596 (inputs `(("curl" ,curl)))
597 (arguments
598 '(#:phases
599 (modify-phases %standard-phases
600 (add-before 'build 'fix-curl-path
601 (lambda* (#:key inputs #:allow-other-keys)
602 (substitute* "httpstat.py"
603 (("ENV_CURL_BIN.get\\('curl'\\)")
604 (string-append "ENV_CURL_BIN.get('"
605 (assoc-ref inputs "curl")
606 "/bin/curl')"))))))))
607 (home-page "https://github.com/reorx/httpstat")
608 (synopsis "Visualize curl statistics")
609 (description
610 "@command{httpstat} is a tool to visualize statistics from the
611@command{curl} HTTP client. It acts as a wrapper for @command{curl} and
612prints timing information for each step of the HTTP request (DNS lookup,
613TCP connection, TLS handshake and so on) in the terminal.")
614 (license license:expat)))
615
be9f3a83
AI
616(define-public bwm-ng
617 (package
618 (name "bwm-ng")
619 (version "0.6.1")
620 (source
621 (origin
622 (method url-fetch)
623 (uri (string-append "https://www.gropp.org/bwm-ng/bwm-ng-"
624 version ".tar.gz"))
625 (sha256
626 (base32
627 "1w0dwpjjm9pqi613i8glxrgca3rdyqyp3xydzagzr5ndc34z6z02"))))
628 (build-system gnu-build-system)
629 (inputs `(("ncurses" ,ncurses)))
630 (synopsis "Console based live network and disk I/O bandwidth monitor")
631 (description "Bandwidth Monitor NG is a small and simple console based
632live network and disk I/O bandwidth monitor.")
633 (home-page "https://www.gropp.org/?id=projects&sub=bwm-ng")
634 (license license:gpl2)))
635
d85b398b
EB
636(define-public aircrack-ng
637 (package
638 (name "aircrack-ng")
639 (version "1.2-rc4")
640 (source
641 (origin
642 (method url-fetch)
643 (uri (string-append "http://download.aircrack-ng.org/aircrack-ng-"
644 version ".tar.gz"))
645 (sha256
646 (base32
647 "0dpzx9kddxpgzmgvdpl3rxn0jdaqhm5wxxndp1xd7d75mmmc2fnr"))))
648 (build-system gnu-build-system)
649 (native-inputs
650 `(("pkg-config" ,pkg-config)))
651 (inputs
652 `(("libgcrypt" ,libgcrypt)
653 ("libnl" ,libnl)
654 ("ethtool" ,ethtool)
655 ("pcre" ,pcre)
656 ("sqlite" ,sqlite)
657 ("zlib" ,zlib)))
658 (arguments
659 `(#:make-flags `("sqlite=true"
660 "gcrypt=true"
661 "libnl=true"
662 "pcre=true"
663 "experimental=true" ;build wesside-ng, etc.
af5faef9
EF
664 "AVX2FLAG=N" "AVX1FLAG=N"
665 ,,@(match (%current-system)
666 ((or "x86_64-linux" "i686-linux")
667 `("SSEFLAG=Y"))
668 (_
669 `("NEWSSE=false")))
d85b398b
EB
670 ,(string-append "prefix=" %output))
671 #:phases (modify-phases %standard-phases
672 (delete 'configure) ;no configure phase
673 (add-after 'build 'absolutize-tools
674 (lambda* (#:key inputs #:allow-other-keys)
675 (let ((ethtool (string-append (assoc-ref inputs "ethtool")
676 "/sbin/ethtool")))
677 (substitute* "scripts/airmon-ng"
678 (("\\[ ! -x \"\\$\\(command -v ethtool 2>&1)\" \\]")
679 (string-append "! " ethtool " --version "
680 ">/dev/null 2>&1"))
681 (("\\$\\(ethtool")
682 (string-append "$(" ethtool)))
683 #t))))))
684 (home-page "http://www.aircrack-ng.org")
685 (synopsis "Assess WiFi network security")
686 (description
687 "Aircrack-ng is a complete suite of tools to assess WiFi network
688security. It focuses on different areas of WiFi security: monitoring,
689attacking, testing, and cracking. All tools are command-line driven, which
690allows for heavy scripting.")
691 (license (list license:gpl2+ license:bsd-3))))
692
68b14f2e
DM
693(define-public perl-net-dns
694 (package
695 (name "perl-net-dns")
696 (version "1.06")
697 (source
698 (origin
699 (method url-fetch)
700 (uri (string-append
701 "mirror://cpan/authors/id/N/NL/NLNETLABS/Net-DNS-"
702 version
703 ".tar.gz"))
704 (sha256
705 (base32
706 "07m5331132h9xkh1i6jv9d80f571yva27iqa31aq4sm31iw7nn53"))))
707 (build-system perl-build-system)
708 (inputs
709 `(("perl-digest-hmac" ,perl-digest-hmac)))
710 (home-page "http://search.cpan.org/dist/Net-DNS")
711 (synopsis
712 "Perl Interface to the Domain Name System")
713 (description "Net::DNS is the Perl Interface to the Domain Name System.")
714 (license license:x11)))
87b14091
DM
715
716(define-public perl-socket6
717 (package
718 (name "perl-socket6")
719 (version "0.28")
720 (source
721 (origin
722 (method url-fetch)
723 (uri (string-append
724 "mirror://cpan/authors/id/U/UM/UMEMOTO/Socket6-"
725 version
726 ".tar.gz"))
727 (sha256
728 (base32
729 "11j5jzqbzmwlws9zals43ry2f1nw9qy6im7yhn9ck5rikywrmm5z"))))
730 (build-system perl-build-system)
731 (arguments
732 `(#:phases
733 (modify-phases %standard-phases
734 (replace 'configure
735 (lambda* (#:key outputs #:allow-other-keys)
736 (let* ((out (assoc-ref outputs "out"))
737 (args `("Makefile.PL"
738 ,(string-append "PREFIX=" out)
739 "INSTALLDIRS=site")))
740 (setenv "CONFIG_SHELL" (which "sh"))
741 (zero? (apply system* "perl" args))))))))
742 (home-page "http://search.cpan.org/dist/Socket6")
743 (synopsis
744 "IPv6 related part of the C socket.h defines and structure manipulators for Perl")
745 (description "Socket6 binds the IPv6 related part of the C socket header
746definitions and structure manipulators for Perl.")
747 (license license:bsd-3)))
8d60dd71
DM
748
749(define-public perl-net-dns-resolver-programmable
750 (package
751 (name "perl-net-dns-resolver-programmable")
752 (version "v0.003")
753 (source
754 (origin
755 (method url-fetch)
756 (uri (string-append
757 "mirror://cpan/authors/id/J/JM/JMEHNLE/net-dns-resolver-programmable/"
758 "Net-DNS-Resolver-Programmable-" version ".tar.gz"))
759 (sha256
760 (base32
761 "1v3nl2kaj4fs55n1617n53q8sa3mir06898vpy1rq98zjih24h4d"))
762 (patches
1d248adb 763 (search-patches "perl-net-dns-resolver-programmable-fix.patch"))))
8d60dd71
DM
764 (build-system perl-build-system)
765 (native-inputs
766 `(("perl-module-build" ,perl-module-build)))
767 (inputs `(("perl-net-dns" ,perl-net-dns)))
768 (home-page
769 "http://search.cpan.org/dist/Net-DNS-Resolver-Programmable")
770 (synopsis
771 "Programmable DNS resolver class for offline emulation of DNS")
772 (description "Net::DNS::Resolver::Programmable is a programmable DNS resolver for
773offline emulation of DNS.")
2f3108ad 774 (license license:perl-license)))
1201eab9
DM
775
776(define-public perl-netaddr-ip
777 (package
778 (name "perl-netaddr-ip")
779 (version "4.079")
780 (source
781 (origin
782 (method url-fetch)
783 (uri (string-append
784 "mirror://cpan/authors/id/M/MI/MIKER/NetAddr-IP-"
785 version
786 ".tar.gz"))
787 (sha256
788 (base32
789 "1rx0dinrz9fk9qcg4rwqq5n1dm3xv2arymixpclcv2q2nzgq4npc"))))
790 (build-system perl-build-system)
791 (arguments
792 `(#:phases
793 (modify-phases %standard-phases
794 (replace 'configure
795 (lambda* (#:key outputs #:allow-other-keys)
796 (let* ((out (assoc-ref outputs "out"))
797 (args `("Makefile.PL"
798 ,(string-append "PREFIX=" out)
799 "INSTALLDIRS=site")))
800 (setenv "CONFIG_SHELL" (which "sh"))
801 (zero? (apply system* "perl" args))))))))
802 (home-page
803 "http://search.cpan.org/dist/NetAddr-IP")
804 (synopsis
805 "Manages IPv4 and IPv6 addresses and subnets")
806 (description "NetAddr::IP manages IPv4 and IPv6 addresses and subsets.")
2f3108ad 807 (license license:perl-license)))
3ed361ea
DM
808
809(define-public perl-net-patricia
810 (package
811 (name "perl-net-patricia")
812 (version "1.22")
813 (source
814 (origin
815 (method url-fetch)
816 (uri (string-append
817 "mirror://cpan/authors/id/G/GR/GRUBER/Net-Patricia-"
818 version
819 ".tar.gz"))
820 (sha256
821 (base32
822 "0ln5f57vc8388kyh9vhx2infrdzfhbpgyby74h1qsnhwds95m0vh"))))
823 (build-system perl-build-system)
824 (inputs
825 `(("perl-net-cidr-lite" ,perl-net-cidr-lite)
826 ("perl-socket6" ,perl-socket6)))
827 (home-page
828 "http://search.cpan.org/dist/Net-Patricia")
829 (synopsis
830 "Patricia Trie Perl module for fast IP address lookups")
831 (description
832 "Net::Patricia does IP address lookups quickly in Perl.")
833 ;; The bindings are licensed under GPL2 or later.
834 ;; libpatricia is licensed under 2-clause BSD.
835 (license (list license:gpl2+ license:bsd-2))))
b09a8b6f
DM
836
837(define-public perl-net-cidr-lite
838 (package
839 (name "perl-net-cidr-lite")
840 (version "0.21")
841 (source
842 (origin
843 (method url-fetch)
844 (uri (string-append
845 "mirror://cpan/authors/id/D/DO/DOUGW/Net-CIDR-Lite-"
846 version
847 ".tar.gz"))
848 (sha256
849 (base32
850 "14shj73zbqmfjbp0qz1fs9j4p2dpvz5hfkm4qfdjbydflbl2b8fg"))))
851 (build-system perl-build-system)
852 (home-page
853 "http://search.cpan.org/dist/Net-CIDR-Lite")
854 (synopsis
855 "Perl extension for merging IPv4 or IPv6 CIDR addresses")
856 (description "Net::CIDR::Lite merges IPv4 or IPv6 CIDR addresses.")
857 (license license:gpl1+)))
e741c4e4
DM
858
859;; TODO: Use the geolite-mirror-simple.pl script from the example
860;; directory to stay current with the databases. How?
861(define-public perl-geo-ip
862 (package
863 (name "perl-geo-ip")
864 (version "1.50")
865 (source
866 (origin
867 (method url-fetch)
868 (uri (string-append
869 "mirror://cpan/authors/id/M/MA/MAXMIND/Geo-IP-"
870 version
871 ".tar.gz"))
872 (sha256
873 (base32
874 "0ar69lrm26rp6sqxjf0p6cvjfprjx8gkxx11r399lvh99rqfl7zr"))))
875 (build-system perl-build-system)
876 (home-page "http://search.cpan.org/dist/Geo-IP")
877 (synopsis
878 "Look up location and network information by IP Address in Perl")
879 (description "The Perl module 'Geo::IP'. It looks up location and network
880information by IP Address.")
2f3108ad 881 (license license:perl-license)))
e818f321
DM
882
883(define-public perl-io-socket-inet6
884 (package
885 (name "perl-io-socket-inet6")
886 (version "2.72")
887 (source
888 (origin
889 (method url-fetch)
890 (uri (string-append
891 "mirror://cpan/authors/id/S/SH/SHLOMIF/IO-Socket-INET6-"
892 version
893 ".tar.gz"))
894 (sha256
895 (base32
896 "1fqypz6qa5rw2d5y2zq7f49frwra0aln13nhq5gi514j2zx21q45"))))
897 (build-system perl-build-system)
898 (native-inputs
899 `(("perl-module-build" ,perl-module-build)
900 ("perl-test-pod" ,perl-test-pod)
901 ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
902 (inputs `(("perl-socket6" ,perl-socket6)))
903 (arguments `(;; Need network socket API
904 #:tests? #f))
905 (home-page
906 "http://search.cpan.org/dist/IO-Socket-INET6")
907 (synopsis
908 "Perl object interface for AF_INET/AF_INET6 domain sockets")
909 (description "IO::Socket::INET6 is an interface for AF_INET/AF_INET6 domain
910sockets in Perl.")
2f3108ad 911 (license license:perl-license)))
a1c83fef 912
913(define-public proxychains-ng
914 (package
915 (name "proxychains-ng")
cdb93e50 916 (version "4.12")
a1c83fef 917 (source (origin
918 (method url-fetch)
919 (uri (string-append "https://github.com/rofl0r/" name "/releases/"
920 "download/v" version "/" name "-" version
cdb93e50 921 ".tar.xz"))
a1c83fef 922 (sha256
923 (base32
cdb93e50 924 "0kiss3ih6cwayzvqi5cx4kw4vh7r2kfxlbgk56v1f1066ncm8aj8"))))
a1c83fef 925 (build-system gnu-build-system)
926 (arguments
927 `(#:tests? #f ; there are no tests
928 #:make-flags '("CC=gcc")
929 #:phases
930 (modify-phases %standard-phases
931 (add-after 'unpack 'fix-configure-script
932 (lambda _
933 ;; The configure script is very intolerant to unknown arguments,
934 ;; such as "CONFIG_SHELL".
935 (substitute* "configure"
936 (("\\*\\) break ;;" line)
937 (string-append "[A-Z]*) shift ;;\n"
938 line)))
939 #t)))))
940 (synopsis "Redirect any TCP connection through a proxy or proxy chain")
941 (description "Proxychains-ng is a preloader which hooks calls to sockets
942in dynamically linked programs and redirects them through one or more SOCKS or
943HTTP proxies.")
944 (home-page "https://github.com/rofl0r/proxychains-ng")
945 (license license:gpl2+)))
93666cf7 946
947(define-public enet
948 (package
949 (name "enet")
950 (version "1.3.13")
951 (source (origin
952 (method url-fetch)
953 (uri (string-append "http://enet.bespin.org/download/"
954 name "-" version ".tar.gz"))
955 (sha256
956 (base32
957 "0p53mnmjbm56wizwraznynx13fcibcxiqny110dp6a5a3w174q73"))))
958 (build-system gnu-build-system)
959 (native-inputs
960 `(("pkg-config" ,pkg-config)))
961 (synopsis
962 "Network communication layer on top of UDP")
963 (description
964 "ENet's purpose is to provide a relatively thin, simple and robust network
965communication layer on top of UDP. The primary feature it provides is optional
966reliable, in-order delivery of packets. ENet omits certain higher level
967networking features such as authentication, server discovery, encryption, or
968other similar tasks that are particularly application specific so that the
969library remains flexible, portable, and easily embeddable.")
970 (home-page "http://enet.bespin.org")
971 (license license:expat)))
4fb5f830
TGR
972
973(define-public sslh
974 (package
975 (name "sslh")
976 (version "1.18")
977 (source (origin
978 (method url-fetch)
979 (uri (string-append "https://github.com/yrutschle/sslh/archive/v"
980 version ".tar.gz"))
981 (file-name (string-append name "-" version ".tar.gz"))
982 (sha256
983 (base32
984 "1vzw7a7s9lhspbn5zn3hw8hir4pkjgbd68yys4hfsnjp1h7bzjpn"))))
985 (build-system gnu-build-system)
986 (native-inputs
987 `(;; Tests dependencies.
988 ("lcov" ,lcov)
989 ("perl" ,perl)
990 ("perl-io-socket-inet6" ,perl-io-socket-inet6)
991 ("perl-socket6" ,perl-socket6)
992 ("psmisc" ,psmisc)
993 ("valgrind" ,valgrind)))
994 (inputs
995 `(("libcap" ,libcap)
996 ("libconfig" ,libconfig)
997 ("tcp-wrappers" ,tcp-wrappers)))
998 (arguments
999 '(#:phases
1000 (modify-phases %standard-phases
1001 (delete 'configure) ; no configure script
1002 (add-before 'check 'fix-tests
1003 (lambda _
1004 (substitute* "./t"
1005 (("\"/tmp") "$ENV{\"TMPDIR\"} . \"")
1006 ;; The Guix build environment lacks ‘ip6-localhost’.
1007 (("ip6-localhost") "localhost"))
1008 #t))
1009 ;; Many of these files are mentioned in the man page. Install them.
1010 (add-after 'install 'install-documentation
1011 (lambda* (#:key outputs #:allow-other-keys)
1012 (let* ((out (assoc-ref outputs "out"))
1013 (doc (string-append out "/share/doc/sslh")))
1014 (install-file "README.md" doc)
1015 (for-each
1016 (lambda (file)
1017 (install-file file (string-append doc "/examples")))
1018 (append (find-files "." "\\.cfg")
1019 (find-files "scripts"))))
1020 #t)))
1021 #:make-flags (list "CC=gcc"
1022 "USELIBCAP=1"
1023 "USELIBWRAP=1"
1024 (string-append "PREFIX=" (assoc-ref %outputs "out")))
1025 #:test-target "test"))
1026 (home-page "http://www.rutschle.net/tech/sslh.shtml")
1027 (synopsis "Applicative network protocol demultiplexer")
1028 (description
1029 "sslh is a network protocol demultiplexer. It acts like a switchboard,
1030accepting connections from clients on one port and forwarding them to different
1031servers based on the contents of the first received data packet. Detection of
1032common protocols like HTTP(S), SSL, SSH, OpenVPN, tinc, and XMPP is already
1033implemented, but any other protocol that matches a regular expression can be
1034added. sslh's name comes from its original application of serving both SSH and
1035HTTPS on port 443, allowing SSH connections from inside corporate firewalls
1036that block port 22.")
1037 (license (list license:bsd-2 ; tls.[ch]
1038 license:gpl2+)))) ; everything else
b747718e
BS
1039
1040(define-public iperf
1041 (package
1042 (name "iperf")
9c974c93 1043 (version "3.1.7")
b747718e
BS
1044 (source (origin
1045 (method url-fetch)
1046 (uri (string-append "http://downloads.es.net/pub/iperf"
1047 "/iperf-" version ".tar.gz"))
1048 (sha256
1049 (base32
9c974c93 1050 "0kvk8d0a3dcxc8fisyprbn01y8akxj4sx8ld5dh508p9dx077vx4"))))
b747718e
BS
1051 (build-system gnu-build-system)
1052 (synopsis "TCP, UDP and SCTP bandwidth measurement tool")
1053 (description
1054 "iPerf is a tool to measure achievable bandwidth on IP networks. It
1055supports tuning of various parameters related to timing, buffers and
1056protocols (TCP, UDP, SCTP with IPv4 and IPv6). For each test it reports
1057the bandwidth, loss, and other parameters.")
1058 (home-page "http://software.es.net/iperf/")
1059 (license (list license:bsd-3 ; Main distribution.
1060 license:ncsa ; src/{units,iperf_locale,tcp_window_size}.c
1061 license:expat ; src/{cjson,net}.[ch]
1062 license:public-domain)))) ; src/portable_endian.h
b7f3cf2c
AI
1063
1064(define-public nethogs
1065 (package
1066 (name "nethogs")
1067 (version "0.8.5")
1068 (source (origin
1069 (method url-fetch)
1070 (uri (string-append "https://github.com/raboof/nethogs/archive/v"
1071 version ".tar.gz"))
1072 (sha256
1073 (base32
1074 "1k4x8r7s4dgcb6n2rjn28h2yyij92mwm69phncl3597cdxr954va"))
1075 (file-name (string-append name "-" version ".tar.gz"))))
1076 (build-system gnu-build-system)
1077 (inputs
1078 `(("libpcap" ,libpcap)
1079 ("ncurses" ,ncurses)))
1080 (arguments
1081 `(#:make-flags `("CC=gcc"
1082 ,(string-append "PREFIX=" %output))
1083 #:phases
1084 (modify-phases %standard-phases
1085 (delete 'configure)))) ; No ./configure script.
1086 (home-page "https://github.com/raboof/nethogs")
1087 (synopsis "Per-process bandwidth monitor")
1088 (description "NetHogs is a small 'net top' tool for Linux. Instead of
1089breaking the traffic down per protocol or per subnet, like most tools do, it
1090groups bandwidth by process.
1091
1092NetHogs does not rely on a special kernel module to be loaded. If there's
1093suddenly a lot of network traffic, you can fire up NetHogs and immediately see
1094which PID is causing this. This makes it easy to identify programs that have
1095gone wild and are suddenly taking up your bandwidth.")
1096 (license license:gpl2+)))
92ac2cff
SB
1097
1098(define-public openvswitch
1099 (package
1100 (name "openvswitch")
1101 (version "2.6.1")
1102 (source (origin
1103 (method url-fetch)
1104 (uri (string-append
1105 "http://openvswitch.org/releases/openvswitch-"
1106 version ".tar.gz"))
1107 (sha256
1108 (base32
1109 "036gq741j9kqsjlp693nff838c9wjd1c56nswl9vyyd1lsmj0yrh"))))
1110 (build-system gnu-build-system)
1111 (arguments
1112 '(;; FIXME: many tests fail with:
1113 ;; […]
1114 ;; test -e $OVS_RUNDIR/ovs-vswitchd.pid
1115 ;; ovs-appctl -t ovs-vswitchd exit
1116 ;; hard failure
1117 #:tests? #f
1118 #:configure-flags
1119 '("--enable-shared"
1120 "--localstatedir=/var"
1121 "--with-dbdir=/var/lib/openvswitch")
1122 #:phases
1123 (modify-phases %standard-phases
1124 (replace 'install
1125 (lambda _
1126 (zero? (system* "make"
1127 ;; Don't try to create directories under /var.
1128 "RUNDIR=/tmp"
1129 "PKIDIR=/tmp"
1130 "LOGDIR=/tmp"
1131 "DBDIR=/tmp"
1132 "install")))))))
1133 (native-inputs
1134 `(("perl" ,perl)
1135 ("pkg-config" ,pkg-config)
1136 ("python" ,python-2)
1137 ;; for testing
1138 ("util-linux" ,util-linux)))
1139 (propagated-inputs
1140 `(("python-six" ,python2-six)))
1141 (inputs
1142 `(("libcap-ng" ,libcap-ng)
1143 ("openssl" ,openssl)))
1144 (synopsis "Virtual network switch")
1145 (home-page "http://www.openvswitch.org/")
1146 (description
1147 "Open vSwitch is a multilayer virtual switch. It is designed to enable
1148massive network automation through programmatic extension, while still
1149supporting standard management interfaces and protocols (e.g. NetFlow, sFlow,
1150IPFIX, RSPAN, CLI, LACP, 802.1ag).")
1151 (license ; see debian/copyright for detail
1152 (list license:lgpl2.1 ; xenserver and utilities/bugtool
1153 license:gpl2 ; datapath
1154 license:bsd-2 license:bsd-3
1155 license:asl2.0)))) ; all other
38510546 1156
42c939a8
RW
1157(define-public python-ipy
1158 (package
1159 (name "python-ipy")
1160 (version "0.83")
1161 (source (origin
1162 (method url-fetch)
1163 (uri (pypi-uri "IPy" version))
1164 (sha256
1165 (base32
1166 "1f6sdrxclifky4gvkf4gvyv5hx3fjh8vzspnfrqki6qm5d9mmnk1"))))
1167 (build-system python-build-system)
1168 (home-page "https://github.com/autocracy/python-ipy/")
1169 (synopsis "Python class and tools for handling IP addresses and networks")
1170 (description "The @code{IP} class allows a comfortable parsing and
1171handling for most notations in use for IPv4 and IPv6 addresses and
1172networks.")
1173 (license license:bsd-3)))
1174
38510546
PP
1175(define-public speedtest-cli
1176 (package
1177 (name "speedtest-cli")
f930ef5c 1178 (version "1.0.6")
38510546
PP
1179 (source
1180 (origin
1181 (method url-fetch)
1182 (uri (string-append
1183 "https://github.com/sivel/speedtest-cli/archive/v" version ".tar.gz"))
1184 (file-name (string-append name "-" version ".tar.gz"))
1185 (sha256
1186 (base32
f930ef5c 1187 "1alambi1ljng6j04k7pq58jqwd0wh1q9630f17nl34ljabji5lwy"))))
38510546
PP
1188 (build-system python-build-system)
1189 (home-page "https://github.com/sivel/speedtest-cli")
1190 (synopsis "Internet bandwidth tester")
1191 (description
1192 "Command line interface for testing internet bandwidth using
1193speedtest.net.")
1194 (license license:asl2.0)))
5b5cf3c7
GB
1195
1196(define-public tftp-hpa
1197 (package
1198 (name "tftp-hpa")
1199 (version "5.2")
1200 (source (origin
1201 (method url-fetch)
1202 (uri (string-append "mirror://kernel.org/software/"
1203 "network/tftp/tftp-hpa/tftp-hpa-" version
1204 ".tar.xz"))
1205 (sha256
1206 (base32
1207 "12vidchglhyc20znq5wdsbhi9mqg90jnl7qr9qs8hbvaz4fkdvmg"))))
1208 (build-system gnu-build-system)
1209 (arguments `(#:tests? #f)) ; no test target
1210 (synopsis "HPA's tftp client")
1211 (description
1212 "This is a tftp client derived from OpenBSD tftp with some extra options
1213added and bugs fixed. The source includes readline support but it is not
1214enabled due to license conflicts between the BSD advertising clause and the GPL.")
1215 (home-page "http://git.kernel.org/cgit/network/tftp/tftp-hpa.git/about/")
1216 ;; Some source files are distributed under a 3-clause BSD license, and
1217 ;; others under a 4-clause BSD license. Refer to the files in the source
1218 ;; distribution for clarification.
1219 (license (list license:bsd-3 license:bsd-4))))
cc24bf98
LF
1220
1221(define-public spiped
1222 (package
1223 (name "spiped")
1224 (version "1.6.0")
1225 (source (origin
1226 (method url-fetch)
1227 (uri (string-append "https://www.tarsnap.com/spiped/spiped-"
1228 version ".tgz"))
1229 (sha256
1230 (base32
1231 "1r51rdcl7nib1yv3yvgd5alwlkkwmr387brqavaklb0p2bwzixz6"))))
1232 (build-system gnu-build-system)
1233 (arguments
1234 '(#:test-target "test"
1235 #:make-flags (let* ((out (assoc-ref %outputs "out"))
1236 (bindir (string-append out "/bin"))
1237 (man1dir (string-append out "/share/man/man1")))
1238 (list "CC=gcc" ; It tries to invoke `c99`.
1239 (string-append "BINDIR=" bindir)
1240 (string-append "MAN1DIR=" man1dir)))
1241 #:phases
1242 (modify-phases %standard-phases
1243 (add-after 'unpack 'patch-command-invocations
1244 (lambda _
1245 (substitute* '("Makefile"
1246 "libcperciva/cpusupport/Build/cpusupport.sh"
1247 "libcperciva/POSIX/posix-cflags.sh"
1248 "libcperciva/POSIX/posix-l.sh")
1249 (("command -p") ""))
1250 #t))
1251 (delete 'configure) ; No ./configure script.
1252 (add-after 'install 'install-more-docs
1253 (lambda* (#:key outputs #:allow-other-keys)
1254 (let* ((out (assoc-ref %outputs "out"))
1255 (misc (string-append out "/share/doc/spiped")))
1256 (install-file "DESIGN.md" misc)
1257 #t))))))
1258 (native-inputs
1259 `(("procps" ,procps))) ; `ps` is used by the test suite.
1260 (inputs
1261 `(("openssl" ,openssl)))
1262 (home-page "https://www.tarsnap.com/spiped.html")
1263 (synopsis "Create secure pipes between sockets")
1264 (description "Spiped (pronounced \"ess-pipe-dee\") is a utility for creating
1265symmetrically encrypted and authenticated pipes between socket addresses, so
1266that one may connect to one address (e.g., a UNIX socket on localhost) and
1267transparently have a connection established to another address (e.g., a UNIX
1268socket on a different system). This is similar to 'ssh -L' functionality, but
1269does not use SSH and requires a pre-shared symmetric key.")
1270 (license license:bsd-2)))