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