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