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