gnu: proxychains-ng: Update to 4.13.
[jackhill/guix/guix.git] / gnu / packages / networking.scm
1 ;;; GNU Guix --- Functional package management for GNU
2 ;;; Copyright © 2014, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
3 ;;; Copyright © 2015, 2016, 2017, 2018 Ricardo Wurmus <rekado@elephly.net>
4 ;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
5 ;;; Copyright © 2015, 2016, 2017 Stefan Reichör <stefan@xsteve.at>
6 ;;; Copyright © 2016 Raimon Grau <raimonster@gmail.com>
7 ;;; Copyright © 2016, 2017, 2018 Tobias Geerinckx-Rice <me@tobias.gr>
8 ;;; Copyright © 2016 John Darrington <jmd@gnu.org>
9 ;;; Copyright © 2016, 2017, 2018 Nicolas Goaziou <mail@nicolasgoaziou.fr>
10 ;;; Copyright © 2016 Eric Bavier <bavier@member.fsf.org>
11 ;;; Copyright © 2016, 2017 Nils Gillmann <ng0@n0.is>
12 ;;; Copyright © 2016, 2017 Arun Isaac <arunisaac@systemreboot.net>
13 ;;; Copyright © 2016 Benz Schenk <benz.schenk@uzh.ch>
14 ;;; Copyright © 2016, 2017 Pjotr Prins <pjotr.guix@thebird.nl>
15 ;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
16 ;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
17 ;;; Copyright © 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
18 ;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
19 ;;; Copyright © 2017 Gábor Boskovits <boskovits@gmail.com>
20 ;;; Copyright © 2017 Thomas Danckaert <post@thomasdanckaert.be>
21 ;;; Copyright © 2018 Adam Van Ymeren <adam@vany.ca>
22 ;;; Copyright © 2018 Fis Trivial <ybbs.daans@hotmail.com>
23 ;;; Copyright © 2018 Tonton <tonton@riseup.net>
24 ;;; Copyright © 2018 Clément Lassieur <clement@lassieur.org>
25 ;;; Copyright © 2018 Theodoros Foradis <theodoros@foradis.org>
26 ;;; Copyright © 2018 Marius Bakke <mbakke@fastmail.com>
27 ;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
28 ;;;
29 ;;; This file is part of GNU Guix.
30 ;;;
31 ;;; GNU Guix is free software; you can redistribute it and/or modify it
32 ;;; under the terms of the GNU General Public License as published by
33 ;;; the Free Software Foundation; either version 3 of the License, or (at
34 ;;; your option) any later version.
35 ;;;
36 ;;; GNU Guix is distributed in the hope that it will be useful, but
37 ;;; WITHOUT ANY WARRANTY; without even the implied warranty of
38 ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
39 ;;; GNU General Public License for more details.
40 ;;;
41 ;;; You should have received a copy of the GNU General Public License
42 ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
43
44 (define-module (gnu packages networking)
45 #:use-module ((guix licenses) #:prefix license:)
46 #:use-module (guix packages)
47 #:use-module (guix download)
48 #:use-module (guix git-download)
49 #:use-module (guix build-system cmake)
50 #:use-module (guix build-system glib-or-gtk)
51 #:use-module (guix build-system gnu)
52 #:use-module (guix build-system perl)
53 #:use-module (guix build-system python)
54 #:use-module (gnu packages)
55 #:use-module (gnu packages admin)
56 #:use-module (gnu packages adns)
57 #:use-module (gnu packages algebra)
58 #:use-module (gnu packages audio)
59 #:use-module (gnu packages autotools)
60 #:use-module (gnu packages base)
61 #:use-module (gnu packages bison)
62 #:use-module (gnu packages boost)
63 #:use-module (gnu packages check)
64 #:use-module (gnu packages code)
65 #:use-module (gnu packages compression)
66 #:use-module (gnu packages crypto)
67 #:use-module (gnu packages curl)
68 #:use-module (gnu packages databases)
69 #:use-module (gnu packages dejagnu)
70 #:use-module (gnu packages documentation)
71 #:use-module (gnu packages flex)
72 #:use-module (gnu packages gettext)
73 #:use-module (gnu packages glib)
74 #:use-module (gnu packages gnome)
75 #:use-module (gnu packages gnupg)
76 #:use-module (gnu packages gtk)
77 #:use-module (gnu packages image)
78 #:use-module (gnu packages libidn)
79 #:use-module (gnu packages linux)
80 #:use-module (gnu packages lua)
81 #:use-module (gnu packages multiprecision)
82 #:use-module (gnu packages kerberos)
83 #:use-module (gnu packages ncurses)
84 #:use-module (gnu packages pcre)
85 #:use-module (gnu packages perl)
86 #:use-module (gnu packages perl-check)
87 #:use-module (gnu packages pkg-config)
88 #:use-module (gnu packages python)
89 #:use-module (gnu packages qt)
90 #:use-module (gnu packages readline)
91 #:use-module (gnu packages ssh)
92 #:use-module (gnu packages textutils)
93 #:use-module (gnu packages tls)
94 #:use-module (gnu packages valgrind)
95 #:use-module (gnu packages wm)
96 #:use-module (gnu packages wxwidgets)
97 #:use-module (gnu packages xml)
98 #:use-module (ice-9 match))
99
100 ;; The gnu.org ‘home’ for this GNU project is a directory listing with 1.6.0 as
101 ;; the latest version. The author's git repository, mentioned in the 1.6.0
102 ;; README and otherwise legit-looking, contains a proper 1.7.0 release tarball
103 ;; with many OUI updates. Use it, even though it's also several years old now.
104 (define-public macchanger
105 (package
106 (name "macchanger")
107 (version "1.7.0")
108 (source
109 (origin
110 (method url-fetch)
111 (uri (string-append "https://github.com/alobbs/macchanger/"
112 "releases/download/" version "/"
113 name "-" version ".tar.gz"))
114 (sha256
115 (base32 "1gs5m0jxyprdp00w2qkbnaqm3ilkjz0q1gqdg4nzdm8g4xy73qns"))))
116 (build-system gnu-build-system)
117 (home-page "https://www.gnu.org/software/macchanger/")
118 (synopsis "Viewing and manipulating MAC addresses of network interfaces")
119 (description "GNU MAC Changer is a utility for viewing and changing MAC
120 addresses of networking devices. New addresses may be set explicitly or
121 randomly. They can include MAC addresses of the same or other hardware vendors
122 or, more generally, MAC addresses of the same category of hardware.")
123 (license license:gpl2+)))
124
125 (define-public miredo
126 (package
127 (name "miredo")
128 (version "1.2.6")
129 (source (origin
130 (method url-fetch)
131 (uri (string-append "http://www.remlab.net/files/miredo/miredo-"
132 version ".tar.xz"))
133 (sha256
134 (base32
135 "0j9ilig570snbmj48230hf7ms8kvcwi2wblycqrmhh85lksd49ps"))))
136 (build-system gnu-build-system)
137 (arguments
138 '(#:phases
139 (modify-phases %standard-phases
140 ;; The checkconf test in src/ requires network access.
141 (add-before
142 'check 'disable-checkconf-test
143 (lambda _
144 (substitute* "src/Makefile"
145 (("^TESTS = .*") "TESTS = \n")))))))
146 (home-page "http://www.remlab.net/miredo/")
147 (synopsis "Teredo IPv6 tunneling software")
148 (description
149 "Miredo is an implementation (client, relay, server) of the Teredo
150 specification, which provides IPv6 Internet connectivity to IPv6 enabled hosts
151 residing in IPv4-only networks, even when they are behind a NAT device.")
152 (license license:gpl2+)))
153
154 (define-public socat
155 (package
156 (name "socat")
157 (version "1.7.3.2")
158 (source (origin
159 (method url-fetch)
160 (uri (string-append
161 "http://www.dest-unreach.org/socat/download/socat-"
162 version ".tar.bz2"))
163 (sha256
164 (base32
165 "0lcj6zpra33xhgvhmz9l3cqz10v8ybafb8dd1yqkwf1rhy01ymp3"))))
166 (build-system gnu-build-system)
167 (arguments '(#:tests? #f)) ;no 'check' phase
168 (inputs `(("openssl" ,openssl)))
169 (home-page "http://www.dest-unreach.org/socat/")
170 (synopsis
171 "Open bidirectional communication channels from the command line")
172 (description
173 "socat is a relay for bidirectional data transfer between two independent
174 data channels---files, pipes, devices, sockets, etc. It can create
175 \"listening\" sockets, named pipes, and pseudo terminals.
176
177 socat can be used, for instance, as TCP port forwarder, as a shell interface
178 to UNIX sockets, IPv6 relay, for redirecting TCP oriented programs to a serial
179 line, to logically connect serial lines on different computers, or to
180 establish a relatively secure environment (su and chroot) for running client
181 or server shell scripts with network connections.")
182 (license license:gpl2)))
183
184 (define-public tcp-wrappers
185 (package
186 (name "tcp-wrappers")
187 (version "7.6")
188 (source (origin
189 (method url-fetch)
190 (uri (string-append
191 "ftp://ftp.porcupine.org/pub/security/tcp_wrappers_"
192 version ".tar.gz"))
193 (sha256
194 (base32
195 "0p9ilj4v96q32klavx0phw9va21fjp8vpk11nbh6v2ppxnnxfhwm"))))
196 (build-system gnu-build-system)
197 (arguments
198 `(#:phases
199 (modify-phases %standard-phases
200 (delete 'configure) ; there is no configure script
201 (delete 'check) ; there are no tests
202 (replace 'build
203 (lambda _
204 (chmod "." #o755)
205 ;; Upstream doesn't generate a shared library. So we have to do it.
206 (setenv "CC" "gcc -fno-builtin -fPIC")
207 (substitute* "Makefile"
208 (("^(all[^\n]*)" line) (string-append line " libwrap.so\n
209 libwrap.so: $(LIB_OBJ)\n
210 \tgcc -shared $^ -o $@\n")))
211 ;; Deal with some gcc breakage.
212 (substitute* "percent_m.c"
213 (("extern char .sys_errlist.*;") ""))
214 (substitute* "scaffold.c"
215 (("extern char .malloc.*;") ""))
216 ;; This, believe it or not, is the recommended way to build!
217 (zero? (system* "make" "REAL_DAEMON_DIR=/etc" "linux"))))
218 ;; There is no make install stage, so we have to do it ourselves.
219 (replace 'install
220 (lambda _
221 (let ((out (assoc-ref %outputs "out"))
222 (man-pages `("hosts_access.3"
223 "hosts_access.5"
224 "hosts_options.5"
225 "tcpd.8"
226 "tcpdchk.8"
227 "tcpdmatch.8"))
228 (libs `("libwrap.a"
229 "libwrap.so"))
230 (headers `("tcpd.h"))
231 (bins `("safe_finger"
232 "tcpd"
233 "tcpdchk"
234 "tcpdmatch"
235 "try-from")))
236 (for-each
237 (lambda (x)
238 (install-file x (string-append out "/include")))
239 headers)
240 (for-each
241 (lambda (x)
242 (install-file x (string-append out "/share/man/man"
243 (string-take-right x 1))))
244 man-pages)
245 (for-each
246 (lambda (x)
247 (install-file x (string-append out "/lib/")))
248 libs)
249 (for-each
250 (lambda (x)
251 (install-file x (string-append out "/bin/")))
252 bins)))))))
253 (home-page "http://www.porcupine.org")
254 (synopsis "Monitor and filter incoming requests for network services")
255 (description "With this package you can monitor and filter incoming requests for
256 network services. It includes a library which may be used by daemons to
257 transparently check connection attempts against an access control list.")
258 (license (license:non-copyleft "file://DISCLAIMER"
259 "See the file DISCLAIMER in the distribution."))))
260
261
262 (define-public zeromq
263 (package
264 (name "zeromq")
265 (version "4.0.7")
266 (source (origin
267 (method url-fetch)
268 (uri (string-append "http://download.zeromq.org/zeromq-"
269 version ".tar.gz"))
270 (sha256
271 (base32
272 "00vvwhgcdr1lva2pavicvy92iad0hj8cf71n702hv6blw1kjj2z0"))))
273 (build-system gnu-build-system)
274 (home-page "http://zeromq.org")
275 (synopsis "Library for message-based applications")
276 (description
277 "The 0MQ lightweight messaging kernel is a library which extends the
278 standard socket interfaces with features traditionally provided by specialized
279 messaging middle-ware products. 0MQ sockets provide an abstraction of
280 asynchronous message queues, multiple messaging patterns, message
281 filtering (subscriptions), seamless access to multiple transport protocols and
282 more.")
283 (license license:lgpl3+)))
284
285 (define-public czmq
286 (package
287 (name "czmq")
288 (version "4.1.1")
289 (source (origin
290 (method url-fetch)
291 (uri (string-append
292 "https://github.com/zeromq/" name
293 "/releases/download/v" version
294 "/" name "-" version ".tar.gz"))
295 (sha256
296 (base32
297 "1h5hrcsc30fcwb032vy5gxkq4j4vv1y4dj460rfs1hhxi0cz83zh"))))
298 (build-system gnu-build-system)
299 (arguments
300 '(;; TODO Tests fail for some reason:
301 ;; * zauth: OK
302 ;; * zbeacon: OK (skipping test, no UDP broadcasting)
303 ;; E: (czmq_selftest) 18-02-24 16:25:52 No broadcast interface found, (ZSYS_INTERFACE=lo)
304 ;; make[2]: *** [Makefile:2245: check-local] Segmentation fault
305 ;; make[2]: Leaving directory '/tmp/guix-build-czmq-4.1.0.drv-0/czmq-4.1.0'
306 ;; make[1]: *** [Makefile:2032: check-am] Error 2
307 ;; make[1]: Leaving directory '/tmp/guix-build-czmq-4.1.0.drv-0/czmq-4.1.0'
308 ;; make: *** [Makefile:1588: check-recursive] Error 1
309 ;; phase `check' failed after 19.4 seconds
310 #:tests? #f
311 #:configure-flags '("--enable-drafts")))
312 (inputs
313 `(("zeromq" ,zeromq)))
314 (home-page "http://zeromq.org")
315 (synopsis "High-level C bindings for ØMQ")
316 (description
317 "czmq provides bindings for the ØMQ core API that hides the differences
318 between different versions of ØMQ.")
319 (license license:mpl2.0)))
320
321 (define-public cppzmq
322 (let ((revision "0")
323 (commit "d9f0f016c07046742738c65e1eb84722ae32d7d4"))
324 (package
325 (name "cppzmq")
326 (version (string-append "4.2.2-" revision "."
327 (string-take commit 7)))
328 (source (origin
329 (method git-fetch)
330 (uri (git-reference
331 (url "https://github.com/zeromq/cppzmq")
332 (commit commit)))
333 (sha256
334 (base32
335 "1gmqlm00y6xpa5m6d4ajq3ww63n2w7h4sy997wj81vcqmqx45b1f"))
336 (file-name (string-append name "-" version "-checkout"))))
337 (build-system cmake-build-system)
338 (arguments '(#:tests? #f)) ; No tests.
339 (native-inputs
340 `(("pkg-config" ,pkg-config)))
341 (inputs
342 `(("zeromq" ,zeromq)))
343 (home-page "http://zeromq.org")
344 (synopsis "C++ bindings for the ØMQ messaging library")
345 (description
346 "This package provides header-only C++ bindings for ØMQ. The header
347 files contain direct mappings of the abstractions provided by the ØMQ C API.")
348 (license license:expat))))
349
350 (define-public librdkafka
351 (package
352 (name "librdkafka")
353 (version "0.9.1")
354 (source (origin
355 (method url-fetch)
356 (uri (string-append
357 "https://github.com/edenhill/librdkafka/archive/"
358 version ".tar.gz"))
359 (file-name (string-append name "-" version ".tar.gz"))
360 (sha256
361 (base32
362 "10ldx7g7ymmg17snzx78vy4n8ma1rjx0agzi34g15j2fk867xmas"))))
363 (build-system gnu-build-system)
364 (arguments
365 '(#:phases
366 (modify-phases %standard-phases
367 (replace 'configure
368 ;; its custom configure script doesn't understand 'CONFIG_SHELL'.
369 (lambda* (#:key outputs #:allow-other-keys)
370 (let ((out (assoc-ref outputs "out")))
371 ;; librdkafka++.so lacks RUNPATH for librdkafka.so
372 (setenv "LDFLAGS"
373 (string-append "-Wl,-rpath=" out "/lib"))
374 (zero? (system* "./configure"
375 (string-append "--prefix=" out)))))))))
376 (native-inputs
377 `(("python" ,python-wrapper)))
378 (propagated-inputs
379 `(("zlib" ,zlib))) ; in the Libs.private field of rdkafka.pc
380 (home-page "https://github.com/edenhill/librdkafka")
381 (synopsis "Apache Kafka C/C++ client library")
382 (description
383 "librdkafka is a C library implementation of the Apache Kafka protocol,
384 containing both Producer and Consumer support.")
385 (license license:bsd-2)))
386
387 (define-public libndp
388 (package
389 (name "libndp")
390 (version "1.7")
391 (source (origin
392 (method url-fetch)
393 (uri (string-append "http://libndp.org/files/"
394 name "-" version ".tar.gz"))
395 (sha256
396 (base32
397 "1dlinhl39va00v55qygjc9ap77yqf7xvn4rwmvdr49xhzzxhlj1c"))))
398 (build-system gnu-build-system)
399 (home-page "http://libndp.org/")
400 (synopsis "Library for Neighbor Discovery Protocol")
401 (description
402 "libndp contains a library which provides a wrapper for IPv6 Neighbor
403 Discovery Protocol. It also provides a tool named ndptool for sending and
404 receiving NDP messages.")
405 (license license:lgpl2.1+)))
406
407 (define-public ethtool
408 (package
409 (name "ethtool")
410 (version "4.16")
411 (source (origin
412 (method url-fetch)
413 (uri (string-append "mirror://kernel.org/software/network/"
414 name "/" name "-" version ".tar.xz"))
415 (sha256
416 (base32
417 "00ss07jc7p276d83f6jpafgwyc9yiribciyqcgx9j86v49kpm5py"))))
418 (build-system gnu-build-system)
419 (home-page "https://www.kernel.org/pub/software/network/ethtool/")
420 (synopsis "Display or change Ethernet device settings")
421 (description
422 "ethtool can be used to query and change settings such as speed,
423 auto-negotiation and checksum offload on many network devices, especially
424 Ethernet devices.")
425 (license license:gpl2)))
426
427 (define-public ifstatus
428 (package
429 (name "ifstatus")
430 (version "1.1.0")
431 (source (origin
432 (method url-fetch)
433 (uri (string-append "mirror://sourceforge/ifstatus/ifstatus/"
434 "ifstatus%20v" version "/ifstatus-v"
435 version ".tar.gz"))
436 (sha256
437 (base32
438 "045cbsq9ps32j24v8y5hpyqxnqn9mpaf3mgvirlhgpqyb9jsia0c"))
439 (modules '((guix build utils)))
440 (snippet
441 '(begin
442 (substitute* "Main.h"
443 (("#include <stdio.h>")
444 "#include <stdio.h>\n#include <stdlib.h>"))
445 #t))))
446 (build-system gnu-build-system)
447 (arguments
448 '(#:tests? #f ; no "check" target
449 #:phases
450 (modify-phases %standard-phases
451 (delete 'configure) ; no configure script
452 (replace 'install
453 (lambda* (#:key outputs #:allow-other-keys)
454 (let* ((out (assoc-ref outputs "out"))
455 (bin (string-append out "/bin")))
456 (mkdir-p bin)
457 (copy-file "ifstatus"
458 (string-append bin "/ifstatus"))))))))
459 (inputs `(("ncurses" ,ncurses)))
460 (home-page "http://ifstatus.sourceforge.net/graphic/index.html")
461 (synopsis "Text based network interface status monitor")
462 (description
463 "IFStatus is a simple, easy-to-use program for displaying commonly
464 needed/wanted real-time traffic statistics of multiple network
465 interfaces, with a simple and efficient view on the command line. It is
466 intended as a substitute for the PPPStatus and EthStatus projects.")
467 (license license:gpl2+)))
468
469 (define-public nload
470 (package
471 (name "nload")
472 (version "0.7.4")
473 (source (origin
474 (method url-fetch)
475 (uri (string-append "mirror://sourceforge/nload/nload/" version
476 "/nload-" version ".tar.gz"))
477 (sha256
478 (base32
479 "1rb9skch2kgqzigf19x8bzk211jdfjfdkrcvaqyj89jy2pkm3h61"))))
480 (build-system gnu-build-system)
481 (inputs `(("ncurses" ,ncurses)))
482 (home-page "http://www.roland-riegel.de/nload/")
483 (synopsis "Realtime console network usage monitor")
484 (description
485 "Nload is a console application which monitors network traffic and
486 bandwidth usage in real time. It visualizes the in- and outgoing traffic using
487 two graphs, and provides additional info like total amount of transferred data
488 and min/max network usage.")
489 (license license:gpl2+)))
490
491 (define-public iodine
492 (package
493 (name "iodine")
494 (version "0.7.0")
495 (source (origin
496 (method url-fetch)
497 (uri (string-append "http://code.kryo.se/" name "/"
498 name "-" version ".tar.gz"))
499 (sha256
500 (base32
501 "0gh17kcxxi37k65zm4gqsvbk3aw7yphcs3c02pn1c4s2y6n40axd"))))
502 (build-system gnu-build-system)
503 (arguments
504 '(#:phases
505 (modify-phases %standard-phases
506 (delete 'configure)
507 (add-before 'build 'fix-ifconfig-path
508 ;; This package works only with the net-tools version of ifconfig.
509 (lambda* (#:key inputs #:allow-other-keys)
510 (substitute* "src/tun.c"
511 (("PATH=[^ ]* ")
512 (string-append (assoc-ref inputs "net-tools") "/bin/")))))
513 (add-before 'check 'delete-failing-tests
514 ;; Avoid https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=802105.
515 (lambda _
516 (substitute* "tests/common.c"
517 (("tcase_add_test\\(tc, \
518 test_parse_format_ipv(4(|_listen_all|_mapped_ipv6)|6)\\);")
519 "")))))
520 #:make-flags (list "CC=gcc"
521 (string-append "prefix=" (assoc-ref %outputs "out")))
522 #:test-target "test"))
523 (inputs `(("net-tools" ,net-tools)
524 ("zlib" ,zlib)))
525 (native-inputs `(("check" ,check)
526 ("pkg-config" ,pkg-config)))
527 (home-page "http://code.kryo.se/iodine/")
528 (synopsis "Tunnel IPv4 data through a DNS server")
529 (description "Iodine tunnels IPv4 data through a DNS server. This
530 can be useful in different situations where internet access is firewalled, but
531 DNS queries are allowed. The bandwidth is asymmetrical, with limited upstream
532 and up to 1 Mbit/s downstream.")
533 ;; src/md5.[ch] is released under the zlib license
534 (license (list license:isc license:zlib))))
535
536 (define-public whois
537 (package
538 (name "whois")
539 (version "5.3.2")
540 (source
541 (origin
542 (method url-fetch)
543 (uri (string-append "mirror://debian/pool/main/w/whois/"
544 name "_" version ".tar.xz"))
545 (sha256
546 (base32
547 "0m3352d5b0ragygbqjbaimghrbx4va2rixa34j5a1g3jj6l4nwbr"))))
548 (build-system gnu-build-system)
549 (arguments
550 `(#:tests? #f ; no test suite
551 #:make-flags (list "CC=gcc"
552 (string-append "prefix=" (assoc-ref %outputs "out")))
553 #:phases
554 (modify-phases %standard-phases
555 (delete 'configure) ; no configure script
556 (add-before 'build 'setenv
557 (lambda _
558 (setenv "HAVE_ICONV" "1")
559 #t)))))
560 (inputs
561 `(("libidn2" ,libidn2)))
562 (native-inputs
563 `(("gettext" ,gettext-minimal)
564 ("perl" ,perl)
565 ("pkg-config" ,pkg-config)))
566 (synopsis "Intelligent client for the WHOIS directory service")
567 (description
568 "whois searches for an object in a @dfn{WHOIS} (RFC 3912) database.
569 It is commonly used to look up the registered users or assignees of an Internet
570 resource, such as a domain name, an IP address block, or an autonomous system.
571 It can automatically select the appropriate server for most queries.
572
573 For historical reasons, this package also includes @command{mkpasswd}, which
574 encrypts passwords using @code{crypt(3)} and is unrelated to the Expect command
575 of the same name.")
576 (home-page "https://github.com/rfc1036/whois")
577 (license license:gpl2+)))
578
579 (define-public wireshark
580 (package
581 (name "wireshark")
582 (version "2.6.2")
583 (source
584 (origin
585 (method url-fetch)
586 (uri (string-append "https://www.wireshark.org/download/src/wireshark-"
587 version ".tar.xz"))
588 (sha256
589 (base32
590 "153h6prxamv5a62f3pfadkry0y57696xrgxfy2gfy5xswdg8kcj9"))))
591 (build-system gnu-build-system)
592 (inputs `(("c-ares" ,c-ares)
593 ("glib" ,glib)
594 ("gnutls" ,gnutls)
595 ("libcap" ,libcap)
596 ("libgcrypt" ,libgcrypt)
597 ("libnl" ,libnl)
598 ("libpcap" ,libpcap)
599 ("libssh" ,libssh)
600 ("libxml2" ,libxml2)
601 ("lz4" ,lz4)
602 ("lua" ,lua-5.2) ;Lua 5.3 unsupported
603 ("krb5" ,mit-krb5)
604 ("portaudio" ,portaudio)
605 ("qtbase" ,qtbase)
606 ("qtmultimedia" ,qtmultimedia)
607 ("sbc" ,sbc)
608 ("snappy" ,snappy)
609 ("zlib" ,zlib)))
610 (native-inputs `(("perl" ,perl)
611 ("pkg-config" ,pkg-config)
612 ("python" ,python-wrapper)
613 ("qttools" ,qttools)))
614 (arguments
615 `(#:configure-flags
616 (list (string-append "--with-c-ares=" (assoc-ref %build-inputs "c-ares"))
617 (string-append "--with-krb5=" (assoc-ref %build-inputs "krb5"))
618 (string-append "--with-libcap=" (assoc-ref %build-inputs "libcap"))
619 (string-append "--with-libssh=" (assoc-ref %build-inputs "libssh"))
620 (string-append "--with-lua=" (assoc-ref %build-inputs "lua"))
621 (string-append "--with-lz4=" (assoc-ref %build-inputs "lz4"))
622 (string-append "--with-pcap=" (assoc-ref %build-inputs "libpcap"))
623 (string-append "--with-portaudio="
624 (assoc-ref %build-inputs "portaudio"))
625 (string-append "--with-sbc=" (assoc-ref %build-inputs "sbc"))
626 (string-append "--with-snappy=" (assoc-ref %build-inputs "snappy"))
627 (string-append "--with-zlib=" (assoc-ref %build-inputs "zlib")))
628 #:phases
629 (modify-phases %standard-phases
630 (add-after 'unpack 'patch-source
631 (lambda _
632 ;; Fix build against Qt 5.11.
633 (substitute* "ui/qt/packet_format_group_box.cpp"
634 (("#include <QStyle>") "#include <QStyle>
635 #include <QStyleOption>"))
636 (substitute* "ui/qt/time_shift_dialog.cpp"
637 (("#include <ui/time_shift.h>") "#include <ui/time_shift.h>
638 #include <QStyleOption>"))
639 (substitute* "ui/qt/wireless_frame.cpp"
640 (("#include <QProcess>") "#include <QProcess>
641 #include <QAbstractItemView>"))
642 #t)))))
643 (synopsis "Network traffic analyzer")
644 (description "Wireshark is a network protocol analyzer, or @dfn{packet
645 sniffer}, that lets you capture and interactively browse the contents of
646 network frames.")
647 (home-page "https://www.wireshark.org/")
648 (license license:gpl2+)))
649
650 (define-public fping
651 (package
652 (name "fping")
653 (version "4.0")
654 (source
655 (origin
656 (method url-fetch)
657 (uri (string-append "https://fping.org/dist/fping-"
658 version ".tar.gz"))
659 (sha256
660 (base32
661 "1kp81wchi79l8z8rrj602fpjrd8bi84y3i7fsaclzlwap5943sv7"))))
662 (build-system gnu-build-system)
663 (home-page "http://fping.org/")
664 (synopsis "Send ICMP ECHO_REQUEST packets to network hosts")
665 (description
666 "fping is a ping like program which uses the Internet Control Message
667 Protocol (ICMP) echo request to determine if a target host is responding.
668 fping differs from ping in that you can specify any number of targets on the
669 command line, or specify a file containing the lists of targets to ping.
670 Instead of sending to one target until it times out or replies, fping will
671 send out a ping packet and move on to the next target in a round-robin
672 fashion.")
673 (license license:expat)))
674
675 (define-public httping
676 (package
677 (name "httping")
678 (version "2.5")
679 (source
680 (origin
681 (method url-fetch)
682 (uri (string-append "https://www.vanheusden.com/httping/httping-"
683 version ".tgz"))
684 (sha256
685 (base32
686 "1y7sbgkhgadmd93x1zafqc4yp26ssiv16ni5bbi9vmvvdl55m29y"))))
687 (build-system gnu-build-system)
688 (native-inputs
689 `(("gettext" ,gettext-minimal)))
690 (inputs
691 `(("fftw" ,fftw)
692 ("ncurses" ,ncurses)
693 ("openssl" ,openssl)))
694 (arguments
695 `(#:make-flags (list "CC=gcc"
696 (string-append "DESTDIR=" (assoc-ref %outputs "out"))
697 "PREFIX=")
698 #:tests? #f)) ; no tests
699 (home-page "https://www.vanheusden.com/httping/")
700 (synopsis "Web server latency and throughput monitor")
701 (description
702 "httping measures how long it takes to connect to a web server, send an
703 HTTP(S) request, and receive the reply headers. It is somewhat similar to
704 @command{ping}, but can be used even in cases where ICMP traffic is blocked
705 by firewalls or when you want to monitor the response time of the actual web
706 application stack itself.")
707 (license license:gpl2))) ; with permission to link with OpenSSL
708
709 (define-public httpstat
710 (package
711 (name "httpstat")
712 (version "1.2.1")
713 (source
714 (origin
715 (method url-fetch)
716 (uri (pypi-uri "httpstat" version))
717 (sha256
718 (base32
719 "1chw2nk56vaq87aba012a270k9na06hfx1pfbsrc3jfvlc2kb9hb"))))
720 (build-system python-build-system)
721 (inputs `(("curl" ,curl)))
722 (arguments
723 '(#:phases
724 (modify-phases %standard-phases
725 (add-before 'build 'fix-curl-path
726 (lambda* (#:key inputs #:allow-other-keys)
727 (substitute* "httpstat.py"
728 (("ENV_CURL_BIN.get\\('curl'\\)")
729 (string-append "ENV_CURL_BIN.get('"
730 (assoc-ref inputs "curl")
731 "/bin/curl')"))))))))
732 (home-page "https://github.com/reorx/httpstat")
733 (synopsis "Visualize curl statistics")
734 (description
735 "@command{httpstat} is a tool to visualize statistics from the
736 @command{curl} HTTP client. It acts as a wrapper for @command{curl} and
737 prints timing information for each step of the HTTP request (DNS lookup,
738 TCP connection, TLS handshake and so on) in the terminal.")
739 (license license:expat)))
740
741 (define-public bwm-ng
742 (package
743 (name "bwm-ng")
744 (version "0.6.1")
745 (source
746 (origin
747 (method url-fetch)
748 (uri (string-append "https://www.gropp.org/bwm-ng/bwm-ng-"
749 version ".tar.gz"))
750 (sha256
751 (base32
752 "1w0dwpjjm9pqi613i8glxrgca3rdyqyp3xydzagzr5ndc34z6z02"))))
753 (build-system gnu-build-system)
754 (inputs `(("ncurses" ,ncurses)))
755 (synopsis "Console based live network and disk I/O bandwidth monitor")
756 (description "Bandwidth Monitor NG is a small and simple console based
757 live network and disk I/O bandwidth monitor.")
758 (home-page "https://www.gropp.org/?id=projects&sub=bwm-ng")
759 (license license:gpl2)))
760
761 (define-public aircrack-ng
762 (package
763 (name "aircrack-ng")
764 (version "1.2-rc4")
765 (source
766 (origin
767 (method url-fetch)
768 (uri (string-append "http://download.aircrack-ng.org/aircrack-ng-"
769 version ".tar.gz"))
770 (sha256
771 (base32
772 "0dpzx9kddxpgzmgvdpl3rxn0jdaqhm5wxxndp1xd7d75mmmc2fnr"))))
773 (build-system gnu-build-system)
774 (native-inputs
775 `(("pkg-config" ,pkg-config)))
776 (inputs
777 `(("libgcrypt" ,libgcrypt)
778 ("libnl" ,libnl)
779 ("ethtool" ,ethtool)
780 ("pcre" ,pcre)
781 ("sqlite" ,sqlite)
782 ("zlib" ,zlib)))
783 (arguments
784 `(#:make-flags `("sqlite=true"
785 "gcrypt=true"
786 "libnl=true"
787 "pcre=true"
788 "experimental=true" ;build wesside-ng, etc.
789 "AVX2FLAG=N" "AVX1FLAG=N"
790 ,,@(match (%current-system)
791 ((or "x86_64-linux" "i686-linux")
792 `("SSEFLAG=Y"))
793 (_
794 `("NEWSSE=false")))
795 ,(string-append "prefix=" %output))
796 #:phases (modify-phases %standard-phases
797 (delete 'configure) ;no configure phase
798 (add-after 'build 'absolutize-tools
799 (lambda* (#:key inputs #:allow-other-keys)
800 (let ((ethtool (string-append (assoc-ref inputs "ethtool")
801 "/sbin/ethtool")))
802 (substitute* "scripts/airmon-ng"
803 (("\\[ ! -x \"\\$\\(command -v ethtool 2>&1)\" \\]")
804 (string-append "! " ethtool " --version "
805 ">/dev/null 2>&1"))
806 (("\\$\\(ethtool")
807 (string-append "$(" ethtool)))
808 #t))))))
809 (home-page "http://www.aircrack-ng.org")
810 (synopsis "Assess WiFi network security")
811 (description
812 "Aircrack-ng is a complete suite of tools to assess WiFi network
813 security. It focuses on different areas of WiFi security: monitoring,
814 attacking, testing, and cracking. All tools are command-line driven, which
815 allows for heavy scripting.")
816 (license (list license:gpl2+ license:bsd-3))))
817
818 (define-public perl-net-dns
819 (package
820 (name "perl-net-dns")
821 (version "1.17")
822 (source
823 (origin
824 (method url-fetch)
825 (uri
826 (list
827 (string-append "https://www.net-dns.org/download/Net-DNS-"
828 version ".tar.gz")
829 (string-append "mirror://cpan/authors/id/N/NL/NLNETLABS/Net-DNS-"
830 version ".tar.gz")))
831 (sha256
832 (base32
833 "1q62w9rf2w8kjzqagzr0rdn20ybl8gj3l6cdq4k8fw0sxa7zsycs"))))
834 (build-system perl-build-system)
835 (inputs
836 `(("perl-digest-hmac" ,perl-digest-hmac)))
837 (home-page "https://www.net-dns.org/")
838 (synopsis
839 "Perl Interface to the Domain Name System")
840 (description "Net::DNS is the Perl Interface to the Domain Name System.")
841 (license license:x11)))
842
843 (define-public perl-socket6
844 (package
845 (name "perl-socket6")
846 (version "0.28")
847 (source
848 (origin
849 (method url-fetch)
850 (uri (string-append
851 "mirror://cpan/authors/id/U/UM/UMEMOTO/Socket6-"
852 version
853 ".tar.gz"))
854 (sha256
855 (base32
856 "11j5jzqbzmwlws9zals43ry2f1nw9qy6im7yhn9ck5rikywrmm5z"))))
857 (build-system perl-build-system)
858 (arguments
859 `(#:phases
860 (modify-phases %standard-phases
861 (replace 'configure
862 (lambda* (#:key outputs #:allow-other-keys)
863 (let* ((out (assoc-ref outputs "out"))
864 (args `("Makefile.PL"
865 ,(string-append "PREFIX=" out)
866 "INSTALLDIRS=site")))
867 (setenv "CONFIG_SHELL" (which "sh"))
868 (zero? (apply system* "perl" args))))))))
869 (home-page "http://search.cpan.org/dist/Socket6")
870 (synopsis
871 "IPv6 related part of the C socket.h defines and structure manipulators for Perl")
872 (description "Socket6 binds the IPv6 related part of the C socket header
873 definitions and structure manipulators for Perl.")
874 (license license:bsd-3)))
875
876 (define-public perl-net-dns-resolver-programmable
877 (package
878 (name "perl-net-dns-resolver-programmable")
879 (version "v0.003")
880 (source
881 (origin
882 (method url-fetch)
883 (uri (string-append
884 "mirror://cpan/authors/id/J/JM/JMEHNLE/net-dns-resolver-programmable/"
885 "Net-DNS-Resolver-Programmable-" version ".tar.gz"))
886 (sha256
887 (base32
888 "1v3nl2kaj4fs55n1617n53q8sa3mir06898vpy1rq98zjih24h4d"))
889 (patches
890 (search-patches "perl-net-dns-resolver-programmable-fix.patch"))))
891 (build-system perl-build-system)
892 (native-inputs
893 `(("perl-module-build" ,perl-module-build)))
894 (inputs `(("perl-net-dns" ,perl-net-dns)))
895 (home-page
896 "http://search.cpan.org/dist/Net-DNS-Resolver-Programmable")
897 (synopsis
898 "Programmable DNS resolver class for offline emulation of DNS")
899 (description "Net::DNS::Resolver::Programmable is a programmable DNS resolver for
900 offline emulation of DNS.")
901 (license license:perl-license)))
902
903 (define-public perl-netaddr-ip
904 (package
905 (name "perl-netaddr-ip")
906 (version "4.079")
907 (source
908 (origin
909 (method url-fetch)
910 (uri (string-append
911 "mirror://cpan/authors/id/M/MI/MIKER/NetAddr-IP-"
912 version
913 ".tar.gz"))
914 (sha256
915 (base32
916 "1rx0dinrz9fk9qcg4rwqq5n1dm3xv2arymixpclcv2q2nzgq4npc"))))
917 (build-system perl-build-system)
918 (arguments
919 `(#:phases
920 (modify-phases %standard-phases
921 (replace 'configure
922 (lambda* (#:key outputs #:allow-other-keys)
923 (let* ((out (assoc-ref outputs "out"))
924 (args `("Makefile.PL"
925 ,(string-append "PREFIX=" out)
926 "INSTALLDIRS=site")))
927 (setenv "CONFIG_SHELL" (which "sh"))
928 (zero? (apply system* "perl" args))))))))
929 (home-page
930 "http://search.cpan.org/dist/NetAddr-IP")
931 (synopsis
932 "Manages IPv4 and IPv6 addresses and subnets")
933 (description "NetAddr::IP manages IPv4 and IPv6 addresses and subsets.")
934 (license license:perl-license)))
935
936 (define-public perl-net-patricia
937 (package
938 (name "perl-net-patricia")
939 (version "1.22")
940 (source
941 (origin
942 (method url-fetch)
943 (uri (string-append
944 "mirror://cpan/authors/id/G/GR/GRUBER/Net-Patricia-"
945 version
946 ".tar.gz"))
947 (sha256
948 (base32
949 "0ln5f57vc8388kyh9vhx2infrdzfhbpgyby74h1qsnhwds95m0vh"))))
950 (build-system perl-build-system)
951 (inputs
952 `(("perl-net-cidr-lite" ,perl-net-cidr-lite)
953 ("perl-socket6" ,perl-socket6)))
954 (home-page
955 "http://search.cpan.org/dist/Net-Patricia")
956 (synopsis
957 "Patricia Trie Perl module for fast IP address lookups")
958 (description
959 "Net::Patricia does IP address lookups quickly in Perl.")
960 ;; The bindings are licensed under GPL2 or later.
961 ;; libpatricia is licensed under 2-clause BSD.
962 (license (list license:gpl2+ license:bsd-2))))
963
964 (define-public perl-net-cidr-lite
965 (package
966 (name "perl-net-cidr-lite")
967 (version "0.21")
968 (source
969 (origin
970 (method url-fetch)
971 (uri (string-append
972 "mirror://cpan/authors/id/D/DO/DOUGW/Net-CIDR-Lite-"
973 version
974 ".tar.gz"))
975 (sha256
976 (base32
977 "14shj73zbqmfjbp0qz1fs9j4p2dpvz5hfkm4qfdjbydflbl2b8fg"))))
978 (build-system perl-build-system)
979 (home-page
980 "http://search.cpan.org/dist/Net-CIDR-Lite")
981 (synopsis
982 "Perl extension for merging IPv4 or IPv6 CIDR addresses")
983 (description "Net::CIDR::Lite merges IPv4 or IPv6 CIDR addresses.")
984 (license license:gpl1+)))
985
986 ;; TODO: Use the geolite-mirror-simple.pl script from the example
987 ;; directory to stay current with the databases. How?
988 (define-public perl-geo-ip
989 (package
990 (name "perl-geo-ip")
991 (version "1.51")
992 (source
993 (origin
994 (method url-fetch)
995 (uri (string-append
996 "mirror://cpan/authors/id/M/MA/MAXMIND/Geo-IP-"
997 version
998 ".tar.gz"))
999 (sha256
1000 (base32
1001 "1fka8fr7fw6sh3xa9glhs1zjg3s2gfkhi7n7da1l2m2wblqj0c0n"))))
1002 (build-system perl-build-system)
1003 (home-page "http://search.cpan.org/dist/Geo-IP")
1004 (synopsis
1005 "Look up location and network information by IP Address in Perl")
1006 (description "The Perl module 'Geo::IP'. It looks up location and network
1007 information by IP Address.")
1008 (license license:perl-license)))
1009
1010 (define-public perl-io-socket-inet6
1011 (package
1012 (name "perl-io-socket-inet6")
1013 (version "2.72")
1014 (source
1015 (origin
1016 (method url-fetch)
1017 (uri (string-append
1018 "mirror://cpan/authors/id/S/SH/SHLOMIF/IO-Socket-INET6-"
1019 version
1020 ".tar.gz"))
1021 (sha256
1022 (base32
1023 "1fqypz6qa5rw2d5y2zq7f49frwra0aln13nhq5gi514j2zx21q45"))))
1024 (build-system perl-build-system)
1025 (native-inputs
1026 `(("perl-module-build" ,perl-module-build)
1027 ("perl-test-pod" ,perl-test-pod)
1028 ("perl-test-pod-coverage" ,perl-test-pod-coverage)))
1029 (inputs `(("perl-socket6" ,perl-socket6)))
1030 (arguments `(;; Need network socket API
1031 #:tests? #f))
1032 (home-page
1033 "http://search.cpan.org/dist/IO-Socket-INET6")
1034 (synopsis
1035 "Perl object interface for AF_INET/AF_INET6 domain sockets")
1036 (description "IO::Socket::INET6 is an interface for AF_INET/AF_INET6 domain
1037 sockets in Perl.")
1038 (license license:perl-license)))
1039
1040 (define-public libproxy
1041 (package
1042 (name "libproxy")
1043 (version "0.4.15")
1044 (source (origin
1045 (method url-fetch)
1046 (uri (string-append "https://github.com/libproxy/libproxy/"
1047 "releases/download/" version "/libproxy-"
1048 version ".tar.xz"))
1049 (sha256
1050 (base32
1051 "0kvdrazlzwia876w988cmlypp253gwy6idlh8mjk958c29jb8kb5"))))
1052 (build-system cmake-build-system)
1053 (native-inputs
1054 `(("pkg-config" ,pkg-config)))
1055 (inputs
1056 `(("dbus" ,dbus)
1057 ("zlib" ,zlib)
1058 ("network-manager" ,network-manager)))
1059 (arguments
1060 `(#:phases
1061 (modify-phases %standard-phases
1062 (replace 'check
1063 (lambda _
1064 (zero? (system* "ctest" "-E" "url-test")))))))
1065 (synopsis "Library providing automatic proxy configuration management")
1066 (description "Libproxy handles the details of HTTP/HTTPS proxy
1067 configuration for applications across all scenarios. Applications using
1068 libproxy only have to specify which proxy to use.")
1069 (home-page "https://libproxy.github.io/libproxy")
1070 (license license:lgpl2.1+)))
1071
1072 (define-public proxychains-ng
1073 (package
1074 (name "proxychains-ng")
1075 (version "4.13")
1076 (source
1077 (origin
1078 (method url-fetch)
1079 (uri (string-append "http://ftp.barfooze.de/pub/sabotage/tarballs/"
1080 name "-" version ".tar.xz"))
1081 (sha256
1082 (base32
1083 "0418fv8hgf43rzrxxlybg49jz2h6w8inndhb6v1184k4cwzjnl3p"))))
1084 (build-system gnu-build-system)
1085 (arguments
1086 `(#:tests? #f ; there are no tests
1087 #:phases
1088 (modify-phases %standard-phases
1089 (add-after 'unpack 'fix-configure-script
1090 (lambda _
1091 ;; The configure script is very intolerant to unknown arguments,
1092 ;; such as "CONFIG_SHELL".
1093 (substitute* "configure"
1094 (("\\*\\) break ;;" line)
1095 (string-append "[A-Z]*) shift ;;\n"
1096 line)))
1097 #t))
1098 (add-before 'configure 'set-up-environment
1099 (lambda _
1100 (setenv "CC" "gcc")
1101 #t)))))
1102 (synopsis "Redirect any TCP connection through a proxy or proxy chain")
1103 (description "Proxychains-ng is a preloader which hooks calls to sockets
1104 in dynamically linked programs and redirects them through one or more SOCKS or
1105 HTTP proxies.")
1106 (home-page "https://github.com/rofl0r/proxychains-ng")
1107 (license license:gpl2+)))
1108
1109 (define-public enet
1110 (package
1111 (name "enet")
1112 (version "1.3.13")
1113 (source (origin
1114 (method url-fetch)
1115 (uri (string-append "http://enet.bespin.org/download/"
1116 name "-" version ".tar.gz"))
1117 (sha256
1118 (base32
1119 "0p53mnmjbm56wizwraznynx13fcibcxiqny110dp6a5a3w174q73"))))
1120 (build-system gnu-build-system)
1121 (native-inputs
1122 `(("pkg-config" ,pkg-config)))
1123 (synopsis
1124 "Network communication layer on top of UDP")
1125 (description
1126 "ENet's purpose is to provide a relatively thin, simple and robust network
1127 communication layer on top of UDP. The primary feature it provides is optional
1128 reliable, in-order delivery of packets. ENet omits certain higher level
1129 networking features such as authentication, server discovery, encryption, or
1130 other similar tasks that are particularly application specific so that the
1131 library remains flexible, portable, and easily embeddable.")
1132 (home-page "http://enet.bespin.org")
1133 (license license:expat)))
1134
1135 (define-public sslh
1136 (package
1137 (name "sslh")
1138 (version "1.19c")
1139 (source (origin
1140 (method url-fetch)
1141 (uri (string-append "https://github.com/yrutschle/sslh/archive/v"
1142 version ".tar.gz"))
1143 (file-name (string-append name "-" version ".tar.gz"))
1144 (sha256
1145 (base32
1146 "0pd8hifa9h0rm7vms3k6ic1k29xigrlv2idc5wgcafmb1v1243di"))))
1147 (build-system gnu-build-system)
1148 (native-inputs
1149 `(;; Test dependencies.
1150 ("lcov" ,lcov)
1151 ("perl" ,perl)
1152 ("perl-io-socket-inet6" ,perl-io-socket-inet6)
1153 ("perl-socket6" ,perl-socket6)
1154 ("psmisc" ,psmisc)
1155 ("valgrind" ,valgrind)))
1156 (inputs
1157 `(("libcap" ,libcap)
1158 ("libconfig" ,libconfig)
1159 ("pcre" ,pcre)
1160 ("tcp-wrappers" ,tcp-wrappers)))
1161 (arguments
1162 '(#:phases
1163 (modify-phases %standard-phases
1164 (delete 'configure) ; no configure script
1165 (add-before 'check 'fix-tests
1166 (lambda _
1167 (substitute* "./t"
1168 (("\"/tmp") "$ENV{\"TMPDIR\"} . \"")
1169 ;; The Guix build environment lacks ‘ip6-localhost’.
1170 (("ip6-localhost") "localhost"))
1171 #t))
1172 ;; Many of these files are mentioned in the man page. Install them.
1173 (add-after 'install 'install-documentation
1174 (lambda* (#:key outputs #:allow-other-keys)
1175 (let* ((out (assoc-ref outputs "out"))
1176 (doc (string-append out "/share/doc/sslh")))
1177 (install-file "README.md" doc)
1178 (for-each
1179 (lambda (file)
1180 (install-file file (string-append doc "/examples")))
1181 (append (find-files "." "\\.cfg")
1182 (find-files "scripts"))))
1183 #t)))
1184 #:make-flags (list "CC=gcc"
1185 "USELIBCAP=1"
1186 "USELIBWRAP=1"
1187 (string-append "PREFIX=" (assoc-ref %outputs "out")))
1188 #:test-target "test"))
1189 (home-page "https://www.rutschle.net/tech/sslh/README.html")
1190 (synopsis "Applicative network protocol demultiplexer")
1191 (description
1192 "sslh is a network protocol demultiplexer. It acts like a switchboard,
1193 accepting connections from clients on one port and forwarding them to different
1194 servers based on the contents of the first received data packet. Detection of
1195 common protocols like HTTP(S), SSL, SSH, OpenVPN, tinc, and XMPP is already
1196 implemented, but any other protocol that matches a regular expression can be
1197 added. sslh's name comes from its original application of serving both SSH and
1198 HTTPS on port 443, allowing SSH connections from inside corporate firewalls
1199 that block port 22.")
1200 (license (list license:bsd-2 ; tls.[ch]
1201 license:gpl2+)))) ; everything else
1202
1203 (define-public iperf
1204 (package
1205 (name "iperf")
1206 (version "3.1.7")
1207 (source (origin
1208 (method url-fetch)
1209 (uri (string-append "http://downloads.es.net/pub/iperf"
1210 "/iperf-" version ".tar.gz"))
1211 (sha256
1212 (base32
1213 "0kvk8d0a3dcxc8fisyprbn01y8akxj4sx8ld5dh508p9dx077vx4"))))
1214 (build-system gnu-build-system)
1215 (synopsis "TCP, UDP and SCTP bandwidth measurement tool")
1216 (description
1217 "iPerf is a tool to measure achievable bandwidth on IP networks. It
1218 supports tuning of various parameters related to timing, buffers and
1219 protocols (TCP, UDP, SCTP with IPv4 and IPv6). For each test it reports
1220 the bandwidth, loss, and other parameters.")
1221 (home-page "http://software.es.net/iperf/")
1222 (license (list license:bsd-3 ; Main distribution.
1223 license:ncsa ; src/{units,iperf_locale,tcp_window_size}.c
1224 license:expat ; src/{cjson,net}.[ch]
1225 license:public-domain)))) ; src/portable_endian.h
1226
1227 (define-public nethogs
1228 (package
1229 (name "nethogs")
1230 (version "0.8.5")
1231 (source (origin
1232 (method url-fetch)
1233 (uri (string-append "https://github.com/raboof/nethogs/archive/v"
1234 version ".tar.gz"))
1235 (sha256
1236 (base32
1237 "1k4x8r7s4dgcb6n2rjn28h2yyij92mwm69phncl3597cdxr954va"))
1238 (file-name (string-append name "-" version ".tar.gz"))))
1239 (build-system gnu-build-system)
1240 (inputs
1241 `(("libpcap" ,libpcap)
1242 ("ncurses" ,ncurses)))
1243 (arguments
1244 `(#:make-flags `("CC=gcc"
1245 ,(string-append "PREFIX=" %output))
1246 #:phases
1247 (modify-phases %standard-phases
1248 (delete 'configure)))) ; No ./configure script.
1249 (home-page "https://github.com/raboof/nethogs")
1250 (synopsis "Per-process bandwidth monitor")
1251 (description "NetHogs is a small 'net top' tool for Linux. Instead of
1252 breaking the traffic down per protocol or per subnet, like most tools do, it
1253 groups bandwidth by process.
1254
1255 NetHogs does not rely on a special kernel module to be loaded. If there's
1256 suddenly a lot of network traffic, you can fire up NetHogs and immediately see
1257 which PID is causing this. This makes it easy to identify programs that have
1258 gone wild and are suddenly taking up your bandwidth.")
1259 (license license:gpl2+)))
1260
1261 (define-public nzbget
1262 (package
1263 (name "nzbget")
1264 (version "20.0")
1265 (source
1266 (origin
1267 (method url-fetch)
1268 (uri (string-append "https://github.com/nzbget/nzbget/archive/v"
1269 version ".tar.gz"))
1270 (file-name (string-append name "-" version ".tar.gz"))
1271 (sha256
1272 (base32
1273 "0q93aqqyzccn5r9sny38499rmg846qdh9pi2v5kvf9m23v54yk60"))
1274 (modules '((guix build utils)))
1275 (snippet
1276 ;; Reported upstream as <https://github.com/nzbget/nzbget/pull/414>.
1277 '(begin
1278 (substitute* "daemon/connect/TlsSocket.cpp"
1279 (("gnutls_certificate-verification_status_print")
1280 "gnutls_certificate_verification_status_print"))
1281 #t))))
1282 (arguments
1283 `(#:configure-flags
1284 (list
1285 (string-append "--with-libcurses-includes="
1286 (assoc-ref %build-inputs "ncurses") "/include")
1287 (string-append "--with-libcurses-libraries="
1288 (assoc-ref %build-inputs "ncurses") "/lib")
1289 (string-append "--with-tlslib=GnuTLS"))))
1290 (build-system gnu-build-system)
1291 (inputs `(("gnutls" ,gnutls)
1292 ("libxml2" ,libxml2)
1293 ("ncurses" ,ncurses)
1294 ("zlib" ,zlib)))
1295 (native-inputs `(("pkg-config" ,pkg-config)))
1296 (home-page "https://github.com/nzbget/nzbget")
1297 (synopsis "Usenet binary file downloader")
1298 (description
1299 "NZBGet is a binary newsgrabber, which downloads files from Usenet based
1300 on information given in @code{nzb} files. NZBGet can be used in standalone
1301 and in server/client modes. In standalone mode, you pass NZBGet @command{nzb}
1302 files as command-line parameters and it downloads them and exits. NZBGet also
1303 contains a Web interface. Its server can be controlled through remote
1304 procedure calls (RPCs).")
1305 (license license:gpl2+)))
1306
1307 (define-public openvswitch
1308 (package
1309 (name "openvswitch")
1310 (version "2.8.1")
1311 (source (origin
1312 (method url-fetch)
1313 (uri (string-append
1314 "http://openvswitch.org/releases/openvswitch-"
1315 version ".tar.gz"))
1316 (sha256
1317 (base32
1318 "14rqqhfyv49irz8ag0qbv9jn8z0bn3qzxir3r074y16p4sg4674d"))))
1319 (build-system gnu-build-system)
1320 (arguments
1321 '(;; FIXME: many tests fail with:
1322 ;; […]
1323 ;; test -e $OVS_RUNDIR/ovs-vswitchd.pid
1324 ;; ovs-appctl -t ovs-vswitchd exit
1325 ;; hard failure
1326 #:tests? #f
1327 #:configure-flags
1328 '("--enable-shared"
1329 "--localstatedir=/var"
1330 "--with-dbdir=/var/lib/openvswitch")
1331 #:phases
1332 (modify-phases %standard-phases
1333 (replace 'install
1334 (lambda _
1335 (zero? (system* "make"
1336 ;; Don't try to create directories under /var.
1337 "RUNDIR=/tmp"
1338 "PKIDIR=/tmp"
1339 "LOGDIR=/tmp"
1340 "DBDIR=/tmp"
1341 "install")))))))
1342 (native-inputs
1343 `(("perl" ,perl)
1344 ("pkg-config" ,pkg-config)
1345 ("python" ,python-2)
1346 ;; for testing
1347 ("util-linux" ,util-linux)))
1348 (propagated-inputs
1349 `(("python-six" ,python2-six)))
1350 (inputs
1351 `(("libcap-ng" ,libcap-ng)
1352 ("openssl" ,openssl)))
1353 (synopsis "Virtual network switch")
1354 (home-page "http://www.openvswitch.org/")
1355 (description
1356 "Open vSwitch is a multilayer virtual switch. It is designed to enable
1357 massive network automation through programmatic extension, while still
1358 supporting standard management interfaces and protocols (e.g. NetFlow, sFlow,
1359 IPFIX, RSPAN, CLI, LACP, 802.1ag).")
1360 (license ; see debian/copyright for detail
1361 (list license:lgpl2.1 ; xenserver and utilities/bugtool
1362 license:gpl2 ; datapath
1363 license:bsd-2 license:bsd-3
1364 license:asl2.0)))) ; all other
1365
1366 (define-public python-ipy
1367 (package
1368 (name "python-ipy")
1369 (version "0.83")
1370 (source (origin
1371 (method url-fetch)
1372 (uri (pypi-uri "IPy" version))
1373 (sha256
1374 (base32
1375 "1f6sdrxclifky4gvkf4gvyv5hx3fjh8vzspnfrqki6qm5d9mmnk1"))))
1376 (build-system python-build-system)
1377 (home-page "https://github.com/autocracy/python-ipy/")
1378 (synopsis "Python class and tools for handling IP addresses and networks")
1379 (description "The @code{IP} class allows a comfortable parsing and
1380 handling for most notations in use for IPv4 and IPv6 addresses and
1381 networks.")
1382 (license license:bsd-3)))
1383
1384 (define-public python2-ipy
1385 (package-with-python2 python-ipy))
1386
1387 (define-public speedtest-cli
1388 (package
1389 (name "speedtest-cli")
1390 (version "2.0.2")
1391 (source
1392 (origin
1393 (method git-fetch)
1394 (uri (git-reference
1395 (url "https://github.com/sivel/speedtest-cli")
1396 (commit (string-append "v" version))))
1397 (file-name (git-file-name name version))
1398 (sha256
1399 (base32
1400 "0vv2z37g2kgm2dzkfa4bhri92hs0d1acxi8z66gznsl5148q7sdi"))))
1401 (build-system python-build-system)
1402 (home-page "https://github.com/sivel/speedtest-cli")
1403 (synopsis "Internet bandwidth tester")
1404 (description
1405 "Command line interface for testing internet bandwidth using
1406 speedtest.net.")
1407 (license license:asl2.0)))
1408
1409 (define-public tftp-hpa
1410 (package
1411 (name "tftp-hpa")
1412 (version "5.2")
1413 (source (origin
1414 (method url-fetch)
1415 (uri (string-append "mirror://kernel.org/software/"
1416 "network/tftp/tftp-hpa/tftp-hpa-" version
1417 ".tar.xz"))
1418 (sha256
1419 (base32
1420 "12vidchglhyc20znq5wdsbhi9mqg90jnl7qr9qs8hbvaz4fkdvmg"))))
1421 (build-system gnu-build-system)
1422 (arguments `(#:tests? #f)) ; no test target
1423 (synopsis "HPA's tftp client")
1424 (description
1425 "This is a tftp client derived from OpenBSD tftp with some extra options
1426 added and bugs fixed. The source includes readline support but it is not
1427 enabled due to license conflicts between the BSD advertising clause and the GPL.")
1428 (home-page "http://git.kernel.org/cgit/network/tftp/tftp-hpa.git/about/")
1429 ;; Some source files are distributed under a 3-clause BSD license, and
1430 ;; others under a 4-clause BSD license. Refer to the files in the source
1431 ;; distribution for clarification.
1432 (license (list license:bsd-3 license:bsd-4))))
1433
1434 (define-public pidentd
1435 (package
1436 (name "pidentd")
1437 (version "3.0.19")
1438 (source
1439 (origin
1440 (method url-fetch)
1441 (uri (string-append "https://github.com/ptrrkssn/pidentd/archive/"
1442 "v" version ".tar.gz"))
1443 (file-name (string-append name "-" version ".tar.gz"))
1444 (sha256
1445 (base32
1446 "0y3kd1bkydqkpc1qdff24yswysamsqivvadjy0468qri5730izgc"))))
1447 (build-system gnu-build-system)
1448 (arguments
1449 `(#:tests? #f)) ; No tests are included
1450 (inputs
1451 `(("openssl" ,openssl))) ; For the DES library
1452 (home-page "https://www.lysator.liu.se/~pen/pidentd/")
1453 (synopsis "Small Ident Daemon")
1454 (description
1455 "@dfn{Pidentd} (Peter's Ident Daemon) is a identd, which implements a
1456 identification server. Pidentd looks up specific TCP/IP connections and
1457 returns the user name and other information about the connection.")
1458 (license license:public-domain)))
1459
1460 (define-public spiped
1461 (package
1462 (name "spiped")
1463 (version "1.6.0")
1464 (source (origin
1465 (method url-fetch)
1466 (uri (string-append "https://www.tarsnap.com/spiped/spiped-"
1467 version ".tgz"))
1468 (sha256
1469 (base32
1470 "1r51rdcl7nib1yv3yvgd5alwlkkwmr387brqavaklb0p2bwzixz6"))))
1471 (build-system gnu-build-system)
1472 (arguments
1473 '(#:test-target "test"
1474 #:make-flags (let* ((out (assoc-ref %outputs "out"))
1475 (bindir (string-append out "/bin"))
1476 (man1dir (string-append out "/share/man/man1")))
1477 (list "CC=gcc" ; It tries to invoke `c99`.
1478 (string-append "BINDIR=" bindir)
1479 (string-append "MAN1DIR=" man1dir)))
1480 #:phases
1481 (modify-phases %standard-phases
1482 (add-after 'unpack 'patch-command-invocations
1483 (lambda _
1484 (substitute* '("Makefile"
1485 "libcperciva/cpusupport/Build/cpusupport.sh"
1486 "libcperciva/POSIX/posix-cflags.sh"
1487 "libcperciva/POSIX/posix-l.sh")
1488 (("command -p") ""))
1489 #t))
1490 (delete 'configure) ; No ./configure script.
1491 (add-after 'install 'install-more-docs
1492 (lambda* (#:key outputs #:allow-other-keys)
1493 (let* ((out (assoc-ref %outputs "out"))
1494 (misc (string-append out "/share/doc/spiped")))
1495 (install-file "DESIGN.md" misc)
1496 #t))))))
1497 (native-inputs
1498 `(("procps" ,procps))) ; `ps` is used by the test suite.
1499 (inputs
1500 `(("openssl" ,openssl)))
1501 (home-page "https://www.tarsnap.com/spiped.html")
1502 (synopsis "Create secure pipes between sockets")
1503 (description "Spiped (pronounced \"ess-pipe-dee\") is a utility for creating
1504 symmetrically encrypted and authenticated pipes between socket addresses, so
1505 that one may connect to one address (e.g., a UNIX socket on localhost) and
1506 transparently have a connection established to another address (e.g., a UNIX
1507 socket on a different system). This is similar to 'ssh -L' functionality, but
1508 does not use SSH and requires a pre-shared symmetric key.")
1509 (license license:bsd-2)))
1510
1511 (define-public quagga
1512 (package
1513 (name "quagga")
1514 (version "1.2.4")
1515 (source (origin
1516 (method url-fetch)
1517 (uri (string-append "mirror://savannah/quagga/quagga-"
1518 version ".tar.gz"))
1519 (sha256
1520 (base32
1521 "1lsksqxij5f1llqn86pkygrf5672kvrqn1kvxghi169hqf1c0r73"))
1522 (patches
1523 (search-patches "quagga-reproducible-build.patch"))))
1524 (build-system gnu-build-system)
1525 (native-inputs `(("pkg-config" ,pkg-config)
1526 ("perl" ,perl)
1527 ("dejagnu" ,dejagnu)))
1528 (inputs `(("readline" ,readline)
1529 ("c-ares" ,c-ares)))
1530 (synopsis "Routing Software Suite")
1531 (description "Quagga is a routing software suite, providing implementations
1532 of OSPFv2, OSPFv3, RIP v1 and v2, RIPng and BGP-4 for Unix platforms.
1533
1534 The Quagga architecture consists of a core daemon, @command{zebra}, which
1535 acts as an abstraction layer to the underlying Unix kernel and presents the
1536 Zserv API over a Unix or TCP stream to Quagga clients. It is these Zserv
1537 clients which typically implement a routing protocol and communicate routing
1538 updates to the zebra daemon.")
1539 (home-page "https://www.nongnu.org/quagga/")
1540 (license license:gpl2+)))
1541
1542 (define-public thc-ipv6
1543 (let ((revision "0")
1544 (commit "4bb72573e0950ce6f8ca2800a10748477020029e"))
1545 (package
1546 (name "thc-ipv6")
1547 (version (git-version "3.4" revision commit))
1548 (source (origin
1549 (method git-fetch)
1550 (uri (git-reference
1551 (url "https://github.com/vanhauser-thc/thc-ipv6.git")
1552 (commit commit)))
1553 (file-name (git-file-name name version))
1554 (sha256
1555 (base32
1556 "1x5i6vbsddqc2yks7r1a2fw2fk16qxvd6hpzh1lykjfpkal8fdir"))))
1557 (build-system gnu-build-system)
1558 (arguments
1559 `(#:make-flags (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
1560 #:tests? #f ; No test suite.
1561 #:phases
1562 (modify-phases %standard-phases
1563 (delete 'configure) ; No ./configure script.
1564 (add-before 'build 'patch-paths
1565 (lambda _
1566 (substitute* "Makefile"
1567 (("/bin/echo") "echo"))
1568 #t))
1569 (add-after 'install 'install-more-docs
1570 (lambda* (#:key outputs #:allow-other-keys)
1571 (let* ((out (assoc-ref outputs "out"))
1572 (doc (string-append out "/share/thc-ipv6/doc")))
1573 (install-file "README" doc)
1574 (install-file "HOWTO-INJECT" doc)
1575 #t))))))
1576 ;; TODO Add libnetfilter-queue once packaged.
1577 (inputs
1578 `(("libpcap" ,libpcap)
1579 ("openssl" ,openssl)
1580 ("perl" ,perl)))
1581 (home-page "https://github.com/vanhauser-thc/thc-ipv6")
1582 (synopsis "IPv6 security research toolkit")
1583 (description "The THC IPv6 Toolkit provides command-line tools and a library
1584 for researching IPv6 implementations and deployments. It requires Linux 2.6 or
1585 newer and only works on Ethernet network interfaces.")
1586 ;; AGPL 3 with exception for linking with OpenSSL. See the 'LICENSE' file in
1587 ;; the source distribution for more information.
1588 (license license:agpl3))))
1589
1590 (define-public bmon
1591 (package
1592 (name "bmon")
1593 (version "4.0")
1594 (source
1595 (origin
1596 (method url-fetch)
1597 (uri (string-append "https://github.com/tgraf/bmon/releases/download/v"
1598 version "/bmon-" version ".tar.gz"))
1599 (sha256
1600 (base32
1601 "0ylzriv4pwh76344abzl1w219x188gshbycbna35gsyfp09c7z82"))))
1602 (build-system gnu-build-system)
1603 (inputs
1604 `(("libconfuse" ,libconfuse)
1605 ("libnl" ,libnl)
1606 ("ncurses" ,ncurses)))
1607 (native-inputs
1608 `(("pkg-config" ,pkg-config)))
1609 (synopsis "Bandwidth monitor")
1610 (description "bmon is a monitoring and debugging tool to capture
1611 networking-related statistics and prepare them visually in a human-friendly
1612 way. It features various output methods including an interactive curses user
1613 interface and a programmable text output for scripting.")
1614 (home-page "https://github.com/tgraf/bmon")
1615 ;; README.md mentions both the 2-clause BSD and expat licenses, but all
1616 ;; the source files only have expat license headers. Upstream has been
1617 ;; contacted for clarification: https://github.com/tgraf/bmon/issues/59
1618 ;; Update the license field when upstream responds.
1619 (license (list license:bsd-2
1620 license:expat))))
1621
1622 (define-public libnet
1623 (package
1624 (name "libnet")
1625 (version "1.1.6")
1626 (source (origin
1627 (method url-fetch)
1628 (uri (string-append "https://github.com/sam-github/libnet/"
1629 "archive/libnet-" version ".tar.gz"))
1630 (file-name (string-append name "-" version ".tar.gz"))
1631 (sha256
1632 (base32
1633 "0l4gbzzvr199fzczzricjz7b825i7dlk6sgl5p5alnkcagmq0xys"))))
1634 (build-system gnu-build-system)
1635 (arguments
1636 `(#:phases
1637 (modify-phases %standard-phases
1638 (add-after 'unpack 'chdir
1639 (lambda _ (chdir "libnet") #t))
1640 (add-before 'build 'build-doc
1641 (lambda* (#:key make-flags #:allow-other-keys)
1642 (zero? (apply system* "make" "-C" "doc" "doc"
1643 make-flags)))))))
1644 (native-inputs
1645 `(("autoconf" ,autoconf)
1646 ("automake" ,automake)
1647 ("libtool" ,libtool)
1648 ("doxygen" ,doxygen)))
1649 (home-page "https://sourceforge.net/projects/libnet-dev/")
1650 (synopsis "Framework for low-level network packet construction")
1651 (description
1652 "Libnet provides a fairly portable framework for network packet
1653 construction and injection. It features portable packet creation interfaces
1654 at the IP layer and link layer, as well as a host of supplementary
1655 functionality. Using libnet, quick and simple packet assembly applications
1656 can be whipped up with little effort.")
1657 (license license:bsd-2)))
1658
1659 (define-public mtr
1660 (package
1661 (name "mtr")
1662 (version "0.92")
1663 (source
1664 (origin
1665 (method url-fetch)
1666 (uri (string-append "ftp://ftp.bitwizard.nl/" name "/"
1667 name "-" version ".tar.gz"))
1668 (sha256
1669 (base32 "10j3ds3p27jygys4x08kj8fi3zlsgiv72xsfazkah6plwawrv5zj"))))
1670 (build-system gnu-build-system)
1671 (inputs
1672 `(("libcap" ,libcap)
1673 ("ncurses" ,ncurses)))
1674 (native-inputs
1675 ;; The 0.92 release tarball still requires the ‘autoheader’ tool.
1676 `(("autoconf" ,autoconf)))
1677 (arguments
1678 `(#:tests? #f)) ; tests require network access
1679 (home-page "https://www.bitwizard.nl/mtr/")
1680 (synopsis "Network diagnostic tool")
1681 (description
1682 "@dfn{mtr} (My TraceRoute) combines the functionality of the
1683 @command{traceroute} and @command{ping} programs in a single network diagnostic
1684 tool. @command{mtr} can use several network protocols to detect intermediate
1685 routers (or @dfn{hops}) between the local host and a user-specified destination.
1686 It then continually measures the response time and packet loss at each hop, and
1687 displays the results in real time.")
1688 (license license:gpl2+)))
1689
1690 (define-public strongswan
1691 (package
1692 (name "strongswan")
1693 (version "5.6.2")
1694 (source
1695 (origin
1696 (method url-fetch)
1697 (uri (string-append "https://download.strongswan.org/strongswan-"
1698 version ".tar.bz2"))
1699 (sha256
1700 (base32 "14ifqay54brw2b2hbmm517bxw8bs9631d7jm4g139igkxcq0m9p0"))))
1701 (build-system gnu-build-system)
1702 (arguments
1703 `(#:phases
1704 (modify-phases %standard-phases
1705 (add-before 'build 'patch-command-file-names
1706 (lambda* (#:key inputs #:allow-other-keys)
1707 (substitute* "src/libstrongswan/utils/process.c"
1708 (("/bin/sh")
1709 (string-append (assoc-ref inputs "bash") "/bin/sh")))
1710
1711 (substitute* "src/libstrongswan/tests/suites/test_process.c"
1712 (("/bin/sh") (which "sh"))
1713 (("/bin/echo") (which "echo"))
1714 (("cat") (which "cat")))
1715 #t))
1716 (add-before 'check 'set-up-test-environment
1717 (lambda* (#:key inputs #:allow-other-keys)
1718 (setenv "TZDIR" (string-append (assoc-ref inputs "tzdata")
1719 "/share/zoneinfo"))
1720 #t)))
1721 #:configure-flags
1722 (list
1723 ;; Disable bsd-4 licensed plugins
1724 "--disable-des"
1725 "--disable-blowfish")))
1726 (inputs
1727 `(("curl" ,curl)
1728 ("gmp" ,gmp)
1729 ("libgcrypt" ,libgcrypt)
1730 ("openssl" ,openssl)))
1731 (native-inputs
1732 `(("coreutils" ,coreutils)
1733 ("tzdata" ,tzdata-for-tests)))
1734 (synopsis "IKEv1/v2 keying daemon")
1735 (description "StrongSwan is an IPsec implementation originally based upon
1736 the FreeS/WAN project. It contains support for IKEv1, IKEv2, MOBIKE, IPv6,
1737 NAT-T and more.")
1738 (home-page "https://strongswan.org/")
1739 (license
1740 (list license:gpl2+
1741 ;; src/aikgen/*
1742 ;; src/libcharon/plugins/dnscert/*
1743 ;; src/libcharon/plugins/ext_auth/*
1744 ;; src/libcharon/plugins/vici/ruby/*
1745 ;; src/libcharon/plugins/xauth_pam/xauth_pam_listener.[ch]
1746 license:expat
1747 ;; src/inclue/sys/*
1748 license:bsd-3
1749 ;; src/libstrongswan/plugins/sha3/sha3_keccak.c
1750 license:public-domain
1751 ;; src/libstrongswan/plugins/pkcs11/pkcs11.h
1752 (license:non-copyleft
1753 "file://src/libstrongswan/plugins/pkcs11/pkcs11.h"
1754 "pkcs11 contains a unknown permissive license. View the specific
1755 file for more details.")
1756 ;; These files are not included in the
1757 ;; build, they are disabled through
1758 ;; options to ./configure
1759 ;;
1760 ;; src/libstrongswan/plugins/blowfish/bf_enc.c
1761 ;; src/libstrongswan/plugins/blowfish/bf_locl.h
1762 ;; src/libstrongswan/plugins/blowfish/bf_pi.h
1763 ;; src/libstrongswan/plugins/blowfish/bf_skey.c
1764 ;; src/libstrongswan/plugins/blowfish/blowfish_crypter.c
1765 ;; src/libstrongswan/plugins/des/des_crypter.c
1766 license:bsd-4))))
1767
1768 (define-public amule
1769 (package
1770 (name "amule")
1771 (version "2.3.2")
1772 (source (origin
1773 (method url-fetch)
1774 (uri (string-append
1775 "https://github.com/amule-project/amule/archive/"
1776 version ".tar.gz"))
1777 (file-name (string-append name "-" version ".tar.gz"))
1778 (sha256
1779 (base32
1780 "1wvcj0n9xz03xz5c2xwp6dwfp7sqjhhwbki3m0lwikskpn9lkzk2"))
1781 ;; Patch for adopting crypto++ >= 6.0.
1782 (patches (search-patches "amule-crypto-6.patch"))))
1783 (build-system gnu-build-system)
1784 (arguments
1785 `(#:phases
1786 (modify-phases %standard-phases
1787 (add-after 'patch-source-shebangs 'autogen
1788 (lambda _
1789 (invoke "sh" "autogen.sh")
1790 #t)))
1791 #:configure-flags
1792 '("--disable-rpath"
1793 "--enable-wxcas"
1794 "--enable-cas"
1795 "--enable-alc"
1796 "--enable-alcc"
1797 "--enable-xas"
1798 "--enable-amulecmd"
1799 "--enable-geoip"
1800 "--enable-ccache"
1801 "--enable-nls"
1802 "--enable-optimize"
1803 "--enable-amule-gui"
1804 "--enable-amule-daemon"
1805 "--enable-webserver"
1806 "--with-denoise-level=0")))
1807 (native-inputs
1808 `(("autoconf" ,autoconf)
1809 ("automake" ,automake)
1810 ("gettext-minimal" ,gettext-minimal)
1811 ("perl" ,perl)))
1812 (inputs
1813 `(("zlib" ,zlib)
1814 ("crypto++" ,crypto++)
1815 ("libpng" ,libpng)
1816 ("wxwidgets-gtk2" ,wxwidgets-gtk2)))
1817 (home-page "http://amule.org/")
1818 (synopsis "Peer-to-peer client for the eD2K and Kademlia networks")
1819 (description
1820 "aMule is an eMule-like client for the eD2k and Kademlia peer-to-peer
1821 file sharing networks. It includes a graphical user interface (GUI), a daemon
1822 allowing you to run a client with no graphical interface, and a Web GUI for
1823 remote access. The @command{amulecmd} command allows you to control aMule
1824 remotely.")
1825 (license license:gpl2+)))
1826
1827 (define-public zyre
1828 (package
1829 (name "zyre")
1830 (version "2.0.0")
1831 (source (origin
1832 (method url-fetch)
1833 (uri
1834 (string-append "https://github.com/zeromq/zyre/releases/download/v"
1835 version "/" name "-" version ".tar.gz"))
1836 (sha256
1837 (base32
1838 "0qz2730bng1gs9xbqxhkw88qbsmszgmmrl2g9k6xrg6r3bqvsdc7"))))
1839 (build-system gnu-build-system)
1840 (inputs `(("zeromq" ,zeromq)
1841 ("czmq" ,czmq)
1842 ("libsodium" ,libsodium)))
1843 (synopsis "Framework for proximity-based peer-to-peer applications")
1844 (description "Zyre provides reliable group messaging over local area
1845 networks using zeromq. It has these key characteristics:
1846
1847 @itemize
1848 @item Zyre needs no administration or configuration.
1849 @item Peers may join and leave the network at any time.
1850 @item Peers talk to each other without any central brokers or servers.
1851 @item Peers can talk directly to each other.
1852 @item Peers can join groups, and then talk to groups.
1853 @item Zyre is reliable, and loses no messages even when the network is heavily loaded.
1854 @item Zyre is fast and has low latency, requiring no consensus protocols.
1855 @item Zyre is designed for WiFi networks, yet also works well on Ethernet networks.
1856 @end itemize")
1857 (home-page "https://github.com/zeromq/zyre")
1858 (license license:mpl2.0)))
1859
1860 (define-public can-utils
1861 (package
1862 (name "can-utils")
1863 (version "2018.02.0")
1864 (source (origin
1865 (method git-fetch)
1866 (uri (git-reference
1867 (url "https://github.com/linux-can/can-utils.git")
1868 (commit (string-append "v" version))))
1869 (file-name (git-file-name name version))
1870 (sha256
1871 (base32
1872 "0r0zkm67bdcmbfypjr7z041d4zp0xzb379dyl8cvhmflh12fd2jb"))))
1873 (build-system gnu-build-system)
1874 (arguments
1875 `(#:tests? #f ; No tests exist.
1876 #:make-flags (list "CC=gcc"
1877 (string-append "PREFIX="
1878 (assoc-ref %outputs "out")))
1879 #:phases
1880 (modify-phases %standard-phases
1881 (delete 'bootstrap)
1882 (delete 'configure))))
1883 (home-page "https://github.com/linux-can/can-utils")
1884 (synopsis "CAN utilities")
1885 (description "This package provides CAN utilities in the following areas:
1886
1887 @itemize
1888 @item Basic tools to display, record, generate and replay CAN traffic
1889 @item CAN access via IP sockets
1890 @item CAN in-kernel gateway configuration
1891 @item CAN bus measurement and testing
1892 @item ISO-TP (ISO15765-2:2016 - this means messages with a body larger than
1893 eight bytes) tools
1894 @item Log file converters
1895 @item Serial Line Discipline configuration for slcan driver
1896 @end itemize")
1897 ;; Either BSD-3 or GPL-2 can be used.
1898 (license (list license:bsd-3 license:gpl2))))
1899
1900 (define-public asio
1901 (package
1902 (name "asio")
1903 (version "1.12.1")
1904 (source
1905 (origin
1906 (method url-fetch)
1907 (uri (string-append "mirror://sourceforge/asio/asio/"
1908 version " (Stable)/" name "-" version ".tar.bz2"))
1909 (sha256
1910 (base32
1911 "0nln45662kg799ykvqx5m9z9qcsmadmgg6r5najryls7x16in2d9"))))
1912 (build-system gnu-build-system)
1913 (inputs
1914 `(("boost" ,boost)
1915 ("openssl" ,openssl)))
1916 (arguments
1917 `(#:configure-flags
1918 (list
1919 (string-append "--with-boost=" (assoc-ref %build-inputs "boost"))
1920 (string-append "--with-openssl=" (assoc-ref %build-inputs "openssl")))))
1921 (home-page "https://think-async.com/Asio")
1922 (synopsis "C++ library for ASynchronous network I/O")
1923 (description "Asio is a cross-platform C++ library for network and
1924 low-level I/O programming that provides developers with a consistent
1925 asynchronous model using a modern C++ approach.")
1926 (license license:boost1.0)))
1927
1928 (define-public shadowsocks
1929 ;; There are some security fixes after the last release.
1930 (let* ((commit "e332ec93e9c90f1cbee676b022bf2c5d5b7b1239")
1931 (revision "0")
1932 (version (git-version "2.8.2" revision commit)))
1933 (package
1934 (name "shadowsocks")
1935 (version version)
1936 (home-page "https://github.com/shadowsocks/shadowsocks")
1937 (source (origin
1938 (method git-fetch)
1939 (uri (git-reference
1940 (url home-page)
1941 (commit commit)))
1942 (sha256
1943 (base32
1944 "1idd9b4f2pnhcpk1bh030hqg5zq25gkwxd53xi3c0cj242w7sp2j"))
1945 (file-name (git-file-name name version))))
1946 (build-system python-build-system)
1947 (synopsis "Fast tunnel proxy that helps you bypass firewalls")
1948 (description
1949 "This package is a fast tunnel proxy that helps you bypass firewalls.
1950
1951 Features:
1952 @itemize
1953 @item TCP & UDP support
1954 @item User management API
1955 @item TCP Fast Open
1956 @item Workers and graceful restart
1957 @item Destination IP blacklist
1958 @end itemize")
1959 (license license:asl2.0))))
1960
1961 (define-public net-snmp
1962 (package
1963 (name "net-snmp")
1964 (version "5.8")
1965 (source (origin
1966 (method url-fetch)
1967 (uri (string-append "mirror://sourceforge/net-snmp/net-snmp/"
1968 version "/net-snmp-" version ".tar.gz"))
1969 (sha256
1970 (base32
1971 "1pvajzj9gmj56dmwix0ywmkmy2pglh6nny646hkm7ghfhh03bz5j"))
1972 (modules '((guix build utils)))
1973 (snippet
1974 '(begin
1975 ;; Drop bundled libraries.
1976 (delete-file-recursively "snmplib/openssl")
1977 #t))))
1978 (build-system gnu-build-system)
1979 (arguments
1980 `(#:test-target "test"
1981 ;; XXX: With parallel build enabled, Perl modules may not get linked with
1982 ;; libnetsnmp. See e.g. <https://bugzilla.novell.com/show_bug.cgi?id=819497>.
1983 #:parallel-build? #f
1984 #:configure-flags
1985 (list (string-append "LDFLAGS=-Wl,-rpath="
1986 (assoc-ref %outputs "out")
1987 "/lib")
1988 "--with-logfile=/var/log/snmpd.log")
1989 #:phases
1990 (modify-phases %standard-phases
1991 (add-after 'unpack 'patch-tests
1992 (lambda* (#:key inputs #:allow-other-keys)
1993 (substitute* "testing/fulltests/support/simple_TESTCONF.sh"
1994 (("NETSTAT=\"\"")
1995 (string-append "NETSTAT=\"" (which "netstat") "\"")))
1996 (substitute* '("testing/fulltests/default/T065agentextend_simple"
1997 "testing/fulltests/default/T115agentxperl_simple")
1998 (("/usr/bin/env") (which "env")))
1999 (substitute* "testing/fulltests/default/T065agentextend_sh_simple"
2000 (("/bin/sh") (which "sh")))
2001 ;; These tests require network access.
2002 (for-each delete-file
2003 '("testing/fulltests/default/T070com2sec_simple"
2004 "testing/fulltests/default/T071com2sec6_simple"))
2005 #t))
2006 (add-after 'unpack 'patch-Makefile.PL
2007 (lambda* (#:key outputs #:allow-other-keys)
2008 (substitute* "Makefile.in"
2009 (("Makefile.PL -NET")
2010 (string-append "Makefile.PL PREFIX="
2011 (assoc-ref outputs "out")
2012 " INSTALLDIRS=site" " NO_PERLLOCAL=1"
2013 " -NET")))
2014 #t)))))
2015 (inputs
2016 `(("perl" ,perl)
2017 ("openssl" ,openssl)
2018 ("libnl" ,libnl)))
2019 ;; These inputs are only needed for tests.
2020 (native-inputs
2021 `(("net-tools" ,net-tools)
2022 ("coreutils" ,coreutils)
2023 ("grep" ,grep)))
2024 (home-page "http://www.net-snmp.org/")
2025 (synopsis "Simple Network Management Protocol library and tools")
2026 (description "The @dfn{Simple Network Management Protocol} (SNMP) is a
2027 widely used protocol for monitoring the health and welfare of network
2028 equipment (e.g. routers), computer equipment and even devices like UPSs.
2029 Net-SNMP is a suite of applications used to implement SNMP v1, SNMP v2c and
2030 SNMP v3 using both IPv4 and IPv6.")
2031 (license (list license:bsd-3
2032 (license:non-copyleft
2033 "http://www.net-snmp.org/about/license.html"
2034 "CMU/UCD copyright notice")))))
2035
2036 (define-public ubridge
2037 (package
2038 (name "ubridge")
2039 (version "0.9.14")
2040 (source (origin
2041 (method url-fetch)
2042 (uri (string-append "https://github.com/GNS3/ubridge/archive/v"
2043 version ".tar.gz"))
2044 (file-name (string-append name "-" version ".tar.gz"))
2045 (sha256
2046 (base32
2047 "1hivb8wqkk5047bdl2vbsbcvkmam1107hx1ahy4virq2bkqki1fj"))))
2048 (build-system gnu-build-system)
2049 (arguments
2050 `(#:tests? #f ;no tests
2051 #:make-flags '("CC=gcc")
2052 #:phases
2053 (modify-phases %standard-phases
2054 (delete 'configure)
2055 (add-before 'install 'set-bindir
2056 (lambda* (#:key inputs outputs #:allow-other-keys)
2057 (let ((bin (string-append (assoc-ref outputs "out")
2058 "/bin")))
2059 (mkdir-p bin)
2060 (substitute* "Makefile"
2061 (("\\$\\(BINDIR\\)") bin)
2062 (("\tsetcap cap_net.*$") "")))
2063 #t)))))
2064 (inputs
2065 `(("libpcap" ,libpcap)))
2066 (home-page "https://github.com/GNS3/ubridge/")
2067 (synopsis "Bridge for UDP tunnels, Ethernet, TAP and VMnet interfaces")
2068 (description "uBridge is a simple program to create user-land bridges
2069 between various technologies. Currently, bridging between UDP tunnels,
2070 Ethernet and TAP interfaces is supported. Packet capture is also supported.")
2071 (license license:gpl3+)))