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